Jump to content

fiction

Members
  • Content Count

    153
  • Joined

  • Last visited

  • Days Won

    4

Reputation Activity

  1. Like
    fiction reacted to KirieZ in Hercules wiki migrated to a new platform   
    Hello everyone,
     
    As you may already have seen from the 2024.03 release notes in GitHub ( https://github.com/HerculesWS/Hercules/releases/tag/v2024.03 ), Hercules' GitHub wiki has been moved to a new platform, powered by mkdocs and available at:
     
    https://docs.herc.ws/
     
     
    This change aims to make the Hercules documentation generally better since the mkdocs-powered documentation does bring a better navigation, search capabilities and editing options. With that we can, hopefully, cover the gap that many have felt after we switched from MediaWiki to GitHub Wiki, while also providing some extras (like the ability to easily have a local copy).
     
    With the new mkdocs-powered document, we have: (compared to GH Wiki)
    - A bit more control over the sections, no longer a single side bar with everything
    - Extended markdown syntax for editing docs content
    - Better searching, as results are shown as you type
    - It is now possible to properly include image in the docs, without workarounds
     
    Contributions are highly appreciated and should be made through Pull Requests to the new hercules-docs repository ( https://github.com/HerculesWS/hercules-docs ).
     
    You may find general guidance on how to run the docs locally and edit it in the Editing the Docs page ( https://docs.herc.ws/contributing/editing-the-docs/ )

    The content of the new repository was copied from the GitHub wiki (which was originally the MediaWiki content and had several contributions over the years), and reorganized into a few sections. Additionally, everything was converted to Markdown, so we should generally get an ok experience.
     
    The conversion of MediaWiki pages to Markdown was made through an automated tool (pandoc) so we should still expect some things to not be perfectly right, a few noticeable cases are:
    - Linking between pages are likely to be broken
    - Some syntax highlighting may not be in the most presentable format
    - Several images are still missing
     
    Fixing those will require manual work to replicate the images, update links, etc.
     
    Why not return to MediaWiki?
    This question has shown up a few times in our Discord, and I think it is worth linking to the topic when the move happened back then:
     
    TLDR; Maintaining MediaWiki together with IPB (our forum software) is complicated.
     
     
    Huge thanks to Haru for making this idea come true!
     
    Please let us know if you have questions, comments or suggestions for the new docs.
  2. Like
    fiction reacted to Happy in Happy Devs: Bring out the best Ragnarok in you.   
    Status Update: 3/3 Slots Full. But feel free to msg to reserve a slot thanks!
  3. Like
    fiction got a reaction from Rebel in Http support in hercules (merged to hercules)   
    You need to configure this https://github.com/HerculesWS/Hercules/blob/master/conf/api/api-server.conf
     
    Later, search on your lua files the services, like service_korea, ExternalSettings_kr.lub. Make sure to put your public ip address + the default port of API (7121).
  4. Like
    fiction reacted to 4144 in Guild emblems on Flux CP after HTTP release   
    yes
  5. Like
    fiction reacted to Sephus in The Horizon Project   
    Hey all,
     
    I just came back to Hercules again and I have a great new post for everyone. The topic's original post has been updated with what I have planned in writing and telling the community. Have a good enjoyable read and make sure you join us.
  6. Like
    fiction got a reaction from IndieRO in Http support in hercules (merged to hercules)   
    Well was pretty easy than i expected doing a donate with a crypto.

    I just used binance to make all the transaction.
     
    Hope can you continue development this features 4144 :]
  7. Upvote
    fiction reacted to rans in Item link and navigation integration on some atcommands   
    Just like in rA's https://github.com/rathena/rathena/pull/7291 
    can we also have this feature? It would benefit a lot of players.
  8. Like
    fiction got a reaction from evilpuncker in Http support in hercules (merged to hercules)   
    Well was pretty easy than i expected doing a donate with a crypto.

    I just used binance to make all the transaction.
     
    Hope can you continue development this features 4144 :]
  9. Upvote
    fiction reacted to 4144 in Upcoming hercules feature   
    My patches only add preview to old cash shop aka trader shop and normal cash shop.
    Barter and expanded barter shops should have built in preview. Probably issue in lua or in types/location sent to client.
  10. Like
    fiction reacted to 4144 in Upcoming hercules feature   
    New feature: Items preview in trader shop
     
    Can be enabled by:
    1. defining ENABLE_OLD_CASHSHOP_PREVIEW_PATCH in core.h or by configure flag --enable-old-cashshop-preview-patch
    2. Then need apply this nemo patch http://nemo.herc.ws/patches/ExtendOldCashShopPreview/
     
    Feature can works only if option in server side enabled and enabled patch in client side. In other case custom shops will be corrupted
     
    For enable this feature need use this pull request https://github.com/HerculesWS/Hercules/pull/3152
     

     
     
  11. Like
    fiction reacted to 4144 in Http support in hercules (merged to hercules)   
    Some update on project. now also implemented
    extend plugins support for inter server packets. add support for api to login, char, map packets. protection against different attacks on servers. sample http plugin.  
     
  12. Like
    fiction got a reaction from evilpuncker in Http support in hercules (merged to hercules)   
    Nice, gonna make a donation.
     
    Thank you @4144
  13. Upvote
    fiction got a reaction from evilpuncker in Http support in hercules (merged to hercules)   
    Oh bad news...Personally i don't use any kind of crypto, maybe herc need a section for crowdfunding, like rathena does.
    I'll like to support this projet, because is a benefit for all the hercules users, but the actual currency is a limitation for me
  14. Like
    fiction got a reaction from evilpuncker in Http support in hercules (merged to hercules)   
    Hi @4144 exist any target for this funding?.
     
    Greetings.-
  15. Like
    fiction reacted to 4144 in Http support in hercules (merged to hercules)   
    Try this donation link <removed>
     
    Should works with cards/google pay.
    Look like it partially translated to english and it count donation in russian rubles...
  16. Upvote
    fiction got a reaction from akbare in Http support in hercules (merged to hercules)   
    Oh bad news...Personally i don't use any kind of crypto, maybe herc need a section for crowdfunding, like rathena does.
    I'll like to support this projet, because is a benefit for all the hercules users, but the actual currency is a limitation for me
  17. Like
    fiction reacted to Happy in Happy Devs: Bring out the best Ragnarok in you.   
    Update:
    Availability [2/3]
    Updated discord ID: rbg87#6238
  18. Like
    fiction reacted to 4144 in Upcoming hercules feature   
    Already merged into hercules
     
    New feature: Items preview in cash shop
     
    Can be enabled by:
    1. defining ENABLE_CASHSHOP_PREVIEW_PATCH in core.h or by configure flag --enable-cashshop-preview-patch
    2. Then need apply this nemo patch http://nemo.herc.ws/patches/ExtendCashShopPreview/
     
    Feature can works only if option in server side enabled and enabled patch in client side. In other case cash shop will be corrupted
     

     
  19. Upvote
    fiction 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.

     
  20. Like
    fiction reacted to AnnieRuru in hosting Hercules on Google Cloud with CentOS 8   
    Over the last few days I have been playing with Google Cloud services
    because Google cloud currently offers $300 free credit upon signing up
    yes, FREE $300 credit
    and thus my journey trying to host hercules server on a VPS has begun
     
    all you need is a valid Debit/Credit card number ...
    of course you have to be an adult to try the hosting service ... right ?
     

     
     
    oh and, don't worry, you can always cancel it anytime

     
    after playing with it, I found the Windows option is too expensive, and thus trying to learn the Linux option
     
    This guide is actually demonstrate by using a trash gmail account that can throw away later
    I don't mind all the credentials are shown in the screenshot, when I click the Open topic button I have deleted this project on Google Cloud
     
     
    Step 1. Download Putty and WinCP
    https://www.putty.org/.
    https://winscp.net/eng/download.php
     
    Step 2. Run Google Cloud
    2.1 login to your Google cloud project
    https://github.com/AnnieRuru/customs/blob/master/server hosting/2.png
     
    2.2 first you need to link your credit card to this google cloud
    https://github.com/AnnieRuru/customs/blob/master/server hosting/3.png.
    https://github.com/AnnieRuru/customs/blob/master/server hosting/4.png
    select the billing option to the debit/credit number you input earlier
    https://github.com/AnnieRuru/customs/blob/master/server hosting/5.png
    this billing information is very important, you need to check this once in a while to stop unwanted services <-- please scroll to the right
     
    2.3 pin these 3
    - billing
    - compute engine
    - VPC network
    https://github.com/AnnieRuru/customs/blob/master/server hosting/6.png
     
    2.4 now time to create a VPS, select Compute Engine
    https://github.com/AnnieRuru/customs/blob/master/server hosting/7.png
    2.4.1
    enter all the necessary information
    1. the Virtual machine name
    2. your nearest location
    3. the spec of the machine
    https://github.com/AnnieRuru/customs/blob/master/server hosting/8.png
     
    PS: I tested the cheapest option, N1 series, f1 micro 614MB memory and E2 micro, 1GB memory
    when compiling hercules later, putty just stop ... I think it run out of memory
    ... hercules should have mention a recommendation needs at least 2GB memory to run
     
    2.4.2
    4. Select Boot Disk as CentOS 8
    https://github.com/AnnieRuru/customs/blob/master/server hosting/9.png
    5. select allow HTTP and HTTPS
    https://github.com/AnnieRuru/customs/blob/master/server hosting/10.png
     
    2.4.3
    6. Click Security tab
    https://github.com/AnnieRuru/customs/blob/master/server hosting/11.png
    needs to 'Enter public SSH key'
     
    run Putty Key Generator and click Generate
    https://github.com/AnnieRuru/customs/blob/master/server hosting/12.png
     
    1. change the 'key comment' as it will become user name
    2. save private key to desktop
    3. copy the field
    https://github.com/AnnieRuru/customs/blob/master/server hosting/13.png
     
    paste into Google cloud
    https://github.com/AnnieRuru/customs/blob/master/server hosting/14.png
     
    2.4.4
    select Networking tab
    https://github.com/AnnieRuru/customs/blob/master/server hosting/15.png
    create a static IP address
    https://github.com/AnnieRuru/customs/blob/master/server hosting/16.png
    choose standard tier
     
    after everything done click [Confirm]
    https://github.com/AnnieRuru/customs/blob/master/server hosting/17.png
    and you get your virtual machine running
    https://github.com/AnnieRuru/customs/blob/master/server hosting/18.png
     
    2.5
    once your server up and running
    run Putty to connect to this server
    https://github.com/AnnieRuru/customs/blob/master/server hosting/19.png
    1. scroll down, expand 'SSH' to select 'Auth',
    2. then load the file you saved earlier by PuttyGen
    https://github.com/AnnieRuru/customs/blob/master/server hosting/20.png
    3. enter the public IP address,
    4. then click open
     
    https://github.com/AnnieRuru/customs/blob/master/server hosting/21.png
    it will prompt you with security alert, just click yes
     
    2.6
    login with your user name
    https://github.com/AnnieRuru/customs/blob/master/server hosting/22.png
     
    The very first command you should run is change the password
    sudo passwd root ok Windows Users, don't freak out like me
    there are no ******** when you input the password, this is Linux not Windows
    just input normally ... and press Enter key, it works that way
    https://github.com/AnnieRuru/customs/blob/master/server hosting/23.png
    then do the same with your username
    sudo passwd annie  
    3. update the OS and install all necessary product
     
    3.1 run all these commands
    sudo yum update sudo yum install gcc make mysql mysql-devel mysql-server pcre-devel git zlib-devel Transaction Summary ================================================================================ Install 89 Packages Total download size: 108 M Installed size: 395 M Is this ok [y/N]: Press 'Y' key
     
    3.2
    in the meantime, while this might take awhile, try login WinCP
    https://github.com/AnnieRuru/customs/blob/master/server hosting/24.png
    click new session, then click advance
    https://github.com/AnnieRuru/customs/blob/master/server hosting/25.png
    select 'Authentication' and load the Putty Gen file again
    https://github.com/AnnieRuru/customs/blob/master/server hosting/26.png
    just another warning
    https://github.com/AnnieRuru/customs/blob/master/server hosting/27.png
     
     
    3.3 Download Hercules
    git clone https://github.com/HerculesWS/Hercules.git ~/Hercules  
    4. SQL
     
    4.1 Start SQL service
    sudo systemctl start mysqld.service  
    4.2 login as root
    mysql -u root -p Enter password, just press enter
    default centOS 8 preinstalled MySQL, root has no password
     
    Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 8.0.21 Source distribution Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> 4.3 create database
    CREATE DATABASE hercules; 4.4 select hercules database as default
    USE `hercules`; 4.5 create another user, not recommend to connect as root
    CREATE USER 'annie'@'localhost' IDENTIFIED BY '1234'; 4.6 grant this user privilege
    GRANT SELECT,INSERT,UPDATE,DELETE ON * TO 'annie'@'localhost'; 4.7 then quit
    quit it should show like this
    mysql> quit Bye [annie@centos ~]$ 4.8 goto sql-files directory
    cd /home/annie/Hercules/sql-files/ and run all these
    mysql -u root -p hercules < main.sql mysql -u root -p hercules < logs.sql mysql -u root -p hercules < item_db_re.sql mysql -u root -p hercules < mob_db_re.sql mysql -u root -p hercules < mob_skill_db_re.sql it should show like this
    [annie@centos ~]$ cd /home/annie/Hercules/sql-files/ [annie@centos sql-files]$ mysql -u root -p hercules < main.sql Enter password: [annie@centos sql-files]$ mysql -u root -p hercules < logs.sql Enter password: [annie@centos sql-files]$ mysql -u root -p hercules < item_db_re.sql Enter password: [annie@centos sql-files]$ mysql -u root -p hercules < mob_db_re.sql Enter password: [annie@centos sql-files]$ mysql -u root -p hercules < mob_skill_db_re.sql Enter password: [annie@centos sql-files]$ 4.9 go back login mysql and change inter-server connection password from s1/p1 into qwer/asdf
    mysql -u root -p and
    UPDATE `hercules`.`login` SET `userid` = 'qwer', `user_pass` = 'asdf' WHERE `account_id` = 1;  
    5. Compile Hercules
     
    go back to annie/hercules folder
    cd /home/annie/Hercules/ 5.1 type ./configure
    ./configure  
    OK STOP, many things can go wrong here, I stuck here for a few days and searching on both rathena and hercules forum for answers
    the correct output from putty should be this
    checking mysql.h presence... yes checking for mysql.h... yes checking whether my_bool is supported (MySQL)... no (converting my_bool to bool) checking MySQL library (required)... yes (8.0.21) checking PCRE library... checking pcre.h usability... yes checking pcre.h presence... yes checking for pcre.h... yes checking for library containing pcre_study... -lpcre checking for doxygen... no checking for perl... yes configure: creating ./config.status config.status: creating Makefile config.status: creating src/common/Makefile config.status: creating 3rdparty/mt19937ar/Makefile config.status: creating 3rdparty/libconfig/Makefile config.status: creating 3rdparty/libbacktrace/Makefile config.status: creating 3rdparty/libbacktrace/backtrace-supported.h config.status: creating src/char/Makefile config.status: creating src/login/Makefile config.status: creating src/map/Makefile config.status: creating src/plugins/Makefile config.status: creating src/test/Makefile config.status: creating tools/HPMHookGen/Makefile config.status: creating tools/doxygen/Makefile [annie@centos Hercules]$ if it doesn't show config.status: at the end, open a new topic in Linux support
    if it's the same as mine, then can proceed with
     
    5.2 compile hercules
    make sql finally compile should show like this
    CC party.c CC path.c CC pc.c CC pc_groups.c CC pet.c CC quest.c CC refine.c CC rodex.c CC script.c CC searchstore.c CC skill.c CC status.c CC storage.c CC stylist.c CC trade.c CC unit.c CC vending.c LD map-server make[1]: Leaving directory '/home/annie/Hercules/src/map' building conf/import folder... [annie@centos Hercules]$  
    6. configure Hercules
     
    6.1 start hercules by
    ./athena-start start https://github.com/AnnieRuru/customs/blob/master/server hosting/28.png
    of course the reason why connect to SQL failed is because haven't configure Hercules so ....
    stop it from running for a moment
    ./athena-start stop  
    6.2 login to WinCP
    https://github.com/AnnieRuru/customs/blob/master/server hosting/29.png
    ... I will assume you know how to change your public IP address on hercules
    the file you should change are
    map-server.conf
    - userid: "qwer"
    - passwd: "asdf"
    - map_ip: "35.213.138.42"
    - char_ip: "35.213.138.42" char-server.conf
    - userid: "qwer"
    - passwd: "asdf"
    - login_ip: "35.213.138.42"
    - char_ip: "35.213.138.42" conf\global\sql_connections.conf
    -db_hostname: "localhost"
    - db_port: 3306
    - db_username: "annie"
    - db_password: "1234"
    - db_database: "hercules" conf\network.conf
    .....<let me test this thing again> ....  
    <--- I will assume everyone reading this guide already know how to host an offline server, if not click here -->
     
    now run ./athena-start start again, and this time map-server couldn't connect to char-server
     
    7. Configure firewall
     
    7.1 run these 3 commands
    sudo firewall-cmd --permanent --add-port 6900/tcp sudo firewall-cmd --permanent --add-port 6121/tcp sudo firewall-cmd --permanent --add-port 5121/tcp 7.2 reload the firewall settings
    sudo firewall-cmd --reload 7.3 go back to Google Cloud,
    https://github.com/AnnieRuru/customs/blob/master/server hosting/30.png
    to create firewall
    https://github.com/AnnieRuru/customs/blob/master/server hosting/31.png
    configure the firewall
    https://github.com/AnnieRuru/customs/blob/master/server hosting/32.png
    2. & 3. configure firewall only to this project
    https://github.com/AnnieRuru/customs/blob/master/server hosting/33.png
     
    4. at 'tcp:' tab, only allow these 3 ports
    https://github.com/AnnieRuru/customs/blob/master/server hosting/34.png
     
    7.4
    run ./athena-start start again.
    then goto https://portchecker.co/ and check your port is open
    https://github.com/AnnieRuru/customs/blob/master/server hosting/35.png
    And Finally go to your client edit data/sclientinfo.xml to the WAN IP and

    VIOLA !! DONE !!
    I can connect my client to google cloud
     
    PS: the port checker website only shows Port 6900 is OPEN. only if fulfill these 3 conditions
    1. enable firewall setting on CentOS
    2. enable firewall setting on Google Cloud
    3. run the emulator by ./athena-start
     
     
    Ok now you can start worry about security issue like adding additional user in CentOS
    https://www.digitalocean.com/community/tutorials/how-to-add-and-delete-users-on-a-centos-7-server
    google cloud doesn't seem to allow login that way -> https://stackoverflow.com/questions/52503453/how-to-login-gcp-console-without-ssh
    and mysql root account password change ...
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234'; etc...etc...
    need more research
     
     
    Connect to MySQL in CentOS 8 using Window's MySQL Workbench
     
    1. add another connection
    https://github.com/AnnieRuru/customs/blob/master/server hosting/mysql1.png
     
    2. under 'Connection Method', select 'Standard TCP/IP over SSH'
    https://github.com/AnnieRuru/customs/blob/master/server hosting/mysql2.png
     
    3. configure these fields
    3.1 SSH hostname is the server IP address
    3.2 SSH username is the name you created with PuttyGen
    3.3 SSH keyfile needs a conversion with PuttyGen
    3.4 and Click [Test Connection]
    https://github.com/AnnieRuru/customs/blob/master/server hosting/mysql3.png
     
    4. the SSH keyfile needs to be convert from PuttyGen
    4.1 load existing private key, in this case was 'annie.ppk'
    4.2 click conversion and save as 'annie' without file extension
    https://github.com/AnnieRuru/customs/blob/master/server hosting/mysql4.png
     
    5. if successful it will show like this
    https://github.com/AnnieRuru/customs/blob/master/server hosting/mysql5.png
     
    then you can login into MySQL in CentOS
     
    did I forgot to mention needs to open the port 3306 in CentOS and Google Cloud ? refer back to step 7
     
    Reference: https://stackoverflow.com/questions/21527743/mysql-workbench-version-6-0-8-ssh-authentication-issue
     
     
    After thought :
    Overall I'm very satisfy with Google Cloud service,
    1. free $300 credit to spend
    2. can always register trash gmail account to make the credit infinite
      - of course the IP will always change if you do so
    3. very low latency from Malaysia connect to Singapore - just 30~40ms ping
     
    I haven't try OVH which everybody is recommending, but they doesn't offer immediate free credit for me to test so meh .....
     
    and I notice Hercules's wiki CentOS guide is broken, maybe I'll fix it
    https://github.com/HerculesWS/Hercules/wiki/Installation-(CentOS)
     
    - offtopic -
    over last few days playing with google cloud, when I visit Youtube, all my advertisement become Monday.com etc etc group project stuffs
    google really knows how to collect my data
  21. Like
    fiction reacted to AnnieRuru in Party Match   
    originate from rathena
     
    Download 1.0
    script
     
     
    Description -> copy paste from rathena forum

    by the way I added OnPCUseSkillEvent feature
    its totally up to you to add this or not, but I found it's very convenient after add them
    having a cursor to immediately select the player I want without typing the name out
  22. Like
    fiction got a reaction from AnnieRuru in @packetfilter   
    i'm using 20200108 and have no errors.
  23. Like
    fiction reacted to AnnieRuru in @packetfilter   
    I found this in src\map\packet_struct.h
    struct PACKET_ZC_USE_ITEM_ACK { int16 packetType; int16 index; #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114 uint32 itemId; uint32 AID; #elif PACKETVER >= 3 uint16 itemId; uint32 AID; #endif int16 amount; uint8 result; } __attribute__((packed)); so client version 20181121 below uses `RBUFL(buf, 6)`, anything above use `RBUFL(buf, 8)`
     
    1.0 - plugin
    - introduce type [D], direction packet, and existing Dance/songs move to type `[M]usic`
    - no longer use nested IF-ELSE, use switch statement on the packet header for faster read speed
    - fix [I.]tem type throw nullpo error on 2018 client
    - add Caution as a warning that certain packet filter wont work correctly
     
    and I guess this is finally over
    time to mention everyone that has PM me about this project
    @raPalooza~
    @Azhura
    @freezing1
    @xJhay
    @Kuroyama
    @fiction
    @Skyzone
    @cusco ? <-- from discord
     
  24. Like
    fiction reacted to AnnieRuru in @packetfilter   
    No more Work in Progress, Please report if there are any bug
     
    Download: 1.0a [Complete]
    plugin
     
     
    What is `@packetfilter` ?
    `@packetfilter` is a custom mod originate from eamod
    https://github.com/zephyrus-cr/eamod/blob/master/Servers/rAthena/conf/groups.conf#L418-L422
    it can actually reduce lag on your live server during woe depends on how many players activate it
    it totally depends on the player's side, community effort that every player should together turn on the `@packetfilter` to reduce massive lag during woe
     
    this modification is actually very famous and there are members willingly to pay for it
    https://rathena.org/board/topic/121200-packetfilter-battleinfo/
    https://rathena.org/board/topic/123203-battleinfo-packetfilter/
    https://rathena.org/board/topic/111797-packetfilter-zepyhrus-ramod/
    https://rathena.org/board/topic/79995-buy-noactnodelay-partybuff-src-as-it-was-on-pro-ro-or-packetfilter/
     
     
     
    this `@packetfilter` is unlike the one you are having, or that is circulating on rathena forum
     
    this one has been written entirely from scratch and added some other flags that the original don't
    for example,
    `@packetfilter COHM EOHM`
    allow block normal chat and emotion from non-related players, pets, homunculus and monsters
    but this doesn't block normal chat from party/guild members
     
    a full list of flags are
      C = ignore normal Chat, including Dancer's scream, Bard's frost joke, and pet's talk (pet start to talk when intimacy > 900)   E = ignore emotion, including monster and pet emotion (but NOT pet performance)   I = ignore Item use effect   A = ignore normal Attack animation (based on receiving side), your own attack animation are always shown   B = Buffing skill animations (based on receiving side), your own casting animation are always shown   S = Status effect   T = offensive single Target skill/spell animations (based on receiving side), your own casting animation are always shown   G = Ground based skills (eg:storm gust), your own casting animation are always shown   M = Music dance/songs from Bard/Dancer   D = Direction. Recommend filter on Party/Guild type and not enemies. Highly Recommend for supportive type Class. after the Main type, also support additional flags
      S = Self   P = Party   G = Guild   B = Battleground   C = Clan   O = Other players, none of the above   H = Homunculus/pets/elementals/mercenary and player's @summon   M = Monsters  
     
    Why This plugin doesn't block Kaite or Energy Coat ?
     
    2 reasons
     
    No.1 - currently there is a bug with plugin,
    struct packet_spawn_unit *p = (struct packet_spawn_unit*)RBUFP(buf, 0); this line will throw error on Linux
    so no choice, maybe I'll make a bug report
    this bug also has been reported on Dastgir's `@noview`
     
    No.2 - just set p->virtue = 0; isn't really blocking the packet
    this goes against the very principle of this plugin, which is NOT send certain packet to the client
    OPT3 (including OPT3_KAITE | OPT3_ENERGYCOAT | OPT3_SOULLINK) is part of the idle_unitType, unit_walkingType and spawn_unitType function
    and blocking those 3 packet entirely is stupid
     
    in case you don't understand, look under clif_set_unit_walking and clif_set_unit_idle function inside src\map\clif.c file
    p.GUID = g_id; p.GEmblemVer = status->get_emblem_id(bl); p.honor = (sd) ? sd->status.manner : 0; // p.virtue = (sc) ? sc->opt3 : 0; <-- change this line p.virtue = 0; p.isPKModeON = (sd && sd->status.karma) ? 1 : 0; p.sex = vd->sex;  
     
    Note: about [D]irection type packet
     
    try add a ShowDebug inside clif->send
    src/map/clif.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/map/clif.c b/src/map/clif.c index ab3c4422a..9e245f335 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -450,6 +450,7 @@ static bool clif_send(const void *buf, int len, struct block_list *bl, enum send return true; } +ShowDebug("source:%s buf:0x%x send_target:%d\n", (sd != NULL)? sd->status.name : "NULL", RBUFW(buf, 0), type); switch(type) { case ALL_CLIENT: //All player clients. iter = mapit_getallusers(); you will find 0x9c is being send repeatedly on every attack and every skill cast , getting attack etc
    this direction update packet isn't just send by Shift-click, but also including all the actions above
    this packet is very spam-able and I think can be safely block on party/guild/clan/bg flags
    for supportive class, I also think can block all of them since supportive class doesn't need information from enemies
     
     
     
  25. Like
    fiction reacted to AnnieRuru in @packetfilter   
    0.5 - plugin
    - fix linux compile warning `type` not being use
    - change useItemAckType into 0x1c8 ... hopefully no more nullpo ?
    - allow blocking casting animation, save more bandwidth
    - implement [T], [G], [D] type respectively
     
    also, I split the original Land Protector and bard/dancer song out
    Land Protector is under [G] type, Apple of Idun is under [D] type
    Basilica is under [B.] type
     
    type [S.] still has some bug, if being cast directly in front of the player, it doesn't block correctly
    .. very close to finish
     
    @Kuroyama, try again
×
×
  • Create New...

Important Information

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