SA-MP Forums Archive
Someone shudown my server with bug - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Someone shudown my server with bug (/showthread.php?tid=294314)



Someone shudown my server with bug - cs_waller - 01.11.2011

Hello I am new in this forum and I want to ask how to do so when someone write in chat {cc00cc} ban him automatically because someone off my server with this bug.
P.S sorry for my bad English I'm Russian


Re: Someone shudown my server with bug - rapidhost - 01.11.2011

fix the bug & rangeban the hacker.

Does he have a reason to keep doing it?


Re: Someone shudown my server with bug - cs_waller - 01.11.2011

@****** - I don't know how to fix this bug.
@rapidhost - He made this because he have too server


Re: Someone shudown my server with bug - Sascha - 01.11.2011

so.. just wrote this up..
pawn Код:
public OnPlayerText(playerid, text[])
{
    if(strfind(text, "{cc00cc}", true) != -1)
    {
        new p = strfind(text, "{cc00cc}", true);
        strdel(text, p, p+8);
        Ban(playerid);
    }
    return 1;
}



Re: Someone shudown my server with bug - leong124 - 01.11.2011

Quote:
Originally Posted by Sascha
Посмотреть сообщение
so.. just wrote this up..
pawn Код:
public OnPlayerText(playerid, text[])
{
    if(strfind(text, "{cc00cc}", true) != -1)
    {
        new p = strfind(text, "{cc00cc}", true);
        strdel(text, p, p+8);
        Ban(playerid);
    }
    return 1;
}
AFAIK you can't detect if a player has input that string like this, since it is a embedded colour code in chat which is automatically ignored by SA-MP. Thus you can't find the string in the text[] parameter.

The only way to solve this problem is to find the cause of the bug and fix it, just like ****** said.


Re: Someone shudown my server with bug - Sascha - 01.11.2011

alright^^


Re: Someone shudown my server with bug - cs_waller - 01.11.2011

The Pawn crash when I try to compline with this code


Re: Someone shudown my server with bug - IstuntmanI - 01.11.2011

Post your OnPlayerText, he can't type {cc00cc} because { is replaced with a ( and } with a ), it's from SA:MP this replace, so I don't think that your server crashes from this.


Re: Someone shudown my server with bug - cs_waller - 01.11.2011

pawn Код:
public OnPlayerText(playerid, text[])
{
    new string[256];
    new tmp[256];
    if(PlayerInfo[playerid][pMuted] != 0)
    {
        SendClientMessage(playerid, COLOR_ADMINCMD, " Ти си заглушен и неможеш да пишеш.");
        return 0;
    }
    if(CalculateStarted == 1)
    {
        switch (CalculateEvent)
        {
            case 1:
            {
                new idx;
                tmp = strtok(text, idx);
                if ((strcmp("38", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("38")))
                {
                    CalculateStarted = 0;
                    CalculateEvent = 0;
                    for(new i = 0; i < MAX_PLAYERS; i++)
                    {
                        KillTimer(reactiontimer[i]);
                    }
                    PlayerInfo[playerid][pCWons] ++;
                    GivePlayerCash(playerid, 100000);
                    format(string, sizeof(string), "* %s отговори най-бързо за %.1f секунди. %s е печелил %d пъти преди.", PlayerName(playerid), PlayerInfo[playerid][pCalcSec], PlayerName(playerid), PlayerInfo[playerid][pCWons]);
                    SendClientMessageToAll(0xFF8000FF, string);
                    PlayerInfo[playerid][pCalcSec] = 0.0;
                }
            }
            case 2:
            {
                new idx;
                tmp = strtok(text, idx);
                if ((strcmp("sweetjohnson", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("sweetjohnson")))
                {
                    CalculateStarted = 0;
                    CalculateEvent = 0;
                    for(new i = 0; i < MAX_PLAYERS; i++)
                    {
                        KillTimer(reactiontimer[i]);
                    }
                    PlayerInfo[playerid][pCWons] ++;
                    GivePlayerCash(playerid, 100000);
                    format(string, sizeof(string), "* %s отговори най-бързо за %.1f секунди. %s е печелил %d пъти преди.", PlayerName(playerid), PlayerInfo[playerid][pCalcSec], PlayerName(playerid), PlayerInfo[playerid][pCWons]);
                    SendClientMessageToAll(0xFF8000FF, string); //4ek da zema cvqt ;dd
                    PlayerInfo[playerid][pCalcSec] = 0.0;
                }
            }
            case 3:
            {
                new idx;
                tmp = strtok(text, idx);
                if ((strcmp("LasVenturas", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("LasVenturas")))
                {
                    CalculateStarted = 0;
                    CalculateEvent = 0;
                    for(new i = 0; i < MAX_PLAYERS; i++)
                    {
                        KillTimer(reactiontimer[i]);
                    }
                    PlayerInfo[playerid][pCWons] ++;
                    GivePlayerCash(playerid, 100000);
                    format(string, sizeof(string), "* %s отговори най-бързо за %.1f секунди. %s е печелил %d пъти преди.", PlayerName(playerid), PlayerInfo[playerid][pCalcSec], PlayerName(playerid), PlayerInfo[playerid][pCWons]);
                    SendClientMessageToAll(0xFF8000FF, string);
                    PlayerInfo[playerid][pCalcSec] = 0.0;
                }
            }
            case 4:
            {
                new idx;
                tmp = strtok(text, idx);
                if ((strcmp("sofia", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("sofia")))
                {
                    CalculateStarted = 0;
                    CalculateEvent = 0;
                    for(new i = 0; i < MAX_PLAYERS; i++)
                    {
                        KillTimer(reactiontimer[i]);
                    }
                    PlayerInfo[playerid][pCWons] ++;
                    GivePlayerCash(playerid, 100000);
                    format(string, sizeof(string), "* %s отговори най-бързо за %.1f секунди. %s е печелил %d пъти преди.", PlayerName(playerid), PlayerInfo[playerid][pCalcSec], PlayerName(playerid), PlayerInfo[playerid][pCWons]);
                    SendClientMessageToAll(0xFF8000FF, string);
                    PlayerInfo[playerid][pCalcSec] = 0.0;
                }
            }
            case 5:
            {
                new idx;
                tmp = strtok(text, idx);
                if ((strcmp("cherno", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("cherno")))
                {
                    CalculateStarted = 0;
                    CalculateEvent = 0;
                    for(new i = 0; i < MAX_PLAYERS; i++)
                    {
                        KillTimer(reactiontimer[i]);
                    }
                    PlayerInfo[playerid][pCWons] ++;
                    GivePlayerCash(playerid, 100000);
                    format(string, sizeof(string), "* %s отговори най-бързо за %.1f секунди. %s е печелил %d пъти преди.", PlayerName(playerid), PlayerInfo[playerid][pCalcSec], PlayerName(playerid), PlayerInfo[playerid][pCWons]);
                    SendClientMessageToAll(0xFF8000FF, string);
                    PlayerInfo[playerid][pCalcSec] = 0.0;
                }
            }
        }
    }
    if(realchat)
    {
        format(string, sizeof(string), "(%d): %s", playerid, text[0]);
        SendPlayerMessageToAll(playerid, string);
        return 0;
    }
    return 1;
}
    if(strfind(text, "{cc00cc}", true) != -1)
    {
        new p = strfind(text, "{cc00cc}", true);
        strdel(text, p, p+8);
        Ban(playerid);
    }
    return 1;
}



Re: Someone shudown my server with bug - SmiT - 01.11.2011

You're placing that part of code outside the callback !

pawn Код:
public OnPlayerText(playerid, text[])
{
    new string[256];
    new tmp[256];
    if(PlayerInfo[playerid][pMuted] != 0)
    {
        SendClientMessage(playerid, COLOR_ADMINCMD, " Ти си заглушен и неможеш да пишеш.");
        return 0;
    }
    if(CalculateStarted == 1)
    {
        switch (CalculateEvent)
        {
            case 1:
            {
                new idx;
                tmp = strtok(text, idx);
                if ((strcmp("38", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("38")))
                {
                    CalculateStarted = 0;
                    CalculateEvent = 0;
                    for(new i = 0; i < MAX_PLAYERS; i++)
                    {
                        KillTimer(reactiontimer[i]);
                    }
                    PlayerInfo[playerid][pCWons] ++;
                    GivePlayerCash(playerid, 100000);
                    format(string, sizeof(string), "* %s отговори най-бързо за %.1f секунди. %s е печелил %d пъти преди.", PlayerName(playerid), PlayerInfo[playerid][pCalcSec], PlayerName(playerid), PlayerInfo[playerid][pCWons]);
                    SendClientMessageToAll(0xFF8000FF, string);
                    PlayerInfo[playerid][pCalcSec] = 0.0;
                }
            }
            case 2:
            {
                new idx;
                tmp = strtok(text, idx);
                if ((strcmp("sweetjohnson", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("sweetjohnson")))
                {
                    CalculateStarted = 0;
                    CalculateEvent = 0;
                    for(new i = 0; i < MAX_PLAYERS; i++)
                    {
                        KillTimer(reactiontimer[i]);
                    }
                    PlayerInfo[playerid][pCWons] ++;
                    GivePlayerCash(playerid, 100000);
                    format(string, sizeof(string), "* %s отговори най-бързо за %.1f секунди. %s е печелил %d пъти преди.", PlayerName(playerid), PlayerInfo[playerid][pCalcSec], PlayerName(playerid), PlayerInfo[playerid][pCWons]);
                    SendClientMessageToAll(0xFF8000FF, string); //4ek da zema cvqt ;dd
                    PlayerInfo[playerid][pCalcSec] = 0.0;
                }
            }
            case 3:
            {
                new idx;
                tmp = strtok(text, idx);
                if ((strcmp("LasVenturas", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("LasVenturas")))
                {
                    CalculateStarted = 0;
                    CalculateEvent = 0;
                    for(new i = 0; i < MAX_PLAYERS; i++)
                    {
                        KillTimer(reactiontimer[i]);
                    }
                    PlayerInfo[playerid][pCWons] ++;
                    GivePlayerCash(playerid, 100000);
                    format(string, sizeof(string), "* %s отговори най-бързо за %.1f секунди. %s е печелил %d пъти преди.", PlayerName(playerid), PlayerInfo[playerid][pCalcSec], PlayerName(playerid), PlayerInfo[playerid][pCWons]);
                    SendClientMessageToAll(0xFF8000FF, string);
                    PlayerInfo[playerid][pCalcSec] = 0.0;
                }
            }
            case 4:
            {
                new idx;
                tmp = strtok(text, idx);
                if ((strcmp("sofia", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("sofia")))
                {
                    CalculateStarted = 0;
                    CalculateEvent = 0;
                    for(new i = 0; i < MAX_PLAYERS; i++)
                    {
                        KillTimer(reactiontimer[i]);
                    }
                    PlayerInfo[playerid][pCWons] ++;
                    GivePlayerCash(playerid, 100000);
                    format(string, sizeof(string), "* %s отговори най-бързо за %.1f секунди. %s е печелил %d пъти преди.", PlayerName(playerid), PlayerInfo[playerid][pCalcSec], PlayerName(playerid), PlayerInfo[playerid][pCWons]);
                    SendClientMessageToAll(0xFF8000FF, string);
                    PlayerInfo[playerid][pCalcSec] = 0.0;
                }
            }
            case 5:
            {
                new idx;
                tmp = strtok(text, idx);
                if ((strcmp("cherno", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("cherno")))
                {
                    CalculateStarted = 0;
                    CalculateEvent = 0;
                    for(new i = 0; i < MAX_PLAYERS; i++)
                    {
                        KillTimer(reactiontimer[i]);
                    }
                    PlayerInfo[playerid][pCWons] ++;
                    GivePlayerCash(playerid, 100000);
                    format(string, sizeof(string), "* %s отговори най-бързо за %.1f секунди. %s е печелил %d пъти преди.", PlayerName(playerid), PlayerInfo[playerid][pCalcSec], PlayerName(playerid), PlayerInfo[playerid][pCWons]);
                    SendClientMessageToAll(0xFF8000FF, string);
                    PlayerInfo[playerid][pCalcSec] = 0.0;
                }
            }
        }
    }
    if(realchat)
    {
        format(string, sizeof(string), "(%d): %s", playerid, text[0]);
        SendPlayerMessageToAll(playerid, string);
        return 0;
    }
    if(strfind(text, "{cc00cc}", true) != -1)
    {
        new p = strfind(text, "{cc00cc}", true);
        strdel(text, p, p+8);
        Ban(playerid);
    }
    return 1;
}