Популярный пост Oxxy Опубликовано 31 марта, 2013 Популярный пост Жалоба Поделиться Опубликовано 31 марта, 2013 (изменено) Создал себе репозиторий. Скидываю туда разный хлам. Переписал старые @ipban и @unbanip.Пользуйтесь наздоровье. Изменено 31 марта, 2013 пользователем Oxxy 24 Ссылка на комментарий Поделиться на другие сайты Поделиться
RelaX Опубликовано 18 апреля, 2015 Жалоба Поделиться Опубликовано 18 апреля, 2015 (изменено) Создал себе репозиторий. Скидываю туда разный хлам. Переписал старые @ipban и @unbanip.Пользуйтесь наздоровье.а можно конкретней написать как поставить а не просто сылку на файлы...Буть Бобр) Изменено 18 апреля, 2015 пользователем RelaX Ссылка на комментарий Поделиться на другие сайты Поделиться
RelaX Опубликовано 18 июня, 2015 Жалоба Поделиться Опубликовано 18 июня, 2015 ап Ссылка на комментарий Поделиться на другие сайты Поделиться
Fox RM Опубликовано 18 июня, 2015 Жалоба Поделиться Опубликовано 18 июня, 2015 Открываешь ea/src/map/atcommand.c , ищешь эти строки:#include "../custom/atcommand.inc"/*** Fills the reference of available commands in atcommand DBMap**/Перед ними вставляешь это:/* @ipban by Griniy. *//* Updated by Oxxy */ACMD_FUNC(ipban){struct map_session_data *pl_sd;char *modif_p, *data, *last_ip;int month, value = 0;char ip[16];nullpo_retr(-1, sd);memset(atcmd_output, '\0', sizeof(atcmd_output));memset(atcmd_player_name, '\0', sizeof(atcmd_player_name));if(!message || !*message || sscanf(message, "%199s %99[^\n]", atcmd_output, atcmd_player_name) < 2) { clif_displaymessage(fd, msg_txt(1600)); return -1;}atcmd_output[sizeof(atcmd_output)-1] = '\0';modif_p = atcmd_output;month = 0;while (modif_p[0] != '\0') { value = atoi(modif_p); if(value == 0) modif_p++; else { if(modif_p[0] == '-' || modif_p[0] == '+') modif_p++; while(modif_p[0] >= '0' && modif_p[0] <= '9') { modif_p++; if(modif_p[0] == 'm') { month = value; modif_p++; } else if (modif_p[0] != '\0') { modif_p++; } } }}if(month == 0) { clif_displaymessage(fd, msg_txt(1601)); return -1;}if(SQL_ERROR == Sql_Query(mmysql_handle, "SELECT `last_ip` From `login`, `char` WHERE login.account_id = char.account_id AND char.name = '%s'", atcmd_player_name ) ) Sql_ShowDebug(mmysql_handle);if(Sql_NumRows(mmysql_handle) == 0) { clif_displaymessage(fd, msg_txt(1602)); Sql_FreeResult(mmysql_handle); return -1;}Sql_NextRow(mmysql_handle);Sql_GetData(mmysql_handle, 0, &data, NULL); last_ip = data;strcpy(ip, last_ip);Sql_FreeResult(mmysql_handle);if(Sql_NumRows(mmysql_handle) > 0) { clif_displaymessage(fd, msg_txt(1603)); Sql_FreeResult(mmysql_handle); return -1;} else Sql_FreeResult(mmysql_handle);if(SQL_ERROR == Sql_Query(mmysql_handle, "INSERT INTO `ipbanlist` (`list`,`btime`,`rtime`,`reason`) VALUES ('%s', NOW() , NOW() + INTERVAL %d MONTH ,'AtCommand ban for user name : %s')", ip, month, atcmd_player_name)) Sql_ShowDebug(mmysql_handle);if(map_nick2sd(atcmd_player_name)) clif_GM_kick(sd, map_nick2sd(atcmd_player_name));return 0;}и это :/* @unbaip by Griniy *//* Updated by Oxxy */ACMD_FUNC(unbanip){char *data, *last_ip, ip[16], output[255];nullpo_retr(-1, sd);memset(atcmd_player_name, '\0', sizeof(atcmd_player_name));if (!message || !*message || (sscanf(message, "%23[^\n]", atcmd_player_name) < 1)) { clif_displaymessage(fd, msg_txt(1604)); return -1;}if( SQL_ERROR == Sql_Query(mmysql_handle, "SELECT `last_ip` FROM `login`, `char` WHERE login.account_id = char.account_id AND char.name = '%s'",atcmd_player_name) ) { Sql_ShowDebug(mmysql_handle); Sql_FreeResult(mmysql_handle); return -1;}if( Sql_NumRows(mmysql_handle) == 0 ) { clif_displaymessage(fd, msg_txt(1602)); Sql_FreeResult(mmysql_handle); return -1;}Sql_NextRow(mmysql_handle);Sql_GetData(mmysql_handle, 0, &data, NULL); last_ip = data; strcpy(ip, last_ip);if( SQL_ERROR == Sql_Query(mmysql_handle, "SELECT * FROM `ipbanlist` WHERE `list` = '%s'",ip) ) { Sql_ShowDebug(mmysql_handle); Sql_FreeResult(mmysql_handle); return -1;}if( Sql_NumRows(mmysql_handle) == 0 ) { clif_displaymessage(fd, msg_txt(1605)); Sql_FreeResult(mmysql_handle); return -1;}if( SQL_ERROR == Sql_Query(mmysql_handle, "DELETE FROM `ipbanlist` WHERE `list` = '%s'",ip) ) { Sql_ShowDebug(mmysql_handle); Sql_FreeResult(mmysql_handle); return -1;}sprintf(output, msg_txt(1606),atcmd_player_name);clif_displaymessage(fd, output);return 0;}Далее открываешь ea/src/map/map.c и ищешь эту строку:#define MAP_MAX_MSG 1600Меняешь на эту:#define MAP_MAX_MSG 2000Далее заходишь в ea/conf/map_msg_add.conf и добавляешь эти строки:1600: Please, enter ban time and a player name (usage: @ipban <time> <name>).1601: Invalid time for ban command.1602: Unknown character name. Please check it and repeat.1603: This characters is already banned by IP.1604: Please, enter a player name to unban (usage: @unbanip <name>).1605: No character with such name was found in Banlist.1606: Character %s was succesfully unbanned.После, компилируешь. 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения