-
Content Count
2,392 -
Avg. Content Per Day
1 -
Joined
-
Last visited
-
Days Won
45
Capuche last won the day on May 25 2019
Capuche had the most liked content!
Community Reputation
555 ExcellentAbout Capuche

-
Rank
Mastering
-
How works AG_CHATTING and AG_SPEND_ZENY from Achievement System
Capuche replied to WhiteEagle's question in Database Support
AG_CHATTING is not supported yet. See the pull request https://github.com/rathena/rathena/pull/4446 for an initial implementation. -
https://github.com/rathena/rathena/commit/d4d8130bcf0733d4d9edc4019db02184912c13c0
- 1 reply
-
- 1
-
-
Your old file have mistakes, your items should be type armor instead of weapon (4 instead of 5), or if they are supposed to be weapon type, the 'viewid' of the weapon must be defined source side.
-
^ The tool to convert txt to yml (csv2yaml) can convert your import/item_db.txt as well. Compile the tool, run it !
-
The 'SubType' (or viewid) 1100 for weapon doesn't exist. Replace the item type 5 (weapon) by type 4 (armor). 30001,Akatsuki_Hat,Akatsuki_Hat,4,10000...
-
The quest system already handle the timer. For example - Id: 9998 Title: "Memorial Dungeon: Champion" TimeLimit: 4h - Id: 9999 Title: "Memorial Dungeon: Champion" TimeLimit: +4h 9998 is reset at every 4:00, 9999 is reset 4h after the quest is given. The issue of the topic owner was because he made some mistakes in the NPC script, the conditions on the timers were always false so the player could always recreate the instance. Sample of correction switch( checkquest(9998,PLAYTIME) ) { case -1: break; case 0: case 1: mes "^ff0000Memorial Dungeon cannot be reentered within 8 hours after your last entrance.^000000"; mes "Reset Every 04:00 AM"; close; case 2: erasequest 9998;// Memorial Dungeon: Champion break; } switch( checkquest(9999,PLAYTIME) ) { case -1: break; case 0: case 1: mes "^ff0000Memorial Dungeon cannot be reentered within 8 hours after your last entrance.^000000"; mes "Reset Every 04:00 AM"; close; case 2: erasequest 9999; break; } Create INSTANCE
-
https://github.com/rathena/rathena/blob/master/doc/item_db.txt#L186
-
There is getunitdata to retrieve x y for monster. Sample untested : - script CustomDrop FAKE_NPC,{ function add_drop; OnNPCKillEvent: if (!playerattached()) end; [email protected]_id = killedrid; [email protected] = getd(".size_" + [email protected]_id); if ([email protected] < 1) end; getunitdata killedgid, [email protected]; [email protected] = [email protected][UMOB_X]; [email protected] = [email protected][UMOB_Y]; [email protected]$ = strcharinfo(3); for ([email protected] = 0; [email protected] < [email protected]; [email protected]++) { [email protected] = getd(".chance_" + [email protected]_id + "[" + [email protected] + "]"); if (rand(10000) < [email protected]) { [email protected] = getd(".item_id_" + [email protected]_id + "[" + [email protected] + "]"); [email protected] = getd(".item_amount_" + [email protected]_id + "[" + [email protected] + "]"); while ([email protected] > 0) { makeitem [email protected], 1, [email protected]$, [email protected], [email protected]; [email protected]; } } } end; OnInit: // <mob_id>, <item_id>, <item_amount>, <chance> // Chance ======================== // 10000 = 100% // 1000 = 10% // 100 = 1% // 99 = 0.99% // 50 = 0.50% // 1 = 0.01% // =============================== add_drop( 1002, 607, 2, 10000 ); // poring will drop 2 ygg berries on the floor with 100% chance add_drop( 1002, 608, 3, 10000 ); // poring will drop 3 ygg seeds on the floor with 100% chance end; function add_drop { [email protected]_count = getargcount(); if ([email protected]_count % 4) return; for ([email protected] = 0; [email protected] < [email protected]_count; [email protected] += 4) { [email protected]_id = getarg([email protected]); [email protected] = getd(".size_" + [email protected]_id); setd ".item_id_" + [email protected]_id + "[" + [email protected] + "]", getarg([email protected]+1); // <item_id> setd ".item_amount_" + [email protected]_id + "[" + [email protected] + "]", getarg([email protected]+2); // <item_amount> setd ".chance_" + [email protected]_id + "[" + [email protected] + "]", getarg([email protected]+3); // <chance> setd ".size_" + [email protected]_id, [email protected] + 1; } return; } }
-
When did I say the opposite ? The item script is just probably outdated. Also note that RMS is not reliable, as we said it again and again on the forum.
-
It's true that Muscle Fool item script has been changed several times. I don't follow all the kRO patch so I prefer to stick with our current data file which gives +1000 Def for now.
-
Change skill_unconditional to true https://github.com/rathena/rathena/blob/0e42b738c59be3330395e8c79c51500d534fcf55/conf/groups.conf#L290
-
A pull request is currently ongoing to fix the issue https://github.com/rathena/rathena/pull/4945
-
Convert custom quest_db.txt in .yml format
Capuche replied to CyberDevil's question in Database Support
Run the tool in tool/csv2yaml to convert your txt to yml -
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