Leaderboard
Popular Content
Showing content with the highest reputation on 03/09/22 in all areas
-
Happy Thanksgiving everyone. Since I couldn't get the turkey, I thought I would bring this instead. Without further ado, Let me introduce... WARP (Windows Application Revamp Package) Why this name? Because I like using acronyms and this name sounded apt. Plus it's the function & features that matter more. And no, I am not gonna change the name. Why not just fix up NEMO? The codebase for NEMO is pretty much ancient at this point. So rather than fixing it up, I decided to go the route of creating it fresh from scratch. The end result is a far superior product. OK, but what if you end up AFRO (Away From RO)again? Well, I can't promise that I will be around forever. However, this time around, I am releasing the source code for the tool as well. So, exactly what has changed? Well, quite a few things. Let's start off with how the GUI looks now. As you can see, the GUI is much more modern and aesthetically pleasing thanks to @Haziel & @Hadrias . The package comes with 3 tools - Console version (for simple patching), Main GUI, and Tester GUI (for batch testing). A big salute to @4144 for keeping NEMO alive while I was AFRO ?. Ok, jokes aside, I discussed with him about the changes he made and I have incorporated almost all of them but with some differences. Language & Styles are now on the bottom as you can see. All the remaining menus have now been shifted to drawers (moving side panels). To reveal them you can either swipe from the respective edge or click the button at the top. The right side drawer houses all the Extensions (Used to be called 'Addons' in NEMO). They are now loaded independently of the client. This avoids unnecessary redefinitions and now you can also use Extensions for activities that don't need a loaded client. All the common functions have been added to the 'Quick Actions' group and all the remaining ones are in the left drawer, which is not many. If you have suggestions for more features let me know. Moving on to the Back end (This is of no use to the regular user. So you can skip this part if you want) It was high time for us to have a proper input file format. Enter YAML. Love it or hate it but it's here to stay. Frankly, I like it more than libconfig and INI. You would be seeing YAML being used for almost every file in WARP. This includes input files for Patches & Extensions, Files defining those two, Session files, etc. Writing patches is far more flexible now. Say goodbye to PTYPE_HEX and \xAB. Now we can do wild card searches with the actual wild cards inside hex codes. Of course, we still need to have some well-defined characters for that. Currently, we have 2 forms of wildcards - Nibble wise - For e.g. => A? , ?? , ?3 Bit wise - For e.g. => [1.0...01] If you have any suggestions about it let me know. Speaking of writing hex code, I have provided functions looking almost identical to Assembly instructions for generating their equivalent hex code. This helps in making the hex code more human-readable and adds a little more flexibility. User inputs have a few more types and little more flexibility in specifying constraints now. Scripts have proper segregation now. Please follow them when adding your own. Only the scripts inside the 'Init' folder gets reloaded each time the client is loaded. This avoids unnecessary reloads. exe has now become 'Exe'. But in addition to this, you get 2 more objects - System (for filesystem activities) & Warp (whatever is outside the scope of the other two) Many of the functions used for retrieving some constant information in the 'Exe' have become properties now. For e.g. PEoffset, ImageBase, BuildDate, etc. During patching, the Diff section is only added if you have inserted any code using one of the 'Add' functions. Also, the Diff section now grows dynamically as per requirement (in increments of Section Alignment of course). In addition to the Patched Exe, The tool also generates an (Extra Patch Info) file with the suffix '.epi'. It holds just enough info for the tool to recognize existing patches in an exe from a previous patch session. So how is it useful? Let's say you have a patched client and its EPI file. But you don't have the original anymore. Now you can remove 1 or 2 patches and keep the rest OR even restore the original from the patched exe. Last, but not least, I am providing documentation about everything including the API. But bear with me for a bit, as I am still working on the documentation part. I probably forgot more points to add here, but I think this pretty much covers the important stuff. Anyways you can read in detail at the Wiki Is it ready to be used now? The tool is definitely ready. I have added most of the patches but not all just yet. But I was not able to test all the patches in-game. So please don't attack me if something failed. I would appreciate a Bug Request in Github instead. You can also come to Discord as well, if you prefer that. Also note, that some patches are still failing for new clients, and some failing for old ones. However, I saw the same behavior in NEMO, so that would be part of the next stage of operations - Updating Patch scripts. So, where do I get it from? https://github.com/Neo-Mind/WARP How to use it? There is a User Guide in the git repo (best viewed from Github itself). Everyone is used to NEMO by now, so it shouldn't be difficult to use this even without the guide. Plus the Github wiki is pretty detailed. Any last words before we close this? Just like in the case of NEMO, my intention with WARP is to create a common tool for patching without being restricted to RO or which OS you use it in. For this reason, you will be seeing multiple branches in the Git repo. If you are planning to use WARP for patching some other application, Create a branch using the 'win32' branch as a starting point That's about it from me for now.1 point
-
Many people have been asking me how I got my server, or theirs, working online using AndRO apk. Firstly, download AndRO's latest APK here.: http://roworkshop.com/andro/main/index.html This guide works for v260 , v288 & v323 Next, take all necessary files for running a server. These are the files from a fresh kRO, or in most cases a "Lite" version of a server. (In this example I used my Lite server files.) Below is a compiled folder of the files you need. Modify the clientinfo.xml to contain your information, add your client.exe, add your patcher, & your server grf. https://www.mediafire.com/file/hc1h491a0v4eux7/Lite+Files.zip/file Then, I zipped everything into a RAR file. Downloading that onto my mobile device, in the Downloads folder. (Create new folder for version 288 and above) Using almost any RAR extractor tool from Google Play Store you can extract all the files into your Downloads folder. Once completed you will then run your AndRO application. (NOTE: This will not create a custom icon for your server. To do that you need to buy the APK version of your server from AndRO Workshop.) https://play.google.com/store/apps/details?id=com.rarlab.rar&hl=en_CA clieninfo.xml Now you might have some questions about the clientinfo.xml that you'll need to put into your main GRF. Below is an example of what mine looks like. This allows my server to read everything in plain English and not Acsii. Common errors: Unable to Find Resource values : Fixed by re-selecting the directory. If this fails, your clientinfo may not be there or it can't read your GRF; this is common with incorrectly encrypted GRFs. V260 Crashes after selecting server directory, with no error : Fixed by disabling Gepard. If you have Gepard and want to keep it active you will need the paid version mentioned above. V260 Item Descriptions not in Enlgish : Fixed by changing clientinfo.xml to read data folder first and selecting it to read itemInfo.lua files. V260 Application will not read Downloads folder : Fixed by giving AndRO application Storage permissions. V260 Fatal Error: java.net.UnknownHostException: Unable to resolve host "host.name.here.net": No Address associated with hostname. : Fixed by closing App completely, reloading app, "change" directory, reselect Downloads folder and reopening the directory. sounds annoying, because it is, but it works! V260 data/sprite/인간족/머리통/여/2073_여.spr : Fixed by adjusting your Packet version in the packet line of clientinfo.xml. V260 data/sprite/인간족/머리통/남/33_남.spr : Fixed by reseting look to default. Many pallets and hairstyles are not working. V260 File format error. Try to delete your client folder "/directory/". Failed to Parse LUA file: /data/user/0/com.rowork-shop.androlocalclientfiles/tmp.lub:30000 (or any other combination of numbers) unexpected symbol near 'symbol/text_error' : Fixed by scrolling to the specified line of your LUA/LUB and adjusting the improper values. V260 Failed to connect to resource server : Fixed by adding the patch directory to the clientinfo.xml / If your GRF is encrypted you will need to decrypt it. V260 Patch list error 1 at line 1 : Fixed by removing Patch and Website lines from your GRF. This is for those who don't use websites for their server. V260 Failed to connect to map server : Fixed by double checking the patch directory on the clientinfo.xml. It is important to have both patch directory lines in it to receive connections. V260 Fatal error Failed to load map: * : Fixed by either reselecting the Path in Settings and changing it, even if it's identical to what you have now; or by reinstalling the AndRO Freeware. V260 Failed to parse LUA: Only supporting v5.0, sorry : May have an older version that is not compatible with the latest AndRO. V260 Game crash without error/AndRO apk has stopped working : This can be because you are in @hide. Unhide to be able to load the game again. This can also be an issue with the version, I downloaded v288 and this issue resolved itself. V260 Attempt to invoke virtual method 'void . . 3.. (int, int)' on a null object reference : This error is still being investigated. It is believed to be the same error as the Game Crash/AndRO apk has stopped working. V288 More will be added and polished as I learn more. Thanks for reading thus far. If you need assistance compiling your mobile server let me know and I'll try my best to help.1 point
-
Puedes usar Hateffect (Obviamente debes investigarlo). Y si tu servidor tiene suficiente RAM podrías probar estas ideas: https://rathena.org/board/topic/84400-item-specialeffect-effect/ https://rathena.org/board/topic/65370-special-effects/ https://rathena.org/board/topic/69062-repeating-specialeffect-on-item-script/1 point
-
try this 31002,Bônus_Eletrônico,Bônus Eletrônico,2,10000,,2500,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc("F_PartyEarnCash"); },{},{} load this npc script function script F_PartyEarnCash { .@amount = rand(1, 100); #CASHPOINTS += .@amount; dispbottom "PowkRO: Você Ganhou "+F_InsertComma(.@amount)+" Rops."; .@party_id = getcharid(1); if (.@party_id) { .@owner_aid = getcharid(3); .@owner_cid = getcharid(0); getpartymember .@party_id, 2; .@partymembercount = $@partymembercount; for (.@i = 0; .@i < .@partymembercount; .@i++) { if ($@partymemberaid[.@i] == .@owner_aid) continue; if (attachrid($@partymemberaid[.@i])) { .@amount = rand(1, 50); #CASHPOINTS += .@amount; dispbottom "PowkRO: Você Ganhou "+F_InsertComma(.@amount)+" Rops."; dispbottom "PowkRO: '"+strcharinfo(0)+"' gained "+F_InsertComma(.@amount)+" Rops.", 0x00FF00, .@owner_cid; detachrid; } } } return; }1 point
-
Sup guys, long time no see ^^. I've been working on a DPS meter, inspired by Details! Addon from World of Warcraft. So how it works: - The party leader have the hability to start, reset, and stop an dps session of the party. - Members choose to see or not the meter once activated by the leader. - The meter shows only online members. But if no online members the session will close. - It uses a timer to upate, but that timer does not re-send info if there's no damage to update. (buffering the damage so it does not overload members and server with packet send) - Planning on sending a ' Session Stats' at the end of a Session where the player could save the wisper as txt. I'm still not sure if the amount of workload this would infere on the server. But i'm developing it with that in mind. I'm creating this Topic as a way of discusing ideas on the subject. Video Example:1 point
-
Version 1.0.0
1052 downloads
OnInit: // settings .char_bound = 1; // enable character bound rewards (1 = on || 0 = off) .account_bound = 1; // enable account bound rewards (1 = on || 0 = off) // set item (char bound) setarray .char_reward, 501, 502, 503; // item setarray .char_reward_amt, 1, 2, 4; // amount // set item (acc bound) setarray .acc_reward, 501, 502, 503; // item setarray .acc_reward_amt, 1, 2, 4; // amount Use and edit this to any ways you need. I just made another simple freebies npc.. This is in reponse to many new server owners who kept asking "how to make freebies account bound/char bound?" or such. I made it easier for them to choose whether to enable char/acc bound rewards or not. EnjoyFree1 point