Jump to content

Team chat


propje400

Recommended Posts

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;
}

Link to comment
Delen op andere websites

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

Link to comment
Delen op andere websites

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
Link to comment
Delen op andere websites

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

Link to comment
Delen op andere websites

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;

}

Link to comment
Delen op andere websites

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;
}

Link to comment
Delen op andere websites

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...