summaryrefslogtreecommitdiff
path: root/src/map/battle.c
AgeCommit message (Collapse)AuthorFilesLines
2018-11-14Merge pull request #1233 from dastgirp/r5-defenseHaru1-30/+35
Fixed defense overflow exploit
2018-11-14Clarify the code around the def/flee reduction for multiple attackersHaru1-31/+35
This is just a clarification/sanitization, no functional changes intended. Signed-off-by: Haru <haru@dotalux.com>
2018-11-14Use an enum as flag for status->heal() and related functionsHaru1-3/+3
This introduces the `enum status_heal_flag`. No functional changes are made. Signed-off-by: Haru <haru@dotalux.com>
2018-11-14Fixes #889 & #840Jedzkie1-0/+1
- Novice classes will never go below 50% hp when died. - Other classes will show 1 HP rather than 0 when died. - Added battle configuration. Signed-off-by: Haru <haru@dotalux.com>
2018-10-21Merge pull request #2182 from guilherme-gm/201808-trapfixHaru1-0/+35
Fixes some issues with traps
2018-10-13Fixed Issue #2177Dastgir1-0/+2
If Item Price is 0, it is now changed to 1.
2018-08-30Makes trap damage possible to be reflectedGuilherme G. Menaldo1-0/+35
2018-08-04Fixed defense overflow exploitDastgir1-0/+1
* The defense penalty for being attacked by many enemies at the same time can no longer make DEF go negative * Fixed two potential overflow exploits When being hit by a lot of monsters, your DEF will become negative and then eventually overflow, making you almost invincible. On official servers the simultaneous attacker count is limited to 22. So at max, your def is reduced by ((22-2)*5%) = 100%. So it should neither be able to make your DEF negative nor cause an overflow. Merge from https://github.com/rathena/rathena/commit/590f42cd15c58de78cff8be6053109852375bce1#diff-d96b6365b4bdad78139e676d6e7e3295R4589
2018-07-24Merge pull request #2088 from guilherme-gm/fix-ghostmonstersHaru1-0/+1
Fixed monsters not disappearing from some clients upon death
2018-07-12Fixed clearunit packet not being sent to clients going out of the view range ↵Guilherme G. Menaldo1-0/+1
when monster dies
2018-07-12Split btype and item_id parameters in function clif_skill_fail.Andrei Karas1-4/+4
2018-07-01Change functions to static where possible (Part 4 - map)Haru1-60/+112
This fixes issues with plugins defining symbols with the same names Signed-off-by: Haru <haru@dotalux.com>
2018-06-25Implemented Pet AutofeedingDastgir1-0/+1
2018-05-04Add setpcblock & checkpcblock script commandsAnnieRuru1-1/+1
thanks to @MishimaHaruna for the updated syntax
2018-04-25Merge pull request #2023 from MishimaHaruna/remove-stat-serverHaru1-171/+2
Remove stat server
2018-04-23Merge pull request #2005 from guilherme-gm/guildskillcdHaru1-1/+1
Allow guild skills cooldown to continue when logged out
2018-04-22Remove the stat-reporting mechanismHaru1-171/+2
Signed-off-by: Haru <haru@dotalux.com>
2018-04-08Merge pull request #2001 from guilherme-gm/tombspawnHaru1-0/+1
Added delay to tomb spawn
2018-04-08Allow guild skills cooldown to continue when logged outGuilherme G. Menaldo1-1/+1
2018-04-08Added delay to tomb spawnGuilherme G. Menaldo1-0/+1
2018-04-07Implementation of Attendance systemAsheraf1-0/+2
2018-04-07Add an option to prevent item usage when storage is openJedzkie1-0/+1
In official servers, you can't open boxes and use usable/consumables items when the storage is open. Fixes #1806
2018-02-10Clean up trailing whitespace and non-indent tabsHaru1-2/+2
Signed-off-by: Haru <haru@dotalux.com>
2018-01-25Implementation of Official Clan SystemMurilo Pereti Tavares1-11/+21
All official features work including the autokick for inactive members And the system is completely customizable.
2017-11-18Implement Homunculus autofeedingAsheraf1-0/+1
2017-10-21Merge pull request #1825 from HerculesWS/cardfixHaru1-32/+3
Remove separate cardfix definition for pre-re/re
2017-10-21Merge pull request #1812 from mekolat/partyleader2Haru1-0/+1
add option to restrict party leader change to same map
2017-09-17Differentiate variables that hold a ViewSprite and a weapon SubtypeHaru1-18/+18
`sd->status.weapon` is renamed to `sd->status.look.weapon` and only holds ViewSprite IDs. Its previous other meaning is now transferred to `sd->weapontype` (holding the currently equipped weapon type, considering both hands at once) Signed-off-by: Haru <haru@dotalux.com>
2017-09-17Split 'View' in two different fields in the item databaseHaru1-5/+4
- The field was used both for sprite view IDs and for weapon or ammunition subtypes. Now the fields 'ViewSprite' and 'Subtype' are used respectively. Signed-off-by: Haru <haru@dotalux.com>
2017-08-17Remove separate cardfix definition for pre-re/reHaru1-32/+3
Cardfix is now always calculated in thousandths (it previously was in hundredths in renewal mode only). The variable size is increased to int (from short), to ensure that no overflows occur in case of large multipliers. This doesn't change the game mechanics (barring some minor truncation issues that would previously occur due to the lack of precision in renewal) Signed-off-by: Haru <haru@dotalux.com>
2017-08-01add option to restrict party leader change to same mapgumi1-0/+1
2017-07-30Implementation of RoDEXKirieZ1-0/+2
2017-05-27Merge pull request #1722 from Smokexyz/mmo_charstatus-fixHaru1-1/+1
Dismemberment of `storage_data` from `mmo_charstatus`.
2017-05-22Add storage_data reception, parsing and sending to/from the map-server.Smokexyz1-1/+1
Remove loading and saving of storage_data through char.c Re-declaration of structure storage_data as a vector. Re-code of portions in the map-server using storage_data. A new approach is taken by saving the loaded storage data from sql into memory for the duration of the session, thereby removing the need of querying the database to re-load all items everytime a storage save routine is issued from the map-server. Saving of storage items is done through a new function that significantly reduces the number of queries compared to char_memitemdata_tosql(), and therefore run-time speed. This method potentially reduces the number of update and delete queries from MAX_STORAGE (which could be >= 600) times to literally 1. Storage items are stored in a dynamically allocated array and handled accordingly. struct mmo_charstatus size reduces by 34,800 bytes. Update pc_checkitem() with masks for item checks. `sd->state.itemcheck` has been changed to `sd->itemcheck` of type `enum pc_checkitem_types` `battle/items.conf` has been updated to reflect configuration changes. Further updates to assert a successful reception of storage data in related functions.
2017-05-09Merge pull request #1699 from Jedzkie/11-SummerCostumeHaru1-0/+2
Implemented Official Summer 2 Costume
2017-05-04Merge pull request #1695 from Jedzkie/7-CashFoodFixHaru1-1/+0
Cash Foods Update
2017-04-29Removal of rare_drop_announce config.Jedzkie1-1/+0
2017-04-25Removal of cashfood_use_interval setting.Jedzkie1-1/+0
2017-04-24Removed hard coded values on @cashmount and setcashmount.Jedzkie1-1/+2
2017-04-20Made prevent_logout effect on log-in optionalJedzkie1-0/+1
kRO does not prevent players from logging out after connecting to its zone servers. Credits to @secretdataz of rAthena
2017-04-19Added oktoberfest_ignorepalette configurationJedzkie1-0/+1
2017-04-19Implemented Official Summer 2 CostumeJedzkie1-0/+1
Added summer2_ignorepalette configuration
2017-04-10Monster Vulture's Eye and Snake's Eye removed.Smokexyz1-0/+1
Original PR #1148 by @SamuelHercules committed on 8 Feb 2016 * 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 Merged rAthena @ cccd1496f716fe02a3db20780b6e52b3c33391b4 Credit: Playtester
2017-04-09Fix a null pointer in guild->isallied()Haru1-4/+4
Introduced in cb4297e6eb734c60825ebfa13f32989fa3a470eb, that doesn't check for a nonzero guild ID before calling guild->isallied(). Signed-off-by: Haru <haru@dotalux.com>
2017-04-08Merge pull request #1663 from Smokexyz/bow-unequip-fixHaru1-0/+1
Unequip arrows when a bow is unequipped. (RE only)
2017-04-04Unequip arrows when a bow is unequipped. (RE only)Smokexyz1-0/+1
Forces the unequipment of arrows when a bow is unequipped. Based on original PR by @Jedzkie in #1079
2017-03-23Fixes issue #1647smokexyz1-7/+16
Allow skills and attacks with flags BCT_ENEMY and BCT_PARTY to affect "guild enemy units" within the party on maps with flag `gvg` and `gvg_noparty`.
2017-03-14Fixed MVP exp message issue for clients 2013-12-23cRagexe and newerEmistry Haoyan1-0/+8
- Fixed MVP exp message issue clients 2013-12-23cRagexe and newer. - Gravity remove packet MVP exp message - Credit to https://github.com/rathena/rathena/commit/85749e84b91087960e868e30a7a052b0c0cdce5b
2017-01-27remove hardcoded chat area size from clif.c, add chat_area_size to battleconfgumi1-0/+1
2016-12-03Clarify some Job Class vs MapID confusion (2/2)Haru1-6/+6
This commit ensures that `sd->job` and related variables only contain MapIDs (i.e. the serverside optimized values, where High Novice is MAPID_NOVICE | JOBL_UPPER) and are never checked against the client-based Job Class values. As a rule of thumb, from now on, when a variable is named `job` or `jobid`, it is intended to contain a MapID and not a Job Class ID. The type of such variable shall be an unsigned `uint16` or `uint32`. To ensure that related third party code is also verified when this commit is merged, the variable `struct map_session_data::class_ (i.e. `sd->class_`) is renamed to `job`. Some issues in related lines are also fixed, including: - The atcommand `@mount` would not check properly that the requesting character is a 2nd class Swordsman type. - `pc->addfame()` would silently accept invalid MapIDs, sending unknown values to the client (more on this in a subsequent commit). - `pc->famerank()` would not use the passed job as a bitmask, causing the caller to have to mask it beforehand (more on this in a subsequent commit). - The Soul Linker check in TK_JUMPKICK wasn't future-proof (no harm caused currently). - Gunslingers would be able to be targeted by Spiritual Bestowment (`MO_KITRANSLATION`) and Spiritual Sphere Absorption (`MO_ABSORBSPIRITS`) due to a faulty check introduced when the Rebellion class was implemented (causing unintended interaction with Coins). Signed-off-by: Haru <haru@dotalux.com>