Cleaned up Item Groups
- Moved constants from const.txt to script_constants.h.
- Removes hard coded item groups into the IG_* database to easily be adjusted/created.
- Renamed IG_FingingOre -> IG_FindingOre.
Added an additional parameter to instance_enter
This allows easier usage for instances in IM_NONE, where a player will never be attached to the instance.
All you have to do is remember the created instance id and supply this command with it. That way you do not have to use any workaround like the following anymore:
warp instance_mapname( <mapname>, <instance id> ), <hardcoded enter x coordinate>, <hardcoded enter y coordinate>;
Added usage of the new constants in the existing scripts
Fixed default checks and null pointer output
Thanks to @Atemo
* Added new mapflag `hidemobhpbar` to hides monster's HP bar on a map.
* Added maps for this mapflag, credits to @Atemo and @Lemongrass3110
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Replaced hardcoded gender codes in source
Introduced a new constant for the account based gender and replaced all hardcoded gender references to code 99 with it.
* Replaced hardcoded gender codes in npcs
Exported the gender constants into the script engine and replaced all usages with references to the constants instead of expecting a value behind them.
* Corrected a typo
Thanks to Machiezmo from Discord.
* Fixed an inverted gender logic
Thanks to @secretdataz
* Moved constants from const.txt to script_constants.h.
* Removes hard coded item groups into the IG_* database to easily be adjusted/created.
* Renamed IG_FingingOre -> IG_FindingOre.
Enabled commented Item Groups
* Follow up to 50d5c14.
* Retains consistency between constant and ID values.
* Renamed duplicate item groups to avoid compile errors.
* Adapting official multiple storages.
* Added config to defines storages. See conf/import-tmpl/inter_server.conf.
* Added packet IZ `0x388c` for sending storage definitions.
* Added script command `openstorage2` to open premium storages.
* Removed `sd->storage_size`, replaced by `sd->storage.max_amount`. The value is defined in inter_server.conf in storage entries.
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
WoE:Training Edition implementation
* Added a new version of WoE, WoE:TE which forbids 3rd class and 2nd expanded class from joining.
- 10 new WoE castles.
- New zone for job_noenter_map.txt
- Various items are restricted.
* New monsters for the guild dungeon.
* Initial release of `nocostume` map flag to follow official `DISABLE_COSTUMEITEM` map property.
* Added map flag `nocostume`, current confirmed maps are TE Castles and Guild Dungeons.
* Fixed#815.
* Stores `setlook` values so it won't be removed on `nocostume` mapflag
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Clean up doc and array index check for `getequiprandomoption`, `setrandomoption`, follow up 8deabb157a
* Exported CARD0_FORGE, CARD0_FORGE, and CARD0_PET for `getequipcardid` result.
* Add `SCSTART_` references in `sc_start` doc.
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Added basic support for random option system
* Don't forget to import upgrade_20160814.sql and upgrade_20160814_log.sql to make your existing rAthena installation functional!
Fixes#1497.
Thanks to @Darkelfen for reporting it.
Additionally exported the EQP_* constants into the script engine.
Replaced some hardcoded equip positions with their respective constants.
* `bonus2 bDropAddRace,r,x;` : Adds x% to player's drop rate when killing a monster with race r.
* `bonus2 bDropAddClass,c,x;` : Adds x% to player's drop rate when killing a monster with race c.
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Properly implemented the Cloud Kill status icon.
* Poison duration is not reduced and lasts if the target leaves the AoE.
- Walking into the AoE a second time resets the Poison status.
Expanded the instance system to support new modes
* New modes include: No player attached, single player, and guild.
* Modified the instance_db to allow instance idle time to be adjustable.
* Removed Map1 from the instance_db as the EnterMap is always the same value.
* Adjusted the stored maps of instances to dynamic arrays to conserve memory.
- Max amount of possible maps increased to 255.
* Instances will now be destroyed even if the owner cannot be found.
* Corrected the return value when entering an instance when a character, party, or guild does not have an instance.
* Expanded script command instance_create to take in an owner ID and an optional mode.
* Added a new script command instance_check_guild (works the same as instance_check_party).
* Corrected a few script commands to properly stop the script engine on failures for instance script commands.
* Removed the instance name lookup for when entering an instance as instance_id is now passed.
- Adjusted script command instance_enter to no longer require the instance name.
* Cleaned up script command instance_warpall.
* Adjusted script command instance_announce to check when instance ID is 0 rather than -1 since instance IDs are stored as unsigned now.
* Refactored all instance_id to unsigned short.
* Updated documentation to reflect changes.
* Works the same as script command transform and can be stacked with it as well.
* active_transform has display priority if transform is active.
Thanks to Ziu and @Darkelfen!
* New modes include: No player attached, single player, and guild.
* Expanded script command instance_create to take in an owner ID and an optional mode.
* Added a new script command instance_check_guild (works the same as instance_check_party).
* Refactored all instance_id to unsigned short.
* Increases an equipped weapon's ATK/MATK by given rate.
* bWeaponMatkRate does not work in pre-renewal as there is no MATK for weapons in pre-renewal.
* Renamed 'bonus2 bWeaponAtkRate' to 'bonus2 bWeaponDamageRate'.
- Seems to be unused in the current item database.
- Damage fits the bonus name better as it increased the final damage, not the weapon's attack specifically.
* This rewrite allows for better adaptation from the Aegis Class and Attribute fields.
* Refactored the renewal level penalty function.
* Slaves are now properly assigned an official slave mode of CanWalk, CanAttack, and NoRandomWalk.
* Removed extra Boss checks and adjusted others to use their proper functions.
* Properly implemented Skill Immunity mode to match Aegis.
* Separated MVP and Boss modes.
-- MVP mode defines when mobs should give MEXP, MVP Drops, and show the MVP sign.
-- MVP now have their own item drop configurations.
* Updated the mob_db and mob_skill_db to match the new mode structure.
-- Included a Perl tool (tools/convert_monstermode.pl) to allow people to convert their custom mobs to the new mode structure.
Thanks to @Playtester and @Lemongrass3110 for help with debugging and information!
The EQI constants of the constants database did not match the ones used in the source up to now.
For whatever reason long long ago an array was created which mapped the const_db EQI constants to the source's EQP constant(aegis bitmasks).
With this commit we now use the already existing array from pc.h(which was moved from pc.c to be accessible).
This merges and closes#1147 due to follow up changes with 1cd3741.
* Added bonus `bonus bCriticalLong,n;`.
* Add critical rate for normal long range attack.
* Bonus value won't be showed in status window.
* Updated item script following official (Aegis) script for:
* Sharp Arrow (1764/Incisive_Arrow)
* Drosera Card (4421/Drosera_Card)
* Upd Bow Guardian Card (4550/Upd_Bow_Guardian_Card)
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Requires client 2015-10-01 and newer.
* All skills are usable from from the base list to all 3 branch types.
-- Some skills still need their official activation chance and durations.
* Adjusted the char-server start point and start item split functions to be more dynamic.
Thanks to Rytech and @NovaRagnarok for their information!
* Added missing UMOB_CANMOVETICK option.
* Restructured script command getunittype return values to match the order of script command getmapxy to allow for more universal usage.
* Created constants for script commands getmapxy and getunittype.
* Updated NPCs using script command getmapxy to use the new constant values.
* Updated Battleground NPCs to use constant value for script command setunitdata.
Added the missing status icons(which were not in const.txt when converting it).
Also validated the status changes and removed the TODO mark since all of them are exported correctly.