Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 04/05/24 in all areas

  1. I personally would start with pre-renewal, just check out latest rAthena and enable PRERE, compile. For client you can always use the latest client for which there is a diffable executable (and usually can just get the latest data.grf from kRO). I would recommend just starting with the most recent available because diffing the executable is the hardest and most annoying part of setting up a server, so you only want to do it once and not later again if you want even newer content. Tools like WARP already offer quite some modes and tricks (e.g. to remove the doram selection screen). The advantage of starting with PRERE is that you already have all the mechanics work like PRERE and you could already just launch your server in alpha mode. Then slowly start adding renewal content. Since this is a long process that can take years, it's better to do it slowly one after another. If you started with Renewal, you'd have a long phase were you wouldn't even have a working version, so you'll probably lose motivation before you're even down reverting all renewal mechanics back to pre-re. So yeah, my recommendation is to start with pre-renewal. I think on rAthena we already did it so that even in PRERE all the renewal maps are available and you can warp to them with the warp atcommand. Now the work starts. The best thing is probably to start small. Just pick a single renewal map you want to make accessible. You will need to find add the warps from and to the location. You can take them from existing renewal NPC files, but don't blindly copy the complete file because you'll add warps to locations you don't support then. I guess copying or loading the file but commenting out the warps you don't want yet is the best way to go about it. Same strategy should work with NPCs on that map, but might want to remove the scripts for all NPCs you don't want yet (if you keep the file location as it is and then link to it from the pre-re scripts_main file you can easily restore the deleted NPCs just using TortoiseGit Diff or a similar tool). Now you want to add all the database stuff needed for that map: Items, monsters, etc. These you can't simply copy over from renewal as the stats there have a different meaning, you will need to rebalance the items. I don't think automatically converting items in any form will result in a balanced item. You'd need to look at similar items in renewal and decide for a suitable value. For monsters, you can actually convert some values mathematically. I never wrote a converter for it, but it could certainly be done. For example if you look at HORN_SCARABA (2083): Attack: 886 Attack2: 91 Defense: 135 MagicDefense: 20 Defense 135 in renewal means 23% damage reduction. Which is the same as 23 DEF in pre-renewal. MagicDefense 20 in renewal means 15% damage reduction. Which is the same as 15 DEF in pre-renewal. So you would want to put this instead: Attack: 886 Attack2: 91 Defense: 23 MagicDefense: 15 Next problem is the attack. As you know, in pre-renewal Attack is minimum ATK and Attack2 is maximum ATK. But in renewal Attack is physical ATK and Attack2 is magical ATK. This could also automatically be calculated, you just need Level, STR and INT on top of Attack and Attack2. From renewal "Attack", "Level" and "STR", you can actually calculate both minimum ATK and maximum ATK. From renewal "Attack2", "Level" and "INT" you want to calculate the pre-renewal INT as that determines MATK in pre-renewal. But you only really need to do that if the monsters actually has any magical spells. Otherwise you might just want to leave the original INT value as it is. Also consider the "Level" as well. If you keep max level 99 on your server, then monsters have level 130+ will have too high HIT/FLEE, which might make them unbalanced on your server. I just improved my old helper tool to convert those numbers. It's attached. prerenewal_v2.zip
    4 points
  2. Froggo Rö Folder This is a simple RO folder that contains everything you need to run a 2022-04-06 client, the latest publicly available. I have cleaned and compressed the data.grf file to reduce its size from 3.87GB to 2.15GB. official_data.grf took the same treatment and the file size went down to 426MB. Additionally, I have added a mini-map to all those maps that were lacking one, approximately 275 mini-maps were added, I only ignored some indoor (_in) and guild castles maps. Before BGM, the Rö folder has a total size of 2.62GB, after BGM it reaches 2.96GB Screenshots Requirements Server Up & Running with ‎‏‏‎ PACKETVER=20220406 Visual C++ Redistributables DirectX Runtime Features Includes latest RoEnglishRE - 16/mar/2024 Custom Lua Support jRO Enchantment Display Includes rsu-kro-rag-lite (kRO updater) - v4.2.2.1316 Includes opensetup - v3.1.0.627 Includes iRO's Setup.exe, thanks to relzz! Includes AzzyAI 1.55 Includes Packet Viewer Download click here to download a .zip file of this ro-folder Extra Warp Profile for 2022-04-06 used for FroggoClient.exe (mirror) 2022-04-06 Vanilla Ragexe Client Login Screen Creator Official Ragnarok Complete Installer (08/Jan/2024)(mirror) Froggö Ro Folder Gitlab's Repo FAQ Why am I getting CHARACTER_INFO size error when trying to log in? Possible reasons: You are using outdated rAthena which doesn't work with 2022-04-06 client. You haven't set correct PACKETVER or done it with mistakes (skill issue ). You haven't recompiled rAthena. You haven't restarted server after recompilation. Why am I getting errors about MSVCP140.dll, VCRUNTIME140.dll when executing FroggoClient.exe? You haven't installed Visual C++ Redist, check requirements section, if problem persists, try installing this too Visual C++ Redist for VS 2012u4 What is official_data.grf ? official_data.grf is from the ROResourceCollection project, which brings many items, mobs and npc files from other RO Regions and merges it into one convenient grf. Why does the Setup.exe opens instead of the FroggoClient.exe? In your Windows registry there is no data about your selected graphic card, to fix it, just set up your settings in Setup.exe and click on OK, be aware to don't select DirectX9, stay on DirectX7 What was removed from the data.grf? Several unnecessary files were removed from the data.grf . These included residual files such as thumbs.db and stray BMP Screenshots. However, the majority of the cleanup was performed in the mob and npc sprite folders. In these folders, some .spr files contained sprites (images) that were not utilized in their corresponding .act files. For example, the monster katrinn's .spr file contained approximately 140 images, but only 6 of them were actually used. In total, out of nearly 90,000 collective images, around 9,400 were removed alv.
    4 points
  3. Let's continue to explore new horizons in mapping! A seamless map containing the entire island of Angrboda, where the place of worship of the god Odin is located. The island can be used for a Battle Royale in the RO lore, for other events or as a replacement for the standard three locations. The map size is 400x400 tiles or 800x800 cells. .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•. odin1map video: Lighting and shadows have been completely restored. In addition, local lighting has been added in various places. Since the map was created for special modes, the places available to players have been expanded. So the huge hill between the first and second areas was completely opened, and a coastal zone was added in the second area. Passages, descents and ascents were also added. The bridge connects the areas. Especially for the Battle Royale mode, shooting and using skills from lowlands and hills is allowed.
    4 points
  4. Version 1.0.0

    141 downloads

    By deliver with noble items to the baron he will allow you to try your luck in your card game, being able to get cards mini-boss, mvps or common.
    Free
    3 points
  5. A new large map for group events with many players. This map contains three parts of Fortress Saint Darmain and Beacon Island with Pharos Lighthouse. It is also surrounded by parts of neighboring locations for ambience. And the main innovation is that you can enter all houses and caves without switching to another map. The map size is 450x450 tiles or 900x900 cells. .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•. st_darmain Video: Since the four main maps cmd_fild06(07,08,09) were united by one theme, they were ideal for connection. They represent four different zones - jungle, desert, island, mountain ranges. And in the mountains there are a lot of obstacles in the form of fort ruins. The map is suitable for group events such as Battle Royale and etc. In the south and east of the map there are houses and caves available for visiting. The lighthouse rooms were designed by me, the rest of the rooms were taken from the maps in_rogue, job3_guil01(02), que_job01, alb_ship, and anthell01(02). Here you can place loot or simply hide from other players. In the second half of the video you can see a visit to all the premises. Also added climbs to the gazebos in the small green area, many passages and added the ability to use skills and shoot from lowlands and hills as usual. Shadows and lighting recreated. P.S. When creating the map, difficulties arose with different water levels in different maps, so I had to take the average water level as a basis.
    3 points
  6. Hmm, there is an approximation that can be done which will probably be good enough. The point 2 is misleading; what is seen in the UI is a blend of the background + layers. You can't separate them as it's already a final image, if that makes sense. But you could in theory extract a transparency value by using a black and white background version of the composite image. Then do some math magic and approximate the bgra values. I've added the option in 1.1.0, though it's a bit awkward to use (found in File > Export as PNG...).
    3 points
  7. Fixed in 1.8.7.3. The issue comes from selecting "red objects/textures", objects/textures that cannot normally be selected because their resources aren't found in your current GRF(s). But by clicking on the "guildhall.gnd" node, it selects everything anyway. If you want to extract everything, I'd recommend adding more resource GRFs: (Version 1.8.7.3 also allows to read Alpha GRFs, for anyone interested...)
    2 points
  8. Good Day I am reposting this purely for showcase purposes. I want to emphasize that I have not copied anyone's work. I made references to create this through @goddameit @autoattack. I have been working on this since last year and constantly making improvements little by little. It was from scratch aside from the base idea of @autoattack available for free posted by goddameit. Thank you, references: #1: https://board.herc.ws/topic/4821-bot/?tab=comments#comment-31080 - I converted the script to work in rathena svn #2: assistmode.mp4
    2 points
  9. Fixed in 1.8.7.1. There was an issue with UV texture coordinates being all set to 0 on new tiles.
    2 points
  10. After encountering issues with the current data.grf, I decided to start from scratch and overhaul the entire process. The result? A significantly reduced file size for the data.grf Previously, the data.grf weighed in at around 2.45GB, but now it’s down to just 2.15GB. In addition to the file size reduction, I’ve added 275~ mini maps to maps that were lacking them. The entire folder, including BGM, now stands at 2.96GB. What was done to the poor data.grf? Besides cleaning up unused sprites from npc and mob folders, now I converted all .BMP files to be 8bit, this doesn't affect quality on a game like RO, instead, it actually makes it easier for the client to handle those assets. .JPG and .PNG were treated as well but with some differences. Feel free to report any issue here
    2 points
  11. Prueba cambiando (BaseLevel/2) por status_get_lv(src)
    2 points
  12. src/status.cpp search for: // Skill-related recovery (only when sit) there you can edit the source. ^-^
    2 points
  13. I have multiple generator project, maybe u can try.
    2 points
  14. 1. rathena/src/map/script.hpp Search: HAT_EF_MAX Replace: /* Custom Hateffects */ HAT_EF_arcane_aura_A, HAT_EF_arcane_aura_B, HAT_EF_gluttony_aura_A, HAT_EF_gluttony_aura_B, HAT_EF_MAX = 9999 2. rathena/src/map/script_constants.hpp Search: export_constant(HAT_EF_EFST_C_20TH_ANNIVERSARY_HAT); Replace: export_constant(HAT_EF_EFST_C_20TH_ANNIVERSARY_HAT); /* Custom Hateffects */ export_constant(HAT_EF_arcane_aura_A); export_constant(HAT_EF_arcane_aura_B); export_constant(HAT_EF_gluttony_aura_A); export_constant(HAT_EF_gluttony_aura_B); 3. Compile you Server. 4. Copy in you Data/texture/effect/(arcane_aura) and (gluttony_aura) Data(Example_Auras).zip 5. Data/luafiles514/lua files/hateffectinfo/hateffectinfo.lub Search: HAT_EF_efst_C_20th_Anniversary_Hat = 176 } Replace: HAT_EF_efst_C_20th_Anniversary_Hat = 176, HAT_EF_arcane_aura_A = 177, HAT_EF_arcane_aura_B = 178, HAT_EF_gluttony_aura_A = 179, HAT_EF_gluttony_aura_B = 180 } resourceFileName: route effect(Data/effect/name you effect folder/name you str file.str) IsIgnoreRiding: if true when mounting a mount or asking for hateffect will not go up, it will ignore this action isRenderBeforeCharacter: If true when using hateffect it will be over the character. hatEffectPos: Position the Y anchor (up and down) of the hateffect hatEffectPosX: Positions hateffect X anchor (left right) isAdjustPositionWhenShrinkState: always true isAdjustSizeWhenShrinkState: always true Search: [HatEFID.HAT_EF_efst_C_20th_Anniversary_Hat] = { resourceFileName = "efst_C_20th_Anniversary_Hat\\20th_f.str", hatEffectPos = -6, hatEffectPosX = 0, isIgnoreRiding = true, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true } } Replace: [HatEFID.HAT_EF_efst_C_20th_Anniversary_Hat] = { resourceFileName = "efst_C_20th_Anniversary_Hat\\20th_f.str", hatEffectPos = -6, hatEffectPosX = 0, isIgnoreRiding = true, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true }, [HatEFID.HAT_EF_arcane_aura_A] = { resourceFileName = "arcane_aura\\arcane_aura_particle.str", hatEffectPos = -1, hatEffectPosX = 0, isRenderBeforeCharacter = false, isIgnoreRiding = false, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true }, [HatEFID.HAT_EF_arcane_aura_B] = { resourceFileName = "arcane_aura\\arcane_aura.str", hatEffectPos = -2, hatEffectPosX = 0.2, isRenderBeforeCharacter = true, isIgnoreRiding = true, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true }, [HatEFID.HAT_EF_gluttony_aura_A] = { resourceFileName = "gluttony_aura\\gluttony_aura_particle.str", hatEffectPos = -1, hatEffectPosX = 0, isRenderBeforeCharacter = false, isIgnoreRiding = false, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true }, [HatEFID.HAT_EF_gluttony_aura_B] = { resourceFileName = "gluttony_aura\\gluttony_aura.str", hatEffectPos = -2, hatEffectPosX = 0.2, isRenderBeforeCharacter = true, isIgnoreRiding = true, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true } } 6. Add Script NPC: rathena\npc\custom\hateffect.txt (Use command @efc in game) - script HATEFFECT -1,{ OnHatEffect: if(getgmlevel()>= 80){ input .@number; if (.@number < 1) end; if (.@number >= 301) end; for(.@i = 1; .@i < 300; ++.@i) hateffect .@i,false; hateffect .@number,true; end; } OnInit: bindatcmd "efc",strnpcinfo(3)+"::OnHatEffect"; end; } 7. Add npc in rathena\npc\scripts_custom.conf npc: npc/custom/hateffect.txt 8. (OPTIONAL) Add Hateffect in item: Example: - Id: 2301 AegisName: Cotton_Shirt Name: Cotton Shirt Type: Armor Buy: 10 Weight: 100 Defense: 1 Locations: Armor: true ArmorLevel: 1 Refineable: true Script: | hateffect HAT_EF_arcane_aura_A,true; hateffect HAT_EF_arcane_aura_B,true; UnEquipScript: | hateffect HAT_EF_arcane_aura_A,false; hateffect HAT_EF_arcane_aura_B,false; Update: My project all Auras. (09/27/2023) - Pack Auras: My Project All Auras Too my project Ragnarok Online Pre-Renewal(Offline) and guide for easy update. - Data Folder + Server: Google Drive or MediaFire - Client RO: Google Drive or MediaFire Guide for start server and Play: 0. Dowloand Client RO and Update. 1. Download Data Folder + Server 2. Copy all files C:/MyServer/Client (In folder Ragnarok Onmline). 3. Run C:/MyServer/UwAmp/UwAmp.exe 4. Start Server C:/MyServer/rathena/runserver.exe Enjoy!!! Gluttony Aura: Arcane Aura: Credits: LCDTheOG Fros
    2 points
  15. Version 1.0.0

    231 downloads

    Hello everyone! Happy New Year! Here are my handmade gifts, custom maps for you: 2024: navayo (+nav_beach, nav_in01, nav_in02) https://rathena.org/board/topic/116200-showcase-navayo/ anrydrago https://rathena.org/board/topic/124265-showcase-miniquest-anry-dragon/ 2023: x_base https://rathena.org/board/topic/140494-showcase-x-base/ crimea https://rathena.org/board/topic/132870-showcase-crimea/ barcode https://rathena.org/board/topic/116040-showcase-barcode/ ice2xlake https://rathena.org/board/topic/124194-showcase-ice-twice-lake/ lv_beach https://rathena.org/board/topic/116553-showcase-love-beach/ yavin1b https://rathena.org/board/topic/116300-showcase-yavin1b/ mystvil https://rathena.org/board/topic/117187-showcase-mystical-vil/ crystal https://rathena.org/board/topic/116079-showcase-crystal/ 1@scp087 https://rathena.org/board/topic/116223-showcase-scp-087/ mag_dun03_ https://rathena.org/board/topic/127185-showcase-magma-dungeon-lvl-3/ b_book(1,2,3,4) https://rathena.org/board/topic/116491-showcase-four-battle-books/ The size of attachments (30mb) on rAthena does not allow to add map resources. You can find the full materials here: https://mega.nz/folder/8atXmYgC#yJEL_ssWj8D8XwmpgInYiQ ~ Keep calm and use it on your server ~ ~ Don't claim my work as yours please and etc ~ ~ Any requests/reports - https://rathena.org/board/profile/47250-w0wzukubg/ Thanks, Zuku ~
    Free
    2 points
  16. Version 1.2.0.0

    7614 downloads

    Heya! This is a new project I've made aiming to manage the various databases as easily as possible. This tool was initially developped using Client database editor's engine, a tool from GRF Editor. It has been adapted to support more database formats and many of the features have been improved. How to install Download the zip archive provided from the download link at the top right corner of this description or directly from there : http://www.mediafire.com/download/p0zhcc8ipa6cjt3 . Install the application with SDE Installer.exe; if you are missing a .NET Framework you will be prompted to download it. Once you are done, you can start the program from the link on your desktop. Features Both rAthena and Hercules' formats are supported by the application. Many conversions between rAthena and Hercules are possible. Converting items can be done simply by right-clicking on the elements and selecting "Copy entries to clipboard (ServerType)". Undo and redo commands are available, as well as navigation commands (quite useful when switching tabs a lot). There are many shortcuts within the application, all of which are shown when right-clicking items or going through the menus. I do plan on adding more as well. The databases are 'merged' between each other to offer an easier view. This is true mostly for the item and mob databases. Flag fields can be entered with either an hexadecimal value or an integer value. You will have to add "0x" if you want to enter an hexadecimal number though. For Windows XP users, the program's layout may change a bit. The Aero theme is applied to make sure the application looks like it should. Getting started Create a new project from File > New project. Go in the settings tab and set the path of your database. If you're using pre-renewal, then drop the pre-re folder in the "Server DB path" box (drop the re folder otherwise). Don't drop your "db" folder, it simply won't work! Save your project file to avoid redoing this step everytime you reload the application by going in File > Save project info. The project info file is automatically saved, so you don't need to save it everytime you do a modification in the settings. If you associate .sde files with this tool, you will be able to start up your project from the project file directly (which is more convenient). The last setting is the resource files and it is optional. Simply drag and drop a GRF in the paths list. This will add icons in the items list view (it will also make the application slower when scrolling for that list). Easy input fields All the fields are easy to set and most of them have tooltips. For example, to edit the drops of a mob, simply right-click on the items and change the drop value (both float and integer values are accepted in the field : typing 5.20 is the same as typing 520). How to save the database There are multiple ways to save the database : quick save, full save and export. Quick save keeps the commands you've applied on the database (Ctrl-S), this is the saving option you should be using. Full save (Ctrl-Shift-S) does not keep the commands and you will not be able to undo any operations afterwards. Export (File > Export to db/SQL) exports the database to another folder and this is normally used to convert databases. When saving, the comments are preserved as much as possible, but this is not always possible. For example, the items table from Hercules is always rewritten, so the comments will be lost in this file. Unmodified tables will not be saved. Disabling a tab will also prevent the associated table from being rewritten/saved. This can be achieved by right-clicking on a tab and selecting "Disable 'table name'". SQL support You can export your current database to SQL from File > Export to SQL > ... The first option in the list is the current database format. The other options are used for conversions between rAthena and Hercules. Backups system The application automatically creates backups everytime you save the database (can be disabled in Settings > Enable backups manager). You can revert to a previous date by going in Tools > Backups manager. This tool's purpose is to make sure you never lose any important data (as well as preventing data corruption). Merging or adding lines from another database It is possible to merge databases by going in Edit > Add item from raw db line. Simply copy and paste the lines from the database you want to add. You must select the corresponding table before doing so, of course. (Known bug : adding lines with invalid parameters will put the database in an invalid state). Synchronize with client database files If "Synchronize with client database files" is checked in the Settings tab, you'll be able to turn on all the following features. Bind item tabs together (suggested by UltraCat) This feature enables you to quickly alternate between the Item and Client Items tabs. Whenever you switch table, it will autoselect the item previously selected. The text search filter will also be applied to all three tables (Item/Item2/Client Items). Subfilters (such as item description, script, etc) will be ignored if the item isn't included in the search result. Manage view IDs automatically (suggested by UltraCat) This feature allows you to completely ignore the view IDs for headgears and costumes. Only the identified resource's field is taken into account when synchronizing with the client databases, so make sure you set at least this field! You must also set up the lua paths; go in any item table and click on the wheel next to the "View ID" field. This will bring up a dialog to setup the paths (preferably, the files should be located in your data folder to avoid saving the GRF all the time). They will be automatically decompiled if necessary. If everything has been properly set, the View ID field for the headgears and costumes will be grayed out. When saving, you'll notice some view IDs will be switched around, but SDE will try to keep your original IDs as much as possible. The view names will be changed to the item's Aegis Name (has no effect ingame). Mob sprites edition In the mob tables, you will find a wheel button, similar to the view IDs. Setting up the paths will allow you to see the mob sprites as they will appear ingame (except for granny models, like emperium for instance). The "..." button can let you select the sprites from the mob folder in the GRFs (or data folder). Preview images With the client tables synchronization, the preview image for items in the list view will be properly displayed. This is handy for custom items. Notepad++ support There is support for Notepad++ to easily find items in a text (or conf) database. Right-click an item and use "Select in Notepad++". Search feature The search engine is the same used as CDE, so it should make it easy to find an item. There is also a hidden search option : if you type "[number_of_slots] 4" it will give all the items with 4 slots or "[refineable] true" will give you all refineable items. This can be applied to any attribute in the table which are not shown in the search panel. Todo list Import from SQL (is that even necessary?). Automatically create a table from a file. Batch files / command line methods (would be similar to GrfCL). Known bug : exporting mob_skill_db from Hercules to SqlRenewalHercules doesn't seem to be parsing properly (for this file only). Type safety (check for invalid inputs, use the same SQL rules when loading the databases). Hope you enjoy this tool! The sources will be available on githut for the next release. If you have a feedback or suggestions, let me know and I'll probably add them to the software. Sources https://github.com/Tokeiburu/RagnarokSDE
    Free
    2 points
  17. The `main.inf` records the patch progress. If you need to replace it, then there's probably a problem with how you specify patches.
    1 point
  18. You can enable/disable it here : https://github.com/rathena/rathena/blob/master/src/config/renewal.hpp comment it to disable it by adding // at early lines for example //#define RENEWAL
    1 point
  19. Not sure about Renewal, but in Pre-Renewal the damage of Auto-Blitz gets divided by number of targets, whereas actively using it doesn't.
    1 point
  20. Thank you so much for this! Great work Tokei!!
    1 point
  21. Duplicate GvG map damage modiflier functions then create condition for check attacker was monster then do a multiplier there. (Try to use Find All in Visual Studio to find where to edit)
    1 point
  22. Para cambiar eso debes hacerlo en status.cpp https://github.com/rathena/rathena/blob/master/src/map/status.cpp#L6739 ahi para la dex por ejemplo debes buscar donde se calcula la luk y el crit y luego modificas donde corresponde
    1 point
  23. item cooldown is not displayed on the skill bar. In my opinion, the skills should be visually represented on the client side if they are changed on the server side. Rynbef~
    1 point
  24. https://github.com/rathena/rathena/blob/master/src/config/renewal.hpp#L45C1-L45C21 If you didnt want Renewal drop mode, then you can disable it.
    1 point
  25. You can add a skill in pc.cpp (src/map/pc.cpp) int pc_skillheal_bonus(map_session_data *sd, uint16 skill_id) { int bonus = sd->bonus.add_heal_rate; nullpo_ret(sd); skill_id = skill_dummy2skill_id(skill_id); if( bonus ) { switch( skill_id ) { case AL_HEAL: if( !(battle_config.skill_add_heal_rate&1) ) bonus = 0; break; case PR_SANCTUARY: if( !(battle_config.skill_add_heal_rate&2) ) bonus = 0; break; case AM_POTIONPITCHER: if( !(battle_config.skill_add_heal_rate&4) ) bonus = 0; break; case CR_SLIMPITCHER: if( !(battle_config.skill_add_heal_rate&8) ) bonus = 0; break; case BA_APPLEIDUN: if( !(battle_config.skill_add_heal_rate&16)) bonus = 0; break; case AB_CHEAL: if (!(battle_config.skill_add_heal_rate & 32)) bonus = 0; break; case AB_HIGHNESSHEAL: if (!(battle_config.skill_add_heal_rate & 64)) bonus = 0; break; case CD_MEDIALE_VOTUM: if (!(battle_config.skill_add_heal_rate & 128)) bonus = 0; break; case CD_DILECTIO_HEAL: if (!(battle_config.skill_add_heal_rate & 256)) bonus = 0; break; } } for (auto &it : sd->skillheal) { if (it.id == skill_id) { bonus += it.val; break; } } return bonus; } skill_add_heal_rate: 487 <--- means skill number designed, 1 = Heal Skill, 2 = Sanctuary Skill, etc so 487 means Heal + Sanctuary + Potion Pitcher + Cheal + highness heal + mediale + dialectio
    1 point
  26. You can download directrly trough this link: https://github.com/llchrisll/ROenglishRE
    1 point
  27. gunakan code box formating untuk code agar lebih rapih dan text formating code tidak berubah, script engine pada emulator sensitive untuk tab dan space pada saat parsing code. saya telah meninggalkan beberapa catatan pada script silahkan di telaah. prontera,158,180,4 script VRO Asisten 100,{ mes "[VRO Asisten]"; mes "Halo! Apakah kamu ingin menjual Jellopy padaku? Saya membayar harga yang berbeda tergantung waktu!"; next; // Tampilkan harga yang saat ini ditawarkan mes "Saat ini, saya akan membeli Jellopy seharga "+.selected_price+" Zeny per buah."; next; // Note 1: // Kalau bisa jangan terlalu banyak membuat nesting if else // buat script mudah di baca dan pahami dengan sekilas agar mudah dalam debuging. // Cek apakah pemain memiliki Jellopy if (countitem(909) < 1) { mes "Tampaknya kamu tidak memiliki Jellopy!"; close; } mes "Berapa banyak Jellopy yang ingin kamu jual?"; // Note 2: // gunakan variable type yg tepat // untuk user input seperti ini gunakan temporary script variable type ".@" // Note 3: // ".selected_price" dapat berubah ketika script dalam keadaan "suspended / pause" state // script command yg dapat menyebabkan suspended / pause state, // sleep, sleep2, next, progressbar, menu, select. // sebaiknya preserve value ".selected_price" pada saat user akses time dan bandingkan nanti // apakah value ".selected_price" berubah atau tidak (validasi). .@selected_price = .selected_price; input .@amount; // *Note 1, prevent nesting if else if (.@amount < 0 || .@amount > countitem(909)) { mes "Mohon masukkan jumlah yang valid!"; close; } // *Note 3 validasi value ".selected_price" if (.@selected_price != .selected_price) { mes "Harga telah berubah, silahkan coba lagi!"; close; } // Hitung total zeny yang akan diterima pemain // *Note 2, use apt variable type. .@total_price = .@amount * .selected_price; mes "Kamu akan mendapatkan "+ .@total_price +" Zeny untuk "+ .@amount +" Jellopy."; next; // *Note 3 validasi value ".selected_price" if (.@selected_price != .selected_price) { mes "Harga telah berubah, silahkan coba lagi!"; close; } .@s = select("Jual:Ya,Tidak"); if (.@s == 1) { // *Note 3 validasi value ".selected_price" if (.@selected_price != .selected_price) { mes "Harga telah berubah, silahkan coba lagi!"; close; } // Konfirmasi penjualan dan transaksi delitem 909, .@amount; // Hapus Jellopy dari inventory pemain Zeny += .@total_price; // Berikan Zeny kepada pemain mes "Terima kasih telah menjual Jellopy-mu!"; } else { mes "Mungkin lain waktu!"; } close; OnInit: // Inisialisasi setarray .price[0], 10, 20, 30; // Array harga yang mungkin OnTimer900000: // ubah harga setiap 15 menit. stopnpctimer(); // Menetapkan harga acak dari array .price set .selected_price, .price[rand(getarraysize(.price))]; // use initnpctimer() script command disini untuk membuat loop. initnpctimer(); end; }
    1 point
  28. - script motd -1,{ OnPCLoginEvent: announce "EXP - Base: "+(getBattleFlag("base_exp_rate")/100)+"% / Job: "+(getBattleFlag("job_exp_rate")/100)+"%"+"\n"+"Drop - General: "+(getBattleFlag("item_rate_common")/100)+"% Cards: "+(getBattleFlag("item_rate_card")/100)+"%",bc_self; end; }
    1 point
  29. No sé por qué, pero a veces tenía que dar más permisos a la dirección IP 127.0.0.1 en PHPmyadmin por razones inexplicables, aunque es lo mismo que localhost. Sin embargo, si has desactivado que se pueda acceder al puerto 3306 desde fuera y solo localmente, entonces puedes elegir "any" como host para el usuario. Aun así, recomiendo bloquear el acceso al puerto 3306 desde el exterior a través del firewall (por ejemplo, ufw). Rynbef~
    1 point
  30. @PsyOps and @Sapito Sucio you are the best!!!
    1 point
  31. I think it's client based. Not Server Side. Use another damage font and maybe the spacing changing. Idk if their is a lua file related to. Or the old eot file are used. Maybe we can diff it. But I can't analyze the client on mobile phone unfortunately. In 8 months I'm back on computer Rynbef~
    1 point
  32. Awesome! I think I should use a few things from ur great stuff. It's not only more for newbies. Rly great! Thank u for ur work and for sharing this stuff for free! Rynbef~
    1 point
  33. Hey Leute, als neuer deutscher und englischer Forum Moderator freue ich mich, den deutschen Bereich auch wieder etwas Regelkonformer zu gestalten. Bitte schreibt ausschließlich auf Deutsch in den Topics/ Posts und Titel. Ihr könnt noch die Englische Sprache hinzufügen, aber dafür gibt es die Englischen Sections. Ich würde mich interessieren, wer noch alles da ist, aus der kleinen deutschen Community. Schreibt doch gerne mal was. Und ich bin hier, um euch zu helfen Rynbef~
    1 point
  34. Do you have very old clients or emulators lying around? Maybe that old hard drive with RO stuff? How about those old CD-Rs on the shelf? Or are you simply a RO data hoarder? WE WANT YOU! Hi, I’m vit. I’m developing along with o oldinroplayer a *Ragnarok Online Cross-Episode Database*, called RagnaDB. It’s a db in which you’re able to choose a specific episode and we’ll show you all the info precisely as it was back in the day. The idea is for it to be the “one RO database to rule them all”. For this to exist, there’s a great deal of historical research and digital data scavenging involved. Since we’re committed to historical accuracy, we’re on a journey to finding old files (client and server) to feed the db with, as well as (old) reliable sources for data validation. If you were waiting for the right moment to shine and looking for a group of people who will truly appreciate and see value in those dozens of RO gigabytes collecting dust like no one ever had, this is the moment! We’ll love to have you! If any of the words above piqued your interest, you’re more than welcome here. Join our Discord to hear about the latest updates or just hang around! Our Discord: https://discord.gg/cueAdED64N RagnaDB: https://ragnadb.com/
    1 point
  35. EXPIRED

    Our monthly fees: Web Hosting ($32) VPS Backup Drive ($13) 200GB Offsite NAS Sendgrid SMTP Relay ($10) So you all get the emails you're supposed to. Misc software renewals ($5) Forum apps and plugins that require license renewal every 6 months are broken down to a monthly value. There are other costs for back-end services which are specifically sponsored by individual members of the rAthena project so do not require community crowdfunding.
    1 point
  36. Version 1.0.1

    147 downloads

    ***Include Abyss Lake4**** -IllusionTeddy Bear/Labyrinth base on https://www.divine-pride.net/ (Include Drops Table) -No Portal -Issgard Dun/Frozen scale Field are custom to fit my server. (Custom Drops Table) Install : Put Mob and mob skill to rathena\db\import PutNpcfiles (Custom.txt) to rathena\npc\custom add new line npc: npc/custom/Custom.txt at rathena\npc\scripts_custom.conf
    Free
    1 point
  37. Probably my most ambitious and personal project. I often met on my way interesting places in the world of RO, to which it was impossible to get. Then I began to find such places with the help of the BrowEdit program and make them available for visiting. As the project expanded, I decided to allow shooting and use skills from the hills on the maps, where this feature was disabled, add plants and trees, create comfortable climbs and so on. I suggest you watch a promo video that clearly explains my idea. .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•. At the moment, almost ready the locations of the Schwartzwald and Arunafeltz for the release, there is a reserve for many other locations. Since the appearance of the video, there have been some changes, so the final result may be different. Below I attach screenshots from BrowEdit "before" and "after" and gif files with changes of territories on the finished mini-maps. Some screenshots of my work: From the important places are opened: the airport in Veins, the left exit from Einbroch, the northern Einbroch railway station on Ein_Field04, the industrial zone on Ein_Field02, the border post between Ein_Field04 and Ein_Field05, the fortress on the map of Yuno_Field12, the alternative entrance to the tower of Thanatos on Hu_Field01, the arch with a fountain on Ein_Fild09, the bridge in Lhz_Field02, the road from Ra_Fild06 to Ein_Field03 and more. Mini-maps changes (if any map is missing, it means everything is fine with it): .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•. .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•. .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•. .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•. .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•. .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•. .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•. .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•. .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•. P>S> Since the map of Ein_Field05 won in the nomination of the most extended territory - a small comic video showing progress in its honor: .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•. CODE: Warps lines below: //===== eAthena Script ======================================= //= New Warps for AMP //===== By: ================================================== //= w0wZukuBg //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= eAthena SVN //===== Description: ========================================= //= New Warps for AMP //===== Additional Comments: ================================= //= The NPC's were born. [w0wZukuBg] //============================================================ //======================================================= // ein_fild //======================================================= ein_fild02,134,123,0 warp newein01 1,1,ein_fild02,118,134 ein_fild02,121,131,0 warp newein02 1,1,ein_fild02,137,123 ein_fild02,223,137,0 warp newein03 1,1,ein_fild02,223,148 ein_fild02,223,145,0 warp newein04 1,1,ein_fild02,220,137 ein_fild02,186,226,0 warp newein05 1,1,ein_fild02,204,224 ein_fild02,201,224,0 warp newein06 1,1,ein_fild02,183,229 ein_fild04,385,181,0 warp newein07 1,1,ein_fild05,36,185 ein_fild05,33,185,0 warp newein08 1,1,ein_fild04,382,181 ein_fild05,35,167,0 warp newein09 1,1,ein_fild04,382,181 ein_fild05,120,292,0 warp newein10 1,1,ein_fild05,120,300 ein_fild05,120,297,0 warp newein11 1,1,ein_fild05,120,289 ein_fild06,231,81,0 warp newein12 1,1,ein_fild06,231,67 ein_fild06,231,70,0 warp newein13 1,1,ein_fild06,231,84 ein_fild03,245,55,0 script Lift-E02 139,2,2,{ OnTouch: mes "Lift up?"; next; if(select("Yes","Stay")==1) warp "ein_fild03",201,41; close; } ein_fild03,204,43,0 script Lift-E01 139,2,2,{ OnTouch: mes "Lift down?"; next; if(select("Yes","Stay")==1) warp "ein_fild03",248,53; close; } //======================================================= // ra_fild //======================================================= ra_fild09,362,76,0 warp newra01 1,1,lhz_fild01,15,79 lhz_fild01,12,79,0 warp newra02 1,1,ra_fild09,359,76 //======================================================= // ra_fild -> ein_fild //======================================================= ein_fild03,19,181,0 warp newraein01 1,1,ra_fild06,374,223; ra_fild06,377,223,0 warp newraein02 1,1,ein_fild03,22,181; //======================================================= // hu_fild //======================================================= hu_fild02,378,244,0 warp newhu01 1,1,hu_fild03,22,253 hu_fild03,19,253,0 warp newhu02 1,1,hu_fild02,375,244 hu_fild02,378,194,0 warp newhu03 1,1,hu_fild03,22,205 hu_fild03,19,205,0 warp newhu04 1,1,hu_fild02,375,194 hu_fild02,375,303,0 warp newhu05 1,1,hu_fild03,22,308 hu_fild03,19,308,0 warp newhu06 1,1,hu_fild02,372,303 hu_fild02,378,125,0 warp newhu07 1,1,hu_fild03,22,129 hu_fild03,19,129,0 warp newhu08 1,1,hu_fild02,375,125 //======================================================= // ve_fild //======================================================= ve_fild03,327,294,0 warp newve01 1,1,ve_fild04,34,322 ve_fild04,31,322,0 warp newve02 1,1,ve_fild03,324,294 ve_fild03,316,251,0 warp newve03 1,1,ve_fild04,42,295 ve_fild04,39,295,0 warp newve04 1,1,ve_fild03,312,251 //======================================================= // einbroch //======================================================= einbech,50,223,0 warp neweinb01 1,1,einbech,50,230 einbech,50,227,0 warp neweinb02 1,1,einbech,50,220 einbech,37,223,0 warp neweinb03 1,1,einbech,37,230 einbech,37,227,0 warp neweinb04 1,1,einbech,37,220 //======================================================= // veins //======================================================= veins,296,335,0 warp newve05 1,1,veins,290,342 veins,293,342,0 warp newve06 1,1,veins,275,352 veins,278,352,0 warp newve07 1,1,veins,296,332 //======================================================= // lighthalzen //======================================================= lighthalzen,241,163,0 warp newlhzs01 1,1,lighthalzen,265,163 lighthalzen,262,163,0 warp newlhzs02 1,1,lighthalzen,238,163 lighthalzen,282,327,0 warp newlhzs03 1,1,lhz_fild01,278,19 lhz_fild01,278,16,0 warp newlhzs04 1,1,lighthalzen,282,324 //======================================================= // juperos_ //======================================================= juperos_01,96,220,0 warp newjup01 1,1,juperos_01,152,183 juperos_01,149,185,0 warp newjup01-1 1,1,juperos_01,93,217 //======================================================= // jawaii //======================================================= jawaii,138,182,4 script Stairs#ja1 111,{ mes "[Stairs]"; mes "Want to go up or go down?"; next; switch(select("Up","Down")) { case 1: warp "jawaii",136,183; close; case 2: warp "jawaii",140,180; close; } close; }
    1 point
  38. [ Creating an Open-source Ragnarok Online Server with kRO & OpenKore Support ] [ Table Of Contents ] Introduction Master List: All The Required Downloads Microsoft Visual Studio 2022: Installation Laragon: Installing and Upgrading rAthena: Installing, Configuring, and Optimizing Flux Control Panel: Installing and Modifying The kRO Client: Updating, Diffing, Hexing, Translating, and Customizing The OpenKore Client: Packet Extraction, Configuration, and Field Updating Logging Into Your Server, Making a GM Account, and Playing! Troubleshooting The Situation Packaging It Up For Transportation Post Install House Cleaning Conclusion [ Introduction ]I'd like to walk you through the complete process of creating an up-to-date open-source server for Ragnarok Online using rAthena. This includes removing all of its security so that it can be accessed via multiple clients. Next, we'll install a web management control panel that users can create accounts on, submit tickets with, even research your servers’ unique stats and databases. Afterwards we're going to transform the latest official Korean client by diffing, hexing, translating, & heavily customizing it. Finally, we're going to configure the OpenKore client to work with our server. As well support interfacing with the official client through proxy.We're going to be using the same packet structure across all aspects so that they can properly communicate with each other. This was selected by researching what the last fully developed version was for OpenKore. (2020-04-01b) Since this is running primarily open-source software, it slowly gets better overtime. This is actually ahead of the International Servers and many other countries not only in features but content. I've included the full process so that anyone can take the next or a different set of packets and reproduce these results. This is also completely portable. Ends with one folder, drag and drop. All software included is free, there is zero piracy endorsed. [ Master List: All The Required Downloads ] [ 3.8GB ]Compiling and Editing:01.) Microsoft Visual Studio (link)02.) Notepad++ (link)Databases and Webserver:03.) Laragon Portable (link)04.) MariaDB Server 10.7.3 (link)05.) PHP 7.4.28 (non thread safe) (link)06.) Nginx 1.21.6 Mainline (link)07.) HeidiSQL 11.3 (64 portable) (link)Server Emulator and Web Management:08.) rAthena (link)09.) Flux Control Panel: (link)Official Client:10.) kRO (v20210406) (link)11.) 2020-04-01bRagexe (link)12.) ROenglishRE (link)13.) RO Patcher Lite (link)14.) RO OpenSetup (link)15.) Nemo (link)OpenKore Client:16.) OpenKore (link)17.) Winsock Packet Editor (link) (password: openkore)Troubleshooting:18.) Visual C++ Redistributable Runtimes All-in-One (link)[ Microsoft Visual Studio 2022: Installation ] [ 7.62GB ]01.) Execute "VisualStudioSetup.exe". (let it update)02.) At the install screen, scroll down to the "Desktop & Mobile" section.03.) Checkmark "Desktop development with C++".04.) Then look on the right side under "Installation details", go to the "Optional" section.05.) Uncheck "Just-In-Time debugger". (this will remove Live Share as well)06.) Uncheck "C++ profiling tools".07.) Uncheck "C++ CMake tools for Windows".08.) Uncheck "C++ ATL for latest v143 build tools (x86 x64)".09.) Uncheck "Test Adapter for Boost.Test".10.) Uncheck "Test Adapter for Google Test".11.) Uncheck "IntelliCode".12.) Uncheck "C++ AddressSanitizer".13.) Click Install. (in bottom right)Note: Wow! Even stripped down, this is a massive 7.62GB installation. Depending on how you access the internet this might take a while. Also, consider how far into the future you are from the time of this post. The install size will be different given it's continually updated. Feel free to move on while this is running in the background. You won't actually need to compile anything until you reach Step 14 of the rAthena section.14.) Install Notepad++ (execute npp.8.3.2.Installer.x64)Note: Moving forward, I highly suggest using Notepad++ to create and edit files. Primarily so you can get a line count without needing to boot all of Visual Studio. This is a clean and lightweight solution.[ Laragon: Installing and Upgrading ]01.) Extract Laragon Portable.02.) Delete "php-5.4.9-nts-Win32-VC9-x86" from "\laragon\bin\php".03.) Extract "php-7.4.28-nts-Win32-vc15-x64" as a folder into "\laragon\bin\php".04.) Delete "mysql-5.1.72-win32" from "\laragon\bin\mysql".05.) Extract "mariadb-10.7.3-winx64" as a folder into "\laragon\bin\mysql".06.) Delete "nginx-1.14.0" from "\laragon\bin\nginx".07.) Extract "nginx-1.21.6" as a folder into "\laragon\bin\nginx".08.) Delete all the contents of "\laragon\bin\heidisql".09.) Extract "HeidiSQL_11.3_64_Portable" directly into "\laragon\bin\heidisql".10.) Open Laragon. Click Start All.11.) Grant MariaDB and Nginx firewall permissions when prompted.12.) Close Laragon window, do not exit the program. Don't worry it's still running in your system tray.[ rAthena: Installing, Configuring, and Optimizing ]01.) Extract rAthena.02.) Go to "\rathena\conf". Rename the "import-tmpl" folder to "import".03.) Open: "\rathena\conf\import\char_conf.txt", add: // Server Communication username and password. userid: supercool passwd: coolsuper server_name: GoblinRO // Login Server IP // The character server connects to the login server using this IP address. // NOTE: This is useful when you are running behind a firewall or are on // a machine with multiple interfaces. login_ip: 127.0.0.1 // Character Server IP // The IP address which clients will use to connect. // Set this to what your server's public IP address is. char_ip: 192.168.1.130 // Starting point for new characters. start_point: iz_int,18,26 // Amount of time in seconds by which the character deletion is delayed. char_del_delay: 10 // Restrict character deletion by email address or birthdate. char_del_option: 1 // Restrict character deletion as long as he is still in a party or guild. char_del_restriction: 0 // Pincode system pincode_enabled: no Note: You're going to want to enter your own userid/passwd, server name, and server IP. (wan if going off network)04.) Open: "\rathena\conf\import\inter_conf.txt", add: "use_sql_db: yes"05.) Open: "\rathena\conf\import\log_conf.txt", add: // log_filter: 1 = logs ANY items log_filter: 1 // log_chat: 63 = logs everything log_chat: 63 06.) Open: "\rathena\conf\import\login_conf.txt", add: // Can you use _M/_F to make new accounts on the server? // Note: This only works if client side password encryption is not enabled. new_account: yes // Ipban features ipban_enable: no 07.) Open: "\rathena\conf\import\map_conf.txt", add: // Server Communication username and password. userid: supercool passwd: coolsuper // Character Server IP // The map server connects to the character server using this IP address. // NOTE: This is useful when you are running behind a firewall or are on // a machine with multiple interfaces. char_ip: 127.0.0.1 // Map Server IP // The IP address which clients will use to connect. // Set this to what your server's public IP address is. map_ip: 192.168.1.130 Note: You're going to want to enter the same userid/passwd and IP used in char_conf.txt.08.) Open: "\rathena\conf\import\packet_conf.txt", add: // IP rules // allow : Accepts connections from the ip range (even if flagged as DDoS) allow: 127.0.0.1 allow: 192.168.0.0/16 Note: Change to match your network setup.09.) Open: "\rathena\src\config\packets.hpp". Comment out lines: 44-62. (packet obfuscation)10.) Open: "\rathena\src\custom\defines_pre.hpp". Line 12 add: "#define PACKETVER 20200401".11.) Open: "\rathena\npc\re\warps\cities\izlude.txt". Comment out lines: 39-54.12.) Open: "\rathena\npc\re\warps\fields\prontera_fild.txt". Comment out lines: 94-113.Note: Why are removing these warps important? So these are the novice start areas to the game. Like any MMORPG these were the most populated maps 24/7/365. It got to the point where they became overflooded not just by new players but bots. You'd wonder around trying to find something to kill that wasn't already taken, to the point leveling actually became a nightmare. So what they did was implement multiple instances of the same maps. Putting players in different load balanced instances allowed everybody to breath and comfortably start the game with some people but not to many.Though this had some downsides. Let's say you just started new characters so you could play with your friends. You might be loaded into prt_fild08a while your friends were loaded into b and c. Meaning there is zero crossover, you're all in your own unique world. You can't see each other, the monsters spawn differently, and that fun starting the game together experience is gone. Given we're setting up a small server here, there is no point in having multiple instances. So we're removing the extras and specifying a singular starting area.13.) Create a new "compile.bat" file inside "\rathena" that contains: @echo off "C:\Program Files\Microsoft Visual Studio\2022\Community\Msbuild\Current\Bin\MSBuild.exe" -m pause Note: Your install location might be different. Adjust accordingly.14.) Execute compile.bat. Wait for it to finish. Check to make sure it's error free at the end.15.) Convert all data files to SQL so you can use MariaDB via running "\rathena\yaml2sql.bat". (you will have to confirm with "Y" ten times during this process)16.) Open "\rathena\sql-files", delete the following: item_db.sql item_db_equip.sql item_db_etc.sql item_db_usable.sql item_db2.sql mob_db.sql mob_db2.sql mob_skill_db.sql mob_skill_db2.sql readme.md 17.) Open "\rathena\sql-files\compatibility" and move "item_db_re_compat.sql" and "item_db2_re_compat.sql" up one level to "\rathena\sql-files". You should now have 16 files (not including folders) inside "\rathena\sql-files".18.) Open Laragon. Click Database. Click New. (bottom left)19.) Under "Session Name", change "Unnamed" to "Laragon". Then click "Open".20.) Click "manage user authentication and privileges" in the top bar.21.) Click "Add". Change username to "ragnarok". Change password to "ragnarok". Checkmark the "Global Privileges" box. Click Save. Click Close.22.) Right click "Laragon" in the top of the left column. Expand "Create new". Click "Database". Enter name "ragnarok". Click OK.23.) Click "ragnarok" in the left column. Go to "File" in the top left. Expand and click "Run SQL File". Direct to "\rathena\sql-files\". Select all 16 .sql files. Click Open. Confirm auto-detect. (let finish)24.) Click "refresh" in the top bar. (next to manage user authentication and privileges)25.) Expand the "ragnarok" database in the left column. Click "login" which will bring it up on the right. Click the "data" tab.26.) Change the account's userid and user_pass to match the server communication username and password created back in step 3.27.) Close these windows. Get back to having Laragon running in your system tray.28.) Open "kRO_FullClient_20210406.zip", extract "msvcr110.dll" into "\rathena".29.) Go to "\rathena", execute "runserver.bat". Three consoles: the login, character, and map servers are going to open.30.) As each part comes online you'll need to grant it firewall access.Note: We're spinning up the server to make sure we're good before moving on. You should see all green status updates.Note: If you plan on including WAN clients, then you'll need to open the: 5121, 6121, 6900, & 80 ports on your network firewall / router. Please consider this a large security risk! The scope of this document does not include properly securing an exposed server. Proceed with caution.[ Flux Control Panel: Installing and Modifying ]01.) Extract FluxCP into "\laragon\www" make sure it's the actual root contents and not just the folder that contains them. (replace index.php)02.) Open "\laragon\www\config\application.php".03.) Line 6: delete BaseURI. EX: 'fluxcp', becomes '',04.) Line 7: change your Installer Password. EX: "secretpassword" becomes "supersecretpassword".05.) Line 43: change MinPasswordLength to 6.06.) Line 45: change PasswordMinUpper to 0.07.) Line 46: change PasswordMinLower to 0.08.) Line 47: change PasswordMinNumber to 0.09.) Line 49: change GMMinPasswordLength to 6.10.) Line 50: change GMPasswordMinUpper to 0.11.) Line 51: change GMPasswordMinLower to 0.12.) Line 52: change GMPasswordMinNumber to 0.13.) Line 53: change GMPasswordMinSymbol to 0.14.) Line 54: change RandomPasswordLength to 6.15.) Line 60: change PincodeEnabled to false.16.) Line 78: change ShowCopyright to false.17.) Line 82: change UseCaptcha to false.18.) Line 99: change AcceptDonations to false.19.) Line 220: change CMSNewsType to 2. (this adds rAthena news) (not required)20.) Line 225: change CMSNewsLimit to 2. (two articles fits the new layout well)21.) Line 233: change SDEnableCreditRewards to false.22.) Comment out lines 251 - 260. (removes fluff from web navigation)23.) Comment out lines 269 - 272. (removes donations from web navigation)24.) Comment out lines 288 - 291. (removes social media from web navigation)25.) Comment out line 305. (removes send email button)26.) Comment out line 307. (removes cash shop button)27.) Comment out lines 329-331. (removes transfer credits and cart)28.) Comment out line 348. (removes cash points)29.) Comment out line 360. (removes paypal)30.) Comment out lines 376 - 380. (removes donations)31.) Save and close file.32.) Open Laragon. Click Database. Click "Open" in the new window. Click "manage user authentication and privileges" in the top bar.33.) Click "Add". Change username to "fluxcpuser". Change password to "fluxcppass". Checkmark the "Global Privileges" box. Click Save. Click Close. Close database window.34.) Open "\laragon\www\config\servers.php".35.) Line 7: change your Server Name to something friendly. EX: "FluxRO" becomes "GoblinRO".36.) Line 17: change your Username from "ragnarok" to "fluxcpuser".37.) Line 18: change your Password from "ragnarok" to "fluxcppass".38.) Line 38: change your Username from "ragnarok" to "fluxcpuser".39.) Line 39: change your Password from "ragnarok" to "fluxcppass".40.) Line 55: change your Server Name to the new one from Line 7.41.) Save and close file.42.) Open Laragon. Click Menu. Expand PHP. Expand Extensions. Click tidy.43.) Click Menu. Expand Nginx. Expand sites-enabled. Click 00-default.conf.44.) Line 9: change "127.0.0.1;" to "all;". Save file. Close file.45.) Open Laragon. Click "Reload" on the Nginx line next to the open port (80).46.) Click Web. The installer should now pop-up in your browser.47.) Enter your installer password changed in Step 4. Click Authenticate.48.) Click "Install or Update Everything". (it's in bold) Confirm process.49.) Once the new site pops up, change the URL from localhost to the IP address of the machine hosting the server. Press enter.50.) Confirm it works and bookmark this page as it's your new control panel, ticket system, and server information tool. (you can click around for fun if you like)Note: You can login via any account on the server or make a new one! During account creation a working email address is NOT required but input of one is. ([email protected], etc.) Accounts flagged as GM in the database will have Admin access in the control panel.[ The kRO Client: Updating, Diffing, Hexing, Translating, and Customizing ]01.) Extract kRO_FullClient_20210406.02.) Extract RO Patcher Lite into "\client".03.) Execute "rsu-kro-rag-lite-x64.exe" and wait for it to finish updating the client.04.) Extract RO OpenSetup into "\client".05.) Extract ROenglishRE.06.) Open "ROenglishRE\Renewal". Copy everything into "\client". (override already present files)07.) Open "ROenglishRE\Client Support\Renewal\2020-09". Copy "data" folder into "\client". (override as well)08.) Extract Nemo. Execute "NEMO.exe".09.) Look for "Input Exe File" at the bottom. Click "Browse". Direct towards "2020-04-01bRagexe.exe".10.) Look for "Output Patched" at the bottom. Click "Browse". Direct towards "\client\2020-04-01bRagexe_patched.exe".11.) Create a new "profile.log" file (any location) that contains: 3 Chat Flood Remove Limit 9 Disable 1rag1 type parameters (Recommended) 14 Disable Hallucination Wavy Screen (Recommended) 16 Disable Swear Filter 20 Extend Chat Box 21 Extend Chat Room Box 22 Extend PM Box 23 Enable /who command (Recommended) 24 Fix Camera Angles (Recommended) 32 Increase Zoom Out Max 34 Enable /showname (Recommended) 35 Read Data Folder First 36 Read msgstringtable.txt (Recommended) 38 Remove Gravity Ads (Recommended) 39 Remove Gravity Logo (Recommended) 41 Disable Nagle Algorithm (Recommended) 44 Translate Client (Recommended) 46 Use Normal Guild Brackets (Recommended) 47 Use Ragnarok Icon 48 Use Plain Text Descriptions (Recommended) 49 Enable Multiple GRFs (Recommended) 50 Skip License Screen 53 Use Ascii on All LangTypes (Recommended) 64 @ Bug Fix (Recommended) 65 Load Custom lua file instead of iteminfo*.lub (Recommended) 73 Remove Hourly Announce (Recommended) 74 Increase Screenshot Quality 84 Remove Serial Display (Recommended) 88 Allow space in guild name 90 Enable DNS Support (Recommended) 91 Disconnect to Login Window 213 Disable Help Message on Login (Recommended) 215 Increase Map Quality 216 Hide Cash Shop 226 Disable Walk To Delay. 230 Always load Korea ExternalSettings lua file (Recommended) 231 Remove hardcoded address/port (Recommended) 232 Restore old login packet (Recommended) 233 Hide SNS Button 242 Disable kRO Site Launch 244 Disable Cheat Defender Game Guard (Recommended) 248 Remove wrong chars from cash shop 253 Skip some hidden menu icon buttons 270 Change AchievementList*.lub path 272 Change Towninfo*.lub path 273 Change PetEvolutionCln*.lub path 274 Change Tipbox*.lub path 275 Change CheckAttendance*.lub path 276 Change OngoingQuestInfoList*.lub path 277 Change RecommendedQuestInfoList*.lub path 278 Change PrivateAirplane*.lub path 279 Fix item description bug 284 Copy patched Cheat Defender Game Guard 289 Fix Homunculus attack AI 313 Change MapInfo*.lub path 322 Case-Insensitive Storage Search 323 Restore Songs Effect 326 Disable OTP Login Packet (Recommended) 328 Enable 44.1 kHz Audio Sampling Frequency 334 Remove Hardcoded HTTP IP 338 Additional client validation (Recommended) 347 Disable OS Privileges execution level 348 Send client flags to server (Recommended) 351 Translate arrows buttons text from korean to english 362 Fixes the Korean Job name issue with LangType (Recommended) 399 Set high priority class for active client 400 Set normal priority class for inactive client 404 Use borderless mode in full screen (Recommended) 416 Fix Tetra Vortex 427 Check is servertype in xml file was set to correct value (Recommended) 12.) Click the "Load Client" button at the bottom.13.) Click the "Load Profile" button to the right of it. Select and open the "profile.log" file just created.14.) Some modifications require input. As each prompt appears, edit them as follows: DATA.INI System/itemInfo_EN.lua 100 System\achievement_list_EN.lub System/Towninfo_EN.lub System\PetEvolutionCln_true_E.lub System/tipbox_EN.lub System/CheckAttendance_EN.lub System\OngoingQuestInfoList_True_EN System\RecommendedQuestInfoList_True_EN System\PrivateAirplane_T_EN.lub System\mapInfo_true_EN.lub Using wrong servertype in clientinfo/sclientinfo xml. Please change servertype to correct one. Note: You'll notice how two of them don't ask for a file extension, which is why we leave it off. That is not erroneous.15.) You should have 70 enabled patches when finished. Click "Apply Selected". Close Nemo.16.) Clean up the "\client" directory by deleting the following no longer required files: \AI_sakray \AuthModuleCache \client \db \doc \HShield \PatchClient 2020-04-01bRagexe_patched.exe.db 2020-04-01bRagexe_patched.exe.txt 2020-04-01bRagexe_patched.exe.secure.txt aossdk.dll ASPLnchr.exe bz32ex.dll CDResFileList.dat dbghelp.dll FORMAT.CFG GameGuard.des IFU13.inf IFU19.inf IFU7A.inf IFUEC.inf Init.exe KOR_LANG.CFG lua.exe mirrors.json NPCHK.DLL NPCIPHER.DLL npkcrypt.dll npkcrypt.sys npkcrypt.vxd npkcusb.sys npkeysdk.dll npkpdb.dll NPPSK.DLL NPSCAN.DES npupdate.dll NPUPDATE0.DLL NPX.DLL opensetup.ini.sample Patch.inf patchRE.inf Patchup.exe Patchup_RE.exe Ragexe.exe RagexeRE.exe RagHash.dat RagnarokKR.inf rsu-kro-rag-lite.exe rsu-kro-rag-lite.ini rsu-kro-renewal-lite.exe rsu-kro-renewal-lite.ini SavePath_Rag.exe SavePath_Sak.exe Setup.exe suipre.dll supdate.log v3hunt.dll Note: This should leave you with 58 files inside "\client". (8 folders + 50 misc)17.) Go to "\client\data". Open "clientinfo.xml". Change it too: <?xml version="1.0" encoding="euc-kr" ?> <clientinfo> <desc>Ragnarok Client Information</desc> <servicetype>korea</servicetype> <servertype>primary</servertype> <connection> <display>GoblinRO</display> <address>192.168.1.130</address> <port>6900</port> <version>55</version> <langtype>0</langtype> </connection> <connection> <display>OpenKore</display> <address>127.0.0.1</address> <port>6901</port> <version>55</version> <langtype>0</langtype> </connection> </clientinfo> Note: Inside the first <connection> block, change the <display> name and <address> to match your server. If WAN, you can use services like No-IP.18.) Go to "\client". Execute "opensetup.exe". (decline Telemetry prompt) Change the options to match your wants and needs. (graphics device, resolution, etc)Note: I personally like 1280x720 when playing in a window. Specifically while using X-Kore which we'll cover later.[ The OpenKore Client: Packet Extraction, Configuration, and Field Updating ] [ Best Client ]Note: Steps 1 and 2 are educational. Worth learning but can be skipped as I've already done this for you.01.) Extract Winsock Packet Editor (WPE). Allow the executable if Windows Defender or your anti-virus software flags it.02.) Using "WPE PRO - modified.exe" follow the Openkore Wiki Connectivity Guide to obtain master version and version number. (screenshot)03.) Extract OpenKore.04.) Go to "\openkore\tables" then open "servers.txt". Find "[Localhost]" towards the bottom. Replace with: [Localhost] ip 192.168.1.130 port 6900 private 1 master_version 0 version 128 charBlockSize 155 serverType kRO_RagexeRE_2020_04_01b serverEncoding Western addTableFolders kRO/RagexeRE_2020_04_01b;translated/kRO_english;kRO Note: Change the IP address to match your server. If WAN, you can use services like No-IP.05.) Go to "\openkore\fields". You'll notice inside are a number of folders labelled by episode number. You're going to want to take all the files out of each of these episodic folders and move them up a directory. Overriding the ones currently in your "\openkore\fields" folder.Note: We're doing this so that the bot can understand the map layouts of the newer content. The rAthena emulator is always improving but currently at the time of posting goes all the way to Episode 18. You might notice the bot is currently only developed up to Episode 17.1. If you play that far then you'll probably have a good idea on making the bot work in uncharted waters. For now, don't worry about it one bit. You're good for a loooooong time. Hell they'll probably have it included by the time you make it there.[ Logging Into Your Server, Making a GM Account, and Playing! ]Note: Even if you want to go straight to using OpenKore, we're going to use the kRO client to finish off the server and make our first accounts. While these steps can be done in OpenKore, it's easier to just follow along using a visual interface for now. If you've picked this project up at a later date, then make sure you've started the rAthena servers. (go to "\rathena", execute "runserver.bat")Using the kRO Client:01.) Go to "\client" and execute "2020-04-01bRagexe_patched.exe".02.) Select "GoblinRO" when prompted. (the server name you entered previously)03.) At the login screen type "admin_M" to make a new account on the server. You need to enter a 6+ digit password as well. (123456)Note: The first account is always a GM account. This has a different set of sprites used that are not compatible with actually wanting to play the game. They look cool because on the off chance you actually crossed one it needed to be unique. Generally you only saw one if you were about to get banned for botting or hacking so it was quite the event to casually see an admin. LOL!04.) Make a new character you're going to use to pwn rule breakers. Once in game, hit escape, then click "exit to windows".05.) Open Laragon. Click Database. Click "Open" in the new window.06.) Expand the "ragnarok" database. Click "login" again like we did in Step 25 of setting up rAthena. Click the "data" tab.07.) Look for the newly created admin account under the server account. Change it's "group_id" to 99. (now has full GM powers)08.) Close these windows. Go back to having Laragon running in your system tray.09.) Once again head to "\client" and execute "2020-04-01bRagexe_patched.exe".10.) At the login screen let's make a real account to actually play on. Once again, "yourname_M" or "yourname_F" (male or female) to make a new account on the server.Note: The sex you select here is only used for account management and does not effect the sex of your characters you make in game. It's pretty much pointless.11.) Spend extra time picking the right hair style, color, sex, and race. This is your new character!!12.) Play the game!Note: Future logins do not require the _M or _F after your account name. This is only done the first time to register a new account on the server from inside the client. You can also register accounts with the Flux Control Panel if you like. If you ever want to delete a character, it'll ask you for your email address as a security check to confirm. Accounts created in client automatically get registered with "[email protected]" as their email address in the database.Using the OpenKore Client:01.) Go to "\openkore\control". Open "config.txt".02.) Line 6: add "Localhost".03.) Line 7: add "0".04.) Line 8: add "Goblin". (your username) (do not add _M or _F)05.) Line 9: add "123456". (your password)06.) Line 11: add "0". (number / position of your character)07.) Save file.08.) Go to "\openkore" and execute "wxstart.exe". (wait for it to process maps and finish loading)09.) Play the game!Note: OpenKore does not currently support the new character start maps. It'll just throw errors in the console about not being able to navigate. Use the kRO client to at least get out of the introduction area. You can walk directly through the beginning and board the ship to Izlude. It's not required to interact with anything if you don't want to. There is stuff to do though, up to you.Using OpenKore inside kRO via X-Kore:01.) Go to "\openkore\control". Open "config.txt".02.) Line 23: change "0" to "3".03.) Line 30: change "ragexe.exe" to "2020-04-01bRagexe_patched".04.) Save file.05.) Go to "\openkore" and execute "wxstart.exe". (wait for it to finish loading)06.) Go to "\client" and execute "2020-04-01bRagexe_patched.exe".07.) Select "OpenKore" when prompted.08.) Login via your normal username and password for the account.09.) Select your character at the next screen.10.) Play the game with two clients at once!Note: I highly suggest running kRO in windowed mode for ease of use. This way you can bounce back and forth between the clients effortlessly. You do not need to keep the kRO or OpenKore windows as a focused priority. You can literally open other applications on top of both without any pause to the botting. You'll hear it in the background still playing the game while you're reading the wiki, checking email, or just doing whatever you please.[ Troubleshooting The Situation ]Note: Having an odd problem loading software at any point? Getting an error and not sure why? I'm not sure why either so give this a whirl.01.) Extract "Visual-C-Runtimes-All-in-One-Feb-2022.zip"02.) Execute "install_all.bat".03.) Wait for it to finish.04.) ??? Try Again ???05.) Probably Success.[ Packaging It Up For Transportation ]01.) Make a new folder called "GoblinRO". (or whatever you like)02.) Place your "\laragon", "\rathena", "\client", & "\openkore" folders inside it.03.) Make a new folder inside called "troubleshooting".04.) Copy "Visual-C-Runtimes-All-in-One-Feb-2022.zip" into "\troubleshooting".05.) Compress your "GoblinRO" folder. (zip/rar)Note: Transportation or not, I suggest you make a backup like this once you're finished. Always a good idea! Also compressing it greatly helps transfer times to things like USB drives or across networks. Not only is the file size reduced from around 5.5GB to 3.9GB but the fact that it doesn't have to work with the insane amount of small files present is a life saver. Remember you can always just extract the /client or /openkore folder if you're on computers that aren't running the server.[ Post Install House Cleaning ]01.) Delete the Master List of downloaded files required for install. (18 files, 3.8GB)02.) Uninstall Microsoft Visual Studio 2022 Community Edition. (7.62GB)Note: You will lose your ability to compile the server again if you make future changes.[ Conclusion ]Alright! Way to make it to the end! I spent a week constructing this. Across that time, I reached out to a lot of the related discord servers and forums. Mainly making sure my instructions were correct and up to date. At most stops I was met with silence then a private message with a price tag. Anywhere from $10-100 an hour, just for their working knowledge of an old MMORPG. For truly custom work I do understand it, but for basics? It really only motivated me more to put this out.I'd like to help remove the ridiculous paywall that has slowly started to surround this information. Sure, this has been a deep dive into an esoteric world. This game is over twenty years old at this point. Though it saddens me to see information omitted or even removed in order to sell it back to people as a service. I think that's not only harmful but gating something we have all enjoyed for decades. This is just information, there is nothing deserving of your currency. Everyone should be able to do this, for free.I hope you have found this both helpful and educational! Feel free to translate into your local language and distribute. I have done three trial runs across different machines and have not had a problem. If you're experiencing issues check that you haven't missed a step. Need support? Check the forum, wiki, github, and discord for both rAthena and OpenKore. Still can't find a solution? Post here! I cannot guarantee a timely response but I will check back in occasionally and try to help out as much as I can. Thanks for reading! /cheers
    1 point
  39. Update on this: item will be separated into it own item category type only listed item type can be auctioned fixed overflow in vending unique id the current one almost follow the old auction system completely with limitation of vending item entry is only MAX_VENDING (default 12) if the vending is full, the next one will be in queue, if any item in vending expired or has been buyout the next item will enter vending list. more fine details has been added ... Settings // Item minimum sell price .auction_minimumprice = 1; // Item maximum sell price .auction_maximumprice = 500000000; // Item minimum duration .auction_minhour = 1; // Auctioned Item maximum duration .auction_maxhour = 12; // Fee per hour. Default is 12000 .auction_feeperhour = 12000; // Item with bound can be auctioned? // Default is false .auction_item_bound_allow = false; // Currency with bound can be used for auction? // Default is false .auction_currency_bound_allow = false; /* * AddCurrencyExchange(<item id>,<value>,<variable>,<variable display name>,<variable limit>); */ function AddCurrencyExchange; AddCurrencyExchange(673, 1000000, "Zeny", "Zeny", MAX_ZENY); AddCurrencyExchange(675, 10000000, "Zeny", "Zeny", MAX_ZENY); AddCurrencyExchange(671, 100000000, "Zeny", "Zeny", MAX_ZENY); AddCurrencyExchange(677, 500000000, "Zeny", "Zeny", MAX_ZENY); AddCurrencyExchange(7227, 100, "#CASHPOINTS", "Cash Point", MAX_CASHPOINT); /* * AddAuctionHouse(<npc name>,<item type>{,<item location>{,...}}); * * For <npc name>: * please use display name with out hidden or unique name. * if you have hidden or uniqe name it would appear weird on purchase list on vending auction npc. * For <item location>: * When has locations set it before the other of the same <item type> * so when there is <item location> filter it would go to the one without filter. * or fail if other has filter too but the <item location> is not listed. */ function AddAuctionHouse; // When has locations set it before the other AddAuctionHouse( "Auction Costume", IT_ARMOR, EQP_COSTUME_HEAD_TOP, EQP_COSTUME_HEAD_MID, EQP_COSTUME_HEAD_LOW, EQP_COSTUME_GARMENT ); // When no locations set, all item with this type goes in here. AddAuctionHouse("Auction Card", IT_CARD); AddAuctionHouse("Auction Armor", IT_ARMOR); AddAuctionHouse("Auction Weapon", IT_WEAPON); AddAuctionHouse("Auction Shadow", IT_SHADOWGEAR);
    1 point
  40. Download Elurair Here All file used on demonstration can be found below If you have any question ask below or join Discord Server main.inf elurair.default.ini
    1 point
  41. Version 2.0

    1449 downloads

    Yet another simple MVP Kill reward on MVP Maps Only with an announcer and now with a simple MVP Ladder If player is in a party, the reward will be given randomly to online party members. You can config the script easily at this part: OnInit: setarray .p_rwd, 607,1; // Party reward <item>,<amount> setarray .s_rwd, 607,1; // Solo reward <item>,<amount> .chance = 50; // Drop rate chances % .gm = 10; // Prevents gm level and above to trigger the event // MVP Map list setarray .t_maps$[0],"// <MVP MAPS> This script will also help other in-game players see if an MVP has been slain. I'm open for suggestions, comments, reactions and such for the betterment of this script and my skill. Questions? Q> Why only at MVP Maps? A> Because some server puts MVP Rooms which the reward can be abused.
    Free
    1 point
  42. I saw a lot of posts about this over the years, but none seemed updated for the most recent version. I recently spent a lot of time on pets, so here's a quick guide. I did everything for pre-renewal, but I would imagine most of this would work for renewal too, you might just need to add some stuff about evolution. What you'll need: GRF Editor SDE (Server Database Editor) Both of these can be found elsewhere on this forum and are used for most things involving editing your server. Understanding GRF files: When the client needs a file, it searches through the GRF files in a certain order to find it. The order it uses is specified in data.ini in the client's root folder. Mine looks like this. [Data] 0=rathena_resources.grf 1=pre20190427.grf 2=renewal20190427.grf 3=palettes.grf 4=data.grf 5=rdata.grf It looks in files that are higher in the list first. This means rathena_resources.grf is checked first, and rdata.grf is checked last. This means that if I need to override a file which is normally in data,grf, I can simply add it to any grf file that is higher in the list, and it will be used instead of the one in data.grf, without having to modify that file. Since rathena_resources.grf is first in the list, it's easiest to add your files to that. Getting started with your custom pet: The first two things your pet needs are an egg and a taming item. For eggs, I simply chose to replace an existing pet egg that was unused. In Pre-Re, there aren't any unused eggs, but we can fix that. In a text editor, open up the item_db.txt file for renewal, which is under your db/re folder. Search for 9001, which will get you to the beginning of the pet eggs. Renewal has tons of them! Copy and paste all the eggs that renewal's item_db has into pre-re's item db, and now they'll be available for pre-re to use. Now open up SDE. To add an egg for your new pet, all we have to do is rename it. Use the item search and find an egg you don't care about. Change its Aegis Name and Name to be the one of the pet you want. For example, I made Garm Baby, so the Aegis name is Garm_Baby_Egg and the Name is Garm Baby Egg. This part is done. Now we need a taming item. It's easiest to make a taming item by using a miscellaneous item. For Garm Baby, I used Nursing Bottle. To turn this item into a taming item, first we have to change it from a Misc Item to a Usable item, which is done using the dropdown in the upper right. We then need to set the Applicable Job to FFFFFFFF, upper to 7, and Gender to Both. Now we need to set the script. The script must look like this: pet 1515; Except that the number must match the id number of the enemy you want to be able to capture. Look this up in the mob database. You might want to modify the drop rates on your item through the mob database too, particularly if it's an item that no one in the game drops. Most pet items also have a sell price of 2500 and a weight of 50, if you want to be consistent. Use "save database (quick)" to save your changes. We're done with SDE for now. Adding your pet to the game: The next thing to do is to add your pet to pet_db.yml so it can spawn into the game. The installation I have actually breaks pet_db.yml into two parts. There's one file inside pre-re that contains the pet's basic information, and one inside import that contains its skill information. You could merge these files if you wanted, but if not you'll need to update both. There are already a bunch of entries in this file, so you can probably just copy one. Note that when it comes to yaml files, the spacing of the file is important, so make sure you copy it exactly including the spacing. Here's the one I used for Garm Baby. - Mob: GARM_BABY TameItem: Milk_Bottle EggItem: Garm_Baby_Egg FoodItem: Ice_Piece Fullness: 4 IntimacyFed: 10 CaptureRate: 500 Script: > .@i = getpetinfo(PETINFO_INTIMATE); if( .@i >= PET_INTIMATE_LOYAL ){ bonus2 bResEff,Eff_Freeze,5000; } The entries for MOB, TameItem, EggItem, and FoodItem are all Aegis_Names, you can look these up through SDE. For example, the Nursing Bottle's Aegis Name is actually Milk_Bottle. The script is something you'll have to come up with on your own. There's a bunch of examples in the file already you can draw on. My script makes the pet give you 50% resistance to the freeze status. If you want the pet to use skills, you'll need to update the other yml file inside import. Garm Baby has this inside that file: - Mob: GARM_BABY AttackRate: 8000 RetaliateRate: 8000 ChangeTargetRate: 800 SupportScript: > petskillattack "MG_FROSTDIVER",5,10,30; The main thing we care about is the SupportScript. This is what attack your pet will use. Here, this pet uses Frost Driver level 5, between 10-30% of the time depending on how happy it is. For a support skill, you use petskillsupport instead, with values like this one: petskillsupport "HP_ASSUMPTIO",1,80,100,100; This pet would cast Assumptio level 1 with an 80 second delay, when your hp and sp are 100% or less. There's also stat bonuses available: petskillbonus bLuk,5,20,40; This pet gives a bonus of 5 luck for 20 seconds, with a 40 second delay between uses. For more detail, look in script_commands.txt within Rathena's doc folder. With this, you can now restart your server and your pet will exist in the game! There will still be a bit of jank, for example its egg won't show the right name on the client, it won't have a picture, and it won't talk, we'll discuss how to fix that next. Fixing your pet's egg entry: This one is fairly easy. Navigate to your client folder and open up System/iteminfo.lua This is where the game stores all the item translations. Find the egg that you used by searching for its item id inside square brackets, like this [9001]. The description will be listed here. If you added a completely new egg, it won't be in this file and you'll need to add an entry for it. Update the name so it shows the right name. You can also add a description if you want. Mine looks like this, but it doesn't need to be this fancy. [9108] = { unidentifiedDisplayName = "Garm Baby Egg", unidentifiedResourceName = "¾ðµ¥µå¾Ë", unidentifiedDescriptionName = { "..." }, identifiedDisplayName = "Garm Baby Egg", identifiedResourceName = "¾ðµ¥µå¾Ë", identifiedDescriptionName = { "An egg in which a Garm Baby Cute Pet rests.", "Can be hatched by using a ^33CC33Pet Incubator^000000.", "^33CC33Special Power ^000000:", "Casts level 5 Frost Driver against the enemy", "^33CC33Loyal Bonus^000000", "Increases resistance to the Freeze status by 50%", "Class:^6666CC Monster Egg^000000" }, slotCount = 0, ClassNum = 0 }, Adding a picture for your pet: Every pet has a little picture that is displayed in their pet window. If you don't do this step, it'll just display NO IMAGE. This is not cool, so let's add an image. This requires GRF editor. To start with, you should probably open up data.grf, just to know how it's structured. Images for pets are stored in data/texture/userinterface/illust . If you search this folder for "pet", you'll see the existing images. They are all 90x134 pixels, your image will need to be this size too. Name it something like pet_garm_baby.bmp. You could just upload your file into data.grf, but data.grf is huge and thus it's slow to send update to this file to your players. Instead, it's easier to put it into rathena_resources.grf. It does not have this folder, but you can create it using GRF editor. Remember, any files you put inside something higher in the list of GRF files will override the earlier files. After adding your file, you'll notice that it won't actually display in game. This is because there is also a table of pets in the application that maintains the paths to the images that you need to update. This file is called petinfo.lub, and it is stored inside data.grf in the folder data/luafiles514/lua files/datainfo. We'll need to make a copy of this file, so extract it using right click extract with GRF editor. This file needs specific encoding to read the Korean characters, so make sure to save the file with ANSI encoding when you're done. There are many tables in this file that you'll need to add your pet to. Generally, you can follow the format they use. You'll notice that most of the entries use an identifier that looks like this: [jobtbl.JT_GARM_BABY] = "GARM_BABY", This is an entry into the file jobidentity.lub, which is in the same folder. You should not need to modify that file, pretty much every enemy in the game is already in there, just enter your pet's Aegis name here, in all caps. When you come to this table: PetEggItemID_PetJobID You'll need to give your pet a new JobID, you can just assign a new one at the end. When you're finished updating this file, add it into your rathena_resources.grf, making the same folder path for it as above, so it will overwrite the one in the base game. Make sure to save your GRF afterwards. If you find that the pet accessories on your server no longer work after doing this, you saved the file with the wrong encoding. I fixed this by switching all the pet accessory files to the english names and adding them all to my GRF files, but the smart way is probably just to use a text editor that handles encoding properly, like notepad++. Making your pet talk: To make your pet talk, it needs entries in pettalktable.xml. For me, this file was in my renewal.grf file, in the data folder. This is fairly straightforward, you can just copy and then modify Poring's entry. You just need to know what to put for the enclosing tags. The name must match the entry you made in the PetNameTable inside petinfo.lub. I put the name "GARM_BABY" for my pet, so the tag must say <GARM_BABY>. For some reason, my pets only talked when I put their entries near the beginning of the file. I suspect one of the entries inside the default file has an error in it, but I haven't found it. Either way, adding them to the top of the file is safe. With all of this stuff done, just save your GRF edits and restart the game (it's not necessary to restart the server for GRF changes) and hopefully your pet should talk and have a picture! Once you confirm everything works, you'll need to distribute the changed grf files and iteminfo.lua to your players. It's probably worth adding all your custom pets to the server first before you open in to the public! I'm sorry that this was long, no one said custom pets were going to be easy. Hopefully it all works for you.
    1 point
  43. Version 2.0.2

    1338 downloads

    FluxCP Responsive Theme base on Bulma.io This fluxCP only compatible with rAthena FluxCP = https://github.com/rathena/FluxCP DEMO LINK HERE >>> CLICK HERE <<< [ WHEN VISITING THE LINK PLEASE CHANGE THE THEME TO = hurtFreeV2 = FOR THIS THEME ] you can login the page using this:- admin:- username = test password = test normal user:- username = test password = test Come with Easy config ./themes/hurtFreeV2/config/hurtsky_settings.php 'yourServerName' => 'Hurtsky', //this name maybe will be use on top and footer 'newsTitleLimit' => 10, //this will limit character/letter in title of RSS 'newsContentLimit' => 100, //this will limit character/letter in content of RSS 'enableSocialNetworkLink' => true, //disable this will remove the get connected section 'enableFacebookIcon' => true, 'facebookLink' => 'https://hurtsky.com/fluxcp', 'enableDiscordIcon' => true, 'discordInviteLink' => 'https://hurtsky.com/fluxcp', 'enableTwitterIcon' => true, 'twitterLink' => 'https://hurtsky.com/fluxcp', 'footerCopyrightTrademarkLable' => 'All trademarks referenced herein are the properties of their respective owners', 'footerCopyrightInitialDate' => 2017, How to install: 1. place the folder under ./theme/ 2. open file ./config/application.php 3. change 'ThemeName' => array('default','bootstrap'), to 'ThemeName' => array('hurtFreeV2'), 4. for WOE status, you need to import this SQL file to database = woe_status.sql 5. also add this NPC script to your emulator = woe_status.txt 6. done THIS FREE THEME PROVIDED AS IT NO SUPPORT COME WITH IT USE IT AT YOUR OWN RISK
    Free
    1 point
  44. I just tried on client 2018-06-21aRagexeRE thanks so much @melv0 1. How to change the maximum level of your server? https://gist.github.com/cydh/d82a06472f12c4ec7f38ab3de22fe86b 2. How to make the aura appear at a maximum level other than 99? data\luafiles514\lua files\service_korea\ExternalSettings_kr.lub & externalsettings_kr_sak.lub MaxLevelTable = { BaseLevel = 99, << Edit this part into 255 BaseLevel3rd = 185, BaseLevelExtend2 = 160, BaseLevelUpperJob = 185, BaseLevelHomun = 185, BaseLevelDoram = 185, JobLevelNovice = 10, JobLevelSuperNovice = 99, JobLevelBase = 50, JobLevel2nd = 70, JobLevel3rd = 65, JobLevelExtend2 = 50, JobLevelUpperJob = 60, JobLevelDoram = 55 } and that's it, see magic ingame ?
    1 point
  45. Version 1.0

    9555 downloads

    These files are not created by me. I just found someone share a complete package of it on facebook. Thank him/her for collecting all these Skin across the world wide web, I believe some skin files was updated or fixed by him/her. So, I'll just provide a text file that contain the link to download these files from my dummy OneDrive Folder. Album Preview : http://imgur.com/a/b1MHG Installation Guide : Pick any RO Skin that you like and Download it to your PC/Laptop. Extract the files using 7-Zip / WinRar / WinZip / etc. Copy and paste the extracted files into the %System%/kRO/Skin/ folder. Again, I don't own any of these files. I just sharing the files. None of these are commercial items. Please insert / remain the credits in case you know who're them. Thank you.
    Free
    1 point
  46. Ragnarok Online Login Screen Generator (ROLSG) Helps you to cut your private server custom login screen with just a click you dont need any photo edditing software to cut it just click and magically your custom login screen is cut by 12 parts that are needed without errors and you dont need to rename it becuase it rename it self after you generate it and it help the people who is new here this is EASY, CONVINIENT and FREE to use How to use : Just load your custom login screen with a size of [1024x768] then Click Convert It will automatically cut into 12 parts NOTE : I created a folder so that after you convert or generate it will not hard to find P.S. since i request here alot i just want to contribute what i use for myself if the file is corrupted or something let me now i will make some mirrors Credits to : Wiskovisky and to ME for the release i dont know if someone release this here try to help ROLSG.rar
    1 point
  47. Por si no los ven chic@s se los dejo por aquí, algunas herramientas de utilidad para sus servidores, por que me encanta el RO y en lugar de tener servidores tan competitivos que matan a otros con publicidad negativa, me gusta la libre competencia donde se que podemos ser los mejores con nuestros propios estilos únicos. Algunos Loading Screens Gratis Actualizacion de las Colores de ropa Pack de 553. (Este no tiene post por que ya lo subi a descargas pero aun no loa ceptan pero dejo el enlace de mediafire.) Actualizacion de Texturas y Modelos para Browedit. Por favor! no olviden dar Like!! de antemano Gracias!
    1 point
  48. Client-Side Just name the files as morocc (for morroc) and payon (for payon) then add in your data. Server-Side First be sure your grf-files.txt in your conf folder is properly configurated. //grf: C:\Program Files\Gravity\RO\data.grf >>Add your grf here just like the model //----------------------------------------- // Data Directory // Use the base folder, not the data\ path. //----------------------------------------- //data_dir: C:\Program Files\Gravity\RO\ >>Add your RO folder here just like the mode Then using WeeMapCache Open your mapcache.dat (in db folder) and delete the payon and morocc from the list, save and close your mapcache. Run the mapcache.bat in the trunk folder of the emulator (the main folder) and the maps will take place of the current ones. NOTE: you must have to fix the NPC and Portal positions Manually.
    1 point
  49. something like this ??? prontera,155,181,5 script Sample 992,{ OnHeal: percentheal 100,100; end; OnBuffs: percentheal 100,100; skilleffect 34,0; sc_start SC_BLESSING,360000,10; skilleffect 29,0; sc_start SC_INCREASEAGI,360000,10; end; OnLink: switch ( basejob ) { case Job_Alchemist: set .@spirit, 445; break; case Job_Monk: set .@spirit, 447; break; case Job_Star_Gladiator: set .@spirit, 448; break; case Job_Sage: set .@spirit, 449; break; case Job_Crusader: set .@spirit, 450; break; case Job_SuperNovice: set .@spirit, 451; break; case Job_Knight: set .@spirit, 452; break; case Job_Wizard: set .@spirit, 453; break; case Job_Priest: set .@spirit, 454; break; case Job_Bard: case Job_Dancer: set .@spirit, 455; break; case Job_Rogue: set .@spirit, 456; break; case Job_Assassin: set .@spirit, 457; break; case Job_Blacksmith: set .@spirit, 458; break; case Job_Hunter: set .@spirit, 460; break; case Job_Soul_Linker: set .@spirit, 461; break; default: if ( upper == 1 && baselevel < 70 ) set .@spirit, 494; } if ( .@spirit ) { sc_start4 sc_spirit, 360000, 5, .@spirit,0,0; skilleffect .@spirit, 5; } end; OnInit: defpattern 1, "heal","OnHeal"; defpattern 1, "buff","OnBuffs"; defpattern 1, "link","OnLink"; activatepset 1; end; } heal = Heal HP / SP buff = Supportive Skills Buff link = Soul Linking
    1 point
×
×
  • Create New...