Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 05/01/18 in Posts

  1. 6 points
    bWolfie

    [Guide] Mapcache Generation 2018

    As of Release v2018.03.13, the method to generate mapcache for Hercules has changed. A lot of people. myself included, were confused as to how it works. In this thread, I will do my best to explain the new way to generate your cache. This guide is intended to help people using the old system, not to aid new people (i.e. never generated mapcache before), so if you are new, some of it may seem like alien talk. Old (your source predates [is older than] Feb 18, 2018) In the old system, there were two ways to generate mapcache You could run the mapcache executable in Hercules root folder. Or use a program such as WeeMapCache to edit in your required mapcache. These two methods would generate or alter your required mapcache located in db/[pre-re or re]/map_cache.dat. However, they are no longer supported. New (your source is using Release v2018.03.13 or newer) The new system involves the use of the new 'mapcache' plugin to generate files. Some quick points: db/[pre-re or re]/map_cache.dat has been dropped (no longer supported). In its place are individual .mcache files for every map located in maps/[pre-re or re]/ Mapcache executable has been removed. Replaced with the mapcache plugin (src/plugins/mapcache.c). How to generate the mapcache? Same as before, check conf/map/maps.conf and db/map_index.txt have all the maps you want to cache. Your maps need to exist somewhere in your repository! There are two ways for the plugin to find them: a. Place all your maps, including resnametable.txt, inside the data folder of your Hercules repo. I.e. Hercules/data/prontera.gat/gnd/gnd/rsw (note: I forget if all three files are needed). b. OR Configure your conf/grf-files.txt to tell it where to find your GRF(s) which contains your maps. Build the mapcache plugin. On linux, this can be done by running the following command: make plugin.mapcache If using MSVC, compile as you would any other plugin. Execute plugin. This can be done using the following command: ./map-server --load-plugin mapcache [param] In windows, just remove the './' and run the commands in your command prompt. The params: The first thing you should do is run ./map-server --load-plugin mapcache --help A list of usable parameters will appear. Here are the ones you need to know for mapcache: [Info]: --convert-old-mapcache Converts an old db/pre-re/map_cache.dat file to the new format. [Mapcache] [Info]: --rebuild-mapcache Rebuilds the entire mapcache folder (maps/pre-re/), using db/map_index.txt as index. [Mapcache] [Info]: --map <name> Rebuilds an individual map's cache into maps/pre-re/ (usage: --map <map_name_without_extension>). [Mapcache] [Info]: --fix-md5 Updates the checksum for the files in maps/pre-re/, using db/map_index.txt as index (see PR #1981). [Mapcache] ./map-server --load-plugin mapcache --convert-old-mapcache Rebuild all the .mcache files using your old db/[pre-re or re]map_cache.dat file. NOTE: You should only run this command when you have an old map_cache.dat file you need to convert. ./map-server --load-plugin mapcache --rebuild-mapcache Rebuild all the .mcache files using your map files specified in step 2 of generation. NOTE: You should only run this command in special circumstances. This erases ALL the existing mapcache and rebuilds it with whatever files you provide it. If you don't have the required files, the build will fail and you will be left with missing mapcache files, meaning you won't be able to access those particular maps. ./map-server --load-plugin mapcache --map <name> Rebuild the .mcache file for the map name you specify. E.g. if you replace <name> with prontera, the maps/[pre-re or re]/prontera.mcache file will be rebuilt. NOTE: This is the best command to run, as it only caches a single map at a time. ./map-server --load-plugin mapcache --fix-md5 I don't know what checksum is for. The End Feel free to ask for help here. I'll try to answer questions re: mapcache if possible. And if you think anything needs correcting or added, let me know. Hope this helps!
  2. 2 points
    =General *This is the revisiting of the Kagerou/Oboro skills to bug fix and update the skills for them. *Cleaned up and optomized some code. =Skills *Kagerou/Oboro +Fixed a issue where none of the skill cast times were interruptable. *KO_HAPPOKUNAI (Spray Kunai) +Recoded the skill. +Damage is now ranged physical. Basicly a stronger version of Throw Kunai. *KO_MUCHANAGE (Over Throw) +Recoded the skill. +Damage is no longer reduced in GvG/BG areas. +Damage is no longer reduced by half on enemy players. +Success chance of hitting is now seprate for each enemy target. +Damage is now divided between enemys detected in AoE. -This means its divided based on the number of enemy's detected in the AoE -and not by the number of enemys hit. *KO_HUUMARANKA (Launch Huuma Shuriken) +Damage no longer split between targets. *KO_MAKIBISHI (Makibishi) +Recoded the skill. +Fixed a issue where it didn't follow the rules of AoE placement. +No longer ignores elemental adjustments. +No longer stacks on top of each other. +Stun duration is now fixed and can't be reduced. +Now places the proper number of makibishi depending on skill level used. *KO_MEIKYOUSISUI (Clear Meditation) +Recoded the skill. +Skill now makes the caster sit when the status starts. If the caster stands up -at will or gets forced to stand up, the status will end. This also prevent's -the caster from being able to move or use any skills while active due to sitting. +Now has a chance of making any attack completely miss the caster while active. +Now removes a single debuff by random on use. The following can be removed.... -Poison / Curse / Silence / Blind / Fear / Burning / Frost / Crystalize. +This behavior is official according to zone scans but a bug does exist on official -where the skill use animation would stop the caster from sitting, allowing -exploiting of skill uses. I coded it to prevent this issue from happening. *KO_KYOUGAKU (Illusion - Shock) +Recoded the skill. +Now has a success chance reduceable by the target's INT. +Duration is now reduceable by the target's INT. +Now only usable in GvG and Battleground maps and on enemy players only. +Will now fail if used on a target already affected by this skill. +Affected target can no longer switch or unequip equips. *KO_JYUSATSU (Illusion - Killing Curse) +Now only usable on enemy players. +Now reduces the affected target's current HP if the chance of curse is successful. *KO_ZENKAI (Spread Seals) +Can no longer be stacked on top of each other. +Random status chance is now applied every second. +Random status success chance is now 100%, but is reduceable by stats and equips. +Durations of the random status's is now set to their original defaults. +Friendly player's standing in the AoE will now get a WATK increase if the weapon -element is the same as the AoE's element. *KO_IZAYOI (16th Night) +Updated the MATK increase formula. +Corrected the animation handling. *KG_KAGEHUMI (Shadow Hold) +Corrected the animation handling. +Fixed a issue where affected player's didn't stop moving. +Affected targets will not beable to use the following skills for the duration... -Hiding / Cloaking / Cloaking Exceed / Camouflage / Shadow Form / Dark Cloud -Also blocks the use of any teleporting methods including fly/butterfly wings.
  3. 1 point
    Asheraf

    kRO unpacked clients releases

    Discontinued. Clients without themida protection can be downloaded at http://nemo.herc.ws/downloads/
  4. 1 point
    AnnieRuru

    Advance SQL commands

    1. When to use escape_sql script command . input .@haha$; dispbottom .@haha$; dispbottom escape_sql(.@haha$); it doesn't has much differences, because it only affect 3 special characters ' <- single quotation mark " <- double quotation mark \ <- left slash if I input -> haha"lala'hehe <- it will return -> haha\"lala\'hehe <- this is what we call, Escape a character in hercules script, we also know we can use " symbol in any string input mes "Susan says :\" Today I ate 3 eggs \"."; where in the game client, you can see the " symbol in the npc msg box let's say I have a sql script like this prontera,153,171,5 script Show Characters 1_F_MARIA,{ mes "input name, I'll show you all characters name it has on that player's account"; input .@name$; .@nb = query_sql("SELECT `char_id`, `name` FROM `char` WHERE `name` LIKE '"+ .@name$ +"'", .@cid, .@name$); if ( !.@nb ) { mes "no result"; close; } for ( .@i = 0; .@i < .@nb; ++.@i ) mes .@cid[.@i] +" "+ .@name$[.@i]; close; } this script has a possibility to be hacked because to perform sql injection, I can enclose the string with quotation mark, then use another sql command to hack BUT with an escape_sql command, if the user want to enclose the string with quotation mark to hack the script the escape_sql command escaped the string, the quotation mark the user input will be escaped thus the script will become impossible to hack just now that script was for string input prontera,153,171,5 script Show Characters 1_F_MARIA,{ mes "input account ID, I'll show you all characters name it has on that player's account"; input .@aid$; .@nb = query_sql("SELECT `char_id`, `name` FROM `char` WHERE `account_id` = "+ escape_sql(.@aid$), .@cid, .@name$); if ( !.@nb ) { mes "no result"; close; } for ( .@i = 0; .@i < .@nb; ++.@i ) mes .@cid[.@i] +" "+ .@name$[.@i]; close; } this is another stupid case. 1. the scripter use string input while the script just needed a number 2. even with escape_sql command over there, there is no quotation mark at all yes this script also has a risk to be hack because escape_sql only escape quotation mark. that hacker don't even have to input quotation mark because it is a number and an injection query can be sent without any quotation mark input there are 2 ways to solve this either use numeric variable for the input command or enclose that .... ..... WHERE `account_id` = '"+ escape_sql(.@aid$) +"'", .... with single quotation mark, when the hacker input a quotation mark will be escaped by escape_sql command Reference : https://www.w3schools.com/sql/sql_injection.asp escape_sql command for another thing is if the player register their names containing ' or ", these characters are escaped only happens when the server have no restriction on the creation of players name hercules\conf\char\char-server.conf // Manage possible letters/symbol in the name of charater. Control character (0x00-0x1f) are never accepted. Possible values are: // NOTE: Applies to character, party and guild names. // 0: no restriction (default) // 1: only letters/symbols in 'name_letters' option. // 2: Letters/symbols in 'name_letters' option are forbidden. All others are possibles. name_option: 1 and this was what happened to my SQL dota pvpladder script Silo's Babies <-- this is a guild name you can see the 5th string has a single quotation mark with escape_sql command, that string will turn into Silo\'s Babies <-- the quotation mark is escaped when send to sql query
×
×
  • Create New...

Important Information

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