Age | Commit message (Collapse) | Author | Files | Lines |
|
Signed-off-by: Haru <haru@dotalux.com>
|
|
All official features work including the autokick for inactive members
And the system is completely customizable.
|
|
|
|
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>
|
|
This includes some renamed local variables, in order to minimize the
cases of unsafe variable reuse.
Signed-off-by: Haru <haru@dotalux.com>
|
|
Fixes #1867
Signed-off-by: Haru <haru@dotalux.com>
|
|
Also update some functions for support 64 bit exp calculation.
|
|
This mainly need for base and job exp, because now they using int64 type.
|
|
Was: ITEMUPPER_THURDUPPER
Signed-off-by: Haru <haru@dotalux.com>
|
|
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>
|
|
`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>
|
|
`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>
|
|
- 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>
|
|
|
|
https://github.com/HerculesWS/Hercules/commit/60f9a68f90d495323e9e4533c7a1573ca5d86e71
|
|
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!
|
|
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
|
|
Dismemberment of `storage_data` from `mmo_charstatus`.
|
|
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.
|
|
Cash Foods Update
|
|
expose the bank vault to the script engine
|
|
Signed-off-by: Jedzkie <jedzkie13@rocketmail.com>
|
|
Fixes #994
|
|
|
|
Fixes an issue where the unequipped items with options do not re-calculate status.
|
|
|
|
|
|
Implemented official Giant Fly Wing Effect
|
|
Added the correct PACKETVER Date for MSG_NPC_WORK_IN_PROGRESS message.
|
|
Added AB_HIGHNESSHEAL in skill_add_heal_rate configuration
|
|
Update the *warpparty script commmand, credits to Dastgir
Coding-style fixes & whitespace adjustments in warpparty part in script.c
|
|
|
|
Made prevent_logout effect on log-in optional
|
|
|
|
|
|
|
|
|
|
|
|
kRO does not prevent players from logging out after connecting to its zone servers.
Credits to @secretdataz of rAthena
|
|
|
|
status.
|
|
Unequip arrows when a bow is unequipped. (RE only)
|
|
Forces the unequipment of arrows when a bow is unequipped.
Based on original PR by @Jedzkie in #1079
|
|
- follow-up to 0f5fdca8945ec3afd5ba2e67a9d414f1ef5565c3
Signed-off-by: Haru <haru@dotalux.com>
|
|
`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>
|
|
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>
|
|
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>
|
|
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>
|