[AtCommand] afk

Update:

  • 4.0 Added AFK Timeout. Set Time in minutes chars will be kicked from the server.  rev. 145**

 
How to change the Message?

nevermind. i've managed to do it


 

 
Last edited by a moderator:
it's saying @afk is not allowed in this map no matter where i try q,q

 
did you modify the code? I can't reproduce your error
1. i added afk.c to src/plugins/afk.c and changed int afk_timeout = 720;

2. i added it to makefile.in 

MYPLUGINS = sendmail afk

3. i added it to conf/plugins.conf

//====================================================//=       _   _                     _         //=      | | | |                   | |          //=      | |_| | ___ _ __ ___ _   _| | ___  ___ //=      |  _  |/ _ '__/ __| | | | |/ _ / __|//=      | | | |  __/ | | (__| |_| | |  __/__ //=      _| |_/___|_|  ___|__,_|_|___||___///=                                                  //=            http://herc.ws/board/                        //====================================================//== Topic Discussion ================================//== http://herc.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", "sendmail", "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", "sendmail", "afk",]
Afterwards i recompiled, and started the server. (The sendmail plugin works fine btw).

It's saying @afk is not allowed on this map on all maps
default_sad.png
(

 
Last edited by a moderator:
afk plugins is also using autotrade_mapflag. maybe you have a modification in your source or in your database about autotrade.

I tried what you did and it perfectly work on mine.

if you want to remove that message delete it on line 76

Code:
-        } else    clif->message(fd, "@afk is not allowed on this map.");+        }
 
its a great plugin
default_biggrin.png
thank you.  One thing, afk character is not saving on server restart? is this normal.  how can we have them back after restart?

 
its a great plugin
default_biggrin.png
thank you.  One thing, afk character is not saving on server restart? is this normal.  how can we have them back after restart?
Thanks, yes.. it is normal.. maybe when i have free time..

 
Plugin @afk has compile error at : clif->chsys_quit(sd);  There are changes in channel system that makes the error.

Code:
	   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);	    }		    clif->chsys_quit(sd);		    clif->authfail_fd(sd->fd, 15);	    } else    clif->message(fd, "@afk is not allowed on this map.");	    return true; 
 
Last edited by a moderator:
Plugin @afk has compile error at : clif->chsys_quit(sd);  There are changes in channel system that makes the error.

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);   }   clif->chsys_quit(sd);   clif->authfail_fd(sd->fd, 15);   } else   clif->message(fd, "@afk is not allowed on this map.");   return true; 
Noted: will take a look at it soon, together with costumeitem

 
Plugin @afk has compile error at : clif->chsys_quit(sd);  There are changes in channel system that makes the error.

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);   }   clif->chsys_quit(sd);   clif->authfail_fd(sd->fd, 15);   } else   clif->message(fd, "@afk is not allowed on this map.");   return true; 
Noted: will take a look at it soon, together with costumeitem

testing this, it works great so far.

Code:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include "../common/HPMi.h"#include "../common/timer.h"#include "../map/script.h"#include "../map/pc.h"#include "../map/channel.h"#include "../map/clif.h"#include "../map/battle.h"#include "../map/status.h"#include "../common/HPMDataCheck.h"/*1.0 Initial Script [Mhalicot]    Topic: [URL="http://goo.gl/vbmQnr2.0"]http://goo.gl/vbmQnr2.0[/URL] 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 quesoph4.0 Added AFK Timeout. Chars will be kicked from the server. [Mhalicot]*/HPExport struct hplugin_info pinfo = {        "afk",				// Plugin name        SERVER_TYPE_MAP,	// Which server types this plugin works with?        "4.0",				// 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_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){    script = GET_SYMBOL("script");    battle = GET_SYMBOL("battle");    status = GET_SYMBOL("status");    timer = GET_SYMBOL("timer");    skill = GET_SYMBOL("skill");    clif = GET_SYMBOL("clif");	channel = GET_SYMBOL("channel");    map = GET_SYMBOL("map");    pc = GET_SYMBOL("pc");    addAtcommand("afk",afk);}
 
HPM:plugin_load: failed to load 'plugins/afk.so' (error: plugins/afk.so: cannot open shared object file: No such file or directory), skipping... 
 im using linux centos
 
HPM:plugin_load: failed to load 'plugins/afk.so' (error: plugins/afk.so: cannot open shared object file: No such file or directory), skipping... 
 im using linux centos
can reproduce. make sure that you compile the plugins without error.

Update:

  • 4.1 Fixed Compiling Error and Update to latest Revision e9d6955 [Mhalicot]

 
Back
Top