Leaderboard
Popular Content
Showing content with the highest reputation since 04/23/25 in all areas
-
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
-
Version 1.0.8
95 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.Free13 points -
Version 1.8.9.7
56503 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.Free7 points -
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.zip6 points
-
5 points
-
4 points
-
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
-
4 points
-
4 points
-
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
-
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.csv3 points
-
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
-
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.zip3 points
-
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
-
2 points
-
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 amm0nition2 points
-
2 points
-
2 points
-
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: GitHub2 points
-
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
-
2 points
-
2 points
-
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 me2 points
-
2 points
-
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 now2 points
-
Summary A flexiable job change script that is heavily inspired by the job system of final fantasy 14. This script allows the creation of diffrerent job templet, and allows player to freely change their job . Player can swap the following data based on the templet: Job Status Base level/Job level Skill tree (the script will remember which skill is allocated and what lvl it is) Unspent points The script menu There are three main function of the script. Change Class: Use this to swap to different class templet. It will not saved the current job info before swaping, if the player does not save their current job first, they might lost their skill, level, status, .etc. Store current class Use this to saved the current job. Every job can only have one templet (Each job_id can only have one entry in the db). If the current job level/base level is lower than the stored one, the system will give a warning and asks the user if they wish to overwrite. Change to novice Change the player into a 1/1 novice with Give the player the ability to muti class by making them novice, so they can choos other class The system will also grant a 24h 300% exp buff to the player, to help them level up faster (this can be changed if you don't want it) Download https://github.com/Someguy324/JobStone Importance The download file only contains the function it self, if you want to use it, you need to implement it youself (Adding it to a npc, or a item). This is my first script, and it is mainly used by mysel on a local server. I do not guarantee it will be bug free, or have great security. Additionaly, the way I implement skill tree storage is really junky ( every templets have their skill tree stored as individual entry in the db, EVERY ALLOCATED SKILL IS A ENTRY). So, PLEASE BE CAUTIOUS if you want to used it on a public server. You are welcom to modify my code in any way you want, I write some comment beside the code, so it might be easier understand how the code work. Please report any bug down below, I will take a look when I'm free jb_changer.txt2 points
-
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.1 point
-
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
-
Also can generate easily using https://x-files.amirazman.my/customfilegenerator/1 point
-
I tested it myself, and it seems that the transaction completes without any issues.1 point
-
1 point
-
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
-
Yes, I noticed the the small differences in the pc.cpp file as well So I recompiled the src after manually DIFFing from that blob by Jhonvaliense, and everything works fine now Everything is working as intended now after I DIFFed everything from Jhonvaliense's blob @Everyone For anyone recompiling in the future Please do not use the commit here: https://github.com/AoShinRO/brHades/commit/1396b012600db9b0688f3cd3fdb9ac273d525bd0#diff-16a6f317c581ce365a41a9846cf48dc45c8d6ac0256a7c45849e6e1b37100ecdR13025-R13037 Please use this one instead: https://github.com/Jhonvaliense/ROClient_en/blob/main/20231220%2B CLIENT bodystylefix.diff They are functionally almost the same commit. but there are small differences in the pc.cpp file as mentioned by dark elf Thank you dark elf and amm0nition1 point
-
pc.cpp +#if PACKETVER >= 20231220 + sd->status.body = job; +#else sd->status.body = 0; - clif_changelook(&sd->bl,LOOK_BODY2,0); +#endif + clif_changelook(&sd->bl,LOOK_BODY2,sd->status.body); Check this part!! It seems like everyone is talking about it but leaving out one important detail! https://github.com/Jhonvaliense/ROClient_en/blob/main/20231220%2B CLIENT bodystylefix.diff1 point
-
Npc value in import\castle_db.yml is mandatory. You can put any name. Map: job3_arch01 Name: Emperium Test Room Npc: Emperium Breaker Save the file and restart the map-server.1 point
-
1 point
-
1 point
-
I think it's about lua files, like attendance feature, must match server and lua. Or, needs to be in some iteminfo file, since there are a lot of duplicates. Cash shop banner: - data\luafiles514\lua files\datainfo\tb_cashshop_banner.lua1 point
-
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
-
Version 1.0.4
32 downloads
Discounted sales through my discord: maycrys Vendas com desconto através do meu discord: maycrys Link Demonstration: http://maycrys.neohost.tec.br/ Theme with support for ‘en_us’ and ‘pt_br’ languages. Responsive theme. News system on the homepage with categories. Ranking: showing images of each class. (Attention) Only images from classes 2-1 were added, if you want to add more images, follow the example in the configuration file 'SeuRo/config.php' Guild: displays only the occupied castles, with the Guild name and Emblem. The download file contains a manual with all the installation steps! PHP version used: 8.2.12 ----------------------------------------------------- Link para demonstração: http://maycrys.neohost.tec.br/ Tema, com suporte as linguagens 'en_us' e 'pt_br'. Tema responsivo. Sistema de noticias na pagina inicial, com categorias. Ranking: mostrando as imagens, de cada classe. (Atenção) Foi adicionado somente as imagens das classes 2-1, caso queira adicionar mais imagens siga o exemplo, no arquivo de configuração 'SeuRo/config.php' Guild: exibe somente os castelos ocupados, com nome da Guild e Emblema. Dentro do arquivo de download, contem um manual com todos os passo a passo de instalação! Versão do PHP utilizado: 8.2.1285.00 USD1 point -
Version 1.0.0
1586 downloads
A small mod that allows you to display a custom icon and a title referring to the element and element level of the mob. It can be disabled by changing it in monster.conf // Show Element Info [Hyroshima] // 0= Off, 1= On mob_ele_view: 1 I have an observation to inform, if any of the information related to show_mob_info is enabled the mod will behave as disabled. // Display some mob info next to their name? (add as needed) // (does not works on guardian or Emperium) // 1: Display mob HP (Hp/MaxHp format) // 2: Display mob HP (Percent of full life format) // 4: Display mob's level show_mob_info: 0 Obs: i am making 2 diff files available: _A = Closest to current revision. _B = A little older compared to the current review The video quality is not very good (sorry), watch the preview video in fullscreenFree1 point -
1 point
-
Hello people, I'm Katakuri. I'm on a part of learning deeply on spriting and I hoped you like it. ----------------------------------------------------------------------------------------------------------------------------- Various headgears, monster & weapons from different anime. ----------------------------------------------------------------------------------------------------------------------------- 2020 Update Equipment Set for each job/classes Seven Deadly Sins - Sacred Treasure Weapons Monsters Vermilion Bird Suzaku Midgard's Bane Grordag the Twin Head Wounded Dragon Giant Rat - with Recolors Tailed Cape Squid Game Hoodie Attack on Titan - Faction Capes Elemental Garments Demon Slayers FREE RELEASE Owl Mask Link Chubby Meow Link Randoseru / School Bag (Japanese) Link Notes: 1. Sprites came from different game resources which I reworked to make it ROish looks. 2. I won't teach where to find raw image references of it. 3. I will always update this topic as I accomplished something new. 4. I'm newbie regards this matter but I always helping myself to get better. 4. Feel free to comment thanks. 5. If you want to contact me here's my discord. Katakuri#4880 For more works of mine kindly join us on our discord channel! Link: Click me for Discord Link!1 point
-
1 point
-
1 point
-
Version 1.2.5
13358 downloads
Heya, This tool is an action file editor, it edits Act and Spr files. You will find similarities with ActOR in its design, but it should be much more enjoyable to edit animations ;]. Special thanks to Nebraskka for testing this software in its early days. All the suggestions and feedbacks made this software much better. 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/file/uoymx2vni249mlu Install the application with Act 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 The software has many, many features available. It would take too long to describe each one of them, so I've only focussed on the more impotant ones. You can undo and redo everything, scripts included. You can edit and add sounds easily. Powerful and easy to use palette editor. Sprite types have been abstracted - you don't have to worry or care about that. Animation speed can be changed easily. Most components have a drag and drop feature. Advanced scripting engine (C# language). The scripts can also be used to customize the software menus. Error checking when saving the act/spr to avoid invalid files. The sprite version will be automatically downgraded if RLE compression is not available. Frame interpolation (inbetweening/tweening) is possible via the Animation menu. Prompts you with an image converter dialog if the added image is invalid. Allows advanced edition for actions and frames via their respective menus. You can load files from GRFs directly (and save in the GRFs directly as well). Technical stuff Requires .Net Framework 3.5 (SP1) Client Profile to run (3.5 or more will work as well). When prompted with an error, use the "Copy exception" button to copy the debugging info. I will need this to fix the issue you're encountering. The editor's primary window The interface is really straightforward and similar to ActOR. I'll only focus on new elements! Rendering mode : This option changes the behavior of how layers are rendered. If you use 'Editor', you'll clearly see all the pixels when zooming in. If you use 'Ingame', it will use a linear scaling instead, which is closer to what the client does. References : These allow you to know where your item will be positionned (the yellow marker is the anchor, see below). Color mask : To edit the color of a layer, simply click on the color rectangle. You can also drag and drop the colors between different layers to quickly modify many of them. Common shortcuts : You can manipulate layers by using common shortcuts. More can be found from the Edit menu. These below are only the primary ones. Ctrl-A : Select all layers. Ctrl-C : Copy the selected layers. Ctrl-V : Paste the copied layers. Ctrl-X : Cut the selected layers. Alt-C : Copy current action. Alt-V : Paste current action. Advanced action and frame editions These expose all the available methods of the editor. You can remove a range of frames or copy a frame 10 times very quickly and easily. This dialog is found in Action/Frame > Advanced edit... Anchors You can edit anchors from the editor directly. Anchors are points that connect frames together, from different act files. Here's an example without and with anchors : This is mostly useful when you're using reference sprites (on the right panel). Clicking on the anchor button will let you choose where to attach the sprite (this is set semi-automatically for you though). You can edit those from the Anchors menu, but it is recommended to start from a pre-existing act to avoid doing this tedious process. Palette editor The palette editor allows you to quickly recolor sprites with an intuitive interface. Only indexed images can be edited (it's a palette editor after all) and three modes are available. The gradient mode changes an existing gradient to another color while keeping the original saturation and brightness of the colors - this makes the gradients blend in better. If there are no gradient (usually because it's a custom sprite), there's always the Adjust color mode. This one changes all color from a specified range to another one (Photoshop has a similar feature, which does work better). You can click on the image (on the left) to automatically select the palette indexes. These will be highlighted for a few seconds to show you what you're about to edit. Interpolation (tweening) This script can be accessed via Animation > Interpolate frames. This process fills the images between two frames by detecting the changes applied to the layers. Here's a simple example of how it can be used : Script engine The script engine can be accessed via Scripts > Script Runner. This is a big feature of Act Editor, it allows you to automate all your work with the act and much more. Click on the Help button for guides and available methods (don't hesitate to try out a script; if an error occurs the act will be reversed to its previous state). The documentation doesn't cover all of the available options and methods for obvious reasons (the .net framework is huge). Doc example : The language used by the script engine is C#. If you're not familiar with it, simply check out the script samples (Scripts > Open scripts folder)! I won't go into details here, questions can be asked in the support thread regarding addiotional features and methods. If you believe your script should be added in the program, send it to me and I'll probably add it. Customizable The settings dialog allows you to modify all colors in the editor easily. You'll also find the sound resources (GRFs and folders) that can be set up in the Sound tab. The Shell integration tab can associate the .act files with the software to edit them more easily. Don't hesitate to give me a feedbacks or suggestions!Free1 point -
now I got this monster failed no monster ID Did I do something wrong from the step by step i have made? EDIT: I got progress i have summoned it but I cannot kill it and the sprite of my custom is just poring I can also search it using @mobinfo 6500 Change ID to 6500 and 6501 Increase the max_mob to 10000 EDIT: i got it working now. I just play around the monster ID checking Monster_last on npcidentity change from 6500 to 3625 i got 3 working custom mobs now. thanks for all those who help.1 point
-
What's the point of having another private server when there are hundreds of them out there!!!!!!!!!!!!!!1111 Yes, more choice is better1 point