Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 05/14/25 in all areas

  1. Hello guys, this is my rAthena Text Editor (Offline), a lightweight, browser-based tool I created for editing rAthena scripts (syntax highlight) without needing any installation or internet connection. Features: NOW, integrated with the Gemini Chatbot API for the Editor! Just ask it, and it will provide code for you directly in rAthena Text Editor. Simply provide your Gemini API key. We're using the latest and fastest Gemini model: "gemini-2.5-flash-preview-05-20". Edit your scripts directly in your browser Download your code as a .txt file after you're done Open existing .txt files to continue editing Toggle between Dark Mode and Light Mode for better readability Autocomplete suggestions Added a live website. Try it here: https://manuuuu21.github.io/rAthena-Text-Editor/ (You can make it also as Chrome App this. Just go to this link, Go to settings of Chrome, Find "Cast, Save, and Share" and Click this as "Install Page as App). Added a CTRL+S feature and SAVE button. The tab title now updates based on the file you open or created/saved as. Drag and drop .txt files to get the data of txt file Works on mobile but on Chrome and Edge only. Added some rathena scripting keywords to highlight. <-- this is most tiring xD Works 100% offline – no installation, no internet, no hassle Grab the file here: https://github.com/Manuuuu21/rAthena-Text-Editor This is a simple tool made for convenience, especially for fellow scripters who want to work quickly without setting up a full IDE. Feel free to check it out, use it, or suggest improvements. Thanks and happy scripting! Screenshots:
    7 points
  2. This is a request from Extend whodrops command to include map drops #8017 I'm only enhancing @whodrops command. I've included map_drops.yml in the command extern MapDropDatabase map_drop_db; extern InstanceDatabase instance_db; sprintf(atcmd_output, "Map drops:"); clif_displaymessage(fd, atcmd_output); std::map<std::pair<uint16, double>, std::vector<std::string>> map_drop_groups; bool found_map_drops = false; for (const auto& map_entry : map_drop_db) { std::shared_ptr<s_map_drops> mapdrops = map_entry.second; std::string map_name = map_mapid2mapname(map_entry.first); std::string display_name = map_name; if (map_name.find("@") != std::string::npos) { for (const auto& instance_entry : instance_db) { std::shared_ptr<s_instance_db> instance = instance_entry.second; if (strcmp(map_mapid2mapname(instance->enter.map), map_name.c_str()) == 0) { display_name = instance->name; break; } for (const auto& additional_map : instance->maplist) { if (strcmp(map_mapid2mapname(additional_map), map_name.c_str()) == 0) { display_name = instance->name; break; } } if (display_name != map_name) break; } } for (const auto& global_drop : mapdrops->globals) { if (global_drop.second->nameid == id->nameid) { double rate_percent = (global_drop.second->rate * 100.0) / 100000.0; std::pair<uint16, double> key = std::make_pair(0, rate_percent); map_drop_groups[key].push_back(display_name); found_map_drops = true; } } for (const auto& specific_entry : mapdrops->specific) { uint16 mob_id = specific_entry.first; for (const auto& drop : specific_entry.second) { if (drop.second->nameid == id->nameid) { double rate_percent = (drop.second->rate * 100.0) / 100000.0; std::pair<uint16, double> key = std::make_pair(mob_id, rate_percent); map_drop_groups[key].push_back(display_name); found_map_drops = true; } } } } if (!found_map_drops) { sprintf(atcmd_output, " - Item is not dropped by map-specific drops."); clif_displaymessage(fd, atcmd_output); } else { for (const auto& group : map_drop_groups) { uint16 mob_id = group.first.first; double rate = group.first.second; const std::vector<std::string>& maps = group.second; std::string map_list = ""; for (size_t i = 0; i < maps.size(); ++i) { if (i > 0) map_list += ", "; map_list += maps[i]; } if (mob_id == 0) { sprintf(atcmd_output, "- All monsters: %.2f%% - (%s)", rate, map_list.c_str()); } else { std::shared_ptr<s_mob_db> mob = mob_db.find(mob_id); if (mob) { sprintf(atcmd_output, "- %s (%d): %.2f%% - (%s)", mob->jname.c_str(), mob_id, rate, map_list.c_str()); } } clif_displaymessage(fd, atcmd_output); } } Screenshot: Extend whodrops command to include map drops (#8017).diff
    5 points
  3. Link: https://github.com/TBlazeWarriorT/TBlazeWarriorT-Utility-Scripts/tree/main/NP%2B%2B rAthena Autocomplete Screenshots:
    5 points
  4. Hex edit: look for this 00 00 44 AC 00 00 and change it to 00 00 22 56 00 00
    4 points
  5. KRO : https://github.com/hiphop9/ROClient_en 2025-06-04_Ragexe.exe -PATH- @ Bug Fix(Recommended) Add Close Button Custom Window Title Disable 1rag1 Params(Recommended) Disalbe Filename Check(Recommended) Disable Help Message 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 Skip License Screen Translations client EnableWho EnableShowName AlwaysAscii CallKoreaClientInfo PlainTextDesc HideBuildInfo TranslateClient NoGGuard CustomItemInfoLub CustomAchieveLub CustomTownInfoLub CustomTipboxLub Customspopuplub CustomMapInfoLub CustomOngQuestInfoLub CustomRcmdQuestInfoLub Customachievementslub CustomQuestClassificationInfolub NoNagle OpenToServiceSelect GuildBrackets NoGravityAds NoGravityLogo FixLatestNCWin Restore model culling Headgears viewID 64000 ExtendCashShopPreview EnableProxySupport IncreaseMapQuality rAthena 2025-06-14 (66a4a2ab68ce85d781514c3c000433f981d6842f) https://github.com/hiphop9/rathena20250614 - emotion ui update for 20230925 clients - 20231220+ CLIENT bodystylefix - macro user report packet 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!!
    3 points
  6. i would like to share my winter snow EN skin winter snow EN.rar
    3 points
  7. Disable GM sprite - hex Search for: C4 04 84 C0 0F 84 C3 00 00 00 Two matches For both occurrences, replace with: C4 04 84 C0 90 E9 C3 00 00 00 Restore model culling hex Search for: 80 BE 54 01 00 00 01 You will find two matches. In both cases, look at the following bytes: 80 BE 54 01 00 00 01 75 1D 80 BE 54 01 00 00 01 75 45 Replace the 75 1D and 75 45 parts with 90 90
    3 points
  8. View File HD Hangul Damage Font Original RO damage fonts are so low-res and blurry, so here's my HD font for the Hangul Damage Font Place the files inside data/sprite/이팩트/ folder in your GRF. Please note that your RO client needs to have the additional damage fonts feature. The font used is TDTD온명조 Submitter amm0nition Submitted 05/15/25 Category Sprites & Palettes Video Content Author amm0nition  
    3 points
  9. Version 1.0.0

    32 downloads

    Original RO damage fonts are so low-res and blurry, so here's my HD font for the Hangul Damage Font Place the files inside data/sprite/이팩트/ folder in your GRF. Please note that your RO client needs to have the additional damage fonts feature. The font used is TDTD온명조
    Free
    3 points
  10. Version 1.0.8

    130 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
    3 points
  11. This feature enhances the standard MVP death mechanic by replacing the generic "Tomb" label with the **actual name of the MVP** that was defeated. When an MVP dies on the map, a tombstone NPC appears at the exact spot of death, and instead of showing a generic label, it dynamically displays the **name of the boss** (e.g., "Phreeoni", "Ifrit", "Baphomet"). **How it works for players:** - When an MVP is killed, a tombstone spawns on the map. - The tomb now shows the name of the MVP, not just “Tomb”. - This helps MVP hunters and players identify what boss was recently defeated, even if they arrived late. - It improves both visual clarity and overall immersion in the game. I created a demo video showcasing how this behaves in-game. **Note to fellow developers:** After completing this feature, I discovered that someone had already created a similar concept before me. However, I had no knowledge of that existing implementation during development and did not reference or use any of their code. This version was built independently from scratch based on how I personally wanted it to function. While the **concept is similar**, the **implementation and behavior may differ** between our versions. I still believe this showcases a useful quality-of-life addition for MVP-related mechanics, and I hope it can serve as inspiration or a base for others who wish to implement their own version. Feel free to check out the demo video and let me know your thoughts!
    2 points
  12. Hey everyone, I wanted to showcase a custom MVP mechanic system I've been developing for Ragnarok Online using rAthena. The idea is to bring more dynamic, thematic, and visually appealing mechanics to MVP encounters — moving beyond the usual tank-and-spank format. DISCORD Takechiii#8303 🛠 What does this system do? Allows MVPs to execute custom attack patterns on specific map coordinates. Works on an 11x11 grid centered around the MVP (6x6 coordinate) to trigger precise damage zones. Each MVP’s behavior can be thematically tailored (e.g., feline patterns for Moonlight Flower, curses for Osiris, etc.). Easily reusable and expandable for other bosses or PvE events. This system is inspired by raid-style battles. It’s ideal for: Custom instances MVP events with multiple phases Progressive PvE challenges I’m still refining the system and adding new mechanics and visual effects. I’m open to feedback, suggestions, or even collaborations!Thanks for watching and reading! Video Preview:
    2 points
  13. I encountered to see some marketplace addon and thinking to make one too, and I saw some issues/ideas that I think I can improvised a little bit. By the way it depends on the theme sty/css so if its using bootstrap themes it looks a bit different. The example I show here is how it looks from 'default' theme FluxCP. And it might still being updated from time to time. And yeah, this isn't free release so if anyone interested to get this you can PM me at discord id: chaos92. This addon has item popup information so user doesn't need to scrolling down to see any important information. As you can see, information about forge items, and pet egg is shown too with their intimacy information. So you can buy/sell loyal intimacy pet eggs easily ! So as you can see, this system can buy/sell items just via FluxCP without need to login ingame. You can just easily claim anytime when you're ingame with the NPC script provided. Player can select their character that is in offline status and select any items they one to sell, and it will be added at marketplace section. Also, not all items are available to sell, I've whitelist items that doesnt have any trade restriction, and you also can add your own or remove any as u want. Bound and Expiry items for sure automatically excluded from the list, including your equipped items. And yes as you can see above, we have Tax System where u can set it and seller will be charged for it. Above is the screenshot from where you can see all your listings. You can see there shown some expired status item, means this addon support expiry system, as default 7 days (can be set it to any) so that its not a place where all items are gathered from the first day to ensure item listing is an active listing. Also can cancel and relist it back too if needed. And yeah this how it looks from default FluxCP theme. And just example from 'bootstrap' FluxCP theme. There will be also shown any items that player purchased with date, and which character that bought them. Also, Admin Panel that can list top sellers, top buyers and top selling items and it can be filtered within some range of time. Also admin can controls to cancel or mark item listings as expired from Admin Panel. This addon support custom items too it just that u need to add the item assets image in the designated folder. I also have some other features added such as minimum group ID, for example only VIP above can access this addon. Also the currency it can be any #points, not restricted to #CASHPOINTS only. I think thats all for now. Let me know if you have any idea or suggestion to improve this addon, in the future.
    2 points
  14. Good day! Just want to share the script that i made so far, it's called city investment, this quest is from Kro. The quest is to hunt or to deliver things to npc. devided into 3 clases, A, B, C quest. and the quest will be randomly given every day at 4 am. each day only be able to do 1 quest delivery and 1 hunting boss quest. Hunting boss quest will be reset every wednesday 4 am, after you done quest, you will gain achievement point. the more you do quest your level of alliance will be increase, and you can do higher rank of delivery quest and get more token. The token can be trade to union gear. for full detail you can read it here City Investment & Union Gears [Hazy Forest] or watch my video . This script i made it based on playing Kro.
    2 points
  15. 2 points
  16. I've changed the UI for this site for quite some time and also some more additional tools. I've added Palette Duplicator. Its useful if you want to duplicate a list of palette but changing the palette file name easily. It will copy 100% the same palette pattern. For example based on screenshot above, I tried to duplicate that korean palette 700 list and it will becomes any name set as the base file name pattern. And another one, Palette Customizer. This tools u can easily customized any index palette easily for all selected palette. You can choose a reference palette and copy any rows do you want easily starting from row 0 to row 15. So if you already know pattern mount for some jobs, you can easily customize it, pick color from reference and place it at any index. If you have any suggestion or issue on any tools that provided in this website, you can let me know.
    2 points
  17. 2 points
  18. 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
  19. Version 1.8.9.7

    56954 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
    2 points
  20. File Name: itemoption File Submitter: keitenai File Submitted: 21 Nov 2016 File Category: Utilities Content Author: keitenai @ command itemoption Script Information: This script allows you to apply random option on a selected equipped item. The Option types can be found in const.txt : LINK!! The Value is the rate of the option type effect. eg: `10` = 10% bonus attack Index location is the Option Slot location. 0 = First item option slot 1 = Second item option slot 2 = Third item option slot 3 = Fourth item option slot 4 = Fifth item option slot NOTE that you will not see the Option type's description (Client Side) if the Option Slots are not filled by sequence (missed a slot). With this i added a security check that if you missed/jump an index slot, the script will automatically fix it for you. @ itemoption makes it easier to apply random option in your item quite easily. Compatible with : rAthena 633a642 Download : itemoption.txt Hope you find this useful itemoption.txt
    1 point
  21. try to replace the clif_changelook(&sd->bl,LOOK_BODY2,sd->status.body); with clif_changelook(sd,LOOK_BODY2,sd->status.body);
    1 point
  22. Update: Added a live website. Try it here: https://manuuuu21.github.io/rAthena-Text-Editor/ Added a Ctrl+S feature and SAVE button. The tab title now updates based on the file you open or created/saved. Drag and drop .txt files to get the data of txt file Added some rathena scripting keywords to highlight. <-- this is most tiring xD
    1 point
  23. View File bonus bNoComa About This File bonus bNoComa Add coma resistances ::Structure:: bonus bNoComa,1; ignores coma skill Submitter AlfheiMsz Submitted 05/11/25 Category Source Modifications Video Content Author AlfheiM  
    1 point
  24. Introduction Current implementation of random options offers two options: Fixed slots, with defined pool of options for each slot Define the upper bound, for one big pool of options With this setup is hard to control the drop chance for gear with a specific number options. So, I thought about adding the option to define exactly the chance for a given random option slot. Source (Github) The source code is available in my fork of rAthena (branch feat/chances-rand-options) https://github.com/rhrlima/rathena/tree/feat/chances-rand-options You can also easily check the diff here: https://github.com/rathena/rathena/compare/master...rhrlima:rathena:feat/chances-rand-options Configuration - Id: INTEGER Group: STRING MaxRandom: INTEGER Chances: LIST OF INTEGERS # new parameter Random: LIST OF OBJECTS - Option: STRING MinValue: INTEGER MaxValue: INTEGER Chance: INTEGER In the item_randomopt_group.yml file, we have the parameter Chances which is a list of integers, that defines the chance of adding a option slot to the equipament. The example above, defines a group that can generate up to 3 options, where the first option has a 50% chance of being applied, the second one 30%, and third 10%. Once an option is added, then, the selected effect will be affected by the Chance defined in the Option list. You can still use the original behavior with the MaxRandom parameter. You can mix both Parameters, the upper bound with be defined by which value is bigger, MaxRandom or the length of Chances. If MaxRandom is bigger than the length of Chances, slots that don't have a chance defined will use the fault behavior (the chance defined in each effect). Example # Group that generates 0-3 options - Id: 1 Group: GROUP_NAME Chances: - 5000 # 1st option has 50% - 3000 # 30% - 1000 # 10% Random: - Option: VAR_STRAMOUNT MinValue: 1 MaxValue: 5 Chance: 2000 - Option: VAR_AGIAMOUNT ...
    1 point
  25. The NPC is in the empty space between floors. You can use @jump 53 8 to get close to it. - script ShowEndlessTowerPoints -1,{ OnAtcommand: .@size = getarraysize($@difficulty_mode$); if (!.@size) { dispbottom "Please talk to the Tower Protection Stone first."; end; } dispbottom "===================="; dispbottom "ENDLESS TOWER POINTS"; for (.@i = 1; .@i < .@size; .@i++) dispbottom $@difficulty_mode$[.@i] + ": " + getd("#" + $@var_names$[.@i]); dispbottom "===================="; end; OnInit: bindatcmd "ETpoints",strnpcinfo(3)+"::OnAtcommand"; end; }
    1 point
  26. Put this in \conf\import\battle_conf.txt. Then save the file and use @reloadbattleconf or restart the server. skill_trap_type: 1
    1 point
  27. bindatcmd "mvpjoin", strnpcinfo(1) + "::OnEventJoin"; bindatcmd "mvpbet", strnpcinfo(1) + "::OnEventBet"; bindatcmd "mvpstart", strnpcinfo(1) + "::OnStart", 99, 99; The event can be activated by using the command @mvpstart
    1 point
  28. Hi, so, I've seen a lot of servers using auto attack system, I noticed a consistent issue: poor user experience and Walk AI is horrible. Both of which triggered me to develop a new one for herc which hopefully have more intuitive experience for players (and server owners ). I initially planned to release to herc only but due to high demand, I've ported for rA peeps. Please note that rA version is in beta and bugs are yet to be discovered. I can fix asap when reported. The features are inspired by Ragnarok Mobile: Eternal Love. Here are few features: Monster Selection: Automatically detect monsters based on the current map. Configurable Potion and Buff Item Selection: Server owners can customize which potions and buffs items players are allowed to use. Human-Like Movement AI: Intelligent and natural movement, unlike the aimless wandering typical of other systems. Can utilize warp portals of the same map (ignores those that warp to different map). Extensive Customization for Server Owners: Allows server administrators to configure settings to fit the unique needs of their server. Player-Friendly UI/UX: Hassle-free setup and adjustments. Player can choose to Warp to Savepoint / Logout / Do Nothing when Auto Combat ended. Offline Battle: Players can enable offline mode, allowing their character to continue Auto Combat even after the client is closed. Duration and end condition still applies Server Easy Configuration: Loot Config: Do not loot at all - good for server that has @autoloot or @alootid Default config - character walk up to the loot, and loot normally Auto loot to inventory - servers that DONT have @autoloot nor @alootid but want autoloot for Auto Combat Duration Config: 24/7 - Auto combat can be used all the time Per character - duration is based on character variable Account wide - duration is based on account variable Per Gepard Unique ID - not implemented, extra modules required. pls pm me if you want this Rental Item - duration is based on item expiration date. Exp and Drop Modifier: By Ratio - modifies overall exp and rates for player while on Auto Combat By Value - increase/decrease exp or drop rates (how Battle Manual, Bubble Gum, etc work) Not Supported by default (will count as extra module if required): 3rd Job Classes Very old revision of rAthena Gepard related variables and usage To do / To improve: Offensive Debuffs - do you guys need this? FAQS: Is this the same as Shakto's Autoattack or built from it? No, the system is based from goddameit's system. And codebase is ported from modern game engines that uses similar AI. If you guys are interested, please add me in discord: jasonch35. Teaser Videos:
    1 point
  29. that's guild storeage npc, are you using renewal mode?
    1 point
  30. Hello, change storage to premiumStorage. You can try my changes. I can't test it with just the code provided. // @autostore [Cydh] if (autostoring && sd->state.autostore && !item->expire_time && !id->flag.autoequip && !sd->state.storage_flag && !sd->npc_id) { if ((!sd->autostore_weight || (sd->autostore_weight && get_percentage(sd->weight, sd->max_weight) >= sd->autostore_weight)) && ( (sd->autostore_type&1 && (id->type == IT_HEALING || id->type == IT_USABLE || id->type == IT_DELAYCONSUME || id->type == IT_CASH)) || (sd->autostore_type&2 && (id->type == IT_ARMOR || id->type == IT_WEAPON || id->type == IT_SHADOWGEAR || id->type == IT_PETEGG || id->type == IT_PETARMOR)) || (sd->autostore_type&4 && (id->type == IT_ETC || id->type == IT_AMMO || id->type == IT_UNKNOWN || id->type == IT_UNKNOWN2)) || (sd->autostore_type&8 && id->type == IT_CARD) ) ) { char output[CHAT_SIZE_MAX]; sd->weight += w; clif_updatestatus(*sd, SP_WEIGHT); int32 stor_id = 2; //Storage ID to autostore if (stor_id) storage_premiumStorage_load(sd, stor_id, STOR_MODE_PUT); if (sd->state.storage_flag == 3) { storage_storageadd(sd, &sd->premiumStorage, i, amount); storage_premiumStorage_close(sd); } else { storage_storageadd(sd, &sd->storage, i, amount); storage_storageclose(sd); clif_storageclose(*sd); } sprintf(output, "[ Autostore ] %dx %s", amount, id->ename.c_str()); clif_messagecolor(&sd->bl, color_table[COLOR_LIGHT_GREEN], output, false, SELF); achievement_update_objective(sd, AG_GET_ITEM, 1, id->value_sell); return ADDITEM_SUCCESS; } }
    1 point
  31. Hello try lang search sa youtube halos lahat ng guide ginawan na ng ating mga kasamang pinoy
    1 point
  32. You need a client with date 2023+ if im correct.
    1 point
  33. try check this R> monster vs monster - Script Requests - rAthena
    1 point
  34. Found the fix for my earlier question for bodystyle and alternate sprites and turns out they are indeed in the client just at a later used it: Rune Knight JPN Alternate starts at 4332 and you can go higher by 1 for the other jobs. thought I'd quote you so you can see the answer since you were interested.
    1 point
  35. 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.
    1 point
  36. Version 1.0.0

    378 downloads

    This script has NPC shops that sell all available costume items in rAthena as of March 2025. Costumes are categorized based on their equipment slot (Upper, Middle, Lower and Garment) and distributed across multiple shops (150 item per shop), Ensuring a well-organized and accessible shopping experience. The item list is filtered to include only valid costumes from latest iteminfo_EN.lua (English Translation), preventing missing or invalid entries. if you remove the commented shops it will sell all costumes available in the database (item_equip_db.yml). Ideal for servers looking to provide a complete costume collection for players!
    Free
    1 point
  37. View File HanzoBR Free Thor Skin Blue About this file - EN Made for a friend who ended up not using it, so I'm making it available to the community. This Skin has features of WoE Status (On/Off), Server Status (On/Off), Real + Fake Player Count. Please Selling this product is TOTALLY PROHIBITED! Contents Thor Patcher PSD Included - Modify as you wish. WebFiles View - Online Players, Server Status Map, WoE Status - HanzoBR WebFiles Configuration - Server Connection, Server Status and Online Players - Credit @Lawliet - Thanks for this Web Configuration In the Web/status/inc/config.php directory, configure: $Srv_Host = "127.0.0.1"; // Change to your database IP $Srv_Database = "ragnarok"; // Name of your database $Srv_Username = "ragnarok"; // Username $Srv_Password = "ragnarok"; // Password In the Web/status/playeronline.php directory you will find: $playerCount = PlayerCount(); $number = 0; // number of fake users - used only to configure space for the hundreds place in the view or not. // Add the $number to the result of the PlayerCount() function $result = $playerCount + $number; In $number = 0; you can change the value to 50 for example and the user will see $number + $playerCount Assuming you have 15 real players online, the $result will show 65 Players Online (50+15). I created this configuration to measure the space for the hundreds place in the view, so as not to cut the design, however use this function as you wish. In the Web/status/woestatus.php directory you will find: $now = new DateTime("now", new DateTimeZone("America/Sao_Paulo")); Set your Time Zone, find yours in Time Zone PHP, currently it is set to São Paulo-Brazil time Days configuration $allowedDays = [0, 2, 4]; // 0-Sunday, 2-Tuesday, 4-Thursday, In $allowedDays = [0, 2, 4]; - It means that WoE is enabled for 0 = Sunday, 2 = Tuesday, 4 = Thursday "0=Sunday, 1=Monday, 2=Tuesday, 3=Wednesday, 4=Thursday, 5=Friday, 6=Saturday" Hours configuration if (($day == 4 && $hour == 21 && $minute >= 0 && $minute < 60) || (in_array($day, [0, 2]) && $hour == 20 && $minute >= 0 && $minute < 60)) In (($day == 4 && $hour == 21 && $minute >= 0 && $minute < 60) - It means that on day 4 (Thursday) WoE will start at 9:00 pm and will last 60 minutes. And if you have WoE configured for different times, you can configure it without any problem; In (in_array($day, [0, 2]) && $hour == 20 && $minute >= 0 && $minute < 60) - It means that on days 0 (Sunday) and 2 (Tuesday) WoE will start at 8:00 pm and will last 60 minutes. Don't forget to if you liked this. ----------------------------------------------------------------------------------------------------------------------------- Sobre este arquivo PT-BR Feito para um amigo que acabou não utilizando, então estou disponibilizando para comunidade. Esta Skin tem recursos de Status WoE (On/Off), Status Server (On/Off), Contagem de Players reais + fake. Por Favor Venda deste produto está TOTALMENTE PROIBIDA! Conteúdo Thor Patcher PSD Incluso - Modifique como quiser. WebFiles Visualização - Players Online, Status Map Server, WoE Status - HanzoBR WebFiles Configuração - Conexão com servidor, Server Status e Players Online - Crédito @Lawliet - Obrigado pro isso Configuração Web No diretório Web/status/inc/config.php faça a configuração: $Srv_Host = "127.0.0.1"; // Alterar para IP do seu database $Srv_Database = "ragnarok"; // Nome da sua database $Srv_Username = "ragnarok"; // Usuário de acesso $Srv_Password = "ragnarok"; // Senha de acesso No diretório Web/status/playeronline.php você encontrará: $playerCount = PlayerCount(); $numero = 0; // número de usuários fake - utilizado apenas para configuração de espaço para casa de centena na visualização ou não. // Soma o $número ao resultado da função PlayerCount() $resultado = $playerCount + $numero; Em $numero = 0; você pode alterar o valor para 50 por exemplo e irá aparecer para o usuário o $numero + $playerCount Supondo que você tenha 15 players reais online o $resultado irá mostrar 65 Players Online (50+15), eu criei esta configuração para medir o espaço da casa de centena na visualização, para não cortar o design, no entanto use como quiser esta função. No diretório Web/status/woestatus.php você encontrará: $now = new DateTime("now", new DateTimeZone("America/Sao_Paulo")); Configure seu Time Zone, encontre o seu em Time Zone PHP, atualmente está configurado para horário de São Paulo-Brasil Configuração de dias $allowedDays = [0, 2, 4]; // 0-Domingo, 2-Terça-feira, 4-Quinta-feira, Em $allowedDays = [0, 2, 4]; - Significa que a WoE está habilitada para 0 = Domingo, 2 = Terça-Feira, 4 = Quinta-Feira "0=Domingo, 1=Segunda-Feira, 2=Terça-feira, 3=Quarta-Feira, 4=Quinta-feira, 5=Sexta-Feira, 6=Sábado" Configuração de horas if (($day == 4 && $hour == 21 && $minute >= 0 && $minute < 60) || (in_array($day, [0, 2]) && $hour == 20 && $minute >= 0 && $minute < 60)) Em (($day == 4 && $hour == 21 && $minute >= 0 && $minute < 60) - Significa que no dia 4 (Quinta-Feira) a WoE começará às 21:00hrs e terá duração de 60 minutos. E caso você tenha WoE configurada em horários diferentes, poderá configurar sem problema; Em (in_array($day, [0, 2]) && $hour == 20 && $minute >= 0 && $minute < 60) - Significa que nos dias 0 (Domingo) e 2 (Terça-Feira) a WoE comecará às 20:00hrs e terá duração de 60 minutos. Não se esqueça de se você gostou disso. Submitter hanzobr Submitted 03/05/25 Category Patchers Video Content Author HanzoBR  
    1 point
  38. Finally, I somehow find this root cause: You need to check your grf files (in order defined in DATA.INI), and usually, it will appears in below path: `data > luafiles514 > lua files > datainfo > titletable.lub` Bonus: CLS = Custom Lua Support
    1 point
  39. Version 1.0.0

    189 downloads

    If your Rental Item has a card compounded it will automatically mail you the card after the expiration. Thanks to RDL.
    Free
    1 point
  40. Version 1.0.0

    282 downloads

    //= Initiates a "Last Hit" event for players //= Only accessible by GMs with level 99 //= Spawns different bosses for each round //= Three rounds of escalating difficulty //= Rewards the player who lands the final blow //= Announces event stages and boss spawns server-wide //= Customizable boss monsters and rewards //= @lasthit command to teleport to the event location
    Free
    1 point
  41. script - script RateSelect -1,{ OnPCLoginEvent: switch (individual_rate) { case 1: .@exp_rate_multiplier = 100; .@jexp_rate_multiplier = 100; set .@rate_description$, "x1 (Low Rate)"; break; case 2: .@exp_rate_multiplier = 2500; .@jexp_rate_multiplier = 2500; set .@rate_description$, "x25 (Mid Rate)"; break; case 3: .@exp_rate_multiplier = 5000; .@jexp_rate_multiplier = 5000; set .@rate_description$, "x50 (High Rate)"; break; case 4: .@exp_rate_multiplier = 10000; .@jexp_rate_multiplier = 10000; set .@rate_description$, "x100 (Super High Rate)"; break; default: mes "[Rate Selector]"; mes "Select your preferred server rate for this character."; mes "BE CAREFUL: YOU CAN'T CHANGE IT AFTERWARD!"; individual_rate = select("Low Rate:Mid Rate:High Rate:Super High Rate"); close2; goto OnPCLoginEvent; // Return to case evaluation after selection } // Save the multipliers to the player variables set #exp_rate_multiplier, .@exp_rate_multiplier; set #jexp_rate_multiplier, .@jexp_rate_multiplier; fakeIcon(getcharid(0),2002,0,1); dispbottom "You have chosen the " + .@rate_description$ + " for your character."; end; OnNPCKillEvent: // Retrieve the stored multipliers .@exp_rate_multiplier = #exp_rate_multiplier; .@jexp_rate_multiplier = #jexp_rate_multiplier; .@base_exp = getmonsterinfo(killedrid, MOB_BASEEXP) * .@exp_rate_multiplier; .@job_exp = getmonsterinfo(killedrid, MOB_JOBEXP) * .@jexp_rate_multiplier; // Debug messages to track values dispbottom "[Debug] Base EXP: " + .@base_exp; dispbottom "[Debug] Job EXP: " + .@job_exp; if (.@base_exp > 0 || .@job_exp > 0) { // Use getcharid(0) to specify the character ID getexp2(.@base_exp, .@job_exp); } else { dispbottom "[Error] Experience values are zero."; } end; } stateiconinfo.lub StateIconList[EFST_IDs.EFST_RATE_UP] = { haveTimeLimit = 1, posTimeLimitStr = 2, descript = { { "RATE UP", COLOR_TITLE_BUFF }, { "%s", COLOR_TIME }, { "Increases your Bonus EXP and Job Exp" }, { "x1 / x25 / x50 / x100" }, { "Grants players different rewards" }, { "depending on what they choose." } } } efstids.lub EFST_VIPSTATE1 = 2000, EFST_VIPSTATE2 = 2001, EFST_RATE_UP = 2002, __newindex = function() error("unknown state") end } setmetatable(EFST_IDs, EFST_IDs) stateiconimginfo.lub -- Other official effects [EFST_IDs.EFST_VIPSTATE1] = "SI_VIP.tga", [EFST_IDs.EFST_VIPSTATE2] = "SI_VIP2.tga", [EFST_IDs.EFST_RATE_UP] = "RATE_UP.tga", [EFST_IDs.EFST_YGGDRASIL_BLESS] = "vitata500.tga", [EFST_IDs.EFST_PERIOD_RECEIVEITEM_2ND] = "ITEM_G.tga", [EFST_IDs.EFST_PERIOD_PLUSEXP_2ND] = "EXP_G.tga" } } status.hpp /// @APIHOOK_END /// Do not modify code above this, since it will be automatically generated by the API again EFST_VIPSTATE1 = 2000, EFST_VIPSTATE2 = 2001, EFST_RATE_UP = 2002, EFST_MAX, script_constants.hpp /// @APIHOOK_END /// Do not modify code above this, since it will be automatically generated by the API again export_constant(EFST_VIPSTATE1); export_constant(EFST_VIPSTATE2); export_constant(EFST_RATE_UP); export_constant(EFST_MAX); Install fakeicon: https://rathena.org/board/files/file/4034-fake-icon-stats/ RATE_UP.tga RATE_UP.tga
    1 point
  42. Arsinoé : Aerie's Tears EDIT : All scripts and wiki can be found here : https://github.com/dastgir/aerie-pinkpanther DL : https://code.google.com/archive/p/aerie-pinkpanther/downloads?page=1 Description : This is a kind of Stand-Alone, a new continent, independant of the rest of Rune-Midgard (except for the access quest at Alberta). So no conflict with your own modifications. The aim is to increase the quest's interest in Ragnarök, by instancied quests, animated NPC, a true scenario, exploration of new horizons ... Created for a party of 4-5 players, you can't do it alone, it's more like a basic RPG. The Continent of Arsinoé is a single scenario with various quests. You have Four independant campaigns : The Goblin King, UnderWorld, Sidon and The Rana's Empire where you are leading an army in a succession of instances in differents battlefields. See also the second mod compatible with Arsinoé one : Schallmar Islands Contains : - 120+ Maps - 140+ Monsters - 75+ Items - 65+ Quests English Version : A new translation in English by Mirabell and TrueNoir ! Spanish Version : Yatadaid, Racing~, darknessx, Ijct, GMKira, Destiny and Celsius ! Players now you can change directly IG your language (French / English / Spanish), Data files must be gives by Administrators. Administrators choose the main language for announces, you can choose to display one or more languages. (Check Configuration.txt) All services are earned with your quest's level, like : - Savepoints (long trip before found a place for rest) - Teleportation (You need to unlock the map before and by a quest of course) - Healer (Donations to the Church for increase the % of rest) - Train's Stations (For cross quickly a part of the continent) - Shops (A big compagny hold all the commerce, if you help them, they'll give you more interesting supplies) - In other regions, you can found Boatmen. - An Arena system (Look to the screenshots), with different modes of game for won prices. - Integrated Mini-Games in quest. - Snow, Desert, Forest, Swamp Jungle, Volcano, Town, UnderWorld, different types of environnement - 10 Titles, With your name in a Hall of Fame ! - A New Kind of WoE, a mix between GvG and PvE. - Questlog system and also emoticons for help you in your adventure ! - An Introduction for your server who takes place in Arsinoé - Fishing system - A Marathon - Many others games, accessible without quest requierement. Guide : The Guide is done, you can report here : http://code.google.com/p/aerie-pinkpanther/wiki/Sommaire?wl=en Now it's avaible in the svn, you can found here images for put in your website the Guide : Arsinoé Guide - Images Pack v.1.00 Configuration : - Easy system for configurate rewards, for adapting them to your server. (check npc/arsinoe/Configuration.txt) and minimum requiered players in Arena and Instances. - You can choose between local or global annunce when an Instance began. - Easy to install, no source modifications, all explications for install in script archive. - You need a client with the episode 14 (some textures and models used) - For using Introduction just change char_athena.conf by [start_point: ars_fild41,30,54]. The Continent : Map by Elandor. Download : - Scripts files : Here the SVN for scripts : https://github.com/dastgir/aerie-pinkpanther - Maps files : Download(Current version 2.00) For get the last upgrade without download the full archive, use this patch list : Download (only for Map Pack version more than 1.50). You'll recieve separate upgrades in *.gpf format. - BGM files : Download (Current version 1.40) Changelog : //================= //Maps //================= v. 1.00 = Public version v. 1.10 = - ars_fild04 (gat revision) - ars_dun13 / ars_dun14 / ars_dun15 (add map) - ars_in02 (New Zone) - ars_fild22 (gat revision) v. 1.20 = - Fix cliping effect v. 1.30 = - Lightmaps fix for all maps / New Mini-maps - Add ars_dun16 / ars_in08 v. 1.40 = - Add Soulavein's War, Hylarheim and UnderWorld Extension. (+15 maps) v. 1.45 = - Add Introduction maps (+5 maps) v. 1.50 = - Add Sidon, Kargah extension maps (+15 maps) - Add Alberta Modification - Modification of : ars_fild02 / ars_fild03 / ars_fild17 / ars_fild33 / ars_fild36 v. 1.55 = - ars_fild01 / ars_fild04 / coppa / tantale_ile = complete revision v. 1.56 = - ars_fild05 / ars_fild06 / ars_in01 = complete revision - Add ars_dun31 v. 1.57 = - Add quest illustrations and icons - Reduction of mini-maps size v. 1.60 = - ars_in02 / ars_fild51 = revision - Add Neraka maps extension : (+15 maps) v. 1.65 = - ars_fild01 / ars_fild02 / ars_fild03 = fix freezing effects - Add ars_fild56 / ars_fild57 = Gondar extension - ars_dun25 / ars_fild09 / ars_fild23 = complete revision - Water texture change on many maps - Missing minimaps added v. 1.66 = - ars_dun01 / ars_dun02 / ars_fild16 / ars_fild20 / ars_in08 / ars_in10 = complete revision - new models / textures (some from Arcturus) v. 2.00 = - Add ars_fild58 / ars_fild59 / ars_fild60 / ars_fild61 / ars_fild62 / ars_in15 / ars_in16 / ars_in17 / ars_dun40 - ars_fild07 / ars_fild08 / ars_in10 / ars_dun30 = complete revision - new models / textures (some from Arcturus) //================= //BGM //================= v. 1.00 = Public version v. 1.10 = Add Introduction BGM v. 1.20 = Add Sidon and Kargah BGM v. 1.30 = Add Neraka BGM (and some fix) v. 1.40 = Add Abysses BGM (and some fix) How configure the multi-language ? If you have use a previous version, they're compatible but take care all will be in french, you must talk to a Tyr Order member and choose your main language. No problems if the introduction is installed. ~ I hope you'll appreciate my work ! ~ Screenshoots :
    1 point
  43. Another small update, but no less time-consuming. I got my hands on the GRF file with the information from the beta, and I was able to harvest the last removed map, etc_cave01. This map did not initially load properly as its textures are looking at some nonexistent location, but hex editing the GND file easily allowed these to be replaced. It seems to use the same textures as Dungeon001, so I've added it to the game as another floor to that dungeon. There's a few new enemies here, like Papare and that Black Bat enemy. I found a new item I wanted the black bat to drop, the Black Devil Mask. It's a neat-looking mask that covers one eye. However, there's a big problem with it! If you turn in certain directions, the eye that it covers changes! This looks super stupid and I wasn't willing to put it in the game like that. So, because I'm way too picky about stuff like this, I decided to see if I could fix the sprite myself. There's a pretty good tool that can be used to do this called Act Editor which I used a little bit before for editing enemy sprites. A naive person (ie, me before I did this) would probably think that because the character can be displayed from 8 directions, this will only require 2 new sprites (only 2 directions are messed up). Oh no. The game manually specifies the position of the headgear for every possible animation frame the character can have. I'm sure there's probably some automatic way to update this but I didn't find it, I just did them all manually by calculating how much the sprite moved each frame. There are also different sprites for male and female characters since they have different animations. This took a while. Since I was already spending my whole evening on this, I decided to see if I could fix the Kitty Band as well, which has a strange issue where the inside of the ear always faces outward regardless of which direction you face, causing people on my server to joke about it being the worst headgear in the game. This was comparatively much easier because I didn't have to reposition anything, I just had to add some new sprites and then swap out the sprite index in the animations. Interestingly, the male act file for the Kitty band already specifies a back sprite, it's just identical to the front sprite, but the female act file does not. Did two different people work on these? At any rate, here's what they look like once they're fixed. Should you want these sprite edits for your own server, I've attached a GRF file that contains the updates. You'll probably just want to merge this into one of your grf files, since it's very small. headgearfix.grf
    1 point
  44. Version 1.2.0

    636 downloads

    Good day! I've been an observer since the beginning of time and I want to share this script hoping that it will help fellow human beings who need it. This was a paid script of mine and I hired @sader1992 to help me finish it in 2020. I'm hoping someone will improve the code in the near future with other stuff to give another flavor for Endless Tower. This works with the latest version of rAthena. Requirement: Y'all need this patch for +damage to work setunitdata script command monster stat recaulculation fixes #3968 About the script: It is simply Endless Tower with Easy, Veteran, Nightmare, Hell & Torment Difficulties. You can edit the values I pre-assigned: This part is for the difficulty settings and adding stats to the monsters: This part is for the rewards: It gives #INSTANCEPOINTS and EXP depending on the difficulty you're on. I assigned a monster (1613 : metalling) to show us that the stats boost really works: PS: I'm also integrating this to other instances. Maybe I'll post it if people requests it.
    Free
    1 point
  45. Version 1.0.1

    491 downloads

    Sunken Tower instance with infinite floors. The mob scaling is using custom values as I don't know how it is in kRO. Currently, the additional exp scaling and mob ATK scaling does not work without changing the source code. I will not be providing support for that.
    Free
    1 point
  46. you may change the default value of your SQL table. ...datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
    1 point
  47. 585 downloads

    just wanna share mob database I made based on Einbech Dungeon 3 - NovaRO: Wiki (novaragnarok.com) Mobskill is not official. video is attached, in .rrf extension file. einbech dun 03.rrf
    Free
    1 point
  48. Version 1.20

    393 downloads

    In this File: - folder with Malaya monsters act files with sound effects. (finally). - folder with Other monsters fix, this contains fixed acts for 30 monsters, Did you know that doppelganger screams when dying? have you ever heard it? I think not. Well here you have it, did i said 30 monsters with corrected sound? Have you ever heard zealotus actions? - Fixed Osiris idle snapping frame act. Bonus: folder with female lord knight class act frame with sounds, weapon attack spear and two handed sword. Please read the readme file, do not reupload this fix in other sites beside this.
    Free
    1 point
  49. Version 1.0.0

    367 downloads

    You need at lest rAthena 10e7035bebdbc2ec25a392ee2cf14172ecf169e5 or above! (for old rAthena you should add the pr manually!) SCRIPT HEADER (INFO) //===== rAthena Script ======================================= //= getgpmapunits command //= getipmapunits command //===== By: ================================================== //= Sader1992 //= Free!! // https://rathena.org/board/profile/30766-sader1992/ //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena Project // https://github.com/sader1992/sader_scripts //===== Description: ========================================= // getgpmapunits("map"); return the number of players with the same GePard id in the given map. (You must have GePard to work!) // getipmapunits("map"); return the number of players with the same IP in the given map. //============================================================ //==== please report any error you find //============================================================ //============================================================ you should add the functions to your rAthena/npc/other/Global_Functions.txt to work (add it in that file where ever you like, no need for guide for that ?!) Examples: scenario ? > you want a Warper NPC (or maybe event NPC) that allow only one player per IP in the map ? //============================================== //NPC EXAMPLE FOR IP FUNCTION //============================================== prontera,152,183,5 script Warper IP Test 446,{ if(getipmapunits("prontera") > 0){ mes "you already have a char inside this map"; }else{ warp "prontera",152,183; } end; } //============================================== Same as above but per GePard ID not IP //============================================== //NPC EXAMPLE FOR GEPARD FUNCTION //============================================== prontera,155,183,5 script Warper GePard Test 446,{ if(getipmapunits("prontera") > 0){ mes "you already have a char inside this map"; }else{ warp "prontera",155,183; } end; } //============================================== BONUS Test: pvp warper prontera,158,183,5 script PVP Warper IP Test 446,{ mes "would you like to teleport to the pvp map?"; if(select("yes:no") == 2) close; if(getipmapunits("pvp_n_1-1") > 0){ mes "there is another character with the same ip inside the map!"; mes "only 1 character per IP allowed in this map!"; }else{ warp "pvp_n_1-1",0,0; } end; }
    Free
    1 point
  50. First of all put the .spr and .act in data/sprite/npc/ Then go to lua files/datainfo/jobname.lua Let's consider you have for example f_npcname.spr and .act Then at the end add: [jobtbl.JT_f_npcname] = "f_npcname", Then open lua files/datainfo/npcidentity.lua and add at the end: ["JT_f_npcname"] = 658, Why 658? Well there's a gap between 658 and 699 so that way you wont need to replace another npc with your custom one. But still, the ID is up to you, wether you want to replace another one or not, it's fine as long as the ID doesn't go over 999. And that's all, if you've done all that then #658 will be your new npc.
    1 point
×
×
  • Create New...