Jump to content

Maple

Members
  • Content Count

    84
  • Joined

  • Last visited


Reputation Activity

  1. Like
    Maple reacted to Neo-Mind in WARP - A successor to NEMO   
    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. Anyway, the documentation would be pretty comprehensive.
      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.
      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.

     
  2. Upvote
    Maple got a reaction from akbare in [Showcase] Template FluxCP   
    I wanted to show you my beautiful FluxCP template 😍
    Just a pity that I ended up giving up opening my server. 😶
     

  3. Like
    Maple reacted to vykimo in XPRO : cross platform client   
    Thank you @Ridley !
     
    And a cool preview on my iPad (Ragnarok is working on iOS, finally guys!!)

  4. Upvote
    Maple reacted to Yoh Asakura in Daifuku - Graphics giveaway prize not given   
    Hello community,
    I'm here to say that I'm really disappointed with Daifuku.
    Between all the users that participated I was the one who won it, but I never got the prize. 
    Now here are the facts: Daifuku posted on May 2 the winner (me), but I got sick in May (yes, literally the whole month sick) and I only saw I won around day 24 of May. I then contacted him through Discord to claim the prize, he replied me he was on vacation and would be back around 22 of June. I waited till now and did not get the prize. I understand we all have personal issues, but I at least expected you to be kind and say that you'd give the prize anyways, which you did not.
    Now I'm really impressed to see that he actually DELETED the topic "Graphics Giveaway" of which he created. and by the way, on his last post on that topic he said that he would hold ANOTHER "Graphics giveaway" this month. Unbelievable...You do not deserve to be in this position of Graphic Moderator. Hercules deserves better than you, Daifuku.
     
    Screenshots:

  5. Like
    Maple reacted to raPalooza~ in High-Res DamageFont   
    View File High-Res DamageFont
    High-Res Damagefont
    Here is a new damage font i've cooked for you guys. Alot simpler than the other ones ive uploaded, wen't for a more minimalistic design.
    I've tried not to kill the pixelated vibe that we all love from the original one, but still improving its resolution. Was pretty happy with the result ;]

    Hope you all like it.
    CyA 
    Submitter raPalooza~ Submitted 11/19/18 Category Sprites & Palettes  
  6. Like
    Maple reacted to raPalooza~ in [Showcase] Custom mob HP bar   
    With the usage of HatEffects(.str files) and source editing I was able to create a new mob HP bar with a more modern look to it. ;] Even add different color and effects to MVP and Minibosses...
    Since it uses hateffect lua files i found some limitations regarding the ID(dunno if client locked)... wich is bad ;/ it also uses a huge amount of str effects since you need 1 for each hp stage... I did mine with 20 different bar %...
     
     
  7. Upvote
    Maple reacted to vykimo in Custom Unit HP Bar System   
    Cool idea. Unfortunately I think it has no better solution than 100 cutin image...
    An idea to optimize it is to pass all your images in a bmp compressor. And another idea is to delete 1 image every 2 images (or more) : you will divide required images per 2 but you'll loose precision. However, I think a 1% precision isn't required.
  8. Upvote
    Maple reacted to vykimo in XPRO : cross platform client   
    Renew UI : Storage
    Storage UI has been updated ! Now you're able to open mini windows, resize them, make a search (unlike official, my version is not case sensitive) and sort your storage by name (fall or rise).
    I tried to reproduce tricky behavior (escape key to close mini windows faster), resizing, save windows location etc... But some needs confirmation. For instance, what goes into Costume tab?.. even in my own client nothing goes inside. Maybe it's related to 'itemInfo.lua' with 'costume' field.

    Hope you like how it looks!

     
    NB: You can watch progress on page : https://vykimo.com/zerobrowser . And propose some features + give infos/tests.
  9. Upvote
    Maple reacted to vykimo in XPRO : cross platform client   
    I'm not sure if I'm right to post here, I hesitated a lot by fear of being reprimanded. But I'm convinced the project worths to be known and don't be lost in oblivion... So that's why I venture to post, so please forgive me if crowdfunding is not allowed. I try to be fair as much in this demarche.
    So, now let's explain the project :
    XPRO
    https://intro.vykimo.com/
    I. PRINCIPLE
    Based on the project RoBrowser by KeyWorld (a RO client on web browser). XPRO is the project to update RoBrowser and to bring it into Mobile devices.

    XPRO goal is to fully support this following exe version (latest version supported by rAthena): 2018-06-20aRagexe.

    This project is very huge and it's currently the most advanced custom RO client ever made. And it has the main advantage to be cross platform (Windows, Linux, MacOS, Android supported) and very lightweight (ressources can be downloaded only when needed by the game engine).
     
    II. MORE INFOS
    You can find more infos on progress on my personnal website : https://vykimo.com/ (menu : zerobrowser)
    Screen Example :

     
    Watch it live - Playthrough in Orc Dungeon :
     
     
    UPDATE 10/12/2019
    BETA TEST :
    I made 3 days of "real condition" tests with a team of 3 advanced players.

    It was successfull, feedbacks were great and they only reported a few bugs in order to play "normally" on a RO server. What a good step !
    In parallel, I talked with @Functor about possible Gepard Shield support in XPRO. But as you probably know, including Gepard Shield into Robrowser/AndRO opens a door in your server for bots. And we don't want to break his shield, so I'll work on my own encryption method. It'll be available later on...
     
    UPDATE 03/01/2020
    iOS version is out ! For the first time ever, you'll be able to play Ragnarok on iPhone and iPad !
     
    Infos will come asap, stay tuned  
  10. Upvote
    Maple reacted to Asheraf in kRO unpacked clients releases   
    Hello everyone, small announcement.. as of 2018-07-04aRagexeRE release the official client started using 4 bytes to process the item id, this mean we had to update every packet to increase this size, Thanks to the great work of @4144 you can check that out in #2126, please consider testing the pull request and reporting anything that you find broken .
     
    *This update apply (for now) to the RE type of clients ONLY.*
  11. Upvote
    Maple got a reaction from Functor in Nemo patcher   
    Tested! is working perfectly until the client most recent 2018-06-21a
  12. Upvote
    Maple reacted to Functor in Nemo patcher   
    @4144
    I fixed patch "CancelToLoginWindow". It works for 2017-12-13bRagexeRE+. You can add it to the fork. Thanks.
    https://mega.nz/#!QZthGIIA!GUj1HqgiinE3sMkRL7mGhC-RuMt4B3q6PPtrE5S0LJI
  13. Upvote
    Maple reacted to Habilis in [Event] Wheel of fortune   
    View File [Event] Wheel of fortune
    Wheel of fortune
    Fun event, this particular version is set to accept Zeny as a payment for gambling.
     
    Would like to thank a lot @Myriad for Improving my code!
     
    Package contains:
    data.zip data folder to put into your GRF file or straight into data folder.
    wheel_of_fortune.txt the script itself.
    WheelOfFortune.psd the Photoshop source file, you can edit the prizes pictures if you like. 
     
    This event can be configured to run automatically 
    OnClock0800: OnClock1200: OnClock1600: OnClock2000: OnClock2200: just change this part of the script,
    at what time you want the script to run.
     
    Or, a GM can start this event by running this command :
     
    @wheel_of_fortune start
     
    As a reference,
    This is a version of the script using event points as a payment (in case you would like to take a look)
    https://pastebin.com/wN6ZjxM0
     
    Submitter Habilis Submitted 06/14/18 Category Events & Games  
  14. Upvote
    Maple reacted to Habilis in [Event] Wheel of fortune   
    I've recently got a brilliant idea.
    Why not make my own version of a paid script, sold on rAthena
    and release it to Hercules for free!?

    (Not because I'm banned on rAthena )
     
    I need a peer review before releasing the whole package.
     
    @Myriad Did a nice Peer review of my terribel kode...
    If anyone else would like to contribute, feel free.
    Otherwise, it is soon to be released
     
     
    UPD : I reDrew the cutins, they don't look like stolen from rAthena

     

     
     
     
    1) configuration
    there are 2 arrays
        setarray .prize_id[1],-1,31024,31026,31008,31020,31017,31010,31016,0,31009;
        setarray .prize_qty[1],2,1,1,1,3,3,1,3,0,3;
     
    in prize_id
    if id is > 0, the prize is an item
    if id = 0 , the prize is NOTHING!
    if id = -1, the prizer is free spin (number of free spins set in qty array)
    in array  .prize_qty you setup the quantity won
     
     
    //===== Hercules Script ====================================== //= Wheel of Fortune //===== By =================================================== //= Habilis //= Edited by Myriad //===== Description ========================================== //= Wheel of fortune something. //============================================================ - script Wheel_of_Fortune FAKE_NPC ,{ OnInit: disablenpc("Wheel of Fortune#Main"); disablenpc("Hussein#WOF"); .EventName$ = "[Wheel Of Fortune]"; end; OnMinute39: OnStart: query_sql("DELETE FROM `acc_reg_num_db` WHERE `key`='#freewheelfortunespin';"); announce(sprintf("%s : The event will begin in 1 minute, near the center of Prontera.", .EventName$), bc_blue | bc_all); initnpctimer(); end; OnTimer60000: // 1 min enablenpc("Wheel of Fortune#Main"); enablenpc("Hussein#WOF"); announce(sprintf("%s : Come to Prontera and test your luck, everyone got some free spins!", .EventName$), bc_blue | bc_all); end; OnTimer1800000: // 30 mins announce(sprintf("%s : One more minute, do your last spin!", .EventName$), bc_blue | bc_all); end; OnTimer1860000: // 31 mins OnStop: disablenpc("Wheel of Fortune#Main"); disablenpc("Hussein#WOF"); end; } prontera,159,178,3 script Hussein#WOF 1_M_MERCHANT,{ doevent("Wheel of Fortune#Main::OnTalk"); end; } prontera,155,176,3 script Wheel of Fortune#Main 2_SLOT_MACHINE,{ OnTalk: if (#freewheelfortunespin == 0) #freewheelfortunespin = .Free_Spins; if (getd(.Event_Points_Variable$) < .Points_Cost && #freewheelfortunespin < 0) { mesf("[^0055FF ::: %s ::: ^000000]", .EventName$); mes("You are out of points"); mes("and have no more free"); mes("spins! Come back next"); mes("time for more."); close(); } .@mes$ = (#freewheelfortunespin > 0) ? sprintf(", but you, my friend, have %d free spin%s!", #freewheelfortunespin, (#freewheelfortunespin == 1) ? "" : "s") : "."; cutin("aca_salim02", 2); addtimer(1, sprintf("%s::OnEnd", strnpcinfo(NPC_NAME))); mesf("[^0055FF ::: %s ::: ^000000]", .EventName$); mes("Do you want to spin the wheel?"); mesf("It costs ^FF0000%d Event points^000000 to play%s", .Points_Cost, .@mes$); next(); callsub(S_Loop); S_Loop: .@val = getd(.Event_Points_Variable$); if (.@val < .Points_Cost && #freewheelfortunespin < 0) callsub(S_End); switch (select( (#freewheelfortunespin > 0) ? sprintf("Yes! Use free spin! (%d left)", #freewheelfortunespin) : "", (.@val > 0) ? sprintf("Yes! Use Event Points. (%d remaining)", .@val) : "", "No (Leave)" )) { case 1: callsub(S_Pay, 0); case 2: callsub(S_Pay, 1); default: callsub(S_End); } S_Pay: switch (getarg(0)) { // pay with free spin case 0: if (#freewheelfortunespin > 0) { if ((#freewheelfortunespin -= 1) < 1) #freewheelfortunespin = -1; callsub(S_Gamble); } else callsub(S_End); // Pay with points case 1: default: if ((.@val = getd(.Event_Points_Variable$)) >= .Points_Cost) { setd(.Event_Points_Variable$, (.@val -= .Points_Cost)); dispbottom(sprintf("%s : You now have %d event points.", .ServerName$, .@val)); callsub(S_Gamble); } else { cutin("aca_salim02", 2); mesf("[^0055FF ::: %s ::: ^000000]", .EventName$); mes("Awww, you don't have enough to gamble..."); mes(" "); mes("Have you ever heard?"); mes("'Money isn't all that matters' Got it?"); mes("Byeeeeeeeeeeeeee ;)"); callsub(S_End); } } S_Gamble: // Actual Gambling .@sector = rand(.Sector[0], .Sector[1]); .@displayCutin = (.@sector * 2) - 1; .@Speed = .Spin_Speed; for (.@i = 0; .@i < .nbTurns; .@i++) { .@b = .Cutin[0]; while (.@b <= .Cutin[1]) { cutin(sprintf("%s%d", .cutin$, .@b), 4); sleep2(.@Speed); .@b++; .@Speed++; } } .@b = .Cutin[0]; while (.@b < .@displayCutin) { cutin(sprintf("%s%d", .cutin$, .@b), 4); sleep2(.@Speed); .@b++; } cutin(sprintf("%s%d", .cutin$, .@b), 4); if (.prize_id[.@sector] == -1) { // Free spin if (.Sound_Effects) soundeffect("wheel_jackpot.wav", 0); announce(sprintf("[%s] : Wow, %d more Free spins!!!", .EventName$, .prize_qty[.@sector]), bc_blue | bc_self); #freewheelfortunespin = #freewheelfortunespin == -1 ? .prize_qty[.@sector] : #freewheelfortunespin + .prize_qty[.@sector]; } else if (.prize_id[.@sector] == 0) { // nothing if (.Sound_Effects) soundeffect("wheel_lost.wav", 0); announce(sprintf("[%s] : Awwww, No luck in gamble, more luck in love...", .EventName$), bc_blue | bc_self); } else { // item if (.Sound_Effects) soundeffect("wheel_won.wav", 0); announce(sprintf("[%s] : Enjoy your prize!!!", .EventName$), bc_blue | bc_self); getitem(.prize_id[.@sector], .prize_qty[.@sector]); } sleep2(1000); callsub(S_Loop); end; S_End: close2(); OnEnd: cutin("", 255); end; OnInit: .ServerName$ = "[Your boring server]"; .EventName$ = "Wheel Of Fortune"; .cutin$ = "WheelOfFortune_"; .Event_Points_Variable$ = "#LROEVENTPOINTS"; // The name of your event points variable setarray(.Sector, 1, 10); // Sector range setarray(.Cutin, 0, 19); // Cutin range .Spin_Speed = 50; // What is the base spin speed? (ms) .nbTurns = 2; .Points_Cost = 100; // How many 'points' does it cost for a spin? .Free_Spins = 1; // How many free spins does a player get? .Sound_Effects = true; // Enable sound effects? (true/false) setarray(.prize_id[1], -1, 31024, 31026, 31008, 31020, 31017, 31010, 31016, 0, 31009); setarray(.prize_qty[1], 2, 1, 1, 1, 3, 3, 1, 3, 0, 3); end; }  
  15. Upvote
    Maple reacted to 4144 in Nemo patcher   
    Add patch "Disable Cheat Defender Game Guard" for disabled cheat defender. This game guard from version 2018-03-15 used in zero clients and probably will be used in kro main.
    Also included replacment for cheat defender dll CDClient.dll
    After this patch client not do any packets encryption and can connect to hercules.
     
  16. Upvote
    Maple reacted to Asheraf in kRO unpacked clients releases   
    The crash related to NEMO patch (Cancel to Login Window), you can either disable it or ask for fix in nemo fork topic.
  17. Upvote
    Maple got a reaction from OmarAcero in kRO unpacked clients releases   
    Use this inteminfo https://github.com/Asheraf/Translation
  18. Upvote
    Maple reacted to 4144 in Nemo patcher   
    Fixed patch "Increase Headgear ViewID"
  19. Upvote
    Maple reacted to Asheraf in kRO unpacked clients releases   
    1 - about itemInfo and 2018-01-24b, my repository only supports the latest client available and since the function changed in the more recent version its the only one supported, you can revert to an older version to use it or just replace the two functions in the end of the file with the old ones.
     
    2 - about langtype 12:
    *  in sclientinfo.xml set the following:
    <servicetype>brazil</servicetype> <servertype>primary</servertype> <connection> <langtype>12</langtype> </connection> then go to "data/luafiles514/lua files/service_korea/externalsettings_kr.lub" move it to "data/luafiles514/lua files/service_brazil/externalsettings_br.lub"
    (also better search for files with kr/korea in the name and replace it with br/brazil)
  20. Upvote
    Maple reacted to Asheraf in kRO unpacked clients releases   
    the issues related to changing the langtype or service type are all missing resources.. for example in langtype 12 there is some icon that the client display and it doesnt exist in kRO Grf you need to import it from bRO files
    ----
    Side note to everyone: Please if you're going to post about an issue make sure its not repeated before.. also for love of the gods don't disable debugging messages in the client via patches then complain its not working magically...
     
    @EDIT also please stop sending me issues in private messages, i am no longer going to answer anyone.
  21. Upvote
    Maple reacted to Asheraf in kRO unpacked clients releases   
    A new client have been added to the list, please notice that as of 2018-02-07bRagexeRE release the itemInfo.lua functions have changes make sure to use an updated version.. either update your current version or use the one from https://github.com/Asheraf/Translation .
  22. Upvote
    Maple reacted to Asheraf in kRO unpacked clients releases   
    you can use this https://github.com/Asheraf/Translation also please notice that some files need to be renamed based on the servicetype and the servertype you're using in sclientinfo.xml the default in this repository is set to korea/primary
  23. Upvote
    Maple reacted to Dastgir in Infinite Storage   
    Hello,
    I feel this is one of the important setting, which was restricted due to packet size. So I have made this plugin to allow UNLIMITED Storage Size.
    Just enable this plugin and set MAX_STORAGE(from common/mmo.h) to whatever you want.
    Link: https://github.com/dastgir/HPM-Plugins/blob/master/src/plugins/storage_expand.c
     
    Note: This doesn't work with Guild Storage.
  24. Upvote
    Maple reacted to Ridley in [Collection] Official Full Clients + latest kRO   
    Changelog:
    - Updated all Clients
    - Updated twRO BGMS (3 new ones)
    NOTE: to disable the Snow effect in Prontera, open your grf and navigate to data/etcinfo.txt
    Then add (or edit) the following:
    weather# //prontera.rsw# //snow# Collection of official Full Clients. Those are vanilla, not modified in any way or whatever. They are patched up to date. Let me know if I've missed something.
    Server Name
    With BGM
    Without BGM
    BGM only
    South Korea (kRO)
    21. Dec. 2018
    2,70 GB
    Mega
    OneDrive
    2,42 GB
    Mega
    OneDrive
    294 MB
    Mega
    OneDrive
    South Korea (Ragnarok Zero)
    21. Dec. 2018
    2,22 GB
    Mega
    OneDrive
        Taiwan and Hongkong (twRO)
    21. Dec. 2018
    2,24 GB
    Mega
    OneDrive
    1,95 GB
    Mega
    OneDrive
    310 MB
    Mega
    OneDrive
    Japan (jRO)
    21. Dec. 2018
    2,23 GB
    Mega
    OneDrive
    1,93 GB
    Mega
    OneDrive
    311 MB
    Mega
    OneDrive
    Thailland (tRO)
    21. Dec. 2018
    1,67 GB
    Mega
    OneDrive
    1,41 GB
    Mega
    OneDrive
    272 MB
    Mega
    OneDrive
    International (iRO)
    21. Dec. 2018
    2,42 GB
    Mega
    OneDrive
    2,14 GB
    Mega
    OneDrive
    294 MB
    Mega
    OneDrive
    Philippines (pRO)
    21. Dec. 2018
    1,5 GB
    Mega
    OneDrive
    1,25 GB
    Mega
    OneDrive
    272 MB
    Mega
    OneDrive
    Indonesia (idRO)
    21. Dec. 2018
    1,88 GB
    Mega
    OneDrive
    1,61 GB
    Mega
    OneDrive
    282 MB
    Mega
    OneDrive
    Brazil (bRO)
    21. Dec. 2018
    1,95 GB
    Mega
    OneDrive
    1,69 GB
    Mega
    OneDrive
    273 MB
    Mega
    OneDrive
    France, Europe (fRO, euRO) 21. Dec. 2018
    1,85 GB
    Mega
    OneDrive
    1,59 GB
    Mega
    OneDrive
    273 MB
    Mega
    OneDrive
  25. Upvote
    Maple reacted to Asheraf in Homunculus Attack in New Client   
    Hello there, no the AI system got dropped in new clients so unless someone made some patch to restore it, auto attack wont be possible (client-side).
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.