22.10.2012, 17:30
hey everyone,
when someone leaves the server, then it sends the leave message like 99999 times... its bigg spam in chat.
does anyone knows wuts wrong with this?
greets niels
EDIT:
i also have a problem when i wanna save the admin level/vip level to a players file, it doesnt sets it somehow... and i know dini isnt used much anymore, but i like it and could someone help me with it?
that are my /setvip and /setlevel cmd
and its bit weird, cuz when i do that at the playerdisconnect, then it DOES saves it...
when someone leaves the server, then it sends the leave message like 99999 times... its bigg spam in chat.
does anyone knows wuts wrong with this?
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
if(!IsPlayerNPC(playerid))
{
new str[128], pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, sizeof(pName));
format(str, sizeof(str), "{00FF00}%s {FFFFFF}has Joined {00FF00}Street{FF0000}Rodz {0000FF}Racers", pName);
switch (reason)
{
case 0:
format(str, sizeof(str), "{00FF00}%s(ID: %d) {FFFFFF}has Left {00FF00}Street{FF0000}Rodz {0000FF}Racers {FFFFFF}(Timeout/Crash)", pName, playerid);
case 1:
format(str, sizeof(str), "{00FF00}%s(ID: %d) {FFFFFF}has Left {00FF00}Street{FF0000}Rodz {0000FF}Racers {FFFFFF}(Leaving)", pName, playerid);
case 2:
format(str, sizeof(str), "{00FF00}%s(ID: %d) {FFFFFF}has Left {00FF00}Street{FF0000}Rodz {0000FF}Racers {FFFFFF}(Kicked/Banned)", pName, playerid);
}
SendClientMessageToAll(COLOR_WHITE, str);
printf("player disconnected");
Kick(MyBot(playerid));
new file[300];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(file,sizeof(file),"nAdmin/Users/%s.ini",name);
if(logged[playerid] == 1)
{
dini_IntSet(file, "Score", PlayerInfo[playerid][score]);
dini_IntSet(file, "Money", PlayerInfo[playerid][cash]);
dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][AdminLevel]);
dini_IntSet(file, "CurrentVehicle", PlayerInfo[playerid][currentcar]);
dini_IntSet(file, "HasGarage", PlayerInfo[playerid][HasGarage]);
dini_IntSet(file, "PlayerFinished", PlayerInfo[playerid][PlayerFinished]);
dini_IntSet(file, "VipLevel", PlayerInfo[playerid][VipLevel]);
dini_IntSet(file, "Banned", PlayerInfo[playerid][Banned]);
dini_IntSet(file, "Muted", PlayerInfo[playerid][Muted]);
}
logged[playerid] = 0;
}
return 1;
}
EDIT:
i also have a problem when i wanna save the admin level/vip level to a players file, it doesnt sets it somehow... and i know dini isnt used much anymore, but i like it and could someone help me with it?
pawn Код:
CMD:setlevel(playerid, params[])
{
new level, aname[MAX_PLAYER_NAME];
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "You must be a RCON Admin to use this command!");
new targetid;
if(sscanf(params, "ui", targetid, level)) return SendClientMessage(playerid, COLOR_YELLOW, "Correct Usage: /setlevel [PlayerID][Level]");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, -1, "That player is not connected to the server");
if(level < 1 || level > 10) return SendClientMessage(playerid, COLOR_RED, "Admin Level Range Is From 1 To 10");
new string1[90], tname[MAX_PLAYER_NAME], string2[90], file[300];
PlayerInfo[targetid][AdminLevel]=level;
GetPlayerName(playerid, tname, sizeof(tname));
format(file,sizeof(file),"nAdmin/Users/%s.ini",targetid);
dini_IntSet(file,"AdminLevel",level);
GetPlayerName(playerid, aname, sizeof(aname));
format(string1, sizeof(string1), "Admin %s has set your Admin level to %i", aname, level);
SendClientMessage(targetid, COLOR_GREEN, string1);
GameTextForPlayer(targetid, "Promoted!", 2000, 5);
format(string2, sizeof(string1), "{00FF00}Admin %s has set %s's Admin level to %i", aname, tname, level);
SendClientMessageToAll(COLOR_YELLOW, string2);
return 1;
}
CMD:setvip(playerid, params[])
{
new level, aname[MAX_PLAYER_NAME];
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "You must be a RCON Admin to use this command!");
new targetid;
if(sscanf(params, "ui", targetid, level)) return SendClientMessage(playerid, COLOR_YELLOW, "Correct Usage: /setvip [PlayerID][Level]");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, -1, "That player is not connected to the server");
if(level < 1 || level > 3) return SendClientMessage(playerid, COLOR_RED, "VIP Level Range Is From 1 To 3");
new string1[90], tname[MAX_PLAYER_NAME], string2[90], file[300];
PlayerInfo[targetid][VipLevel] = level;
GetPlayerName(playerid, tname, sizeof(tname));
format(file,sizeof(file),"nAdmin/Users/%s.ini",targetid);
dini_IntSet(file,"VipLevel",level);
GetPlayerName(playerid, aname, sizeof(aname));
format(string1, sizeof(string1), "Admin %s has set your VIP level to %i", aname, level);
SendClientMessage(targetid, COLOR_GREEN, string1);
GameTextForPlayer(targetid, "Congratulations!", 2000, 5);
format(string2, sizeof(string1), "{00FF00}Admin %s has set %s's VIP level to %i", aname, tname, level);
SendClientMessageToAll(COLOR_YELLOW, string2);
return 1;
}
and its bit weird, cuz when i do that at the playerdisconnect, then it DOES saves it...