Jump to content

evilpuncker

Community Contributors
  • Content Count

    2178
  • Joined

  • Last visited

  • Days Won

    66

Reputation Activity

  1. Like
    evilpuncker reacted to Dastgir in Idnum to ItemInfo Converter   
    Update: https://github.com/dastgir/Scripts/commit/b5de266816426f6f825571786cad76223d32d3bb
    Partial Support for new item_db format parsing (Currently only usable for conf2db)
  2. Like
    evilpuncker reacted to Dastgir in Idnum to ItemInfo Converter   
    Hello,
    Since gravity has changed the itemInfo format.
    Recently, I have been getting quite a few requests to make something for idnum to ItemInfo converter. So here I am, made a tool + optional config in itemInfo to support older clients without changing the format.
    Tool Link: https://github.com/dastgir/Scripts/tree/master/Lua/multi-tools
    Usage is mentioned in Readme
  3. Like
    evilpuncker reacted to Ai4rei in Elurair, v2.14.0.369 - last updated 2024/04/14   
    Updated to 2.7.1, fixes background media playing even when minimized or after starting a client, and adds play/stop buttons and zh_TW localization.
  4. Like
    evilpuncker reacted to Ai4rei in Elurair, v2.14.0.369 - last updated 2024/04/14   
    Updated to 2.8.0, adds custom mouse cursors, zh_CN localization and other features and improvements based on community feedback.
    Updated to 2.9.0, adds button auto-clicking and perpetual renaming of files, and fixes some minor bugs.
    Updated to 2.10.0, adds custom fonts and fixes some minor bugs.
  5. Like
    evilpuncker reacted to 4144 in Guild emblems   
  6. Like
    evilpuncker reacted to Ai4rei in Elurair, v2.14.0.369 - last updated 2024/04/14   
    Elurair Patching Launcher
    (RO Patcher Lite+ROCred Merge)
     

     
    About
    Universal auto-patcher for all your updating needs combined with a launcher, which is fully skinnable, highly customizable and easy on resources. It is free of any cost and works on every 32-bit and 64-bit Microsoft* Windows* platform. How this came to be: Future of ROCred and RO Patcher Lite
     
    Known Issues
    None.
     
    FAQ
    Q: Does the patcher support encrypted GRFs?
    A: Yes, common GRF encryption schemes are supported.
    Q: Can I use the Patcher part without the Launcher part?
    A: Yes, the Launcher mechanics and UI can be disabled in configuration.
    Q: Can I use the Launcher part without the Patcher part?
    A: Yes, remove all Patcher sections from the configuration.
     
    Download & Website
    http://ai4rei.net/p/skal
     
    License

    This work is licensed under a Creative Commons Attribution-Noncommercial 4.0 International License.
  7. Like
    evilpuncker reacted to fiction 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 :]
  8. Like
    evilpuncker reacted to Ai4rei in Elurair, v2.14.0.369 - last updated 2024/04/14   
    Yes, this belongs to the same group of software as Thor Patcher.
    If there will be interest for that, there can be support for THOR files, too. Currently it can only work with GPF and RGZ.
  9. Like
    evilpuncker reacted to 4144 in Http support in hercules (merged to hercules)   
    Some progress update. Complete things:
    Add support for gif guild emblems. Add support for emblems bigger than 64k bytes. Add shared configs support between login/char/map/api. Add configuration with default emotes for new chars.  
  10. Like
    evilpuncker 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.  
     
  11. Like
    evilpuncker reacted to pan in Multi-threaded Hercules   
    Long time no see!
    I've been dabbling with adding multi-thread support to Hercules for quite some time and even started quite a few server projects from scratch, and having failed in most of my attempts - last year I tried again with a new core design and it seems to be working so far. A lot of the systems that the server core is reliant were reworked, I believe some of these changes can even be used upstream but they would need to be revised first. This is mostly a proof of concept.
    I'm still planning on finishing the map-server but as of now only login and char servers have multi-thread enabled - I didn't test with multiple users yet. There's no linux / FreeBSD support because I want to have everything in working condition before trying to add another I/O paradigm, the architecture is very reliant on the way that this module works so I thought it'd better to implement the whole server before trying to add other paradigms.
    Lately I haven't got much free time to finish the map-server, but sometime later this year I think I can finish it.
    The code is at https://github.com/panikon/HerculesMT , I forked from stable v2021.08.04
     
    Server architecture

    Hercules employs a multi-server approach in order to better load balance player requests, so for each game world there'll be at least three separate program instances running at all times. These instrances are: login-server, char-server and map-server. Each of which can only access a subset of the world's SQL tables and is responsible for a different step of the game experience.

    Authentication and account database changes are segregated to the login-server, while character selection and character specific information are to the char-server, and the actual gameplay to the map-server.
    The login-server is the player entry-point and can be responsible for multiple different world instances, so it's possible to use the same account table (login) for multiple worlds (char-server + map-server) and to dynamically change their IP without needing to push a new patch. After authentication the player is queried for which service they'll use and then the server relays the proper address so the client can connect.
    In the char-server the player usually is queried again for a four digit PIN (PACKETVER >= 20180124), after which they can select which playable character will be used to play. The server then relays the address of the proper map-server to the client.
    A single world instance can have multiple map-servers where each is responsible for a zone (set of maps), all inter map connectivity is managed by the char-server. When the player requests to change character the char-server IP is then relayed.
    A single map-server can be responsible for multiple different zones, and each will be a different thread.
     
    Relationship of each of the possible server instances

     Brown - Game world | White - program instances
     
    Core design
    All servers are multi-threaded. Basic server functions are assigned to different threads:

    Console (../src/common/console.c):
    This thread is responsible for all console input operations. Timer (../src/common/timer.c):
    The timer thread manages the `timer_heap` and dequeues timer actions from the `timer_queue`. Each timer can be ran in a different thread depending on the `timer_target`, this is accomplished by either queuing an action in one of the available action queues (`target_id`) or by running the specified function in the main timer loop (`do_timer`).
    Other threads queue different timer actions (add, delete, set tick) to the `timer_queue`.
    The timer module is also responsible for tick acquiral via (`timer->gettick` and `timer->gettick_nocache`). Message(../src/common/showmsg.c):
    The message thread is used to synchronize the output of multiple different threads, each call to `Show*` instead of being directly outputted to `STDOUT` is queued in the `showmsg_queue` and then dequeued by the main thread function `showmsg_worker`. I/O Worker(../src/common/socket.c):
    All I/O operations are asynchronous and implemented via I/O completion ports and a thread pool. The main workers are defined in `socket_worker` and after a operation is dequeued it's converted into an action (`socket_operation_process`) that is then queued to the proper action worker (each session has a responsible worker, and it's obtained by the I/O worker via `action->queue_get`).
    These workers don't execute any "business logic" so we can minimize the time that they are blocked by any given operation, and also so we can better isolate different session groups without having to take into account in I/O operations (e.g. in map-server each zone has a different action worker and multiple actions can be queued simultaneously without having to block any of the threads for a longer period of time). Action Worker(../src/common/action.c):
    Action workers perform all the "business logic" of each of the servers, and each is responsible for a different session group. After every action loop all send actions are queued to the completion port.

    Login-server:
    Each char-server connection has a different worker. Player connections are randomly assigned. Char-server:
    Each map-server connection has a different worker. Player connections are randomly assigned. Map-server:
    Player connections are assigned depending on the current map according to the different configured zones. The char-server connection is randomly assigned.



    Thread relationships

  12. Like
    evilpuncker reacted to 4144 in Http support in hercules (merged to hercules)   
    I add link for card/gpay in first message. atleast for some people it works.
  13. Like
    evilpuncker reacted to fiction in Http support in hercules (merged to hercules)   
    Nice, gonna make a donation.
     
    Thank you @4144
  14. Like
    evilpuncker 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...
  15. Like
    evilpuncker reacted to IndieRO in Http support in hercules (merged to hercules)   
    I'll try to donate this month be waiting
  16. Like
    evilpuncker reacted to 4144 in Http support in hercules (merged to hercules)   
    no target amount.
    and i planning complete atleast some features described in "what need to add" section, but no time and no donations, i not working on it for now
  17. Like
    evilpuncker reacted to vBrenth in Http support in hercules (merged to hercules)   
    I know some people that are interested on this project but the payment method limits us from supporting. Also is there any target amount for it to get released?
  18. Upvote
    evilpuncker reacted to fiction 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
  19. Like
    evilpuncker reacted to 4144 in Http support in hercules (merged to hercules)   
    no.
    and funding look like not working. no one interested in this features.
     
  20. Like
    evilpuncker reacted to fiction in Http support in hercules (merged to hercules)   
    Hi @4144 exist any target for this funding?.
     
    Greetings.-
  21. Like
    evilpuncker reacted to 4144 in Http support in hercules (merged to hercules)   
    no
  22. Like
    evilpuncker reacted to AnnieRuru in Opening OBB (and any similar consumables)   
    merge all separate topics into one
     
    `@allowobbdrop`
    https://github.com/AnnieRuru/Release/blob/master/plugins/allowobbdrop.c
  23. Like
    evilpuncker reacted to AnnieRuru in Stylist   
    all right, I post up my custom stylist
     
    Download: 2.1
    script
     
    this one use CSV format
    setd ".@"+ Job_Rune_Knight +"_"+ LOOK_CLOTHES_COLOR +"$[1]", "0-5,11-18,20-23"; setd ".@"+ Job_Summoner +"_"+ LOOK_CLOTHES_COLOR +"$[0]", "0-3"; This means, the ID range for Job_Rune_Knight at bodystyle number (1) is 0,1,2,3,4,5,11,12,13,14,15,16,17,18,20,21,22,23
    2nd line means Summoner job can only use clothing range between 0 to 3, this prevent crash client due to human and doram race doesn't share the same palette
     
    From version 2.0 onwards, now you don't have to scratch your head about missing palette due to different bodystyle
    this script can handle that
     
     
  24. Upvote
    evilpuncker reacted to 4144 in Http support in hercules (merged to hercules)   
    For long time i worked on incomplete yet project for add http support into hercules.
    And this is funding page for this project.
     
    What parts this project contains already:
    new server with http support (named api-server). missing packets for guild emblems. http guild emblems (bmp, gif). hotkeys. emotes. adventurer agency (without search). basic plugins support for all this. basic plugins support for custom urls. 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. Add support for emblems bigger than 64k bytes. Add shared configs support between login/char/map/api. Add configuration with default emotes for new chars.  
    What need to add
    adventurer agency search. extend service urls support. add support for browsers and web panels api for control servers. twitter like messages support for old clients. support for vending shops load/save. other different small things.  
    Now this project merged to hercules.
    Merged pull request: https://github.com/HerculesWS/Hercules/pull/3198
     
     
  25. Like
    evilpuncker reacted to Angelmelody in [Script CMD] showscript   
    idea from here: http://herc.ws/board/topic/3257-aegis-showscript-command/?p=21640
     
    *showscrpt("<message>"{,<GID>}); This script will display the output message on top of the units Head
    If an optional GID is specified, msg will be shown on specified units head.
    if GID isn't specified or target not exist, msg will be shown on the invoking character
    if GID isn't specified and there is no player attached, msg will be shown on npc's head
     
    example:
    prontera,120,120,2 script bla 120,{ showscript("plz input an online player's name!"); input .@name$; .@tgid = getcharid(3,.@name$); showscript("this is a test!",.@tgid); close;OnInit: showscript "I m npc bla";end;}  

    download:
     
    showscript.c
×
×
  • Create New...

Important Information

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