summaryrefslogtreecommitdiff
path: root/src/map/pc.c
AgeCommit message (Collapse)AuthorFilesLines
2018-02-10Clean up trailing whitespace and non-indent tabsHaru1-1/+1
Signed-off-by: Haru <haru@dotalux.com>
2018-01-25Implementation of Official Clan SystemMurilo Pereti Tavares1-0/+7
All official features work including the autokick for inactive members And the system is completely customizable.
2017-12-23Add support for new drop packet 0xadd for zero clientsAsheraf1-2/+2
2017-11-05Reduce confusion between skill IDs and skill DB indexes (part 2)Haru1-12/+11
Remove MAX_SKILL in favor of MAX_SKILL_DB, when referring to the maximum skill DB index. This is opposed to MAX_SKILL_ID, the maximum skill ID. Signed-off-by: Haru <haru@dotalux.com>
2017-11-05Use the skill DB accessors where possible/appropriateHaru1-10/+17
This includes some renamed local variables, in order to minimize the cases of unsafe variable reuse. Signed-off-by: Haru <haru@dotalux.com>
2017-10-21Fix various warnings on Visual Studio 2017Haru1-9/+9
Fixes #1867 Signed-off-by: Haru <haru@dotalux.com>
2017-10-21Add packets for 64 bit exp.Andrei Karas1-27/+59
Also update some functions for support 64 bit exp calculation.
2017-09-21Convert some functions from int32 types to int64.Andrei Karas1-27/+27
This mainly need for base and job exp, because now they using int64 type.
2017-09-17Fix a typo in the constant ITEMUPPER_THIRDUPPERHaru1-1/+1
Was: ITEMUPPER_THURDUPPER Signed-off-by: Haru <haru@dotalux.com>
2017-09-17Move other view-related variables to `sd->status.look`Haru1-45/+45
The following variables are now moved to `sd->status.look` (from `sd->status`): `head_top`, `head_mid`, `head_bottom`, `robe` Signed-off-by: Haru <haru@dotalux.com>
2017-09-17Differentiate variables that hold a ViewSprite and a Subtype (part 2)Haru1-11/+24
`sd->status.shield` is renamed to `sd->status.look.shield` and only holds ViewSprite IDs. Its previous other meaning is now transferred to `sd->has_shield`, of boolean type (to detect the presence of a shield) Signed-off-by: Haru <haru@dotalux.com>
2017-09-17Differentiate variables that hold a ViewSprite and a weapon SubtypeHaru1-26/+32
`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-52/+53
- 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-07-30Implementation of RoDEXKirieZ1-0/+3
2017-07-11Removed 'NO MSG' message in clients < 20101123. Follow up ↵Jedzkie1-2/+1
https://github.com/HerculesWS/Hercules/commit/60f9a68f90d495323e9e4533c7a1573ca5d86e71
2017-06-25Add packet 0xabd for send job and base levels to party members.Andrei Karas1-0/+20
Also improve packets send on base level change. Based on commit from rathena: commit 816d8ab2d0934f823a1d26f7fcac244f8245f14b Author: Lemongrass3110 <lemongrass@kstp.at> Date: Mon Jun 5 23:07:09 2017 +0200 Fixed party window for 2017 clients Thanks to @mrdiablo for his help again!
2017-06-25Fix vending list packet for 2016 clients. Based on rathena commit:Andrei Karas1-0/+29
commit 9716233c842f731df3fed5281370e324b5f5f024 Author: Lemongrass3110 <lemongrass@kstp.at> Date: Mon May 8 23:40:05 2017 +0200 Introducing the equip preview window Fixes some bugs for 2016-09-21 onward, where you can preview how a item would like if you put it on. This works on other people's vending and on your own inventory. Thanks to @Rytech2 and @hazimjauhari90
2017-05-27Merge pull request #1722 from Smokexyz/mmo_charstatus-fixHaru1-53/+66
Dismemberment of `storage_data` from `mmo_charstatus`.
2017-05-22Add storage_data reception, parsing and sending to/from the map-server.Smokexyz1-53/+66
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-04Merge pull request #1695 from Jedzkie/7-CashFoodFixHaru1-26/+3
Cash Foods Update
2017-05-04Merge pull request #1717 from mekolat/vault2Haru1-0/+15
expose the bank vault to the script engine
2017-04-29Fixes #1721Jedzkie1-1/+1
Signed-off-by: Jedzkie <jedzkie13@rocketmail.com>
2017-04-29Merge pull request #1713 from Jedzkie/17-DropAnnounceHaru1-7/+0
Fixes #994
2017-04-29Removal of rare_drop_announce config.Jedzkie1-7/+0
2017-04-26Merge pull request #1673 from Smokexyz/IROHaru1-55/+65
Fixes an issue where the unequipped items with options do not re-calculate status.
2017-04-25expose bank vault to the script enginegumi1-0/+15
2017-04-25Removal of cashfood_use_interval setting.Jedzkie1-26/+3
2017-04-25Merge pull request #1689 from Jedzkie/2-GiantFlyWingHaru1-3/+33
Implemented official Giant Fly Wing Effect
2017-04-25Merge pull request #1694 from Jedzkie/6-NPCWorkInProgressFixHaru1-4/+5
Added the correct PACKETVER Date for MSG_NPC_WORK_IN_PROGRESS message.
2017-04-24Merge pull request #1704 from Jedzkie/13-AddHealRateHaru1-9/+29
Added AB_HIGHNESSHEAL in skill_add_heal_rate configuration
2017-04-23Implemented official Giant Fly Wing EffectJedzkie1-3/+33
Update the *warpparty script commmand, credits to Dastgir Coding-style fixes & whitespace adjustments in warpparty part in script.c
2017-04-23Added the correct PACKETVER Date for MSG_NPC_WORK_IN_PROGRESS message.Jedzkie1-4/+5
2017-04-23Merge pull request #1697 from Jedzkie/9-PreventLogoutHaru1-2/+4
Made prevent_logout effect on log-in optional
2017-04-21Added AB_HIGHNESSHEAL in skill_add_heal_rate configurationJedzkie1-9/+29
2017-04-20Fix showing NO_MSG messages when using below 20101123 clientsJedzkie1-9/+16
2017-04-21Update GX Poison itemsJedzkie1-6/+0
2017-04-21Update Rune Knight Runes & OresJedzkie1-5/+0
2017-04-21Removed hard coded checks for no use while sitting in Aloevera and Anodyne item.Jedzkie1-5/+1
2017-04-20Made prevent_logout effect on log-in optionalJedzkie1-2/+4
kRO does not prevent players from logging out after connecting to its zone servers. Credits to @secretdataz of rAthena
2017-04-16Code-styling fixes to pc_unequipitem() in pc.cSmokexyz1-50/+49
2017-04-16Fixes an issue where the unequipped items with options do not re-calculate ↵Smokexyz1-8/+19
status.
2017-04-08Merge pull request #1663 from Smokexyz/bow-unequip-fixHaru1-0/+5
Unequip arrows when a bow is unequipped. (RE only)
2017-04-04Unequip arrows when a bow is unequipped. (RE only)Smokexyz1-0/+5
Forces the unequipment of arrows when a bow is unequipped. Based on original PR by @Jedzkie in #1079
2017-03-11Remove a duplicate comment lineHaru1-1/+0
- follow-up to 0f5fdca8945ec3afd5ba2e67a9d414f1ef5565c3 Signed-off-by: Haru <haru@dotalux.com>
2016-12-03Remove the platform-dependent variables from struct status_dataHaru1-6/+6
`struct status_data::class_` was platform dependent since c30bb75ec50624429bff7b4106db4be0fda366d6 in order to silence some compile warnings (uint32 on 64 bit builds and uint16 on 32 bit builds). It's now been changed to the correct type, int32, on all platforms. Since the change has potential to silently break third party code, the variable was renamed to `class`. Signed-off-by: Haru <haru@dotalux.com>
2016-12-03Add function to retrieve the appropriate fame list type for a job mapidHaru1-7/+27
This commit adds the function `pc->famelist_type()` to retrieve the appropriate fame list for a given job (common operation). When the given job ID doesn't have an appropriate fame list, the newly introduced value RANKTYPE_UNKNOWN is returned. Signed-off-by: Haru <haru@dotalux.com>
2016-12-03Change the argument to pc->famerank() to a rank type (instead of job mapid)Haru1-15/+33
For consistency with `pc->addfame()`, the argument to pc->famerank() is now an enum fame_list_type. The function was renamed to `pc->fame_rank()` to avoid silently compiling old non-compliant code. Signed-off-by: Haru <haru@dotalux.com>
2016-12-03Ensure that pc->addfame() increments the correct fame pointsHaru1-13/+30
The function now takes the rank type as argument, rather than guessing it from the character's class. If the wrong fame point type for the current character is requested, the request is ignored. This fixes some (unofficial) edge cases where a Taekwon or an Alchemist refined a signed item, they could obtain rank points. Signed-off-by: Haru <haru@dotalux.com>
2016-12-03Clarify some Job Class vs MapID confusion (2/2)Haru1-123/+156
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>
2016-12-03Clarify some Job Class vs MapID confusion (1/2)Haru1-103/+106
This commit ensures that `sd->status.class` and related variables only contain Job Classes (i.e. the client-compatible values, where High Novice 4001) and are never checked against the bitmask-based MapID values. As a rule of thumb, from now on, when a variable is named `class`, it is intended to contain a Job Class ID and not a MapID. The type of such variable shall be a signed `int16` or `int`. To ensure that related third party code is also verified when this commit is merged, the variable `struct mmo_charstatus::class_ (i.e. `sd->status.class_`) is renamed to `class`. Some issues in related lines are also fixed, including: - A wrong check in the char server would prevent the correct detection of babies in code related to the family exp sharing. - Baby Arch Bishops would not be affected by Eucharistica. - A wrong check would cause the `questinfo()` script command not to display its information for most classes (except 1-1 classes). - Map IDs and Job Classes were mixed up in `itemdb_jobid2mapid()` and `itemdb_jobmask2mapid()` for 1-1 classes (causing currently no harm, since they just happen to coincide). - The Baby Sura class would not cause parties to be marked as containing a monk type character (for SLS Team Up purposes). - Baby Geneticists would bypass the cart check when trying to equip ammunitions. - Baby Mechanics would bypass the Mado Gear check when trying to equip ammunitions. - Transcendent Shadow Chasers would lose the Stalkers' ability to clone transcendent skills. Signed-off-by: Haru <haru@dotalux.com>