* Added config to hide last chars of player's name `broadcast_hide_name` and its default value is 2.
* Fixed `getgroupitem` that should give unidentified item for equipment types.
* Added optional param for `getgroupitem` and `getrandgroupitem` to always give player identified item, ignores the `itemdb_isidentified`'s check.
* Thanks to @aleos89 @Lemongrass3110
* Fixes#2703.
* Added alternative for script command bpet: birthpet.
* Added alternative for script command pet: catchpet.
* Updated documentation for script command pet.
* Added PET_CATCH_UNIVERSAL_ITEM for script command pet which will attempt to catch the targeted monster as long as it is in the pet database and the targeted monster requires the lure item used.
Thanks to @sader1992!
* Fix#2425 Character variable lengths and char-server
Medium term fox for crash on char-serv caused by too long character variable.
Add few error msg and safety.
Add npc/test/npc_test_longvar.txt as a basic test.
NB:
The config.in for max_colum size if not really set as best would either retrive that value from sql, or use the same config file to actually set the sql column size...
May be handle later with some kind of hibernate ORM.
Thanks to @Tokeiburu, @aleos89, @Lemongrass3110.
* Fixes#2682: `getitem3`, `delitem3`, and `countitem3` always fail if `RandomValueArray` or `RandomParamArray` are not defined (Not all Item Options need 'Value' and 'Param')
* Thanks to @rAthenaCN
* Refactored achievements to utilize C++ features
* Cleaned up the YAML parser.
* Moved achievements from DBMap to an unordered_map.
* Moved achievement targets from DBMap to a vector.
* Changed all struct arrays into vectors.
* Changed all char arrays to strings.
* Changed all int arrays to std::arrays.
* Removed achievement_dummy as it's no longer needed.
* Achievements now use smart pointer to ensure proper construction and deconstruction of objects.
Thanks to @lighta!
With this the internal static array was changed to a std::map which manages it's memory dynamically when needed.
Dropped mob_dummy since it was useless to have it in the first place.
Replaced a lot of direct accesses to the mob db by the "get" function.
With this you can now use 20021-31998 for monsters and also 4000-20020 will be used for player clones whenever needed.
Dropped mobdb_exists
Replaced almost all references to MAX_MOB_DB
Moved MAX_MOB_DB from the header directly into the source file to make it only visible to the .cpp file itself and not to any other.
Moved the mob drop calculation function from itemdb.cpp into mob.cpp, because it needs to iterate over the whole mob db.
Added a few missing clone checks.
Thanks to @lighta, @Jeybla and @aleos89.
This PR change the emoticons constant name to match emoticonlist from client side.
Note: the previous emoticons names are now deprecated.
Additionnally emotion and unitemote scripts commands are being merged together to the new format
-> emotion <emotion number>{,<target>};
Where target use the target Game ID (GID) of the unit (npc, pet, character etc..).
* unitemote is now deprecated.
* Additionnally fixed incorrect variable in quests_brasilis.txt
Thanks to @aleos89 and @Lemongrass3110 !
* Initial progression of moving the map-server to C++ format.
* Converted all core files to .cpp and header files to .hpp.
* Refactored the refine database parser to utilize native YAML C++.
Thanks to @Jeybla and @lighta for their help!
* Moved all npc view constants into src
Source side the constants will use Gravity's naming standard(JT_*)
NPC side still supports the old names without JT_
* Moved all effect constants into src
Added check for effect validation to atcommand effect and all script commands using them
Removed the unused and broken function unit_changeviewsize from unit.c
Replaced a lot of hardcoded effect ids with their respective constants
Cleaned up the effect documentations
* Moved all hat effect constants into src
Added check for effect validation to script command hateffect
* Updated callshop selling list variables
* Updated script command callshop OnSellItem list to include random item options.
* See documentation for more information.
* Closes#2205
* The SCRIPT_CALLFUNC_CHECK define was to enforce function
calling with callfunc in scripts. Because I don't think calling
functions without callfunc will give us performancy issues,
this check is simply removed by this commit.
* When pk_mode and pk_mode_mes is enabled, the player gets notified joining a pk-zone map.
* It's now possible to specify the target in showscript.
Default is still AREA.
* pk_mode_mes is now using showscript to SELF.
* Thanks to @Atemo, @RadianFord, @Lemongrass3110, @aleos89
* Fixes#2445 and fixes#2446.
* Fixed shadow refiner.
— The script uses the values of the array instead of the indexes to loop through it.
* Fixed segfault in getequiprefinecost.
— No checks in getequiprefinecost meant there were possibilities using negative indexes in arrays.
* Added to the script documentation what happens on failure when calling getequiprefinecost (it returns -1).
Thanks to @vstmpf, @crazystorm2017, and @hendra814!
* Converted refine_db.txt to refine_db.yml
* Refine success rates can now be set in refine_db.yml. rAthena's default NPCs will respect this database by default.
* Added shadow equipment refiner
Thanks to @Akkarinage @aleos89 @Atemo and @Mikegyver for their inputs.