-
Posts
2407 -
Joined
-
Last visited
-
Days Won
52
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Capuche
-
Well there is no setting like Akkarin said, but this change in map.cpp should allow you to walk on cell where the npcs are hidden/disabled/invisible (untested) @@ -553,6 +553,11 @@ int map_count_oncell(int16 m, int16 x, int16 y, int type, int flag) if (type&~BL_MOB) for( bl = mapdata->block[bx+by*mapdata->bxs] ; bl != NULL ; bl = bl->next ) if(bl->x == x && bl->y == y && bl->type&type) { + if (bl->type == BL_NPC) { + struct npc_data *nd = (struct npc_data *)bl; + if (nd && (nd->sc.option&(OPTION_INVISIBLE|OPTION_HIDE) || nd->class_ == JT_FAKENPC || nd->class_ == JT_HIDDEN_WARP_NPC)) + continue; + } if(flag&1) { struct unit_data *ud = unit_bl2ud(bl); if(!ud || ud->walktimer == INVALID_TIMER)
-
https://github.com/rathena/rathena/blob/bdd63022a9c479df833304add9537eca7f39b331/conf/battle/items.conf#L139 set to 0
-
Some spots are supposed to spawn monsters endlessly (with a delay of 30 seconds) until the Commander is killed. Did you check if the monsters respawn?
-
if (getequipid(EQI_HAND_R) != -1) breakequip(EQI_HAND_R); end; Shorter ? xD *breakequip <equipment slot>{,<char_id>}; This command will break and unequip whatever is currently equipped in the invoking character's specified equipment slot. For a full list of possible equipment slots see 'getequipid'. This command will return 1 if an item was broken and 0 otherwise.
-
This kind of issue often happens with attachrid command. Avoid attachrid until it gets a fix.
-
https://github.com/rathena/rathena/commit/80810e24f820d0f5f92c3c62345de60a863eaf5a
-
The monsters of yours instance probably have their own label. monster "place",60,100,"Poring",1002,1; // call OnNPCKillEvent on monster dead monster "place",60,100,"Poring",1002,1,"NPCNAME::OnLabel"; // call OnLabel on monster dead (not OnNPCKillEvent)
-
If you're using a version after https://github.com/rathena/rathena/commit/26720f041a3cd0edbaa975bfc70345a30e9bf706 change getmapxy( .@map$,.@x,.@y,0 ); to getmapxy( .@map$,.@x,.@y,BL_PC );
-
.. and search # for the maps without @ in the original name ! https://github.com/rathena/rathena/blob/fce885e81e9ef0d0b152309e8a0046f80fabe92c/src/map/map.cpp#L2731
-
Unofficial Fallen Angel Wing (FAW) Enchantment
Capuche replied to behemothcze's question in Scripting Support
Simple note that I merged a version in the main repo while updating eden_iro.txt in https://github.com/rathena/rathena/commit/339e6c67182e5cb344fcd614329f2b7fb048d8bf#diff-ad177424d33f756ef2d34a911a9fb86aR1168 -
unitskilluseid,unitskillusepos weird workaround to remove cast time
Capuche replied to DaScript's question in Scripting Support
*unitskilluseid <GID>,<skill id>,<skill lvl>{,<target id>,<casttime>}; *unitskilluseid <GID>,"<skill name>",<skill lvl>{,<target id>,<casttime>}; *unitskillusepos <GID>,<skill id>,<skill lvl>,<x>,<y>{,<casttime>}; *unitskillusepos <GID>,"<skill name>",<skill lvl>,<x>,<y>{,<casttime>}; This is the replacement of the older commands, these use the same values for GID as the other unit* commands (See 'GID'). Skill ID is the ID of the skill, skill level is the level of the skill. Cast time is the amount of seconds to add or remove from the skill. Use a positive value to add and negative value to subtract. Using 0 or no value will use the default skill cast time. For the position, the x and y are given in the UnitSkillUsePos. Using 0 or no value will use the default skill cast time. Read the docs ! -
Copie the auto-spell you want to remove on your combo but put the rates as negative. For example for amon ra card 4236,Amon_Ra_Card,Amon Ra Card,6,20,,10,,,,,,,,64,,,,,{ bonus bAllStats,1; bonus3 bAutoSpellWhenHit,"PR_KYRIE",10,(30+70*(readparam(bInt)>=99)); },{},{} To remove the auto-spell from another item script the rate "(30+70*(readparam(bInt)>=99))" must be negative bonus3 bAutoSpellWhenHit,"PR_KYRIE",10,-(30+70*(readparam(bInt)>=99));
-
https://github.com/rathena/rathena/pull/4161/files
-
The structure has been changed, MAX_QUEST_DB has been removed and the limit is now ~2m entries (to simplify)
-
Is a choice/switch select + multiple variables + adding them together possible
Capuche replied to Naruto's question in Script Requests
? maybe : alberta,97,53,0 script Fabian2 84,{ setarray .@sub_string_1$[0], "pay_", "moc_", "cmd_"; setarray .@sub_string_2$[0], "fild", "dun"; setarray .@sub_string_3$[0], "00", "01", "02"; setarray .@menu_list_1$[0], "Apple", "Banana", "Orange"; setarray .@menu_list_2$[0], "Cat", "Dog"; setarray .@menu_list_3$[0], "Eat the", "Steal the", "Dream of"; .@s[1] = select( implode(.@menu_list_1$, ":") ) -1; .@s[2] = select( implode(.@menu_list_2$, ":") ) -1; .@s[3] = select( implode(.@menu_list_3$, ":") ) -1; mes "Do you really want to go where the " + .@menu_list_2$[ .@s[2] ] + " " + .@menu_list_3$[ .@s[3] ] + " " + .@menu_list_1$[ .@s[1] ] + "?"; next; if (select("No", "Yes") == 1) close; .@map_name$ = .@sub_string_1$[ .@s[1] ] + .@sub_string_2$[ .@s[2] ] + .@sub_string_3$[ .@s[3] ]; // a list of available map should be created to prevent console message about unknown map warp .@map_name$,0,0; end; } -
Is a choice/switch select + multiple variables + adding them together possible
Capuche replied to Naruto's question in Script Requests
Maybe you mean that? alberta,97,51,0 script Fabian 84,{ .@map$ = "hu_fild05"; // word to split .@step = 3; // how many words .@len = getstrlen(.@map$); for ( .@start = 0; .@start < .@len; .@start += .@step ) { if ((.@start + .@step) < .@len) .@end = .@start + .@step - 1; else .@end = .@len - 1; .@word$[.@size] = substr( .@map$, .@start, .@end ); .@size++; } // simple shuffle .@tmp_size = .@size; for ( .@i = 0; .@i < .@size; .@i++ ) { .@r = rand(.@tmp_size); .@tmp_word$ = .@word$[.@r]; .@word$[.@r] = .@word$[ .@tmp_size-1 ]; .@word$[ .@tmp_size-1 ] = .@tmp_word$; .@tmp_size--; } .@menu$ = implode( .@word$, ":" ); for ( .@i = 0; .@i < .@step; .@i++ ) { .@s = select(.@menu$) - 1; .@current_word$ += .@word$[.@s]; mes "Word: " + .@current_word$; } if (.@current_word$ == .@map$) { mes "Grat!"; warp .@map$,0,0; } close; } -
Maybe the query of this script need to be updated depending of your server but it will be your homework.
-
The additional damages given by item produced are hard coded. You can start from here : https://github.com/rathena/rathena/blob/7f772c32d3be201861946bb64720c231828465ac/src/map/status.cpp#L3651
-
I don't see a clean way to force to end a specific npc instance. The easiest way seems to add a check after every 'next' and co.
-
Have any person Write SHOP script random option on buy item ?
Capuche replied to insandedid's question in Script Requests
How about https://gist.github.com/Atemo/7b741b940ce324c2fa17b8ccdcd84133/revisions The random options are randomly given when purchasing in the script btw. Mark the shop number as random option shop in // ----------------------------------------------------------- // List of Shop ID using random option system. // ----------------------------------------------------------- Shop_Random_Option(1,2); // shop 1 and 2 are using random option system. Set the option given randomly for each slot in function get_option_id { // opt slot 1 .@optid[0] = F_Rand( RDMOPT_DAMAGE_PROPERTY_NOTHING_TARGET, RDMOPT_DAMAGE_PROPERTY_POISON_TARGET, RDMOPT_DAMAGE_PROPERTY_UNDEAD_TARGET, RDMOPT_DAMAGE_PROPERTY_DARKNESS_TARGET, RDMOPT_DAMAGE_PROPERTY_TELEKINESIS_TARGET, RDMOPT_DAMAGE_PROPERTY_SAINT_TARGET, RDMOPT_DAMAGE_PROPERTY_FIRE_TARGET, RDMOPT_DAMAGE_PROPERTY_WIND_TARGET, RDMOPT_DAMAGE_PROPERTY_WATER_TARGET, RDMOPT_DAMAGE_PROPERTY_GROUND_TARGET ); // opt slot 2 .@optid[1] = F_Rand( RDMOPT_RACE_DAMAGE_NOTHING, RDMOPT_RACE_DAMAGE_UNDEAD, RDMOPT_RACE_DAMAGE_INSECT, RDMOPT_RACE_DAMAGE_HUMAN, RDMOPT_RACE_DAMAGE_DRAGON, RDMOPT_RACE_DAMAGE_ANGEL, RDMOPT_RACE_DAMAGE_PLANT, RDMOPT_RACE_DAMAGE_DEVIL, RDMOPT_RACE_DAMAGE_ANIMAL, RDMOPT_RACE_DAMAGE_FISHS ); // opt slot 3 // .@optid[2] = // opt slot 4 // .@optid[3] = setarray getarg(0), .@optid[0], .@optid[1], .@optid[2], .@optid[3]; return; } and set the value for each option ID in // return a random value depending of the option ID function get_option_value { .@size_of_optid = getarraysize( getarg(1) ); for ( .@i = 0; .@i < .@size_of_optid; .@i++ ) { .@id = getelementofarray( getarg(1), .@i ); switch(.@id) { case RDMOPT_DAMAGE_PROPERTY_NOTHING_TARGET: case RDMOPT_DAMAGE_PROPERTY_POISON_TARGET: case RDMOPT_DAMAGE_PROPERTY_UNDEAD_TARGET: case RDMOPT_DAMAGE_PROPERTY_DARKNESS_TARGET: case RDMOPT_DAMAGE_PROPERTY_TELEKINESIS_TARGET: case RDMOPT_DAMAGE_PROPERTY_SAINT_TARGET: case RDMOPT_DAMAGE_PROPERTY_FIRE_TARGET: case RDMOPT_DAMAGE_PROPERTY_WIND_TARGET: case RDMOPT_DAMAGE_PROPERTY_WATER_TARGET: case RDMOPT_DAMAGE_PROPERTY_GROUND_TARGET: .@val = rand(1,20); break; case RDMOPT_RACE_DAMAGE_NOTHING: case RDMOPT_RACE_DAMAGE_UNDEAD: case RDMOPT_RACE_DAMAGE_INSECT: case RDMOPT_RACE_DAMAGE_HUMAN: case RDMOPT_RACE_DAMAGE_DRAGON: case RDMOPT_RACE_DAMAGE_ANGEL: case RDMOPT_RACE_DAMAGE_PLANT: case RDMOPT_RACE_DAMAGE_DEVIL: case RDMOPT_RACE_DAMAGE_ANIMAL: case RDMOPT_RACE_DAMAGE_FISHS: .@val = rand(1,20); break; } set getelementofarray( getarg(0), .@i ), .@val; } return; }- 1 reply
-
- 4
-
-
-
-
delequip could do the work too *delequip <equipment slot>{,<char_id>}; This command will destroy whatever is currently equipped in the invoking character's specified equipment slot. For a full list of possible equipment slots see 'getequipid'. This command will return 1 if an item was deleted and 0 otherwise. if (getequipid(EQI_ARMOR) == 2304 && getequiprefinerycnt(EQI_ARMOR) == 7) delequip EQI_ARMOR;
-
getmapxy has been updated https://github.com/rathena/rathena/commit/26720f041a3cd0edbaa975bfc70345a30e9bf706 You need to update the script depending of your emulator date
-
[BUG] in /npc/battleground/kvm/kvm_item_pay.txt
Capuche replied to CyberDevil's topic in Implemented
You were right https://github.com/rathena/rathena/commit/cc11869a93571f0e0355917ba113d1bd98d42d48 Next time open an issue on GitHub thanks ! -
I need a script that will lock the castle doors I wish
Capuche replied to ADM Ytallo's question in Script Requests
The title matches the description at least. izlude,100,100,0 script I need a script that will 56,{ disablenpc "lock the castle doors I wish"; end; } ordeal_1-1,100,150,0 warp lock the castle doors I wish 1,1,ordeal_1-1,128,150