Age | Commit message (Collapse) | Author | Files | Lines |
|
Natural expiration of Poison when under Slow Poison effect
|
|
Poison is active
The status change timer wasn't correctly rearmed in such a condition,
keeping SC_POISON active indefinitely.
Signed-off-by: Haru <haru@dotalux.com>
|
|
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>
|
|
Allow npc to use player classes (for older than 20170726 npc visible as players).
View_data structure can be copied from predefined view_data lists created new if npc using player type.
|
|
|
|
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>
|
|
|
|
|
|
|
|
|
|
function.
|
|
|
|
|
|
|
|
functions.
|
|
Normal Ores: http://ro.gnjoy.com/news/probability/View.asp?category=4&seq=1941553&curpage=1
Enriched Ores: http://ro.gnjoy.com/news/probability/View.asp?category=4&seq=1941565&curpage=1
Event Normal Ores: http://ro.gnjoy.com/news/probability/View.asp?category=4&seq=1941558&curpage=1
Event Enriched Ores: http://ro.gnjoy.com/news/probability/View.asp?category=4&seq=1941567&curpage=1
|
|
Implemented Official Summer 2 Costume
|
|
|
|
|
|
|
|
Added summer2_ignorepalette configuration
|
|
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)
|
|
`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>
|
|
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>
|
|
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>
|
|
|
|
b0006317e5cc4a48cd5b8a501b94813cd3b93670
- Their original value was `17` (0x11), which is equivalent to
`SCFLAG_NOAVOID|SCFLAG_NOICON`, rather than `SCFLAG_ALL` (0x1f)
Signed-off-by: Haru <haru@dotalux.com>
|
|
Implemented SC_CATNIPPOWDER:
Increases WAtk%, MAtk% and Reduces Movement Speed.
Increases Natural Hp/Sp Recovery
|
|
Increases BaseAtk and MAtk by 10%
|
|
|
|
Cannot be reset by dispell.
Cannot be healed by item/NPC once in BITESCAR.
Heal Skill would end the BiteScar Effect.
|
|
Lasts for (30+30*SkillLv) Seconds.
Consumes 1 Shrimp.
Increases ATK and MATK by 10% for limited time.
|
|
Protects the target for 30 seconds.
Tuna's Defense Power: (10+(20*(SkillLv-1)))% of Caster's MaxHP
|
|
Atk +(200+100*SkillLv)%.
When 1 Carrot is consumed, Add's a chance to stun enemy.
Lv1-2: 3x3 AoE
Lv3-4: 5x5 AoE
Lv5: 7x7 AoE
Added Item Constants in itemdb.h
|
|
For (50+10*SkillLv) Seconds, Atk +(15+5*SkillLv). Increases Movement
Speed.
If Target is Doram Race, Increases Range Physical attack by 10%.
|
|
Heal,Cure,Clearance cancels the effect.
Atk + 100*SkillLv%.
Reduces Fixed Amount of MaxHP for 9 seconds.
For Every 30 Base Levels, Adds an Additional chance that skill will be
activated again.
|
|
Duration: (5+(2*SkillLv)) seconds.
Cannot be used on Boss Monsters. Effect is cancelled when Heaven's Drive
or Trample is used.
Enemies trapped on roots receive poison property damage.
|
|
Increases Flee, Hit and CRI by 20.
If >= 20 Skill points invested in animal-based skills, Ranged Physical
Attack + 20%.
|
|
Catnip Meteor:
Increases Matk by 200+100*SkillLevel%.
When 1 Catnip is consumed, Adds a Chance to curse target[Not Implemented].
|
|
Consumes 1 Catnip Fruit.
Lv 1-2: 3x3 AoE
Lv 3-4: 5x5 AoE
Lv 5: 7x7 AoE
Lasts for (2+SkillLevel) Seconds
Increases Natural Recovery of HP/SP.
Reduces Atk and MAtk by 50%
Reduces Movement Speed.
|
|
Silvervine Steam Spear:
10% Bleeding Chance, 700% Matk at all levels.
Lv 1: Earth Magic
Lv 2: Fire Magic
Lv 3: Water Magic
Lv 4: Wind Magic
Lv 5: Ghost Magic
Base Level 30: Chance to activate skill again.
Every 30 Base Level: Increases the chance to activate skill.
|
|
Increases INT by 20,
If More than 20 skill points invested in plant based Skills, MATK+20%.
|
|
Consumes Fresh Shrimp to recover HP for 2 Minutes.
Max Level 5:
Recovers Every (11-SkillLevel) Seconds.
|
|
MaxHP + 1000, MaxSP + 100.
Show's Spirit of Sea, Land and Life around the sprite when skill is
learned.
|
|
Reduces Incoming Damange by 90% for 6 seconds.
When Knock Back, the effect disappears.
|
|
Max Level: 3
Attack Increases by 50+(50+Level)%
Base Level >= 30: Activates a Chance to cast skill again.
Every 30 Base Level: Increases the chance to cast skill again.
|