26.01.2015, 18:20
Guys, is there is any infinite loop in this callback? because the server freezes when sometimes i type:
pawn Код:
public OnPlayerText(playerid, text[])
{
if(text[0] == '@')
{
new string[128];
GetPlayerName(playerid, string, sizeof(string));
format(string, sizeof(string), "[Team] %s: %s", string, text[1]);
for___loop(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && gTeam[i] == gTeam[playerid]) SendClientMessage(i, GetPlayerColor(playerid), string);
}
return 0;
}
if(text[0] == '#')
{
if(PlayerInfo[playerid][pAdmin] > 0)
{
switch(PlayerInfo[playerid][pAdmin])
{
case 1: AdmRank = "Trial Moderator";
case 2: AdmRank = "Moderator";
case 3: AdmRank = "Master Moderator";
case 4: AdmRank = "Trial Administrator";
case 5: AdmRank = "Administrator";
case 6: AdmRank = "Master Administrator";
case 7: AdmRank = "Head Administrator";
case 8: AdmRank = "Trusted Administrator";
case 9: AdmRank = "Co-Owner";
case 10: AdmRank = "Owner";
}
new Pname4[MAX_PLAYER_NAME], string[200];
GetPlayerName(playerid, Pname4, MAX_PLAYER_NAME);
format(string, sizeof(string), "[ADM] The {FF0000}%s {FF5900}%s (%d) Says: {FFFFFF}%s",AdmRank, Pname4, playerid, text[1]);
for___loop(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && PlayerInfo[i][pAdmin] > 0) SendClientMessage(i, 0xFF5900FF, string);
}
}
return 0;
}
if(text[0] == '*')
{
if(Info[playerid][VIPLevel] > 0)
{
switch(Info[playerid][VIPLevel])
{
case 1: AccType = "Bronze";
case 2: AccType = "Silver";
case 3: AccType = "Gold";
}
new Pname4[MAX_PLAYER_NAME], string[128];
GetPlayerName(playerid, Pname4, MAX_PLAYER_NAME);
format(string, sizeof(string), "[VIP] The {FF0000}%s Member {00BFFF}%s (%d) Says: {FFFFFF}%s",AccType, Pname4, playerid, text[1]);
for___loop(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && Info[i][VIPLevel] > 0) SendClientMessage(i, 0x00BFFFFF, string);
}
}
return 0;
}
if(text[0] == '$' && PlayerDat[playerid][InGang] == 1)
{
new string[128];
format(string,sizeof(string),"[{FFFFFF}GANGCHAT{8080FF}] %s(%d): %s",pName(playerid),playerid,text[1]);
SendMessageToGangMembers(PlayerDat[playerid][GangID],Gang_Chat_Color,string);
return 0;
}
new ip[4];
if(ipmatch(text, ip))
{
new antimsg[128], advertiser[MAX_PLAYER_NAME];
GetPlayerName(playerid, advertiser, MAX_PLAYER_NAME);
format(antimsg, sizeof(antimsg), "%s (%d) Has Been Kicked By The Anti-Cheat (AC) | Reason: Advertising.", advertiser, playerid);
SendClientMessageToAll(0x00FFFFFF, antimsg);
SendClientMessage(playerid, 0xFF0000AA, "You Have Been Kicked By The Anti-Cheat (AC) | Reason: Advertising.");
SetTimerEx("TimeKicker", 500, false, "d", playerid);
return 0;
}
if(Info[playerid][Muted] == 1)
{
SendClientMessage(playerid, 0xFF0000AA, "WARNING: You Are Muted, You Cannot Chat!");
Info[playerid][MuteWarnings] +=1;
Info[playerid][MaxMuteWarnings] +=1;
if(Info[playerid][MuteWarnings] == 4)
{
new string[128], playerkicked[MAX_PLAYER_NAME];
GetPlayerName(playerid, playerkicked, MAX_PLAYER_NAME);
KickCommandWithMessage(playerid, 0xFF0000AA, "You Have Been Kicked For Exceeding The Mute Warnings (4 Warnings)!");
format(string, sizeof(string), "%s (%d) Has Been Kicked For Exceeding The Mute Warnings (4 Warnings).", playerkicked, playerid);
SendClientMessageToAll(0xFFA600AA, string);
}
return 0;
}
return 1;
}