В теме 44 сообщения

@Nekit_Krut18,

C:\Users\User\Desktop\gamemodes\dm.pwn(386) : error 017: undefined symbol "mysql_log"

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какая у Вас версия MySQL? (P.S. Откройте через Pawno файл a_mysql.inc через путь .../pawno/include/a_mysql.inc)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@nexus505 

SA-MP MySQL plugin R5

Copyright (c) 2008-2010, G-sTyLeZzZ 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

up
При бане /ban идет запись в таблицу, а при входе в акк разбан, хотя я себя забанил на 30 дней.
При бане /offban идет краш сервера (не пингует сервер).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно удалить offban там нету ничего важного?

И только offban удалить кмд или еще чтото есть в моде?

И можно ли сделать оффбан  как на арз тип format --  /offban [Nick] [obnylenia (0/1)] [days] [Reason]  ???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 25.05.2020 в 15:49, Pirat сказал:

При бане /ban идет запись в таблицу, а при входе в акк разбан, хотя я себя забанил на 30 дней.

Забанили Вы себя. Данные о блокировке появились в базе данных. Заходите на сервер - данных о блокировке нет. В базе данных все равно указано, что Вы забанены. Так?

В 27.05.2020 в 21:08, Pirat сказал:

Можно удалить offban там нету ничего важного?

Что для Вас важно определяете сами. Если не нужна эта команда, сносите ее. 

 

В 27.05.2020 в 21:08, Pirat сказал:

И можно ли сделать оффбан  как на арз тип format --  /offban [Nick] [obnylenia (0/1)] [days] [Reason]  ???

Можно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 29.05.2020 в 11:59, odosenok сказал:

Забанили Вы себя. Данные о блокировке появились в базе данных. Заходите на сервер - данных о блокировке нет. В базе данных все равно указано, что Вы забанены. Так?

Что для Вас важно определяете сами. Если не нужна эта команда, сносите ее. 

 

Можно.

Здравствуйте, начнем с первого вопроса. Смотрите, я себя забанил по формату "/ban [id] [days] [Reason]" -> "/ban 0 30 1". В общий чат написали - Администратор Pirat[0] заблокировал аккаунт Pirat[0] на 30 дней. Причина: 1 и кикнуло. После я вышел из игры и зашел в базу данных, где увидел в таблице `banlist` свой ник и т.д. Я думал что все окей работает, решил перезайти и перепроверить все. Зашел в игру и мне написало - Ваш аккаунт успешно {00FF00}разблокирован! Вы можете продолжить игру!. Меня это смутило и я написал данную тему.

Далее 2 вопрос Ваш. Я не спец и не разбираюсь в павно. И не знаю что будет если я ее удалю, задену ли я какие то важные или не совсем функции или системы сервера.

Думаю что я ответил на все Ваши вопросы.

Update 
При коннекте в серверу есть проверки на бан скину в спойлере. Название проверок - "LoadBanList" "LoadBanIpList".Кто разбираться посмотрите. Оставлю две проверки на бан. Одна проверка на обычный бан а другой на бан по ип.
 

Спойлер

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;
}

 

Спойлер

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;
}

 

 

Отредактировано пользователем odosenok

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

3.2. Как правильно выкладывать код на форум рассказано в разделе "FAQ"

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Pirat, замените функцию следующей, проделайте все те же операции и покажите логи сервера.

Спойлер

 


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, "|");
		printf("[LoadBanList]: %s", 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;
}

И какой тип данных в столбце с датой бана в таблице banlist?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@odosenok В столбце -  banlist  ~~~>  `Name`, `Date`, `Unbandata`, `Reason`.

Спойлер

[15:45:19] MySQL connected!
[15:45:19] Number of vehicle models: 0
[15:45:59] [connection] 176.122.98.4:59099 requests connection cookie.
[15:46:00] [connection] incoming connection: 176.122.98.4:59099 id: 0
[15:46:01] [join] Pirat has joined the server (0:176.122.98.4)
[15:46:17] [part] Pirat has left the server (0:2)
[15:46:37] [connection] incoming connection: 176.122.98.4:56742 id: 0
[15:46:47] [connection] incoming connection: 176.122.98.4:56745 id: 0
[15:46:48] [join] Pirat has joined the server (0:176.122.98.4)
[15:46:48] [LoadBanList]: Pirat|30.05.2020|1595076376|1 
[15:47:15] [part] Pirat has left the server (0:1)
[15:47:15] [connection] incoming connection: 176.122.98.4:56751 id: 0
[15:47:26] [connection] incoming connection: 176.122.98.4:56753 id: 0
[15:47:26] [join] Pirat has joined the server (0:176.122.98.4)
[15:47:27] [part] Pirat has left the server (0:2)

Так же я увидел проблему что в таблице `accounts` в столбце REGIP не идет туда запись ип. Там просто прописано "0". Бан по ип работает проверил. Но бан ип идет в другую таблицу. И да еще 1 вопрос можно как то добавить в таблицу `baniplist` ник админка кто забанил, а то там только ИП указан?

Отредактировано пользователем Pirat
Причина: + 1 вопрос

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Короче, я изучал давно его мод, и с работой бана всё нормально, всё заносится и удаляется. Когда банишь, есть формула gettime() + 32 *84600, вроде такая. Но каким то образом, в бд даже если брать только gettime, то значение bantime меньше, как так? тобишь в бд время должно было получится больше чем gettime, поэтому его пропускает на сервер.

Спойлер

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} Вы можете продолжить игру!");
        }

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@odosenok Я тут всповнил что я заменил плагин и инклуд mysql. Это может быть из за него? Я поменял на ту же версию и от того же автора. P.S. смотрел версию и автора в инклуде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 31.05.2020 в 23:21, Pirat сказал:

@odosenok Я тут всповнил что я заменил плагин и инклуд mysql. Это может быть из за него? Я поменял на ту же версию и от того же автора. P.S. смотрел версию и автора в инклуде.

Он тут не при чём, так как у вас в таблице получается дата разбана даже меньше gettime().

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Nekit_Krut18 Забанил на 1 день, скрин с таблице 'banlist' - https://imgur.com/LPGUm9t

Отредактировано пользователем Pirat

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

up

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Pirat, может быть перенести Вашу тему в "Стол заказов"? Думаю, там быстрее Вам помогут, правда, вероятно, на платной основе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@odosenok Давайте

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

Перенес

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Pirat в команде "/ban" в вычислении времени разбана ошибка, там не количество дней умножается на количество секунд в сутках (86400), а ник игрока. Попробуйте с таким вариантом: 

Спойлер

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[1]*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;
}

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

АВТОМАТИЧЕСКИ СФОРМИРОВАННОЕ СООБЩЕНИЕ:

Данная тема была перемещена модерацией или администрацией портала PAWNO-RUS.RU! 

Перемещена из: "Скриптинг PAWN > Вопросы / проблемы по скриптингу"

Перемещена в: "Магазин > Стол заказов"

 

С уважением, ваш Бот! 

Если вы НЕ согласны с переносом данной темы в раздел "Магазин > Стол заказов", пожалуйтесь на это сообщение в жалобе указав причины вашего недовольства. Спасибо. 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@DEST не помогло

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • gooding
      От gooding


      Скачать файл PAR RP | Доработанный мод Cruela RP | Без багов
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
      Основа данного мода: Cruela RP
       
       

      Добавил gooding Добавлено 20.11.2024 Категория Моды Автор GOODING (Я)  
    • gooding
      От gooding
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
      Основа данного мода: Cruela RP
       
       

    • Yashich
      От Yashich
      Возникла проблема, не работает команда /giverank Что здесь может работать не так? Заранее спасибо за ответ)
      Вот строки кода связанные с этой командой (мод Аризона)
       
      CMD:giverank(playerid, params[]) {     if(PI[playerid][pMember]<=0)return 0;     if(PI[playerid][pRank] < 9 && PI[playerid][pLeader] == 0) return SCM(playerid, COLOR_RED, !"Отказано в доступе!");     if(sscanf(params,"ud",params[0],params[1])) return SCM(playerid, COLOR_RED, !"Используйте: /giverank [id] [rank]");     if(!ProxDetectorS(8.0, playerid, params[0])) return SCM(playerid, COLOR_GREY, !"Вы должны находиться рядом с игроком!");     if(PI[params[0]][pLeader] > 0 ) return SCM(playerid, COLOR_RED, !"Вы не можете изменять ранг лидеру");     if(params[1] < 1) return SCM(playerid, COLOR_GREY, !"Нельзя повысить до этого ранга");     if(Clother[params[0]]!=-1)return 0;     if(GetPlayerVirtualWorld(playerid)!=GetPlayerVirtualWorld(params[0]))return 0;     if(!IsPlayerConnected(params[0])) return SCM(playerid, COLOR_GREY, !"Игрок не найден");     if(PI[playerid][pRank] <= PI[params[0]][pRank]) return SCM(playerid, COLOR_GREY, !"Вы не можете повысить/понизить этого игрока");     if(PI[playerid][pRank] == 9 && params[1] > 8) return SCM(playerid, COLOR_RED, !"Нельзя выдать ранг больше 8");     if(params[1] > 9) return SCM(playerid, COLOR_GREY, !"Нельзя повысить до этого ранга");     if(PI[params[0]][pMember] != PI[playerid][pMember]) return SCM(playerid, COLOR_GREY, !"Игрок находиться в другой организации!");     str_1[0] = EOS;     f(str_1,100,"Лидер %s %s до %i ранга",PN(playerid),PI[params[0]][pRank] > params[1] ? ("понизил"):("повысил"),params[1]);     SCM(params[0],COLOR_LIGHTBLUE,str_1);     f(str_1,100,"Вы %sи игрока %s до %i ранга",PI[params[0]][pRank] > params[1] ? ("понизил"):("повысил"),PN(params[0]),params[1]);     SCM(playerid,COLOR_LIGHTBLUE,str_1);     PI[params[0]][pRank] = params[1];     UpdatePlayerDataInt(params[0], "Rank", params[1]);     if(PI[params[0]][pSex] == 2) if(TeamDuty{params[0]}) SetPlayerSkinEx(params[0],GOrgSkins[GetTeamID(params[0])][params[1]]), TogglePlayerControllable(params[0],true);     else if(TeamDuty{params[0]}) SetPlayerSkinEx(params[0],MOrgSkins[GetTeamID(params[0])][params[1]]), TogglePlayerControllable(params[0],true);     return 1; }