Commit Graph

439 Commits

Author SHA1 Message Date
Cydh Ramdh
46b1de7d50 Initial release 'premium' storage
* 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>
2016-11-01 09:08:55 +07:00
Cydh Ramdh
17946ea286 Fixed Cart save issue for vending (#1551)
* Added check if cart need to be saved first or not before vending
* Removed `id` from item struct when new item added to cart.
  * The `id` value from inventory is never be used, on relog, `id`s for cart are always use 'real' value from table.
  * 0-ing the value also prevent wrong `id` number while inserting records to `vending_items`.
* Ordered by `id` whiel loading cart items from table.
* Initialize `sd->inventory`,  `sd->inventory`, and `sd->storage` to 0 on `pc_authok`

Signed-off-by: Cydh Ramdh <cydh@pservero.com>
2016-09-11 06:40:03 +07:00
aleos89
7a05b59dd1 Merge branch 'master' into cleanup/storages_optimization 2016-09-06 13:40:01 -04:00
Atemo
23b271c958 Initial release of nocostume map flag (#1137)
* 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>
2016-09-06 11:34:36 +02:00
Jittapan Pluemsumran
9d51221f33 Merge branch 'master' into itemskill 2016-09-02 16:50:47 +07:00
Jittapan Pluemsumran
a79d065973 Implemented new item bonuses bRegenPercentHP and bRegenPercentHP 2016-08-31 23:37:57 +07:00
Jittapan Pluemsumran
668690d028 Expanded itemskill script command to allow skill requirements checking 2016-08-31 19:39:42 +07:00
aleos89
bd36b294ad Merge branch 'master' into cleanup/storages_optimization 2016-08-30 19:40:36 -04:00
Cydh Ramdh
d84d6ba1e5 Initial release: Map X Job restriction (#1526)
* Listed job with matched map zone is restricted to enter the map.
* Added db file `job_noenter_map.txt` with format: `JobID,FlagZone,GroupLevelBypass`.
* Reserved usage for WOE:TE implementation.
* Typo correction, thanks @aleos89 @Lemongrass3110
2016-08-30 22:09:02 +07:00
Aleos
c575fede4f Merge pull request #1495 from rathena/cleanup/skill_tree
Skill Tree cleanup
2016-08-17 20:17:37 -04:00
Jittapan Pluemsumran
f296409ada Initial Release of Random Option System
* 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!
2016-08-14 22:21:07 +07:00
Lemongrass3110
ede39b1730 Refurbished hat effects
Follow up to 5da49b8
Thanks to @cydh for the good base in #1465.

Renamed the function from itemeffect to hateffect.
The effects now get sent to other players as well.
You can enable or disable one effect at a time with the script command now.
2016-08-13 21:56:58 +02:00
aleos89
e40c88ecbf Skill Tree cleanup
* Added an optional base level requirement for skills.
* Refactored some variable types and names.
2016-08-11 18:31:59 -04:00
Jittapan Pluemsumran
5f981bc1b1 Implemented bNoMadoGear item bonus
* Support for upcoming Charleston cards
2016-08-07 18:20:30 +07:00
aleos89
842e30ed8a Corrected progress bar behavior (fixes #1425)
* Skills/Items, that have pop-up menus, or active NPC send a work in progress message if players try to do anything else.
* If a progress bar is active the first attempt to walk cancels the progress bar while the second walk attempt moves the player.
* Applies to renewal mode only.
2016-08-02 17:25:25 -04:00
aleos89
d1a957efea Cleaned up parts of the VIP System
* Removed battle configs vip_exp_penalty_base_normal and vip_exp_penalty_job_normal as these are duplicates of other battle configs.
* Battle config vip_exp_penalty_base and vip_exp_penalty_job are now at a rate of 100 instead of 1 to match other configs.
* Added VIP Zeny Penalty config.
* Cleaned up various rate calculations.
* Removed various macro defines that aren't needed.
* Moved the player state for atcommand showrate to the VIP struct.
2016-07-28 19:28:36 -04:00
Cydh Ramdh
29379c3ea5 Added script bonuses in order to support official AddReceiveItem_Equip n
* `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>
2016-07-19 16:43:05 +07:00
aleos89
eeccb70050 Merge branch 'master' into cleanup/storages_optimization
Conflicts:
	doc/script_commands.txt
	src/map/pc.c
	src/map/script.c
2016-06-01 13:24:27 -04:00
aleos89
c97be60bbf Expanded the instance system to support new modes
* 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.
2016-05-14 11:57:54 -04:00
aleos89
952b072468 Implemented item bonuses bWeaponAtkRate and bWeaponMatkRate (fixes #1161)
* 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.
2016-05-11 13:36:59 -04:00
Aleos
62d9a9b040 Add Requiem weapon set
Added Requiem weapons
* Implemented two item bonuses bMagicAddRace2 and bIgnoreMdefRace2Rate.
Thanks to @secretdataz!
2016-05-08 08:53:03 -04:00
Jittapan Pluemsumran
0f1b1af928 Implemented additional item bonus bMagicAddRace2 and bIGnoreMdefRace2Rate 2016-04-26 00:31:24 +07:00
Lemongrass3110
6ab9fd0eea Small refactor of pc_setpos
pc_setpos now delivers an enum for the error that happened.
Additionallly it now returns a different return value when the targeted player is in autotrade state.
Added usage of this new return value to all recall commands.
2016-04-24 20:32:05 +02:00
aleos89
55e4df14c2 Overhaul of the mob mode system
* 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!
2016-04-18 14:49:27 -04:00
Lemongrass3110
7264099fb9 Fixes some compiler warnings on GCC
Partially fixes #1171 as a follow up to 2bf64c9.
2016-04-14 23:24:15 +02:00
Lemongrass3110
2bf64c9773 Refactored the EQI constants
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.
2016-04-13 11:11:42 +02:00
aleos89
d88a6aca45 Optimized Inventory, Cart Inventory, and Storage usage
* These storage types now mimic Guild Storage and can be loaded/saved whenever needed.
* Relieves mmo_charstatus from having to send storage types and lets the char-server handle it.
* All storage types now have an increased max amount.
* Fixes #441 - Players will no longer be required to log out to resync cart item data before opening a Vending Store.
* Refactored player weight and cart weight calculations into their own functions.
* Added script commands guildstoragecountitem[2] and guildstoragedelitem[2].
* Refactored several function return types as well as documentation.
Thanks to @lighta and @cydh for their help with it!
2016-03-29 13:30:27 -04:00
Cydh Ramdh
cbfa9c9ea1 Merge branch 'feature/exp-giving-script'
Merge pull request #1032 from rathena/feature/exp-giving-script

Signed-off-by: Cydh Ramdh <cydh@pservero.com>
2016-03-26 01:45:36 +07:00
Cydh Ramdh
9e82454a79 Implemented Official Long Range Critical Bonus
* 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>
2016-03-24 21:03:32 +07:00
Cydh Ramdh
09b2ea06ee * Refactor pc_setparam for SP_BASEEXP and SP_JOBEXP.
* Added script command `getexp2` for safety usage of `set BaseExp,n;` and `set JobExp,n` usages.
* Cleanup exp lost functionto `pc_lostexp`.

Signed-off-by: Cydh Ramdh <cydh@pservero.com>
2016-03-20 12:31:44 +07:00
aleos89
daa9e018f4 Release of Doram Race!
* 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!
2016-03-19 14:09:30 -04:00
aleos89
074bdded09 Cleaned up rental item expiration
* Boarding Halter will now properly be removed on expiration when a player is logged out. (fixes #1035)
* Removed hard coded checks for other official rental items.
* Rental items now call the OnUnequip Script of the item which can be used to remove player states.
* Updated various items in the database to match the new format.
2016-03-14 18:50:29 -04:00
aleos89
0f5b6db813 Implemented new adoption methods
* Implemented atcommand adopt.
* Implemented script command adopt.
* Circumvents adoption issues with 2013-08+ clients (Related to #768).
* Suggested from https://rathena.org/board/topic/104014-suggestion-add-adopt-or-etc/
2016-03-11 13:45:17 -05:00
Cydh Ramdh
9ebf59c37b * Official EXP-Giving Script
* Fixed #980.
  * Job Quest EXP always be shown in yellow color.
  * Miracle Tonic (12259) and Leap of Fantasy (12261) give fixed EXP through `pc_setparam` that ignore EXP item bonuses and exp rates. Not as Quest EXP from `getexp` script.
  * If given EXP is 0 by `getexp`, it won't be notified in client EXP log.
  * If given EXP for base/job that reach max level, client will be notified as 0 EXP gained.
* Follow up 20588abcd8
  * Some clean up on `pc_gainexp`.

Signed-off-by: Cydh Ramdh <cydh@pservero.com>
2016-03-08 18:03:59 +07:00
Cydh Ramdh
9944c1dd46 Fixed PR_REDEMPTIO and LG_INSPIRATION requirement
* Only charge the Base EXP.
* Lost EXP will be displayed.

Signed-off-by: Cydh Ramdh <cydh@pservero.com>
2016-02-24 12:26:04 +07:00
Cydh Ramdh
70a67d6c57 Official EXP on Max Level
* Fixed #942
* 'Last' EXP for max base level is 99,999,999 and 999,999,999 for Job EXP on max job level.
* Player still obtains EXP on max level (of course until both base & job reach 100%).
* This behavior is used for Base EXP check for:
  * Super Novice's Explosion Spirit.
  * Royal Guard's Inspiration.
  * High Priest's Redemptio.
* Added config `death_penalty_maxlv`, default is set to 0. Player on max level, never loss EXP by death penalty.

Signed-off-by: Cydh Ramdh <cydh@pservero.com>
2016-02-21 18:43:24 +07:00
aleos89
b307ae8004 Added MD_FIXED_ITEMDROP mob mode
* When active the mob's drops are not affected by item drop modifiers.
2016-01-30 11:20:20 -05:00
Cydh Ramdh
fd1b360c93 Merge pull request #896 from rathena/hotfix/issue779
Fixed #779 
* Fixed 'Elemental Resistance Potions' doesn't work without changing any equipment.
* Moved player's Elemental resistance & attack bonus from status_calc_pc_ that need SCB_BASE to status_calc_atk_ele_pc and status_calc_def_ele_pc as a child of SCB_ATK_ELE and SCB_DEF_ELE (doesn't need to calculate everything just for these points)
2016-01-27 12:37:09 +07:00
Lemongrass3110
d32c857e16 Renamed custome headgear constans in src
They now match with those currently used in scripts and also match the ones for normal headgears and additionally they are easier to understand.
2016-01-06 00:08:27 +01:00
Cydh Ramdh
96119fb1d0 Follow up c4fe3be0a1
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
2015-12-09 19:42:01 +07:00
aleos89
89a33a77ad Updated Genetic Sling Item effects
* Moved all item effects to source.
* Updated HP/SP Increase Potions to use the official statuses.
* Updated Vellum Flail to use the official status instead of Critical Wound.
Thanks to @exneval.
2015-12-08 14:38:55 -05:00
lighta
65b6861e84 Small cleanup
And updata mapcache to use DBPATH instead rechecking RENEWAL macro,
(code duplication)
Make mapcache use cli.o to give some feedback on arguments given.
2015-11-18 06:34:14 -05:00
Atemo
cc8edaaac6 Merged novice academie from Hercules 21564acf13
-> All Credit to Kisuka for this big work.

Added news commands to alter questinfo conditions :
- setquestinfo_level : Add level range criteria for quest info with quest id 'quest_id'.
- setquestinfo_req : Add quest requirement for quest info with quest id 'quest_id'.
   -> Player have / doesn't have the required quest.
- setquestinfo_job : To add additionnal job criteria.
-> Credit to Cydh !
2015-11-16 00:34:00 +01:00
lighta
214ff17c19 Replace macro max and min, by some inline functions :
-To avoid having long operation repeated twice, peoples shouldn'tuse long operation into does macro but they do so...
-To avoid double increment or thing like such.
-Yes this involve some implicite cast sometime, but that still better then redo 10 dereference...
2015-10-21 04:12:01 -04:00
Cydh Ramdh
573c7dc3c5 * Fixed #694, Skill cooldown bonus overflow in short variable. Thank @julia40124009
* Fixed #691, Glass_Of_Illusion (14538) gave wrong value. Thank @admkakaroto

Signed-off-by: Cydh Ramdh <cydh@pservero.com>
2015-10-18 09:43:26 +07:00
Cydh Ramdh
997836897f Follow up 43068e1777:
* Eff_Crystalize on Sropho_Card (4522) has defined duration.
* Bonus added:
  * `bonus4 bAddEff,eff,n,y,t;`
    * Adds a n/100% chance to cause status eff for t milliseconds on the target when attacking
    * Just like `bonus3 bAddEff,eff,n,y;` but with user-defined duration;
  * `bonus4 bAddEffWhenHit,eff,n,y,t;`
    * Adds a n/100% chance to cause status eff for t milliseconds on the target when being hit by physical damage
    * Just like `bonus3 bAddEffWhenHit,eff,n,y;` but with user-defined duration;
  * bonus5 bAddEffOnSkill,sk,eff,n,y,t;
    * Adds a n/100% chance to cause status eff for t milliseconds on the target when using skill sk
    * Just like `bonus4 bAddEffOnSkill,sk,eff,n,y;` but with user-defined duration;

Signed-off-by: Cydh Ramdh <cydh@pservero.com>
2015-09-05 08:19:23 +07:00
Aleos
6295c77d39 Merge pull request #457 from rathena/feature/script_engine_upgrade
Script Engine Upgrade
* More information here: https://rathena.org/board/topic/102946-script-engine-upgrade/
2015-08-31 14:26:15 -04:00
aleos89
d95f5d2db7 Bug Fixes
* 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.
2015-08-17 14:13:22 -04:00
Cydh Ramdh
64cb02e5f1 * Introducing Item Reuse Limit Group
* By expanding current item_delay.txt's function to implement official item reuse limit.
  * There's the 3rd optional column, put SC ID value to add reuse limit. The reuse delay will be acknowledged as status change. Ignoring this column will use 'normal' item delay.
  * Added some items to their reuse limit group.
* Item DB Updates
  * Added effect for ASPD_Potion (12684).
  * Added effect and delay for Para_Team_Mark_ (22508).

Signed-off-by: Cydh Ramdh <cydh@pservero.com>
2015-08-03 20:48:35 +07:00
aleos89
35cd68873b Merged with master 2015-06-26 10:36:40 -04:00