-
Content Count
1677 -
Joined
-
Last visited
-
Days Won
246
Content Type
Profiles
Forums
Downloads
Staff Applications
Calendar
Everything posted by AnnieRuru
-
1. how to make it not list clone monster? or slaveclone?
AnnieRuru replied to utofaery's question in Script Requests
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 ... -
.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
-
#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 ); }
-
what do you mean by Renovate ? I changed CoolDown into 50, I can spam repeatedly
-
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
-
@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
-
https://annieruru.blogspot.com/2019/01/compare-dynamic-shop-between-rathena.html
-
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
-
About sanctuary, plugins, inventory, partyname showing, clone vs emperium
AnnieRuru replied to utofaery's question in General Server Support
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 -
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
-
shops Lotti Girl
AnnieRuru replied to AnnieRuru's topic in Quest, Shops, Functions & Algorithms Releases
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... -
Quest Sample Questlog & Achievement script
AnnieRuru replied to AnnieRuru's topic in Quest, Shops, Functions & Algorithms Releases
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 -
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
-
tell you what ... use my OnPCStatCalcEvent ... OnPCStatCalcEvent: bonus bMatkRate, -100; // bonus bMatk, -999; end; there is a reason why this modification is so famous ...
-
How to setup OFFLINE server for personal development use
AnnieRuru replied to AnnieRuru's question in General Server Support
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 .... -
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
-
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; }
-
its not change, but having both prontera mapflag pvp prontera mapflag pvp_nocalcrank
-
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 ?
-
#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
-
1.3 .... plugin well just copy paste from Dastgir's topic and split 2 posts from this topic for the "@blockexp" request
-
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" ) )
-
N>advice and help on comparing array loop
AnnieRuru replied to utofaery's question in Script Support
basic SQL command ? https://www.w3schools.com/sql/sql_in.asp use NOT IN statement