Jump to content
Geplaatst:
comment_1105395

Hallo

Ik heb even een functie uitgewerkt dat een bericht naar alle admins (adminlevel groter dan 0) moet sturen. Dit is mijn script:

public SendClientMessageToAdmins(color, const message[])
{
new msgstring[256];
for(new i; i < MAX_PLAYERS; i++)
{
	if(adminlevel[i] == 0)
	{
		return 0;
	}
	else
	{
		SendClientMessage(i, color, msgstring);
		print("AdmCmd");
	}
}
return 1;
}

// ========================

if(strcmp(cmd, "/test", true) == 0)
{
	tmp = strtok(cmdtext, idx);
  		if(!strlen(tmp))
	{
		SendClientMessage(playerid, COLOR_GRAY, "USAGE: /test [msg]");
		return 1;
	}
	else
	{
		format(string, sizeof(string), "AdmCmd: %s", tmp);
		SendClientMessageToAdmins(COLOR_ADM_RED, string);
	}
	return 1;
}

Hij compiled dit zonder errors of warnings, maar als ik ingame ga met mezelf adminlevel 5 (RCON admin) en /test blablabla doe, dan crashed de server. Ik wil dit gaan gebruiken voor (/a)dmin chat, voor AdmWarn's en voor /report's te zenden aan de admins.

Featured Replies

Geplaatst:
comment_1106199

Dit komt omdat jij een lege string probeert te verzenden....

jij wil de string 'msgstring' verzenden, maar je hebt die string niet ge-format.

Daardoor crasht je server.

Bovendien werkt je code niet goed door die 'return 0;' die je krijgt als een speler geen admin is. Want die 'return 0;' kapt namelijk de hele functie af.

public SendClientMessageToAdmins(color, const message[])
{
for(new i; i<MAX_PLAYERS; i++)
{
	if(adminlevel[i] != 0) // Let op die '!='. 
	{
		SendClientMessage(i, color, msgstring);
		print("AdmCmd");
	}
}
return 1;
}

Bewerkt: door =>Sandra<=

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

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.