Commit Graph

7855 Commits

Author SHA1 Message Date
Jittapan Pluemsumran
5287f82a0e Add support for unsetting bit flag in item_noequip (Closes #1319).
* Unset the flag by passing in negative value.
* Thanks to @Everade
2016-05-28 00:20:08 +07:00
Playtester
1640b40236 Official Enchant Blade damage (fixes #975)
- Implemented the fully official damage calculation for this skill, it's now 100% accurate
** Partially reverted c3f4618
** The damage bonus is: [((SkillLv x 20) + 100) x srcBaseLevel / 150] + srcINT + srcMATK - tarMDEF - tarMDEF2
** The damage bonus from base level and INT is calculated when the status change starts
** The damage bonus from MATK and the reduction from MDEF/MDEF2 is calculated per hit
2016-05-26 20:06:24 +02:00
aleos89
f91bf02154 Resolved instance destruction causing a map crash (fixes #1309)
* Follow up to 32c829d.
2016-05-26 11:07:34 -04:00
aleos89
161a4c01c9 Small adjustments for the instance system
* Follow up to 32c829d.
* Added a missing break on guild type instance creation.
- Thanks to @Canoe!
* Added instance name back to script command instance_enter.
- This will present the proper error message when trying to enter another instance.
2016-05-26 09:06:49 -04:00
Aleos
32c829debe Merge pull request #1264 from rathena/feature/instance_expansion
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.
2016-05-25 14:55:50 -04:00
aleos89
28ad9ac22d Resolved compile warnings
* Follow up to 2cfb844.
* Initialized some variables.
2016-05-25 14:22:27 -04:00
Jittapan Pluemsumran
6f0ed156f4 Fixed #1114
Made Rhydo rune undispellable.
Correct variable type in Old Glast Heim script.
Thanks to @nehpetskie
2016-05-25 19:18:07 +07:00
aleos89
1cd648b1af Resolved compile errors
* Follow up to 1408eef.
2016-05-24 10:30:42 -04:00
aleos89
1408eefd80 Expanded max maps per instance define
* Follow up to c97be60.
* Increased the max amount of maps per instance to the limit.
2016-05-24 09:57:42 -04:00
aleos89
6babca3689 Corrected a few minor issues
* Follow up to 2cfb844.
* Adjusted the instance_db documentation.
* Adjusted script command instance_announce to check when instance ID is 0 rather than -1 since instance IDs are stored as unsigned now.
* Added a couple of checks when sending instance information to the client.
* Fixed a compile warning.
2016-05-24 09:22:03 -04:00
aleos89
cc30d9df09 Resolved some map blocks not getting freed
* Fixes Bio Explosion, Suicide Bombing, and Summon Legion not properly freeing map blocks.
Thanks to @Tokeiburu!
2016-05-23 14:55:49 -04:00
aleos89
2cfb844429 Refactored a bit of the instance modes
* Follow up to c97be60.
* Added some safety measures when sending the instance name to the client.
* Adjusted the stored maps of instances to dynamic arrays to conserve memory.
- Max amount of possible maps increased to 255.
* Removed Map1 from the instance_db as the EnterMap is always the same value.
* 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.
* 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.
* Adjusted script command instance_create to keep backwards compatibility.
* Cleaned up script command instance_warpall.
* Updated script documentation to reflect changes.
* Updated instance_db to reflect changes.
2016-05-23 14:12:34 -04:00
aleos89
6e9c67cb82 Fixed active_transform not getting removed (fixes #1282)
* Corrected active_transform and transform stacking display issues.
* Implemented ZC_EFST_SET_ENTER and ZC_EFST_SET_ENTER2.
- Adjusted the sc_display to make use of this.
Thanks to @exneval for the packet info!
2016-05-22 09:22:20 -04:00
aleos89
4f3468958f Added a map cell check for Shadow Leap (fixes #1291)
* Resolves players being able to enter non-walkable parts of maps.
Thanks to @Tokeiburu!
2016-05-21 09:47:59 -04:00
aleos89
19f2bc597c Corrected NPC Earthquake skill (fixes #1289)
* Properly implemented the skill as a unit skill.
* Corrected the damage calculation and removed attempts at diving by zero.
* The skill now ignores the target's defense.
2016-05-20 14:00:58 -04:00
Jittapan Pluemsumran
4a671ea379 Merge pull request #1183 from secretdataz/fix/holywater
Aqua Benedicta/Water Ball official behavior. Fixes #1119
2016-05-20 19:10:45 +07:00
Lemongrass3110
2e668ea25a Merge pull request #1286 from Jeybla/add_1278
Adds var 'killedrid' to script monster OnKillEvents. (Closes #1278)

Thanks to @Jeybla - tested by @Stolao and confirmed as working.
2016-05-20 12:49:45 +02:00
Jittapan Pluemsumran
935235cea0 Item bonus bAddEff should not effect the user when hit by own skill. Fixes #720 2016-05-20 13:01:24 +07:00
Jey
5b35e1afd0 Adds var 'killedrid' to script monster OnKillEvents. (Closes #1278) 2016-05-20 02:10:22 +02:00
aleos89
01bff3bb08 Follow up to db0f231
* Refactored battle_vanish a bit more.
Thanks to @Lemongrass3110!
2016-05-19 12:38:27 -04:00
aleos89
db0f231507 Corrected vanish damage with some physical damage statuses (fixes #1262)
* Resolves Exceed Break, Spell Fist, and Giant Growth being able to do more damage with Vellum-type weapons.
* Optimized the battle_vanish calculations to their respective case.
2016-05-19 10:48:16 -04:00
aleos89
b3c1866cf5 Updated Defender and Neutral Barrier reductions (fixes #1065)
* Defender now reduces Acid Demonstration damage (renewal mode).
* Defender no longer reduces Throw Zeny and Rapid Throw damage.
* Acid Demonstration now misses on targets in Neutral Barrier.
2016-05-17 10:38:03 -04:00
aleos89
fe4eefb787 Implemented script command active_transform (fixes #1006)
* 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!
2016-05-16 14:15:22 -04:00
aleos89
717eb225ba Corrected weapon attack versus infinite defense (fixes #1169)
* Resolves Exceed Break, Spell Fist, and Giant Growth doing extra damage to infinite defense targets.
2016-05-15 09:10:02 -04:00
aleos89
cb703c5bfa Expanded instance_db to include idle time
* Follow up to c97be60.
* Adjusted the instance_db to allow instance idle time to be adjustable.
2016-05-14 12:06:04 -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
4c617bcd59 Corrected Graffiti removing all units (fixes #1263)
* Graffiti will no longer remove all units of the Rogue class.
* Graffiti will now fail to cast again if a Graffiti already exists on the map.
* Graffiti should only be removed on map changes, but Remover/Cleaner still removes it (custom) since the skill was never officially implemented.
2016-05-14 09:39:40 -04:00
aleos89
ca049a66f4 Resolved a compile error for CentOS (fixes #1190)
* Send a 0 instead of NULL to the va_list when freeing item groups.
2016-05-13 13:59:27 -04:00
aleos89
9cd7e595cf Updated 16th Night effect (fixes #1164)
* No longer drains 1 SP every second.
- Description states it does but tests show it does not.
2016-05-12 14:18:51 -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
aleos89
af8524aa7d Follow up to 10bac96
* Adjusted the directional check for script command pushpc.
2016-05-11 08:42:11 -04:00
Aleos
cdb626c628 Merge pull request #1252 from wilkemeyer/fix/clif-emblem-validate
Refactored part of guild emblem validation
* Corrected clif_validate_emblem returning incorrect value types.
* Created readable constants.
Thanks to @wilkemeyer!
2016-05-10 08:15:56 -04:00
Lemongrass3110
2e770337ea Removed a disturbing whitespace
Fixes #1256
2016-05-10 13:04:18 +02:00
Aleos
440c6ef5bb Corrected some packet structure issues* Resolves
Corrected some packet structure issues
* Resolves a chatting issue while using fake names.
* Resolves an incorrect packet header size for requesting player registries.
Thanks to @wilkemeyer!
2016-05-09 09:24:48 -04:00
Lemongrass3110
c4390e58d5 Fixed compilation with visual studio
Follow up to 0da7136.
Fixes # 1254.
2016-05-08 17:18:30 +02: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
Florian Wilkemeyer
d2ded889cb map-server: return-type-fix clif_validate_emblem was declared to return bool but actually returned int-value 2016-05-07 22:17:25 +02:00
aleos89
c6ba347a54 Increased MAX_RACE2_MOBS for future use 2016-05-07 13:44:49 -04:00
Aleos
0da7136ae7 Merge pull request #1241 from wilkemeyer/optimize/pathsearch-memallocations
Optimized path_search() by reducing amount of allocations per call.
Thanks to @wilkemeyer!
2016-05-07 13:00:36 -04:00
Florian Wilkemeyer
6104db8d1e map-server: clif: fixed missing wfifo allocation in global-message-parser 2016-05-07 16:46:19 +02:00
Florian Wilkemeyer
b414faef45 map-server: intif fixed too small wfifo allocation 2016-05-07 16:46:13 +02:00
Jittapan Pluemsumran
7ec06ca1a8 Follow up to dc74119 2016-05-07 10:29:24 +07:00
aleos89
0c09928dd3 Fixed the Monster Transform status icon (fixes #1215)
* Resolved the timer getting removed from the icon on map changes.
* The status is not infinite so it should not be sent to the client as infinite.
2016-05-06 08:59:23 -04:00
Lemongrass3110
2b61f45a94 Fixed readparam behaviour for variables
Readparam now works correctly with variables.
This is a follow up to e112fc1 which addressed #647.

Fixes #1213, thanks to @Everade.
2016-05-06 01:14:12 +02:00
aleos89
55165ac0bf Fixed a map crash from the mob mode update (fixes #1235 and fixes #1238)
* Follow up to 55e4df1.
* Added an extra check to make sure block list is not null on skill use.
Thanks to @Vomaito, @keitenai, @spinzaku, @Playtester, and @Tokeiburu!
2016-05-05 12:36:33 -04:00
Florian Wilkemeyer
f7bc696335 map-server: increased size of skilldb_id2idx[] array, to prevent out-of-bounds access.
Bug:
It was Initially declared as size of UINT16_MAX (0xffff) but as the skill-id itself which will be used
as offset can reach this value, it's too small.
2016-05-04 21:57:10 +02:00
aleos89
d83559cb7f Added missing Summoner constants
* Added JOB_SUMMONER and EAJ_SUMMONER constants.
* Updated eA Job System documentation.
2016-05-04 12:58:09 -04:00
Florian Wilkemeyer
ce97b9ae0f corrected some typos in descriptive comments 2016-05-04 14:46:29 +02:00
Florian Wilkemeyer
99cb385f34 map-server: optimized path_search(), by removing dynamic memory allocation for each call.
Pathfinding uses BHEAP_* (vector) operations from db.h, before this optimization each pathsearch resulted in an call to aMalloc() / aFree()  which is quite costly as it fragments memory over time & may cause software stalls when the application's heap must be resized.

Now it allocates the Heap once (& may grow it accordingly) and re-uses the allocated memory every time/call.

This makes also tons of monsters less cpu-time intensive.
2016-05-04 14:00:37 +02:00
Playtester
8a37f1b2a9 Marionette Control, Mechanic Back/Front Slide
- Marionette Control now has a range of 7 (fixes #1239)
- Mechanic Back/Front Slide skills are no longer blocked by gear that makes you knock-back immune (fixes #1227)
2016-05-03 22:04:43 +02:00