RagnarokOnline2015 Опубликовано 23 августа, 2015 Жалоба Поделиться Опубликовано 23 августа, 2015 (изменено) Посмотрел на сайте вроде нет гайдов на это!)Пытаюсь разобраться) Пользуюсь Hercules/pre-renewalДобавил файл afk в /Hercules/trunk/src/plugins #include <stdio.h>#include <stdlib.h>#include <string.h>#include "../common/HPMi.h"#include "../common/timer.h"#include "../map/channel.h"#include "../map/script.h"#include "../map/pc.h"#include "../map/clif.h"#include "../map/battle.h"#include "../map/status.h"#include "../common/HPMDataCheck.h"/*1.0 Initial Script [Mhalicot]Topic: http://goo.gl/vbmQnr2.0 Added Map restriction "izlude", GVG/PVP.You can't use @afk when your dead. [Mhalicot]2.1 Update compilation compatibility in latestrev. 13300 [Mhalicot]2.2 Fixed bug when using @afk. [Mhalicot]2.3 Fixed map crash when using @afk [Mhalicot]3.0 Added unable to use @afk when receiving damage. [Mhalicot]3.1 Fixed Compiling Error, Thanks to quesoph4.0 Added AFK Timeout. Chars will be kicked from the server. [Mhalicot]4.1 Fixed Compiling Error and Update to latest Revision e9d6955 [Mhalicot]*/HPExport struct hplugin_info pinfo = { "afk", // Plugin name SERVER_TYPE_MAP, // Which server types this plugin works with? "4.1", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated)};// Set this to the amount of minutes afk chars will be kicked from the server. 720 = 12 hoursint afk_timeout = 0;void parse_my_setting(const char *val) {afk_timeout = atoi(val);}ACMD(afk) {if(sd->bl.m == map->mapname2mapid("izlude")) { clif->message(fd, "@afk is not allowed on this map."); return true;}if( pc_isdead(sd) ) { clif->message(fd, "Cannot use @afk if you are dead."); return true;}//<- (10s)10000ms delay to edit look for conf/battle/player.conf search for prevent_logoutif(DIFF_TICK(timer->gettick(),sd->canlog_tick) < battle->bc->prevent_logout) { clif->message(fd, "Failed to use @afk, please try again later."); return true;}if( map->list[sd->bl.m].flag.autotrade == battle->bc->autotrade_mapflag ){ if(map->list[sd->bl.m].flag.pvp || map->list[sd->bl.m].flag.gvg){ clif->message(fd, "You may not use the @afk maps PVP or GVG."); return true; } sd->state.autotrade = 1; sd->state.monster_ignore = 1; pc_setsit(sd); skill->sit(sd,1); clif->sitting(&sd->bl); clif->changelook(&sd->bl,LOOK_HEAD_TOP,471); // Change 471 to any headgear view ID you want. clif->specialeffect(&sd->bl, 234,AREA); if( afk_timeout ) { int timeout = atoi(message); status->change_start(NULL, &sd->bl, SC_AUTOTRADE, 10000, 0, 0, 0, 0, ((timeout > 0) ? min(timeout,afk_timeout) : afk_timeout)*60000,0); } channel->quit(sd); clif->authfail_fd(sd->fd, 15); } else clif->message(fd, "@afk is not allowed on this map."); return true;}/* triggered when server starts loading, before any server-specific data is set */HPExport void server_preinit (void) {/* makes map server listen to mysetting:value in any "battleconf" file (including imported or custom ones) *//* value is not limited to numbers, its passed to our plugins handler (parse_my_setting) as const char *,* and thus can be manipulated at will */addBattleConf("parse_my_setting",parse_my_setting);};/* Server Startup */HPExport void plugin_init (void){channel = GET_SYMBOL("channel");script = GET_SYMBOL("script");battle = GET_SYMBOL("battle");status = GET_SYMBOL("status");timer = GET_SYMBOL("timer");skill = GET_SYMBOL("skill");clif = GET_SYMBOL("clif");map = GET_SYMBOL("map");pc = GET_SYMBOL("pc");addAtcommand("afk",afk);}И в файл Hercules/trunk/conf/plugins //====================================================//= _ _ _//= | | | | | |//= | |_| | ___ _ __ ___ _ _| | ___ ___//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|//= | | | | __/ | | (__| |_| | | __/\__ \//= \_| |_/\___|_| \___|\__,_|_|\___||___///=//= http://hercules.ws/board///====================================================//== Topic Discussion ================================//== http://hercules.ws/board/topic/549-introducing-hercules-plugin-manager///====================================================//== Description =====================================//The plugin system allows you to create customized scripts//outside of the source. These scripts won't conflict with any//future source updates - think of it as a /conf/import/ for the source.//====================================================/* --------------- Format ---------------After you have listed your plugin(s) in "quotations",you need to put in a comma, to separate the plugins.-----------------------------------------plugins_list: ["example","other","afk",]-----------------------------------------Please note that your scripts need to be savedin the .c (source code) extension and placed in the /src/plugin/ folder.-----------------------------------------*/plugins_list: [/* Enable HPMHooking when plugins in use rely on Hooking *///"HPMHooking",//"db2sql",//"sample",//"other",//"afk",]И всё равно не работает пишет Unknown CommandА когда идёт компиляция сервера почему то он пропускает файл afk.cШарил на herc.ws нечего не нашёл по теме)Может кто знает что я пропустил! За ранее Благодарен! А да чуть не забыл ещё добавил в groups.conf afk: true Изменено 23 августа, 2015 пользователем RagnarokOnline2015 Ссылка на комментарий Поделиться на другие сайты Поделиться
Fizik Опубликовано 24 августа, 2015 Жалоба Поделиться Опубликовано 24 августа, 2015 addAtcommand("afk",afk);попробуй заменить на afk = GET_SYMBOL("afk");и конечно же добавь эту команду в conf/groups.conf afk: trueперекомпилируй сервер и зайди попробуй использовать команду 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
RagnarokOnline2015 Опубликовано 24 августа, 2015 Автор Жалоба Поделиться Опубликовано 24 августа, 2015 Честно говоря не понял что и куда добавлять) В какой файл добавить addAtcommand("afk",afk);? Ссылка на комментарий Поделиться на другие сайты Поделиться
Fizik Опубликовано 24 августа, 2015 Жалоба Поделиться Опубликовано 24 августа, 2015 (изменено) Честно говоря не понял что и куда добавлять)В какой файл добавить addAtcommand("afk",afk);? Добавил файл afk в /Hercules/trunk/src/plugins..... в конце там стоит у тебя addAtcommand("afk",afk);вот зайди назад в тот файл и найди ту строку и поменяй addAtcommand("afk",afk);на afk = GET_SYMBOL("afk");Или же файлы в студию, посмотрю и проверю. Изменено 24 августа, 2015 пользователем Fizik 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
RagnarokOnline2015 Опубликовано 24 августа, 2015 Автор Жалоба Поделиться Опубликовано 24 августа, 2015 (изменено) Прости не так понял) Попробовал но всё равно нет ) Пишет не известная команда Мне кажется что где то нужно указать её) Изменено 24 августа, 2015 пользователем RagnarokOnline2015 Ссылка на комментарий Поделиться на другие сайты Поделиться
botka4aet Опубликовано 24 августа, 2015 Жалоба Поделиться Опубликовано 24 августа, 2015 в conf\groups.conf проиписал?Что заplugins_list: [/* Enable HPMHooking when plugins in use rely on Hooking *///"HPMHooking",//"db2sql",//"sample",//"other",//"afk", <------------------------------]Вот тема, хз что там с обновлениями http://herc.ws/board/topic/984-atcommandafk/ 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
RagnarokOnline2015 Опубликовано 24 августа, 2015 Автор Жалоба Поделиться Опубликовано 24 августа, 2015 Ясно спасибо Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения