Jump to content

AnnieRuru

Script Developers
  • Content Count

    1677
  • Joined

  • Last visited

  • Days Won

    246

Everything posted by AnnieRuru

  1. yes it block exp from anything, including script commands *getexp if you want to block from OnPCLoginEvent, just use player variable, don't use atcommand - script BmapMobList -1,{ OnPCLoginEvent: blockexp = true; dispbottom _( "You no longer gain experience." ), C_WHITE; end; } something like that
  2. change if ( !getd(".@"+ .@string$) ) { into if ( !getd(".@"+ .@string$) || jobname(getunitdata( .@bl[.@i], UDT_CLASS )) != "Unknown Job" ) { Note : 2 things 1st, UDT_CLASS is expected to change some time soon, a PR is already addressing this issue https://github.com/HerculesWS/Hercules/pull/2382 2nd, we missing a script command to read a line from conf/message.conf and yes, its better to open multiple topic ...
  3. .GRDelayMin = (1/10); .MaxGRLimit = 1000; 'GRRate = 5; 'MOB1ID = 1002; 'MOB2ID = 1113; 'MOB1AM = 40; 'MOB2AM = 35; 'MobTOTAL = 'MOB1AM+'MOB2AM; as you can see, .GRDelayMin and .MaxGRLimit is npc variable in this script, means even you have reach the hunt limit, it still generate the instance, that's why you get the weird instance behavior you should stop generate the instance when player already hunt enough gold
  4. #include "common/hercules.h" #include "map/status.h" #include "common/timer.h" #include "plugins/HPMHooking.h" #include "common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "Renovate", SERVER_TYPE_MAP, "0.1", HPM_VERSION, }; bool status_end_sc_before_start_post( bool retVal, struct block_list *bl, struct status_data *st, struct status_change *sc, enum sc_type type, int undead_flag, int val1, int val2, int val3, int val4 ) { if ( bl == NULL || st == NULL || sc == NULL || retVal == true ) return true; if ( type == SC_LIGHTNINGWALK ) status_change_end(bl, SC_LIGHTNINGWALK, INVALID_TIMER); return false; } HPExport void plugin_init(void) { addHookPost( status, end_sc_before_start, status_end_sc_before_start_post ); }
  5. what do you mean by Renovate ? I changed CoolDown into 50, I can spam repeatedly
  6. this is probably one of my famous script, just realize it recently Download : 1.2 script History : originally this was only made for fun https://rathena.org/board/topic/73478-requesting-card-seller-script/?do=findComment&comment=154507 but then Euphy loves it, so it was added in SVN later, https://rathena.org/board/topic/89071-development-news/?do=findComment&comment=242965 but then rAthena changed their monster mode https://github.com/rathena/rathena/commit/55e4df14c2141f291a985c391408a045ec1b25c4#diff-9120180df02487486d9abaddf38f9c49 after this script was reported broken, couldn't use in Hercules anymore https://github.com/rathena/rathena/issues/2844 so I have to fix this script for use in Hercules my KRO still not update enough to use Barter system, but this format shouldn't be very far from it
  7. @4144 Hercules has our own dynamic shop system, implement right after Hercules founded by your definition, yes, we also has our own fake shop in hercules @fiction that's my script by the way ... you see my name in rathena repo
  8. https://annieruru.blogspot.com/2019/01/compare-dynamic-shop-between-rathena.html
  9. 2. yes .... 3. prontera,155,185,5 script Daily Quest 1_F_MARIA,{ getmapxy .@map$, .@x, .@y, UNITTYPE_PC; .@x = 10; for ( .@i = 0; .@i < .@x; ++.@i ) clone .@map$, .@x, .@y, strnpcinfo(NPC_NAME)+"::Onaaa", getcharid(CHAR_ID_CHAR), getcharid(CHAR_ID_CHAR); dispbottom sprintf( _$( "Spawned %d clones" ), .@x ); end; Onaaa: announce sprintf( _$( "%s's slave clone died."), strcharinfo(PC_NAME) ), bc_all; end; } no.1 . actually you are right, I reproduce your problem .... actually I also have no idea how to fix this ... this map-server<->char-server miss-match was planned to do by Haru https://github.com/HerculesWS/Hercules/pull/1027#issuecomment-180006223 EDIT: that's my own problem, I loop the castle map name with .@i, and loop the guardian index with .@i again a fixed script is down below
  10. usually I closed 1 eye when ask only about 2-3 questions in 1 topic but this topic has 7 questions, means this topic actually breaks the rule for having some question posted in wrong section open 1 topic per 1 question follow the forum guidelines when you post a topic http://herc.ws/board/guidelines/ topic close PS: you can go ahead and make 7 topics for it, it is actually better that way
  11. OnPCStatCalcEvent is very famous modification, if you do forum search in rathena or hercules, you can even get some custom stuffs that only applicable with this mod if (sd == NULL) // I don'r prefer usage of nullpo in hooks, unless we're replacing a function multiaple nullpo reports can turn confusing. well, personally, Pre-Hook needs nullpo, Post-Hook doesn't need ... though hahaha, yeah I go change that XD
  12. Huld = I'm not going into detail about this, ask it in other topic 2. can't you just test the script ... all 4 features in 1 script of course...
  13. Mass update to version 1 compatible with Hercules 2019-02-24 and client 2018-06-20Re https://github.com/AnnieRuru/Release/blob/master/scripts/Quest %26 Shops/quest log/quest_log_1.0.txt @MikZ, the thing you describe there is official https://github.com/HerculesWS/Hercules/pull/1593#issuecomment-284083798 so just in case you don't understand, I make another sample then https://github.com/AnnieRuru/Release/blob/master/scripts/Quest %26 Shops/quest log/daily_quest_log_1.0.txt
  14. all right, I post up my custom stylist Download: 2.1 script this one use CSV format setd ".@"+ Job_Rune_Knight +"_"+ LOOK_CLOTHES_COLOR +"$[1]", "0-5,11-18,20-23"; setd ".@"+ Job_Summoner +"_"+ LOOK_CLOTHES_COLOR +"$[0]", "0-3"; This means, the ID range for Job_Rune_Knight at bodystyle number (1) is 0,1,2,3,4,5,11,12,13,14,15,16,17,18,20,21,22,23 2nd line means Summoner job can only use clothing range between 0 to 3, this prevent crash client due to human and doram race doesn't share the same palette From version 2.0 onwards, now you don't have to scratch your head about missing palette due to different bodystyle this script can handle that
  15. tell you what ... use my OnPCStatCalcEvent ... OnPCStatCalcEvent: bonus bMatkRate, -100; // bonus bMatk, -999; end; there is a reason why this modification is so famous ...
  16. https://github.com/HerculesWS/Hercules/blob/stable/README.md . https://github.com/rathena/rathena/wiki/compiling well, I'm dump when comes to linux ... I also saw the server installation guide separated for linux and windows so ... ... better left the linux installation guide for those who know better ....
  17. There are MANY variations of Lotti Girl script, even me too, have made several of them so today I try to gather them all, and make a release with ALL features from all the topics gathered Download: script Feature no.1 -> show the percentage chance chinese government has a rule that all lottery system must show the percentage chance to the public hence the script should show the lottery chance in percent Feature no.2 -> Roll Repeatedly imagine if you have 500 tickets, and you want to spend them all, all other scripts available on rathena board will force the player to spend them 1 by 1 this script can roll up to 100 times on the fly, effectively save player's time Feature no.3 -> Lotti shop even if you spend a lot of tickets and still getting all the trash items, you still collecting points, and able buy them in Lotti Shop Feature no.4 -> Lotti ladder compete with other players and see who has the highest Lotti Rank ! oh and ... HULD compatible == rAthena members can't use this
  18. its *bpet actually *bpet() This command opens up a pet hatching window on the client connected to the invoking character. It is used in item script for the pet incubators and will let the player hatch an owned egg. If the character has no eggs, it will just open up an empty incubator window. This is still usable outside item scripts. there is already pet_return_egg function, so just use it #include "common/hercules.h" #include "map/pc.h" #include "map/pet.h" #include "map/script.h" #include "common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "pet_return_egg", SERVER_TYPE_MAP, "0.1", HPM_VERSION, }; BUILDIN(pet_return_egg) { struct map_session_data *sd; if ( script_hasdata(st,2) ) { if ( script_isstringtype(st,2) ) sd = script->nick2sd( st, script_getstr(st,2) ); else sd = script->id2sd( st, script_getnum(st,2) ); } else sd = script->rid2sd(st); if ( !sd ) return true; if ( !sd->pd ) { ShowWarning( "buildin_pet_return_egg: Pet not found !\n" ); return false; } pet->return_egg(sd, sd->pd); return true; } HPExport void plugin_init(void) { addScriptCommand( "pet_return_egg", "?", pet_return_egg ); } prontera,155,185,5 script kjhdfksjf 1_F_MARIA,{ if ( getpetinfo(1) ) pet_return_egg; close; }
  19. its not change, but having both prontera mapflag pvp prontera mapflag pvp_nocalcrank
  20. AnnieRuru

    Nemo patcher

    @M45T3R, https://irowiki.org/wiki/Homunculus_System#AI why every thing has a target cursor ?
  21. AnnieRuru

    Nemo patcher

    holy shit, I need this badly, thanks XD @M45T3R, just in-case you don't really understand, I made a fuss about it in rathena forum XD https://rathena.org/board/topic/117966-how-to-find-nearest-enemyobtain-a-list-of-units-on-the-same-map-etc/?do=findComment&comment=357565 . https://rathena.org/board/topic/118141-q-mercenaries-autoattack-and-clones-aspd-bonuses/#comment-357133 . https://rathena.org/board/topic/115401-client-2018-custom-ai-crash/?do=findComment&comment=344790 . btw when you say homunculus, you also means mercenary AI ... right ?
  22. AnnieRuru

    @blockexp

    #include "common/hercules.h" #include "map/pc.h" #include "common/nullpo.h" #include "plugins/HPMHooking.h" #include "common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "blockexp", SERVER_TYPE_MAP, "0.1", HPM_VERSION, }; bool pc_authok_post( bool retVal, struct map_session_data *sd, int login_id2, time_t expiration_time, int group_id, const struct mmo_charstatus *st, bool changing_mapservers ) { if ( retVal == false ) return false; if ( pc_readglobalreg( sd, script->add_variable("blockexp") ) == true ) clif->message( sd->fd, "@blockexp turn ON." ); return true; } bool pc_gainexp_pre( struct map_session_data **sd, struct block_list **src, uint64 *base_exp, uint64 *job_exp, bool *is_quest ) { nullpo_ret(*sd); if ( *src == NULL && pc_readglobalreg( *sd, script->add_variable("blockexp") ) == true ) *base_exp = 0; return true; } void pc_calcexp_post( struct map_session_data *sd, uint64 *base_exp, uint64 *job_exp, struct block_list *src ) { if ( pc_readglobalreg( sd, script->add_variable("blockexp") ) == true ) *base_exp = 0; return; } ACMD(blockexp) { if ( pc_readglobalreg( sd, script->add_variable("blockexp") ) ) { clif->message( sd->fd, "@blockexp turn OFF." ); pc_setglobalreg( sd, script->add_variable("blockexp"), false ); } else { clif->message( sd->fd, "@blockexp turn ON." ); pc_setglobalreg( sd, script->add_variable("blockexp"), true ); } return true; } HPExport void plugin_init(void) { addHookPre( pc, gainexp, pc_gainexp_pre ); addHookPost( pc, calcexp, pc_calcexp_post ); addAtcommand( "blockexp", blockexp ); } //= the reason of using a script variable instead of creating a new SQL table, //= so server owner can also block exp gain for players from a script //= so just comment out the addAtcommand line ... @Crousti @kftof
  23. 1.3 .... plugin well just copy paste from Dastgir's topic and split 2 posts from this topic for the "@blockexp" request
  24. https://github.com/dastgirp/HPM-Plugins/blob/master/src/plugins/MaxLvExpGain.c#L66 should be else if ( !strcmpi( key, "battle_configuration/max_jlv_exp_gain" ) )
  25. basic SQL command ? https://www.w3schools.com/sql/sql_in.asp use NOT IN statement
×
×
  • Create New...

Important Information

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