922 Commits

Author SHA1 Message Date
Lemongrass3110
f0dd764095 Merge branch 'master' into cleanup/storages_optimization
# Conflicts:
#	src/map/script.c
2016-10-10 13:06:52 +02:00
Lemongrass3110
644e294699 Merge branch 'master' into woe_te-restrictions
# Conflicts:
#	npc/re/mapflag/nobranch.txt
#	npc/re/mapflag/nomemo.txt
#	npc/re/mapflag/noteleport.txt
#	npc/re/scripts_athena.conf
#	src/map/atcommand.c
#	src/map/map.h
#	src/map/script.c
#	src/map/script_constants.h
2016-09-29 08:13:31 +02:00
aleos89
7a05b59dd1 Merge branch 'master' into cleanup/storages_optimization 2016-09-06 13:40:01 -04:00
aleos89
bd36b294ad Merge branch 'master' into cleanup/storages_optimization 2016-08-30 19:40:36 -04:00
Cydh Ramdh
47276e94a6 Clean up party invitation reply. (#1471)
* Clean up party invitation reply.
* Added reply result as enum.
* Added official party restriction.
* Added configuration in party.conf

Signed-off-by: Cydh Ramdh <cydh@pservero.com>
2016-08-31 01:07:55 +02:00
Cydh Ramdh
8805e7e1d8 Merge branch 'master' into woe_te-restrictions 2016-08-27 07:04:41 +07:00
Lemongrass3110
9157318ee9 Script level up events from atcommands
Based on @Emistry's pull request HerculesWS/Hercules#1396:
Added a configuration to enable the atcommands baselevel and joblevel to trigger their respective npc events.
This will help you guys with testing your custom scripts that are listening to OnPCBaseLvUpEvent or OnPCJobLvUpEvent.
For safety reasons we only trigger the events on level increase.
2016-08-12 15:21:48 +02:00
aleos89
50e81a45cc Follow up to d1a957e
* Removed a comment that is no longer applicable.
2016-07-28 19:41:51 -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
aleos89
cdd4767e8e Follow up to 160f24d
* Corrected the battle_config name for the MVP Tomb delay.
Thanks to @secretdataz!
2016-07-27 19:29:23 -04:00
aleos89
160f24d66a Corrected MVP Tomb behavior (fixes #1429)
* On Aegis there is a 9~ second delay before the tomb is spawned.
2016-07-27 16:49:32 -04:00
Cydh Ramdh
2a1aebaf64 Cleaned up char_del_option checks
This is a squash commit for @cydh's pull request #1299.

Cleaned up the `char_del_option` checks.
Added a comment for `char_del_option`, that only work for clients that send delete request by using 0x0068 or 0x01fb.
Added an enum for values.
Added a function to validate and adjust configuration data.
Resolved character deletion not working properly for clients 2015-10-01 and higher (fixes #1189)
Delete date should be sent as remaining time on some client versions.
Adjusted some comment wording.
Added empty/default birthdate deletion.
Made email deletion case insensitive.
2016-07-26 22:35:22 +02:00
Lemongrass3110
93c01ee056 Fixed monsterinfo and whereis
Also updated the german translation.
Follow up to 604e805
2016-06-16 23:40:14 +02:00
aleos89
604e805c03 Corrected some MAX_SEARCH results (fixes #1345)
* The count was already being capped by itemdb_searchname_array() so the check was never hit.
* Adjusted the return message to match the corrected result.
2016-06-16 13:46:15 -04: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
93aa624828 Added missing jobs to atcommand accinfo
* Added Rebellion, Oktoberfest, and Summoner job names.
* Adjusted some variable array lengths to use defines.
2016-05-30 11:02:23 -04:00
aleos89
f0b093f0fd Follow up to 6ab9fd0
* Adjusted the message returned.
2016-04-25 11:10:53 -04: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
eff0dca005 Updated bone_drop configuration description
* Added a note to state the default item's trade restrictions.
2016-04-20 14:59:17 -04: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
Atemo
b3d150c3a5 Merge branch 'master' into woe_te-restrictions 2016-04-04 20:22:25 +02:00
Lemongrass3110
b53e00bcc2 Added support for arrays to atcommand set
Removed allocation and freeing of an unneeded script data structure.
Additionally removed a message that could never be shown.
2016-03-31 22:47:20 +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
Playtester
989a2525ec Skills vs Icewalls/Traps, Talkie Box, Feint Bomb
* Implemented official behavior when attacking icewalls and traps with skills (fixes #1056)
-- Skills hitting icewalls and traps: Arrow Shower, Cold Slower, Tornado Kick, Sightless Mind, Meteor Assault, Spread Attack, Throw Huuma, Sightrasher, Sight Blaster, Earth Shaker, Rampage Blaster, Feint Bomb, Magnum Break, Fire Trap, Ice Trap, Cart Revolution, Napalm Vulcan, Triple Attack, Occult Impaction, Throw Spirit Sphere, Asura Strike, Spear Stab, Spiral Pierce, Holy Cross
-- Can target icewalls and traps but have strange behavior: Bowling Bash, Focused Arrow Strike, First Wind
-- Can hit icewalls and traps, but not target traps: Grimtooth, Raging Thrust, Blitz Beat, Napalm Beat, Fireball, Vulcan Arm, Tiger Cannon
-- Can hit icewalls and traps ONLY in PVP: Dragon Breath, Suicidal Destruction, Axe Tornado, Sky Blow
-- Can hit icewalls only: All other single target skills, Counter Slash
-- Can target icewalls but have strange behavior: Brandish Spear, Wind Cutter, Cannon Spear, Flame Launcher
-- Can not hit icewalls and traps: All unit skills, Frost Nova, Comet, Arms Cannon, Fatal Menace, Lion Howling
-- Can destroy traps but not hit icewalls: Claymore Trap
* When monsters use skills, they hit icewalls and traps and the damage displays, but they will no longer deal actual damage to the icewall or trap
-- Added an option to skill.conf with which you can define which types can damage icewalls and traps, by default it's 1 (player only), if you want to revert to previous behavior, set it to 31 (all)
* Fixed an issue where traps could not hit icewalls and other traps in PVP
* Taekwon combos can now trigger on traps
* Fixed an issue that caused damage to be displayed twice when attacking a trap with certain skills
* Fixed Feint Bomb causing knock-back to the target (see #1070)
* Fixed Talkie Box being triggered by monsters (fixes #1074)
2016-03-20 17:44:47 +01: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
Cydh Ramdh
f31475d5e3 Merge pull request #986 from rathena/feature/pk_traps_setting
Trap Invisibility, Fixes #892
* Changed `traps_setting` config values.
  * 0 = Always visible (default)
  * 1 = Enable invisibility in versus maps (GVG/PVP/BG)
  * 2 = Enable invisibility in all maps
* Added skill unit flag `UF_HIDDEN_TRAP = 0x20000` for trap invisibility. By default, there are (renewal) Hunter traps with this flag:
  * HT_SKIDTRAP
  * HT_LANDMINE
  * HT_ANKLESNARE
  * HT_SHOCKWAVE
  * HT_SANDMAN
  * HT_FLASHER
  * HT_FREEZINGTRAP
  * HT_TALKIEBOX
* Added some skills and effects that can reveal hidden traps. By default, Detect, Sight, Ruwach, and Improve Concentration can reveal hidden traps.
2016-03-17 05:45:27 +01:00
Napster (icxbb-xx)
ae10da3a61 Follow up 85749e84b9
thank you @cydh
2016-03-15 21:31:29 +07:00
Napster (icxbb-xx)
85749e84b9 Fixed #850 MVP exp message issue clients 2013-12-23cRagexe and newer.
* gravity remove packet MVP exp message, if you want re-enables the message
  check you battle config mvp_exp_reward_message
2016-03-15 09:51:55 +07: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
Playtester
ecb01c44f4 Monster angry mode and provoke (fixes #1011)
* When provoked, monsters will now only switch targets when they would also change targets on damage
* Added a new option to the mob_ai setting to restore the old behavior (monsters always go after the one casting provoke)
* When casting provoke on an angry mode monster before it was attacked, it will now go for the one casting provoke and not switch back to the closest target
* Angry mode will now always be reset when the monster switches to idle
2016-03-04 21:22:16 +01:00
aleos89
a16fb7c176 Updated Item and Point Shop (fixes #843)
* Item and Point Shop now works like the NPC Cash Shop.
* No longer has issues with player Zeny checks.
2016-02-29 20:54:23 -05:00
Cydh Ramdh
20588abcd8 Merge pull request #987 from rathena/feature/exp_max_level
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.
* On EXP lost by death penalty. EXP will be shown as negative value.
* Fixed check for EXP value on packet `0x07f6`. EXP is limited to INT_MIN until INT_MAX by client (so don't expect client to displays value more than this!)
* Added EXP gained/lost message by `@showexp` on death penalty too.	
* Fixed PR_REDEMPTIO and LG_INSPIRATION requirement  …
  * Only charge the Base EXP.
  * Lost EXP will be displayed
2016-02-29 21:05:45 +07:00
Cydh Ramdh
077738bea1 Follow up f2f135708b24e75645232fc67ea3f40751d473cb
* Corrected documentation for `death_penalty_maxlv` config.

Signed-off-by: Cydh Ramdh <cydh@pservero.com>
2016-02-29 09:04:07 +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
51c422cf7c Corrected trap invisibilty behavior.
* Changed `traps_setting` config values.
  * 0 = Always visible (default)
  * 1 = Enable invisibility in versus maps (GVG/PVP/BG)
  * 2 = Enable invisibility in all maps
* Added skill unit flag `UF_HIDDEN_TRAP 0x20000` for trap invisibilty.

NOTES:
* Invisible traps are always visible for the trapper and trapper's partymates.
* If the trap is invisible, it always be hid immediately (except the people above).
* Revealed hidden traps, are always visible by everyone.
* Currently, only `HT_DETECTING` that can reveal the hidden traps (hardcoded). TODO: Sight, Ruwach, and Improve Concentration also able to reveal hidden traps.

Signed-off-by: Cydh Ramdh <cydh@pservero.com>
2016-02-22 22:34:08 +07:00
Cydh Ramdh
f2f135708b Follow up 70a67d6c5790f9fa61edcf7f2eda339b5e8df9e0
* On EXP lost by death penalty. EXP will be shown as negative value.
* Fixed check for EXP value on packet `0x07f6`. EXP is limited to INT_MIN until INT_MAX by client (so don't expect client to displays value more than this!)
* Added EXP gained/lost message by `@showexp` on death penalty too.

Signed-off-by: Cydh Ramdh <cydh@pservero.com>
2016-02-22 12:33:39 +07:00
Playtester
a63b031958 aMotion delay is now set at cast begin (fixes #944)
* When casting a spell with cast time shorter than aMotion, the delay will now be set to aMotion or min_skill_delay_limit
* aMotion and min_skill_delay_limit are no longer applied at cast end nor by auto spells
* Aftercast delay can only increase the delay and never decrease it
* When there is no aftercast delay, the client will no longer show a non-existent 10 second delay
* Removed "double cast" code of Jupitel and Waterball, it's no longer needed as it fits into the official delay system
* Added a constant SECURITY_CASTTIME, which is added at cast begin and subtracted at cast end to prevent hackers to send in skill packets before the timer triggers cast end
* Set skill_amotion_leniency to 0 by default as it applies delay at cast end and would consequently block the official system from working; you can set it back to 90 or even 140 for increased security
2016-02-21 17:06:39 +01: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
Cydh Ramdh
26dcf345fe Added WOE:TE Restrictions
* Added mapflag `gvg_te`, `gvg_te_castle`, this is will be activated during WOE:TE sessions. These changes are needed because of:
  * If `gvgon` is used, TE castles become `gvg`, it makes the restriction failure. Items that are supposed to only can be used/equipped in TE Castles, also affected in 'normal' GVG/WOE maps.
  * These flags used form `item_noequip`, `skill_nocast`, and `status_disabled` flag 16. (If just assume TE Castles are Restricted Zone 8, the failure will occurs as point 1 above).
* Added Restricted Zone 8 for TE Guild Dungeons, to prevent marriage skills can be casted there.
* Added command `gvgon3` to set GVG for WOE:TE Castles.
* Added command `canParticipateSiegeTE` is 'hardcoded' function to check player's job that can participate in WOE:TE.
  * Current usages in `GD_EMERGENCYCALL` and replace the in-script function.
* Changed default config `allow_consume_restricted_item` to 'no'. All restricted usable/consumable/healing items are always failed to be used.
* Changed the GVG items/skills restriction check. "Item cannot be equipped in GVG maps" are supposed to ignore the agit flag statuses, as long as the map is GVG flagged, items/skills are always restricted and otherwise.
* Moved previous entries of `skill_nocast` flag 16 as hardcode (for now).

Signed-off-by: Cydh Ramdh <cydh@pservero.com>
2016-02-20 09:33:07 +07:00
Atemo
9373c697b5 Added some source part. Thanks @aleos89 / @Cydh
Some debug thanks @Cydh
2016-02-05 15:48:26 +01:00
Playtester
6ad062f6e3 Official line of damage path algorithm (fixes #658)
* Implemented the official line of damage algorithm that official servers use; it will calculate the direction between caster and target and apply one of eight possible AoEs
* Added a config setting with which you can switch back to the custom emulator path algorithm
* Updated Brandish Spear(5x5), Focused Arrow Strike(13x3), First Wind(5-9x3), NPC Breath attacks(14x7), Flame Launcher(5x3) and Cannon Spear(11x3) to use this algorithm and corrected range, splash and maxcount values for all these skills
* Fixed Brandish Spear's AoE being completely wrong and having holes in its AoE when attacking diagonally; also fixed the knock back being 3 instead of 2 and not working at all for the longest reach; Brandish Spear's AoE width and length can now be defined in skill_db.txt
* Focused Arrow Strike, First Wind and NPC breath attacks will at least hit one target, if no enemy is on the AoE, the target will be hit instead; Brandish Spear, Flame Launcher and Cannon Spear can completely miss
2016-02-02 23:41:05 +01:00
aleos89
918ef966f8 Updated renewal mapcache 2016-01-31 10:52:57 -05:00
Playtester
78419baa76 Monster random walk code optimized (fixes #208)
* Monsters will now always find a cell to walk to on first attempt as long as there is at least one cell available
* Performance for searching a cell improved, a monster no longer tries the same cell twice
* Removed the "MOB can't move" warning by default; the warning could appear with legit behavior like using Icewall and actually made the monster re-spawn
* Added a config option to monster.conf, where you can re-enable the warning and the re-spawning again
2016-01-30 14:33:52 +01:00
Playtester
4fdcb2ea61 Official monster/MVP target selection (fixes #926)
* Monsters with mode MD_CHANGETARGET_MELEE will now only change targets on "attack" state if they are attacked by a normal attack
* Monsters will change targets if the target is within "attack range+1" distance instead of a static distance of 3
* When a monster gets attacked, it will now switch to the attacker even if the attacker is farther away than its current target and the current target is auto-attacking it
* Angry mode monsters will now always switch target to the first person that attacked them
2016-01-23 18:14:23 +01:00
Aleos
994b406575 Merge pull request #889 from rathena/feature/random_start_point
Implemented Randomized Start Point
* Fixes #805.
* Character's will follow somewhat of the official method of a 'random' start point at their first login.
* Official servers use load balancing for setting the start point dynamically according to user count, whereas we at rAthena wanted to stay simple since we don't believe you guys will need this kind of load balancing for new characters.
2016-01-22 12:23:22 -05:00
Playtester
cccd1496f7 Monster Vulture's Eye and Snake's Eye removed (fixes #916)
* Monsters no longer have Vulture's Eye level 10 and Snake's Eye level 10 learned by default
* When you tank Cecil Damon from 10-14 cells away, she will no longer use her target skills
* Added a configuration with which you can set the level of Vulture's Eye and Snake's Eye that monsters have learned
2016-01-20 21:35:54 +01:00
Napster
d70b1734c8 Add support body style implementation
* This feature require the client support before 2015-05-13 or newer
   Make sure you data&lub support for this

  note : read info to https://rathena.org/board/topic/104205-2015-client-support/

  Special Thanks you to Rytech, @aleos89
2016-01-12 01:55:30 +07:00
aleos89
b7eb62ffb4 Follow up to a54bb65
* Fixed the config format.
* Adjusted atcommand go to properly place players on renewal mode.
2016-01-08 13:33:24 -05:00
aleos89
a54bb653de Randomized Start Point
* Fixes #805
2016-01-08 12:27:10 -05:00
Lemongrass3110
d03e56073c Follow up to 879ddcc
Minor language fix suggested from @lighta.
2015-12-31 00:42:41 +01:00