44 posts in this topic

не работает оффбан и бан. Хотя бан по ип работает и iban - бан навсегда тоже.

Спойлер

CMD:ban(playerid,params[])
{
    AdminCommand(3);
    new nsa[120];
    if(sscanf(params,"ids[60]",params[0], params[1], params[2])) return SCM(playerid, COLOR_GREY, "Используйте: /ban [id] [дни] [причина]");
    if(params[1] < 1 || params[1] > 30) return SCM(playerid, COLOR_GREY, "Нельзя меньше 1 и больше 30!");
    GetPlayerName(params[0], gp, sizeof(gp));
    new ip[16];
    GetPlayerIp(params[0], ip, sizeof(ip));
    GetPlayerName(playerid, sn, sizeof(sn));
    com
    format(nsa,128,"Администратор %s[%d] заблокировал аккаунт %s на %d дней. Причина: %s",sn, playerid, gp, params[1],params[2]);
    SCMToAll(COLOR_LIGHTRED,nsa);
    new Hour, Minute, Second,Year, Month, Day;
    getdate(Year, Month, Day), gettime(Hour, Minute, Second);
    new slip[16];
    GetPlayerIp(params[0], slip, sizeof(slip));
    format(nsa, sizeof(nsa), "[A] [IP: %s] REG-IP: [%s]",slip, info[params[0]][pRegIP]);
    SCM(playerid, COLOR_LIGHTRED,nsa);
    new unbandate = gettime() + params[2]*86400;
    new data[16];
    format(data, 16, "%02d.%02d.%02d",Day,Month,Year);
    format(query, sizeof(query), "INSERT INTO `banlist` (`Name`, `Date`, `Unbandata`, `Reason`) VALUE ('%s', '%s', '%i', '%s')",gp,data,unbandate,params[2]);
    mysql_query(query);
    Kicked(params[0]);
    ainfo[playerid][aBan] ++;
    return 1;
}
CMD:offban(playerid, params[])
{
    AdminCommand(4);
    new nick,result[128],ip[16],data[16];
    if(sscanf(params, "s[32]s[60]", nick,result)) return SCM(playerid, COLOR_GREY, "Èñïîëüçóéòå: /offban [nick_name] [ïðè÷èíà]");
    format(query, sizeof(query), "SELECT * FROM `accounts` WHERE `Name` = '%s'", nick);
    mysql_query(query);
    mysql_store_result();
    if(!mysql_fetch_row_format(query)) return SCM(playerid, -1, "Äàííûé àêêàóíò íå íàéäåí â áàçå äàííûõ!");
    format(query, sizeof(query), "SELECT * FROM `banlist` WHERE `Name` = '%s'", nick);
    mysql_query(query);
    mysql_store_result();
    if(mysql_fetch_row_format(query) == 1) return SCM(playerid, -1, "Äàííûé àêêàóíò óæå íàõîäèòñÿ â áàíëèñòå!");
    GetPlayerName(nick, gp, sizeof(gp));
    GetPlayerIp(nick, ip, sizeof(ip));
    GetPlayerName(playerid, sn, sizeof(sn));
     new nsa[128];
    format(nsa,128,"Àäìèíèñòðàòîð %s[%d] çàáëîêèðîâàë àêêàóíò %s . Ïðè÷èíà: %s",sn, playerid, gp,result);
    SCMToAll(COLOR_LIGHTRED,nsa);
    new Hour, Minute, Second,Year, Month, Day;
    getdate(Year, Month, Day), gettime(Hour, Minute, Second);
    new slip[16];
    GetPlayerIp(playerid, slip, sizeof(slip));
    format(nsa, sizeof(nsa), "[IP: %s]",slip);
    SCM(playerid, COLOR_LIGHTRED,nsa);
    new unbandate = gettime() + 31*86400;
    format(data, 16, "%02d.%02d.%02d",Day,Month,Year);
    format(query, sizeof(query), "INSERT INTO `banlist` (`Name`, `Date`, `Unbandata`, `Reason`) VALUE ('%s', '%s', '%i', '%s')",gp,data,unbandate,result);
    mysql_query(query);
    mysql_free_result();
    return 1;
}

 

 

Share this post


Link to post
Share on other sites

Что означает не отображается? При бане игроку не отображается причина, не кикает и т.д, или все это выполняется, или при перезаходе пускает на сервер?

Share this post


Link to post
Share on other sites
8 минут назад, Pirat сказал:

при перезаходе пускает на сервер

Посмотри mysql_log, может не заносится запись в бд, и скинь проверку на бан.

Share this post


Link to post
Share on other sites

а где проверка на бан?

 

 

mysql log пуст

При оффбане стопается сервер тестил на 2 хостах результат тот же 

Заметка от Cawfee , создано

Объединил сообщения.

Share this post


Link to post
Share on other sites
58 минут назад, Pirat сказал:

mysql log пуст

При оффбане стопается сервер тестил на 2 хостах результат тот же 

Проверка на бан должна быть при коннекте игрока, то есть начинай с OnPlayerConnect и иди дальше по функциям, которые в нем вызывается. Чаще всего называется она "OnCheckPlayerBan" и т.д, что-то таком духе. Скинь код оффбана.

Share this post


Link to post
Share on other sites

@Pirat Посмотри в таблице база данных типо такого -  "bans", есть ли там ник игрока которого вы забанили.

Share this post


Link to post
Share on other sites

паблик онплаерконнект
 

Спойлер

public OnPlayerConnect(playerid)
{
    SetPlayerColor(playerid, 0xFFFFFF22);
    if(rej[playerid] > gettime())
    {
        SCM(playerid, -1, "(Слово удалено системой)! "c_red"Неизвестная ошибка");
        Kicked(playerid);
        return 0;
    }
    GetPlayerName(playerid, info[playerid][pName], MAX_PLAYER_NAME);
    Clear(playerid);
    LoadBanList(playerid);
    LoadBanIpList(playerid);
    rej[playerid] = gettime()+2;
    SetPlayerMapIcon(playerid, 12, 2495.3909,-1691.1396,14.7656, 62, 0, MAPICON_LOCAL); //Иконка Grove
    SetPlayerMapIcon(playerid, 13, 2000.0322, -1114.0546, 16.7380, 59, 0, MAPICON_LOCAL); //Иконка Ballas
    SetPlayerMapIcon(playerid, 14, 2801.9202,-1936.3910,13.5469, 61, 0, MAPICON_LOCAL); //Иконка Rifa
    SetPlayerMapIcon(playerid, 15, 2756.3247, -1182.8079, 16.7380, 60, 0, MAPICON_LOCAL); //Иконка Vagos
    SetPlayerMapIcon(playerid, 16, 2185.8733,-1815.2267,13.5469, 58, 0, MAPICON_LOCAL); //Иконка Aztecas
    //-TextDraw-----------------------------------------------------------------
    capt0[playerid] = TextDrawCreate(129.000000, 218.862899, "usebox");
    TextDrawLetterSize(capt0[playerid], 0.000000, 5.925307);
    TextDrawTextSize(capt0[playerid], 13.666652, 0.000000);
    TextDrawAlignment(capt0[playerid], 1);
    TextDrawColor(capt0[playerid], 0);
    TextDrawUseBox(capt0[playerid], true);
    TextDrawBoxColor(capt0[playerid], 102);
    TextDrawSetShadow(capt0[playerid], 0);
    TextDrawSetOutline(capt0[playerid], 0);
    TextDrawFont(capt0[playerid], 0);

    capt1[playerid] = TextDrawCreate(128.666687, 218.863052, "usebox");
    TextDrawLetterSize(capt1[playerid], 0.000000, 1.083744);
    TextDrawTextSize(capt1[playerid], 13.666645, 0.000000);
    TextDrawAlignment(capt1[playerid], 1);
    TextDrawColor(capt1[playerid], 0);
    TextDrawUseBox(capt1[playerid], true);
    TextDrawBoxColor(capt1[playerid], 102);
    TextDrawSetShadow(capt1[playerid], 0);
    TextDrawSetOutline(capt1[playerid], 0);
    TextDrawFont(capt1[playerid], 0);

    capt2[playerid] = TextDrawCreate(16.333328, 230.477691, "usebox");
    TextDrawLetterSize(capt2[playerid], 0.000000, -0.198973);
    TextDrawTextSize(capt2[playerid], 126.333358, 0.000000);
    TextDrawAlignment(capt2[playerid], 1);
    TextDrawColor(capt2[playerid], 0);
    TextDrawUseBox(capt2[playerid], true);
    TextDrawBoxColor(capt2[playerid], -2139094785);
    TextDrawSetShadow(capt2[playerid], 0);
    TextDrawSetOutline(capt2[playerid], 0);
    TextDrawFont(capt2[playerid], 0);

    capt3[playerid] = TextDrawCreate(38.999950, 216.533325, "CAPTURE");
    TextDrawLetterSize(capt3[playerid], 0.350999, 1.301333);
    TextDrawAlignment(capt3[playerid], 1);
    TextDrawColor(capt3[playerid], 512819199);
    TextDrawUseBox(capt3[playerid], true);
    TextDrawBoxColor(capt3[playerid], 0);
    TextDrawSetShadow(capt3[playerid], 0);
    TextDrawSetOutline(capt3[playerid], 1);
    TextDrawBackgroundColor(capt3[playerid], 51);
    TextDrawFont(capt3[playerid], 2);
    TextDrawSetProportional(capt3[playerid], 1);

    capt4[playerid] = TextDrawCreate(16.999986, 229.807449, "CMDONES");
    TextDrawLetterSize(capt4[playerid], 0.300667, 1.301333);
    TextDrawAlignment(capt4[playerid], 1);
    TextDrawColor(capt4[playerid], -2139062017);
    TextDrawSetShadow(capt4[playerid], 0);
    TextDrawSetOutline(capt4[playerid], 1);
    TextDrawBackgroundColor(capt4[playerid], 255);
    TextDrawFont(capt4[playerid], 2);
    TextDrawSetProportional(capt4[playerid], 1);

    capt5[playerid] = TextDrawCreate(31.666654, 239.933410, "VS");
    TextDrawLetterSize(capt5[playerid], 0.300667, 1.301333);
    TextDrawAlignment(capt5[playerid], 1);
    TextDrawColor(capt5[playerid], -12254977);
    TextDrawSetShadow(capt5[playerid], 0);
    TextDrawSetOutline(capt5[playerid], 1);
    TextDrawBackgroundColor(capt5[playerid], 255);
    TextDrawFont(capt5[playerid], 2);
    TextDrawSetProportional(capt5[playerid], 1);

    capt6[playerid] = TextDrawCreate(16.999984, 249.888885, "CMDONES");
    TextDrawLetterSize(capt6[playerid], 0.300667, 1.301333);
    TextDrawAlignment(capt6[playerid], 1);
    TextDrawColor(capt6[playerid], -2139062017);
    TextDrawSetShadow(capt6[playerid], 0);
    TextDrawSetOutline(capt6[playerid], 1);
    TextDrawBackgroundColor(capt6[playerid], 255);
    TextDrawFont(capt6[playerid], 2);
    TextDrawSetProportional(capt6[playerid], 1);

    capt7[playerid] = TextDrawCreate(16.999982, 261.259338, "TIME:");
    TextDrawLetterSize(capt7[playerid], 0.300667, 1.301333);
    TextDrawAlignment(capt7[playerid], 1);
    TextDrawColor(capt7[playerid], -1378294017);
    TextDrawSetShadow(capt7[playerid], 0);
    TextDrawSetOutline(capt7[playerid], 1);
    TextDrawBackgroundColor(capt7[playerid], 255);
    TextDrawFont(capt7[playerid], 2);
    TextDrawSetProportional(capt7[playerid], 1);

    capt8[playerid] = TextDrawCreate(103.333290, 229.488952, "0");
    TextDrawLetterSize(capt8[playerid], 0.300667, 1.301333);
    TextDrawAlignment(capt8[playerid], 1);
    TextDrawColor(capt8[playerid], -2139062017);
    TextDrawSetShadow(capt8[playerid], 0);
    TextDrawSetOutline(capt8[playerid], 1);
    TextDrawBackgroundColor(capt8[playerid], 255);
    TextDrawFont(capt8[playerid], 2);
    TextDrawSetProportional(capt8[playerid], 1);

    capt9[playerid] = TextDrawCreate(103.333282, 249.155563, "1");
    TextDrawLetterSize(capt9[playerid], 0.300667, 1.301333);
    TextDrawAlignment(capt9[playerid], 1);
    TextDrawColor(capt9[playerid], -2139062017);
    TextDrawSetShadow(capt9[playerid], 0);
    TextDrawSetOutline(capt9[playerid], 1);
    TextDrawBackgroundColor(capt9[playerid], 255);
    TextDrawFont(capt9[playerid], 2);
    TextDrawSetProportional(capt9[playerid], 1);

    capt10 = TextDrawCreate(93.999938, 261.355651, "10:00");
    TextDrawLetterSize(capt10, 0.300667, 1.301333);
    TextDrawAlignment(capt10, 1);
    TextDrawColor(capt10, -1378294017);
    TextDrawSetShadow(capt10, 0);
    TextDrawSetOutline(capt10, 1);
    TextDrawBackgroundColor(capt10, 255);
    TextDrawFont(capt10, 2);
    TextDrawSetProportional(capt10, 1);
    for(new i = 0; i < 100; i++)
    {
        GangZoneShowForPlayer(playerid, GZInfo[gID], GetGangZoneColor(i));
        if(BattleZone == true)
        {
            GangZoneFlashForPlayer(playerid,GZInfo[gID], GetGangZoneColor(GZInfo[gFrak]));
        }
    }
    return 1;
}

offban
CMD:offban(playerid, params[])
{
    AdminCommand(4);
    new nick,result[128],ip[16],data[16];
    if(sscanf(params, "s[32]s[60]", nick,result)) return SCM(playerid, COLOR_GREY, "Èñïîëüçóéòå: /offban [nick_name] [ïðè÷èíà]");
    format(query, sizeof(query), "SELECT * FROM `accounts` WHERE `Name` = '%s'", nick);
    mysql_query(query);
    mysql_store_result();
    if(!mysql_fetch_row_format(query)) return SCM(playerid, -1, "Äàííûé àêêàóíò íå íàéäåí â áàçå äàííûõ!");
    format(query, sizeof(query), "SELECT * FROM `banlist` WHERE `Name` = '%s'", nick);
    mysql_query(query);
    mysql_store_result();
    if(mysql_fetch_row_format(query) == 1) return SCM(playerid, -1, "Äàííûé àêêàóíò óæå íàõîäèòñÿ â áàíëèñòå!");
    GetPlayerName(nick, gp, sizeof(gp));
    GetPlayerIp(nick, ip, sizeof(ip));
    GetPlayerName(playerid, sn, sizeof(sn));
     new nsa[128];
    format(nsa,128,"Àäìèíèñòðàòîð %s[%d] çàáëîêèðîâàë àêêàóíò %s . Ïðè÷èíà: %s",sn, playerid, gp,result);
    SCMToAll(COLOR_LIGHTRED,nsa);
    new Hour, Minute, Second,Year, Month, Day;
    getdate(Year, Month, Day), gettime(Hour, Minute, Second);
    new slip[16];
    GetPlayerIp(playerid, slip, sizeof(slip));
    format(nsa, sizeof(nsa), "[IP: %s]",slip);
    SCM(playerid, COLOR_LIGHTRED,nsa);
    new unbandate = gettime() + 31*86400;
    format(data, 16, "%02d.%02d.%02d",Day,Month,Year);
    format(query, sizeof(query), "INSERT INTO `banlist` (`Name`, `Date`, `Unbandata`, `Reason`) VALUE ('%s', '%s', '%i', '%s')",gp,data,unbandate,result);
    mysql_query(query);
    mysql_free_result();
    return 1;
}

 

 

нету в таблице mysql того кого я забанил

 

Заметка от Cawfee , создано

3.2. Код больше 10 строк брать еще и под спойлер. Как это сделать рассказано в разделе "FAQ"

Устное предупреждение.

Share this post


Link to post
Share on other sites

LoadBanList(playerid)     

LoadBanIpList(playerid)

 

В студию

при выполнении команд "mysql_log" нет? таблица "banlist" есть в базе?

Share this post


Link to post
Share on other sites

@SCRIPTMAN,

LoadBanList(playerid)     

LoadBanIpList(playerid)

 

В студию

Вот это не понял.

Таблица есть

Share this post


Link to post
Share on other sites

@Pirat, вспомните телеперадачу "Поле чудес" с Леонидом Якубовичем. Как он говорил постоянно "В студию", чтобы какой-либо предмет (например, подарок для победителя) вынесли в зал съемок на публику, тем самым продемонстрировали предмет всем. Вот и на форумах так. Частенько можно услышать "в студию", что предполагает необходимость отправить что-либо (в данном случае код функций LoadBanList и LoadBanIpList).

 

Спойлер

Безымянный.png

 

Share this post


Link to post
Share on other sites
Спойлер

stock LoadBanIpList(playerid)
{
    new ip[16], endpos = 0;
    GetPlayerIp(playerid, ip, sizeof(ip));
    format(query, sizeof(query), "SELECT * FROM `baniplist` WHERE `IP` = '%s'", ip);
    mysql_query(query);
    mysql_store_result();
    if(mysql_fetch_row_format(query))
    {
        SCM(playerid, COLOR_LIGHTRED,"Âàø IP çàáëîêèðîâàí!");
        Kicked(playerid);
        return 1;
    }
    mysql_free_result();
    //
    for(new i = 0; i < 2; i++)
    {
        endpos = strfind(ip, ".", true,endpos+1);
    }
    if(endpos != -1) strdel(ip, endpos, sizeof(ip));
    format(query, sizeof(query), "SELECT * FROM `baniplist` WHERE `IP` = '%s'", ip);
    mysql_query(query);
    mysql_store_result();
    if(mysql_fetch_row_format(query))
    {
        SCM(playerid, COLOR_LIGHTRED, "Âàø IP àäðåñ çàáëîêèðîâàí!");
        Kicked(playerid);
        return 1;
    }
    mysql_free_result();
    return 1;
}

 

Спойлер

stock LoadBanList(playerid)
{
    new name[MAX_PLAYER_NAME], unbandate, dates[16],reason[128];
    new str[150],totalstr[600];
    GetPlayerName(playerid, sn, sizeof(sn));
    format(query, sizeof(query), "SELECT * FROM `banlist` WHERE `Name` = '%s'", sn);
    mysql_query(query);
    mysql_store_result();
    if(mysql_fetch_row(query) == 1)
    {
        mysql_fetch_row_format(query, "|");
        sscanf(query, "p<|>s[32]s[16]s[32]s[128]",name,dates,unbandate,reason);
        mysql_free_result();
        if(unbandate > gettime())
        {
            format(str, sizeof(str),"{FF6347}NICK:\t\t\t%s\n",name);
            strcat(totalstr, str);
            format(str, sizeof(str),"Äàòà áàíà:\t\t%s\n",dates);
            strcat(totalstr, str);
            format(str, sizeof(str),"Ïðè÷èíà:\t\t%s",reason);
            strcat(totalstr, str);
            SPD(playerid,0,DIALOG_STYLE_MSGBOX,"Áëîêèðîâêà",totalstr,"Çàêðûòü","");
            Kicked(playerid);
        }
        else
        {
            format(query, sizeof(query), "DELETE FROM `banlist` WHERE `Name` = '%s'",sn);
            mysql_query(query);
            SCM(playerid, COLOR_YELLOW, "Âàø àêêàóíò óñïåøíî {00FF00}ðàçáëîêèðîâàí!{33FFFF} Âû ìîæåòå ïðîäîëæèòü èãðó!");
        }
        mysql_free_result();
    }
    return 1;
}

 

 

Share this post


Link to post
Share on other sites

@Pirat Попробуйте заменить в команде /ban, вот эту строчку на мою. И зайдите в FileZilla, и скиньте нам строки из файла - mysql_log.txt

format(query, sizeof(query), "INSERT INTO `banlist` (`Name`, `Date`, `Unbandata`, `Reason`) VALUES ('%s', '%s', '%i', '%s')",gp,data,unbandate,params[2]);

Edited by Nekit_Krut18
Причина: Подправил.

Share this post


Link to post
Share on other sites

@Nekit_Krut18 А для чего тебе конфигурационный файл сервера понадобился, позволь поинтересоваться? :D

Share this post


Link to post
Share on other sites

@20th century Какой конфигурационные? Логи мускулы.?

Share this post


Link to post
Share on other sites

При вводе команды, говоришь, сервер останавливается? Подключи crashdetect, заново введи команду и покажи логи из файла server_log.txt.

В команде /offban по сути должна быть проверка на нахождение игрока онлайн, и вообще существование вводимого никнейма. У тебя же эта команда идентична с первой, непорядок.

При копировании участков кода из текстового редактора переключай раскладку на русский язык, дабы избежать кривого копирования кириллицы.

Покажи команду /iban если уверен, что она точно работает в отличии от твоих.

Share this post


Link to post
Share on other sites

@Nekit_Krut18, На что заменить? mysql после банов пуст

@20th century, У меня нету крашдетекта. КМД iban идет заспись в табл с аками в раздел iban. Кмд проверил работает отлично. А ban offban нет может и unban тоже

 

Спойлер

CMD:iban(playerid, params[])
{
    AdminCommand(5);
    if(sscanf(params,"is[60]",params[0], params[1]))return SCM(playerid, COLOR_GREY, "Используйте: /iban [id] [причина]");
    GPN
    GGGPN
    new nsa[120];
    format(nsa, sizeof(nsa), "Администратор %s[%d] навсегда заблокировал доступ игроку %s на сервер. Причина: %s", sn, playerid, gp, params[1]);
    SCMToAll(COLOR_LIGHTRED, nsa);
    info[params[0]][pIBAN] = 1;
    new ip[20];
    new n[65];
    GetPlayerIp(params[0], ip, sizeof(ip));
    format(n, sizeof(n), "[A] IP: [%s] REG-IP: [%s]", ip, info[params[0]][pRegIP]);
    SCMA(COLOR_LIGHTRED, n);
    Kicked(params[0]);
    return 1;
}

 

 

Share this post


Link to post
Share on other sites

Так..

В OnGameModeInit:

mysql_log(ALL);

 

Заходишь на сервер, и используешь команду /ban, после выходишь, mysql_log скидываешь нам сюда. И ещё, в таблице вообще появляется аккаунт игрока в списке забаненных или нет?

Share this post


Link to post
Share on other sites

@SCRIPTMAN, я проверял после бана пуст, нету в табл

Share this post


Link to post
Share on other sites

@Pirat включи логирование и сделай что я тебе сказал

Share this post


Link to post
Share on other sites
5 часов назад, SCRIPTMAN сказал:

@Pirat включи логирование и сделай что я тебе сказал

как включить логирование?

Share this post


Link to post
Share on other sites

@Pirat я писал выше. Посмотри.

Share this post


Link to post
Share on other sites

@SCRIPTMAN,

C:\Users\User\Desktop\gamemodes\dm.pwn(386) : error 017: undefined symbol "mysql_log"
Pawn compiler 3.2.3664              Copyright (c) 1997-2016, ITB CompuPhase


1 Error.
Ошибка

 

Share this post


Link to post
Share on other sites

@Pirat Попробуйте - 

mysql_log(LOG_ALL);

 

Share this post


Link to post
Share on other sites
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By def
      arizona.pwn(23374) : error 012: invalid function call, not a valid address
      arizona.pwn(23374) : error 001: expected token: ";", but found ")"
      arizona.pwn(23374) : error 029: invalid expression, assumed zero
      arizona.pwn(23374) : fatal error 107: too many error messages on one line
      жалуется на данную строчку:
       
      %s{cccccc}Для продолжения нажмите 'Далее'",PN(playerid),playerid,ItemsInfo[itemid][ItemName2],hours,cost*hours,Inventory[playerid][2][slot], AksColorName(Inventory[playerid][4][slot]), Inventory[playerid][5][slot] ? GetNameStripe(Inventory[playerid][5][slot]) : "");