
- NPC_POWERUP and NPC_AGIUP now grant their own unique status changes - Duration of NPC_POWERUP is now 5s*level - Duration of NPC_AGIUP is now 10s*level and max level is back to 10 - Quagmire, Slow Grace and Adoramus now work even when the target used NPC_AGIUP - NPC_AGIUP will remove Decrease Agi on start but will not prevent it - NPC_AGIUP can be dispelled, but NPC_POWERUP cannot - Dispel will now make a monster unlock its target - Removed custom code to display the NPC_POWERUP effect, it's now correctly linked to EFST_POWERUP - Removed the ifdef around EXTREMITYFIST2, so we no longer constantly change its ID - Fixes #8242 - Fixes #904 - Fixes #7346
3519 lines
81 KiB
C++
3519 lines
81 KiB
C++
// Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
|
|
// For more information, see LICENCE in the main folder
|
|
|
|
#ifndef STATUS_HPP
|
|
#define STATUS_HPP
|
|
|
|
#include <algorithm>
|
|
#include <bitset>
|
|
#include <memory>
|
|
#include <unordered_map>
|
|
#include <vector>
|
|
|
|
#include <common/database.hpp>
|
|
#include <common/mmo.hpp>
|
|
#include <common/timer.hpp>
|
|
|
|
#include "map.hpp"
|
|
#include "script.hpp"
|
|
|
|
enum e_race2 : uint8;
|
|
struct block_list;
|
|
struct mob_data;
|
|
struct pet_data;
|
|
struct homun_data;
|
|
struct s_mercenary_data;
|
|
struct s_elemental_data;
|
|
struct npc_data;
|
|
class status_change;
|
|
|
|
/**
|
|
* Max Refine available to your server
|
|
**/
|
|
#ifdef RENEWAL
|
|
# define MAX_REFINE 20
|
|
#else
|
|
# define MAX_REFINE 10
|
|
#endif
|
|
|
|
/// Refine type
|
|
enum e_refine_type : uint16{
|
|
REFINE_TYPE_ARMOR = 0,
|
|
REFINE_TYPE_WEAPON,
|
|
REFINE_TYPE_SHADOW_ARMOR,
|
|
REFINE_TYPE_SHADOW_WEAPON,
|
|
REFINE_TYPE_MAX
|
|
};
|
|
|
|
/// Refine cost type
|
|
enum e_refine_cost_type : uint16{
|
|
REFINE_COST_NORMAL = 0,
|
|
REFINE_COST_HD,
|
|
REFINE_COST_ENRICHED,
|
|
REFINE_COST_MAX
|
|
};
|
|
|
|
/// Refine script parameters
|
|
enum e_refine_parameter{
|
|
REFINE_MATERIAL_ID = 0,
|
|
REFINE_ZENY_COST
|
|
};
|
|
|
|
struct s_refine_cost{
|
|
uint16 index;
|
|
t_itemid nameid;
|
|
uint16 chance;
|
|
uint32 zeny;
|
|
uint16 breaking_rate;
|
|
uint16 downgrade_amount;
|
|
};
|
|
|
|
struct s_refine_level_info{
|
|
uint16 level;
|
|
uint32 bonus;
|
|
uint32 randombonus_max;
|
|
uint16 blessing_amount;
|
|
bool broadcast_success;
|
|
bool broadcast_failure;
|
|
std::unordered_map<uint16, std::shared_ptr<s_refine_cost>> costs;
|
|
};
|
|
|
|
struct s_refine_levels_info{
|
|
uint16 level;
|
|
std::unordered_map<uint16, std::shared_ptr<s_refine_level_info>> levels;
|
|
};
|
|
|
|
struct s_refine_info{
|
|
uint16 groupId;
|
|
std::unordered_map<uint16, std::shared_ptr<s_refine_levels_info>> levels;
|
|
};
|
|
|
|
class RefineDatabase : public TypesafeYamlDatabase<uint16, s_refine_info>{
|
|
private:
|
|
bool calculate_refine_info( const struct item_data& data, e_refine_type& refine_type, uint16& level );
|
|
std::shared_ptr<s_refine_level_info> findLevelInfoSub( const struct item_data& data, struct item& item, uint16 refine );
|
|
|
|
public:
|
|
RefineDatabase() : TypesafeYamlDatabase( "REFINE_DB", 2, 1 ){
|
|
|
|
}
|
|
|
|
const std::string getDefaultLocation() override;
|
|
uint64 parseBodyNode( const ryml::NodeRef& node ) override;
|
|
|
|
// Additional
|
|
std::shared_ptr<s_refine_level_info> findLevelInfo( const struct item_data& data, struct item& item );
|
|
std::shared_ptr<s_refine_level_info> findCurrentLevelInfo( const struct item_data& data, struct item& item );
|
|
};
|
|
|
|
extern RefineDatabase refine_db;
|
|
|
|
/// Weapon attack modification for size
|
|
struct s_sizefix_db {
|
|
uint16 small, medium, large;
|
|
};
|
|
|
|
class SizeFixDatabase : public TypesafeYamlDatabase<int32, s_sizefix_db> {
|
|
public:
|
|
SizeFixDatabase() : TypesafeYamlDatabase("SIZE_FIX_DB", 1) {
|
|
|
|
}
|
|
|
|
const std::string getDefaultLocation() override;
|
|
uint64 parseBodyNode(const ryml::NodeRef& node) override;
|
|
};
|
|
|
|
extern SizeFixDatabase size_fix_db;
|
|
|
|
class AttributeDatabase : public YamlDatabase {
|
|
private:
|
|
int16 attr_fix_table[MAX_ELE_LEVEL][ELE_MAX][ELE_MAX];
|
|
|
|
public:
|
|
AttributeDatabase() : YamlDatabase("ATTRIBUTE_DB", 1) {
|
|
this->clear();
|
|
}
|
|
|
|
void clear() override{
|
|
std::fill_n(&attr_fix_table[0][0][0], MAX_ELE_LEVEL * ELE_MAX * ELE_MAX, 100);
|
|
}
|
|
const std::string getDefaultLocation() override;
|
|
uint64 parseBodyNode(const ryml::NodeRef& node) override;
|
|
|
|
// Additional
|
|
int16 getAttribute(uint16 level, uint16 atk_ele, uint16 def_ele);
|
|
};
|
|
|
|
extern AttributeDatabase elemental_attribute_db;
|
|
|
|
enum e_enchantgrade_result{
|
|
ENCHANTGRADE_UPGRADE_SUCCESS,
|
|
ENCHANTGRADE_UPGRADE_FAILED,
|
|
ENCHANTGRADE_UPGRADE_DOWNGRADE,
|
|
ENCHANTGRADE_UPGRADE_BREAK,
|
|
ENCHANTGRADE_UPGRADE_PROTECTED,
|
|
};
|
|
|
|
struct s_enchantgradeoption{
|
|
uint16 id;
|
|
t_itemid item;
|
|
uint16 amount;
|
|
uint32 zeny;
|
|
uint16 breaking_rate;
|
|
uint16 downgrade_amount;
|
|
};
|
|
|
|
struct s_enchantgradelevel{
|
|
e_enchantgrade grade;
|
|
uint16 chances[MAX_REFINE + 1];
|
|
uint16 bonus;
|
|
bool announceSuccess;
|
|
bool announceFail;
|
|
struct{
|
|
t_itemid item;
|
|
uint16 amountPerStep;
|
|
uint16 maximumSteps;
|
|
uint16 chanceIncrease;
|
|
}catalyst;
|
|
std::map<uint16,std::shared_ptr<s_enchantgradeoption>> options;
|
|
};
|
|
|
|
struct s_enchantgrade{
|
|
uint16 itemtype;
|
|
std::map<uint16,std::map<e_enchantgrade,std::shared_ptr<s_enchantgradelevel>>> levels;
|
|
};
|
|
|
|
class EnchantgradeDatabase : public TypesafeYamlDatabase<uint16, s_enchantgrade>{
|
|
public:
|
|
EnchantgradeDatabase() : TypesafeYamlDatabase( "ENCHANTGRADE_DB", 3 ){
|
|
|
|
}
|
|
|
|
const std::string getDefaultLocation() override;
|
|
uint64 parseBodyNode( const ryml::NodeRef& node ) override;
|
|
void loadingFinished() override;
|
|
|
|
// Additional
|
|
std::shared_ptr<s_enchantgradelevel> findCurrentLevelInfo( const struct item_data& data, struct item& item );
|
|
};
|
|
|
|
extern EnchantgradeDatabase enchantgrade_db;
|
|
|
|
/// Status changes listing. These code are for use by the server.
|
|
enum sc_type : int16 {
|
|
SC_NONE = -1,
|
|
|
|
//First we enumerate common status ailments which are often used around.
|
|
SC_STONE = 0,
|
|
SC_COMMON_MIN = SC_STONE, // begin
|
|
SC_FREEZE,
|
|
SC_STUN,
|
|
SC_SLEEP,
|
|
SC_POISON,
|
|
SC_CURSE,
|
|
SC_SILENCE,
|
|
SC_CONFUSION,
|
|
SC_BLIND,
|
|
SC_BLEEDING,
|
|
SC_DPOISON, //10
|
|
SC_STONEWAIT,
|
|
SC_COMMON_MAX = SC_STONEWAIT, // end
|
|
|
|
//Next up, we continue on 20, to leave enough room for additional "common" ailments in the future.
|
|
SC_PROVOKE = 20,
|
|
SC_ENDURE,
|
|
SC_TWOHANDQUICKEN,
|
|
SC_CONCENTRATE,
|
|
SC_HIDING,
|
|
SC_CLOAKING,
|
|
SC_ENCPOISON,
|
|
SC_POISONREACT,
|
|
SC_QUAGMIRE,
|
|
SC_ANGELUS,
|
|
SC_BLESSING, //30
|
|
SC_SIGNUMCRUCIS,
|
|
SC_INCREASEAGI,
|
|
SC_DECREASEAGI,
|
|
SC_SLOWPOISON,
|
|
SC_IMPOSITIO ,
|
|
SC_SUFFRAGIUM,
|
|
SC_ASPERSIO,
|
|
SC_BENEDICTIO,
|
|
SC_KYRIE,
|
|
SC_MAGNIFICAT, //40
|
|
SC_GLORIA,
|
|
SC_AETERNA,
|
|
SC_ADRENALINE,
|
|
SC_WEAPONPERFECTION,
|
|
SC_OVERTHRUST,
|
|
SC_MAXIMIZEPOWER,
|
|
SC_TRICKDEAD,
|
|
SC_LOUD,
|
|
SC_ENERGYCOAT,
|
|
SC_BROKENARMOR, //50 - NOTE: These two aren't used anywhere, and they have an icon...
|
|
SC_BROKENWEAPON,
|
|
SC_HALLUCINATION,
|
|
SC_WEIGHT50,
|
|
SC_WEIGHT90,
|
|
SC_ASPDPOTION0,
|
|
SC_ASPDPOTION1,
|
|
SC_ASPDPOTION2,
|
|
SC_ASPDPOTION3,
|
|
SC_SPEEDUP0,
|
|
SC_SPEEDUP1, //60
|
|
SC_ATKPOTION,
|
|
SC_MATKPOTION,
|
|
SC_WEDDING,
|
|
SC_SLOWDOWN,
|
|
SC_ANKLE,
|
|
SC_KEEPING,
|
|
SC_BARRIER,
|
|
SC_STRIPWEAPON,
|
|
SC_STRIPSHIELD,
|
|
SC_STRIPARMOR, //70
|
|
SC_STRIPHELM,
|
|
SC_CP_WEAPON,
|
|
SC_CP_SHIELD,
|
|
SC_CP_ARMOR,
|
|
SC_CP_HELM,
|
|
SC_AUTOGUARD,
|
|
SC_REFLECTSHIELD,
|
|
SC_SPLASHER,
|
|
SC_PROVIDENCE,
|
|
SC_DEFENDER, //80
|
|
SC_MAGICROD,
|
|
SC_SPELLBREAKER,
|
|
SC_AUTOSPELL,
|
|
SC_SIGHTTRASHER,
|
|
SC_AUTOBERSERK,
|
|
SC_SPEARQUICKEN,
|
|
SC_AUTOCOUNTER,
|
|
SC_SIGHT,
|
|
SC_SAFETYWALL,
|
|
SC_RUWACH, //90
|
|
SC_EXTREMITYFIST,
|
|
SC_EXPLOSIONSPIRITS,
|
|
SC_COMBO,
|
|
SC_BLADESTOP_WAIT,
|
|
SC_BLADESTOP,
|
|
SC_FIREWEAPON,
|
|
SC_WATERWEAPON,
|
|
SC_WINDWEAPON,
|
|
SC_EARTHWEAPON,
|
|
SC_VOLCANO, //100,
|
|
SC_DELUGE,
|
|
SC_VIOLENTGALE,
|
|
SC_WATK_ELEMENT,
|
|
SC_ARMOR,
|
|
SC_ARMOR_ELEMENT_WATER,
|
|
SC_NOCHAT,
|
|
SC_PROTECTEXP,
|
|
SC_AURABLADE,
|
|
SC_PARRYING,
|
|
SC_CONCENTRATION, //110
|
|
SC_TENSIONRELAX,
|
|
SC_BERSERK,
|
|
SC_FURY,
|
|
SC_GOSPEL,
|
|
SC_ASSUMPTIO,
|
|
SC_BASILICA,
|
|
SC_GUILDAURA,
|
|
SC_MAGICPOWER,
|
|
SC_EDP,
|
|
SC_TRUESIGHT, //120
|
|
SC_WINDWALK,
|
|
SC_MELTDOWN,
|
|
SC_CARTBOOST,
|
|
SC_CHASEWALK,
|
|
SC_REJECTSWORD,
|
|
SC_MARIONETTE,
|
|
SC_MARIONETTE2,
|
|
SC_CHANGEUNDEAD,
|
|
SC_JOINTBEAT,
|
|
SC_MINDBREAKER, //130
|
|
SC_MEMORIZE,
|
|
SC_FOGWALL,
|
|
SC_SPIDERWEB,
|
|
SC_DEVOTION,
|
|
SC_SACRIFICE,
|
|
SC_STEELBODY,
|
|
SC_ORCISH,
|
|
SC_READYSTORM,
|
|
SC_READYDOWN,
|
|
SC_READYTURN, //140
|
|
SC_READYCOUNTER,
|
|
SC_DODGE,
|
|
SC_RUN,
|
|
SC_SHADOWWEAPON,
|
|
SC_ADRENALINE2,
|
|
SC_GHOSTWEAPON,
|
|
SC_KAIZEL,
|
|
SC_KAAHI,
|
|
SC_KAUPE,
|
|
SC_ONEHAND, //150
|
|
SC_PRESERVE,
|
|
SC_BATTLEORDERS,
|
|
SC_REGENERATION,
|
|
SC_DOUBLECAST,
|
|
SC_GRAVITATION,
|
|
SC_MAXOVERTHRUST,
|
|
SC_LONGING,
|
|
SC_HERMODE,
|
|
SC_SHRINK,
|
|
SC_SIGHTBLASTER, //160
|
|
SC_WINKCHARM,
|
|
SC_CLOSECONFINE,
|
|
SC_CLOSECONFINE2,
|
|
SC_DANCING,
|
|
SC_ELEMENTALCHANGE,
|
|
SC_RICHMANKIM,
|
|
SC_ETERNALCHAOS,
|
|
SC_DRUMBATTLE,
|
|
SC_NIBELUNGEN,
|
|
SC_ROKISWEIL, //170
|
|
SC_INTOABYSS,
|
|
SC_SIEGFRIED,
|
|
SC_WHISTLE,
|
|
SC_ASSNCROS,
|
|
SC_POEMBRAGI,
|
|
SC_APPLEIDUN,
|
|
SC_MODECHANGE,
|
|
SC_HUMMING,
|
|
SC_DONTFORGETME,
|
|
SC_FORTUNE, //180
|
|
SC_SERVICE4U,
|
|
SC_STOP, //Prevents inflicted chars from walking. [Skotlex]
|
|
SC_SPURT,
|
|
SC_SPIRIT,
|
|
SC_COMA, //Not a real SC_, it makes a char's HP/SP hit 1.
|
|
SC_INTRAVISION,
|
|
SC_INCALLSTATUS,
|
|
SC_INCSTR,
|
|
SC_INCAGI,
|
|
SC_INCVIT, //190
|
|
SC_INCINT,
|
|
SC_INCDEX,
|
|
SC_INCLUK,
|
|
SC_INCHIT,
|
|
SC_INCHITRATE,
|
|
SC_INCFLEE,
|
|
SC_INCFLEERATE,
|
|
SC_INCMHPRATE,
|
|
SC_INCMSPRATE,
|
|
SC_INCATKRATE, //200
|
|
SC_INCMATKRATE,
|
|
SC_INCDEFRATE,
|
|
SC_STRFOOD,
|
|
SC_AGIFOOD,
|
|
SC_VITFOOD,
|
|
SC_INTFOOD,
|
|
SC_DEXFOOD,
|
|
SC_LUKFOOD,
|
|
SC_HITFOOD,
|
|
SC_FLEEFOOD, //210
|
|
SC_BATKFOOD,
|
|
SC_WATKFOOD,
|
|
SC_MATKFOOD,
|
|
SC_SCRESIST, //Increases resistance to status changes.
|
|
SC_XMAS, // Xmas Suit [Valaris]
|
|
SC_WARM, //SG skills [Komurka]
|
|
SC_SUN_COMFORT,
|
|
SC_MOON_COMFORT,
|
|
SC_STAR_COMFORT,
|
|
SC_FUSION, //220
|
|
SC_SKILLRATE_UP,
|
|
SC_SKE,
|
|
SC_KAITE,
|
|
SC_SWOO, // [marquis007]
|
|
SC_SKA, // [marquis007]
|
|
SC_EARTHSCROLL,
|
|
SC_MIRACLE, //SG 'hidden' skill [Komurka]
|
|
SC_MADNESSCANCEL,
|
|
SC_ADJUSTMENT,
|
|
SC_INCREASING, //230
|
|
SC_GATLINGFEVER,
|
|
SC_TATAMIGAESHI,
|
|
SC_UTSUSEMI,
|
|
SC_BUNSINJYUTSU,
|
|
SC_KAENSIN,
|
|
SC_SUITON,
|
|
SC_NEN,
|
|
SC_KNOWLEDGE,
|
|
SC_SMA,
|
|
SC_FLING, //240
|
|
SC_AVOID,
|
|
SC_CHANGE,
|
|
SC_BLOODLUST,
|
|
SC_FLEET,
|
|
SC_SPEED,
|
|
SC_DEFENCE,
|
|
SC_INCASPDRATE,
|
|
SC_INCFLEE2 = 248,
|
|
SC_JAILED,
|
|
SC_ENCHANTARMS, //250
|
|
SC_MAGICALATTACK,
|
|
SC_ARMORCHANGE,
|
|
SC_CRITICALWOUND,
|
|
SC_MAGICMIRROR,
|
|
SC_SLOWCAST,
|
|
SC_SUMMER,
|
|
SC_EXPBOOST,
|
|
SC_ITEMBOOST,
|
|
SC_BOSSMAPINFO,
|
|
SC_LIFEINSURANCE, //260
|
|
SC_INCCRI,
|
|
//SC_INCDEF,
|
|
//SC_INCBASEATK = 263,
|
|
//SC_FASTCAST,
|
|
SC_MDEF_RATE = 265,
|
|
//SC_HPREGEN,
|
|
SC_INCHEALRATE = 267,
|
|
SC_PNEUMA,
|
|
SC_AUTOTRADE,
|
|
SC_KSPROTECTED, //270
|
|
SC_ARMOR_RESIST = 271,
|
|
SC_SPCOST_RATE,
|
|
SC_COMMONSC_RESIST,
|
|
SC_SEVENWIND,
|
|
SC_DEF_RATE,
|
|
//SC_SPREGEN,
|
|
SC_WALKSPEED = 277,
|
|
|
|
// Mercenary Only Bonus Effects
|
|
SC_MERC_FLEEUP,
|
|
SC_MERC_ATKUP,
|
|
SC_MERC_HPUP, //280
|
|
SC_MERC_SPUP,
|
|
SC_MERC_HITUP,
|
|
SC_MERC_QUICKEN,
|
|
|
|
SC_REBIRTH,
|
|
//SC_SKILLCASTRATE, //285
|
|
//SC_DEFRATIOATK,
|
|
//SC_HPDRAIN,
|
|
//SC_SKILLATKBONUS,
|
|
SC_ITEMSCRIPT = 289,
|
|
SC_S_LIFEPOTION, //290
|
|
SC_L_LIFEPOTION,
|
|
SC_JEXPBOOST,
|
|
//SC_IGNOREDEF,
|
|
SC_HELLPOWER = 294,
|
|
SC_INVINCIBLE, //295
|
|
SC_INVINCIBLEOFF,
|
|
SC_MANU_ATK,
|
|
SC_MANU_DEF,
|
|
SC_SPL_ATK,
|
|
SC_SPL_DEF, //300
|
|
SC_MANU_MATK,
|
|
SC_SPL_MATK,
|
|
SC_FOOD_STR_CASH,
|
|
SC_FOOD_AGI_CASH,
|
|
SC_FOOD_VIT_CASH,
|
|
SC_FOOD_DEX_CASH,
|
|
SC_FOOD_INT_CASH,
|
|
SC_FOOD_LUK_CASH,//308
|
|
/**
|
|
* 3rd
|
|
**/
|
|
SC_FEAR,//309
|
|
SC_BURNING,//310
|
|
SC_FREEZING,//311
|
|
/**
|
|
* Rune Knight
|
|
**/
|
|
SC_ENCHANTBLADE,//312
|
|
SC_DEATHBOUND,//313
|
|
SC_MILLENNIUMSHIELD,
|
|
SC_CRUSHSTRIKE,//315
|
|
SC_REFRESH,
|
|
SC_REUSE_REFRESH,
|
|
SC_GIANTGROWTH,
|
|
SC_STONEHARDSKIN,
|
|
SC_VITALITYACTIVATION,//320
|
|
SC_STORMBLAST,
|
|
SC_FIGHTINGSPIRIT,
|
|
SC_ABUNDANCE,
|
|
/**
|
|
* Arch Bishop
|
|
**/
|
|
SC_ADORAMUS,
|
|
SC_EPICLESIS,//325
|
|
SC_ORATIO,
|
|
SC_LAUDAAGNUS,
|
|
SC_LAUDARAMUS,
|
|
SC_RENOVATIO,
|
|
SC_EXPIATIO,//330
|
|
SC_DUPLELIGHT,
|
|
SC_SECRAMENT,
|
|
/**
|
|
* Warlock
|
|
**/
|
|
SC_WHITEIMPRISON,
|
|
SC_MARSHOFABYSS,
|
|
SC_RECOGNIZEDSPELL,//335
|
|
SC_STASIS,
|
|
SC_SPHERE_1,
|
|
SC_SPHERE_2,
|
|
SC_SPHERE_3,
|
|
SC_SPHERE_4,//340
|
|
SC_SPHERE_5,
|
|
SC_READING_SB,
|
|
SC_FREEZE_SP,
|
|
/**
|
|
* Ranger
|
|
**/
|
|
SC_FEARBREEZE,
|
|
SC_ELECTRICSHOCKER,//345
|
|
SC_WUGDASH,
|
|
SC_BITE,
|
|
SC_CAMOUFLAGE,
|
|
/**
|
|
* Mechanic
|
|
**/
|
|
SC_ACCELERATION,
|
|
SC_HOVERING,//350
|
|
SC_SHAPESHIFT,
|
|
SC_INFRAREDSCAN,
|
|
SC_ANALYZE,
|
|
SC_MAGNETICFIELD,
|
|
SC_NEUTRALBARRIER,//355
|
|
SC_NEUTRALBARRIER_MASTER,
|
|
SC_STEALTHFIELD,
|
|
SC_STEALTHFIELD_MASTER,
|
|
SC_OVERHEAT,
|
|
SC_OVERHEAT_LIMITPOINT,//360
|
|
/**
|
|
* Guillotine Cross
|
|
**/
|
|
SC_VENOMIMPRESS,
|
|
SC_POISONINGWEAPON,
|
|
SC_WEAPONBLOCKING,
|
|
SC_CLOAKINGEXCEED,
|
|
SC_HALLUCINATIONWALK,//365
|
|
SC_HALLUCINATIONWALK_POSTDELAY,
|
|
SC_ROLLINGCUTTER,
|
|
SC_TOXIN,
|
|
SC_PARALYSE,
|
|
SC_VENOMBLEED,//370
|
|
SC_MAGICMUSHROOM,
|
|
SC_DEATHHURT,
|
|
SC_PYREXIA,
|
|
SC_OBLIVIONCURSE,
|
|
SC_LEECHESEND,//375
|
|
/**
|
|
* Royal Guard
|
|
**/
|
|
SC_REFLECTDAMAGE,
|
|
SC_FORCEOFVANGUARD,
|
|
SC_SHIELDSPELL_HP,
|
|
SC_SHIELDSPELL_SP,
|
|
SC_SHIELDSPELL_ATK,//380
|
|
SC_EXEEDBREAK,
|
|
SC_PRESTIGE,
|
|
SC_BANDING,
|
|
SC_BANDING_DEFENCE,
|
|
SC_EARTHDRIVE,//385
|
|
SC_INSPIRATION,
|
|
/**
|
|
* Sorcerer
|
|
**/
|
|
SC_SPELLFIST,
|
|
SC_CRYSTALIZE,
|
|
SC_STRIKING,
|
|
SC_WARMER,//390
|
|
SC_VACUUM_EXTREME,
|
|
SC_PROPERTYWALK,
|
|
/**
|
|
* Minstrel / Wanderer
|
|
**/
|
|
SC_SWINGDANCE,
|
|
SC_SYMPHONYOFLOVER,
|
|
SC_MOONLITSERENADE,//395
|
|
SC_RUSHWINDMILL,
|
|
SC_ECHOSONG,
|
|
SC_HARMONIZE,
|
|
SC_VOICEOFSIREN,
|
|
SC_DEEPSLEEP,//400
|
|
SC_SIRCLEOFNATURE,
|
|
SC_GLOOMYDAY,
|
|
SC_GLOOMYDAY_SK,
|
|
SC_SONGOFMANA,
|
|
SC_DANCEWITHWUG,//405
|
|
SC_SATURDAYNIGHTFEVER,
|
|
SC_LERADSDEW,
|
|
SC_MELODYOFSINK,
|
|
SC_BEYONDOFWARCRY,
|
|
SC_UNLIMITEDHUMMINGVOICE,//410
|
|
SC_SITDOWN_FORCE,
|
|
SC_NETHERWORLD,
|
|
/**
|
|
* Sura
|
|
**/
|
|
SC_CRESCENTELBOW,
|
|
SC_CURSEDCIRCLE_ATKER,
|
|
SC_CURSEDCIRCLE_TARGET,
|
|
SC_LIGHTNINGWALK,//416
|
|
SC_RAISINGDRAGON,
|
|
SC_GT_ENERGYGAIN,
|
|
SC_GT_CHANGE,
|
|
SC_GT_REVITALIZE,
|
|
/**
|
|
* Genetic
|
|
**/
|
|
SC_GN_CARTBOOST,//421
|
|
SC_THORNSTRAP,
|
|
SC_BLOODSUCKER,
|
|
SC_SMOKEPOWDER,
|
|
SC_TEARGAS,
|
|
SC_MANDRAGORA,//426
|
|
SC_STOMACHACHE,
|
|
SC_MYSTERIOUS_POWDER,
|
|
SC_MELON_BOMB,
|
|
SC_BANANA_BOMB,
|
|
SC_BANANA_BOMB_SITDOWN,//431
|
|
SC_SAVAGE_STEAK,
|
|
SC_COCKTAIL_WARG_BLOOD,
|
|
SC_MINOR_BBQ,
|
|
SC_SIROMA_ICE_TEA,
|
|
SC_DROCERA_HERB_STEAMED,//436
|
|
SC_PUTTI_TAILS_NOODLES,
|
|
SC_BOOST500,
|
|
SC_FULL_SWING_K,
|
|
SC_MANA_PLUS,
|
|
SC_MUSTLE_M,//441
|
|
SC_LIFE_FORCE_F,
|
|
SC_EXTRACT_WHITE_POTION_Z,
|
|
SC_VITATA_500,
|
|
SC_EXTRACT_SALAMINE_JUICE,
|
|
/**
|
|
* Shadow Chaser
|
|
**/
|
|
SC__REPRODUCE,//446
|
|
SC__AUTOSHADOWSPELL,
|
|
SC__SHADOWFORM,
|
|
SC__BODYPAINT,
|
|
SC__INVISIBILITY,
|
|
SC__DEADLYINFECT,//451
|
|
SC__ENERVATION,
|
|
SC__GROOMY,
|
|
SC__IGNORANCE,
|
|
SC__LAZINESS,
|
|
SC__UNLUCKY,//456
|
|
SC__WEAKNESS,
|
|
SC__STRIPACCESSORY,
|
|
SC__MANHOLE,
|
|
SC__BLOODYLUST,//460
|
|
/**
|
|
* Elemental Spirits
|
|
**/
|
|
SC_CIRCLE_OF_FIRE,
|
|
SC_CIRCLE_OF_FIRE_OPTION,
|
|
SC_FIRE_CLOAK,
|
|
SC_FIRE_CLOAK_OPTION,
|
|
SC_WATER_SCREEN,//465
|
|
SC_WATER_SCREEN_OPTION,
|
|
SC_WATER_DROP,
|
|
SC_WATER_DROP_OPTION,
|
|
SC_WATER_BARRIER,
|
|
SC_WIND_STEP,//470
|
|
SC_WIND_STEP_OPTION,
|
|
SC_WIND_CURTAIN,
|
|
SC_WIND_CURTAIN_OPTION,
|
|
SC_ZEPHYR,
|
|
SC_SOLID_SKIN,//475
|
|
SC_SOLID_SKIN_OPTION,
|
|
SC_STONE_SHIELD,
|
|
SC_STONE_SHIELD_OPTION,
|
|
SC_POWER_OF_GAIA,
|
|
SC_PYROTECHNIC,//480
|
|
SC_PYROTECHNIC_OPTION,
|
|
SC_HEATER,
|
|
SC_HEATER_OPTION,
|
|
SC_TROPIC,
|
|
SC_TROPIC_OPTION,//485
|
|
SC_AQUAPLAY,
|
|
SC_AQUAPLAY_OPTION,
|
|
SC_COOLER,
|
|
SC_COOLER_OPTION,
|
|
SC_CHILLY_AIR,//490
|
|
SC_CHILLY_AIR_OPTION,
|
|
SC_GUST,
|
|
SC_GUST_OPTION,
|
|
SC_BLAST,
|
|
SC_BLAST_OPTION,//495
|
|
SC_WILD_STORM,
|
|
SC_WILD_STORM_OPTION,
|
|
SC_PETROLOGY,
|
|
SC_PETROLOGY_OPTION,
|
|
SC_CURSED_SOIL,//500
|
|
SC_CURSED_SOIL_OPTION,
|
|
SC_UPHEAVAL,
|
|
SC_UPHEAVAL_OPTION,
|
|
SC_TIDAL_WEAPON,
|
|
SC_TIDAL_WEAPON_OPTION,//505
|
|
SC_ROCK_CRUSHER,
|
|
SC_ROCK_CRUSHER_ATK,
|
|
/* Guild Aura */
|
|
SC_LEADERSHIP,
|
|
SC_GLORYWOUNDS,
|
|
SC_SOULCOLD, //508
|
|
SC_HAWKEYES,
|
|
/* ... */
|
|
SC_ODINS_POWER,
|
|
SC_RAID,
|
|
/* Sorcerer .extra */
|
|
SC_FIRE_INSIGNIA,
|
|
SC_WATER_INSIGNIA,
|
|
SC_WIND_INSIGNIA, //516
|
|
SC_EARTH_INSIGNIA,
|
|
/* new pushcart */
|
|
SC_PUSH_CART,
|
|
/* Warlock Spell books */
|
|
SC_SPELLBOOK1,
|
|
SC_SPELLBOOK2,
|
|
SC_SPELLBOOK3,
|
|
SC_SPELLBOOK4,
|
|
SC_SPELLBOOK5,
|
|
SC_SPELLBOOK6,
|
|
SC_MAXSPELLBOOK, // SC_SPELLBOOK7
|
|
/* Max HP & SP */
|
|
SC_INCMHP,
|
|
SC_INCMSP,
|
|
SC_PARTYFLEE, // 531
|
|
/**
|
|
* Kagerou & Oboro [malufett]
|
|
**/
|
|
SC_MEIKYOUSISUI,
|
|
SC_JYUMONJIKIRI,
|
|
SC_KYOUGAKU,
|
|
SC_IZAYOI,
|
|
SC_ZENKAI,
|
|
SC_KAGEHUMI,
|
|
SC_KYOMU,
|
|
SC_KAGEMUSYA,
|
|
SC_ZANGETSU,
|
|
SC_GENSOU,
|
|
SC_AKAITSUKI,
|
|
|
|
//homon S
|
|
SC_STYLE_CHANGE,
|
|
SC_TINDER_BREAKER,
|
|
SC_TINDER_BREAKER2,
|
|
SC_CBC,
|
|
SC_EQC,
|
|
SC_GOLDENE_FERSE,
|
|
SC_ANGRIFFS_MODUS,
|
|
SC_OVERED_BOOST,
|
|
SC_LIGHT_OF_REGENE,
|
|
SC_ASH,
|
|
SC_GRANITIC_ARMOR,
|
|
SC_MAGMA_FLOW,
|
|
SC_PYROCLASTIC,
|
|
SC_PARALYSIS,
|
|
SC_PAIN_KILLER,
|
|
SC_HANBOK,
|
|
//Vellum Weapon reductions
|
|
SC_DEFSET,
|
|
SC_MDEFSET,
|
|
SC_DARKCROW,
|
|
SC_FULL_THROTTLE,
|
|
SC_REBOUND,
|
|
SC_UNLIMIT,
|
|
SC_KINGS_GRACE,
|
|
SC_TELEKINESIS_INTENSE,
|
|
SC_OFFERTORIUM,
|
|
SC_FRIGG_SONG,
|
|
SC_MONSTER_TRANSFORM,
|
|
SC_ANGEL_PROTECT,
|
|
SC_ILLUSIONDOPING,
|
|
SC_FLASHCOMBO,
|
|
SC_MOONSTAR,
|
|
SC_SUPER_STAR,
|
|
|
|
/**
|
|
* Rebellion [Cydh]
|
|
**/
|
|
SC_HEAT_BARREL,
|
|
SC_MAGICALBULLET,
|
|
SC_P_ALTER,
|
|
SC_E_CHAIN,
|
|
SC_C_MARKER,
|
|
SC_ANTI_M_BLAST,
|
|
SC_B_TRAP,
|
|
SC_H_MINE,
|
|
SC_QD_SHOT_READY,
|
|
|
|
SC_MTF_ASPD,
|
|
SC_MTF_RANGEATK,
|
|
SC_MTF_MATK,
|
|
SC_MTF_MLEATKED,
|
|
SC_MTF_CRIDAMAGE,
|
|
|
|
SC_OKTOBERFEST,
|
|
SC_STRANGELIGHTS,
|
|
SC_DECORATION_OF_MUSIC,
|
|
|
|
SC_QUEST_BUFF1,
|
|
SC_QUEST_BUFF2,
|
|
SC_QUEST_BUFF3,
|
|
|
|
SC_ALL_RIDING,
|
|
|
|
SC_TEARGAS_SOB,
|
|
SC__FEINTBOMB,
|
|
SC__CHAOS,
|
|
SC_CHASEWALK2,
|
|
SC_VACUUM_EXTREME_POSTDELAY,
|
|
|
|
SC_MTF_ASPD2,
|
|
SC_MTF_RANGEATK2,
|
|
SC_MTF_MATK2,
|
|
SC_2011RWC_SCROLL,
|
|
SC_JP_EVENT04,
|
|
|
|
// 2014 Halloween Event
|
|
SC_MTF_MHP,
|
|
SC_MTF_MSP,
|
|
SC_MTF_PUMPKIN,
|
|
SC_MTF_HITFLEE,
|
|
|
|
SC_CRIFOOD,
|
|
SC_ATTHASTE_CASH,
|
|
|
|
// Item Reuse Limits
|
|
SC_REUSE_LIMIT_A,
|
|
SC_REUSE_LIMIT_B,
|
|
SC_REUSE_LIMIT_C,
|
|
SC_REUSE_LIMIT_D,
|
|
SC_REUSE_LIMIT_E,
|
|
SC_REUSE_LIMIT_F,
|
|
SC_REUSE_LIMIT_G,
|
|
SC_REUSE_LIMIT_H,
|
|
SC_REUSE_LIMIT_MTF,
|
|
SC_REUSE_LIMIT_ASPD_POTION,
|
|
SC_REUSE_MILLENNIUMSHIELD,
|
|
SC_REUSE_CRUSHSTRIKE,
|
|
SC_REUSE_STORMBLAST,
|
|
SC_ALL_RIDING_REUSE_LIMIT,
|
|
SC_REUSE_LIMIT_ECL,
|
|
SC_REUSE_LIMIT_RECALL,
|
|
|
|
SC_PROMOTE_HEALTH_RESERCH,
|
|
SC_ENERGY_DRINK_RESERCH,
|
|
SC_NORECOVER_STATE,
|
|
|
|
/**
|
|
* Summoner
|
|
*/
|
|
SC_SUHIDE,
|
|
SC_SU_STOOP,
|
|
SC_SPRITEMABLE,
|
|
SC_CATNIPPOWDER,
|
|
SC_SV_ROOTTWIST,
|
|
SC_BITESCAR,
|
|
SC_ARCLOUSEDASH,
|
|
SC_TUNAPARTY,
|
|
SC_SHRIMP,
|
|
SC_FRESHSHRIMP,
|
|
|
|
SC_ACTIVE_MONSTER_TRANSFORM,
|
|
|
|
SC_CLOUD_KILL, // Deprecated
|
|
|
|
SC_LJOSALFAR,
|
|
SC_MERMAID_LONGING,
|
|
SC_HAT_EFFECT,
|
|
SC_FLOWERSMOKE,
|
|
SC_FSTONE,
|
|
SC_HAPPINESS_STAR,
|
|
SC_MAPLE_FALLS,
|
|
SC_TIME_ACCESSORY,
|
|
SC_MAGICAL_FEATHER,
|
|
SC_GVG_GIANT,
|
|
SC_GVG_GOLEM,
|
|
SC_GVG_STUN,
|
|
SC_GVG_STONE,
|
|
SC_GVG_FREEZ,
|
|
SC_GVG_SLEEP,
|
|
SC_GVG_CURSE,
|
|
SC_GVG_SILENCE,
|
|
SC_GVG_BLIND,
|
|
|
|
SC_CLAN_INFO,
|
|
SC_SWORDCLAN,
|
|
SC_ARCWANDCLAN,
|
|
SC_GOLDENMACECLAN,
|
|
SC_CROSSBOWCLAN,
|
|
SC_JUMPINGCLAN,
|
|
|
|
SC_TAROTCARD,
|
|
|
|
// Geffen Magic Tournament Buffs
|
|
SC_GEFFEN_MAGIC1,
|
|
SC_GEFFEN_MAGIC2,
|
|
SC_GEFFEN_MAGIC3,
|
|
|
|
SC_MAXPAIN,
|
|
SC_ARMOR_ELEMENT_EARTH,
|
|
SC_ARMOR_ELEMENT_FIRE,
|
|
SC_ARMOR_ELEMENT_WIND,
|
|
|
|
SC_DAILYSENDMAILCNT,
|
|
|
|
SC_DORAM_BUF_01,
|
|
SC_DORAM_BUF_02,
|
|
|
|
/**
|
|
* Summoner - Extended
|
|
*/
|
|
SC_HISS,
|
|
SC_NYANGGRASS,
|
|
SC_GROOMING,
|
|
SC_SHRIMPBLESSING,
|
|
SC_CHATTERING,
|
|
SC_DORAM_WALKSPEED,
|
|
SC_DORAM_MATK,
|
|
SC_DORAM_FLEE2,
|
|
SC_DORAM_SVSP,
|
|
|
|
SC_FALLEN_ANGEL,
|
|
|
|
SC_CHEERUP,
|
|
SC_DRESSUP,
|
|
|
|
// Old Glast Heim Buffs
|
|
SC_GLASTHEIM_ATK,
|
|
SC_GLASTHEIM_DEF,
|
|
SC_GLASTHEIM_HEAL,
|
|
SC_GLASTHEIM_HIDDEN,
|
|
SC_GLASTHEIM_STATE,
|
|
SC_GLASTHEIM_ITEMDEF,
|
|
SC_GLASTHEIM_HPSP,
|
|
|
|
// Nightmare Biolab Buffs
|
|
SC_LHZ_DUN_N1,
|
|
SC_LHZ_DUN_N2,
|
|
SC_LHZ_DUN_N3,
|
|
SC_LHZ_DUN_N4,
|
|
|
|
SC_ANCILLA,
|
|
SC_EARTHSHAKER,
|
|
SC_WEAPONBLOCK_ON,
|
|
SC_SPORE_EXPLOSION,
|
|
SC_ADAPTATION,
|
|
SC_BASILICA_CELL, // Used in renewal mode for cell_basilica only
|
|
|
|
SC_ENTRY_QUEUE_APPLY_DELAY,
|
|
SC_ENTRY_QUEUE_NOTIFY_ADMISSION_TIME_OUT,
|
|
|
|
// Star Emperor
|
|
SC_LIGHTOFMOON,
|
|
SC_LIGHTOFSUN,
|
|
SC_LIGHTOFSTAR,
|
|
SC_LUNARSTANCE,
|
|
SC_UNIVERSESTANCE,
|
|
SC_SUNSTANCE,
|
|
SC_FLASHKICK,
|
|
SC_NEWMOON,
|
|
SC_STARSTANCE,
|
|
SC_DIMENSION,
|
|
SC_DIMENSION1,
|
|
SC_DIMENSION2,
|
|
SC_CREATINGSTAR,
|
|
SC_FALLINGSTAR,
|
|
SC_NOVAEXPLOSING,
|
|
SC_GRAVITYCONTROL,
|
|
|
|
// Soul Reaper
|
|
SC_SOULCOLLECT,
|
|
SC_SOULREAPER,
|
|
SC_SOULUNITY,
|
|
SC_SOULSHADOW,
|
|
SC_SOULFAIRY,
|
|
SC_SOULFALCON,
|
|
SC_SOULGOLEM,
|
|
SC_SOULDIVISION,
|
|
SC_SOULENERGY,
|
|
SC_USE_SKILL_SP_SPA,
|
|
SC_USE_SKILL_SP_SHA,
|
|
SC_SP_SHA,
|
|
SC_SOULCURSE,
|
|
|
|
SC_HELLS_PLANT,
|
|
SC_INCREASE_MAXHP, // EFST_ATKER_ASPD
|
|
SC_INCREASE_MAXSP, // EFST_ATKER_MOVESPEED
|
|
SC_REF_T_POTION,
|
|
SC_ADD_ATK_DAMAGE,
|
|
SC_ADD_MATK_DAMAGE,
|
|
|
|
SC_HELPANGEL,
|
|
SC_SOUNDOFDESTRUCTION,
|
|
|
|
SC_LUXANIMA,
|
|
SC_REUSE_LIMIT_LUXANIMA,
|
|
SC_ENSEMBLEFATIGUE,
|
|
SC_MISTY_FROST,
|
|
SC_MAGIC_POISON,
|
|
|
|
// ep16.2
|
|
SC_EP16_2_BUFF_SS,
|
|
SC_EP16_2_BUFF_SC,
|
|
SC_EP16_2_BUFF_AC,
|
|
|
|
// Job Improvement Bundle
|
|
SC_OVERBRANDREADY,
|
|
SC_POISON_MIST,
|
|
SC_STONE_WALL,
|
|
SC_CLOUD_POISON,
|
|
SC_HOMUN_TIME,
|
|
|
|
SC_EMERGENCY_MOVE,
|
|
SC_MADOGEAR,
|
|
|
|
SC_NPC_HALLUCINATIONWALK,
|
|
|
|
SC_PACKING_ENVELOPE1,
|
|
SC_PACKING_ENVELOPE2,
|
|
SC_PACKING_ENVELOPE3,
|
|
SC_PACKING_ENVELOPE4,
|
|
SC_PACKING_ENVELOPE5,
|
|
SC_PACKING_ENVELOPE6,
|
|
SC_PACKING_ENVELOPE7,
|
|
SC_PACKING_ENVELOPE8,
|
|
SC_PACKING_ENVELOPE9,
|
|
SC_PACKING_ENVELOPE10,
|
|
|
|
SC_SOULATTACK,
|
|
|
|
SC_WIDEWEB,
|
|
SC_BURNT,
|
|
SC_CHILL,
|
|
|
|
// 4th Job Common Status
|
|
SC_HANDICAPSTATE_DEEPBLIND,
|
|
SC_HANDICAPSTATE_DEEPSILENCE,
|
|
SC_HANDICAPSTATE_LASSITUDE,
|
|
SC_HANDICAPSTATE_FROSTBITE,
|
|
SC_HANDICAPSTATE_SWOONING,
|
|
SC_HANDICAPSTATE_LIGHTNINGSTRIKE,
|
|
SC_HANDICAPSTATE_CRYSTALLIZATION,
|
|
SC_HANDICAPSTATE_CONFLAGRATION,
|
|
SC_HANDICAPSTATE_MISFORTUNE,
|
|
SC_HANDICAPSTATE_DEADLYPOISON,
|
|
SC_HANDICAPSTATE_DEPRESSION,
|
|
SC_HANDICAPSTATE_HOLYFLAME,
|
|
|
|
// Dragon Knight
|
|
SC_SERVANTWEAPON,
|
|
SC_SERVANT_SIGN,
|
|
SC_CHARGINGPIERCE,
|
|
SC_CHARGINGPIERCE_COUNT,
|
|
SC_DRAGONIC_AURA,
|
|
SC_VIGOR,
|
|
|
|
// Arch Mage
|
|
SC_DEADLY_DEFEASANCE,
|
|
SC_CLIMAX_DES_HU,
|
|
SC_CLIMAX,
|
|
SC_CLIMAX_EARTH,
|
|
SC_CLIMAX_BLOOM,
|
|
SC_CLIMAX_CRYIMP,
|
|
|
|
// Windhawk
|
|
SC_WINDSIGN,
|
|
SC_CRESCIVEBOLT,
|
|
SC_CALAMITYGALE,
|
|
|
|
// Cardinal
|
|
SC_MEDIALE,
|
|
SC_A_VITA,
|
|
SC_A_TELUM,
|
|
SC_PRE_ACIES,
|
|
SC_COMPETENTIA,
|
|
SC_RELIGIO,
|
|
SC_BENEDICTUM,
|
|
|
|
// Meister
|
|
SC_AXE_STOMP,
|
|
SC_A_MACHINE,
|
|
SC_D_MACHINE,
|
|
SC_ABR_BATTLE_WARIOR,
|
|
SC_ABR_DUAL_CANNON,
|
|
SC_ABR_MOTHER_NET,
|
|
SC_ABR_INFINITY,
|
|
|
|
// Shadow Cross
|
|
SC_SHADOW_EXCEED,
|
|
SC_DANCING_KNIFE,
|
|
SC_POTENT_VENOM,
|
|
SC_SHADOW_SCAR,
|
|
SC_E_SLASH_COUNT,
|
|
SC_SHADOW_WEAPON,
|
|
|
|
// Imperial Guard
|
|
SC_GUARD_STANCE,
|
|
SC_ATTACK_STANCE,
|
|
SC_GUARDIAN_S,
|
|
SC_REBOUND_S,
|
|
SC_HOLY_S,
|
|
SC_ULTIMATE_S,
|
|
SC_SPEAR_SCAR,
|
|
SC_SHIELD_POWER,
|
|
|
|
// Elemental Master
|
|
SC_SPELL_ENCHANTING,
|
|
SC_SUMMON_ELEMENTAL_ARDOR,
|
|
SC_SUMMON_ELEMENTAL_DILUVIO,
|
|
SC_SUMMON_ELEMENTAL_PROCELLA,
|
|
SC_SUMMON_ELEMENTAL_TERREMOTUS,
|
|
SC_SUMMON_ELEMENTAL_SERPENS,
|
|
SC_ELEMENTAL_VEIL,
|
|
|
|
// Troubadour/Trouvere
|
|
SC_MYSTIC_SYMPHONY,
|
|
SC_KVASIR_SONATA,
|
|
SC_SOUNDBLEND,
|
|
SC_GEF_NOCTURN,
|
|
SC_AIN_RHAPSODY,
|
|
SC_MUSICAL_INTERLUDE,
|
|
SC_JAWAII_SERENADE,
|
|
SC_PRON_MARCH,
|
|
SC_ROSEBLOSSOM,
|
|
|
|
// Inquisitor
|
|
SC_POWERFUL_FAITH,
|
|
SC_SINCERE_FAITH,
|
|
SC_FIRM_FAITH,
|
|
SC_HOLY_OIL,
|
|
SC_FIRST_BRAND,
|
|
SC_SECOND_BRAND,
|
|
SC_SECOND_JUDGE,
|
|
SC_THIRD_EXOR_FLAME,
|
|
SC_FIRST_FAITH_POWER,
|
|
SC_MASSIVE_F_BLASTER,
|
|
|
|
// Biolo
|
|
SC_PROTECTSHADOWEQUIP,
|
|
SC_RESEARCHREPORT,
|
|
SC_BO_HELL_DUSTY,
|
|
SC_BIONIC_WOODENWARRIOR,
|
|
SC_BIONIC_WOODEN_FAIRY,
|
|
SC_BIONIC_CREEPER,
|
|
SC_BIONIC_HELLTREE,
|
|
|
|
// Abyss Chaser
|
|
SC_SHADOW_STRIP,
|
|
SC_ABYSS_DAGGER,
|
|
SC_ABYSSFORCEWEAPON,
|
|
SC_ABYSS_SLAYER,
|
|
|
|
// Super Elementals
|
|
SC_FLAMETECHNIC,
|
|
SC_FLAMETECHNIC_OPTION,
|
|
SC_FLAMEARMOR,
|
|
SC_FLAMEARMOR_OPTION,
|
|
SC_COLD_FORCE,
|
|
SC_COLD_FORCE_OPTION,
|
|
SC_CRYSTAL_ARMOR,
|
|
SC_CRYSTAL_ARMOR_OPTION,
|
|
SC_GRACE_BREEZE,
|
|
SC_GRACE_BREEZE_OPTION,
|
|
SC_EYES_OF_STORM,
|
|
SC_EYES_OF_STORM_OPTION,
|
|
SC_EARTH_CARE,
|
|
SC_EARTH_CARE_OPTION,
|
|
SC_STRONG_PROTECTION,
|
|
SC_STRONG_PROTECTION_OPTION,
|
|
SC_DEEP_POISONING,
|
|
SC_DEEP_POISONING_OPTION,
|
|
SC_POISON_SHIELD,
|
|
SC_POISON_SHIELD_OPTION,
|
|
|
|
SC_SUB_WEAPONPROPERTY,
|
|
|
|
SC_M_LIFEPOTION,
|
|
SC_S_MANAPOTION,
|
|
SC_ALMIGHTY,
|
|
SC_ULTIMATECOOK,
|
|
SC_M_DEFSCROLL,
|
|
SC_INFINITY_DRINK,
|
|
SC_MENTAL_POTION,
|
|
SC_LIMIT_POWER_BOOSTER,
|
|
SC_COMBAT_PILL,
|
|
SC_COMBAT_PILL2,
|
|
SC_MYSTICPOWDER,
|
|
SC_SPARKCANDY,
|
|
SC_MAGICCANDY,
|
|
SC_ACARAJE,
|
|
SC_POPECOOKIE,
|
|
SC_VITALIZE_POTION,
|
|
SC_CUP_OF_BOZA,
|
|
SC_SKF_MATK,
|
|
SC_SKF_ATK,
|
|
SC_SKF_ASPD,
|
|
SC_SKF_CAST,
|
|
SC_BEEF_RIB_STEW,
|
|
SC_PORK_RIB_STEW,
|
|
|
|
SC_WEAPONBREAKER,
|
|
|
|
// 2021 Mutated Homunculus Skills
|
|
SC_TOXIN_OF_MANDARA,
|
|
SC_GOLDENE_TONE,
|
|
SC_TEMPERING,
|
|
|
|
SC_GRADUAL_GRAVITY,
|
|
SC_ALL_STAT_DOWN,
|
|
SC_KILLING_AURA,
|
|
SC_DAMAGE_HEAL,
|
|
SC_IMMUNE_PROPERTY_NOTHING,
|
|
SC_IMMUNE_PROPERTY_WATER,
|
|
SC_IMMUNE_PROPERTY_GROUND,
|
|
SC_IMMUNE_PROPERTY_FIRE,
|
|
SC_IMMUNE_PROPERTY_WIND,
|
|
SC_IMMUNE_PROPERTY_POISON,
|
|
SC_IMMUNE_PROPERTY_SAINT,
|
|
SC_IMMUNE_PROPERTY_DARKNESS,
|
|
SC_IMMUNE_PROPERTY_TELEKINESIS,
|
|
SC_IMMUNE_PROPERTY_UNDEAD,
|
|
|
|
SC_RELIEVE_ON,
|
|
SC_RELIEVE_OFF,
|
|
|
|
SC_RUSH_QUAKE1,
|
|
SC_RUSH_QUAKE2,
|
|
|
|
SC_G_LIFEPOTION,
|
|
|
|
// Hyper Novice
|
|
SC_HNNOWEAPON,
|
|
SC_SHIELDCHAINRUSH,
|
|
SC_MISTYFROST,
|
|
SC_GROUNDGRAVITY,
|
|
SC_BREAKINGLIMIT,
|
|
SC_RULEBREAK,
|
|
|
|
// Night Watch
|
|
SC_INTENSIVE_AIM,
|
|
SC_INTENSIVE_AIM_COUNT,
|
|
SC_GRENADE_FRAGMENT_1,
|
|
SC_GRENADE_FRAGMENT_2,
|
|
SC_GRENADE_FRAGMENT_3,
|
|
SC_GRENADE_FRAGMENT_4,
|
|
SC_GRENADE_FRAGMENT_5,
|
|
SC_GRENADE_FRAGMENT_6,
|
|
SC_AUTO_FIRING_LAUNCHER,
|
|
SC_HIDDEN_CARD,
|
|
SC_PERIOD_RECEIVEITEM_2ND,
|
|
SC_PERIOD_PLUSEXP_2ND,
|
|
|
|
SC_EXTREMITYFIST2,
|
|
SC_POWERUP,
|
|
SC_AGIUP,
|
|
|
|
SC_MAX, //Automatically updated max, used in for's to check we are within bounds.
|
|
};
|
|
|
|
/// Official status change ids, used to display status icons on the client.
|
|
enum efst_type : short{
|
|
/// Do not modify code below this, until the end of the API hook, since it will be automatically generated again
|
|
/// @APIHOOK_START(EFST_ENUM)
|
|
EFST_BLANK = -1,
|
|
EFST_PROVOKE,
|
|
EFST_ENDURE,
|
|
EFST_TWOHANDQUICKEN,
|
|
EFST_CONCENTRATION,
|
|
EFST_HIDING,
|
|
EFST_CLOAKING,
|
|
EFST_ENCHANTPOISON,
|
|
EFST_POISONREACT,
|
|
EFST_QUAGMIRE,
|
|
EFST_ANGELUS,
|
|
EFST_BLESSING,
|
|
EFST_CRUCIS,
|
|
EFST_INC_AGI,
|
|
EFST_DEC_AGI,
|
|
EFST_SLOWPOISON,
|
|
EFST_IMPOSITIO,
|
|
EFST_SUFFRAGIUM,
|
|
EFST_ASPERSIO,
|
|
EFST_BENEDICTIO,
|
|
EFST_KYRIE,
|
|
EFST_MAGNIFICAT,
|
|
EFST_GLORIA,
|
|
EFST_LEXAETERNA,
|
|
EFST_ADRENALINE,
|
|
EFST_WEAPONPERFECT,
|
|
EFST_OVERTHRUST,
|
|
EFST_MAXIMIZE,
|
|
EFST_RIDING,
|
|
EFST_FALCON,
|
|
EFST_TRICKDEAD,
|
|
EFST_SHOUT,
|
|
EFST_ENERGYCOAT,
|
|
EFST_BROKENARMOR,
|
|
EFST_BROKENWEAPON,
|
|
EFST_ILLUSION,
|
|
EFST_WEIGHTOVER50,
|
|
EFST_WEIGHTOVER90,
|
|
EFST_ATTHASTE_POTION1,
|
|
EFST_ATTHASTE_POTION2,
|
|
EFST_ATTHASTE_POTION3,
|
|
EFST_ATTHASTE_INFINITY,
|
|
EFST_MOVHASTE_POTION,
|
|
EFST_MOVHASTE_INFINITY,
|
|
EFST_AUTOCOUNTER,
|
|
EFST_SPLASHER,
|
|
EFST_ANKLESNARE,
|
|
EFST_POSTDELAY,
|
|
EFST_NOACTION,
|
|
EFST_IMPOSSIBLEPICKUP,
|
|
EFST_BARRIER,
|
|
EFST_NOEQUIPWEAPON,
|
|
EFST_NOEQUIPSHIELD,
|
|
EFST_NOEQUIPARMOR,
|
|
EFST_NOEQUIPHELM,
|
|
EFST_PROTECTWEAPON,
|
|
EFST_PROTECTSHIELD,
|
|
EFST_PROTECTARMOR,
|
|
EFST_PROTECTHELM,
|
|
EFST_AUTOGUARD,
|
|
EFST_REFLECTSHIELD,
|
|
EFST_DEVOTION,
|
|
EFST_PROVIDENCE,
|
|
EFST_DEFENDER,
|
|
EFST_MAGICROD,
|
|
EFST_WEAPONPROPERTY,
|
|
EFST_AUTOSPELL,
|
|
EFST_SPECIALZONE,
|
|
EFST_MASK,
|
|
EFST_SPEARQUICKEN,
|
|
EFST_BDPLAYING,
|
|
EFST_WHISTLE,
|
|
EFST_ASSASSINCROSS,
|
|
EFST_POEMBRAGI,
|
|
EFST_APPLEIDUN,
|
|
EFST_HUMMING,
|
|
EFST_DONTFORGETME,
|
|
EFST_FORTUNEKISS,
|
|
EFST_SERVICEFORYOU,
|
|
EFST_RICHMANKIM,
|
|
EFST_ETERNALCHAOS,
|
|
EFST_DRUMBATTLEFIELD,
|
|
EFST_RINGNIBELUNGEN,
|
|
EFST_ROKISWEIL,
|
|
EFST_INTOABYSS,
|
|
EFST_SIEGFRIED,
|
|
EFST_BLADESTOP,
|
|
EFST_EXPLOSIONSPIRITS,
|
|
EFST_STEELBODY,
|
|
EFST_EXTREMITYFIST,
|
|
EFST_COMBOATTACK,
|
|
EFST_PROPERTYFIRE,
|
|
EFST_PROPERTYWATER,
|
|
EFST_PROPERTYWIND,
|
|
EFST_PROPERTYGROUND,
|
|
EFST_MAGICATTACK,
|
|
EFST_STOP,
|
|
EFST_WEAPONBRAKER,
|
|
EFST_PROPERTYUNDEAD,
|
|
EFST_POWERUP,
|
|
EFST_AGIUP,
|
|
EFST_SIEGEMODE,
|
|
EFST_INVISIBLE,
|
|
EFST_STATUSONE,
|
|
EFST_AURABLADE,
|
|
EFST_PARRYING,
|
|
EFST_LKCONCENTRATION,
|
|
EFST_TENSIONRELAX,
|
|
EFST_BERSERK,
|
|
EFST_SACRIFICE,
|
|
EFST_GOSPEL,
|
|
EFST_ASSUMPTIO,
|
|
EFST_BASILICA,
|
|
EFST_GROUNDMAGIC,
|
|
EFST_MAGICPOWER,
|
|
EFST_EDP,
|
|
EFST_TRUESIGHT,
|
|
EFST_WINDWALK,
|
|
EFST_MELTDOWN,
|
|
EFST_CARTBOOST,
|
|
EFST_CHASEWALK,
|
|
EFST_SWORDREJECT,
|
|
EFST_MARIONETTE_MASTER,
|
|
EFST_MARIONETTE,
|
|
EFST_MOON,
|
|
EFST_BLOODING,
|
|
EFST_JOINTBEAT,
|
|
EFST_MINDBREAKER,
|
|
EFST_MEMORIZE,
|
|
EFST_FOGWALL,
|
|
EFST_SPIDERWEB,
|
|
EFST_PROTECTEXP,
|
|
EFST_SUB_WEAPONPROPERTY,
|
|
EFST_AUTOBERSERK,
|
|
EFST_RUN,
|
|
EFST_TING,
|
|
EFST_STORMKICK_ON,
|
|
EFST_STORMKICK_READY,
|
|
EFST_DOWNKICK_ON,
|
|
EFST_DOWNKICK_READY,
|
|
EFST_TURNKICK_ON,
|
|
EFST_TURNKICK_READY,
|
|
EFST_COUNTER_ON,
|
|
EFST_COUNTER_READY,
|
|
EFST_DODGE_ON,
|
|
EFST_DODGE_READY,
|
|
EFST_STRUP,
|
|
EFST_PROPERTYDARK,
|
|
EFST_ADRENALINE2,
|
|
EFST_PROPERTYTELEKINESIS,
|
|
EFST_SOULLINK,
|
|
EFST_PLUSATTACKPOWER,
|
|
EFST_PLUSMAGICPOWER,
|
|
EFST_DEVIL1,
|
|
EFST_KAITE,
|
|
EFST_SWOO,
|
|
EFST_STAR2,
|
|
EFST_KAIZEL,
|
|
EFST_KAAHI,
|
|
EFST_KAUPE,
|
|
EFST_SMA_READY,
|
|
EFST_SKE,
|
|
EFST_ONEHANDQUICKEN,
|
|
EFST_FRIEND,
|
|
EFST_FRIENDUP,
|
|
EFST_SG_WARM,
|
|
EFST_SG_SUN_WARM,
|
|
EFST_SG_MOON_WARM,
|
|
EFST_SG_STAR_WARM,
|
|
EFST_EMOTION,
|
|
EFST_SUN_COMFORT,
|
|
EFST_MOON_COMFORT,
|
|
EFST_STAR_COMFORT,
|
|
EFST_EXPUP,
|
|
EFST_GDSKILL_BATTLEORDER,
|
|
EFST_GDSKILL_REGENERATION,
|
|
EFST_GDSKILL_POSTDELAY,
|
|
EFST_RESISTHANDICAP,
|
|
EFST_MAXHPPERCENT,
|
|
EFST_MAXSPPERCENT,
|
|
EFST_DEFENCE,
|
|
EFST_SLOWDOWN,
|
|
EFST_PRESERVE,
|
|
EFST_CHASEWALK2,
|
|
EFST_NOT_EXTREMITYFIST,
|
|
EFST_CLAIRVOYANCE,
|
|
EFST_MOVESLOW_POTION,
|
|
EFST_DOUBLECASTING,
|
|
EFST_GRAVITATION,
|
|
EFST_OVERTHRUSTMAX,
|
|
EFST_LONGING,
|
|
EFST_HERMODE,
|
|
EFST_TAROTCARD,
|
|
EFST_HLIF_AVOID,
|
|
EFST_HFLI_FLEET,
|
|
EFST_HFLI_SPEED,
|
|
EFST_HLIF_CHANGE,
|
|
EFST_HAMI_BLOODLUST,
|
|
EFST_CR_SHRINK,
|
|
EFST_WZ_SIGHTBLASTER,
|
|
EFST_DC_WINKCHARM,
|
|
EFST_RG_CCONFINE_M,
|
|
EFST_RG_CCONFINE_S,
|
|
EFST_DISABLEMOVE,
|
|
EFST_GS_MADNESSCANCEL,
|
|
EFST_GS_GATLINGFEVER,
|
|
EFST_EARTHSCROLL,
|
|
EFST_NJ_UTSUSEMI,
|
|
EFST_NJ_BUNSINJYUTSU,
|
|
EFST_NJ_NEN,
|
|
EFST_GS_ADJUSTMENT,
|
|
EFST_GS_ACCURACY,
|
|
EFST_NJ_SUITON,
|
|
EFST_PET,
|
|
EFST_MENTAL,
|
|
EFST_EXPMEMORY,
|
|
EFST_PERFORMANCE,
|
|
EFST_GAIN,
|
|
EFST_GRIFFON,
|
|
EFST_DRIFT,
|
|
EFST_WALLSHIFT,
|
|
EFST_REINCARNATION,
|
|
EFST_PATTACK,
|
|
EFST_PSPEED,
|
|
EFST_PDEFENSE,
|
|
EFST_PCRITICAL,
|
|
EFST_RANKING,
|
|
EFST_PTRIPLE,
|
|
EFST_DENERGY,
|
|
EFST_WAVE1,
|
|
EFST_WAVE2,
|
|
EFST_WAVE3,
|
|
EFST_WAVE4,
|
|
EFST_DAURA,
|
|
EFST_DFREEZER,
|
|
EFST_DPUNISH,
|
|
EFST_DBARRIER,
|
|
EFST_DWARNING,
|
|
EFST_MOUSEWHEEL,
|
|
EFST_DGAUGE,
|
|
EFST_DACCEL,
|
|
EFST_DBLOCK,
|
|
EFST_FOOD_STR,
|
|
EFST_FOOD_AGI,
|
|
EFST_FOOD_VIT,
|
|
EFST_FOOD_DEX,
|
|
EFST_FOOD_INT,
|
|
EFST_FOOD_LUK,
|
|
EFST_FOOD_BASICAVOIDANCE,
|
|
EFST_FOOD_BASICHIT,
|
|
EFST_FOOD_CRITICALSUCCESSVALUE,
|
|
EFST_CASH_PLUSEXP,
|
|
EFST_CASH_DEATHPENALTY,
|
|
EFST_CASH_RECEIVEITEM,
|
|
EFST_CASH_BOSS_ALARM,
|
|
EFST_DA_ENERGY,
|
|
EFST_DA_FIRSTSLOT,
|
|
EFST_DA_HEADDEF,
|
|
EFST_DA_SPACE,
|
|
EFST_DA_TRANSFORM,
|
|
EFST_DA_ITEMREBUILD,
|
|
EFST_DA_ILLUSION,
|
|
EFST_DA_DARKPOWER,
|
|
EFST_DA_EARPLUG,
|
|
EFST_DA_CONTRACT,
|
|
EFST_DA_BLACK,
|
|
EFST_DA_MAGICCART,
|
|
EFST_CRYSTAL,
|
|
EFST_DA_REBUILD,
|
|
EFST_DA_EDARKNESS,
|
|
EFST_DA_EGUARDIAN,
|
|
EFST_DA_TIMEOUT,
|
|
EFST_FOOD_STR_CASH,
|
|
EFST_FOOD_AGI_CASH,
|
|
EFST_FOOD_VIT_CASH,
|
|
EFST_FOOD_DEX_CASH,
|
|
EFST_FOOD_INT_CASH,
|
|
EFST_FOOD_LUK_CASH,
|
|
EFST_MER_FLEE,
|
|
EFST_MER_ATK,
|
|
EFST_MER_HP,
|
|
EFST_MER_SP,
|
|
EFST_MER_HIT,
|
|
EFST_SLOWCAST,
|
|
EFST_MAGICMIRROR,
|
|
EFST_STONESKIN,
|
|
EFST_ANTIMAGIC,
|
|
EFST_CRITICALWOUND,
|
|
EFST_NPC_DEFENDER,
|
|
EFST_NOACTION_WAIT,
|
|
EFST_MOVHASTE_HORSE,
|
|
EFST_PROTECT_DEF,
|
|
EFST_PROTECT_MDEF,
|
|
EFST_HEALPLUS,
|
|
EFST_S_LIFEPOTION,
|
|
EFST_L_LIFEPOTION,
|
|
EFST_CRITICALPERCENT,
|
|
EFST_PLUSAVOIDVALUE,
|
|
EFST_ATKER_ASPD,
|
|
EFST_TARGET_ASPD,
|
|
EFST_ATKER_MOVESPEED,
|
|
EFST_ATKER_BLOOD,
|
|
EFST_TARGET_BLOOD,
|
|
EFST_ARMOR_PROPERTY,
|
|
EFST_REUSE_LIMIT_A,
|
|
EFST_HELLPOWER,
|
|
EFST_STEAMPACK,
|
|
EFST_REUSE_LIMIT_B,
|
|
EFST_REUSE_LIMIT_C,
|
|
EFST_REUSE_LIMIT_D,
|
|
EFST_REUSE_LIMIT_E,
|
|
EFST_REUSE_LIMIT_F,
|
|
EFST_INVINCIBLE,
|
|
EFST_CASH_PLUSONLYJOBEXP,
|
|
EFST_PARTYFLEE,
|
|
EFST_ANGEL_PROTECT,
|
|
EFST_ENDURE_MDEF,
|
|
EFST_ENCHANTBLADE,
|
|
EFST_DEATHBOUND,
|
|
EFST_REFRESH,
|
|
EFST_GIANTGROWTH,
|
|
EFST_STONEHARDSKIN,
|
|
EFST_VITALITYACTIVATION,
|
|
EFST_FIGHTINGSPIRIT,
|
|
EFST_ABUNDANCE,
|
|
EFST_REUSE_MILLENNIUMSHIELD,
|
|
EFST_REUSE_CRUSHSTRIKE,
|
|
EFST_REUSE_REFRESH,
|
|
EFST_REUSE_STORMBLAST,
|
|
EFST_VENOMIMPRESS,
|
|
EFST_EPICLESIS,
|
|
EFST_ORATIO,
|
|
EFST_LAUDAAGNUS,
|
|
EFST_LAUDARAMUS,
|
|
EFST_CLOAKINGEXCEED,
|
|
EFST_HALLUCINATIONWALK,
|
|
EFST_HALLUCINATIONWALK_POSTDELAY,
|
|
EFST_RENOVATIO,
|
|
EFST_WEAPONBLOCKING,
|
|
EFST_WEAPONBLOCKING_POSTDELAY,
|
|
EFST_ROLLINGCUTTER,
|
|
EFST_EXPIATIO,
|
|
EFST_POISONINGWEAPON,
|
|
EFST_TOXIN,
|
|
EFST_PARALYSE,
|
|
EFST_VENOMBLEED,
|
|
EFST_MAGICMUSHROOM,
|
|
EFST_DEATHHURT,
|
|
EFST_PYREXIA,
|
|
EFST_OBLIVIONCURSE,
|
|
EFST_LEECHESEND,
|
|
EFST_DUPLELIGHT,
|
|
EFST_FROSTMISTY,
|
|
EFST_FEARBREEZE,
|
|
EFST_ELECTRICSHOCKER,
|
|
EFST_MARSHOFABYSS,
|
|
EFST_RECOGNIZEDSPELL,
|
|
EFST_STASIS,
|
|
EFST_WUGRIDER,
|
|
EFST_WUGDASH,
|
|
EFST_WUGBITE,
|
|
EFST_CAMOUFLAGE,
|
|
EFST_ACCELERATION,
|
|
EFST_HOVERING,
|
|
EFST_SUMMON1,
|
|
EFST_SUMMON2,
|
|
EFST_SUMMON3,
|
|
EFST_SUMMON4,
|
|
EFST_SUMMON5,
|
|
EFST_MVPCARD_TAOGUNKA,
|
|
EFST_MVPCARD_MISTRESS,
|
|
EFST_MVPCARD_ORCHERO,
|
|
EFST_MVPCARD_ORCLORD,
|
|
EFST_OVERHEAT_LIMITPOINT,
|
|
EFST_OVERHEAT,
|
|
EFST_SHAPESHIFT,
|
|
EFST_INFRAREDSCAN,
|
|
EFST_MAGNETICFIELD,
|
|
EFST_NEUTRALBARRIER,
|
|
EFST_NEUTRALBARRIER_MASTER,
|
|
EFST_STEALTHFIELD,
|
|
EFST_STEALTHFIELD_MASTER,
|
|
EFST_MANU_ATK,
|
|
EFST_MANU_DEF,
|
|
EFST_SPL_ATK,
|
|
EFST_SPL_DEF,
|
|
EFST_REPRODUCE,
|
|
EFST_MANU_MATK,
|
|
EFST_SPL_MATK,
|
|
EFST_STR_SCROLL,
|
|
EFST_INT_SCROLL,
|
|
EFST_LG_REFLECTDAMAGE,
|
|
EFST_FORCEOFVANGUARD,
|
|
EFST_BUCHEDENOEL,
|
|
EFST_AUTOSHADOWSPELL,
|
|
EFST_SHADOWFORM,
|
|
EFST_RAID,
|
|
EFST_SHIELDSPELL_DEF,
|
|
EFST_SHIELDSPELL_MDEF,
|
|
EFST_SHIELDSPELL_REF,
|
|
EFST_BODYPAINT,
|
|
EFST_EXEEDBREAK,
|
|
EFST_ADORAMUS,
|
|
EFST_PRESTIGE,
|
|
EFST_INVISIBILITY,
|
|
EFST_DEADLYINFECT,
|
|
EFST_BANDING,
|
|
EFST_EARTHDRIVE,
|
|
EFST_INSPIRATION,
|
|
EFST_ENERVATION,
|
|
EFST_GROOMY,
|
|
EFST_RAISINGDRAGON,
|
|
EFST_IGNORANCE,
|
|
EFST_LAZINESS,
|
|
EFST_LIGHTNINGWALK,
|
|
EFST_ACARAJE,
|
|
EFST_UNLUCKY,
|
|
EFST_CURSEDCIRCLE_ATKER,
|
|
EFST_CURSEDCIRCLE_TARGET,
|
|
EFST_WEAKNESS,
|
|
EFST_CRESCENTELBOW,
|
|
EFST_NOEQUIPACCESSARY,
|
|
EFST_STRIPACCESSARY,
|
|
EFST_MANHOLE,
|
|
EFST_POPECOOKIE,
|
|
EFST_FALLENEMPIRE,
|
|
EFST_GENTLETOUCH_ENERGYGAIN,
|
|
EFST_GENTLETOUCH_CHANGE,
|
|
EFST_GENTLETOUCH_REVITALIZE,
|
|
EFST_BLOODYLUST,
|
|
EFST_SWING,
|
|
EFST_SYMPHONY_LOVE,
|
|
EFST_PROPERTYWALK,
|
|
EFST_SPELLFIST,
|
|
EFST_NETHERWORLD,
|
|
EFST_SIREN,
|
|
EFST_HANDICAPSTATE_DEEP_SLEEP,
|
|
EFST_SIRCLEOFNATURE,
|
|
EFST_COLD,
|
|
EFST_GLOOMYDAY,
|
|
EFST_SONG_OF_MANA,
|
|
EFST_CLOUD_KILL,
|
|
EFST_DANCE_WITH_WUG,
|
|
EFST_RUSH_WINDMILL,
|
|
EFST_ECHOSONG,
|
|
EFST_HARMONIZE,
|
|
EFST_STRIKING,
|
|
EFST_WARMER,
|
|
EFST_MOONLIT_SERENADE,
|
|
EFST_SATURDAY_NIGHT_FEVER,
|
|
EFST_SITDOWN_FORCE,
|
|
EFST_ANALYZE,
|
|
EFST_LERADS_DEW,
|
|
EFST_MELODYOFSINK,
|
|
EFST_BEYOND_OF_WARCRY,
|
|
EFST_UNLIMITED_HUMMING_VOICE,
|
|
EFST_SPELLBOOK1,
|
|
EFST_SPELLBOOK2,
|
|
EFST_SPELLBOOK3,
|
|
EFST_FREEZE_SP,
|
|
EFST_GN_TRAINING_SWORD,
|
|
EFST_GN_REMODELING_CART,
|
|
EFST_GN_CARTBOOST,
|
|
EFST_FIXEDCASTINGTM_REDUCE,
|
|
EFST_THORNS_TRAP,
|
|
EFST_BLOOD_SUCKER,
|
|
EFST_SPORE_EXPLOSION,
|
|
EFST_DEMONIC_FIRE,
|
|
EFST_FIRE_EXPANSION_SMOKE_POWDER,
|
|
EFST_FIRE_EXPANSION_TEAR_GAS,
|
|
EFST_BLOCKING_PLAY,
|
|
EFST_MANDRAGORA,
|
|
EFST_ACTIVATE,
|
|
EFST_AB_SECRAMENT,
|
|
EFST_ASSUMPTIO2,
|
|
EFST_TK_SEVENWIND,
|
|
EFST_LIMIT_ODINS_RECALL,
|
|
EFST_STOMACHACHE,
|
|
EFST_MYSTERIOUS_POWDER,
|
|
EFST_MELON_BOMB,
|
|
EFST_BANANA_BOMB_SITDOWN_POSTDELAY,
|
|
EFST_PROMOTE_HEALTH_RESERCH,
|
|
EFST_ENERGY_DRINK_RESERCH,
|
|
EFST_EXTRACT_WHITE_POTION_Z,
|
|
EFST_VITATA_500,
|
|
EFST_EXTRACT_SALAMINE_JUICE,
|
|
EFST_BOOST500,
|
|
EFST_FULL_SWING_K,
|
|
EFST_MANA_PLUS,
|
|
EFST_MUSTLE_M,
|
|
EFST_LIFE_FORCE_F,
|
|
EFST_VACUUM_EXTREME,
|
|
EFST_SAVAGE_STEAK,
|
|
EFST_COCKTAIL_WARG_BLOOD,
|
|
EFST_MINOR_BBQ,
|
|
EFST_SIROMA_ICE_TEA,
|
|
EFST_DROCERA_HERB_STEAMED,
|
|
EFST_PUTTI_TAILS_NOODLES,
|
|
EFST_BANANA_BOMB,
|
|
XXX_EFST_SM_ELEMENTAL,
|
|
EFST_SPELLBOOK4,
|
|
EFST_SPELLBOOK5,
|
|
EFST_SPELLBOOK6,
|
|
EFST_SPELLBOOK7,
|
|
EFST_ELEMENTAL_AGGRESSIVE,
|
|
EFST_RETURN_TO_ELDICASTES,
|
|
EFST_BANDING_DEFENCE,
|
|
EFST_SKELSCROLL,
|
|
EFST_DISTRUCTIONSCROLL,
|
|
EFST_ROYALSCROLL,
|
|
EFST_IMMUNITYSCROLL,
|
|
EFST_MYSTICSCROLL,
|
|
EFST_BATTLESCROLL,
|
|
EFST_ARMORSCROLL,
|
|
EFST_FREYJASCROLL,
|
|
EFST_SOULSCROLL,
|
|
EFST_CIRCLE_OF_FIRE,
|
|
EFST_CIRCLE_OF_FIRE_OPTION,
|
|
EFST_FIRE_CLOAK,
|
|
EFST_FIRE_CLOAK_OPTION,
|
|
EFST_WATER_SCREEN,
|
|
EFST_WATER_SCREEN_OPTION,
|
|
EFST_WATER_DROP,
|
|
EFST_WATER_DROP_OPTION,
|
|
EFST_WIND_STEP,
|
|
EFST_WIND_STEP_OPTION,
|
|
EFST_WIND_CURTAIN,
|
|
EFST_WIND_CURTAIN_OPTION,
|
|
EFST_WATER_BARRIER,
|
|
EFST_ZEPHYR,
|
|
EFST_SOLID_SKIN,
|
|
EFST_SOLID_SKIN_OPTION,
|
|
EFST_STONE_SHIELD,
|
|
EFST_STONE_SHIELD_OPTION,
|
|
EFST_POWER_OF_GAIA,
|
|
EFST_EL_WAIT,
|
|
EFST_EL_PASSIVE,
|
|
EFST_EL_DEFENSIVE,
|
|
EFST_EL_OFFENSIVE,
|
|
EFST_EL_COST,
|
|
EFST_PYROTECHNIC,
|
|
EFST_PYROTECHNIC_OPTION,
|
|
EFST_HEATER,
|
|
EFST_HEATER_OPTION,
|
|
EFST_TROPIC,
|
|
EFST_TROPIC_OPTION,
|
|
EFST_AQUAPLAY,
|
|
EFST_AQUAPLAY_OPTION,
|
|
EFST_COOLER,
|
|
EFST_COOLER_OPTION,
|
|
EFST_CHILLY_AIR,
|
|
EFST_CHILLY_AIR_OPTION,
|
|
EFST_GUST,
|
|
EFST_GUST_OPTION,
|
|
EFST_BLAST,
|
|
EFST_BLAST_OPTION,
|
|
EFST_WILD_STORM,
|
|
EFST_WILD_STORM_OPTION,
|
|
EFST_PETROLOGY,
|
|
EFST_PETROLOGY_OPTION,
|
|
EFST_CURSED_SOIL,
|
|
EFST_CURSED_SOIL_OPTION,
|
|
EFST_UPHEAVAL,
|
|
EFST_UPHEAVAL_OPTION,
|
|
EFST_TIDAL_WEAPON,
|
|
EFST_TIDAL_WEAPON_OPTION,
|
|
EFST_ROCK_CRUSHER,
|
|
EFST_ROCK_CRUSHER_ATK,
|
|
EFST_FIRE_INSIGNIA,
|
|
EFST_WATER_INSIGNIA,
|
|
EFST_WIND_INSIGNIA,
|
|
EFST_EARTH_INSIGNIA,
|
|
EFST_EQUIPED_FLOOR,
|
|
EFST_GUARDIAN_RECALL,
|
|
EFST_MORA_BUFF,
|
|
EFST_REUSE_LIMIT_G,
|
|
EFST_REUSE_LIMIT_H,
|
|
EFST_NEEDLE_OF_PARALYZE,
|
|
EFST_PAIN_KILLER,
|
|
EFST_G_LIFEPOTION,
|
|
EFST_VITALIZE_POTION,
|
|
EFST_LIGHT_OF_REGENE,
|
|
EFST_OVERED_BOOST,
|
|
EFST_SILENT_BREEZE,
|
|
EFST_ODINS_POWER,
|
|
EFST_STYLE_CHANGE,
|
|
EFST_SONIC_CLAW_POSTDELAY,
|
|
|
|
EFST_SILVERVEIN_RUSH_POSTDELAY = 596,
|
|
EFST_MIDNIGHT_FRENZY_POSTDELAY,
|
|
EFST_GOLDENE_FERSE,
|
|
EFST_ANGRIFFS_MODUS,
|
|
EFST_TINDER_BREAKER,
|
|
EFST_TINDER_BREAKER_POSTDELAY,
|
|
EFST_CBC,
|
|
EFST_CBC_POSTDELAY,
|
|
EFST_EQC,
|
|
EFST_MAGMA_FLOW,
|
|
EFST_GRANITIC_ARMOR,
|
|
EFST_PYROCLASTIC,
|
|
EFST_VOLCANIC_ASH,
|
|
EFST_SPIRITS_SAVEINFO1,
|
|
EFST_SPIRITS_SAVEINFO2,
|
|
EFST_MAGIC_CANDY,
|
|
EFST_SEARCH_STORE_INFO,
|
|
EFST_ALL_RIDING,
|
|
EFST_ALL_RIDING_REUSE_LIMIT,
|
|
EFST_MACRO,
|
|
EFST_MACRO_POSTDELAY,
|
|
EFST_BEER_BOTTLE_CAP,
|
|
EFST_OVERLAPEXPUP,
|
|
EFST_PC_IZ_DUN05,
|
|
EFST_CRUSHSTRIKE,
|
|
EFST_MONSTER_TRANSFORM,
|
|
EFST_SIT,
|
|
EFST_ONAIR,
|
|
EFST_MTF_ASPD,
|
|
EFST_MTF_RANGEATK,
|
|
EFST_MTF_MATK,
|
|
EFST_MTF_MLEATKED,
|
|
EFST_MTF_CRIDAMAGE,
|
|
EFST_REUSE_LIMIT_MTF,
|
|
EFST_MACRO_PERMIT,
|
|
EFST_MACRO_PLAY,
|
|
EFST_SKF_CAST,
|
|
EFST_SKF_ASPD,
|
|
EFST_SKF_ATK,
|
|
EFST_SKF_MATK,
|
|
EFST_REWARD_PLUSONLYJOBEXP,
|
|
EFST_HANDICAPSTATE_NORECOVER,
|
|
EFST_SET_NUM_DEF,
|
|
EFST_SET_NUM_MDEF,
|
|
EFST_SET_PER_DEF,
|
|
EFST_SET_PER_MDEF,
|
|
EFST_PARTYBOOKING_SEARCH_DELAY,
|
|
EFST_PARTYBOOKING_REGISTER_DELAY,
|
|
EFST_PERIOD_TIME_CHECK_DETECT_SKILL,
|
|
EFST_KO_JYUMONJIKIRI,
|
|
EFST_MEIKYOUSISUI,
|
|
EFST_ATTHASTE_CASH,
|
|
EFST_EQUIPPED_DIVINE_ARMOR,
|
|
EFST_EQUIPPED_HOLY_ARMOR,
|
|
EFST_2011RWC,
|
|
EFST_KYOUGAKU,
|
|
EFST_IZAYOI,
|
|
EFST_ZENKAI,
|
|
EFST_KG_KAGEHUMI,
|
|
EFST_KYOMU,
|
|
EFST_KAGEMUSYA,
|
|
EFST_ZANGETSU,
|
|
EFST_PHI_DEMON,
|
|
EFST_GENSOU,
|
|
EFST_AKAITSUKI,
|
|
EFST_TETANY,
|
|
EFST_GM_BATTLE,
|
|
EFST_GM_BATTLE2,
|
|
EFST_2011RWC_SCROLL,
|
|
EFST_ACTIVE_MONSTER_TRANSFORM,
|
|
EFST_MYSTICPOWDER,
|
|
EFST_ECLAGE_RECALL,
|
|
EFST_ENTRY_QUEUE_APPLY_DELAY,
|
|
EFST_REUSE_LIMIT_ECL,
|
|
EFST_M_LIFEPOTION,
|
|
EFST_ENTRY_QUEUE_NOTIFY_ADMISSION_TIME_OUT,
|
|
EFST_UNKNOWN_NAME,
|
|
EFST_ON_PUSH_CART,
|
|
EFST_HAT_EFFECT,
|
|
EFST_FLOWER_LEAF,
|
|
EFST_RAY_OF_PROTECTION,
|
|
EFST_GLASTHEIM_ATK,
|
|
EFST_GLASTHEIM_DEF,
|
|
EFST_GLASTHEIM_HEAL,
|
|
EFST_GLASTHEIM_HIDDEN,
|
|
EFST_GLASTHEIM_STATE,
|
|
EFST_GLASTHEIM_ITEMDEF,
|
|
EFST_GLASTHEIM_HPSP,
|
|
EFST_FOLLOWER_NPC_SKILL_POSTDELAY,
|
|
EFST_ALMIGHTY,
|
|
EFST_GVG_GIANT,
|
|
EFST_GVG_GOLEM,
|
|
EFST_GVG_STUN,
|
|
EFST_GVG_STONE,
|
|
EFST_GVG_FREEZ,
|
|
EFST_GVG_SLEEP,
|
|
EFST_GVG_CURSE,
|
|
EFST_GVG_SILENCE,
|
|
EFST_GVG_BLIND,
|
|
EFST_CLIENT_ONLY_EQUIP_ARROW,
|
|
EFST_CLAN_INFO,
|
|
EFST_JP_EVENT01,
|
|
EFST_JP_EVENT02,
|
|
EFST_JP_EVENT03,
|
|
EFST_JP_EVENT04,
|
|
EFST_TELEPORT_FIXEDCASTINGDELAY,
|
|
EFST_GEFFEN_MAGIC1,
|
|
EFST_GEFFEN_MAGIC2,
|
|
EFST_GEFFEN_MAGIC3,
|
|
EFST_QUEST_BUFF1,
|
|
EFST_QUEST_BUFF2,
|
|
EFST_QUEST_BUFF3,
|
|
EFST_REUSE_LIMIT_RECALL,
|
|
EFST_SAVEPOSITION,
|
|
EFST_NPC_ICEEXPLO,
|
|
EFST_FENRIR_CARD,
|
|
EFST_REUSE_LIMIT_ASPD_POTION,
|
|
EFST_MAXPAIN,
|
|
EFST_PC_STOP,
|
|
EFST_FRIGG_SONG,
|
|
EFST_OFFERTORIUM,
|
|
EFST_TELEKINESIS_INTENSE,
|
|
EFST_MOONSTAR,
|
|
EFST_STRANGELIGHTS,
|
|
EFST_FULL_THROTTLE,
|
|
EFST_REBOUND,
|
|
EFST_UNLIMIT,
|
|
EFST_KINGS_GRACE,
|
|
EFST_ITEM_ATKMAX,
|
|
EFST_ITEM_ATKMIN,
|
|
EFST_ITEM_MATKMAX,
|
|
EFST_ITEM_MATKMIN,
|
|
EFST_SUPER_STAR,
|
|
EFST_HIGH_RANKER,
|
|
EFST_DARKCROW,
|
|
EFST_2013_VALENTINE1,
|
|
EFST_2013_VALENTINE2,
|
|
EFST_2013_VALENTINE3,
|
|
EFST_ILLUSIONDOPING,
|
|
EFST_WIDEWEB,
|
|
EFST_CHILL,
|
|
EFST_BURNT,
|
|
EFST_PCCAFE_PLAY_TIME,
|
|
EFST_TWISTED_TIME,
|
|
EFST_FLASHCOMBO,
|
|
EFST_JITTER_BUFF1,
|
|
EFST_JITTER_BUFF2,
|
|
EFST_JITTER_BUFF3,
|
|
EFST_JITTER_BUFF4,
|
|
EFST_JITTER_BUFF5,
|
|
EFST_JITTER_BUFF6,
|
|
EFST_JITTER_BUFF7,
|
|
EFST_JITTER_BUFF8,
|
|
EFST_JITTER_BUFF9,
|
|
EFST_JITTER_BUFF10,
|
|
EFST_CUP_OF_BOZA,
|
|
EFST_B_TRAP,
|
|
EFST_E_CHAIN,
|
|
EFST_E_QD_SHOT_READY,
|
|
EFST_C_MARKER,
|
|
EFST_H_MINE,
|
|
EFST_H_MINE_SPLASH,
|
|
EFST_P_ALTER,
|
|
EFST_HEAT_BARREL,
|
|
EFST_ANTI_M_BLAST,
|
|
EFST_SLUGSHOT,
|
|
EFST_SWORDCLAN,
|
|
EFST_ARCWANDCLAN,
|
|
EFST_GOLDENMACECLAN,
|
|
EFST_CROSSBOWCLAN,
|
|
EFST_PACKING_ENVELOPE1,
|
|
EFST_PACKING_ENVELOPE2,
|
|
EFST_PACKING_ENVELOPE3,
|
|
EFST_PACKING_ENVELOPE4,
|
|
EFST_PACKING_ENVELOPE5,
|
|
EFST_PACKING_ENVELOPE6,
|
|
EFST_PACKING_ENVELOPE7,
|
|
EFST_PACKING_ENVELOPE8,
|
|
EFST_PACKING_ENVELOPE9,
|
|
EFST_PACKING_ENVELOPE10,
|
|
EFST_GLASTHEIM_TRANS,
|
|
EFST_ZONGZI_POUCH_TRANS,
|
|
EFST_HEAT_BARREL_AFTER,
|
|
EFST_DECORATION_OF_MUSIC,
|
|
EFST_OVERSEAEXPUP,
|
|
EFST_CLOWN_N_GYPSY_CARD,
|
|
EFST_OPEN_NPC_MARKET,
|
|
EFST_BEEF_RIB_STEW,
|
|
EFST_PORK_RIB_STEW,
|
|
EFST_CHUSEOK_MONDAY,
|
|
EFST_CHUSEOK_TUESDAY,
|
|
EFST_CHUSEOK_WEDNESDAY,
|
|
EFST_CHUSEOK_THURSDAY,
|
|
EFST_CHUSEOK_FRIDAY,
|
|
EFST_CHUSEOK_WEEKEND,
|
|
EFST_ALL_LIGHTGUARD,
|
|
EFST_ALL_LIGHTGUARD_COOL_TIME,
|
|
EFST_MTF_MHP,
|
|
EFST_MTF_MSP,
|
|
EFST_MTF_PUMPKIN,
|
|
EFST_MTF_HITFLEE,
|
|
EFST_MTF_CRIDAMAGE2,
|
|
EFST_MTF_SPDRAIN,
|
|
EFST_ACUO_MINT_GUM,
|
|
EFST_S_HEALPOTION,
|
|
EFST_REUSE_LIMIT_S_HEAL_POTION,
|
|
EFST_PLAYTIME_STATISTICS,
|
|
EFST_GN_CHANGEMATERIAL_OPERATOR,
|
|
EFST_GN_MIX_COOKING_OPERATOR,
|
|
EFST_GN_MAKEBOMB_OPERATOR,
|
|
EFST_GN_S_PHARMACY_OPERATOR,
|
|
EFST_SO_EL_ANALYSIS_DISASSEMBLY_OPERATOR,
|
|
EFST_SO_EL_ANALYSIS_COMBINATION_OPERATOR,
|
|
EFST_NC_MAGICDECOY_OPERATOR,
|
|
EFST_GUILD_STORAGE,
|
|
EFST_GC_POISONINGWEAPON_OPERATOR,
|
|
EFST_WS_WEAPONREFINE_OPERATOR,
|
|
EFST_BS_REPAIRWEAPON_OPERATOR,
|
|
EFST_UNREADMAIL_CHECK,
|
|
EFST_JUMPINGCLAN,
|
|
EFST_JP_OTP,
|
|
EFST_HANDICAPTOLERANCE_LEVELGAP,
|
|
EFST_MTF_RANGEATK2,
|
|
EFST_MTF_ASPD2,
|
|
EFST_MTF_MATK2,
|
|
EFST_SHOW_NPCHPBAR,
|
|
EFST_FLOWERSMOKE,
|
|
EFST_FSTONE,
|
|
EFST_DAILYSENDMAILCNT,
|
|
EFST_QSCARABA,
|
|
EFST_LJOSALFAR,
|
|
EFST_PAD_READER_KNIGHT,
|
|
EFST_PAD_READER_CRUSADER,
|
|
EFST_PAD_READER_BLACKSMITH,
|
|
EFST_PAD_READER_ALCHEMIST,
|
|
EFST_PAD_READER_ASSASSIN,
|
|
EFST_PAD_READER_ROGUE,
|
|
EFST_PAD_READER_WIZARD,
|
|
EFST_PAD_READER_SAGE,
|
|
EFST_PAD_READER_PRIEST,
|
|
EFST_PAD_READER_MONK,
|
|
EFST_PAD_READER_HUNTER,
|
|
EFST_PAD_READER_BARD,
|
|
EFST_PAD_READER_DANCER,
|
|
EFST_PAD_READER_TAEKWON,
|
|
EFST_PAD_READER_NINJA,
|
|
EFST_PAD_READER_GUNSLINGER,
|
|
EFST_PAD_READER_SUPERNOVICE,
|
|
EFST_ESSENCE_OF_TIME,
|
|
EFST_MINIGAME_ROULETTE,
|
|
EFST_MINIGAME_GOLD_POINT,
|
|
EFST_MINIGAME_SILVER_POINT,
|
|
EFST_MINIGAME_BRONZE_POINT,
|
|
EFST_HAPPINESS_STAR,
|
|
EFST_SUMMEREVENT01,
|
|
EFST_SUMMEREVENT02,
|
|
EFST_SUMMEREVENT03,
|
|
EFST_SUMMEREVENT04,
|
|
EFST_SUMMEREVENT05,
|
|
EFST_MINIGAME_ROULETTE_BONUS_ITEM,
|
|
EFST_DRESS_UP,
|
|
EFST_MAPLE_FALLS,
|
|
EFST_ALL_NIFLHEIM_RECALL,
|
|
EFST_MARKING_USE_CHANGEMONSTER,
|
|
EFST_MTF_MARIONETTE,
|
|
EFST_MTF_LUDE,
|
|
EFST_MTF_CRUISER,
|
|
EFST_MERMAID_LONGING,
|
|
EFST_MAGICAL_FEATHER,
|
|
EFST_DRACULA_CARD,
|
|
EFST_ALL_PRONTERA_RECALL,
|
|
EFST_LIMIT_POWER_BOOSTER,
|
|
EFST_GIFT_OF_SNOW,
|
|
EFST_NPC_HALLUCINATIONWALK,
|
|
EFST_NPC_HALLUCINATIONWALK_POSTDELAY,
|
|
EFST_NPC_XXXWALK,
|
|
EFST_TIME_ACCESSORY,
|
|
EFST_EP16_DEF,
|
|
EFST_NORMAL_ATKED_SP,
|
|
EFST_BODYSTATE_STONECURSE,
|
|
EFST_BODYSTATE_FREEZING,
|
|
EFST_BODYSTATE_STUN,
|
|
EFST_BODYSTATE_SLEEP,
|
|
EFST_BODYSTATE_UNDEAD,
|
|
EFST_BODYSTATE_STONECURSE_ING,
|
|
EFST_BODYSTATE_BURNNING,
|
|
EFST_BODYSTATE_IMPRISON,
|
|
EFST_HEALTHSTATE_POISON,
|
|
EFST_HEALTHSTATE_CURSE,
|
|
EFST_HEALTHSTATE_SILENCE,
|
|
EFST_HEALTHSTATE_CONFUSION,
|
|
EFST_HEALTHSTATE_BLIND,
|
|
EFST_HEALTHSTATE_ANGELUS,
|
|
EFST_HEALTHSTATE_BLOODING,
|
|
EFST_HEALTHSTATE_HEAVYPOISON,
|
|
EFST_HEALTHSTATE_FEAR,
|
|
EFST_CHERRY_BLOSSOM_CAKE,
|
|
EFST_SU_STOOP,
|
|
EFST_CATNIPPOWDER,
|
|
EFST_HEAD_EQUIPMENT_EFFECT,
|
|
EFST_SV_ROOTTWIST,
|
|
EFST_ATTACK_PROPERTY_NOTHING,
|
|
EFST_ATTACK_PROPERTY_WATER,
|
|
EFST_ATTACK_PROPERTY_GROUND,
|
|
EFST_ATTACK_PROPERTY_FIRE,
|
|
EFST_ATTACK_PROPERTY_WIND,
|
|
EFST_ATTACK_PROPERTY_POISON,
|
|
EFST_ATTACK_PROPERTY_SAINT,
|
|
EFST_ATTACK_PROPERTY_DARKNESS,
|
|
EFST_ATTACK_PROPERTY_TELEKINESIS,
|
|
EFST_ATTACK_PROPERTY_UNDEAD,
|
|
EFST_RESIST_PROPERTY_NOTHING,
|
|
EFST_RESIST_PROPERTY_WATER,
|
|
EFST_RESIST_PROPERTY_GROUND,
|
|
EFST_RESIST_PROPERTY_FIRE,
|
|
EFST_RESIST_PROPERTY_WIND,
|
|
EFST_RESIST_PROPERTY_POISON,
|
|
EFST_RESIST_PROPERTY_SAINT,
|
|
EFST_RESIST_PROPERTY_DARKNESS,
|
|
EFST_RESIST_PROPERTY_TELEKINESIS,
|
|
EFST_RESIST_PROPERTY_UNDEAD,
|
|
EFST_BITESCAR,
|
|
EFST_ARCLOUSEDASH,
|
|
EFST_TUNAPARTY,
|
|
EFST_SHRIMP,
|
|
EFST_FRESHSHRIMP,
|
|
EFST_PERIOD_RECEIVEITEM,
|
|
EFST_PERIOD_PLUSEXP,
|
|
EFST_PERIOD_PLUSJOBEXP,
|
|
EFST_RUNEHELM,
|
|
EFST_HELM_VERKANA,
|
|
EFST_HELM_RHYDO,
|
|
EFST_HELM_TURISUS,
|
|
EFST_HELM_HAGALAS,
|
|
EFST_HELM_ISIA,
|
|
EFST_HELM_ASIR,
|
|
EFST_HELM_URJ,
|
|
EFST_SUHIDE,
|
|
EFST_REUSE_LIMIT_MG,
|
|
EFST_DORAM_BUF_01,
|
|
EFST_DORAM_BUF_02,
|
|
EFST_SPRITEMABLE,
|
|
EFST_AID_PERIOD_RECEIVEITEM,
|
|
EFST_AID_PERIOD_PLUSEXP,
|
|
EFST_AID_PERIOD_PLUSJOBEXP,
|
|
EFST_AID_PERIOD_DEADPENALTY,
|
|
EFST_AID_PERIOD_ADDSTOREITEMCOUNT,
|
|
EFST_ALL_GLASTHEIM_RECALL,
|
|
EFST_REUSE_LIMIT_PEPO_MD,
|
|
EFST_ALL_THANATOS_RECALL,
|
|
EFST_KAFRA_STORE,
|
|
EFST_REUSE_ABBYS,
|
|
EFST_MAGICSTONE_OF_GRACE_SET,
|
|
EFST_PRIVATE_AIRPLANE,
|
|
EFST_HISS,
|
|
EFST_HISS_AVOID,
|
|
EFST_NYANGGRASS,
|
|
EFST_CHATTERING,
|
|
EFST_CHATTERING_OPT_ATK_MATK,
|
|
EFST_CHATTERING_OPT_HASTE,
|
|
EFST_SPIRITOFLAND_STEMSPEAR,
|
|
EFST_SPIRITOFLAND_ROOTTWIST,
|
|
EFST_SPIRITOFLAND_POWDERING,
|
|
EFST_SPIRITOFLAND_METEOR,
|
|
EFST_SPIRITOFLAND_NYANGGRASS,
|
|
EFST_GROOMING,
|
|
EFST_PROTECTIONOFSHRIMP,
|
|
EFST_EP16_2_BUFF_SS,
|
|
EFST_EP16_2_BUFF_SC,
|
|
EFST_EP16_2_BUFF_AC,
|
|
EFST_GS_MAGICAL_BULLET,
|
|
|
|
EFST_FALLEN_ANGEL = 976,
|
|
EFST_REUSE_LIMIT_MOVEPOINT,
|
|
EFST_MACRO_DETECTOR_ANSWER_WAITING,
|
|
EFST_BLAZE_BEAD,
|
|
EFST_FROZEN_BEAD,
|
|
EFST_BREEZE_BEAD,
|
|
EFST_SOULATTACK,
|
|
EFST_AID_PERIOD_RECEIVEITEM_2ND,
|
|
EFST_AID_PERIOD_PLUSEXP_2ND,
|
|
EFST_AID_PERIOD_PLUSJOBEXP_2ND,
|
|
EFST_PRONTERA_JP,
|
|
EFST_ASSISTANT_VENDING,
|
|
EFST_GLOOM_CARD,
|
|
EFST_PHARAOH_CARD,
|
|
EFST_KIEL_CARD,
|
|
EFST_ASSISTANT_BUYING,
|
|
EFST_CHEERUP,
|
|
EFST_GET_CNT_UNREAD_RODEX_CHARDB,
|
|
EFST_GET_CNT_UNREAD_RODEX_GLOBALDB,
|
|
EFST_S_MANAPOTION,
|
|
EFST_M_DEFSCROLL,
|
|
EFST_OPEN_REFINING_UI,
|
|
EFST_ALL_LIGHTHALZEN_RECALL,
|
|
EFST_SWAP_EQUIPITEM,
|
|
EFST_AS_RAGGED_GOLEM_CARD,
|
|
EFST_LHZ_DUN_N1,
|
|
EFST_LHZ_DUN_N2,
|
|
EFST_LHZ_DUN_N3,
|
|
EFST_LHZ_DUN_N4,
|
|
EFST_TAEKWON_MISSION,
|
|
EFST_SUN_PLACE,
|
|
EFST_MOON_PLACE,
|
|
EFST_STAR_PLACE,
|
|
EFST_SUN_MONSTER,
|
|
EFST_MOON_MONSTER,
|
|
EFST_STAR_MONSTER,
|
|
EFST_AL_WARP_ADDSLOT,
|
|
EFST_ALL_STAT_DOWN,
|
|
EFST_GRADUAL_GRAVITY,
|
|
EFST_DAMAGE_HEAL,
|
|
EFST_IMMUNE_PROPERTY_NOTHING,
|
|
EFST_IMMUNE_PROPERTY_WATER,
|
|
EFST_IMMUNE_PROPERTY_GROUND,
|
|
EFST_IMMUNE_PROPERTY_FIRE,
|
|
EFST_IMMUNE_PROPERTY_WIND,
|
|
EFST_IMMUNE_PROPERTY_POISON,
|
|
EFST_IMMUNE_PROPERTY_SAINT,
|
|
EFST_IMMUNE_PROPERTY_DARKNESS,
|
|
EFST_IMMUNE_PROPERTY_TELEKINESIS,
|
|
EFST_IMMUNE_PROPERTY_UNDEAD,
|
|
EFST_REUSE_LIMIT_NP,
|
|
EFST_SPECIALCOOKIE,
|
|
EFST_DAMAGE_HEAL2,
|
|
EFST_DAMAGE_HEAL3,
|
|
EFST_GLORY_OF_RETURN,
|
|
EFST_ATK_POPCORN,
|
|
EFST_MATK_POPCORN,
|
|
EFST_ASPD_POPCORN,
|
|
EFST_ULTIMATECOOK,
|
|
EFST_LIGHTOFMOON,
|
|
EFST_LIGHTOFSUN,
|
|
EFST_LIGHTOFSTAR,
|
|
EFST_LUNARSTANCE,
|
|
EFST_UNIVERSESTANCE,
|
|
EFST_SUNSTANCE,
|
|
EFST_FLASHKICK,
|
|
EFST_NEWMOON,
|
|
EFST_STARSTANCE,
|
|
EFST_DIMENSION,
|
|
EFST_DIMENSION1,
|
|
EFST_DIMENSION2,
|
|
EFST_CREATINGSTAR,
|
|
EFST_FALLINGSTAR,
|
|
EFST_NOVAEXPLOSING,
|
|
EFST_GRAVITYCONTROL,
|
|
XXX_EFST_WORLDSTORE_ACTIVE,
|
|
EFST_WORLDSTORE_ITEMMOVEINFO_SENDCOMPLETE,
|
|
EFST_SOULCOLLECT,
|
|
EFST_SOULREAPER,
|
|
EFST_SOULUNITY,
|
|
EFST_SOULSHADOW,
|
|
EFST_SOULFAIRY,
|
|
EFST_SOULFALCON,
|
|
EFST_SOULGOLEM,
|
|
EFST_SOULDIVISION,
|
|
EFST_SOULENERGY,
|
|
EFST_USE_SKILL_SP_SPA,
|
|
EFST_USE_SKILL_SP_SHA,
|
|
EFST_SP_SHA,
|
|
EFST_INFINITY_DRINK,
|
|
EFST_ABYSS_001,
|
|
EFST_ABYSS_002,
|
|
EFST_ABYSS_003,
|
|
EFST_ABYSS_004,
|
|
EFST_ABYSS_005,
|
|
EFST_ABYSS_006,
|
|
EFST_ABYSS_007,
|
|
EFST_ABYSS_008,
|
|
|
|
EFST_REUSE_LIMIT_THM = 1075,
|
|
EFST_REUSE_LIMIT_TLI,
|
|
EFST_REUSE_LIMIT_TKC,
|
|
EFST_REUSE_LIMIT_TRP,
|
|
EFST_REUSE_LIMIT_TBG,
|
|
EFST_REUSE_LIMIT_TBM,
|
|
EFST_YGGDRASIL_BLESS,
|
|
EFST_USE_SKILL_SP_SWHOO,
|
|
EFST_HUNTING_EVENT,
|
|
EFST_PERIOD_RECEIVEITEM_2ND,
|
|
EFST_PERIOD_PLUSEXP_2ND,
|
|
EFST_EXPDROPUP,
|
|
EFST_TW_NEWYEAR_EVENT,
|
|
EFST_ENSEMBLEFATIGUE,
|
|
EFST_ADAPTATION,
|
|
EFST_DANCINGLESSON,
|
|
EFST_MUSICALLESSON,
|
|
EFST_REUSE_LIMIT_RC,
|
|
EFST_DANCINGLESSON_EQUIPPED,
|
|
EFST_MUSICALLESSON_EQUIPPED,
|
|
EFST_ANCILLA,
|
|
EFST_REUSE_LIMIT_POTION_A,
|
|
EFST_REUSE_LIMIT_POTION_B,
|
|
EFST_REUSE_LIMIT_POTION_C,
|
|
EFST_REUSE_LIMIT_POTION_D,
|
|
EFST_REUSE_LIMIT_POTION_E,
|
|
EFST_REUSE_LIMIT_POTION_F,
|
|
EFST_BRAVESET,
|
|
EFST_MACEMASTERY_EQUIPPED,
|
|
EFST_FESTIVE_ENERGY,
|
|
EFST_TEST_KR01,
|
|
EFST_STARFISH_JP,
|
|
EFST_WEAPONBLOCK_ON,
|
|
EFST_CRI_DAMAGE,
|
|
EFST_DEF_POWER,
|
|
EFST_DEF_IGNORE,
|
|
EFST_BOW_ATK_POWER,
|
|
EFST_RED_ORG_POTION,
|
|
EFST_CAST_TIME,
|
|
EFST_BLADESTOPREADY,
|
|
EFST_TELEPORT_BR,
|
|
EFST_SA_WEAPON_PROPERTY,
|
|
EFST_LEAPIMPAIRED,
|
|
EFST_SENDING_ITEMLIST,
|
|
EFST_EXCLUSIVE_RECEIVEITEM,
|
|
EFST_EXCLUSIVE_PLUSEXP,
|
|
EFST_ASSUMPTIO_BUFF,
|
|
EFST_BASILICA_BUFF,
|
|
EFST_OVERLAPEXPUP2,
|
|
EFST_STOPMOVE_IMMEDIATELY,
|
|
EFST_SOULCURSE,
|
|
EFST_SOUND_OF_DESTRUCTION,
|
|
EFST_DF_MANAPLUS,
|
|
EFST_DF_FULLSWINGK,
|
|
EFST_NV_BREAKTHROUGH,
|
|
EFST_HELPANGEL,
|
|
EFST_NV_TRANSCENDENCE,
|
|
EFST_SWEETSFAIR_ATK,
|
|
EFST_SWEETSFAIR_MATK,
|
|
EFST_REUSE_SKILL,
|
|
EFST_FLOWER_LEAF2,
|
|
EFST_FLOWER_LEAF3,
|
|
EFST_FLOWER_LEAF4,
|
|
EFST_CHARM_BOOST,
|
|
EFST_EARTHSHAKER,
|
|
EFST_PERIOD_USE_WORLDMAP,
|
|
EFST_MISTY_FROST,
|
|
EFST_MAGIC_POISON,
|
|
EFST_KAUTE,
|
|
EFST_REUSE_JPNONLY_LIMIT_I,
|
|
EFST_REUSE_JPNONLY_LIMIT_J,
|
|
EFST_REUSE_JPNONLY_LIMIT_K,
|
|
EFST_JPNONLY_TACTICS,
|
|
EFST_PRISON,
|
|
EFST_MADOGEAR,
|
|
EFST_DEADLY_DEFEASANCE,
|
|
EFST_CLIMAX_DES_HU,
|
|
EFST_CLIMAX,
|
|
EFST_FEINTBOMB,
|
|
EFST_LUXANIMA,
|
|
EFST_BATH_FOAM_A,
|
|
EFST_BATH_FOAM_B,
|
|
EFST_BATH_FOAM_C,
|
|
EFST_AROMA_OIL,
|
|
EFST_REUSE_LIMIT_LUXANIMA,
|
|
EFST_POWERFUL_FAITH,
|
|
EFST_SINCERE_FAITH,
|
|
EFST_FIRM_FAITH,
|
|
EFST_AIRSHIP_PIPE,
|
|
EFST_PIECES_OF_SHADOW,
|
|
EFST_HELLS_PLANT_ARMOR,
|
|
EFST_RELIEVE_DAMAGE,
|
|
EFST_LOCKON_LASER,
|
|
EFST_GRADE_ENCHANT_UI_OPEN,
|
|
EFST_REF_T_POTION,
|
|
EFST_ADD_ATK_DAMAGE,
|
|
EFST_ADD_MATK_DAMAGE,
|
|
EFST_SERVANTWEAPON,
|
|
EFST_SERVANT_SIGN,
|
|
EFST_CHARGINGPIERCE,
|
|
EFST_CHARGINGPIERCE_COUNT,
|
|
EFST_DRAGONIC_AURA,
|
|
EFST_BIG_SCAR,
|
|
EFST_VIGOR,
|
|
EFST_WILL_OF_FAITH,
|
|
EFST_PRESSURE,
|
|
EFST_SA_DRAGONOLOGY,
|
|
EFST_CLIMAX_EARTH,
|
|
EFST_CLIMAX_BLOOM,
|
|
EFST_CLIMAX_CRYIMP,
|
|
EFST_MD_ME_POTION,
|
|
EFST_MD_MA_POTION,
|
|
EFST_MD_TA_POTION,
|
|
EFST_MD_RA_POTION,
|
|
EFST_REUSE_MEGAPHONE,
|
|
EFST_HOLY_OIL,
|
|
EFST_CRYSTAL_IMPACT,
|
|
EFST_SHADOW_EXCEED,
|
|
EFST_DANCING_KNIFE,
|
|
EFST_POTENT_VENOM,
|
|
EFST_SHADOW_SCAR,
|
|
EFST_E_SLASH_COUNT,
|
|
EFST_MEDIALE,
|
|
EFST_A_VITA,
|
|
EFST_A_TELUM,
|
|
EFST_PRE_ACIES,
|
|
EFST_COMPETENTIA,
|
|
EFST_GUARD_STANCE,
|
|
EFST_ATTACK_STANCE,
|
|
EFST_GUARDIAN_S,
|
|
EFST_HANDICAPSTATE_DEEPBLIND,
|
|
EFST_HANDICAPSTATE_DEEPSILENCE,
|
|
EFST_HANDICAPSTATE_LASSITUDE,
|
|
EFST_HANDICAPSTATE_FROSTBITE,
|
|
EFST_HANDICAPSTATE_SWOONING,
|
|
EFST_HANDICAPSTATE_LIGHTNINGSTRIKE,
|
|
EFST_HANDICAPSTATE_CRYSTALLIZATION,
|
|
EFST_HANDICAPSTATE_CONFLAGRATION,
|
|
EFST_HANDICAPSTATE_MISFORTUNE,
|
|
EFST_HANDICAPSTATE_DEADLYPOISON,
|
|
EFST_HANDICAPSTATE_DEPRESSION,
|
|
EFST_HANDICAPSTATE_HOLYFLAME,
|
|
EFST_REBOUND_S,
|
|
EFST_SHIELD_MASTERY,
|
|
EFST_SPEAR_SWORD_M,
|
|
EFST_HOLY_S,
|
|
EFST_ULTIMATE_S,
|
|
EFST_SPEAR_SCAR,
|
|
EFST_SHIELD_POWER,
|
|
EFST_FIDUS_ANIMUS,
|
|
EFST_MACE_BOOK_M,
|
|
EFST_SHADOW_WEAPON,
|
|
EFST_RELIGIO,
|
|
EFST_BENEDICTUM,
|
|
EFST_MVPCARD_KIEL,
|
|
EFST_FIRST_BRAND,
|
|
EFST_SECOND_BRAND,
|
|
EFST_SECOND_JUDGE,
|
|
EFST_THIRD_EXOR_FLAME,
|
|
EFST_FIRST_FAITH_POWER,
|
|
EFST_AXE_STOMP,
|
|
EFST_A_MACHINE,
|
|
EFST_D_MACHINE,
|
|
EFST_MT_M_MACHINE_OPERATOR,
|
|
EFST_TWOAXEDEF,
|
|
EFST_DAGGER_AND_BOW_M,
|
|
EFST_MAGIC_SWORD_M,
|
|
EFST_SHADOW_STRIP,
|
|
EFST_ABYSS_DAGGER,
|
|
EFST_ABYSSFORCEWEAPON,
|
|
EFST_ABYSS_SLAYER,
|
|
EFST_TWOHANDDEF,
|
|
EFST_PROTECTSHADOWEQUIP,
|
|
EFST_RESEARCHREPORT,
|
|
EFST_BO_HELL_DUSTY,
|
|
EFST_WINDSIGN,
|
|
EFST_CRESCIVEBOLT,
|
|
EFST_CALAMITYGALE,
|
|
EFST_CRESCIVEBOLT3,
|
|
EFST_STAGE_MANNER,
|
|
EFST_RETROSPECTION,
|
|
EFST_MYSTIC_SYMPHONY,
|
|
EFST_KVASIR_SONATA,
|
|
EFST_SOUNDBLEND,
|
|
EFST_GEF_NOCTURN,
|
|
EFST_AIN_RHAPSODY,
|
|
EFST_MUSICAL_INTERLUDE,
|
|
EFST_JAWAII_SERENADE,
|
|
EFST_PRON_MARCH,
|
|
EFST_ROSEBLOSSOM,
|
|
EFST_BO_BIONIC_PHARMACY_OPERATOR,
|
|
EFST_ACIDIFIED_ZONE_WATER,
|
|
EFST_ACIDIFIED_ZONE_GROUND,
|
|
EFST_ACIDIFIED_ZONE_WIND,
|
|
EFST_ACIDIFIED_ZONE_FIRE,
|
|
EFST_MAGIC_BOOK_M,
|
|
EFST_SPELL_ENCHANTING,
|
|
EFST_SUMMON_ELEMENTAL_ARDOR,
|
|
EFST_SUMMON_ELEMENTAL_DILUVIO,
|
|
EFST_SUMMON_ELEMENTAL_PROCELLA,
|
|
EFST_SUMMON_ELEMENTAL_TERREMOTUS,
|
|
EFST_SUMMON_ELEMENTAL_SERPENS,
|
|
EFST_FLAMETECHNIC,
|
|
EFST_FLAMETECHNIC_OPTION,
|
|
EFST_FLAMEARMOR,
|
|
EFST_FLAMEARMOR_OPTION,
|
|
EFST_COLD_FORCE,
|
|
EFST_COLD_FORCE_OPTION,
|
|
EFST_CRYSTAL_ARMOR,
|
|
EFST_CRYSTAL_ARMOR_OPTION,
|
|
EFST_GRACE_BREEZE,
|
|
EFST_GRACE_BREEZE_OPTION,
|
|
EFST_EYES_OF_STORM,
|
|
EFST_EYES_OF_STORM_OPTION,
|
|
EFST_EARTH_CARE,
|
|
EFST_EARTH_CARE_OPTION,
|
|
EFST_STRONG_PROTECTION,
|
|
EFST_STRONG_PROTECTION_OPTION,
|
|
EFST_DEEP_POISONING,
|
|
EFST_DEEP_POISONING_OPTION,
|
|
EFST_POISON_SHIELD,
|
|
EFST_POISON_SHIELD_OPTION,
|
|
EFST_ABR_BATTLE_WARIOR,
|
|
EFST_ABR_DUAL_CANNON,
|
|
EFST_ABR_MOTHER_NET,
|
|
EFST_ABR_INFINITY,
|
|
EFST_ELEMENTAL_VEIL,
|
|
EFST_RENOVATIO_EXT,
|
|
EFST_HOMUN_TIME,
|
|
EFST_POWER_ACCELERATION,
|
|
EFST_MAX_HP_SP_AVOID,
|
|
EFST_ADD_ALL_STATE,
|
|
EFST_AID_PERIOD_POWER_ACCELERATION,
|
|
EFST_AID_PERIOD_MAX_HP_SP_AVOID,
|
|
EFST_AID_PERIOD_ADD_ALL_STATE,
|
|
EFST_POISON_MIST,
|
|
EFST_HACKANDSLASHER,
|
|
EFST_GET_CNT_UNREAD_RETURN_RODEX_CHARDB,
|
|
EFST_STONE_WALL,
|
|
EFST_REUSE_LIMIT_I,
|
|
EFST_OVERBRANDREADY,
|
|
EFST_SHIELDSPELL,
|
|
EFST_AUTOSHADOWSPELL_CHECK2,
|
|
EFST_CLOUD_POISON,
|
|
EFST_SPORE_EXPLOSION_DEBUFF,
|
|
|
|
EFST_DEFSCROLL = 1321,
|
|
|
|
EFST_MASSIVE_F_BLASTER = 1326,
|
|
|
|
EFST_NOEQUIPWEAPON2 = 1330,
|
|
EFST_NOEQUIPARMOR2,
|
|
EFST_NOEQUIPSHIELD2,
|
|
EFST_NOEQUIPSHOES2,
|
|
EFST_NOEQUIPPENDANT2,
|
|
EFST_NOEQUIPEARING2,
|
|
EFST_NOEQUIPFULL2,
|
|
EFST_CURSE_R_CUBE,
|
|
EFST_CURSE_B_CUBE,
|
|
EFST_KILLING_AURA,
|
|
|
|
EFST_TOXIN_OF_MANDARA = 1341,
|
|
EFST_GOLDENE_TONE,
|
|
EFST_TEMPERING,
|
|
EFST_NW_P_F_I,
|
|
EFST_INTENSIVE_AIM,
|
|
EFST_INTENSIVE_AIM_COUNT,
|
|
EFST_GRENADE_FRAGMENT_1,
|
|
EFST_GRENADE_FRAGMENT_2,
|
|
EFST_GRENADE_FRAGMENT_3,
|
|
EFST_GRENADE_FRAGMENT_4,
|
|
EFST_GRENADE_FRAGMENT_5,
|
|
EFST_GRENADE_FRAGMENT_6,
|
|
EFST_AUTO_FIRING_LAUNCHEREFST,
|
|
EFST_HIDDEN_CARD,
|
|
EFST_NW_GRENADE_MASTERY,
|
|
EFST_TALISMAN_OF_PROTECTION,
|
|
EFST_TALISMAN_OF_WARRIOR,
|
|
EFST_TALISMAN_OF_MAGICIAN,
|
|
EFST_TALISMAN_OF_FIVE_ELEMENTS,
|
|
EFST_T_FIRST_GOD,
|
|
EFST_T_SECOND_GOD,
|
|
EFST_T_THIRD_GOD,
|
|
EFST_T_FOURTH_GOD,
|
|
EFST_T_FIVETH_GOD,
|
|
EFST_HEAVEN_AND_EARTH,
|
|
EFST_HOGOGONG,
|
|
EFST_MARINE_FESTIVAL,
|
|
EFST_SANDY_FESTIVAL,
|
|
EFST_KI_SUL_RAMPAGE,
|
|
EFST_COLORS_OF_HYUN_ROK_1,
|
|
EFST_COLORS_OF_HYUN_ROK_2,
|
|
EFST_COLORS_OF_HYUN_ROK_3,
|
|
EFST_COLORS_OF_HYUN_ROK_4,
|
|
EFST_COLORS_OF_HYUN_ROK_5,
|
|
EFST_COLORS_OF_HYUN_ROK_6,
|
|
EFST_COLORS_OF_HYUN_ROK_BUFF,
|
|
EFST_TEMPORARY_COMMUNION,
|
|
EFST_BLESSING_OF_M_CREATURES,
|
|
EFST_BLESSING_OF_M_C_DEBUFF,
|
|
EFST_SHIELDCHAINRUSH,
|
|
EFST_MISTYFROST,
|
|
EFST_GROUNDGRAVITY,
|
|
EFST_BREAKINGLIMIT,
|
|
EFST_RULEBREAK,
|
|
EFST_RISING_SUN,
|
|
EFST_NOON_SUN,
|
|
EFST_SUNSET_SUN,
|
|
EFST_RISING_MOON,
|
|
EFST_MIDNIGHT_MOON,
|
|
EFST_DAWN_MOON,
|
|
EFST_STAR_BURST,
|
|
EFST_SKY_ENCHANT,
|
|
EFST_SHADOW_CLOCK,
|
|
EFST_SHINKIROU_CALL,
|
|
EFST_NIGHTMARE,
|
|
EFST_NOODLE_FES_1,
|
|
EFST_NOODLE_FES_2,
|
|
EFST_NOODLE_FES_3,
|
|
EFST_NOODLE_FES_4,
|
|
EFST_NOODLE_FES_5,
|
|
|
|
EFST_RUSH_QUAKE1 = 1402,
|
|
EFST_RUSH_QUAKE2,
|
|
|
|
EFST_SBUNSHIN = 1415,
|
|
|
|
EFST_MTP_W_POTION_100 = 1418,
|
|
|
|
EFST_CHANGE_SIZE = 1420,
|
|
EFST_CHANGE_SIZE_MONSTER,
|
|
EFST_SHOW_EFFECT1,
|
|
EFST_SHOW_EFFECT2,
|
|
EFST_SHOW_EFFECT3,
|
|
EFST_VR_SPEED,
|
|
EFST_VR_ASPD,
|
|
EFST_VR_MHP,
|
|
EFST_VR_MSP,
|
|
EFST_VR_HIT,
|
|
EFST_VR_DEF,
|
|
EFST_VR_MDEF,
|
|
EFST_VR_BOOK001,
|
|
EFST_VR_BOOK002,
|
|
EFST_VR_BOOK003,
|
|
EFST_VR_BOOK004,
|
|
EFST_REUSE_LIMIT_VR_BOOK,
|
|
|
|
EFST_VR_BOOK005 = 1439,
|
|
EFST_VR_BOOK006,
|
|
EFST_VR_BOOK007,
|
|
EFST_VR_BOOK008,
|
|
EFST_VR_BOOK009,
|
|
EFST_ALL_T_STAT,
|
|
EFST_P_ATK_PLUS,
|
|
EFST_S_MATK_PLUS,
|
|
EFST_C_RATE_PLUS,
|
|
EFST_RESIST_PLUS,
|
|
EFST_PVP_DUN_BUFF,
|
|
/// @APIHOOK_END
|
|
/// Do not modify code above this, since it will be automatically generated by the API again
|
|
EFST_MAX,
|
|
};
|
|
|
|
/// JOINTBEAT stackable ailments
|
|
enum e_joint_break : uint8 {
|
|
BREAK_ANKLE = 0x01, ///< MoveSpeed reduced by 50%
|
|
BREAK_WRIST = 0x02, ///< ASPD reduced by 25%
|
|
BREAK_KNEE = 0x04, ///< MoveSpeed reduced by 30%, ASPD reduced by 10%
|
|
BREAK_SHOULDER = 0x08, ///< DEF reduced by 50%
|
|
BREAK_WAIST = 0x10, ///< DEF reduced by 25%, ATK reduced by 25%
|
|
BREAK_NECK = 0x20, ///< Current attack does 2x damage, inflicts 'bleeding' for 30 seconds
|
|
BREAK_FLAGS = BREAK_ANKLE | BREAK_WRIST | BREAK_KNEE | BREAK_SHOULDER | BREAK_WAIST | BREAK_NECK,
|
|
};
|
|
|
|
extern short current_equip_item_index;
|
|
extern unsigned int current_equip_combo_pos;
|
|
extern int current_equip_card_id;
|
|
extern short current_equip_opt_index;
|
|
|
|
//Status change option definitions (options are what makes status changes visible to chars
|
|
//who were not on your field of sight when it happened)
|
|
|
|
///opt1: (BODYSTATE_*) Non stackable status changes.
|
|
enum e_sc_opt1 : uint16 {
|
|
OPT1_NONE = 0,
|
|
OPT1_STONE = 1, //Petrified
|
|
OPT1_FREEZE,
|
|
OPT1_STUN,
|
|
OPT1_SLEEP,
|
|
//Aegis uses OPT1 = 5 to identify undead enemies (which also grants them immunity to the other opt1 changes)
|
|
OPT1_STONEWAIT = 6, //Petrifying
|
|
OPT1_BURNING,
|
|
OPT1_IMPRISON,
|
|
OPT1_MAX
|
|
};
|
|
|
|
///opt2: (HEALTHSTATE_*) Stackable status changes.
|
|
enum e_sc_opt2 : uint16 {
|
|
OPT2_NONE = 0x0,
|
|
OPT2_POISON = 0x0001,
|
|
OPT2_CURSE = 0x0002,
|
|
OPT2_SILENCE = 0x0004,
|
|
OPT2_SIGNUMCRUCIS = 0x0008, //Confusion
|
|
OPT2_BLIND = 0x0010,
|
|
OPT2_ANGELUS = 0x0020,
|
|
OPT2_BLEEDING = 0x0040,
|
|
OPT2_DPOISON = 0x0080,
|
|
OPT2_FEAR = 0x0100,
|
|
OPT2_MAX
|
|
};
|
|
|
|
///opt3: (SHOW_EFST_*)
|
|
enum e_sc_opt3 : uint32 {
|
|
OPT3_NORMAL = 0x0,
|
|
OPT3_QUICKEN = 0x00000001,
|
|
OPT3_OVERTHRUST = 0x00000002,
|
|
OPT3_ENERGYCOAT = 0x00000004,
|
|
OPT3_EXPLOSIONSPIRITS = 0x00000008,
|
|
OPT3_STEELBODY = 0x00000010,
|
|
OPT3_BLADESTOP = 0x00000020,
|
|
OPT3_AURABLADE = 0x00000040,
|
|
OPT3_BERSERK = 0x00000080,
|
|
OPT3_LIGHTBLADE = 0x00000100,
|
|
OPT3_MOONLIT = 0x00000200,
|
|
OPT3_MARIONETTE = 0x00000400,
|
|
OPT3_ASSUMPTIO = 0x00000800,
|
|
OPT3_WARM = 0x00001000,
|
|
OPT3_KAITE = 0x00002000,
|
|
OPT3_BUNSIN = 0x00004000,
|
|
OPT3_SOULLINK = 0x00008000,
|
|
OPT3_UNDEAD = 0x00010000,
|
|
OPT3_CONTRACT = 0x00020000,
|
|
OPT3_MAX
|
|
};
|
|
|
|
///Option (EFFECTSTATE_*)
|
|
enum e_option : uint32 {
|
|
OPTION_NOTHING = 0x0,
|
|
OPTION_SIGHT = 0x00000001,
|
|
OPTION_HIDE = 0x00000002,
|
|
OPTION_CLOAK = 0x00000004,
|
|
OPTION_CART1 = 0x00000008,
|
|
OPTION_FALCON = 0x00000010,
|
|
OPTION_RIDING = 0x00000020,
|
|
OPTION_INVISIBLE = 0x00000040,
|
|
OPTION_CART2 = 0x00000080,
|
|
OPTION_CART3 = 0x00000100,
|
|
OPTION_CART4 = 0x00000200,
|
|
OPTION_CART5 = 0x00000400,
|
|
OPTION_ORCISH = 0x00000800,
|
|
OPTION_WEDDING = 0x00001000,
|
|
OPTION_RUWACH = 0x00002000,
|
|
OPTION_CHASEWALK = 0x00004000,
|
|
OPTION_FLYING = 0x00008000, //! NOTE: That clientside Flying and Xmas are 0x8000 for clients prior to 2007.
|
|
OPTION_XMAS = 0x00010000,
|
|
OPTION_TRANSFORM = 0x00020000,
|
|
OPTION_SUMMER = 0x00040000,
|
|
OPTION_DRAGON1 = 0x00080000,
|
|
OPTION_WUG = 0x00100000,
|
|
OPTION_WUGRIDER = 0x00200000,
|
|
OPTION_MADOGEAR = 0x00400000,
|
|
OPTION_DRAGON2 = 0x00800000,
|
|
OPTION_DRAGON3 = 0x01000000,
|
|
OPTION_DRAGON4 = 0x02000000,
|
|
OPTION_DRAGON5 = 0x04000000,
|
|
OPTION_HANBOK = 0x08000000,
|
|
OPTION_OKTOBERFEST = 0x10000000,
|
|
OPTION_SUMMER2 = 0x20000000,
|
|
OPTION_MAX,
|
|
|
|
// compound constant for older carts
|
|
OPTION_CART = OPTION_CART1|OPTION_CART2|OPTION_CART3|OPTION_CART4|OPTION_CART5,
|
|
|
|
// compound constants
|
|
OPTION_DRAGON = OPTION_DRAGON1|OPTION_DRAGON2|OPTION_DRAGON3|OPTION_DRAGON4|OPTION_DRAGON5,
|
|
OPTION_COSTUME = OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER|OPTION_HANBOK|OPTION_OKTOBERFEST|OPTION_SUMMER2,
|
|
};
|
|
|
|
///Defines for the manner system [Skotlex]
|
|
enum manner_flags
|
|
{
|
|
MANNER_NOCHAT = 0x01,
|
|
MANNER_NOSKILL = 0x02,
|
|
MANNER_NOCOMMAND = 0x04,
|
|
MANNER_NOITEM = 0x08,
|
|
MANNER_NOROOM = 0x10,
|
|
};
|
|
|
|
/// Status Change State Flags
|
|
enum e_scs_flag : uint8 {
|
|
SCS_NONE = 0,
|
|
SCS_NOMOVECOND, ///< cond flag for SCS_NOMOVE
|
|
SCS_NOMOVE, ///< unit unable to move
|
|
SCS_NOPICKITEMCOND, ///< cond flag for SCS_NOPICKITEM
|
|
SCS_NOPICKITEM, ///< player unable to pick up items
|
|
SCS_NODROPITEMCOND, ///< cond flag for SCS_NODROPITEM
|
|
SCS_NODROPITEM, ///< player unable to drop items
|
|
SCS_NOCASTCOND, ///< cond flag for SCS_NOCAST
|
|
SCS_NOCAST, ///< unit unable to cast skills
|
|
SCS_NOCHAT, ///< unit can't talk
|
|
SCS_NOCHATCOND, ///< cond flag for SCS_NOCHAT
|
|
SCS_NOEQUIPITEM, ///< player can't puts on equip
|
|
SCS_NOEQUIPITEMCOND, ///< cond flag for SCS_NOEQUIPITEM
|
|
SCS_NOUNEQUIPITEM, ///< player can't puts off equip
|
|
SCS_NOUNEQUIPITEMCOND, ///< cond flag for SCS_NOUNEQUIPITEM
|
|
SCS_NOCONSUMEITEM, ///< player can't consumes equip
|
|
SCS_NOCONSUMEITEMCOND, ///< cond flag for SCS_NOCONSUMEITEM
|
|
SCS_NOATTACK, ///< unit can't attack
|
|
SCS_NOATTACKCOND, ///< cond flag for SCS_NOATTACK
|
|
SCS_NOWARP, ///< unit can't warp
|
|
SCS_NOWARPCOND, ///< cond flag for SCS_NOWARP
|
|
SCS_NODEATHPENALTY, ///< player doesn't experience EXP loss
|
|
SCS_NODEATHPENALTYCOND, ///< cond flag for SCS_NODEATHPENALTYCOND
|
|
SCS_NOINTERACT, ///< player can't sit/stand/talk to NPC
|
|
SCS_NOINTERACTCOND, ///< cond flag for SCS_NOINTERACT
|
|
SCS_MAX
|
|
};
|
|
|
|
///Define flags for the status_calc_bl function. [Skotlex]
|
|
enum e_scb_flag : uint8 {
|
|
SCB_NONE = 0,
|
|
SCB_BASE,
|
|
SCB_MAXHP,
|
|
SCB_MAXSP,
|
|
SCB_STR,
|
|
SCB_AGI,
|
|
SCB_VIT,
|
|
SCB_INT,
|
|
SCB_DEX,
|
|
SCB_LUK,
|
|
SCB_BATK,
|
|
SCB_WATK,
|
|
SCB_MATK,
|
|
SCB_HIT,
|
|
SCB_FLEE,
|
|
SCB_DEF,
|
|
SCB_DEF2,
|
|
SCB_MDEF,
|
|
SCB_MDEF2,
|
|
SCB_SPEED,
|
|
SCB_ASPD,
|
|
SCB_DSPD,
|
|
SCB_CRI,
|
|
SCB_FLEE2,
|
|
SCB_ATK_ELE,
|
|
SCB_DEF_ELE,
|
|
SCB_MODE,
|
|
SCB_SIZE,
|
|
SCB_RACE,
|
|
SCB_RANGE,
|
|
SCB_REGEN,
|
|
|
|
// 4th Job T.Stat/T.Sub-Stat Flags
|
|
SCB_MAXAP,
|
|
SCB_POW,
|
|
SCB_STA,
|
|
SCB_WIS,
|
|
SCB_SPL,
|
|
SCB_CON,
|
|
SCB_CRT,
|
|
SCB_PATK,
|
|
SCB_SMATK,
|
|
SCB_RES,
|
|
SCB_MRES,
|
|
SCB_HPLUS,
|
|
SCB_CRATE,
|
|
|
|
// Extra Flags
|
|
SCB_DYE, // force cloth-dye change to 0 to avoid client crashes.
|
|
SCB_MAX,
|
|
};
|
|
|
|
enum e_status_calc_opt : uint8 {
|
|
SCO_NONE = 0x0,
|
|
SCO_FIRST = 0x1, ///< Trigger the calculations that should take place only onspawn/once, process base status initialization code
|
|
SCO_FORCE = 0x2, ///< Only relevant to BL_PC types, ensures call bypasses the queue caused by delayed damage
|
|
};
|
|
|
|
/// Flags for status_change_start and status_get_sc_def
|
|
enum e_status_change_start_flags : int64 {
|
|
SCSTART_NONE = 0x0,
|
|
SCSTART_NOAVOID = 0x01, /// Cannot be avoided (it has to start)
|
|
SCSTART_NOTICKDEF = 0x02, /// Tick should not be reduced (by statuses or bonuses)
|
|
SCSTART_LOADED = 0x04, /// When sc_data loaded (fetched from table), no values (val1 ~ val4) have to be altered/recalculate
|
|
SCSTART_NORATEDEF = 0x08, /// Rate should not be reduced (by statuses or bonuses)
|
|
SCSTART_NOICON = 0x10, /// Status icon won't be sent to client
|
|
};
|
|
|
|
/// Enum for status_change_clear_buffs
|
|
enum e_status_change_clear_buffs_flags : int64 {
|
|
SCCB_BUFFS = 0x01,
|
|
SCCB_DEBUFFS = 0x02,
|
|
SCCB_REFRESH = 0x04,
|
|
SCCB_CHEM_PROTECT = 0x08,
|
|
SCCB_LUXANIMA = 0x10,
|
|
SCCB_HERMODE = 0x20,
|
|
};
|
|
|
|
///Enum for bonus_script's flag [Cydh]
|
|
enum e_bonus_script_flags : uint32 {
|
|
BSF_REM_ON_DEAD = 0x001, ///< Removed when dead
|
|
BSF_REM_ON_DISPELL = 0x002, ///< Removed by Dispell
|
|
BSF_REM_ON_CLEARANCE = 0x004, ///< Removed by Clearance
|
|
BSF_REM_ON_LOGOUT = 0x008, ///< Removed when player logged out
|
|
BSF_REM_ON_BANISHING_BUSTER = 0x010, ///< Removed by Banishing Buster
|
|
BSF_REM_ON_REFRESH = 0x020, ///< Removed by Refresh
|
|
BSF_REM_ON_LUXANIMA = 0x040, ///< Removed by Luxanima
|
|
BSF_REM_ON_MADOGEAR = 0x080, ///< Removed when Madogear is activated or deactivated
|
|
BSF_REM_ON_DAMAGED = 0x100, ///< Removed when receive damage
|
|
BSF_PERMANENT = 0x200, ///< Cannot be removed by sc_end SC_ALL
|
|
|
|
// These flags cannot be stacked, BSF_FORCE_REPLACE has highest priority to check if YOU force to add both
|
|
BSF_FORCE_REPLACE = 0x400, ///< Force to replace duplicated script by expanding the duration
|
|
BSF_FORCE_DUPLICATE = 0x800, ///< Force to add duplicated script
|
|
|
|
// These flags aren't part of 'bonus_script' scripting flags
|
|
BSF_REM_ALL = 0x0, ///< Remove all bonus script
|
|
BSF_REM_BUFF = 0x4000, ///< Remove positive buff if battle_config.debuff_on_logout&1
|
|
BSF_REM_DEBUFF = 0x8000, ///< Remove negative buff if battle_config.debuff_on_logout&2
|
|
};
|
|
|
|
///Enum for status_get_hpbonus and status_get_spbonus
|
|
enum e_status_bonus {
|
|
STATUS_BONUS_FIX = 0,
|
|
STATUS_BONUS_RATE = 1,
|
|
};
|
|
|
|
///Enum of Status Change Flags [Cydh]
|
|
enum e_status_change_flag : uint16 {
|
|
SCF_NONE = 0,
|
|
SCF_BLEFFECT,
|
|
SCF_DISPLAYPC,
|
|
SCF_NOCLEARBUFF,
|
|
SCF_NOREMOVEONDEAD,
|
|
SCF_NODISPELL,
|
|
SCF_NOCLEARANCE,
|
|
SCF_NOBANISHINGBUSTER,
|
|
SCF_NOSAVE,
|
|
SCF_NOSAVEINFINITE,
|
|
SCF_REMOVEONDAMAGED,
|
|
SCF_REMOVEONREFRESH,
|
|
SCF_REMOVEONLUXANIMA,
|
|
SCF_STOPATTACKING,
|
|
SCF_STOPCASTING,
|
|
SCF_STOPWALKING,
|
|
SCF_BOSSRESIST,
|
|
SCF_MVPRESIST,
|
|
SCF_SETSTAND,
|
|
SCF_FAILEDMADO,
|
|
SCF_DEBUFF,
|
|
SCF_REMOVEONCHANGEMAP,
|
|
SCF_REMOVEONMAPWARP,
|
|
SCF_REMOVECHEMICALPROTECT,
|
|
SCF_OVERLAPIGNORELEVEL,
|
|
SCF_SENDOPTION,
|
|
SCF_ONTOUCH,
|
|
SCF_UNITMOVE,
|
|
SCF_NONPLAYER,
|
|
SCF_SENDLOOK,
|
|
SCF_DISPLAYNPC,
|
|
SCF_REQUIREWEAPON,
|
|
SCF_REQUIRESHIELD,
|
|
SCF_MOBLOSETARGET,
|
|
SCF_REMOVEELEMENTALOPTION,
|
|
SCF_SUPERNOVICEANGEL,
|
|
SCF_TAEKWONANGEL,
|
|
SCF_MADOCANCEL,
|
|
SCF_MADOENDCANCEL,
|
|
SCF_RESTARTONMAPWARP,
|
|
SCF_SPREADEFFECT,
|
|
SCF_SENDVAL1,
|
|
SCF_SENDVAL2,
|
|
SCF_SENDVAL3,
|
|
SCF_NOFORCEDEND,
|
|
SCF_NOWARNING,
|
|
SCF_REMOVEONUNEQUIP,
|
|
SCF_REMOVEONUNEQUIPWEAPON,
|
|
SCF_REMOVEONUNEQUIPARMOR,
|
|
SCF_REMOVEONHERMODE,
|
|
SCF_REQUIRENOWEAPON,
|
|
SCF_MAX
|
|
};
|
|
|
|
/// Struct of SC configs [Cydh]
|
|
struct s_status_change_db {
|
|
sc_type type; ///< SC_
|
|
efst_type icon; ///< EFST_
|
|
std::bitset<SCS_MAX> state; ///< SCS_
|
|
std::bitset<SCB_MAX> calc_flag; ///< SCB_ flags
|
|
uint16 opt1; ///< OPT1_
|
|
uint16 opt2; ///< OPT2_
|
|
uint32 opt3; ///< OPT3_
|
|
uint32 look; ///< OPTION_ Changelook
|
|
std::bitset<SCF_MAX> flag; ///< SCF_ Flags, enum e_status_change_flag
|
|
bool display; ///< Display status effect/icon (for certain state)
|
|
uint16 skill_id; ///< Associated skill for (addeff) duration lookups
|
|
std::vector<sc_type> endonstart; ///< List of SC that will be ended when this SC is activated
|
|
std::vector<sc_type> fail; ///< List of SC that causing this SC cannot be activated
|
|
std::vector<sc_type> endreturn; ///< List of SC that will be ended when this SC is activated and then immediately return
|
|
std::vector<sc_type> endonend; ///< List of SC that will be ended when this SC ends
|
|
t_tick min_duration; ///< Minimum duration effect (after all status reduction)
|
|
uint16 min_rate; ///< Minimum rate to be applied (after all status reduction)
|
|
};
|
|
|
|
class StatusDatabase : public TypesafeCachedYamlDatabase<uint16, s_status_change_db> {
|
|
public:
|
|
StatusDatabase() : TypesafeCachedYamlDatabase("STATUS_DB", 3) {
|
|
// All except BASE and extra flags.
|
|
SCB_BATTLE.set();
|
|
SCB_BATTLE.reset(SCB_BASE);
|
|
SCB_BATTLE.reset(SCB_DYE);
|
|
// All except extra flags.
|
|
SCB_ALL.set();
|
|
SCB_ALL.reset(SCB_DYE);
|
|
}
|
|
|
|
const std::string getDefaultLocation() override;
|
|
uint64 parseBodyNode(const ryml::NodeRef& node) override;
|
|
void loadingFinished() override;
|
|
|
|
// Determine who will receive a clif_status_change packet for effects that require one to display correctly
|
|
uint16 StatusRelevantBLTypes[EFST_MAX];
|
|
|
|
// Extras
|
|
efst_type getIcon(sc_type type);
|
|
std::bitset<SCB_MAX> getCalcFlag(sc_type type);
|
|
std::vector<sc_type> getEndOnStart(sc_type type);
|
|
uint16 getSkill(sc_type type);
|
|
bool hasSCF(status_change *sc, e_status_change_flag flag);
|
|
void removeByStatusFlag(block_list *bl, std::vector<e_status_change_flag> flag);
|
|
void changeSkillTree(map_session_data *sd, int32 class_ = 0);
|
|
bool validateStatus(sc_type type);
|
|
std::bitset<SCB_MAX> getSCB_BATTLE();
|
|
std::bitset<SCB_MAX> getSCB_ALL();
|
|
|
|
private:
|
|
std::bitset<SCB_MAX> SCB_BATTLE, SCB_ALL;
|
|
};
|
|
|
|
extern StatusDatabase status_db;
|
|
|
|
/// Enum for status_calc_weight and status_calc_cart_weight
|
|
enum e_status_calc_weight_opt {
|
|
CALCWT_NONE = 0x0,
|
|
CALCWT_ITEM = 0x1, ///< Recalculate item weight
|
|
CALCWT_MAXBONUS = 0x2, ///< Recalculate max weight based on skill/status/configuration bonuses
|
|
CALCWT_CARTSTATE = 0x4, ///< Whether to check for cart state
|
|
};
|
|
|
|
// Enum for refine chance types
|
|
enum e_refine_chance_type {
|
|
REFINE_CHANCE_NORMAL = 0,
|
|
REFINE_CHANCE_ENRICHED,
|
|
REFINE_CHANCE_EVENT_NORMAL,
|
|
REFINE_CHANCE_EVENT_ENRICHED,
|
|
REFINE_CHANCE_TYPE_MAX
|
|
};
|
|
|
|
///Define to determine who gets HP/SP consumed on doing skills/etc. [Skotlex]
|
|
#define BL_CONSUME (BL_PC|BL_HOM|BL_MER|BL_ELEM)
|
|
///Define to determine who has regen
|
|
#define BL_REGEN (BL_PC|BL_HOM|BL_MER|BL_ELEM)
|
|
///Define to determine who will receive a clif_status_change packet for effects that require one to display correctly
|
|
#define BL_SCEFFECT (BL_PC|BL_HOM|BL_MER|BL_MOB|BL_ELEM)
|
|
|
|
/** Basic damage info of a weapon
|
|
* Required because players have two of these, one in status_data
|
|
* and another for their left hand weapon. */
|
|
struct weapon_atk {
|
|
unsigned short atk, atk2;
|
|
unsigned short range;
|
|
unsigned char ele;
|
|
#ifdef RENEWAL
|
|
unsigned short matk;
|
|
unsigned char wlv;
|
|
#endif
|
|
};
|
|
|
|
///For holding basic status (which can be modified by status changes)
|
|
struct status_data {
|
|
unsigned int
|
|
hp, sp, ap, // see status_cpy before adding members before hp and sp
|
|
max_hp, max_sp, max_ap;
|
|
short
|
|
str, agi, vit, int_, dex, luk,
|
|
pow, sta, wis, spl, con, crt,
|
|
eatk;
|
|
unsigned short
|
|
batk,
|
|
#ifdef RENEWAL
|
|
watk,
|
|
watk2,
|
|
#endif
|
|
matk_min, matk_max,
|
|
speed,
|
|
amotion, adelay, dmotion;
|
|
int mode;
|
|
short
|
|
hit, flee, cri, flee2,
|
|
def2, mdef2,
|
|
#ifdef RENEWAL_ASPD
|
|
aspd_rate2,
|
|
#endif
|
|
aspd_rate,
|
|
patk, smatk,
|
|
res, mres,
|
|
hplus, crate;
|
|
/**
|
|
* defType is RENEWAL dependent and defined in src/config/const.hpp
|
|
**/
|
|
defType def,mdef;
|
|
|
|
unsigned char
|
|
def_ele, ele_lv,
|
|
size,
|
|
race, /// see enum e_race
|
|
class_; /// see enum e_classAE
|
|
|
|
struct weapon_atk rhw, lhw; //Right Hand/Left Hand Weapon.
|
|
};
|
|
|
|
///Additional regen data that only players have.
|
|
struct regen_data_sub {
|
|
unsigned short
|
|
hp,sp;
|
|
|
|
//tick accumulation before healing.
|
|
struct {
|
|
unsigned int hp,sp;
|
|
} tick;
|
|
|
|
//Regen rates. n/100
|
|
struct {
|
|
unsigned short hp,sp;
|
|
} rate;
|
|
};
|
|
|
|
///Regen data
|
|
struct regen_data {
|
|
unsigned char flag; //Marks what stuff you may heal or not.
|
|
unsigned short hp,sp,shp,ssp;
|
|
|
|
//tick accumulation before healing.
|
|
struct {
|
|
t_tick hp, sp; //time of last natural recovery
|
|
unsigned int shp,ssp;
|
|
} tick;
|
|
|
|
//Regen rates. n/100
|
|
struct {
|
|
unsigned short hp, sp, shp, ssp;
|
|
} rate;
|
|
|
|
struct {
|
|
unsigned walk:1; //Can you regen even when walking?
|
|
unsigned gc:1; //Tags when you should have double regen due to GVG castle
|
|
unsigned overweight :2; //overweight state (1: 50%, 2: 90%)
|
|
unsigned block :2; //Block regen flag (1: Hp, 2: Sp)
|
|
} state;
|
|
|
|
//skill-regen, sitting-skill-regen (since not all chars with regen need it)
|
|
struct regen_data_sub *sregen, *ssregen;
|
|
};
|
|
|
|
///Status display entry
|
|
struct sc_display_entry {
|
|
enum sc_type type;
|
|
int val1, val2, val3;
|
|
};
|
|
|
|
///Status change entry
|
|
struct status_change_entry {
|
|
int timer;
|
|
int val1,val2,val3,val4;
|
|
};
|
|
|
|
///Status change
|
|
class status_change {
|
|
public:
|
|
unsigned int option;// effect state (bitfield)
|
|
unsigned int opt3;// skill state (bitfield)
|
|
unsigned short opt1;// body state
|
|
unsigned short opt2;// health state (bitfield)
|
|
unsigned char count;
|
|
sc_type lastEffect; // Used to check for stacking damageable SC on the same attack
|
|
int32 lastEffectTimer; // Timer for lastEffect
|
|
//! TODO: See if it is possible to implement the following SC's without requiring extra parameters while the SC is inactive.
|
|
struct {
|
|
uint8 move;
|
|
uint8 pickup;
|
|
uint8 drop;
|
|
uint8 cast;
|
|
uint8 chat;
|
|
uint8 equip;
|
|
uint8 unequip;
|
|
uint8 consume;
|
|
uint8 attack;
|
|
uint8 warp;
|
|
uint8 deathpenalty;
|
|
uint8 interact;
|
|
} cant;/* status change state flags */
|
|
//int sg_id; //ID of the previous Storm gust that hit you
|
|
short comet_x, comet_y; // Point where src casted Comet - required to calculate damage from this point
|
|
/**
|
|
* The Storm Gust counter was dropped in renewal
|
|
**/
|
|
#ifndef RENEWAL
|
|
unsigned char sg_counter; //Storm gust counter (previous hits from storm gust)
|
|
#endif
|
|
private:
|
|
struct status_change_entry *data[SC_MAX];
|
|
std::pair<enum sc_type, struct status_change_entry *> lastStatus; // last-fetched status
|
|
|
|
public:
|
|
status_change_entry * getSCE(enum sc_type type);
|
|
status_change_entry * getSCE(uint32 type);
|
|
status_change_entry * createSCE(enum sc_type type);
|
|
void deleteSCE(enum sc_type type);
|
|
void clearSCE(enum sc_type type);
|
|
};
|
|
#ifndef ONLY_CONSTANTS
|
|
int status_damage( struct block_list *src, struct block_list *target, int64 dhp, int64 dsp, int64 dap, t_tick walkdelay, int flag, uint16 skill_id );
|
|
static int status_damage( struct block_list *src, struct block_list *target, int64 dhp, int64 dsp, t_tick walkdelay, int flag, uint16 skill_id ){
|
|
return status_damage( src, target, dhp, dsp, 0, walkdelay, flag, skill_id );
|
|
}
|
|
//Define for standard HP damage attacks.
|
|
static int status_fix_damage( struct block_list *src, struct block_list *target, int64 hp, t_tick walkdelay, uint16 skill_id ){
|
|
return status_damage( src, target, hp, 0, walkdelay, 0, skill_id );
|
|
}
|
|
//Define for standard SP damage attacks.
|
|
static int status_fix_spdamage( struct block_list *src, struct block_list *target, int64 sp, t_tick walkdelay, uint16 skill_id ){
|
|
return status_damage( src, target, 0, sp, walkdelay, 0, skill_id );
|
|
}
|
|
//Define for standard AP damage attacks.
|
|
static int status_fix_apdamage( struct block_list *src, struct block_list *target, int64 ap, t_tick walkdelay, uint16 skill_id ){
|
|
return status_damage( src, target, 0, 0, ap, walkdelay, 0, skill_id );
|
|
}
|
|
//Define for standard HP/SP/AP damage triggers.
|
|
static int status_zap( struct block_list* bl, int64 hp, int64 sp, int64 ap = 0 ){
|
|
return status_damage( nullptr, bl, hp, sp, ap, 0, 1, 0 );
|
|
}
|
|
//Define for standard HP/SP skill-related cost triggers (mobs require no HP/SP/AP to use skills)
|
|
int64 status_charge(struct block_list* bl, int64 hp, int64 sp);
|
|
int status_percent_change(struct block_list *src, struct block_list *target, int8 hp_rate, int8 sp_rate, int8 ap_rate, uint8 flag);
|
|
//Easier handling of status_percent_change
|
|
static int status_percent_heal( struct block_list* bl, int8 hp_rate, int8 sp_rate, int8 ap_rate = 0 ){
|
|
return status_percent_change( nullptr, bl, -(hp_rate), -(sp_rate), -(ap_rate), 0 );
|
|
}
|
|
/// Deals % damage from 'src' to 'target'. If rate is > 0 is % of current HP/SP/AP, < 0 % of MaxHP/MaxSP/MaxAP
|
|
static int status_percent_damage( struct block_list* src, struct block_list* target, int8 hp_rate, int8 sp_rate, bool kill ){
|
|
return status_percent_change( src, target, hp_rate, sp_rate, 0, kill ? 1 : 2 );
|
|
}
|
|
static int status_percent_damage( struct block_list* src, struct block_list* target, int8 hp_rate, int8 sp_rate, int8 ap_rate, bool kill ){
|
|
return status_percent_change( src, target, hp_rate, sp_rate, ap_rate, kill ? 1 : 2 );
|
|
}
|
|
//Instant kill with no drops/exp/etc
|
|
static int status_kill( struct block_list* bl ){
|
|
return status_percent_damage( nullptr, bl, 100, 0, 0, true );
|
|
}
|
|
//Used to set the hp/sp/ap of an object to an absolute value (can't kill)
|
|
int status_set_hp(struct block_list *bl, unsigned int hp, int flag);
|
|
int status_set_maxhp(struct block_list *bl, unsigned int hp, int flag);
|
|
int status_set_sp(struct block_list *bl, unsigned int sp, int flag);
|
|
int status_set_maxsp(struct block_list *bl, unsigned int hp, int flag);
|
|
int status_set_ap(struct block_list *bl, unsigned int ap, int flag);
|
|
int status_set_maxap(struct block_list *bl, unsigned int ap, int flag);
|
|
int status_heal( struct block_list *bl,int64 hhp,int64 hsp, int64 hap, int flag );
|
|
static int status_heal( struct block_list *bl,int64 hhp,int64 hsp, int flag ){
|
|
return status_heal( bl, hhp, hsp, 0, flag );
|
|
}
|
|
int status_revive(struct block_list *bl, unsigned char per_hp, unsigned char per_sp, unsigned char per_ap = 0);
|
|
|
|
struct regen_data *status_get_regen_data(struct block_list *bl);
|
|
struct status_data *status_get_status_data(struct block_list *bl);
|
|
struct status_data *status_get_base_status(struct block_list *bl);
|
|
const char * status_get_name(struct block_list *bl);
|
|
int status_get_class(struct block_list *bl);
|
|
int status_get_lv(struct block_list *bl);
|
|
#define status_get_range(bl) status_get_status_data(bl)->rhw.range
|
|
#define status_get_hp(bl) status_get_status_data(bl)->hp
|
|
#define status_get_max_hp(bl) status_get_status_data(bl)->max_hp
|
|
#define status_get_sp(bl) status_get_status_data(bl)->sp
|
|
#define status_get_max_sp(bl) status_get_status_data(bl)->max_sp
|
|
#define status_get_ap(bl) status_get_status_data(bl)->ap
|
|
#define status_get_max_ap(bl) status_get_status_data(bl)->max_ap
|
|
#define status_get_str(bl) status_get_status_data(bl)->str
|
|
#define status_get_agi(bl) status_get_status_data(bl)->agi
|
|
#define status_get_vit(bl) status_get_status_data(bl)->vit
|
|
#define status_get_int(bl) status_get_status_data(bl)->int_
|
|
#define status_get_dex(bl) status_get_status_data(bl)->dex
|
|
#define status_get_luk(bl) status_get_status_data(bl)->luk
|
|
#define status_get_pow(bl) status_get_status_data(bl)->pow
|
|
#define status_get_sta(bl) status_get_status_data(bl)->sta
|
|
#define status_get_wis(bl) status_get_status_data(bl)->wis
|
|
#define status_get_spl(bl) status_get_status_data(bl)->spl
|
|
#define status_get_con(bl) status_get_status_data(bl)->con
|
|
#define status_get_crt(bl) status_get_status_data(bl)->crt
|
|
#define status_get_hit(bl) status_get_status_data(bl)->hit
|
|
#define status_get_flee(bl) status_get_status_data(bl)->flee
|
|
defType status_get_def(struct block_list *bl);
|
|
#define status_get_mdef(bl) status_get_status_data(bl)->mdef
|
|
#define status_get_flee2(bl) status_get_status_data(bl)->flee2
|
|
#define status_get_def2(bl) status_get_status_data(bl)->def2
|
|
#define status_get_mdef2(bl) status_get_status_data(bl)->mdef2
|
|
#define status_get_critical(bl) status_get_status_data(bl)->cri
|
|
#define status_get_batk(bl) status_get_status_data(bl)->batk
|
|
#define status_get_watk(bl) status_get_status_data(bl)->rhw.atk
|
|
#define status_get_watk2(bl) status_get_status_data(bl)->rhw.atk2
|
|
#define status_get_matk_max(bl) status_get_status_data(bl)->matk_max
|
|
#define status_get_matk_min(bl) status_get_status_data(bl)->matk_min
|
|
#define status_get_lwatk(bl) status_get_status_data(bl)->lhw.atk
|
|
#define status_get_lwatk2(bl) status_get_status_data(bl)->lhw.atk2
|
|
unsigned short status_get_speed(struct block_list *bl);
|
|
#define status_get_adelay(bl) status_get_status_data(bl)->adelay
|
|
#define status_get_amotion(bl) status_get_status_data(bl)->amotion
|
|
#define status_get_dmotion(bl) status_get_status_data(bl)->dmotion
|
|
#define status_get_patk(bl) status_get_status_data(bl)->patk
|
|
#define status_get_smatk(bl) status_get_status_data(bl)->smatk
|
|
#define status_get_res(bl) status_get_status_data(bl)->res
|
|
#define status_get_mres(bl) status_get_status_data(bl)->mres
|
|
#define status_get_hplus(bl) status_get_status_data(bl)->hplus
|
|
#define status_get_crate(bl) status_get_status_data(bl)->crate
|
|
#define status_get_element(bl) status_get_status_data(bl)->def_ele
|
|
#define status_get_element_level(bl) status_get_status_data(bl)->ele_lv
|
|
unsigned char status_calc_attack_element(struct block_list *bl, status_change *sc, int element);
|
|
#define status_get_attack_sc_element(bl, sc) status_calc_attack_element(bl, sc, 0)
|
|
#define status_get_attack_element(bl) status_get_status_data(bl)->rhw.ele
|
|
#define status_get_attack_lelement(bl) status_get_status_data(bl)->lhw.ele
|
|
#define status_get_race(bl) status_get_status_data(bl)->race
|
|
#define status_get_class_(bl) status_get_status_data(bl)->class_
|
|
#define status_get_size(bl) status_get_status_data(bl)->size
|
|
#define status_get_mode(bl) status_get_status_data(bl)->mode
|
|
#define status_has_mode(status,md) (((status)->mode&(md)) == (md))
|
|
#define status_bl_has_mode(bl,md) status_has_mode(status_get_status_data((bl)),(md))
|
|
|
|
#define status_get_homstr(bl) (status->str + ((TBL_HOM*)bl)->homunculus.str_value)
|
|
#define status_get_homagi(bl) (status->agi + ((TBL_HOM*)bl)->homunculus.agi_value)
|
|
#define status_get_homvit(bl) (status->vit + ((TBL_HOM*)bl)->homunculus.vit_value)
|
|
#define status_get_homint(bl) (status->int_ + ((TBL_HOM*)bl)->homunculus.int_value)
|
|
#define status_get_homdex(bl) (status->dex + ((TBL_HOM*)bl)->homunculus.dex_value)
|
|
#define status_get_homluk(bl) (status->luk + ((TBL_HOM*)bl)->homunculus.luk_value)
|
|
|
|
int status_get_party_id(struct block_list *bl);
|
|
int status_get_guild_id(struct block_list *bl);
|
|
int status_get_emblem_id(struct block_list *bl);
|
|
std::vector<e_race2> status_get_race2(struct block_list *bl);
|
|
|
|
struct view_data *status_get_viewdata(struct block_list *bl);
|
|
void status_set_viewdata(struct block_list *bl, int class_);
|
|
void status_change_init(struct block_list *bl);
|
|
status_change *status_get_sc(struct block_list *bl);
|
|
|
|
int status_isdead(struct block_list *bl);
|
|
int status_isimmune(struct block_list *bl);
|
|
|
|
t_tick status_get_sc_def(struct block_list *src,struct block_list *bl, enum sc_type type, int rate, t_tick tick, unsigned char flag);
|
|
int status_change_start(struct block_list* src, struct block_list* bl,enum sc_type type,int rate,int val1,int val2,int val3,int val4,t_tick duration,unsigned char flag, int32 delay = 0);
|
|
//Short version, receives rate in 1->100 range, and does not uses a flag setting.
|
|
static int sc_start(block_list *src, block_list *bl, sc_type type, int32 rate, int32 val1, t_tick duration, int32 delay = 0) {
|
|
return status_change_start(src, bl, type, 100 * rate, val1, 0, 0, 0, duration, SCSTART_NONE, delay);
|
|
}
|
|
static int sc_start2(block_list *src, block_list *bl, sc_type type, int32 rate, int32 val1, int32 val2, t_tick duration, int32 delay = 0) {
|
|
return status_change_start(src, bl, type, 100 * rate, val1, val2, 0, 0, duration, SCSTART_NONE, delay);
|
|
}
|
|
static int sc_start4(block_list *src, block_list *bl, sc_type type, int32 rate, int32 val1, int32 val2, int32 val3, int32 val4, t_tick duration, int32 delay = 0) {
|
|
return status_change_start(src, bl, type, 100 * rate, val1, val2, val3, val4, duration, SCSTART_NONE, delay);
|
|
}
|
|
int status_change_end(struct block_list* bl, enum sc_type type, int tid = INVALID_TIMER);
|
|
TIMER_FUNC(status_change_timer);
|
|
int status_change_timer_sub(struct block_list* bl, va_list ap);
|
|
int status_change_clear(struct block_list* bl, int type);
|
|
void status_change_clear_buffs(struct block_list* bl, uint8 type);
|
|
void status_change_clear_onChangeMap(struct block_list *bl, status_change *sc);
|
|
TIMER_FUNC(status_clear_lastEffect_timer);
|
|
|
|
#define status_calc_mob(md, opt) status_calc_bl_(&(md)->bl, status_db.getSCB_ALL(), opt)
|
|
#define status_calc_pet(pd, opt) status_calc_bl_(&(pd)->bl, status_db.getSCB_ALL(), opt)
|
|
#define status_calc_pc(sd, opt) status_calc_bl_(&(sd)->bl, status_db.getSCB_ALL(), opt)
|
|
#define status_calc_homunculus(hd, opt) status_calc_bl_(&(hd)->bl, status_db.getSCB_ALL(), opt)
|
|
#define status_calc_mercenary(md, opt) status_calc_bl_(&(md)->bl, status_db.getSCB_ALL(), opt)
|
|
#define status_calc_elemental(ed, opt) status_calc_bl_(&(ed)->bl, status_db.getSCB_ALL(), opt)
|
|
#define status_calc_npc(nd, opt) status_calc_bl_(&(nd)->bl, status_db.getSCB_ALL(), opt)
|
|
|
|
bool status_calc_weight(map_session_data *sd, enum e_status_calc_weight_opt flag);
|
|
bool status_calc_cart_weight(map_session_data *sd, enum e_status_calc_weight_opt flag);
|
|
void status_calc_bl_(struct block_list *bl, std::bitset<SCB_MAX> flag, uint8 opt = SCO_NONE);
|
|
int status_calc_mob_(struct mob_data* md, uint8 opt);
|
|
void status_calc_pet_(struct pet_data* pd, uint8 opt);
|
|
int status_calc_pc_(map_session_data* sd, uint8 opt);
|
|
int status_calc_homunculus_(struct homun_data *hd, uint8 opt);
|
|
int status_calc_mercenary_(s_mercenary_data *md, uint8 opt);
|
|
int status_calc_elemental_(s_elemental_data *ed, uint8 opt);
|
|
int status_calc_npc_(struct npc_data *nd, uint8 opt);
|
|
|
|
static void status_calc_bl(block_list *bl, std::vector<e_scb_flag> flags) {
|
|
static std::bitset<SCB_MAX> temp;
|
|
|
|
temp.reset();
|
|
for (const auto &scb : flags) {
|
|
temp.set(scb);
|
|
}
|
|
|
|
status_calc_bl_(bl, temp);
|
|
}
|
|
|
|
void status_calc_misc(struct block_list *bl, struct status_data *status, int level);
|
|
void status_calc_regen(struct block_list *bl, struct status_data *status, struct regen_data *regen);
|
|
void status_calc_regen_rate(struct block_list *bl, struct regen_data *regen, status_change *sc);
|
|
void status_calc_state(struct block_list *bl, status_change *sc, std::bitset<SCS_MAX> flag, bool start);
|
|
|
|
void status_calc_slave_mode(struct mob_data *md, struct mob_data *mmd);
|
|
|
|
bool status_check_skilluse(struct block_list *src, struct block_list *target, uint16 skill_id, int flag);
|
|
int status_check_visibility(struct block_list *src, struct block_list *target);
|
|
|
|
int status_change_spread(block_list *src, block_list *bl);
|
|
|
|
#ifndef RENEWAL
|
|
unsigned short status_base_matk_min(const struct status_data* status);
|
|
unsigned short status_base_matk_max(const struct status_data* status);
|
|
#else
|
|
unsigned int status_weapon_atk(struct weapon_atk wa, map_session_data *sd);
|
|
unsigned short status_base_atk_min(struct block_list *bl, const struct status_data* status, int level);
|
|
unsigned short status_base_atk_max(struct block_list *bl, const struct status_data* status, int level);
|
|
unsigned short status_base_matk_min(struct block_list *bl, const struct status_data* status, int level);
|
|
unsigned short status_base_matk_max(struct block_list *bl, const struct status_data* status, int level);
|
|
#endif
|
|
|
|
unsigned short status_base_atk(const struct block_list *bl, const struct status_data *status, int level);
|
|
|
|
// Status changes accessors for StatusChange database
|
|
uint16 status_efst_get_bl_type(enum efst_type efst);
|
|
|
|
void status_readdb( bool reload = false );
|
|
void do_init_status(void);
|
|
void do_final_status(void);
|
|
#endif /* ONLY_CONSTANTS */
|
|
|
|
#endif /* STATUS_HPP */
|