Jump to content

Capuche

Developer
  • Posts

    2407
  • Joined

  • Last visited

  • Days Won

    51

Community Answers

  1. Capuche's post in party warp was marked as the answer   
    or
    12212,Giant_Fly_Wing,Giant Fly Wing,2,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "F_CashPartyCall"; },{},{} from trunk/npc/other/CashShop_Functions.txt
     
    // Giant Fly Wing //============================================================ // - Warp party leader to random spot on the map. // - Summon Party members on party leader map to that location. // - No arguments. function script F_CashPartyCall { warp "Random",0,0; if(getpartyleader(getcharid(1),2) == getcharid(0)) { getmapxy .@mapl$, .@xl, .@yl, 0; warpparty .@mapl$, .@xl, .@yl, getcharid(1), .@mapl$; } return; }
  2. Capuche's post in reset quest at spesific time was marked as the answer   
    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  
  3. Capuche's post in item_db.txt convert to YAML was marked as the answer   
    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...  
  4. Capuche's post in script:implode: array length = 0 Gatcha Script was marked as the answer   
    Try the updated script https://github.com/Atemo/scripts_customs/blob/master/olds_scripts/gatcha.txt
  5. Capuche's post in Custom Branch group new rathena was marked as the answer   
    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. Capuche's post in Ask about skill_db.yml was marked as the answer   
    # 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............. ?‍♂️
  7. Capuche's post in reflect damage how to reduce was marked as the answer   
    https://github.com/rathena/rathena/commit/d4d8130bcf0733d4d9edc4019db02184912c13c0
  8. Capuche's post in GM ID wont bypass mapflag noskill and nowarp was marked as the answer   
    Change skill_unconditional to true
    https://github.com/rathena/rathena/blob/0e42b738c59be3330395e8c79c51500d534fcf55/conf/groups.conf#L290
  9. Capuche's post in cell walkable with hidden npc in it was marked as the answer   
    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)  
  10. Capuche's post in About euphys Quest shop. was marked as the answer   
    https://github.com/rathena/rathena/blob/bdd63022a9c479df833304add9537eca7f39b331/conf/battle/items.conf#L139
    set to 0
  11. Capuche's post in How break an equipped weapon? was marked as the answer   
    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.  
  12. Capuche's post in Some mountable classes are bugged was marked as the answer   
    https://github.com/rathena/rathena/commit/80810e24f820d0f5f92c3c62345de60a863eaf5a
  13. Capuche's post in OnNPCKillEvent not work in instances was marked as the answer   
    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)  
  14. Capuche's post in makeitem2 not dropping on floor was marked as the answer   
    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 );  
  15. Capuche's post in Unofficial Fallen Angel Wing (FAW) Enchantment was marked as the answer   
    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
     
  16. Capuche's post in unitskilluseid,unitskillusepos weird workaround to remove cast time was marked as the answer   
    *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 !
  17. Capuche's post in Have any person Write SHOP script random option on buy item ? was marked as the answer   
    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; }  
  18. Capuche's post in I need a script that will lock the castle doors I wish was marked as the answer   
    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  
  19. Capuche's post in System vending was marked as the answer   
    Re-update your server it has been fixed in https://github.com/rathena/rathena/commit/5908c0484fc3243575afbfc8f231d01f64837052
    To resume mapserv crashed when getmapxy command attempted to retrieve the map of floating npc.
  20. Capuche's post in parse_callfunc: not enough arguments, expected ',' was marked as the answer   
    Add quote to the map name, "1@md_pay"
  21. Capuche's post in Whats the difference between these scripts was marked as the answer   
    Nothing, the two do the same thing.
  22. Capuche's post in How to add more shop in quest_shop.txt was marked as the answer   
    setarray .Shops$[1],"Costumes","Equipments","Accessory","etc"; Where are the names of shops 5, 6, 7 ?
  23. Capuche's post in How to make RANDOM OPTION weapon effect with more than 1 random option? was marked as the answer   
    setarray .@OptID[0], RDMOPT_WEAPON_ATTR_TELEKINESIS, RDMOPT_VAR_AGIAMOUNT; setarray .@OptVal[0], 0,3; setarray .@OptParam[0], 0,0; getitem3 28705,1,1,9,0,0,0,0,0,.@OptID,.@OptVal,.@OptParam; should give 2 charms in the item. Fill the arrays.
  24. Capuche's post in Attaching RID to another NPC. was marked as the answer   
    Use doevent instead of donpcevent to keep the RID attached !
  25. Capuche's post in How to separate npc_dynamic_shop.txt shops into a different NPC? was marked as the answer   
    Set your shop in
    // Script Core //============================================================ - script quest_shop -1,{ Call the shop in
    // Shop NPCs -- supplying no argument displays entire menu. // callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}}; //============================================================ prontera,164,203,6 script Quest Shop#1 998,{ callfunc "qshop"; } // call all shop prontera,164,203,6 script Quest Shop#1 998,{ callfunc "qshop",1; } // call shop number 1 prontera,164,203,6 script Quest Shop#1 998,{ callfunc "qshop",1,2; } // call shop number 1 and 2  
×
×
  • Create New...