Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 04/13/25 in all areas

  1. KRO : https://github.com/hiphop9/ROClient_en 2025-03-19_Ragexe_1742361965(EN) -PATH- @ Bug Fix(Recommended) Add Close Button Custom Window Title Disable 1rag1 Params(Recommended) Disalbe Filename Check(Recommended) Disable Help Message Disable Indoor RSW Disalbe Swear Filter Enable 44khz Audio Enable DNS Suport Enable Multiple GRF(Recommended) Fix NPC Dialog Scroll Increase Zoom Out 75% Read Data Folder First(Recommended) Remove Hard Coded Address & Port(Recommended) Restore Clientinfo.xml(Recommended) Restore Old Login Packet(Recommended) externalsettings Korea patch Show Replay Button Skip License Screen Translations client EnableWho EnableShowName AlwaysAscii CallKoreaClientInfo PlainTextDesc HideBuildInfo TranslateClient NoGGuard CustomItemInfoLub CustomAchieveLub CustomTownInfoLub CustomTipboxLub CustomMapInfoLub CustomOngQuestInfoLub CustomRcmdQuestInfoLub NoNagle OpenToServiceSelect GuildBrackets NoGravityAds NoGravityLogo FixLatestNCWin This is distributed for testing purposes only. Please do not request additional patches!! I am not a seller!! Therefore, if you plan to operate or commercialize a server, do not contact me!!
    19 points
  2. Version 1.0.8

    81 downloads

    Rsm Editor is a tool to edit RSM1 and RSM2 model files from Ragnarok Online. How to install Download the zip archive provided from the download link on this page. Install the application with Rsm Editor Installer.exe; if you are missing a .NET Framework you will be prompted to download it (the tool requires .NET 4.0). Once you are done, you can start the program from the link on your desktop. If you are opening the software for the first time, you'll be prompted with a setting resource window. You can either add a data folder or a list or GRFs from this window. This will be used for loading textures on your models. Key features Can edit both RSM1 and RSM2 file formats. When saving, you can also downgrade or upgrade the model version. The tool uses a different technique for version conversion which should give very accurate results. Position, scale and texture keyframes cannot be converted. Undo and redo for any operation. Quaternions are translated into Euler angles using the YXZ order. Merging different models can be done by right-clicking a mesh node or by drag and dropping another mesh directly. Easy texture modification for each mesh. Enable to set two-faced polygons for the entire model (to avoid invinsible faces in-game). Files can be associated with the tool through Windows (there will not be a setting for this within the software). Backups are created while you are editing the mesh. You can view the list via Debug > Backups manager... Automatically fixes mesh names and root node upon saving. There is no conversion to fbx and vice versa at the moment. Useful shortcuts All shortcuts can be modified via File > Settings > Shortcuts. Pressing Enter on a mesh will center the camera around it. You can quickly duplicate a mesh with Ctrl-C/Ctrl-V. You can hold the Shift key to snap the Gizmo when applying a transformation. You can also hold Shift when selecting a frame. You can select a mesh directly by holding Alt while clicking on it in the viewport. You can enable the wireframe view by pressing F8 or View > Wireframe view. This is useful when positioning meshes. Modifying transform origin The origin position is used for the rotation and scale transformations. To modify, press F1 or View > Show origin, then move the white gizmo. Modifying textures or normals If you click on the model rather than a mesh, you'll have a few more options. Smooth normals is the recommended method. The list of textures can be edited directly. The textures shown in this node are for all meshes together. If you edit the texture locally from your data folder, you can reload the model textures by using Ctrl-R or Transform > Reload model. Animation transform If you've already made an animation for a mesh and you want to apply a rotation (or translation) to all keyframes, you can do so by using the animation transform feature. Press F7 or Animation > Animation transform. This mode applies the transformation to all keyframes at the same time. Keyframes edit You can select multiple keyframes by holding down Shift+LeftMouseButton in the timeline view. You can unselect specific keys by pressing Ctrl+LeftMouseButton. You can move the selected frames by holding down LeftMouseButton. You can copy and paste keys with Ctrl-C/Ctrl-V. You can select all keys with Ctrl-A or deselect all with Ctrl-D. Gizmo orientation By pressing F4 or View > Change gizmo orientation, you can change between global or local orientation. Local orientation sets the gizmo to the current mesh transformation, while global ignores all mesh transformations. Each mesh has local transformations and global transformations (this is unrelated to the gizmo orientation). The difference is that local transformations do not apply to children (not entirely true for RSM2 though). Keyframe transformations always apply to children.
    Free
    11 points
  3. Hi, I'm working on a ranking system inspired by League of Legends, and I decided to create these files to apply it to the players I'm new to editing this kind of stuff. I wish a professional could review it and give it a proper cleanup, but anyway, it doesn't seem too bad for now. How do use it: 1) Download League of Legends Rank File. 2) Put into your GRF. 3) Go to your hateffectinfo.lub (data/luafiles514/hateeffectinfo) 4) Search or something Similar. HAT_EF_NightSkyOfRutie = 225, 5) Put this: -- Ranks Lol Tag by Scanty -- HAT_IRON_RANK = 231, HAT_BRONCE_RANK = 232, HAT_PLATA_RANK = 233, HAT_ORO_RANK = 234, HAT_PLATINO_RANK = 235, HAT_ESMERALDA_RANK = 236, HAT_DIAMANTE_RANK = 237, HAT_MAESTRO_RANK = 238, HAT_GM_RANK = 239, HAT_RETADOR_RANK = 240, 6) Now, Search for [HatEFID.HAT_EF_NightSkyOfRutie] = { resourceFileName = "efst_NightSkyOfRutie\\christmasx3.str", hatEffectPos = -11, hatEffectPosX = -0.3, isRenderBeforeCharacter = true, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true }, 7) After that --- Inician Rangos de Lol - By Scanty --- [HatEFID.HAT_IRON_RANK] = { resourceFileName = "custom\\rangos_lol\\iron_RANK.str",hatEffectPos = 6, isIgnoreRiding = false, isRenderBeforeCharacter = false, isAttachedHead = true, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true}, [HatEFID.HAT_BRONCE_RANK] = { resourceFileName = "custom\\rangos_lol\\bronce_RANK.str",hatEffectPos = 6, isIgnoreRiding = false, isRenderBeforeCharacter = false, isAttachedHead = true, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true}, [HatEFID.HAT_PLATA_RANK] = { resourceFileName = "custom\\rangos_lol\\plata_RANK.str",hatEffectPos = 6, isIgnoreRiding = false, isRenderBeforeCharacter = false, isAttachedHead = true, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true}, [HatEFID.HAT_ORO_RANK] = { resourceFileName = "custom\\rangos_lol\\oro_RANK.str",hatEffectPos = 6, isIgnoreRiding = false, isRenderBeforeCharacter = false, isAttachedHead = true, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true}, [HatEFID.HAT_PLATINO_RANK] = { resourceFileName = "custom\\rangos_lol\\platino_RANK.str",hatEffectPos = 6, isIgnoreRiding = false, isRenderBeforeCharacter = false, isAttachedHead = true, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true}, [HatEFID.HAT_ESMERALDA_RANK] = { resourceFileName = "custom\\rangos_lol\\esmeralda_RANK.str",hatEffectPos = 6, isIgnoreRiding = false, isRenderBeforeCharacter = false, isAttachedHead = true, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true}, [HatEFID.HAT_DIAMANTE_RANK] = { resourceFileName = "custom\\rangos_lol\\diamante_RANK.str",hatEffectPos = 6, isIgnoreRiding = false, isRenderBeforeCharacter = false, isAttachedHead = true, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true}, [HatEFID.HAT_MAESTRO_RANK] = { resourceFileName = "custom\\rangos_lol\\maestro_RANK.str",hatEffectPos = 6, isIgnoreRiding = false, isRenderBeforeCharacter = false, isAttachedHead = true, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true}, [HatEFID.HAT_GM_RANK] = { resourceFileName = "custom\\rangos_lol\\GM_RANK.str",hatEffectPos = 6, isIgnoreRiding = false, isRenderBeforeCharacter = false, isAttachedHead = true, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true}, [HatEFID.HAT_RETADOR_RANK] = { resourceFileName = "custom\\rangos_lol\\Retador_RANK.str",hatEffectPos = 6, isIgnoreRiding = false, isRenderBeforeCharacter = false, isAttachedHead = true, isAdjustPositionWhenShrinkState = true, isAdjustSizeWhenShrinkState = true} 8 ) Create a script to test. you need to use this: hateffect 240, true; *hateffect(<Hat Effect ID>,<State>); This will set a Hat Effect onto the player. The state field allows you to enable (true) or disable (false) the effect on the player. The Hat Effect constants can be found in 'src/map/script_constants.hpp' starting with HAT_EF_*. Requires client 2015-05-13aRagEXE or newer. League of Legends Rank.rar
    7 points
  4. Alice in Wonderland skin (unknown author) fanmade update to fix existing textures and add missing ones including 4th job related UI and renewal menus. iRO's version of the skin (outdated, for reference): Notable new features: - 4th job Basic Information (3 remade bars) - Trait Status background - Locked favorite inventory texture - Fixed all* transparency errors and missing textures Can't fix: - Quest UI (default texture can be improved with this), Rodex, Attendance, Adventure Guide Costume Preview window (these can only be changed via data/GRF, currently broken via skin) - Tab textures (Use, Equip, Etc, Fav, Basic Settings, others): Hardcoded on modern clients (if you know of a patch to change this, let me know) 08/05/2025: Hotfixed Trait window text and updated item comparison Alice in Wonderland.zip
    6 points
  5. Version 1.8.9.7

    56314 downloads

    Hello everyone, GRF Editor is an open-source tool for editing GRF files (https://github.com/Tokeiburu/GRFEditor). It offers a wide variety of features and customizations. The software is very stable and responsive, it can handle large operations without lagging your computer. How to install Download the zip archive provided from the download link at the bottom of this description or directly from there: http://www.mediafire.com/?aflylbhblrzpz0h Install the application with GRF Editor 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. Key features Overall speed is faster (or at least equal) than any GRF tool. Common operations: add, delete, merge, extract, preview, save. Undo and redo for any operation. It can open any GRF file format. Clean and very interactive interface. Saving formats supported : 0x300, 0x200, 0x103 and 0x102 (through the Settings page) and conversion to the Thor format. Instant filter and search options (example : "map .gat"). File association and context menus integration for .grf, .gpf, .rgz and .thor (through the Settings page). Can rebuild separated images into one file easily. Drag and drop (with the ALT key, can be modified in the Settings page). This is a big part of the software; most of the items can be moved around within the application itself or from/to Windows Explorer. If drag and drop does not work, it is most likely because you've started the program using administrator privileges. GRF Editor does not requires administrator privileges to run. Tools Grf validation: allows you to validate a GRF with multiple settings. It can detect corrupted GRF entries, invalid sprites, empty files, non-GRF files, duplicate files and a lot more. Flat maps maker: generates flat maps from .gat and .rsw files. Useful to generate WoE maps or to fasten up the loading time. Patch maker: generates a GRF patch based on two different GRFs. Hash viewer: shows the hash code (both CRC32 and MD5) for files. Image converter: converts an image to any format requested (BMP, PNG, JPG, TGA). GrfCL: used to create batch files (.bat) which can automate tasks on GRF files. See the content in GrfCL.rar in the download for more information. This tool can be customized from the sources as well. Grf encryption The encryption feature has been enabled again. It's similar to what it used to be and it has been tested on client versions ranging from 2012-08-01 to 2024-01-01. Some error messages will be displayed if necessary. If you have an issue, copy the error message (with the code, if there's one) and send me the client executable with the cps.dll file generated by GRF Editor. There shouldn't be compatibility issues anymore though! Thor files Thor files are patches used by Thor Patcher ( https://github.com/rathena/rathena/wiki/Thor-Patcher ). Because of their similarity with the GRF file structure, they have been integrated within GRF Editor. The primary utility of this feature is that it allows you to add encrypted files to a Thor patch. All the other options can be achieved by using Thor Maker. You'll find the necessary steps below, but test your patches before sending them off to players (I've done a lot of testing on my end, but better be safe). If you're using SecureGRF, then make a new GRF, add the files and encrypt it. In GRF Editor, open the encrypted GRF you just made, use "Save as" and name the new file with a .thor extension. That's it, if you want to change the output directory, click on Edit > Edit Grf/Thor settings. You can select the output mode and the GRF to merge the patch with. Simply save again if you change these properties. If you're using GRF Editor's encryption, then make a new Thor file (File > New > New Thor) and add the files you want to patch it with. Right-click on the files you want to encrypt and use Encryption > Encrypt. Technical stuff Requires .Net Framework 4.0 to run (4.0 or more will work as well). Automatically converts file name encoding to the currently selected encoding (you can change the encoding in the Settings page). Data virtualization is used as much as possible to preview files, meaning the files aren't completely loaded. Right-clicking an item will bring up the available options with that file. Preview file formats: txt, log, xml, lua, lub, bmp, png, tga, jpp, db, ebm, pal, gnd, rsw, gat, rsm, str, spr, act, imf, fna, bson, csv, ezv and wav. Services are "crash ready", meaning that you will be warned about a failed operation and no work will be lost (the application won't close and crash). It tries to continue operating even if it meets unsual conditions. Operations can be cancelled by clicking on the button near the progress bar. The warning level can be changed to avoid messages like "Please select a folder first." When prompted with an error, use Ctrl-C to copy the current dialog's content. Some screenshots! 1) Previewing an act file, while showing the search feature 2) Preview of a model file (rsm or rsm2) 3) Preview of GrfCL 4) Preview of maps 5) Preview of Grf validation 6) Search feature (press Ctrl-F or Ctrl-H to bring up within a text editor) Got a feedback? I'd gladly hear you out and fix issues you have with the program.
    Free
    6 points
  6. ChatRepeat hex! 83 7D 08 02 7C 49 6A 00 7C > EB
    5 points
  7. Edit: Drive link removed - msg me on discord Skylove Github mirror, download while its up I included the bodystyle fix diff. Msg me on discord for others. chainflex#5343 Help each other out and don't gatekeep or else the sellers win.
    4 points
  8. Download x64dbg from: https://x64dbg.com/ Run x32dbg as Administrator. Load the 2025-03-19 client in x32dbg. In x32dbg, go to the Patch menu (Shortcut: Ctrl + P). Click Import, then load the downloaded patch file ExtendCashShopPreview.1337. Choose Patch File to create a new patched client! video : https://drive.google.com/file/d/1gjFYTEHKpUnUA-gbThLNOKlIVxZSj0zY/view?usp=drive_link
    4 points
  9. enable Proxy x32dbg proxy.1337
    4 points
  10. Aqui les dejo el MSGSTRINGTABLE.csv si quieren ver las Ñ y las tildes ir a su clientinfo.xml y cambiar el <langtype>1</langtype> 1 es para america de tal modo podran verlo tal cual pero todo lo que sea coreano se vera codificado, recalco que modifique algunas letras para que se vea el texto mejor y no uno sobre otro o por fuera, si quieren modificar algo lo abren en notepad++ que es el que uso, seleccionan el texto a decodificar, en la barra de menu Base64 Encode para codificar y Base64 Decode para decodificar, si desean todo seleccionan todo y le dan Base64 decode by line. Ejemplo: MSI_DO_YOU_AGREE,Estas de acuerdo? Codificado: TVNJX0RPX1lPVV9BR1JFRQ,RXN0YXMgZGUgYWN1ZXJkbz8 cuando tengan todo listo para codificar deben tener en cuenta queprimero codifican el ID MSI_DO_YOU_AGREE y luego el texto Estas de acuerdo? si observan entre el ID y el texto hay una "," esa coma no se puede codificar ya que si lo hacen el exe no leera el archivo y les dara NO MSG por lo cual deben codificar las partes por separado y no todas de golpe ya que si tiran toda la linea el programa les codificara esa "," MSG Dowload: Editado 05/05/2025 msgstringtable.csv
    3 points
  11. For hex editing: Find = 00 00 F0 43 00 00 Example: Zoom 75% = 00 00 4C 44 00 00 Zoom 50% = 00 00 FF 43 00 00 How to change Zoom 75% to default And Indoor RSW Disalbe to default Thank you Skylove.  For hex editing: Find = 00 00 F0 43 00 00 Example: Zoom 75% = 00 00 4C 44 00 00 Zoom 50% = 00 00 FF 43 00 00 And Indoor RSW Disalbe to default In the hex editor, search for the string ndoorRswTable.txt (hex: 00 6E 64 6F 6F 72 52 73 77 54 61 62 6C 65 2E 74 78 74) and replace it with indoorRswTable.txt (hex: 69 6E 64 6F 6F 72 52 73 77 54 61 62 6C 65 2E 74 78 74)
    3 points
  12. 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.14GB. 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 ~fast mirror (●'◡'●)~ Extra Warp Profile for 2022-04-06 used for FroggoClient.exe (mirror) 2022-04-06 Vanilla Ragexe Client Login Screen Creator Official Ragnarok Complete Zipped Folder(10/June/2024) Official Ragnarok Complete EXE 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.
    3 points
  13. Version 1.0.0

    119 downloads

    Author: Nyani Version 1.0 ---------------------------------------------- Features - Unlimited Chain Quest (Randomized Kill/Collection Quest) - Automatic Quest submission - unless Collection Quest (Must turn in) - Automatic Quest Acquisition - Does not repeat previous quest (shuffles the quest provided) - Cancel Current Quest (Must talk to NPC) - Monthly Ranking - Automated Monthly Reward distribution - Chance to obtain rewards for quest submissions - Milestone Rewards every 100 quests finished ---------------------------------------------- Changelogs v1.0 - Initial Release Notice: No support will be provided - unless it is a bug on the current script Config // ========================== // CONFIGURATION // ========================== // 0 = NPC Claim Mode, 1 = RoDEX Mode .reward_mode = 1; // Mob and kill amounts setarray .MobList[0], 1002,1004,1010; setarray .MobAmount[0], 30,40,50; setarray .ItemList[0], 705, // Orcish Voucher 1015, // Garlet 1021, // Tooth of Bat 719, // Bear’s Footskin 729, // Coal 744, // Witherless Rose 746, // Evil Horn 728, // Cyfar 938, // Golem Fragment 1058, // Cactus Needle 1009, // Claw of Desert Wolf 1038, // Emveretarcon 1042, // Worm Peelings 1044, // Flame Heart 1046, // Mystic Frozen 1047, // Great Nature 1049; // Red Blood setarray .ItemAmount[0], 5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5; // Completion reward pool setarray .RewardList[0], 607, 608, 609; setarray .RewardAmount[0], 1, 2, 1; // 100-completion reward pool setarray .SpecialRewardList[0], 7711, 7712; setarray .SpecialRewardAmount[0], 1, 1; // Monthly rewards for top 10 setarray .MonthlyReward[0], 607, 501, 504, 505, 506,909,910; setarray .MonthlyRewardAmount[0], 5, 2, 1, 3, 2,5,10; // Reward chance settings (1-10000 scale) .RewardChance = 10000; // 100% chance by default .SpecialRewardChance = 10000; // 100% for 100-completion Make sure to run SQL queries! No support provided, unless it's a bug in the script's core features.
    Free
    3 points
  14. is there a way to fix the lightmaps? normally u have to use: http://nemo.herc.ws/patches/IncreaseMapQuality/ this patch. EDIT: okay got it! look for this 6A 00 6A 00 6A 01 8D 85 FC FF FB FF B9 54 41 22 and change it to: 6A 00 6A 00 6A 04 8D 85 FC FF FB FF B9 54 41 22 means 01 to 04
    2 points
  15. Hola amigos qué tal, espero que bien. Me imagino que muchos de ustedes que me vayan a leer habrán probado la beta de Latam RO o ROLA, el release es el 28 de mayo. Es un servidor oficial de gnjoy, en inglés, español y brasileño, la mayoría de jugadores son de brasil pero no quita que haya mucha comunidad hispano hablante. Puse más información en este post. El caso, es que me gustó mucho el servidor y mientras espero el release he estado importando en rAthena manualmente los items de la cash shop, también tengo planeado implementar el eden group de Latam RO y extras que tiene iRO, os dejo unos pantallazos. Traducción de NPCs iniciales y Eden Gorup. (Work in progress) Cash Shop con todos los items funcionales. (Terminado) Hoja de cálculo con los items de la cash de LatamRO OBT NPC que vende los artículos limitados por cuenta y tiempo de la Cash Shop (Pestaña Account Limited). (Terminado) NPC de recompensas de los eventos de la OBT. (Terminado) Items para llamar NPCs con la campana. (Terminado) Sistema VIP. Espero que les guste, yo me lo he pasado genial importando el contenido, he tenido muchos problemas porque ni me acordaba como se hacían estas cosas, y mucho menos a nivel del cliente de Ragnarok, para poder importar los items en Español, etc. Gracias al proyecto de traducción RoEnglishRE ha sido posible, ya que han implementado ciertas funciones personalizadas (como hacer un mod) que permite añadir customs y reemplazar items de manera fácil y eficiente, pero claro, hasta que no he entendido como funciona todo y demás, ha sido un dolor. Porque, para el que sepa, en el archivo que guarda la descripción de los objetos está la referencia al sprite con nombre en coreano, si no tiene la codificación adecuada no va a funcionar. El cliente de LatamRO tiene los caracteres codificados en formato octal UTF-8, entonces tuve que decodificarlos a EUC-KR que es el formato con el que trabajo actualmente, lo ideal sería usar ANSI Western 1252 para el cliente de kRO y tener esa compatibilidad con las tildes españolas (ya que se pueden codificar en octal UTF-8) y usar langtype 1. Además si se fijan, en las descripciones de los objetos, las tíldes no existen, se me borraron al hacer los procesos de conversión, creo que con chatgpt podría hacer que me lo corrija pero no he probado todavía. Además, tengo planeado también implementar un evento de EuroRO (Ragnarok Prime), que me gustó mucho: X Marks Spot, ya no está activo pero la información está ahí. Me gustaría que me dejasen su opinión. Aclaraciones: Sí, liberaré todo cuando termine. Los caracteres coreanos es porque uso langtype 0, ustedes deberían usar langtype 1 en clientinfo.xml La tabla de probabilidad de obtener items en las lootboxes no está implementada correctamente ya que coge la información de las tablas de kRO, además no consigo hacer que el artefacto ovalado brillante muestre su tabla de probabilidad, pero las recompensas asignadas si son las de Latam RO. Algunas soluciones están hechas por NPCs por limitaciones técnicas, como la pestaña de Account Limited de la Cash Shop, y las recompensas de los eventos OBT, no puedo saber si cumplen los requisitos, y tú te eliges el requisito o eliges la mejor recompensa, tampoco pasa nada. Estoy usando el cliente 2025 publicado en el foro de rAthena client releases y he tenido que aplicar ediciones al código fuente, también públicos. Algunos NPCs no tienen la ID real, precios y funciones al 100% de Latam RO porque no puedo comprobarlo hasta que salga el release. En principio solo tengo intención de publicarlo en Español, no he hecho la prueba, pero si le paso el NPC y lo traduce chatgpt automáticamente sin errores de código, pues sí lo publico inglés y español. El sistema VIP es un sistema que ya existe en rAthena y hay que activarlo, no obstante hago uso del sistema para dar acceso al segundo almacén, y funciones premium del Guerrero Lunar. Archivos: GitHub
    2 points
  16. This project was created as a learning experience to understand how game anti-cheat systems work — from basic concepts to a complete implementation that can run standalone or be integrated with a game client like Ragnarok Online. With the help of AI , open documentation, and real-world code references, GarudaHS has officially been completed for basic version. Source Code: https://github.com/Hansel38/GarudaHS Feedback, suggestions, or bug reports are very welcome — feel free to open an issue or contribute via PR! Credits Special thanks and inspiration go to: https://github.com/Pokye/Sagaan-AntiCheat-V2.0 Big respect for the open-source contribution that helped kickstart this journey. Asli Jatuh Bangun buat beginian, ternyata susah banget, bahkan gw sempat berkali kali mau nyerah tapi gw mau coba berusaha pokoknya harus jadi hehehe thanks all ^^
    2 points
  17. here BaseSDK.dll
    2 points
  18. https://www.inven.co.kr/board/ro/1951/6676
    2 points
  19. for test all file on folder debug, but you need download Stud_PE for inject to file exe ^^ and im still work many feature for this server anti cheat, and alot change for feature. I need help about all cheat for ragnarok online, name a program, and and name progses please if you have, please give to me
    2 points
  20. cash shop works fine. disable the cash shop preview on server side
    2 points
  21. Hey Folks, Just passing by to show you an ongoing project, but on a very good state already: Ragnarok Rebirth It's also a new server I'm working on, full progressive, but the reason I'm coming here today is for the website itself: A fully progressive DB and Simulator - The database has support for all pre-renewal episodes starting in Episode 5.0 - The simulator is still ongoing, in which I'm finalizing support for all effects - The database also supports official or private servers (and the idea is for this to become the single, most powerful database that has ever existed) That being said, I come here with request for the community and to ask for help - Whoever is willing to register themselves and try the website, you are more than welcomed, there's also a discord link in which you could let me know about any error in the database you come upon or improvements/ideas you would love to see implemented - I tried my very best to get the correct database for each episode, applying the changes from whatever I found in iRO and bRO websites. The problem is that these websites only mention mob/maps/equipment changes, but not overall items. I also might have missed something. So if you see any issue, let me know and I will fix it for us - My goal is to also support all renewal episodes. The simulator already takes into consideration calculation changes in renewal, "all I need is the database". So to make it clear, two files from rathena that I need: item_db.yml and mob_db.yml And this is my main help request from the community: Does anyone have these two files episode based (starting from Episode 13.3 : El Dicastes?) Any help is highly appreciated. In case that you do wanna see the website updated with renewal episodes as well and are willing to help, I'd love it! That's all for now, thanks for everything until now
    2 points
  22. After the fixes: Before (for reference): There's ~72 images in the current zip for ~20 buttons. The buttons are not perfect but more consistent than the original ones, that had random *** spacing, font size, and shadows. Installation: add to Data or GRF (can technically be used on a skin, but Quest UI seems to only be modifiable via data/GRF) data.zip
    2 points
  23. Hello. I found this script: Herc - Event Wheel of Fortune So i decide to use it. All credits to him: Habilis. Here's my edited Script: And this is my Frames. Route: data\texture\À¯ÀúÀÎÅÍÆäÀ̽º\cardbmp\ruleta_suerte But you can change it via script. OnInit: set .Cutin$, "ruleta_suerte\\frame_"; <-- CHANGE this "This is my own modification. You can change everything through the script, and of course… you'll need the design. But hey, you can do it yourself! I downloaded Photoshop just an hour ago and made this, lol (no editing knowledge at all)." If you’ve got your own design and want to create frames like I did, here’s what I did Please don't ask anything about design and stuff, I'm still learning. Odin Wheel: This is just an example. If you want it to be an automated event or something like that, feel free to ask! Video: Frames.rar Ruleta+PSD+Gen_FramE.rar Odin_Wheel.rar
    2 points
  24. 1. Unlimited Chain Quest - Monster Hunting / Item Collection in 1 NPC 2. Music Player - Just for fun 3. Race to Max Level - Perfect for single-time race events! 4. Beta Registration NPC - Easy handing out rewards NOTE: No support will be provided - unless it's a bug in the script itself Bugs? Reply to this thread and I'll fix it right up.
    2 points
  25. 2 points
  26. Hi everyone, it's been a long time since I visited the this forum, I had thought about making a simpler control panel, I hope there are those here who want to contribute to the control panel that I made, if anyone is interested, please send a message directly. Here is the display, suggestions and input from all of you are very important for the development of this control panel.
    1 point
  27. So, I have DIFFed manually all the associated files from this github commit : https://github.com/AoShinRO/brHades/commit/1396b012600db9b0688f3cd3fdb9ac273d525bd0#diff-16a6f317c581ce365a41a9846cf48dc45c8d6ac0256a7c45849e6e1b37100ecdR13025-R13037 Applied the change you made on pc.cpp Patched my kRO client And yet all my characters are still displaying as Novices There must be something I skipped My brain is seriously racked right now trying to fix this error I'll give it a rest for today. I'll wait for future assistance.
    1 point
  28. -- Instructions: -- 1. Place itemInfo.lua and packageitem.lub in this directory. -- 2. Run 1st.bat to update the item names in the packageitem.lub file. This will ensure better translation by formatting item names properly. -- 3. After updating, run 2nd.bat to translate the packageitem.lub using the updated item names. This step is essential for accurate and consistent translations across the game. -- 4. A success message will be printed if changes are made. -- 5. If no matching item IDs are found, no changes will be made. here is the simple script that I made to automatically translate the item name in Probability from itemInfo changelog v1-initial release v2-item image are now display v3-fixed the forced all the prob = 6 and group = 6. -also display item quantity -fixed unidentified item name update converterv3.rar
    1 point
  29. you should take your time if the problem is to be solved, sometimes we have to focus on what we want to achieve, rather than thinking about the other side doing a compile is one way to get the problem resolved, if it is not possible to understand it is better to use someone else's energy to solve it, that's if you need it.
    1 point
  30. 1 point
  31. It's back to normal. Thank you Skylove. ^^
    1 point
  32. I think it's unknown. Website: ro3global.com But there are some leaks on youtube shorts, the game looks like mobile autoattacking game but instead a new Ragnarok World (like X, V, generations, eternal love, etc) it's RO1 world. The skin is like a Ragnarok Idle Plus enhanced, which is not bad. They showed the game in private conferences on PC. - https://www.youtube.com/shorts/UN_BetICnh4 (attacking leak) - https://www.youtube.com/shorts/Lqfw88Kb1zY (pc leak) Maybe is not gonna be what we want but not a mega dissaster how it looks, and will take a lot to get global release imo. Gravity is hiring for a ragnarok zero launch overseas (and ro zero artist creator) and currently planned ASIA version release.
    1 point
  33. It's already patched in, if OP could supply the unpatched exe it would be cool but he is already generous in sharing latest client.
    1 point
  34. Hi guys aside from 4144 anyone else selling 2023/2024 client at a cheaper price?
    1 point
  35. 2025-03-19kro (en) - Client Releases - rAthena
    1 point
  36. Hi //===== rAthena Script ======================================= //= World Boss Apparition //===== By: ================================================== //= Alayne //===== Current Version: ===================================== //= 1.0 First version. //= 2.0 Updated. [Racaae] //============================================================ - script WorldBoss::alawboss -1,{ OnInit: //===== CONF .rewardMode = 2; // 1:inventory - 2:mailed - 3:drop on floor // Rewards // setarray .reward_id[0], <itemID>{,<itemID>,...} // setarray .reward_amount[0], <amount>{,<amount>,...} setarray .reward_id[0],969; setarray .reward_amount[0],1; .special_reward_id = 607; //item id for person who gave the final blow .special_reward_amount = 3; //amount for person who gave the final blow .reward_zeny = 0; // Zeny reward .rewardCount = -1; //How many items to drop on floor? (rewardMode:3 Only) .ip_check = true; //No rewards for double login set .bossAliveDuration, 30; //in minutes setarray .rebirthXY[0],120,202,202,120,119,37,37,119; //X, then Y. Only used if only one map is used set $lastPopMap$, ""; set $wordBossPop, 0; setarray .wbMap$[0], "prontera"; setarray .wbMapName$[0], "Prontera"; setarray .wBossIds[0], 2320,2483,1917,2942,2131; setarray .wBossHp[0], 20000000,30000000,40000000,50000000,60000000; //Storm Gust, Meteor Storm, Lord of Vermillion, Bowling Bash, Kyrie Eleison setarray .wbSummonSkillId[0], 89, 83, 85, 62, 73; setarray .wBossName$[0], "Hoktarrh","Giashim","Deathres","Cerbere","Citrak"; setarray .wbSlaveMobsId[0], 1098, 2023, 2365, 2019, 2472; setarray .wbSlaveMobsCount[0], 25, 15, 10, 15, 5; setarray .deadMonstersId[0], 1865, 2603, 1870, 2473, 2474, 2283; //===== CONF END set .timerCount, 0; .reward_id_size = getarraysize(.reward_id); bindatcmd "worldboss", strnpcinfo(3) + "::OnStartWBoss",90,90; end; OnStartWBoss: .@force = 1; OnMinute30: OnStarted: if($WorldBoss_cd <= gettimetick(2) || .@force) { set .@chosenMap$, "[ "; set .@spawnRand, rand(0, getarraysize(.wbMap$)-1); set .lastRandId, rand(0, getarraysize(.wBossIds) - 1); //RATHENA monster .wbMap$[.@spawnRand],82,55,.wBossName$[.lastRandId],.wBossIds[.lastRandId],1,strnpcinfo(3) + "::OnWorldBossDied",2; set .wBossId, $@mobId[0]; setunitdata .wBossId, UMOB_MAXHP, .wBossHp[.@spawnRand]; set .@chosenMap$, .@chosenMap$ + .wbMapName$[.@spawnRand] + "]"; announce "[ System ] World Boss appeared in " + .@chosenMap$ + " !",bc_all,0xFF0000; set $WorldBoss_cd, gettimetick(2) + 21600; //next pop in 3 days, 60 for debug (1 min) - 21600 6hours set $lastPopMap$, .wbMap$[.@spawnRand]; set $lastPopIdRank, .@spawnRand; deletearray $wbFighters[0], getarraysize($wbFighters); set $wordBossPop, 1; set .deadCount, 0; set .timerCount, 0; initnpctimer; donpcevent "World Boss#wb_board::OnEvent"; } else { if(.debug == 1) { debugmes "Not ready yet."; } } end; OnTimer1000: .timerCount += 1; freeloop(1); if(.timerCount == .bossAliveDuration * 60) { stopnpctimer; killmonster $lastPopMap$, strnpcinfo(3) + "::OnWorldBossDied"; killmonster $lastPopMap$, strnpcinfo(3) + "::OnSaveDied"; killmonster $lastPopMap$, strnpcinfo(3) + "::OnCloneDied"; killmonster $lastPopMap$, strnpcinfo(3) + "::OnReducedBossDied"; set $wordBossPop, 0; announce "[ System ] World Boss vanished without being killed...",bc_all,0x00FF00; } set .@cellRange, 25; switch(.timerCount) { case 60: //1 min mapannounce $lastPopMap$, "[ World Boss ] Raise! Raise, my army!", bc_map, 0xFF0000; //RATHENA getunitdata(.wBossId, .@worldBossData); set .@x, .@worldBossData[UMOB_X]; set .@y, .@worldBossData[UMOB_Y]; for(set .@i,0; .@i<getarraysize(.wbSlaveMobsId); set .@i,.@i+1) { for(set .@j,0; .@j<.wbSlaveMobsCount[.@i]; set .@j,.@j+1) { areamonster $lastPopMap$, .@x - .@cellRange, .@y - .@cellRange, .@x + .@cellRange, .@y + .@cellRange, "Slaves", .wbSlaveMobsId[.@i], 1, strnpcinfo(3) + "::OnSaveDied"; } } break; case 120: //2 min, all summon cast skills mapannounce $lastPopMap$, "[ World Boss ] You are all far beyond my control!", bc_map, 0xFF0000; //RATHENA getunitdata(.wBossId, .@worldBossData); set .@x, .@worldBossData[UMOB_X]; set .@y, .@worldBossData[UMOB_Y]; for(set .@i,0; .@i<getarraysize(.wbSlaveMobsId); set .@i,.@i+1) { areamobuseskill $lastPopMap$, .@x, .@y, .@cellRange * 2, .wbSlaveMobsId[.@i], .wbSummonSkillId[.lastRandId], 5, 3000,1,ET_KIK,3; } break; case 180: //3 min, pop 15 reduced clone of the mob mapannounce $lastPopMap$, "[ World Boss ] You won't go away with this, humans!", bc_map, 0xFF0000; monster $lastPopMap$,0,0,.wBossName$[.lastRandId],.wBossIds[.lastRandId],15,strnpcinfo(3) + "::OnReducedBossDied"; copyarray .@tempMobId[0], $@mobId[0], 15; //RATHENA getunitdata(.wBossId, .@worldBossData); set .@hp, .@worldBossData[UMOB_HP]; set .@tempHp, .@hp / 15; for(set .@i,0; .@i<getarraysize(.@tempMobId); set .@i,.@i+1) { //RATHENA setunitdata .@tempMobId[.@i], UMOB_MAXHP, .@tempHp; setunitdata .@tempMobId[.@i], UMOB_HP, .@tempHp; } break; case 240: //4 min, raise dead bodies mapannounce $lastPopMap$, "[ World Boss ] Even the deads are on my side! You can't win!", bc_map, 0xFF0000; set .@deadSplit, .deadCount / getarraysize(.deadMonstersId); if(.@deadSplit <= 0) { set .@deadSplit, 2; } //RATHENA getunitdata(.wBossId, .@worldBossData); set .@x, .@worldBossData[UMOB_X]; set .@y, .@worldBossData[UMOB_Y]; for(set .@i,0; .@i<getarraysize(.deadMonstersId); set .@i,.@i+1) { areamonster $lastPopMap$, .@x - .@cellRange, .@y - .@cellRange, .@x + .@cellRange, .@y + .@cellRange, "Dead Corpses", .deadMonstersId[.@i], .@deadSplit, strnpcinfo(3) + "::OnSaveDied"; } break; case 300: //5 min, pop clone of each player mapannounce $lastPopMap$, "[ World Boss ] Fight against your own power you're so proud of, shall you?!", bc_map, 0xFF0000; //RATHENA getunitdata(.wBossId, .@worldBossData); set .@x, .@worldBossData[UMOB_X]; set .@y, .@worldBossData[UMOB_Y]; for(set .@i,0; .@i<getarraysize($wbFighters); set .@i,.@i+1) { if(attachrid($wbFighters[.@i]) == 1 && strcharinfo(3) == $lastPopMap$) { clone $lastPopMap$, rand(.@x - .@cellRange, .@x + .@cellRange), rand(.@y - .@cellRange, .@y + .@cellRange), strnpcinfo(3) + "::OnCloneDied", getcharid(0); } else { deletearray $wbFighters[.@i], 1; } } break; case 360: //6 min mapannounce $lastPopMap$, "[ World Boss ] Raise! Raise, my army!", bc_map, 0xFF0000; //RATHENA getunitdata(.wBossId, .@worldBossData); set .@x, .@worldBossData[UMOB_X]; set .@y, .@worldBossData[UMOB_Y]; for(set .@i,0; .@i<getarraysize(.wbSlaveMobsId); set .@i,.@i+1) { for(set .@j,0; .@j<.wbSlaveMobsCount[.@i]; set .@j,.@j+1) { areamonster $lastPopMap$, .@x - .@cellRange * 2, .@y - .@cellRange * 2, .@x + .@cellRange * 2, .@y + .@cellRange * 2, "Slaves", .wbSlaveMobsId[.@i], 1, strnpcinfo(3) + "::OnSaveDied"; } } break; case 420: //7 min, autocast earthquake at 10% hp cost mapannounce $lastPopMap$, "[ World Boss ] STOP BOTHERING ME, HUMANS!", bc_map, 0xFF0000; //RATHENA getunitdata(.wBossId, .@worldBossData); set .@hp, .@worldBossData[UMOB_HP]; set .@mhp, .@worldBossData[UMOB_MAXHP]; set .@x, .@worldBossData[UMOB_X]; set .@y, .@worldBossData[UMOB_Y]; if(.@hp > 10 * .@mhp / 100) { //RATHENA setunitdata .wBossId, UMOB_HP, .@hp - 10 * .@mhp / 100; set .@id, .wbSlaveMobsId[rand(getarraysize(.wbSlaveMobsId) - 1)]; areamobuseskill $lastPopMap$, .@x, .@y, .@cellRange * 2, .@id, 653, 3, 3000, 1, ET_KIK, 3; } else { //only world boss pop, but stronger areamobuseskill $lastPopMap$, .@x, .@y, .@cellRange * 2, .wBossIds[$lastPopIdRank], 653, 10, 3000, 1, ET_KIK, 3; } break; case 480: //8 min, wide bleeding mapannounce $lastPopMap$, "[ World Boss ] You don't even deserve me to fight you!", bc_map, 0xFF0000; areamobuseskill $lastPopMap$, .@x, .@y, 50, .wBossIds[$lastPopIdRank], 665, 5, 3000, 1, ET_KIK, 3; break; case 540: //9 min, random kill over fighters mapannounce $lastPopMap$, "[ World Boss ] Feel my rage! Limitless is my power!!", bc_map, 0xFF0000; set .@killCount, rand(getarraysize($wbFighters)); for(set .@i,0; .@i<getarraysize($wbFighters); set .@i,.@i+1) { if(attachrid($wbFighters[.@i]) == 1 && strcharinfo(3) == $lastPopMap$) { charcommand "#nuke " + strcharinfo(0) + " " + strcharinfo(0); } else { deletearray $wbFighters[.@i], 1; } } break; case 600: //10 min, raise life according to alive clones mapannounce $lastPopMap$, "[ World Boss ] I'll feast from your bones!!", bc_map, 0xFF0000; set .@mobCount, mobcount($lastPopMap$, strnpcinfo(3) + "::OnReducedBossDied"); killmonster $lastPopMap$, strnpcinfo(3) + "::OnReducedBossDied"; //RATHENA getunitdata(.wBossId, .@worldBossData); set .@hp, .@worldBossData[UMOB_HP]; set .@mhp, .@worldBossData[UMOB_MAXHP]; if( .@hp + .@mobCount * 50000 > .@mhp ) setunitdata .wBossId, UMOB_HP, .@mhp; else setunitdata .wBossId, UMOB_HP, .@hp + .@mobCount * 50000; break; case 660: //11 min, slave skill area mapannounce $lastPopMap$, "[ World Boss ] Life and death are nothing to me!", bc_map, 0xFF0000; //RATHENA getunitdata(.wBossId, .@worldBossData); set .@x, .@worldBossData[UMOB_X]; set .@y, .@worldBossData[UMOB_Y]; for(set .@i,0; .@i<getarraysize(.wbSlaveMobsId); set .@i,.@i+1) { //BASILICA 362 (5) OR EVILLAND 670 (1) if(rand(1) == 0) { areamobuseskill $lastPopMap$, .@x, .@y, .@cellRange * 2, .wbSlaveMobsId[.@i], 362, 5, 3000,1,ET_KIK,3; } else { areamobuseskill $lastPopMap$, .@x, .@y, .@cellRange * 2, .wbSlaveMobsId[.@i], 670, 1, 3000,1,ET_KIK,3; } } break; } setnpctimer 0; freeloop(0); end; OnPCDieEvent: if(strcharinfo(3) == $lastPopMap$ && getarraysize(.wbMap$) == 1) { set .@rebirthArea, rand(4); warp $lastPopMap$, .rebirthXY[.@rebirthArea * 2], .rebirthXY[.@rebirthArea * 2 + 1]; charcommand "#alive " + strcharinfo(0); } addtimer 10000, strnpcinfo(3) + "::OnPopClone"; set .deadCount, .deadCount + 1; end; OnPopClone: if(Hp > 0) { set .@cellRange, 25; //RATHENA getunitdata(.wBossId, .@worldBossData); set .@x, .@worldBossData[UMOB_X]; set .@y, .@worldBossData[UMOB_Y]; clone $lastPopMap$, rand(.@x - .@cellRange, .@x + .@cellRange), rand(.@y - .@cellRange, .@y + .@cellRange), strnpcinfo(3) + "::OnCloneDied", getcharid(0); } end; OnSaveDied: OnCloneDied: OnReducedBossDied: //nothing, used to clean end; OnWorldBossDied: stopnpctimer; set $wordBossPop, 0; donpcevent "World Boss#wb_board::OnEvent"; killmonster $lastPopMap$, "All"; announce "[ System ] "+strcharinfo(0)+" gave the final blow to the World Boss !",bc_all,0x0000FF; if (.special_reward_id && .special_reward_amount) getitem .special_reward_id, .special_reward_amount; callsub OnReward; end; OnReward: if (!.reward_id_size && !.reward_zeny) return; if (.rewardMode == 3) { if (.rewardCount == -1) { set .rewardCount, getmapusers($lastPopMap$); } for (set .@i,0; .@i < .rewardCount; set .@i,.@i+1) { set .@rand, rand(getarraysize(.@reward_id)); //edit 150 if the map length and height is different of 150 cell makeitem .reward_id[.@rand],.reward_amount[.@rand],$lastPopMap$,rand(150),rand(150); } return; } if (.rewardMode) .@str$ = gettimestr("%B %d, %Y",21); freeloop(1); .@size = getmapunits(BL_PC,$lastPopMap$,.@aid[0]); if (.ip_check) { for ( .@j = 0; .@j < .@size; ++.@j ) { // .@ip$ = replacestr(getcharip(.@aid[.@j]),".",""); .@ip$ = getcharip(.@aid[.@j]); .@duplicate = inarray(.@iplist$, .@ip$); if (.@duplicate < 0) .@iplist$[.@iplistcount++] = .@ip$; else { message rid2name(.@aid[.@j]), "Another character with the same IP address has received the World Boss reward."; deletearray .@aid[.@j],1; .@j--; } } .@size = getarraysize(.@aid[0]); } for (.@j = 0; .@j < .@size; .@j++) { if (.rewardMode == 2) { .@charid = convertpcinfo(.@aid[.@j],CPC_CHAR); .@sender$ = "Rune-Midgarts Kingdom"; .@title$ = "World Boss Reward"; .@body$ = "Congratulations on defeating the World Boss!\r\n "+.@str$+".\r\n \r\n \r\n \r\n \r\n [ Your reward is attached. ]"; if (.reward_id_size) mail .@charid, .@sender$, .@title$, .@body$, .reward_zeny, .reward_id, .reward_amount; else mail .@charid, .@sender$, .@title$, .@body$, .reward_zeny; if (PACKETVER < 20150513 && !getd(".@str_"+.@cid[.@j]) && .@online) { setd ".@str_"+.@cid[.@j],1; message rid2name(.@aid[.@j]),"You've got mail!"; } } else { attachrid( .@aid[.@j], true ); .@name$ = strcharinfo( 0 ); for ( .@k = 0; .@k < .reward_id_size; .@k++ ) { if (checkweight(.reward_id[.@k], .reward_amount[.@k])) getitem .reward_id[.@k], .reward_amount[.@k]; else dispbottom "You can't receive x" + .reward_amount[.@k] + " " + getitemname(.reward_id[.@k]) + " for defeating the World Boss because you're overweight."; } Zeny += .reward_zeny; dispbottom "You have been rewarded for defeating the World Boss."; } } return; } prontera,144,198,4 script World Boss#wb_board 2_BOARD1,{ mes "[World Boss]"; if ($wordBossPop == 1) { mes "Hurry up, " + strcharinfo(0) + "."; mes "A World Boss threat has been raised, a few ago!"; mes "We need all fighters to join!"; if(select("Send me there","No way, I'm not going") == 1) { next; mes "[World Boss Area]"; mes "Right, get ready."; set $wbFighters[getarraysize($wbFighters)], getcharid(3); warp $lastPopMap$, 0, 0; } else { next; mes "[World Boss Area]"; mes "What are you? A coward?"; mes "You'll be blessed when we all be dead..."; } } else { mes "I'm the one you should come to visit when a World Boss will appear."; mes "And believe, it will."; mes "Those monsters are regular, in some kind."; mes "Al mortal, giant...And ridiculously strong..."; } close; OnInit: OnTimer60000: OnEvent: stopnpctimer; initnpctimer; delwaitingroom; if ($wordBossPop) { waitingroom "World Boss Alive",0; end; } .@time = ($WorldBoss_cd - gettimetick(2)); if (.@time < 1) { donpcevent "alawboss::OnStarted"; end; } .@remaining_d = .@time / 86400; .@remaining_h = (.@time % 86400) / 3600; .@remaining_m = (.@time % 3600) / 60; .@remaining_s = .@time % 60; if (.@remaining_d) .@s$[.@i++] = .@remaining_d + " day" + (.@remaining_d>1?"s":""); if (.@remaining_h) .@s$[.@i++] = .@remaining_h + " hour" + (.@remaining_h>1?"s":""); if (.@remaining_m) .@s$[.@i++] = .@remaining_m + " minute" + (.@remaining_m>1?"s":""); if (!.@remaining_d && !.@remaining_h && !.@remaining_m) .@s$[.@i++] = .@remaining_s + " second" + (.@remaining_s>1?"s":""); waitingroom implode(.@s$," "),0; end; }
    1 point
  37. Next time i will release for free, but now is paid only
    1 point
  38. Project Extalia A mid-rate Ragnarok Online server with custom events and a focus on balanced, engaging gameplay. Role: Community Manager Engage with players across forums, social platforms (Discord, Facebook, etc.), and in-game channels to foster a positive community. Manage community communications, including announcements, newsletters, and conflict resolution. Organize and promote in-game/online events, contests, and player-driven initiatives. Collaborate with the development team to relay player feedback and shape community-focused updates. Build partnerships with existing RO communities, content creators, and influencers to expand outreach. Requirements: Proven experience in community management, preferably within gaming or Ragnarok Online private servers. Strong interpersonal skills with a knack for diplomacy and fostering inclusive environments. Fluent in English; based in the Philippines or Indonesia. Active connections within the Ragnarok Online scene (clans, guilds, forums, etc.) are a huge plus. Familiarity with Ragnarok Online’s culture, player expectations, and community trends. How to Apply: DM us on the rAthena Forum with: A brief introduction and why you’re passionate about RO communities. Examples of past work (e.g., managed communities, event campaigns, social media links). Your availability (hours/week) and expected compensation. Let’s build a server that bridges communities—and a home where players thrive!
    1 point
  39. Remove SC_EMERGENCYCALL in Infinite tick so the timer shows. For LP add it in skill_unit_onout
    1 point
  40. well my egg was red in color like a broken item and its not clickable or hatching.
    1 point
  41. Happy Thanksgiving everyone. Since I couldn't get the turkey, I thought I would bring this instead. Without further ado, Let me introduce... WARP (Windows Application Revamp Package) Why this name? Because I like using acronyms and this name sounded apt. Plus it's the function & features that matter more. And no, I am not gonna change the name. Why not just fix up NEMO? The codebase for NEMO is pretty much ancient at this point. So rather than fixing it up, I decided to go the route of creating it fresh from scratch. The end result is a far superior product. OK, but what if you end up AFRO (Away From RO)again? Well, I can't promise that I will be around forever. However, this time around, I am releasing the source code for the tool as well. So, exactly what has changed? Well, quite a few things. Let's start off with how the GUI looks now. As you can see, the GUI is much more modern and aesthetically pleasing thanks to @Haziel & @Hadrias . The package comes with 3 tools - Console version (for simple patching), Main GUI, and Tester GUI (for batch testing). A big salute to @4144 for keeping NEMO alive while I was AFRO ?. Ok, jokes aside, I discussed with him about the changes he made and I have incorporated almost all of them but with some differences. Language & Styles are now on the bottom as you can see. All the remaining menus have now been shifted to drawers (moving side panels). To reveal them you can either swipe from the respective edge or click the button at the top. The right side drawer houses all the Extensions (Used to be called 'Addons' in NEMO). They are now loaded independently of the client. This avoids unnecessary redefinitions and now you can also use Extensions for activities that don't need a loaded client. All the common functions have been added to the 'Quick Actions' group and all the remaining ones are in the left drawer, which is not many. If you have suggestions for more features let me know. Moving on to the Back end (This is of no use to the regular user. So you can skip this part if you want) It was high time for us to have a proper input file format. Enter YAML. Love it or hate it but it's here to stay. Frankly, I like it more than libconfig and INI. You would be seeing YAML being used for almost every file in WARP. This includes input files for Patches & Extensions, Files defining those two, Session files, etc. Writing patches is far more flexible now. Say goodbye to PTYPE_HEX and \xAB. Now we can do wild card searches with the actual wild cards inside hex codes. Of course, we still need to have some well-defined characters for that. Currently, we have 2 forms of wildcards - Nibble wise - For e.g. => A? , ?? , ?3 Bit wise - For e.g. => [1.0...01] If you have any suggestions about it let me know. Speaking of writing hex code, I have provided functions looking almost identical to Assembly instructions for generating their equivalent hex code. This helps in making the hex code more human-readable and adds a little more flexibility. User inputs have a few more types and little more flexibility in specifying constraints now. Scripts have proper segregation now. Please follow them when adding your own. Only the scripts inside the 'Init' folder gets reloaded each time the client is loaded. This avoids unnecessary reloads. exe has now become 'Exe'. But in addition to this, you get 2 more objects - System (for filesystem activities) & Warp (whatever is outside the scope of the other two) Many of the functions used for retrieving some constant information in the 'Exe' have become properties now. For e.g. PEoffset, ImageBase, BuildDate, etc. During patching, the Diff section is only added if you have inserted any code using one of the 'Add' functions. Also, the Diff section now grows dynamically as per requirement (in increments of Section Alignment of course). In addition to the Patched Exe, The tool also generates an (Extra Patch Info) file with the suffix '.epi'. It holds just enough info for the tool to recognize existing patches in an exe from a previous patch session. So how is it useful? Let's say you have a patched client and its EPI file. But you don't have the original anymore. Now you can remove 1 or 2 patches and keep the rest OR even restore the original from the patched exe. Last, but not least, I am providing documentation about everything including the API. But bear with me for a bit, as I am still working on the documentation part. I probably forgot more points to add here, but I think this pretty much covers the important stuff. Anyways you can read in detail at the Wiki Is it ready to be used now? The tool is definitely ready. I have added most of the patches but not all just yet. But I was not able to test all the patches in-game. So please don't attack me if something failed. I would appreciate a Bug Request in Github instead. You can also come to Discord as well, if you prefer that. Also note, that some patches are still failing for new clients, and some failing for old ones. However, I saw the same behavior in NEMO, so that would be part of the next stage of operations - Updating Patch scripts. So, where do I get it from? https://github.com/Neo-Mind/WARP How to use it? There is a User Guide in the git repo (best viewed from Github itself). Everyone is used to NEMO by now, so it shouldn't be difficult to use this even without the guide. Plus the Github wiki is pretty detailed. Any last words before we close this? Just like in the case of NEMO, my intention with WARP is to create a common tool for patching without being restricted to RO or which OS you use it in. For this reason, you will be seeing multiple branches in the Git repo. If you are planning to use WARP for patching some other application, Create a branch using the 'win32' branch as a starting point That's about it from me for now.
    1 point
  42. Need the latest kRO Install folder for your private server? Look no further! ----> Download <---- Latest: 2023-04-04 Installation: Official kRO Updated: 04/04/2023 Download Link: https://mega.nz/folder/jUsDgRxQ#ttLmLjPY9p9cfU5_ShWVCw Package contains RSU RO Patcher Lite for kRO and kRO RE by [Ai4rei] This package is maintained by [Akkarin] Note: Due to continued abuse of my webservers, the files have been moved to MEGA. You can download an extractable .zip of an installed kRO directory, or you can download the official installer from kRO's website. Note: If you require older maps that are compatible with 2021 and older clients, download the 2021 .zip. A fan of this topic? Hit the rep button
    1 point
  43. Version 1.0.0

    396 downloads

    File Name: Keitenai_Delay_System File Submitter: keitenai File Submitted: 27 Nov 2017 File Category: Src Modification Content Author: keitenai Information: Resistance capping applies to item effects which have "bSubEle, bSubSize, bSubRace2, bSubRace, bSubClass, bNearAtkDef, and bLongAtkDef". This modification can be set to less than 100 resistance cap to avoid too resistance heal, or set over 100 upto max of 200 if the dev would like to enable resistance heal. Features: Configurable Maximum resistance capping. Resistance capping can be applied to different resistance bonus types with different values. Resistance capping is applied to all items with resistance bonus scripts. By buying this scr modification code, you agree to these terms: You are not allowed to redistribute this src code modification in any way, shape, or form. Chargeback scams are not tolerated and will get you punished on rAthena. I @Keitenai still retain all rights to this src modification. Terms above may be changed or adjusted without prior notification.
    Free
    1 point
  44. On src/map/mob.h // Change this to increase the table size in your mob_db to accomodate a larger mob database. // Be sure to note that IDs 4001 to 4048 are reserved for advanced/baby/expanded classes. // Notice that the last 1000 entries are used for player clones, so always set this to desired value +1000 #define MAX_MOB_DB 6000 //<- Increase this to value you want
    1 point
  45. Version V1.0

    663 downloads

    Just a simple Freebie NPC that will give out bound rewards and can easily be configured since it's pretty much very straight forward. Perfect for people who are just starting.
    Free
    1 point
  46. What's the point of having another private server when there are hundreds of them out there!!!!!!!!!!!!!!1111 Yes, more choice is better
    1 point
  47. bisa gunakan file2 dari idRO, saya ada sebagian, ambil seperlunya aja. saya ada repo file2 idRO, tp mslhnya, client idRO kayanya masih di bawah 2012-04-18a versinya kRO, struktur foldernya sih folder lama, sama masih pake lua 5.0 (tapi dah ada Cash Shop )
    1 point
×
×
  • Create New...