Jump to content

Team chat


Recommended Posts

Geplaatst:

Hoi, waar kan ik een script vinden van team chat, bv /t ...

en hoe kan ik een SendClientMessageToAll verandere naar alleen een team bv TEAM_RED.

bedankt alvast

Geplaatst:

Er is een gewone team chat optie maar dit is een andere waar je meer mee kant veranderen:

Ergens bovenaan zoner public of return:

	SendRedMessage(color, text[]) {
for(new i = 0; i < MAX_PLAYERS; i ++) {
	if(IsPlayerConnected(i)) {
		admin = dini_Int(userfile, "adminlevel");
  if(gTeam[i] == Red) {
			SendClientMessage(i, color, text);
		}
	}
}
}
SendBlueMessage(color, text[]) {
for(new i = 0; i < MAX_PLAYERS; i ++) {
	if(IsPlayerConnected(i)) {
		admin = dini_Int(userfile, "adminlevel");
  if(gTeam[i] == Blue) {
			SendClientMessage(i, color, text);
		}
	}
}
}

Bij chat:

if(strcmp(cmd,"/tc",true)==0)
			{
if (gTeam[playerid] == Red)
	{
if ((strlen(cmdtext) >= 1)&&(strlen(cmdtext) <= 2)) { SendClientMessage(playerid,COLOR_RED, "Syntax: /tc <MESSAGE>"); return 1; }
GetPlayerName(playerid,name,sizeof(name));	format(string,sizeof(string),"Team 1 Chat(%s):%s",name,cmdtext[2]); SendRedMessage(COLOR_GREEN, string);

}
if (gTeam[playerid] == Blue)
	{
if ((strlen(cmdtext) >= 1)&&(strlen(cmdtext) <= 2)) { SendClientMessage(playerid,COLOR_RED, "Syntax: /tc <MESSAGE>"); return 1; }
GetPlayerName(playerid,name,sizeof(name));	format(string,sizeof(string),"Team 2 Chat(%s):%s",name,cmdtext[2]); SendBlueMessage(COLOR_PURPLE, string);

}

return 1;
}

Geplaatst:

bedankt maar nog een vraagje, hoe kan ik het zo instellen dat je bij een class of als command, dat je je skin kunt verandere bv, /skin {ID}

Geplaatst:
bedankt maar nog een vraagje, hoe kan ik het zo instellen dat je bij een class of als command, dat je je skin kunt verandere bv, /skin {ID}

Ik heb het nog niet getest maar het zou zo ongeveer moeten

zet dit bij onplayertextcommand

new cmd[256],tmp[256], tmp2[256], string[256];
new idx;
new giveplayerid;
new skinid;
cmd = strtok(cmdtext, idx);
if(strcmp("/skin", cmdtext,  true))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
	SendClientMessage(playerid, 0xFF0000AA, "GEBRUIK: /skin [SPELER ID] [skin id]");
	return 1;
}
giveplayerid = strval(tmp);
tmp2 = strtok(cmdtext, idx);
if(!strlen(tmp2))
{
	SendClientMessage(playerid, 0xFF0000AA, "GEBRUIK: /skin [speler id] [SKIN ID]");
	return 1;
}
if(IsPlayerConnected(giveplayerid))
{
	skinid = strval(tmp2);
	SetPlayerSkin(giveplayerid, skinid);
	format(string, sizeof(string), "je hebt id %d  skin naar skin id %d gezet", giveplayerid, skinid);
			SendClientMessage(playerid, 0xFF0000AA, string);
	return 1;
}
	else
	{
		   SendClientMessage(playerid, 0xFF00000AA, "Die speler id is niet in gebruik");
	   return 1;
	}
}

En zet dit onder aan je script

strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
	index++;
}

new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
	result[index - offset] = string[index];
	index++;
}
result[index - offset] = EOS;
return result;
}

ik hoop dat het werkt

Geplaatst:

Wat nou als het een niet bestaande skin is? Dan crashed je server. Dat zal er nog bij moeten.

Deze skins crashen je server: 3, 4, 5, 6, 7, 8, 42, 65, 74, 86, 119, 149, 208, 268, 273, 289

Geplaatst: (bewerkt)

error 047: array sizes do not match, or destination array is too small

krijg ik bij deze regel :

	return result;

Bewerkt: door propje400
Geplaatst: (bewerkt)
Wat nou als het een niet bestaande skin is? Dan crashed je server. Dat zal er nog bij moeten.

Deze skins crashen je server: 3, 4, 5, 6, 7, 8, 42, 65, 74, 86, 119, 149, 208, 268, 273, 289

Ja hmmm, dat zou zo kunnen.

Plaats dit onder "skinid = strval(tmp2);" ( niet uit gestest )

if( skinid = 3 || skinid = 4 || skinid = 5 || skinid = 6 || skinid = 7 || skinid = 8 || skinid = 42 || skinid = 65  || skinid = 74 || skinid = 86 || skinid = 119 || skinid = 149 || skinid = 208 || skinid = 268 || skinid = 273 || skinid = 289 )
{
	// SendClientMessage(playerid, 0xFF0000AA, "*Je hebt een niet bestaand skin id ingevoerd!!*");
	return 1;
}

Bewerkt: door Erryn
Geplaatst:
Wat nou als het een niet bestaande skin is? Dan crashed je server. Dat zal er nog bij moeten.

Deze skins crashen je server: 3, 4, 5, 6, 7, 8, 42, 65, 74, 86, 119, 149, 208, 268, 273, 289

Ja hmmm, dat zou zo kunnen.

Plaats dit onder "skinid = strval(tmp2);" ( niet uit gestest )

if( skinid = 3 || skinid = 4 || skinid = 5 || skinid = 6 || skinid = 7 || skinid = 8 || skinid = 42 || skinid = 65  || skinid = 74 || skinid = 86 || skinid = 119 || skinid = 149 || skinid = 208 || skinid = 268 || skinid = 273 || skinid = 289 )
{
	// SendClientMessage(playerid, 0xFF0000AA, "*Je hebt een niet bestaand skin id ingevoerd!!*");
	return 1;
}

thanks allemaal maar een ander vraagje, je hebt bv if(IsPlayerAdmin(playerid)) maar wat moet ik hieraan verandere als ik wil dat alle mensen die lvl 3 admin zijn die dingen kunnen?? want ik kan mensen admin lvls geven en ik weet dat dit kan maar ik kon niet meer terug vinden waar het stond :S

Geplaatst:
thanks allemaal maar een ander vraagje, je hebt bv if(IsPlayerAdmin(playerid)) maar wat moet ik hieraan verandere als ik wil dat alle mensen die lvl 3 admin zijn die dingen kunnen?? want ik kan mensen admin lvls geven en ik weet dat dit kan maar ik kon niet meer terug vinden waar het stond :S

Hmmm, je hebt dan bv ( met sandra's account systeem ) adminlevel[playerid] == 3

Dat moet je zo plaatsen in een script zo kan alleen een level 3 admin dit zien

if(strcmp("/skin", cmdtext, true) )

{

if( adminlevel[playerid] == 3)

{

Je command moet hier

}

else

{

SendClientMessage(playerid, 0xFF0000AA, "*Je bent geen admin of je hebt geen level 3 admin rechten");

return 1;

}

return 1;

}

Geplaatst:

Wanneer gaat iedereen nou eens een keertje beginnen met dcmd gebruiken? Die bovenstaande code kan ik in dcmd veel keer korter maken. Wat hier staat kan eigenlijk nog korter, maar dan gaat het de forum layout vern**ken.

dcmd_skin(playerid, params[])
{
new
	targetid,
	targetskin,
	string[128];

if(!IsPlayerAdmin(playerid))
{
	SendClientMessage(playerid, COLOR_RED, "You are not authorized to use this command!");
	return 1;
}
if(sscanf(params, "ui", targetid, targetskin))
{
	SendClientMessage(playerid, COLOR_RED, "USAGE: /skin [Playerid/PartOfName] [Skinid]");
	return 1;
}
if(!IsPlayerConnected(targetid))
{
	SendClientMessage(playerid, COLOR_RED, "ERROR: Target player not connected!");
	return 1;
}
if(IsInvalidSkin(targetskin))
{
	SendClientMessage(playerid, COLOR_RED, "ERROR: Invalid skin");
	return 1;
}
SetPlayerSkin(targetid, targetskin);
format(string, sizeof(string), "* You have been switched to skin %d by an Admin!", targetskin);
SendClientMessage(targetid, COLOR_BLUE, string);
format(string, sizeof(string), "* You have switched id %d to skin %d", targetid, targetskin);
SendClientMessage(playerid, COLOR_BLUE, string);
return 1;
}

stock IsInvalidSkin(skinid)
{   
	// Created by Simon
// Checks whether the skinid parsed is crashable or not.

#define	MAX_BAD_SKINS   14

new badSkins[MAX_BAD_SKINS] = {
	3, 4, 5, 6, 8, 42, 65, 74, 86,
	119, 149, 208, 273, 289
};

for (new i = 0; i < MAX_BAD_SKINS; i++) {
	if (skinid == badSkins[i]) return true;
}

return false;
}

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...