diff options
Diffstat (limited to 'src/map/status.h')
-rw-r--r-- | src/map/status.h | 271 |
1 files changed, 271 insertions, 0 deletions
diff --git a/src/map/status.h b/src/map/status.h new file mode 100644 index 000000000..a07c47153 --- /dev/null +++ b/src/map/status.h @@ -0,0 +1,271 @@ +#ifndef _STATUS_H_ +#define _STATUS_H_ + +enum { // struct map_session_data の status_changeの番?テ?ブル +// SC_SENDMAX未?はクライアントへの通知あり。 +// 2-2次職の値はなんかめちゃくちゃっぽいので暫定。たぶん?更されます。 + SC_SENDMAX = 128, // note: max is now 182, but we'll need to do alot of moving around + SC_PROVOKE = 0, + SC_ENDURE = 1, + SC_TWOHANDQUICKEN = 2, + SC_CONCENTRATE = 3, + SC_HIDING = 4, + SC_CLOAKING = 5, + SC_ENCPOISON = 6, + SC_POISONREACT = 7, + SC_QUAGMIRE = 8, + SC_ANGELUS = 9, + SC_BLESSING = 10, + SC_SIGNUMCRUCIS = 11, + SC_INCREASEAGI = 12, + SC_DECREASEAGI = 13, + SC_SLOWPOISON = 14, + SC_IMPOSITIO = 15, + SC_SUFFRAGIUM = 16, + SC_ASPERSIO = 17, + SC_BENEDICTIO = 18, + SC_KYRIE = 19, + SC_MAGNIFICAT = 20, + SC_GLORIA = 21, + SC_AETERNA = 22, + SC_ADRENALINE = 23, + SC_WEAPONPERFECTION = 24, + SC_OVERTHRUST = 25, + SC_MAXIMIZEPOWER = 26, + SC_RIDING = 27, + SC_FALCON = 28, + SC_TRICKDEAD = 29, + SC_LOUD = 30, + SC_ENERGYCOAT = 31, + SC_BROKNARMOR = 32, + SC_BROKNWEAPON = 33, + SC_HALLUCINATION = 34, + SC_WEIGHT50 = 35, + SC_WEIGHT90 = 36, + SC_SPEEDPOTION0 = 37, + SC_SPEEDPOTION1 = 38, + SC_SPEEDPOTION2 = 39, + SC_SPEEDPOTION3 = 40, + SC_SPEEDUP0 = 41, // for skill speedup + SC_SPEEDUP1 = 42, // for skill speedup +//-- 43-50 + SC_STRIPWEAPON = 50, + SC_STRIPSHIELD = 51, + SC_STRIPARMOR = 52, + SC_STRIPHELM = 53, + SC_CP_WEAPON = 54, + SC_CP_SHIELD = 55, + SC_CP_ARMOR = 56, + SC_CP_HELM = 57, + SC_AUTOGUARD = 58, + SC_REFLECTSHIELD = 59, + SC_DEVOTION = 60, + SC_PROVIDENCE = 61, + SC_DEFENDER = 62, + SC_AUTOSPELL = 65, + SC_SPEARSQUICKEN = 68, +//-- 69-85 + SC_EXPLOSIONSPIRITS = 86, + SC_STEELBODY = 87, + SC_COMBO = 89, + SC_FLAMELAUNCHER = 90, + SC_FROSTWEAPON = 91, + SC_LIGHTNINGLOADER = 92, + SC_SEISMICWEAPON = 93, +//-- 94-102 + SC_AURABLADE = 103, /* オ?ラブレ?ド */ + SC_PARRYING = 104, /* パリイング */ + SC_CONCENTRATION = 105, /* コンセントレ?ション */ + SC_TENSIONRELAX = 106, /* テンションリラックス */ + SC_BERSERK = 107, /* バ?サ?ク */ +//-- 108, 109 + SC_ASSUMPTIO = 110, /* アシャンプティオ */ +//-- 111, 112 + SC_MAGICPOWER = 113, /* 魔法力?幅 */ + SC_EDP = 114, /* エフェクトが判明したら移動 */ + SC_TRUESIGHT = 115, /* トゥル?サイト */ + SC_WINDWALK = 116, /* ウインドウォ?ク */ + SC_MELTDOWN = 117, /* メルトダウン */ + SC_CARTBOOST = 118, /* カ?トブ?スト */ +//-- 119 + SC_REJECTSWORD = 120, /* リジェクトソ?ド */ + SC_MARIONETTE = 121, /* マリオネットコントロ?ル */ + SC_MARIONETTE2 = 122, // Marionette target +//-- 123 + SC_BLEEDING = 124, /* ヘッドクラッシュ */ + SC_JOINTBEAT = 125, /* ジョイントビ?ト */ +//-- 126, 127 + + SC_STONE = 128, + SC_FREEZE = 129, +// <-- 130 = a baby skill status? + SC_STAN = 130, + SC_SLEEP = 131, +// <-- 132 = another baby skill? + SC_POISON = 132, + SC_CURSE = 133, + SC_SILENCE = 134, + SC_CONFUSION = 135, + SC_BLIND = 136, + SC_DIVINA = SC_SILENCE, +//-- 137-139 + SC_SAFETYWALL = 140, + SC_PNEUMA = 141, +//-- 142 + SC_ANKLE = 143, + SC_DANCING = 144, + SC_KEEPING = 145, + SC_BARRIER = 146, +//-- 147,148 + SC_MAGICROD = 149, + SC_SIGHT = 150, + SC_RUWACH = 151, + SC_AUTOCOUNTER = 152, + SC_VOLCANO = 153, + SC_DELUGE = 154, + SC_VIOLENTGALE = 155, + SC_BLADESTOP_WAIT = 156, + SC_BLADESTOP = 157, + SC_EXTREMITYFIST = 158, +//-- 159 + SC_LULLABY =160, + SC_RICHMANKIM =161, + SC_ETERNALCHAOS =162, + SC_DRUMBATTLE =163, + SC_NIBELUNGEN =164, + SC_ROKISWEIL =165, + SC_INTOABYSS =166, + SC_SIEGFRIED =167, + SC_DISSONANCE =168, + SC_WHISTLE =169, + SC_ASSNCROS =170, + SC_POEMBRAGI =171, + SC_APPLEIDUN =172, + SC_UGLYDANCE =173, + SC_HUMMING =174, + SC_DONTFORGETME =175, + SC_FORTUNE =176, + SC_SERVICE4U =177, + SC_SPIDERWEB =180, /* スパイダ?ウェッブ */ +// <-- 181 = unknown status +// <-- 182 = unknown status + SC_SACRIFICE =184, /* サクリファイス */ + SC_WEDDING =187, //結婚用(結婚衣裳になって?くのが?いとか) + SC_NOCHAT =188, //赤エモ?態 + SC_SPLASHER =189, /* ベナムスプラッシャ? */ + SC_SELFDESTRUCTION =190, /* 自爆 */ + SC_MEMORIZE =197, /* メモライズ */ // changed from 181 to 192 + SC_DPOISON =198, /* 猛毒 */ + +// Used by English Team + SC_SLOWDOWN =45, // for skill slowdown + SC_AUTOBERSERK =46, + SC_SIGHTTRASHER =73, + SC_BASILICA =102, // temporarily use this before an actual id is found [celest] + + SC_ENSEMBLE =159, + SC_FOGWALL =178, + SC_GOSPEL =179, + SC_PRESERVE =181, + SC_BATTLEORDERS =182, + SC_MOONLIT =183, + SC_ATKPOT =185, // [Valaris] + SC_MATKPOT =186, // [Valaris] + SC_MINDBREAKER =191, + SC_SPELLBREAKER =192, + SC_LANDPROTECTOR =193, + SC_ADAPTATION =194, + SC_CHASEWALK =195, + SC_REGENERATION =196, + SC_GUILDAURA =199, + SC_BABY =200, + +// Icons + _SC_BABY =200 +}; +extern int SkillStatusChangeTable[]; + +extern int current_equip_item_index; + +// パラメータ所得系 battle.c より移動 +int status_get_class(struct block_list *bl); +int status_get_dir(struct block_list *bl); +int status_get_lv(struct block_list *bl); +int status_get_range(struct block_list *bl); +int status_get_hp(struct block_list *bl); +int status_get_max_hp(struct block_list *bl); +int status_get_str(struct block_list *bl); +int status_get_agi(struct block_list *bl); +int status_get_vit(struct block_list *bl); +int status_get_int(struct block_list *bl); +int status_get_dex(struct block_list *bl); +int status_get_luk(struct block_list *bl); +int status_get_hit(struct block_list *bl); +int status_get_flee(struct block_list *bl); +int status_get_def(struct block_list *bl); +int status_get_mdef(struct block_list *bl); +int status_get_flee2(struct block_list *bl); +int status_get_def2(struct block_list *bl); +int status_get_mdef2(struct block_list *bl); +int status_get_baseatk(struct block_list *bl); +int status_get_atk(struct block_list *bl); +int status_get_atk2(struct block_list *bl); +int status_get_speed(struct block_list *bl); +int status_get_adelay(struct block_list *bl); +int status_get_amotion(struct block_list *bl); +int status_get_dmotion(struct block_list *bl); +int status_get_element(struct block_list *bl); +int status_get_attack_element(struct block_list *bl); +int status_get_attack_element2(struct block_list *bl); //左手武器属性取得 +#define status_get_elem_type(bl) (status_get_element(bl)%10) +#define status_get_elem_level(bl) (status_get_element(bl)/10/2) +int status_get_party_id(struct block_list *bl); +int status_get_guild_id(struct block_list *bl); +int status_get_race(struct block_list *bl); +int status_get_size(struct block_list *bl); +int status_get_mode(struct block_list *bl); +int status_get_mexp(struct block_list *bl); +int status_get_race2(struct block_list *bl); + +struct status_change *status_get_sc_data(struct block_list *bl); +short *status_get_sc_count(struct block_list *bl); +short *status_get_opt1(struct block_list *bl); +short *status_get_opt2(struct block_list *bl); +short *status_get_opt3(struct block_list *bl); +short *status_get_option(struct block_list *bl); + +int status_get_matk1(struct block_list *bl); +int status_get_matk2(struct block_list *bl); +int status_get_critical(struct block_list *bl); +int status_get_atk_(struct block_list *bl); +int status_get_atk_2(struct block_list *bl); +int status_get_atk2(struct block_list *bl); + +int status_isdead(struct block_list *bl); + +int status_get_sc_def(struct block_list *bl, int type); +#define status_get_sc_def_mdef(bl) (status_get_sc_def(bl, SP_MDEF1)) +#define status_get_sc_def_vit(bl) (status_get_sc_def(bl, SP_DEF2)) +#define status_get_sc_def_int(bl) (status_get_sc_def(bl, SP_MDEF2)) +#define status_get_sc_def_luk(bl) (status_get_sc_def(bl, SP_LUK)) + +// 状態異常関連 skill.c より移動 +int status_change_start(struct block_list *bl,int type,int val1,int val2,int val3,int val4,int tick,int flag); +int status_change_end( struct block_list* bl , int type,int tid ); +int status_change_timer(int tid, unsigned int tick, int id, int data); +int status_change_timer_sub(struct block_list *bl, va_list ap ); +int status_change_clear(struct block_list *bl,int type); + +// ステータス計算 pc.c から分離 +// pc_calcstatus +int status_calc_pc(struct map_session_data* sd,int first); +int status_calc_speed(struct map_session_data*); // [Celest] +// int status_calc_skilltree(struct map_session_data *sd); +int status_getrefinebonus(int lv,int type); +int status_percentrefinery(struct map_session_data *sd,struct item *item); +extern int percentrefinery[5][10]; + +int status_readdb(void); +int do_init_status(void); + +#endif |