Jump to content

Legend

Members
  • Content Count

    375
  • Joined

  • Days Won

    5

Reputation Activity

  1. Upvote
    Legend reacted to Daifuku in Discord/Forum Ragnarok Emotes   
    View File Discord/Forum Ragnarok Emotes

    I used these emotes for my previous ragnarok server.
    It's closed now, so feel free to use them - I might release some other small things if people want c:
    Submitter Daifuku Submitted 06/07/17 Category Other Graphics  
  2. Upvote
    Legend reacted to Sephus in Hercules Ultimate Storage System (HUSS)   
    Hey all,
    I had an idea to implement the ultimate storage system with which users of Hercules would be able to create as many storages as they want without a hassle. And so I worked on Hercules Ultimate Storage System (HUSS). The basic idea of the design has been completed and at this point it is ready to be tested. I wanted to gather suggestions to further extend the system, hence this topic.
    To test the system, simply visit my fork of Hercules in the storages branch and clone it.
     
    Storage.conf Example Entry
    { Id: (int) (required|unique) Unique Identifier Name: (string) (required) Name of the storage sent to the client. Capacity: (int) (required) Maximum capacity of the storage. }
    All storages are handled with dynamic arrays that will save a tonne of memory if and when created.
    They are saved in the same storage database (SQL) as the original separating them by a storage identifier.
    An infinite number of storages can be created, there are no limits.
    The current design implementation only allows saving/loading of approximately 1600 items per storage due to packet size limits.
     
    Script Command Changes
    *openstorage(<storage_id>{, <storage_mode>}) Default Storage Access Mode: STORAGE_ACCESS_ALL This will open character's Kafra storage window on the client connected to the invoking character. It can be used from any kind of NPC or item script, not just limited to Kafra Staff. The storage window opens regardless of whether there are open NPC dialogs or not, but it is preferred to close the dialog before displaying the storage window, to avoid any disruption when both windows overlap. mes("I will now open your stash for you"); close2(); openstorage(1); end; Storage Modes: STORAGE_ACCESS_VIEW // View storage only STORAGE_ACCESS_GET // Allow getting items from storage. STORAGE_ACCESS_PUT // Allow putting items to storage. STORAGE_ACCESS_ALL // Allow all actions.  
    So if you guys have any suggestions or ideas that would better the system for Hercules, feel free to comment below
  3. Upvote
    Legend reacted to Habilis in Cloud 9 & Hercules   
    Hello It's me!! (oh noooo)
    and I have another crazy thing to share
    It involves Ragnarok, Hercules, Raspberry Pi and an open source cloud IDE, how any cooler could that be!?
    Today I'm going to talk about my development setup  on my Raspberry Pi, that's right, I don't install Visual Studio on my local machine,
    neither MySQL server.
     
    I have a decent little thingy Raspberry Pi that can do it all!!
    - Run and Compile Hercules emulator
    - Run a MySQL server installation
    - And even run a Cloud 9 WEB IDE
     
    Just run it

    and open your browser 

    Cloud 9 is a full scale IDE with  command prompt integration, file search and replace, refactoring, project view on the left(for easy navigation)
    and a main window with code editor allowing you to edit
    configs of your emulator
    develop scripts
    edit source
    and write plugins
     

    After that just compile your emulator with integrated Command prompt and run the server as simple as that...
     
     
     
    Obviously, I have written a guide on how to install cloud 9 IDE on a Linux box
    https://habilisbest.com/installing-cloud-9-on-your-raspberry-pi
     
    As the guide states Cloud 9 runs on NodeJS, there is a simple instruction on how to install NodeJS on your Linux box!
     
     
     
  4. Upvote
    Legend reacted to bWolfie in [Function] Ordinal Suffix   
    Ordinal Suffix Function
    File Name: Ordinal Suffix
    File Submitter: Myriad
    File Submitted: 5 June 2017
    File Category: Quests, Shops, Functions & Algorithms Releases
    Ever been constructing a string and wanted to turn 1 into 1st? Or 2 -> 2nd? Well, there is now an answer!
    I call it 'Ordinal Suffix'. It adds a suffix to the end of your number using the callfunc() script command. Example below:
    .@first = 1; .@second = 2; mes("That's the " + callfunc("Ordinal_Suffix", .@first) + " time you told me that!"); // Will return "That's the 1st time you told me that!" mes("That's the " + callfunc("Ordinal_Suffix", .@second) + " time you told me that!"); // Will return "That's the 2nd time you told me that!" mes("That's the " + callfunc("Ordinal_Suffix", 11) + " time you told me that!"); // Will return "That's the 11th time you told me that!" → Special cases such as '11th', '12th' and '13th' are accounted for.
    → Can only be used with integers.
    → Works for all possible numbers (except 0 will return 0th, not sure what that is supposed to be).
    Script can be 'downloaded' at this pastebin link: https://pastebin.com/6Z5k1S70
  5. Upvote
    Legend reacted to meko in Deprecated Features   
    List of deprecated script commands and Hercules features

    (2017)
    misceffect() specialeffect2() pow() useatcmd()  
    v2018.06.03
    pcblockmove()  
    v2019.03.10
    UDT_MAPIDXY and UDT_WALKTOXY constant  
    v2019.04.07
    petstat()  
    v2019.05.05
    debugmes()  
    v2019.11.17
    getguildname() getguildmaster() getguildmasterid()  
     
    Future deprecations:
    ⚠️ Please avoid using those commands in new scripts
    menu()
  6. Upvote
    Legend reacted to Mystery in Scheduled Maintenance - Today @ 13:00 (EDT)   
    Hey everyone,
     
    There will be a scheduled maintenance today at 13:00 EDT (5:00pm GMT). The forums will go offline for a few hours (no rough ET). Prior to maintenance, we will put the forums in a read-mode only state to prevent new topics/posts being made... which will help with the transition to IPB4!
     
    The only thing that will be affected by this maintenance and transitions is our forums; our Wiki & GitHub Repo won't be. The Wiki is already in read-only mode and is in a achieved state. With that in mind, you are still able to visit our GitHub Repo page.
     
    The transition to IPB4 has been discussed multiple times with the staff and we agreed to move forward with IPB4. As mentioned above, the forums will take the hardest hit. The forums has quite a few mods written by Ind that will no longer function, along with our 3rd Party Plugins. I can't say, "We won't have any problems with the transition" because there is bound to be a few things that come up since our IPB is quite outdated; thus there will be no ET given.
     
    Next time you visit Hercules after 13:00 EDT, we will be using IPB4!
     
    Discord Server
    We have a Discord Server! This would have been mentioned in another announcement/Digest (May) which will be announced after the maintenance. Here is our Discord Channel: https://discord.gg/6drq7xu
  7. Upvote
    Legend reacted to Mystery in Hercules, welcome to IPB4   
    Hey everyone,
     
    It has been long overdue to bridge over to IPB4... but we are finally here. We ran into a few issues with the transition but we got the forum running within an hour. The forum is now accessible for everyone (maintenance is over), but keep in mind that there are still batches being processed in the backend which may make your experiences in browsing / posting sluggish. Over the next few hours/days, I will be working on the forum; reorganizing a few things, fine tuning, etc.
     
     
    If you run into any issues, don't hesitate to bring them to my attention! 
  8. Upvote
    Legend reacted to meko in Race condition in char server: please update   
    Handling of item storage has been split into a separate packet, but while this fixed a bug, it introduced a race condition, which when exploited allows to duplicate items.
     
    A new patch has been issued and the exploit is no longer reproducible. If you are using a version between e8affc4 and f30edc7 (inclusive) make sure you update ASAP to d2af893 (stable) or later version and compile it.
     
     
    Affected versions, from oldest to most recent:
    e8affc41f106503b530abaa7faa20d6e63b727b8 d966a8e6860d418bb3a235e57928436127eba555 cb3e2f5f3b91d0a1f7711eff9c10ae9a655a74f2 50848cc7f79aa516351e4a4d673df53f4881eb4d 5383a14853327c123cbb037d3680aaa3d8c3e724 8c5b8ac7d87d8d4dc49d3ff1768f8884a0d75d72 7c6673e13fdd75a4137a9d7ef94e04d96e053422 d90e8ce0d8ba8677567a5a5adebb62ba97e8a0b3 b950a589e59e2bf074f67c75aaacf3f82424d4fe 4b208e41d1d5cc995c2816e8f34c1ad8b0a7327d 47a1e679cd35dc2e524fbeb31891d85e497821ce f30edc7f02fb0c290d302d9abc77d970bb05fb62  
     
     
    To know which version you are on:
    start Hercules (login server, char server or map server) it will say something like the following: [Info]: Git revision (src): 'e6ab2a9ec6f5be8927eeca667ff477086f5e2e8e'  
     
    If any other issue is found, this post will be updated.
     
     
    Want to receive email notifications about important issues in the future?
    Go to Repository News and hit the follow button
     
     
    Need help updating to a newer version?
    You can get free support in the #Hercules channel of the Rizon network.
  9. Upvote
    Legend reacted to Sephus in Official Refine Rate Correction   
    As of e171deb58c7 we have the official refine rates from kRO.
     
    Normal Ores
     Refine Shadow equipment Armor Weapon (1st level) Weapon (2nd level) Weapon (3rd level) Weapon (4th level) 1 100% 100% 100% 100% 100% 100% 2 100% 100% 100% 100% 100% 100% 3 100% 100% 100% 100% 100% 100% 4 100% 100% 100% 100% 100% 100% 5 60% 60% 100% 100% 100% 60% 6 40% 40% 100% 100% 60% 40% 7 40% 40% 100% 60% 50% 40% 8 20% 20% 60% 40% 20% 20% 9 20% 20% 40% 20% 20% 20% 10 9% 9% 19% 19% 19% 9% 11 - 8% 18% 18% 18% 8% 12 - 8% 18% 18% 18% 8% 13 - 8% 18% 18% 18% 8% 14 - 8% 18% 18% 18% 8% 15 - 7% 18% 18% 18% 7% 16 - 7% 17% 17% 17% 7% 17 - 7% 17% 17% 17% 7% 18 - 7% 17% 17% 17% 7% 19 - 5% 15% 15% 15% 5% 20 - 5% 15% 15% 15% 5%  
    Enriched Ores
    Refine   Shadow equipment Armor Weapon (1st level) Weapon (2nd level) Weapon (3rd level) Weapon (4th level) 1 100% 100% 100% 100% 100% 100% 2 100% 100% 100% 100% 100% 100% 3 100% 100% 100% 100% 100% 100% 4 100% 100% 100% 100% 100% 100% 5 90% 90% 100% 100% 100% 90% 6 70% 70% 100% 100% 90% 70% 7 70% 70% 100% 90% 80% 70% 8 40% 40% 90% 70% 40% 40% 9 40% 40% 70% 40% 40% 40% 10 20% 20% 30% 30% 30% 20% 11 -  8% 18% 18% 18% 8% 12 -  8% 18% 18% 18% 8% 13 -  8% 18% 18% 18% 8% 14 -  8% 18% 18% 18% 8% 15 -  7% 18% 18% 18% 7% 16 -  7% 17% 17% 17% 7% 17 -  7% 17% 17% 17% 7% 18 -  7% 17% 17% 17% 7% 19 -  5% 15% 15% 15% 5% 20 -  5% 15% 15% 15% 5%  
    Normal Ores - Smelting Event
    Refine Shadow equipment Armor Weapon (1st level) Weapon (2nd level) Weapon (3rd level) Weapon (4th level) 1 100% 100% 100% 100% 100% 100% 2 100% 100% 100% 100% 100% 100% 3 100% 100% 100% 100% 100% 100% 4 100% 100% 100% 100% 100% 100% 5 60% 60% 100% 100% 100% 60% 6 40% 40% 100% 100% 60% 40% 7 40% 40% 100% 60% 50% 40% 8 20% 20% 60% 40% 20% 20% 9 20% 20% 40% 20% 20% 20% 10 9% 9% 19% 19% 19% 9% 11 - 20% 40% 40% 40% 20% 12 - 20% 40% 40% 40% 20% 13 - 16% 35% 35% 35% 16% 14 - 16% 35% 35% 35% 16% 15 - 15% 30% 30% 30% 15% 16 - 15% 30% 30% 30% 15% 17 - 14% 20% 20% 20% 14% 18 - 14% 20% 20% 20% 14% 19 - 10% 15% 15% 15% 10% 20 - 10% 15% 15% 15% 10%  
    Enriched Ores - Smelting Event
       Refine  Shadow equipment Armor Weapon (1st level) Weapon (2nd level) Weapon (3rd level) Weapon (4th level) 1 100% 100% 100% 100% 100% 100% 2 100% 100% 100% 100% 100% 100% 3 100% 100% 100% 100% 100% 100% 4 100% 100% 100% 100% 100% 100% 5 95% 95% 100% 100% 100% 95% 6 80% 80% 100% 100% 95% 80% 7 80% 80% 100% 95% 90% 80% 8 60% 60% 95% 85% 70% 60% 9 50% 50% 85% 60% 60% 50% 10 35% 35% 55% 45% 45% 35% 11 - 20% 40% 40% 40% 20% 12 -  20% 40% 40% 40% 20% 13 -  16% 35% 35% 35% 16% 14 -  16% 35% 35% 35% 16% 15 -  15% 30% 30% 30% 15% 16 -  15% 30% 30% 30% 15% 17 -  14% 20% 20% 20% 14% 18 -  14% 20% 20% 20% 14% 19 -  10% 15% 15% 15% 10% 20 -  10% 15% 15% 15% 10%  
     
    This corrects the previous behaviour of enriched ores which would simple double roll the item refinement.
     
    Script Command Changes
    getequippercentrefinery(<equipment slot>{, <type>}) Example: if (getequippercentrefinery(EQI_HAND_L, REFINE_CHANCE_TYPE_NORMAL) <= rand(100)) mes("Aww");  
    Constants exported to constants.conf are -
    REFINE_CHANCE_TYPE_NORMAL: 1 Retrieves Normal ore refine rate REFINE_CHANCE_TYPE_ENRICHED: 2 Retrieves Enriched ore refine rate REFINE_CHANCE_TYPE_E_NORMAL: 3 Retrieves Normal Event ore refine rate REFINE_CHANCE_TYPE_E_ENRICHED: 4 Retrieves Enriched Event ore refine rate  
  10. Upvote
    Legend reacted to Adel in Adel's Sprite Showcase   
    Fairy Love
     
          
             
     
  11. Upvote
    Legend reacted to AnnieRuru in Maintenance mode   
    Download: 1.5
    plugin
     
    create table maintenance ( id int primary key auto_increment, account_id int, name varchar(23), reason varchar(99), minlv2connect tinyint, order_time datetime, start_time datetime, end_time datetime ) engine = innodb;   .
    remember to enable HPMHooking to enable this modification
    plugins_list: [ /* Enable HPMHooking when plugins in use rely on Hooking */ "HPMHooking", .
    .
    Note:
    sometimes the server countdown jumps 1 second ahead
    this is normal because the timetick from time->add is unstable
    so I use unix_time to synchronize the countdown to server time
     
    .
    .
    so, if you found some script/source code having bugs and you need to shut down your server for a short while
    then you come to the right place
    .
    @maintenance <Group ID can stay 1~99> <duration to kick in minute> <maintenance duration in minute> <reason> then a GM99 can commence the maintenance
     
    Example : '@maintenance 40 5 10 need to fix announcer script'
     
    every player with group ID 40 and below will be kick after 5 minutes
    and the server will start counting down by an announcement,
    during the maintenance of 10 minutes, group ID 40 and below will deny from login into the server
    `maintenance` table will also generate a new line, with the `reason` field as 'need to fix announcer script'
    which is useful to know when and how many times you did emergency server shutdown
    though, the actual reason for using SQL is to persist the data after server shutdown
    so the server will continue being in maintenance mode despite how many times you have shut down the server
    until it times up ( `end_time` field ), or manually do `@maintenanceoff`
     
    Note:
    you can't generate a new line using 'INSERT INTO' Sql syntax when server is online
    because I declare a bunch of variables to for them, for the purpose of saving memory consumption
    you have to login the game and type `@maintenance` to initiate the maintenance mode, otherwise it wont work.
    .
    .
    .
    @maintenanceoff if you have already finished fixing the script/source code, and there's still a lot of time left
    you can type '@maintenanceoff' to immediately turn off the maintenance mode so players can login before the schedule.
    .
    .
    .
    .
    -- Script commands --
    .
    *maintenance <Group ID can stay 1~99>, <duration to kick in minute>, <maintenance duration in minute> { , <reason> }; .
    .
    actually I have no idea why I wanna make a script command ... maybe just for fun ?
    .
    - script jsdfksdj FAKE_NPC,{ OnMon0255: maintenance 40, 5, 60; end; } .
    this will make an announcement on Monday, 2:55AM that the server will have a regular server maintenance starts from 3AM to 4AM
    during that time, player with group ID 40 will be kicked and blocked from entering the server
    the `reason` field in `maintenance` table will be defaulted to '*Regular server maintenance*'
    .
    maintenance 40, 5, 60, "系统保养";
    this will overwrite the `reason` field in `maintenance` table to '系统保养' instead of regular maintenance
    .
    .
    *maintenanceoff { <reason> }; uhh ... useless I think ...
    .
    .
    *maintenancecheck( <type> ); use 'maintenance()' to check the server is currently in maintenance mode or not
    return 0 if server is normal
    return 1 if server is going to have maintenance
    return 2 if server is having maintenance
    all other types are meant to myself to debug this junk
     
     
     
     
  12. Upvote
    Legend reacted to Adel in [Showcase] Adel's Loading Pictures   
    Hello people~
    These are some loading/login screen images made by me.
    ❤   ❤   ❤  Hope you enjoy    ❤   ❤   ❤ 
    Note: Please do not steal these images.
    The Logos have been censored for privacy reasons. I do not take credit for the artwork used in these images.
     

     

     

     

     

     












     
  13. Upvote
    Legend reacted to meko in Event Rewarder   
    Here, I made this for you:
    - script @give FAKE_NPC,{ end; OnCall: .@full$ = implode(.@atcmd_parameters$[0], " "); // put the string back together if ((.@full$ ~= "^([1-9]{1,10}) ([Zz]enys?|[Ii]tems? ([0-9]+)|[Cc]ash(?: ?point)?s?) to (.{1,23})$") == false) { dispbottom("@give : Invalid syntax!"); dispbottom("@give : Proper syntax is @give <amount> <zeny | item <name> | cash> to <player name>"); end; } .@amount = max(1, atoi($@regexmatch$[1])); .@type = ord(strtolower($@regexmatch$[2])); .@item = atoi($@regexmatch$[3]); .@player$ = escape_sql($@regexmatch$[4]); .@player = getcharid(CHAR_ID_ACCOUNT, .@player$); .@char = getcharid(CHAR_ID_CHAR, .@player$); .@count = query_sql(sprintf("SELECT `name`, `char_id`, `account_id` " "FROM `char` " "WHERE `name` = '%s' LIMIT 1;", .@player$), .@player$, .@char, .@player); if (.@count < 1 || .@player < 1 || .@char < 1) { dispbottom("@give : Player not found in database!"); end; } switch (.@type) { case 122: // ZENY if (isloggedin(.@player, .@char)) { charcommand(sprintf("#zeny \"%s\" %i", .@player$, .@amount)); } else { query_sql(sprintf("INSERT INTO `mail` (send_name,dest_name,dest_id,title,time,zeny) " "VALUES ('%s','%s',%i,'%s',%i,%i);", "SRV", .@player$, .@char, "Event Reward", gettimetick(2), .@amount)); } break; case 105: // ITEM if (.@item < 1 || getiteminfo(.@item, 0) < 0) { dispbottom("@give : Item not found!"); end; } if (isloggedin(.@player, .@char)) { getitem(.@item, .@amount, .@player); } else { query_sql(sprintf("INSERT INTO `mail` (send_name,dest_name,dest_id,title,time,amount,nameid) " "VALUES ('%s','%s',%i,'%s',%i,%i,%i);", "SRV", .@player$, .@char, "Event Reward", gettimetick(2), .@amount, .@item)); } break; case 99: // CASH if (isloggedin(.@player, .@char)) { set(getvariableofpc(#CASHPOINTS, .@player), getvariableofpc(#CASHPOINTS, .@player) + .@amount); } else { query_sql(sprintf("UPDATE `acc_reg_num_db` " "SET `index` = `index` + %i " "WHERE `account_id` = %i AND `key` = '#CASHPOINTS';", .@amount, .@player)); } } dispbottom(sprintf("@give : Reward has been delivered to `%s`.", .@player$)); end; OnInit: bindatcmd("give", "@give::OnCall", 0, 99, 0); // <<< MAKE SURE YOU CHANGE THE GROUP ID HERE }  
    Example usage:
    @give 50 zeny to meko @give 69 cash to meko @give 1 item 508 to meko  
    If the player is online the reward is delivered instantly; If the player is offline the reward is delivered via the mail system (except for Cash rewards)
  14. Upvote
    Legend reacted to Mystery in April 2017 Digest   
    April Digest 2017
    The following digest covers the month of April 1st - April 30th 2017
     
     
    Development Highlights
    Implementation of unit controlling script commands  Implementation of Item Options System Add missing non shuffle packets for 2014 - 2015 years. Unequip arrows when a bow is unequipped. (RE only) add getunits() buildin Fix a null pointer in guild->isallied()  Fix wrong parameters in a call to mapif->party_broken()  Monster Vulture's Eye and Snake's Eye removed Update Status ID Update NPC ID Implemented Official Summer 2 Costume Added oktoberfest_ignorepalette configuration Made prevent_logout effect on log-in optional  Removed hard coded values on @cashmount and setcashmount. Added AB_HIGHNESSHEAL in skill_add_heal_rate configuration Removal of cashfood_use_interval setting. Status effects from Cash Food items cannot be removed by death. expose bank vault to the script engine Removal of rare_drop_announce config. Added job checks for @bodystyle command  Tons of Packets Changes and Information  Remove wrong and duplicate packets for 20150226 Fix non shuffle unused packets in 20140305. Fix shuffle packets for 2014-01-15eRagexe. Move packets ZC_SELECTCART and CZ_SELECTCART into past into correct date Fix shuffle packets for 2015-10-01aRagexe. Added the correct PACKETVER Date for MSG_NPC_WORK_IN_PROGRESS message. Add encryption packets for 2016 RE clients. New Packet Additions: 2015-01-07aRagexeRE | 2015-01-14aRagexe | 2015-01-28aRagexe | 2015-02-04aRagexe | 2015-02-25aRagexeRE | 2015-02-26aRagexeRE | 2015-03-11aRagexeRE | 2015-03-25aRagexe | 2015-04-01aRagexe | 2015-04-22aRagexeRE | 2015-04-29aRagexe | 2015-05-07bRagexe | 2015-05-27aRagexe | 2015-06-17aRagexeRE | 2015-06-18aRagexeRE | 2015-08-19aRagexeRE | 2015-08-26aRagexeRE | 2015-10-07aRagexeRE | 2015-10-14bRagexeRE | 2015-10-28cRagexeRE | 2015-11-18aRagexeRE | 2015-12-02bRagexeRE | 2015-12-23bRagexeRE Additional Shuffle Packets 2016-01-27bRagexeRE | 2016-02-03aRagexeRE | 2016-02-17cRagexeRE | 2016-03-02bRagexeRE | 2016-03-09aRagexeRE | 2016-03-30aRagexeRE | 2016-05-11aRagexeRE | 2016-05-25aRagexeRE | 2016-06-08aRagexeRE | 2016-06-15aRagexeRE | 2016-06-30aRagexeRE | 2016-07-06cRagexeRE | 2016-07-13bRagexeRE | 2016-07-20aRagexeRE | 2016-07-27bRagexeRE | 2016-08-31bRagexeRE | 2016-09-07aRagexeRE | 2016-09-21bRagexeRE | 2016-10-12aRagexeRE | 2016-10-26bRagexeRE | 2016-11-09bRagexeRE | 2016-12-07eRagexeRE | 2016-12-14bRagexeRE | 2016-12-21aRagexeRE  
    Database Highlights
    Novice SP Table correction Fix wrong level check for MC_CHANGECART skill Implemented official Giant Fly Wing Effect Update GX Poison items Update Rune Knight Runes & Ores  
     

     
    New script commands: chr ord gettimer getunits getvariableofpc can_use_command has_permission addchannelhandler removechannelhandler setunitdata getunitdata getunitname setunitname getequipisenableopt getequippedoptioninfo getequipoptioninfo setequipoption navigateto   Modified script commands (extra parameters): strcharinfo strnpcinfo addtimer deltimer addtimercount checkoption checkoption1 checkoption2 setoption warpparty warpguild classchange   New params: BankVault  
    Big projects currently in development:
    Implementation of the official Clan system Implementation of the official RoDEX system Implementation of the official Achievements system Complete rewrite of the map cache system  
     Thanks to Meko for posting this information and helping out! 
     

     
    April Statistics
    During the period there were 147 Commits. 31 Commits from Pull Requests with 8 Bugs* fixed from merged issues.  
    *Please note: Bug fixes are counted as references to issues; it does not include bugs that have been fixed without issue reference. The number of commits includes those that were merged.
  15. Upvote
    Legend reacted to meko in Recent changes to the Hercules engine   
    It seems there's been no changelog since quite a while so here's one highlighting the most recent changes related to scripting. Sorry if that's not the right category, please move accordingly.     New script commands: chr ord gettimer getunits getvariableofpc can_use_command has_permission addchannelhandler removechannelhandler setunitdata getunitdata getunitname setunitname getequipisenableopt getequippedoptioninfo getequipoptioninfo setequipoption navigateto   Modified script commands (extra parameters): strcharinfo strnpcinfo addtimer deltimer addtimercount checkoption checkoption1 checkoption2 setoption warpparty warpguild classchange   New params: BankVault  
     
    Big projects currently in development:
    Implementation of the official Clan system Implementation of the official RoDEX system Implementation of the official Achievements system Complete rewrite of the map cache system
  16. Upvote
    Legend reacted to Functor in [20141022] Disable Auras?   
    offset 3DCD80 change 56 to C3
  17. Upvote
    Legend reacted to dualityDiscretion in RO Webcomic [FIN]   
    Last year, I launched a RO-themed webcomic which I've been updating weekly. I've been posting it in several forums and someone told me to share it here too, so I thought why not~
     
    This comic follows Joshua, a newb adventurer who just arrived in Rune Midgard, struggling to understand how the world works, with some helping hands guiding him... kinda...
     
    http://tapas.io/series/PORINGS
     
    Been goin for almost a year, 44 strips so far and going strong. Updated every Friday~
  18. Upvote
    Legend reacted to AnnieRuru in MaxLvExpGain   
    I saw a lot of methods on how to stop players from gaining exp after certain level
    but all of them have flaws, so I release mine, its from my google drive
     
    Download: 1.3
    plugin
     
    Full Description of what this plugin DO
    stop players gain exp through killing monsters, mvp exp, or share party experience allows to gain exp by *getexp script command or BaseExp++ / JobExp++ allows players to pay guild tax exp after they hit your capped level value if your server has heal_exp, resurrection_exp or shop_exp enable,
    they will stop gain exp from these action after they hit your cap level if the player do SA_LEVELUP ( a random skill from Hocos-Pocus ) after the cap level, they can't gain exp if it doesn't follow this list, then this is bug
     
    there is a small issue with this plugin,
    everything else in the above list will still works, don't worry, tested
     
     
  19. Upvote
    Legend reacted to Adel in Adel's Sprite Showcase   
    Mob Sprites
     
             
          
             
       
  20. Upvote
    Legend reacted to meko in little known fact about getarg()   
    When a function is invoked, the arguments are pushed to the stack, but if an argument is a scope variable its reference is also pushed. This means you can access variables of the parent scope from within a function.
     
    function do_something { setarray(getarg(0), 69, 42, 1337); return; } debugmes(.@var[0]); // <= 0 debugmes(.@var[1]); // <= 0 debugmes(.@var[2]); // <= 0 do_something(.@var[0]); debugmes(.@var[0]); // <= 69 debugmes(.@var[1]); // <= 42 debugmes(.@var[2]); // <= 1337  
     
  21. Upvote
    Legend reacted to Jguy in HAT - The Hercules Admin Tool!   
    All,
     
    I am working on an installation "script" to help you walk through the steps to install the panel.
     
    I am also working on a bit of a database re-write which will see some of the field names change to be more uniform. With this, a couple of new tables will be added relating to connection to the Hercules information (most of this will move out of the config directory and into the database).
  22. Upvote
    Legend reacted to meko in Needs testing: bank vault (#1717)   
    EDIT: this PR was merged
     
     
    I need someone to test a certain pull request on the official ragnarok client (is it called Gravity?).
     
    See https://github.com/HerculesWS/Hercules/pull/1717
     
    What needs testing: manipulating the vault from script while the bank window is open and checking if it updates the window accordingly.
     
    Thanks for your time
  23. Upvote
    Legend reacted to meko in Making Square as Basilica   
    the x1,y1,x2,y2 is the square area composed of the coordinates of the top-left tile and the bottom-right tile
     
    Let's imagine a grid of x,y coordinates:
     
    0,0   0,1   0,2   0,3   0,4
     
    1,0   1,1   1,2   1,3   1,4
     
    2,0   2,1   2,2   2,3   2,4
      3,0   3,1   3,2   3,3   3,4
      4,0   4,1   4,2   4,3   4,4
     
     
    Let's say you want the coordinates in red to be basilica;
    The top-left red tile is 1,1 in this case. This would be your x1,y1.
    The bottom-right tile is 3,3. This would be your x2,y2
     
    so you'd write setcell("map",   1,1,    3,3,      cell_basilica, true)
     
     
    If you do not know the coordinates you can simply walk to it with your character and use the @where command
  24. Upvote
    Legend reacted to meko in Help with npc of invasion   
    on line 22 just change "poring" to whatever name you want
    same goes for "INVASION BOSS" on line 34
     
    see https://github.com/HerculesWS/Hercules/blob/master/doc/script_commands.txt#L6072
  25. Upvote
    Legend reacted to Habilis in Automatic SQL database backup   
    Hello guys I wrote an article lately about automatic SQL database backup
     
    For Linux Systems (Sorry Wind0z guys and gals...)
     
    This is the one I'm using for my projects
     
    https://habilisbest.com/sql-database-automatic-backups
     
    Features:
     
    Backups database names specified in a list compresses and stores them Uses filename format for easy retrieval [DatabaseName].YYYY-mm-dd.gz Removes backups older than 28 days (to keep it nice and clean) Writes log files You can configure it to run every 12 hours with cron (crazy server owners...)  
    I run it every 3 days. Because, I don't give a damn about my players I'm confident in my Raspberry Pi server!
     
    Would like your feedback and if you can think of any other features I can develop, please speak up!
×
×
  • Create New...

Important Information

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