Jump to content

malufett

Retired Staff
  • Content Count

    657
  • Joined

  • Last visited

  • Days Won

    29

Everything posted by malufett

  1. script.c BUILDIN(goto){if( !data_islabel(script_getdata(st,2)) ){ ShowError("script:goto: not a labeln"); script->reportdata(script_getdata(st,2)); st->state = END; return false;}ShowDebug("script.c: function 'goto' detected!n");st->pos = script_getnum(st,2);st->state = GOTO;return true;}
  2. Here Script: <"bonus bMaxHPrate,(5 + getrefine());">
  3. always recompile your server after making server file updates..
  4. change this one to plain IP address..unless you diff your client to accept DNS...then try again..
  5. as I see it..its a plain diff...not HPM...
  6. from this topic: http://herc.ws/board/topic/4830-noitem-mapflag/?p=42296 yes it is possible...since this is available.. /* map_data */#define addToMAPD(ptr,data,index,autofree) (HPMi->addToHPData(HPDT_MAP,HPMi->pid,(ptr),(data),(index),(autofree)))#define getFromMAPD(ptr,index) (HPMi->getFromHPData(HPDT_MAP,HPMi->pid,(ptr),(index)))#define removeFromMAPD(ptr,index) (HPMi->removeFromHPData(HPDT_MAP,HPMi->pid,(ptr),(index)))
  7. see 'db/sc_config.txt' for more info..
  8. Well it depends on how complex the the function you want to hook in..but there is other way you can do it.. temp_function(x);modified_function(x){ switch(x){ case myedit: break default: temp_function(x); }}temp_function = original_function;original_function = modified_function;
  9. I suggest use hercules and make use of our cool db entry for skill_tree.conf this will make Swordsman used a 3rd job skill Enchantblade and Sonicwave Swordsman: {inherit: ( "Novice" );skills: {RK_ENCHANTBLADE: { MaxLevel: 5 } RK_SONICWAVE: { MaxLevel: 5 RK_ENCHANTBLADE: 3 } SM_SWORD: 10 SM_TWOHAND: { MaxLevel: 10 SM_SWORD: 1 } SM_RECOVERY: 10 SM_BASH: 10 SM_PROVOKE: 10 SM_MAGNUM: { MaxLevel: 10 SM_BASH: 5 } SM_ENDURE: { MaxLevel: 10 SM_PROVOKE: 5 } SM_MOVINGRECOVERY: 1 SM_FATALBLOW: 1 SM_AUTOBERSERK: 1}} Preview:
  10. I don't think you can make one using via bindatcommand unless there is a script command appropriate with it.. so here I make a simple HPM plugin for you..just browse the wiki on how to install it..enjoy.. // Copyright (c) Hercules Dev Team, licensed under GNU GPL.// See the LICENSE file// Sample Hercules Plugin#include <stdio.h>#include <stdlib.h>#include <string.h>#include "../common/HPMi.h"#include "../common/malloc.h"#include "../common/mmo.h"#include "../common/socket.h"#include "../common/strlib.h"#include "../map/clif.h"#include "../map/pc.h"#include "../map/script.h"#include "../common/HPMDataCheck.h" /* should always be the last file included! (if you don't make it last, it'll intentionally break compile time) *//* malufett@yourservice */HPExport struct hplugin_info pinfo = {"ATCMD_NO_ATK", // Plugin nameSERVER_TYPE_MAP,// Which server types this plugin works with?"0.1", // Plugin versionHPM_VERSION, // HPM Version (don't change, macro is automatically updated)};struct atk_state{int enabled;};ACMD(no_atk) {struct atk_state *data;if(!(data = getFromMSD(sd,0))){ CREATE(data,struct atk_state,1); data->enabled = 0; addToMSD(sd,data,0,true);}if(data->enabled){ data->enabled = 0; clif->message(sd->fd, "You can now attack normally.");}else{ data->enabled = 1; clif->message(sd->fd, "You are now disabled to attack.");}return true;}int hook_battle_check_target(int retVal, struct block_list *src, struct block_list *target,int *flag){struct map_session_data* sd;struct atk_state *data;struct block_list *s_bl = src;if( retVal != 1 || src->type != BL_PC ) return retVal;if( (s_bl = battle->get_master(src)) == NULL ) s_bl = src;sd = BL_CAST(BL_PC, s_bl);if(sd && *flag&BCT_ENEMY && (data = getFromMSD(sd,0)) && data->enabled) return 0;return retVal;}HPExport void plugin_init (void) {char *server_type;char *server_name; /* core vars */server_type = GET_SYMBOL("SERVER_TYPE");server_name = GET_SYMBOL("SERVER_NAME");/* core interfaces */battle = GET_SYMBOL("battle");clif = GET_SYMBOL("clif");iMalloc = GET_SYMBOL("iMalloc");/* addAtcommand */addAtcommand("noatk",no_atk); // @noatkaddAtcommand("na",no_atk); // @na/* postHook */addHookPost("battle->check_target",hook_battle_check_target);ShowStatus ("Running HPM Plugin: '"CL_WHITE"%s"CL_RESET"'.n", pinfo.name);}
  11. there is a message below or in the chat box when you use it...you can revert it but I forgot what git hash is that...
  12. need mo lang iupdate pa server mo...
  13. it only means the 'other server' is old and not complying with official skill behavior..
  14. try /miss in the client side...
  15. you can find some in irowiki.org or ro.doddlercon.com
  16. you can find some in here: http://herc.ws/board/forum/122-approved/
  17. parameter? from where to where? from external login to patcher to exe..like Ai4rie rsu patcher it can pass parameter..
  18. malufett

    [elements]

    example... Archer VS Neutral Monster Arrow ---------> 100% damage Fire Arrow ---------> 100% damage Crystal Arrow ---------> 100% damage Arrow of Wind ---------> 100% damage Stone Arrow ---------> 100% damage Poison Arrow ---------> 100% damage Silver Arrow ---------> 100% damage Immaterial Arrow ---------> 70% damage Archer VS Ghost Monster(lv1) Arrow ---------> 70% damage Fire Arrow ---------> 100% damage Crystal Arrow ---------> 100% damage Arrow of Wind ---------> 100% damage Stone Arrow ---------> 100% damage Poison Arrow ---------> 100% damage Silver Arrow ---------> 100% damage Immaterial Arrow ---------> 125% damage for more reference : http://ro.doddlercon.com/wiki/index.php?title=Renewal_Changes#Element_Table
  19. Aeomin can you add feature to it that it can pass parameter?
  20. - script certainlevel -1,{OnInit: bindatcmd "certainlevel",strnpcinfo(3)+"::OnBaseLevel"; end;OnBaseLevel: if(BaseLevel < 10){ dispbottom "You must be level 10 above to use this command"; end; }; dispbottom "You can use the command"; end;}
  21. @atcommand.c if (!pc_isriding(sd)) { // if actually no peco bool is_RG = (sd->class_&MAPID_THIRDMASK) == MAPID_ROYAL_GUARD; if (!pc->checkskill(sd, KN_RIDING)) { if(is_RG) clif->message(fd, "You can not mount a Griffon with your current job."); else clif->message(fd, msg_txt(213)); // You can not mount a Peco Peco with your current job. return false; } pc->setoption(sd, sd->sc.option | OPTION_RIDING); if(is_RG) clif->message(fd, "You have mounted a Griffon."); else clif->message(fd, msg_txt(102)); // You have mounted a Peco Peco.} else {//Dismount pc->setoption(sd, sd->sc.option & ~OPTION_RIDING); if(is_RG) clif->message(fd, "You have released your Griffon."); else clif->message(fd, msg_txt(214)); // You have released your Peco Peco.}
  22. I tested in kRO... min damage is 12 and max is 13 and damage received is 26 ~31...as I see there is something wrong in our database fabre lv.6 only having 12~15 atk.... hmm..and its seems we have a flaw in rnd()..is it correct rnd()%1 is equal to 0~1..please correct me I'm confuse..XD
  23. Yeah, I still don't get it, how I can check the server version. if you just enable Pre in your server by default you are in the latest Pre which is episode 13.1
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.