summaryrefslogtreecommitdiff
path: root/src/map/clif.c
AgeCommit message (Collapse)AuthorFilesLines
2016-12-03Clarify some Job Class vs MapID confusion (2/2)Haru1-3/+3
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-13/+13
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>
2016-11-03Fix version for packet 0x08d6 ZC_CLEAR_DIALOG.Andrei Karas1-2/+5
2016-11-03Fix version for packet 0x08d2 ZC_FASTMOVE.Andrei Karas1-1/+1
2016-11-03Fix version for packet 0x08cf ZC_SPIRITS_ATTRIBUTE.Andrei Karas1-2/+2
2016-11-03Fix version for packet 0x08ca ZC_ACK_SCHEDULER_CASHITEM.Andrei Karas1-1/+4
2016-11-03Fix version for packet 0x08c0 ZC_ACK_SE_CASH_ITEM_LIST2.Andrei Karas1-2/+7
2016-11-03Fix version for packet 0x08b3 ZC_SHOWSCRIPTAndrei Karas1-0/+2
2016-11-03Fix version for packet 0x08e2 ZC_NAVIGATION_ACTIVE.Andrei Karas1-3/+4
2016-11-03Fix version for packet 0x097e ZC_UPDATE_RANKING_POINT.Andrei Karas1-4/+6
2016-11-03Add packet size 0x097d ZC_ACK_RANKING into packets.hAndrei Karas1-2/+3
2016-11-03Fix version for packet 0x0a28 ZC_ACK_OPENSTORE2Andrei Karas1-3/+3
2016-10-22Implemented SU_HIDE Skill.Dastgir Pojee1-6/+6
Transforms into Bush.
2016-10-22Implemented SU_BASIC_SKILL Skill of SummonerDastgir Pojee1-6/+6
Added Function for Basic Skills check.
2016-10-16Dont send packets for known unsupported client versions.Andrei Karas1-10/+38
Fixed packets between 20111005 to 20141022. As reference was used client packet logs from https://gitlab.com/4144/servergreps/tree/master/peek_all/packets
2016-10-08Fix packet id for clif_heal for packet version >= 20150513.Andrei Karas1-1/+1
2016-10-07Fixed some issues detected by clang's static analyzer (Xcode 8/macOS Sierra)Haru1-4/+1
Signed-off-by: Haru <haru@dotalux.com>
2016-09-30Add different fixes for gcc 7 warnings.Andrei Karas1-0/+1
Some possible buffer overflows. Add attribute for mark fallthrough cases. Skipped libconfig warnings.
2016-09-27In clif_devotion dont read skill range if player not have this skill.Andrei Karas1-2/+12
2016-09-12Use fixed size for packet 0x25d, because it used size from other packet.Andrei Karas1-2/+2
2016-09-12Add missing packet version checks in clif.cAndrei Karas1-0/+35
Because packet sizes defined not for all packets, usage packets with size zero is mistake.
2016-09-12Send correct homunculus rename flag to client. (Fixes #1424)Andrei Karas1-1/+1
2016-09-12Add packet id clif_bg_hp (0xa0e)Andrei Karas1-10/+28
Based on rAthena commit: commit ba184ab9a2a932b6ce2eba279fdc379b50b430a5 Author: Napster <arokaice@live.com> Date: Fri Dec 18 23:00:53 2015 +0700
2016-09-12Add script command navigateto. Add packet for this command.Andrei Karas1-0/+42
Based on rAthena commits: commit 4f13007fec7f08c265620a71c3bc4806d186c0f1 Author: Lemongrass3110 <lemongrass@kstp.at> Date: Sun Mar 6 21:48:47 2016 +0100 commit 809f220b9f5ef70ee062ee56ae6e8d5f56cb5d32 Author: aleos89 <aleos89@users.noreply.github.com> Date: Sun Mar 6 16:15:54 2016 -0500 commit 179f73424934d528ebe494dfb66503c182eacb09 Author: aleos89 <aleos89@users.noreply.github.com> Date: Sun Mar 6 16:10:15 2016 -0500
2016-09-12Add packet id clif_buyingstore_update_item (0x9e6 / ↵Andrei Karas1-7/+20
ZC_UPDATE_ITEM_FROM_BUYING_STORE2) Based on rAthena commit: commit 01adc9c3ff3c1c6f0f69f6f9f2db77eba20071d4 Author: Napster <arokaice@live.com> Date: Mon Dec 21 20:05:29 2015 +0700
2016-09-12Add packet id clif_vendingreport (0x9e5 / ZC_DELETEITEM_FROM_MCSTORE2)Andrei Karas1-8/+20
Based on rAthena commit: commit 01adc9c3ff3c1c6f0f69f6f9f2db77eba20071d4 Author: Napster <arokaice@live.com> Date: Mon Dec 21 20:05:29 2015 +0700
2016-09-12Add packet id clif_hominfo (0x9f7 / ZC_PROPERTY_HOMUN_2)Andrei Karas1-34/+53
Based on 3CeaM commit: commit 296480b6b4687c8f0faf698eae38f0e775bf5f6e Author: Rytech16 <Rytech16@cad27aaa-dce3-4a30-a00a-e4fd67c11881> Date: Sun Apr 19 03:24:41 2015 +0000 git-svn-id: svn://svn.code.sf.net/p/v1-3ceam/code/trunk@757 cad27aaa-dce3-4a30-a00a-e4fd67c11881 Note: selected very new packet version for this id, because other servers have inconsistent data.
2016-09-12Add packet id clif_heal for 20150513 (0x0a27 / ZC_RECOVERY2)Andrei Karas1-6/+17
Based on 3CeaM commit: commit f89805da42c792aa9bf4274eb5a30756c06fece7 Author: rytech16 <rytech16@cad27aaa-dce3-4a30-a00a-e4fd67c11881> Date: Sat Apr 23 13:16:49 2016 +0000 git-svn-id: svn://svn.code.sf.net/p/v1-3ceam/code/trunk@805 cad27aaa-dce3-4a30-a00a-e4fd67c11881
2016-09-12Add packet id clif_skill_nodamage for 20131223 (0x9c7 / ZC_USE_SKILL2)Andrei Karas1-16/+29
Based on 3CeaM commit: commit f89805da42c792aa9bf4274eb5a30756c06fece7 Author: rytech16 <rytech16@cad27aaa-dce3-4a30-a00a-e4fd67c11881> Date: Sat Apr 23 13:16:49 2016 +0000 git-svn-id: svn://svn.code.sf.net/p/v1-3ceam/code/trunk@805 cad27aaa-dce3-4a30-a00a-e4fd67c11881
2016-08-16Corrected the showscript packetEmistry Haoyan1-1/+1
The showscript packet was being sent to all players logged in which can be network intensive. Thanks to @Tokeiburu & aleos89! Based on https://github.com/rathena/rathena/commit/47a69c082a9520f14b19ebfd335c4956d0c5a13b
2016-07-25Added a missing entry into messages.conf and added some comments where ↵epuncker1-32/+24
missing, ref #1282
2016-07-19Add skill atributes for allow moving while casting skill.Andrei Karas1-1/+1
New SkillInfo attributes: FreeCastReduced - allow move while casting with slowdown FreeCastNormal - allow move while casting with normal speed
2016-07-14Fixes warp facing direction.KirieZ1-1/+2
Fixes #1240 Closes #1353 as merged
2016-07-14Simplify clif_skillcasting and rename to clif_useskill.Andrei Karas1-2/+3
2016-07-12Interface grfio.chemagx1-2/+3
2016-07-10Use different interface members for start sc effects and show started effect ↵Andrei Karas1-2/+3
to other. Added interface member clif->sc_continue for already started effects.
2016-07-08Fixed a compilation error on packetvers older than 20071106Haru1-29/+37
Fixes #1345 Signed-off-by: Haru <haru@dotalux.com>
2016-07-02Trivialities: indentation fixesHaru1-2/+2
Signed-off-by: Haru <haru@dotalux.com>
2016-07-02Fix guild skill range check in clif_parse_UseSkillToId.Andrei Karas1-1/+1
Wrong check prevent from using custom skills with id after guild skills.
2016-06-30Use item attribute as flags varible. Now only ATTR_BROKEN flag exists.Andrei Karas1-4/+4
2016-06-25Added option to strip hard line-breaks from `mes` dialogsHaru1-0/+14
- The `\r` character, in a `mes` dialog, is normally represented by the client as a hard line-break. - Since a client may have different requirements in line lengths (for example using a font with different size or metrics), an user might wish to ignore hard-wraps and let the client automatically soft-wrap instead. - If you want to hard-wrap (official default), keep the SCRIPT_MES_STRIP_LINEBREAK define commented out. - If you want to let the client soft-wrap automatically (may work better for custom clients), uncomment it. - Imprved HULD handling of `\r` (to avoid control characters in the generated file) - Please note that this requires cooperation by script writers: * Each `mes` should contain one and only one sentence, possibly without using the '+' concatenation (but, rather, sprintf). * Two separate sentences (where a hard-wrap is required even for soft-wrapped text) should always go into separate `mes` commands. * Following the above two recommendations, also produces a better quality translations .pot file. Signed-off-by: Haru <haru@dotalux.com>
2016-06-23Interface clif_bl_type now it's clif->bl_typehemagx1-6/+7
2016-06-23Interface disguised function, now it's clif->isdisguised.hemagx1-50/+59
2016-06-23Fix Possible Crash on clif_bl_type now it checks if vd is nullhemagx1-12/+30
2016-05-14Replaced 'unsigned int' with 'uint32' (guaranteed size) in all packed structsHaru1-1/+1
Signed-off-by: Haru <haru@dotalux.com>
2016-05-08Fixed various issues pointed out by cppcheckHaru1-1/+1
Signed-off-by: Haru <haru@dotalux.com>
2016-04-30Fixed a warning in VS2015Haru1-6/+7
Signed-off-by: Haru <haru@dotalux.com>
2016-04-30Corrected truncation of the last letter in whisper messagesHaru1-7/+7
- Follow-up to ccfd054 - Fixes #1275 Signed-off-by: Haru <haru@dotalux.com>
2016-04-29Fix compilation warnings with gcc 6.Andrei Karas1-3/+0
2016-04-28Corrected truncation of the last letter in party messagesHaru1-13/+15
- Discovered thanks to (and follow-up to) ccfd054 - Fixes #1270 Signed-off-by: Haru <haru@dotalux.com>