Age | Commit message (Collapse) | Author | Files | Lines |
|
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>
|
|
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Transforms into Bush.
|
|
Added Function for Basic Skills check.
|
|
Fixed packets between 20111005 to 20141022.
As reference was used client packet logs from
https://gitlab.com/4144/servergreps/tree/master/peek_all/packets
|
|
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
Some possible buffer overflows.
Add attribute for mark fallthrough cases.
Skipped libconfig warnings.
|
|
|
|
|
|
Because packet sizes defined not for all packets,
usage packets with size zero is mistake.
|
|
|
|
Based on rAthena commit:
commit ba184ab9a2a932b6ce2eba279fdc379b50b430a5
Author: Napster <arokaice@live.com>
Date: Fri Dec 18 23:00:53 2015 +0700
|
|
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
|
|
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
|
|
Based on rAthena commit:
commit 01adc9c3ff3c1c6f0f69f6f9f2db77eba20071d4
Author: Napster <arokaice@live.com>
Date: Mon Dec 21 20:05:29 2015 +0700
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
missing, ref #1282
|
|
New SkillInfo attributes:
FreeCastReduced - allow move while casting with slowdown
FreeCastNormal - allow move while casting with normal speed
|
|
Fixes #1240
Closes #1353 as merged
|
|
|
|
|
|
to other.
Added interface member clif->sc_continue for already started effects.
|
|
Fixes #1345
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
Wrong check prevent from using custom skills with id after guild skills.
|
|
|
|
- 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>
|
|
|
|
|
|
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
- Follow-up to ccfd054
- Fixes #1275
Signed-off-by: Haru <haru@dotalux.com>
|
|
|
|
- Discovered thanks to (and follow-up to) ccfd054
- Fixes #1270
Signed-off-by: Haru <haru@dotalux.com>
|