Jump to content

Capuche

Developer
  • Posts

    2,403
  • Joined

  • Last visited

  • Days Won

    47

Everything posted by Capuche

  1. Currently working on Episode 18.1 scripts..!

  2. This isssue has been fixed by Lemongrass in https://github.com/rathena/rathena/commit/1deb5a5f3e3dbb716b2ef9fe43e4c79df3518063
  3. Maybe there is a mistake in your group name ? item_group_db_.yml - Group: MyItemGroup Contain: the name in const.yml must be IG_MyItemGroup because 'IG_' is appended to the name when the file is read.
  4. Ratio is a number between 0 and 10000, it can't exceed 10000 like in conf/battle/drops.txt 0 to remove the item 1 for 0.01% 10000 for 100% (in theory)
  5. To add a custom monster summon branch, the steps are: Add MOBG_G_D_Branch_01 before MOBG_MAX in https://github.com/rathena/rathena/blob/2f311bd1ef6abf0de642f93690eb37bebbb34d14/src/map/mob.hpp#L116 Add MOBG_G_D_Branch_01 after export_constant(MOBG_TAEKWON_MISSION); in https://github.com/rathena/rathena/blob/2f311bd1ef6abf0de642f93690eb37bebbb34d14/src/map/script_constants.hpp#L4625 After compiling your server should have created a folder named "import". Add your custom branch data in import/mob_summon.yml Header: Type: MOB_SUMMONABLE_DB Version: 1 Body: - Group: G_D_Branch_01 Default: MAYA Summon: - Mob: MAYA Rate: 100000 - Mob: DEVILING Rate: 700000 - Mob: Drake Rate: 700000 4. In import/item_db.yml - Id: **** AegisName: name Name: name Type: Usable Buy: 10000 Weight: 200 Flags: BuyingStore: true DeadBranch: true Script: | monster "this",-1,-1,"--ja--",-1-MOBG_G_D_Branch_01,1,""; All other steps are unnecessary (I think you just forgot to compile according to the error in your first post).
  6. In switch(instance_enter( [email protected]$, 170, 36, [email protected]_id, 102)) { "102" should be replaced by the instance id of your guild given by instance_id(IM_GUILD)
  7. Post your instance_enter line here we will see what's going on
  8. *instance_enter("<instance name>",{<x>,<y>,<char_id>,<instance id>}); Warps the attached player to the specified <instance id>. If no ID is specified, the IM_PARTY instance the invoking player is attached to is used. you need to fill the instance id parameter to enter in the other type of instance than party. The instance without timer is currently not supported but you may use this pull request https://github.com/rathena/rathena/pull/5112
  9. # ItemCost: Item required to cast. (Default: 0) # - Item Item name. # Amount Item amount. How come you came to think that the file could support this when it's not in the documentation hmm.............
  10. How about https://github.com/rathena/rathena/blob/c5cf2f6e42b1cb88d501e0b3e7c56e870b928209/doc/script_commands.txt#L6567 *unloadnpc "<NPC object name>"; This command will fully unload a NPC object and all of it's duplicates.
  11. AG_CHATTING is not supported yet. See the pull request https://github.com/rathena/rathena/pull/4446 for an initial implementation.
  12. https://github.com/rathena/rathena/commit/d4d8130bcf0733d4d9edc4019db02184912c13c0
  13. 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.
  14. ^ The tool to convert txt to yml (csv2yaml) can convert your import/item_db.txt as well. Compile the tool, run it !
  15. 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...
  16. 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
  17. https://github.com/rathena/rathena/blob/master/doc/item_db.txt#L186
  18. 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; } }
  19. 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.
  20. 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.
  21. Change skill_unconditional to true https://github.com/rathena/rathena/blob/0e42b738c59be3330395e8c79c51500d534fcf55/conf/groups.conf#L290
  22. A pull request is currently ongoing to fix the issue https://github.com/rathena/rathena/pull/4945
  23. Run the tool in tool/csv2yaml to convert your txt to yml
  24. 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)
×
×
  • Create New...

Important Information

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