Перейти к содержанию

@afk


RagnarokOnline2015

Рекомендуемые сообщения

Посмотрел на сайте вроде нет гайдов на это!)

Пытаюсь разобраться) Пользуюсь 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/vbmQnr
2.0 Added Map restriction "izlude", GVG/PVP.
You can't use @afk when your dead. [Mhalicot]
2.1 Update compilation compatibility in latest
rev. 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 quesoph
4.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 hours
int 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_logout
if(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 saved
in 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

Изменено пользователем RagnarokOnline2015
Ссылка на комментарий
Поделиться на другие сайты

addAtcommand("afk",afk);

попробуй заменить на

afk = GET_SYMBOL("afk");

и конечно же добавь эту команду в conf/groups.conf

afk: true

перекомпилируй сервер и зайди попробуй использовать команду

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

Честно говоря не понял что и куда добавлять)

В какой файл добавить addAtcommand("afk",afk);?

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

Честно говоря не понял что и куда добавлять)

В какой файл добавить addAtcommand("afk",afk);?

Добавил файл afk в /Hercules/trunk/src/plugins

..... в конце там стоит у тебя addAtcommand("afk",afk);

вот зайди назад в тот файл и найди ту строку и поменяй

addAtcommand("afk",afk);

на

afk = GET_SYMBOL("afk");

Или же файлы в студию, посмотрю и проверю.

Изменено пользователем Fizik
  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

Прости не так понял) Попробовал но всё равно нет ) Пишет не известная команда

Мне кажется что где то нужно указать её)

Изменено пользователем RagnarokOnline2015
Ссылка на комментарий
Поделиться на другие сайты

в 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/

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...
Яндекс.Метрика