Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
Implementation of Item Options System.
|
|
Allows the infusing of equipments with bonus item options.
This feature is constrained to clients of packet versions greater than or equal to `20150226`.
Item Options and their effects are defined server-side in `db/item_options.conf` and client side in `data/luafiles514/lua files/datainfo/addrandomoptionnametable.lub`
The ID of the option must tally with the correct index of the description provided in the client side lua file to avoid bugs.
IT_OPT_* keys and MAX_ITEM_OPTIONS macro are also exported from the source as constants.
An additional flag `disable_options` has been added to sql, and as `DisableOptions: true/false (boolean, defaults to false !!for equipments only!!)` to item_db.conf files.
Script commands documentation is also included.
SQL file updates are included.
Credits: [Smokexyz](https://github.com/Smokexyz)
Style and Script Fixes by [Asheraf](https://github.com/Asheraf)
Initial design Idea by [secretdataz](https://github.com/secretdataz)
|
|
|
|
|
|
Based on ragemu commit:
commit a7ff9d064b238f5c2c4947f41eeaa0bfe331f2e6
Author: athron98 <athron.poster@gmail.com>
Date: Mon May 23 20:36:43 2016 +0700
input fix
|
|
- 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
|
|
* Added option to show classchange only to one player
|
|
Fixes disguise position de-synchronization
|
|
Thanks @Lemongrass3110
|
|
owner. Fixes #1206
|
|
|
|
`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>
|
|
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>
|
|
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
|
|
|
|
|