* Added array variable option in 3rd param of `getguildmember` and `getpartymember`, so the script will returns the result in reserved array instead using temporary global variable.
* Also, the script returns the member found directly.
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Fixes#447 - Added script command 'unitblockmove' to be used with OnTouch and Unit Commands.
* Fixes#448 - Leech End will no longer get a player stuck in stand/sit modes.
* Fixes#503 - Added script command 'ignoretimeout' which disables the SECURE_NPCTIMEOUT of a specific script.
* Fixes#521 - Pre-renewal Shield Chain should always be Neutral damage.
* Fixes#532 - Fixed an issue with the 'item_check' config not saving the unique ID when enabled.
* Fixes#537 - Arms Cannon is now a single unit target skill.
* Fixes#541 - Cleaned up Ignition Break damage formula.
* Fixes#543 and Fixes#552 - Cleaned up Reverberation to match official. Now splits damage among targets.
* Fixes#546 - Updated Randomize Spell to the latest official skill list and rates.
* Fixes#547 - Escape is now a self skill and can use normal Traps if no Alloy Traps are available.
* Fixes#551 - Great Echo and Sound of Destruction can now blocked by Pneuma.
* Fixes#556 - Adjusted Arrullo, Deep Sleep Lullaby, Netherworld, and Voice of Siren duration formulas to properly account base/job levels.
* Fixes#561 - Pre-renewal Tiger Cannon now properly removes HP when casting skill.
* Fixes#576 - Shield Spell, Exceed Break, Overbrand, Moon Slasher, Piety, Earth Drive, and Hesperuslit no longer have fixed cast time.
* Cleaned up Shadow Formation SP Drain formula to be 11-skill_lv per second.
* Sound of Destruction is now a placement skill type.
* Updated variable cast time for Windmill Rush from 2 seconds to 1 second.
* Removed `ENABLE_ITEM_GUID` from src/config/core.h, after long time introduction it's worth to be enabled by default. Just remove all items with GUID flag if want to remove it generates GUID .
* Implemented client interface to merge the items. Packet struct credits: 856b6f1feb
* Edited `mergeitem` script command to use the interface, moved the 'old' `mergeitem` to `mergeitem2`.
* Fixed the behavior to add GUID'd item to inventory in Cash Shop.
* Updated item_flag.txt for listing `IT_CASH` items (item type 18).
* NOTE: `IT_CASH` items which defined in item_flag.txt with flag `4`, cannot be merged.
* NOTE: Please check the packets for older clients. Tested work on 2012-04-10, 2013-08-07 and 2014-10-22.
* NOTE: Please import 'upgrade_20150804.sql' for MySQL Log Database.
* Removed duplicate clif functions:
* `clif_msgtable()` -> `clif_msg()`
* `clif_msgtable_num()` -> `clif_msg_value()`
* Item DB Updates:
* Indonesia_Box2 (17079) should gives 5x Wing_Of_Butterfly (602).
* Changed some item types to 18.
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* waitingroomkick "<NPC object name>" , "<character name>"; Kicks one player, there was just a method for several players
* getwaitingroomusers "<NPC object name>"; get the mumber of players inside a waitingroom and the rids.
* Removed hardcoded message that displayed clif_showscript for `transform` script, replaced its usage for item script by using `showscript`.
* Changed unittalk usage on `F_Cat_Hard_Biscuit` and `F_Rice_Weevil_Bug` function in quests_malangdo.txt.
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Upgraded the script engine variables to no longer be limited.
* Increased array limit from 127 to 2 billion.
* Improvement in overall speed and storage size.
* All variable types now support arrays.
- Merge from HerculesWS/Hercules@82b583b. Thanks to those who worked on it.
* Fixes#158 - Implemented 'getvar' script command to avoid blindly attaching players and messing up their NPC progress.
* Fixes#449 - Fixed 'unitskilluseid' and 'unitskillusepos' not casting skills that require stat info when the NPC's status wasn't loaded.
* Implemented 'getunittype' script command to return the object type of the given GID.
* Adjusted 'unitwalk' to support an Event Label which is executed when the object reaches the target.
* Added 'unitwalkto' when giving a target GID rather than coordinates. Also supports Event Labels.
- Thanks to @cydh.
* Follow up 9d389f4de42840b8d05244ad48c214100c7c7d05
* Reduce the succes rate for 19020 combos and 18934. Because of misread the autobonus doc.
* Completed bonus for 18934,Fox_Ears_Bell_Ribbon (the critical and long ranged attack bonus)
* Fixed item bonus for 18857,Curupira_Hat, somehow it was using 18856,W_King_Tiger_Doll_Hat effect.
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Follow up df2f850c, correcting `class_idx` usage that should be compared with `enum e_job` in `pc_calc_basesp` and also in `pc_calc_basehp`
* Follow up 308c4779, fixed typo fix
* Makes `instance_id()` doesn't show debug message when it return 0 for instance id
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
- Changed "ACTIVEPATHSEARCH" to only work with real walls and not walls you can shoot through
* Seems the position lag for which I have implemented this no longer occurs on my client (was something changed?)
* Previous implementation prevented monsters from attacking you through shootable walls
* Special thanks to Michi for notifying me about this issue
Credit @Playtester
* Replacing 'rand()' leftwover with 'rnd()' of mt19937ar
* Cleaned up script commands related with item group: 'groupranditem', 'getrandgroupitem', 'getgroupitem'
* Corrected item scripts that are using 'getrandgroupitem'
* Updated script command and item group doc
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* New shop script definition: `<map name>,<x>,<y>,<facing>%TAB%marketshop%TAB%<NPC Name>%TAB%<sprite id>,<itemid>:<price>:<quantity>{,<itemid>:<price>:<quantity>...}`
* Added script command to update shop NPC: 'npcshopupdate "<name>",<itemid>,<price>{,<stock>}'
* Added NPCMarketDB (DBMap) for market data persistance method.
* Added `market_table` definition for market table in conf/inter_athena.conf.
* Thank to @aleos89, @Lemongrass, @icxbb-xx, merged HerculesWS/Hercules@cf19b26.
NOTES:
* Minimum client needed 2013-12-23 (but this client has bugs there-and-there).
* There's new table, see `upgrade_20150327.sql`.
* Market shop doesn't support discount.
* Added items by script `npcshopitem` or `npchopadditem` will be assumed as persistance items, will be loaded on next script reload or server start even market_shop NPC does't list them (unless NPC is not exists, entries will be removed).
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
* Updated setunitdata to recalculate the object's information and update the client immediately.
* For setunitdata, map name can also be passed in as a valid value instead of map ID.
* Added mapid2name script command.
* Added status_set_maxhp and status_set_maxsp functions.
* Updated documentation to reflect changes.
* Added getunitname, setunitname, getunitdata, and setunitdata script commands.
- getunitdata and setunitdata are open to suggestions for more values.
* Split unitstop to unitstopattack and unitstopwalk.
* Expanded unitskilluseid and unitskillusepos to be able to adjust casttime of skill.
* Added two new monster modes: MD_NORANDOM_WALK and MD_NOCAST_SKILL.
* The areamonster script command now saves spawned monster game IDs in an array called $@mobid[].
* Adjusted other monster spawning script commands to return game ID.
* Updated documentation to reflect changes.
* Fixed#119 - Corrected Flash Combo weapon ATK and to cancel skill cast when target is more than 2 cells away.
* Fixed#148 - Corrected Kings Grace to only cast on guild members in versus type maps and added missing effects. Updated cooldown from 60 to 90 seconds.
* Fixed#341 - Offertorium and Magnificat now cancel each other out (Mimics Kyrie Eleison and Assumptio).
* Follow up to 5a0f8dc. Added missing monster transformation bonuses.
* Updated the Status Icon list with newer icons.
* Changed skill_db array to better memory allocation.
* Reduced MAX_SKILL_LEVEL from 100 to 10 (part of Hercules 0f4a50d135), also has changes on skill_get checks for skill level that more than 10.
* Reduced MAX_SKILL from 5020 to 1200 (actually only 1109 skills are used).
* Added macros for checking Homunculus, Guild, Mercenary, & Elemental skill ranges.
* Added skill check & index validation when player logged in and when @reloadskilldb.
* Corrected `enum e_skill_flag` order for SKILL_FLAG_REPLACED_LV_0's sake.
* Merged 'addtoskill' script command just as alias of 'skill' script command.
* Fixed#277
* Changed 'skill' script command flag to constant value
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
NOTE:
* Decreased memory usage by map-server reduced up to 50 MB.
* Decreased memory for each player because of mmo_charstatus::skill[] only has 1200 array, before is 5020.
* Please use skill_get_index() for accessing sd->status.skill[] or skill_db[], don't reckless use skill_id as array index.
* Please import upgrade_20150211_skillset.sql
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
* Changed skill_db array to better memory allocation.
* Reduced MAX_SKILL_LEVEL from 100 to 10 (part of Hercules 0f4a50d135), also has changes on skill_get checks for skill level that more than 10.
* Reduced MAX_SKILL from 5020 to 1200 (actually only 1109 skills are used).
* Added macros for checking Homunculus, Guild, Mercenary, & Elemental skill ranges.
* Added skill check & index validation when player logged in and when @reloadskilldb.
* Corrected `enum e_skill_flag` order for SKILL_FLAG_REPLACED_LV_0's sake.
* Merged 'addtoskill' script command just as alias of 'skill' script command.
Summary:
* Decreased memory usage by map-server reduced up to 50 MB.
* Decreased memory for each player because of mmo_charstatus::skill[] only has 1200 array, before is 5020.
* Please use skill_get_index() for accessing sd->status.skill[] or skill_db[], don't reckless use skill_id as array index.
NOTE:
* Please import upgrade_20150131_skillset.sql
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
* Removed fixed array size (MAX_PC_BONUS_SCRIPT) of bonus_script on players.
* Changed fixed script string on player's bonus_script to StringBuf, reduce memory usage for each connected player.
* Added new flags to expand duplicated script and flag to allow duplicate script.
* Reduced buf lenght from 1024 to 512 on bonus_script_data (used for saving/loading bonus_script from char-server). Still, MAX_PC_BONUS_SCRIPT is used to gives limit data can be loaded.
NOTE:
Please import 'upgrade_20150131.sql' for `bonus_script` table changes
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
* Separated pet_db for Renewal & Pre-Renewal to avoid non-existant monster in different mode.
* Cleaned script command in pet_db.txt file, just point it to doc/script_commands.txt. Read them there!
* Separated damage value for petskillattack2 to its own var 'damage', that previously use 'lv' var to store the value.
* Added config 'pet_ignore_infinite_def' in conf/battle/pet.conf,
* If disabled (val:"no"), fixed damage from pet script 'petskillattack2' will be adjusted to 1. Example, just like player attacks Shining Plant.
* Enabled by default. Previously, fixed damage ignore the infinite defense, that's why it's enabled by default.
* TODO: Correcting the logic and maybe also confirm the correct behavior!
* Added validation for pet script commands,
* Skill for petskillattack, petskillattack2, & petskillsupport
* SC range for petrecovery.
* Cleaned up some source documentation.
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
* GUID
- `guid` field in official PackageItem.lua supposed to make item will be separated even item is stackable item.
- Currently `guid` usage is using item Unique ID that generated when item with GUID flag is appear from package.
- Some item containers in official PackageItem.lua are also separated, not stacked when player obtain it. Example when using atcommand "@item Xmas_Bless". For current implementation, the items are flagged in item_flag.txt (db folder) with flag 4.
- `isNamed` field in item group is replaced by `GUID` and move the `isNamed` as new additional field. See doc/item_group.txt or db/re/item_package.txt.
* NPC:
- Enabled npc/re/other/item_merge.txt and it's now usable.
* Script Command:
- Added `mergeitem` to merge separated items in player's inventory. See doc/script_commands.txt.
* Misc:
- Changed how to broadcast the item that obtained from package with flag `isAnnounced` to intif_broadcast, so it will be announced to all connected map-servers.
- Added some items that flagged as 'item group container' in db/re/item_flag.txt
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>