Big Boss Geplaatst: 10 september 2008 Rapport Geplaatst: 10 september 2008 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. Reageren
Sandra Geplaatst: 10 september 2008 Rapport Geplaatst: 10 september 2008 (bewerkt) 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: 10 september 2008 door =>Sandra<= Reageren
Recommended Posts
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.