Currently all eathena based emulators work the effect state incorrectly. In hercules uses two enumerations one for effects other for icons.
This is totally wrong, in the official there is only an enumeration for the state of effects that are those of skills such as blessing. This enumeration is the same present in the lua files.
With this proposed change SI_ enumeration must be removed and the client itself will recognize and apply the icon according to the effect state ID.
the enumeration of effects states currently contains effects that should be used in another enumeration, they are.
SC_STONE = 0,
SC_COMMON_MIN = 0, // begin
SC_FREEZE,
SC_STUN,
SC_SLEEP,
SC_POISON,
SC_CURSE,
SC_SILENCE,
SC_CONFUSION,
SC_BLIND,
SC_BLOODING,
SC_DPOISON, //10
SC_FEAR,
SC_COLD,
SC_BURNING,
SC_DEEP_SLEEP,
SC_COMMON_MAX = 14, // end
In aegis, these effects are worked on in another type of enumeration, because they do not have icons, see below the enumeration of aegis.
typedef enum <unnamed-tag> {
BODY_STONECURSE = 0x1,
BODY_FREEZING = 0x2,
BODY_STUN = 0x3,
BODY_SLEEP = 0x4,
BODY_UNDEAD = 0x5,
HEALTH_POISON = 0x6,
HEALTH_CURSE = 0x7,
HEALTH_SILENCE = 0x8,
HEALTH_CONFUSION = 0x9,
HEALTH_BLIND = 0xa,
HEALTH_HEAVYPOISON = 0xb,
HEALTH_BLOODING = 0xc,
EFFECT_ENDURE = 0xd,
EFFECT_HASTE = 0xe,
EFFECT_HASTEATTACK = 0xf,
EFFECT_SLOW_POTION = 0x10,
EFFECT_HASTE_POTION = 0x11,
EFFECT_SANTA = 0x12,
EFFECT_ANGELUS = 0x13,
EFFECT_PUSHCART = 0x14,
EFFECT_CONCENTRATE = 0x15,
EFFECT_HIDE = 0x16,
EFFECT_WEDDING = 0x17,
EFFECT_PLUSATTACKPOWER = 0x18,
EFFECT_PLUSMAGICPOWER = 0x19,
EFFECT_CLAIRVOYANCE = 0x1a,
EFFECT_HASTE_HORSE = 0x1b,
EFFECT_SUMMER = 0x1c,
HEALTH_FEAR = 0x1d,
BODY_BURNNING = 0x1e,
BODY_IMPRISON = 0x1f,
HANDICAPSTATE_DEEPSLEEP = 0x20,
HANDICAPSTATE_FROSTMISTY = 0x21,
HANDICAPSTATE_COLD = 0x22,
HANDICAPSTATE_NORECOVER = 0x23,
EFFECT_HASTEATTACK_CASH = 0x24,
HANDICAPSTATE_ICEEXPLO = 0x25,
HANDICAPSTATE_ILLUSION = 0x26,
EFFECT_HANBOK = 0x27,
STATE_ENUM_END_MARK = 0x28,
} <unnamed-tag>;
So my suggestion is the separation of these effects and removal of the enumeration of the icons, since the enumeration of the effects must be the same present in the efstids.lua file, this makes the icon already recognized only using an enumeration and not two as we do today