ZelosAvalon Posted January 24, 2013 Group: Members Topic Count: 72 Topics Per Day: 0.02 Content Count: 181 Reputation: 33 Joined: 11/11/12 Last Seen: November 8, 2022 Share Posted January 24, 2013 could someone explain to me how I add a custom command? @ sleep for example would like to implement, but do not know how! i see this topic but dont understand: http://www.eathena.ws/board/index.php?showtopic=93866 Quote Link to comment Share on other sites More sharing options...
1 Nana Posted January 25, 2013 Group: Members Topic Count: 20 Topics Per Day: 0.00 Content Count: 118 Reputation: 6 Joined: 12/20/12 Last Seen: November 10, 2014 Share Posted January 25, 2013 This is the src mod =) /*=================================== * Sleep (@sleep) *----------------------------------- */ int atcommand_sleep(const int fd, struct map_session_data* sd, const char* command, const char* message) { if (agit_flag) // skill not useable in WOE [A17kaliva] { clif_displaymessage(fd, "Cannot use this command during WOE."); return -1; } if(!battle_config.prevent_logout || DIFF_TICK(gettick(), sd->canlog_tick) > 10) { if(sd->sc.opt1 != 0 && sd->sc.opt1 != OPT1_SLEEP){ clif_displaymessage(fd, msg_txt(807)); return -1; } if(sd->sc.opt1 != OPT1_SLEEP){ sc_start(&sd->bl, SC_TRICKDEAD, 100, 1, 1000); sd->sc.opt1 = OPT1_SLEEP; sc_start(&sd->bl,SC_COMA,100,1,skill_get_time2(185,1)); clif_displaymessage(fd, msg_txt(805)); } else { sd->sc.opt1 = 0; clif_emotion(&sd->bl,45); status_change_end(&sd->bl, SC_TRICKDEAD, -1); sc_start(&sd->bl,SC_COMA,100,1,skill_get_time2(185,1)); clif_displaymessage(fd, msg_txt(806)); } clif_changeoption(&sd->bl); return 0; } clif_displaymessage(fd, msg_txt(807)); return -1; } I suggest that change my displaymessages n_nU cause the newest versions have that messages busy n_nU ~~ 3 Quote Link to comment Share on other sites More sharing options...
Capuche Posted January 25, 2013 Group: Developer Topic Count: 10 Topics Per Day: 0.00 Content Count: 2407 Reputation: 616 Joined: 07/05/12 Last Seen: March 20 Share Posted January 25, 2013 (edited) Adding a commands with a NPC script (doc/script_commands.txt) *bindatcmd "command","<NPC object name>::<event label>"{,<atcommand level>,<charcommand level>}; This command will bind a NPC event label to an atcommand. Upon execution of the atcommand, the user will invoke the NPC event label. Each atcommand is only allowed one binding. If you rebind, it will override the original binding. The following variables are set upon execution: .@atcmd_command$ = The name of the @command used. .@atcmd_parameters$[] = Array containing the given parameters, starting from an index of 0. .@atcmd_numparameters = The number of parameters defined. Example: When a user types the command "@test", an angel effect will be shown. - script atcmd_example -1,{ OnInit: bindatcmd "test",strnpcinfo(3)+"::OnAtcommand"; end; OnAtcommand: specialeffect2 338; end; } Otherwise it seems you want @afk command... then there is this release. Edited January 25, 2013 by Capuche Quote Link to comment Share on other sites More sharing options...
ZelosAvalon Posted January 29, 2013 Group: Members Topic Count: 72 Topics Per Day: 0.02 Content Count: 181 Reputation: 33 Joined: 11/11/12 Last Seen: November 8, 2022 Author Share Posted January 29, 2013 This is the src mod =) /*=================================== * Sleep (@sleep) *----------------------------------- */ int atcommand_sleep(const int fd, struct map_session_data* sd, const char* command, const char* message) { if (agit_flag) // skill not useable in WOE [A17kaliva] { clif_displaymessage(fd, "Cannot use this command during WOE."); return -1; } if(!battle_config.prevent_logout || DIFF_TICK(gettick(), sd->canlog_tick) > 10) { if(sd->sc.opt1 != 0 && sd->sc.opt1 != OPT1_SLEEP){ clif_displaymessage(fd, msg_txt(807)); return -1; } if(sd->sc.opt1 != OPT1_SLEEP){ sc_start(&sd->bl, SC_TRICKDEAD, 100, 1, 1000); sd->sc.opt1 = OPT1_SLEEP; sc_start(&sd->bl,SC_COMA,100,1,skill_get_time2(185,1)); clif_displaymessage(fd, msg_txt(805)); } else { sd->sc.opt1 = 0; clif_emotion(&sd->bl,45); status_change_end(&sd->bl, SC_TRICKDEAD, -1); sc_start(&sd->bl,SC_COMA,100,1,skill_get_time2(185,1)); clif_displaymessage(fd, msg_txt(806)); } clif_changeoption(&sd->bl); return 0; } clif_displaymessage(fd, msg_txt(807)); return -1; } I suggest that change my displaymessages n_nU cause the newest versions have that messages busy n_nU ~~ i put but dont work =/ where i need to put it ? i need to change more .conf ? or just atcommand ? help me please and this messages you can post for me what messages is : 806, 807 ... for i can change ? Quote Link to comment Share on other sites More sharing options...
Nana Posted January 29, 2013 Group: Members Topic Count: 20 Topics Per Day: 0.00 Content Count: 118 Reputation: 6 Joined: 12/20/12 Last Seen: November 10, 2014 Share Posted January 29, 2013 In atcommand.c, if you have a newest version just change int atcommand_sleep(const int fd, struct map_session_data* sd, const char* command, const char* message) { for ACMD_FUNC(sleep) { and it should work remember add this in AtCommandInfo atcommand_base[] = { ACMD_fUNC(sleep), Quote Link to comment Share on other sites More sharing options...
snowflake420 Posted April 27, 2013 Group: Members Topic Count: 0 Topics Per Day: 0 Content Count: 4 Reputation: 0 Joined: 11/21/12 Last Seen: October 4, 2017 Share Posted April 27, 2013 What line do we insert the script? Quote Link to comment Share on other sites More sharing options...
Question
ZelosAvalon
could someone explain to me how I add a custom command?
@ sleep for example would like to implement, but do not know how!
i see this topic but dont understand: http://www.eathena.ws/board/index.php?showtopic=93866
Link to comment
Share on other sites
5 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.