Jump to content

latios

Members
  • Posts

    25
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by latios

  1. On 4/25/2022 at 7:08 PM, Hakahay said:

    Is it possible to pull information from a divine-pride database of another language?

    Hi @Hakahay, querying other language/region DP databases using dp2rathena is not possible yet. Though Divine-Pride does have the feature of querying different language/region databases through their website and API. 

    Spoiler

    image.png

     

    • Love 1
  2. Hi @exyoupjkbrxd, that's quite strange ?. I have a few questions and ideas:

    1. If you copy and paste the URL (with your actual API key) into a browser, are you able to see the relevant JSON data?
      https://divine-pride.net/api/database/monster/20592?apiKey=yoursecretapikey
    2. Does it work if you call the command by passing in your API key?
      dp2rathena -k yoursecretapikey mob 20592

    There might be some whitespace at the beginning/end of your API key.

    I was able to successfully pull the data for mob 20592 with my own API key:

    Spoiler
    Header:
      Type: MOB_DB
      Version: 2
    Body:
    - Id: 20592
      AegisName: POISONOUS
      Name: Poisonous
      Level: 188
      Hp: 2407086
      BaseExp: 343870
      JobExp: 240708
      Attack: -278
      Defense: 132
      MagicDefense: 63
      Str: 145
      Agi: 141
      Vit: 77
      Int: 67
      Dex: 175
      Luk: 11
      AttackRange: 1
      SkillRange: 10
      ChaseRange: 12
      Size: Medium
      Race: Formless
      Element: Ghost
      ElementLevel: 4
      WalkSpeed: 350
      AttackDelay: 1033
      AttackMotion: 1440
      DamageMotion: 672
      Ai: Unknown
      Drops:
      - Item: Poisonous_Card
        Rate: 1
        StealProtected: true

     

     

  3. On 10/6/2021 at 1:51 AM, kennykiro said:

    how do i use this program? wouldn't have a video to help? I installed everything right so I don't know how to use the program or the API.

    Hi there @kennykiro, it's unclear to me what kind of struggle you are having.

    Do you have an example of where you are stuck?

    Additionally, are you already familiar with using command-line (CLI) tools, if so, do you have an examples of CLI tools you like to use? I may be able to give better examples if I understand what you are familiar with.

     

    @kennykiro I've updated the GitHub repo with slightly clearer information and also a small terminal animation, which may or may not help you but hopefully it does ?

     dp2rathena terminal animation

  4. I've just released version 0.3.0 which allows for converting mob skills and creating a mob_skill_db.txt file.

    To update your dp2rathena to the latest version, you'll need to run:

    pip install -U dp2rathena

    Instructions for how to use the new feature are listed at the top of this thread and within the tool help text. For example running the help command:

    dp2rathena mobskill --help

    Will produce this help text:

    Spoiler
    
    Usage: dp2rathena mobskill [OPTIONS] [VALUE]...
    
      Converts mob ids to rathena mob_skill_db.txt.
    
      Examples:
          # Pass API key and convert mob ids 1002 and 1049
          dp2rathena --api-key <your-api-key> mobskill 1002 1049
    
          # Pass API key and convert mobs via STDIN
          dp2rathena -k <your-api-key> mobskill -f -
    
          # Save API key and convert mob ids in ids_to_convert.txt
          dp2rathena config
          dp2rathena mobskill -f ids_to_convert.txt
    
    Options:
      -f, --file  A file with mob ids to convert, newline separated.
      --debug     Shows debug information when querying Divine-Pride.
      -h, --help  Show this message and exit.

     

    Let me know if you come across any issues or have any requests/suggestions.

    I'll do my best to reply promptly /ok

  5. Hi all, I put together a command-line tool to help save time when porting lots of existing items to an rAthena server: https://github.com/Latiosu/dp2rathena
    I noticed that the rAthena community often refers to divine-pride.net (DP) as a source of truth, so I figured it would be useful to connect with their API.

    Summary
    The tool uses data from divine-pride.net and attempts to map the API response to a desired rAthena database format.

    Installation
    Requires Python 3.6+ and pip installed: 

    pip install dp2rathena

    Usage
    Generate a divine-pride.net API key if you don't have one yet (registration required), then you can start converting data:

    dp2rathena terminal animation


    Example 1: Store API key and convert items with id 501 and 1101

    dp2rathena config
    dp2rathena item 501 1101

    Produces this output:

    Spoiler
    Header:
      Type: ITEM_DB
      Version: 1
    Body:
    - Id: 501
      AegisName: Red_Potion
      Name: Red Potion
      Type: Healing
      Buy: 10
      Weight: 70
    - Id: 1101
      AegisName: Sword
      Name: Sword
      Type: Weapon
      SubType: 1hSword
      Buy: 100
      Weight: 500
      Attack: 25
      Range: 1
      Slots: 3
      Jobs:
        Alchemist: true
        Assassin: true
        Blacksmith: true
        Crusader: true
        Knight: true
        Merchant: true
        Novice: true
        Rogue: true
        SuperNovice: true
        Swordman: true
        Thief: true
      Locations:
        Right_Hand: true
      WeaponLevel: 1
      EquipLevelMin: 2
      Refineable: true
      View: 2

     

     

    Example 2: Convert mobskills for mobs with id 1002, 1049 and 1299 and save to a file called "attacks.txt" (re-uses stored API key if present)

    dp2rathena mobskill 1002 1049 1299 > C:\Users\Latios\Desktop\attacks.txt

    Produces a file in the Desktop folder called "attacks.txt":

    Spoiler
    1002,Poring@NPC_EMOTION,loot,197,1,2000,0,5000,yes,self,always,,2,,,,,,
    1002,Poring@NPC_WATERATTACK,attack,184,1,2000,0,5000,yes,target,always,,,,,,,,
    1049,Picky@NPC_EMOTION,walk,197,1,2000,0,5000,yes,self,always,,2,,,,,,
    1049,Picky@NPC_FIREATTACK,attack,186,1,2000,0,5000,yes,target,always,,,,,,,,
    1299,Goblin Leader@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,
    1299,Goblin Leader@BS_MAXIMIZE,attack,114,5,500,1000,5000,no,self,always,,,,,,,27,
    1299,Goblin Leader@BS_MAXIMIZE,chase,114,5,500,1000,5000,no,self,always,,,,,,,27,
    1299,Goblin Leader@CR_SHIELDCHARGE,attack,250,3,500,0,5000,no,target,always,,,,,,,27,
    1299,Goblin Leader@NPC_SUMMONSLAVE,attack,196,5,10000,2000,60000,no,self,slavele,2,1122,1123,1124,1125,1126,27,
    1299,Goblin Leader@NPC_SUMMONSLAVE,idle,196,5,10000,2000,60000,no,self,slavele,2,1122,1123,1124,1125,1126,27,

     

     

    Example 3: Convert mob with id 20357 to mob_db.yml format

    dp2rathena mob 20357

    Produces following command-line output:

    Spoiler
    Header:
      Type: MOB_DB
      Version: 2
    Body:
    - Id: 20357
      AegisName: EP17_1_SANARE1
      Name: Heart Hunter Sanare
      Level: 120
      Hp: 30159
      BaseExp: 6702
      JobExp: 5362
      Attack: 765
      Attack2: 504
      Defense: 200
      MagicDefense: 27
      Str: 51
      Agi: 51
      Vit: 70
      Int: 63
      Dex: 117
      Luk: 77
      AttackRange: 1
      SkillRange: 10
      ChaseRange: 12
      Size: Medium
      Race: Demihuman
      Element: Neutral
      ElementLevel: 2
      WalkSpeed: 200
      AttackDelay: 531
      AttackMotion: 1268       
      DamageMotion: 480        
      Ai: Unknown
      Drops:
      - Item: Crude_Ammo
        Rate: 1000
      - Item: Heart_Hunter_Seal
        Rate: 1250
      - Item: Oridecon_Stone
        Rate: 150
      - Item: Oridecon
        Rate: 12
      - Item: EP17_1_EVT02
        Rate: 10
      - Item: Explosive_Powder
        Rate: 30
      - Item: Sanare_Card
        Rate: 1
        StealProtected: true

     

    Further instructions can be found at the repository: https://github.com/Latiosu/dp2rathena

    Limitations

    I've moved this section to the GitHub repository above to keep it up-to-date.

    ---

    Let me know if you'd like to be able to convert other data from DP, some other suggestion or any questions. 

    Edit: Add terminal animation for a visual explanation

    • Upvote 5
    • Love 2
    • Like 2
  6. @ahloi007 The first issue is saying that "j" hasn't been defined on line 2705 in file pc.cpp. You'll want to look around the code there and try to figure out why the definition (e.g. "int j;") is missing. For example, in this part of the diff there is an "int j;" at the top, but isn't there for some reason in your code.

    @@ -2627,7 +2638,7 @@ void pc_exeautobonus(struct map_session_data *sd, std::vector<s_autobonus> *bonu
     		int j;
     		unsigned int equip_pos_idx = 0;
     		//Create a list of all equipped positions to see if all items needed for the autobonus are still present [Playtester]
    -		for(j = 0; j < EQI_MAX; j++) {
    +		for(j = 0; j < EQI_MAX_BONUS; j++) {
     			if(sd->equip_index[j] >= 0)
     				equip_pos_idx |= sd->inventory.u.items_inventory[sd->equip_index[j]].equip;
     		}

    The second issue is saying that the constant "EQI_MAX_BONUS" isn't found anywhere in the pc.cpp or pc.hpp files. In the diff, there is a section which indicates it should be added to pc.hpp. You'll want to check if it's there and if it is, figure out why it might not be found in pc.cpp. Here is the part of the diff where it gets added:

    diff --git a/src/map/pc.hpp b/src/map/pc.hpp
    index b52784b..23d1a85 100644
    --- a/src/map/pc.hpp
    +++ b/src/map/pc.hpp
    @@ -84,7 +84,8 @@ enum equip_index {
     	EQI_SHADOW_SHOES,
     	EQI_SHADOW_ACC_R,
     	EQI_SHADOW_ACC_L,
    -	EQI_MAX
    +	EQI_MAX,
    +	EQI_MAX_BONUS = 10
     };

     

  7. What is the best way to help approved pull requests (not on hold) get merged?
    For example this filtered list of pull requests: https://github.com/rathena/rathena/pulls?q=is%3Apr+is%3Aopen+review%3Aapproved+-label%3Astatus%3Aonhold

    Would adding things such as screenshots or a video of testing help?

    I suppose I'm wondering how to help aspiring contributors understand what work is remaining on a PR before it gets merged.
    It'd be helpful to know if we can do anything else to assist devs for a given PR.

  8. I have also been wondering why Dancer/Bard songs aren't showing skill effects. I'm looking through the commit to see if I can spot anything that might have caused it.

    @CyberDevil Are you able to confirm that the Dancer/Bard skills work again when you deploy the previous commit 850904a?

     

    @CyberDevil Ah, it seems like there is meant to be new skill animations for Bard/Dancer songs/dances; as a part of this update: https://www.divine-pride.net/forum/index.php?/topic/3453-kro-mass-skills-balance-1st-2nd-and-transcendent-classes-skills/

    Spoiler

    033718_AyxfMazM.gif

    I'd imagine you can revert the changes by removing the #ifndef and #endif statements in skill.cpp.

    Spoiler

    image.png.c3aa23a8a90ea2c886b80b23ab8a6f6d.png

    Plus add the units back into each song/dance in db/re/skill_db.yml

    Spoiler

    image.png.6efde92e670cfe7039ca1d36c4e6bd99.png

     

    • Upvote 2
    • Like 1
  9. Thanks @Emistry, that makes sense.

    Although if I wanted to create a Pull Request to amend values in mob_db.txt based on values in the kRO database on Divine-Pride (e.g. Combat Basilisk Base & Job EXP https://www.divine-pride.net/database/monster/3503/combat-basilisk) would that be rejected since it's not 100% proof direct from kRO (like in-game screenshots)?

    I suppose I could also just create the PR and see if it's rejected or not.

    Basically, I'm wondering what alternative sources (besides AEGIS conversion or direct from kRO) I could use to assist with updating rAthena DBs.

  10. Hi there fellow rAthenians (is that right?),

    I've loved playing RO since I was rather young (back in 2004) and have played it on and off since. I have many fond memories of the original servers and various private servers when I discovered them many years later.

    I've recently setup my own private server based in Sydney using rAthena and it's been a blast. I'm really loving all the wonderful contributions and content the community here has made.

    I'm planning to keep an eye out on how I can give back to rAthena for the many joys it has enabled me to have.

     

    Hello again and thanks to everyone here in advance!

    - Latios

    • Love 1
  11. Would anyone here happen to know what rAthena uses as a reference or source of truth for correcting mistakes in mob_db.txt?

    In other words, how would someone know whether a line in mob_db.txt has a mistake in it or not?

     

    I have done some digging around the forums and previous GitHub commits but haven't found that states where the values come from or what process to use to confirm correctness.

    I personally have been using a combination of Divine-Pride, RMS Mob DB and iRO Wiki DB and seeing which has most realistic values and correlating with similar mobs.

  12. @Amir Azman

    Nyliar's script for Charleston Crisis still works for the rAthena:

     

    I also replaced Nyliar's merchant with CrazyArashi's merchants since I liked the layout much more. 
    Here is how it looks on my server:

    screenChocobotRO015.thumb.jpg.219e2dd57792d6b20562f06e371328ab.jpg

  13. Hi all,

    I've modified secret's script to service third jobs only with the jRO costume. This was to get around the confusing issues that appear with skills when switching base classes.

    For those who were still wondering how to fix the issue where costume doesn't stay after player reconnects, you'll need to turn on "save_body_style" in your battle config.
    Here's what rathena's doc/script_commands.txt says:

    Only the look data for hairstyle, hair color and clothes color are saved to the
    char server's database and will persist. Body style will also persist if 'save_body_style'
    configuration is enabled in '/conf/battle/client.conf'.

    Screenshot of modified script (and NPC sprite):

    screenChocobotRO001.thumb.jpg.85e977654fffc1db5995f8365fa9bfbd.jpg

    DressRoom_ThirdOnly.txt

  14. @Captain

    Yes, that's correct. Although a way around this is to "costume" the item on another character who can wear it and then put it in storage to transfer back to your other character to wear.

    I don't believe the item permissions (storage/trade/drop/etc ...) are modified, so if you could trade it before you can still trade it after "costuming" the item.

  15. Hi all,

    I've taken the time to update this script and tested it on my server running latest version of rAthena (version at the time of writing Git Hash: f8d5d45).

    Additional Changes

    • NPC name can now be easily customised by replacing 2nd argument in the function call at the bottom of npc/custom/etc/costume.txt
    • NPC checks whether the user already has the same item being restored equipped or in inventory and will prevent restoring.
    • Fixed/tweaked some typos and grammar for the NPC dialogue and atcommand messages.
    • costume.txt has been included inside the diff

    Screenshot

    screenChocobotRO010.thumb.jpg.a0ff6db06ffca4f21dbed55d3e6b69b9.jpg

    Costume_System_v2.diff

    Edit: I actually just discovered that the wonderful secretdataz had already updated the diff to work with newer versions of rAthena here (https://github.com/secretdataz/rathena/pull/8/files). The main differences to my edit is secret's also handles costuming garments and there is atcommand documentation. The diff I have uploaded comes with an updated NPC script.

    • Upvote 1
×
×
  • Create New...