Infinite Loop? +REP
#1

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;
}
Reply
#2

What is "for___loop(..)" ?

"for" loop is like this:

pawn Код:
//for example from 0 to 10
for(new i = 0; i < 10; i++)
//other codes..
Reply
#3

yea, forgot to mention:

pawn Код:
#define for___loop(%1;%2;%3) \
    \
    for(%1;%2;%3)

#define while___loop(%1) \
    \
    while(%1)
Reply
#4

Maybe that's the problem. Use the a for(new etc.. instead of this define.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)