8516 Commits

Author SHA1 Message Date
Lemongrass3110
a98d6b13e8 Refactored the code of the parsing function 2016-05-26 12:25:29 +02: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
Lemongrass3110
1739ff4153 Changed item group parsing to svreaddb 2016-05-22 03:54:52 +02: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
Lemongrass3110
0a79b4bc6d Cleaned and merged the chat functions
This adresses the issue that clients from late 2015 will not zero terminate most of their messages anymore.
It should also fix the problem with the unknown packets that were most likely caused by adding the zero termination directly into the packet buffer.
2016-05-17 23:38:53 +02: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
Lemongrass3110
2170cfc01b Fixed a cashshop crash after reloaditemdb
Fixes #1234, thanks to @julia40124009.

Please note that it is currently not supported to resend the cashshop data to the players. It is only transmitted once during login as per request from the client.
2016-05-03 19:33:23 +02:00