00001
00002 #ifndef _STATUS_H_
00003 #define _STATUS_H_
00004
00005 enum {
00006 SC_STONE = 0,
00007 SC_FREEZE,
00008 SC_STAN,
00009 SC_SLEEP,
00010 SC_POISON,
00011 SC_CURSE,
00012 SC_SILENCE,
00013 SC_CONFUSION,
00014 SC_BLIND,
00015 SC_BLEEDING,
00016 SC_DPOISON,
00017
00018 SC_PROVOKE = 20,
00019 SC_ENDURE,
00020 SC_TWOHANDQUICKEN,
00021 SC_CONCENTRATE,
00022 SC_HIDING,
00023 SC_CLOAKING,
00024 SC_ENCPOISON,
00025 SC_POISONREACT,
00026 SC_QUAGMIRE,
00027 SC_ANGELUS,
00028 SC_BLESSING,
00029 SC_SIGNUMCRUCIS,
00030 SC_INCREASEAGI,
00031 SC_DECREASEAGI,
00032 SC_SLOWPOISON,
00033 SC_IMPOSITIO,
00034 SC_SUFFRAGIUM,
00035 SC_ASPERSIO,
00036 SC_BENEDICTIO,
00037 SC_KYRIE,
00038 SC_MAGNIFICAT,
00039 SC_GLORIA,
00040 SC_AETERNA,
00041 SC_ADRENALINE,
00042 SC_WEAPONPERFECTION,
00043 SC_OVERTHRUST,
00044 SC_MAXIMIZEPOWER,
00045 SC_TRICKDEAD,
00046 SC_LOUD,
00047 SC_ENERGYCOAT,
00048 SC_BROKENARMOR,
00049 SC_BROKENWEAPON,
00050 SC_HALLUCINATION,
00051 SC_WEIGHT50,
00052 SC_WEIGHT90,
00053 SC_SPEEDPOTION0,
00054 SC_SPEEDPOTION1,
00055 SC_SPEEDPOTION2,
00056 SC_SPEEDPOTION3,
00057 SC_SPEEDUP0,
00058 SC_SPEEDUP1,
00059 SC_ATKPOT,
00060 SC_MATKPOT,
00061 SC_WEDDING,
00062 SC_SLOWDOWN,
00063 SC_ANKLE,
00064 SC_KEEPING,
00065 SC_BARRIER,
00066 SC_STRIPWEAPON,
00067 SC_STRIPSHIELD,
00068 SC_STRIPARMOR,
00069 SC_STRIPHELM,
00070 SC_CP_WEAPON,
00071 SC_CP_SHIELD,
00072 SC_CP_ARMOR,
00073 SC_CP_HELM,
00074 SC_AUTOGUARD,
00075 SC_REFLECTSHIELD,
00076 SC_SPLASHER,
00077 SC_PROVIDENCE,
00078 SC_DEFENDER,
00079 SC_MAGICROD,
00080 SC_SPELLBREAKER,
00081 SC_AUTOSPELL,
00082 SC_SIGHTTRASHER,
00083 SC_AUTOBERSERK,
00084 SC_SPEARSQUICKEN,
00085 SC_AUTOCOUNTER,
00086 SC_SIGHT,
00087 SC_SAFETYWALL,
00088 SC_RUWACH,
00089 SC_EXTREMITYFIST,
00090 SC_EXPLOSIONSPIRITS,
00091 SC_COMBO,
00092 SC_BLADESTOP_WAIT,
00093 SC_BLADESTOP,
00094 SC_FLAMELAUNCHER,
00095 SC_FROSTWEAPON,
00096 SC_LIGHTNINGLOADER,
00097 SC_SEISMICWEAPON,
00098 SC_VOLCANO,
00099 SC_DELUGE,
00100 SC_VIOLENTGALE,
00101 SC_WATK_ELEMENT,
00102 SC_LANDPROTECTOR,
00103 SC_ARMOR_ELEMENT,
00104 SC_NOCHAT,
00105 SC_BABY,
00106 SC_AURABLADE,
00107 SC_PARRYING,
00108 SC_CONCENTRATION,
00109 SC_TENSIONRELAX,
00110 SC_BERSERK,
00111 SC_FURY,
00112 SC_GOSPEL,
00113 SC_ASSUMPTIO,
00114 SC_BASILICA,
00115 SC_GUILDAURA,
00116 SC_MAGICPOWER,
00117 SC_EDP,
00118 SC_TRUESIGHT,
00119 SC_WINDWALK,
00120 SC_MELTDOWN,
00121 SC_CARTBOOST,
00122 SC_CHASEWALK,
00123 SC_REJECTSWORD,
00124 SC_MARIONETTE,
00125 SC_MARIONETTE2,
00126 SC_MOONLIT,
00127 SC_JOINTBEAT,
00128 SC_MINDBREAKER,
00129 SC_MEMORIZE,
00130 SC_FOGWALL,
00131 SC_SPIDERWEB,
00132 SC_DEVOTION,
00133 SC_SACRIFICE,
00134 SC_STEELBODY,
00135 SC_ORCISH,
00136 SC_READYSTORM,
00137 SC_STORMKICK,
00138 SC_READYDOWN,
00139 SC_DOWNKICK,
00140 SC_READYTURN,
00141 SC_TURNKICK,
00142 SC_READYCOUNTER,
00143 SC_COUNTER,
00144 SC_DODGE,
00145 SC_JUMPKICK,
00146 SC_RUN,
00147 SC_SHADOWWEAPON,
00148 SC_ADRENALINE2,
00149 SC_GHOSTWEAPON,
00150 SC_NIGHT,
00151 SC_KAIZEL,
00152 SC_KAAHI,
00153 SC_KAUPE,
00154 SC_ONEHAND,
00155 SC_PRESERVE,
00156 SC_BATTLEORDERS,
00157 SC_REGENERATION,
00158 SC_DOUBLECASTING,
00159 SC_GRAVITATION,
00160 SC_MAXOVERTHRUST,
00161 SC_LONGING,
00162 SC_HERMODE,
00163 SC_SHRINK,
00164 SC_SIGHTBLASTER,
00165 SC_WINKCHARM,
00166 SC_CLOSECONFINE,
00167 SC_CLOSECONFINE2,
00168 SC_DANCING,
00169 SC_LULLABY,
00170 SC_RICHMANKIM,
00171 SC_ETERNALCHAOS,
00172 SC_DRUMBATTLE,
00173 SC_NIBELUNGEN,
00174 SC_ROKISWEIL,
00175 SC_INTOABYSS,
00176 SC_SIEGFRIED,
00177 SC_WHISTLE,
00178 SC_ASSNCROS,
00179 SC_POEMBRAGI,
00180 SC_APPLEIDUN,
00181 SC_UGLYDANCE,
00182 SC_HUMMING,
00183 SC_DONTFORGETME,
00184 SC_FORTUNE,
00185 SC_SERVICE4U,
00186 SC_INTRAVISION,
00187 SC_MODE,
00188 SC_STOP,
00189 SC_BROKNWEAPON,
00190 SC_BROKNARMOR,
00191 SC_DISSONANCE,
00192 SC_INCSTR,
00193 SC_RIDING,
00194 SC_FALCON,
00195 SC_PNEUMA,
00196
00197 SC_INCATKRATE = 300,
00198 SC_INCMATKRATE,
00199 SC_INCDEFRATE,
00200 SC_INCHITRATE,
00201 SC_INCFLEERATE,
00202
00203 SC_COMA = 310,
00204
00205 SC_MAX,
00206 };
00207 extern int SkillStatusChangeTable[];
00208
00209 enum {
00210 SI_BLANK = -1,
00211 SI_PROVOKE = 0,
00212 SI_ENDURE = 1,
00213 SI_TWOHANDQUICKEN = 2,
00214 SI_CONCENTRATE = 3,
00215 SI_HIDING = 4,
00216 SI_CLOAKING = 5,
00217 SI_ENCPOISON = 6,
00218 SI_POISONREACT = 7,
00219 SI_QUAGMIRE = 8,
00220 SI_ANGELUS = 9,
00221 SI_BLESSING = 10,
00222 SI_SIGNUMCRUCIS = 11,
00223 SI_INCREASEAGI = 12,
00224 SI_DECREASEAGI = 13,
00225 SI_SLOWPOISON = 14,
00226 SI_IMPOSITIO = 15,
00227 SI_SUFFRAGIUM = 16,
00228 SI_ASPERSIO = 17,
00229 SI_BENEDICTIO = 18,
00230 SI_KYRIE = 19,
00231 SI_MAGNIFICAT = 20,
00232 SI_GLORIA = 21,
00233 SI_AETERNA = 22,
00234 SI_ADRENALINE = 23,
00235 SI_WEAPONPERFECTION = 24,
00236 SI_OVERTHRUST = 25,
00237 SI_MAXIMIZEPOWER = 26,
00238 SI_RIDING = 27,
00239 SI_FALCON = 28,
00240 SI_TRICKDEAD = 29,
00241 SI_LOUD = 30,
00242 SI_ENERGYCOAT = 31,
00243 SI_BROKENARMOR = 32,
00244 SI_BROKENWEAPON = 33,
00245 SI_HALLUCINATION = 34,
00246 SI_WEIGHT50 = 35,
00247 SI_WEIGHT90 = 36,
00248 SI_SPEEDPOTION0 = 37,
00249 SI_SPEEDPOTION1 = 38,
00250 SI_SPEEDPOTION2 = 39,
00251 SI_SPEEDPOTION3 = 40,
00252 SI_SPEEDUP0 = 41,
00253 SI_SPEEDUP1 = 42,
00254 SI_ATKPOT = 43,
00255 SI_MATKPOT = 44,
00256 SI_ANKLE = 47,
00257 SI_STRIPWEAPON = 50,
00258 SI_STRIPSHIELD = 51,
00259 SI_STRIPARMOR = 52,
00260 SI_STRIPHELM = 53,
00261 SI_CP_WEAPON = 54,
00262 SI_CP_SHIELD = 55,
00263 SI_CP_ARMOR = 56,
00264 SI_CP_HELM = 57,
00265 SI_AUTOGUARD = 58,
00266 SI_REFLECTSHIELD = 59,
00267 SI_PROVIDENCE = 61,
00268 SI_DEFENDER = 62,
00269 SI_AUTOSPELL = 65,
00270 SI_SIGHTTRASHER = 66,
00271 SI_AUTOBERSERK = 67,
00272 SI_SPEARQUICKEN = 68,
00273 SI_AUTOCOUNTER = 69,
00274 SI_SIGHT = 70,
00275 SI_SAFETYWALL = 71,
00276 SI_RUWACH = 72,
00277 SI_PNEUMA = 73,
00278 SI_STONE = 74,
00279 SI_FREEZE = 75,
00280 SI_STAN = 76,
00281 SI_SLEEP = 77,
00282 SI_POISON = 78,
00283 SI_CURSE = 79,
00284 SI_SILENCE = 80,
00285 SI_CONFUSION = 81,
00286 SI_BLIND = 82,
00287 SI_DPOISON = 84,
00288 SI_EXPLOSIONSPIRITS = 86,
00289 SI_BLADESTOP_WAIT = 88,
00290 SI_BLADESTOP = 89,
00291 SI_FLAMELAUNCHER = 90,
00292 SI_FROSTWEAPON = 91,
00293 SI_LIGHTNINGLOADER = 92,
00294 SI_SEISMICWEAPON = 93,
00295 SI_VOLCANO = 94,
00296 SI_DELUGE = 95,
00297 SI_VIOLENTGALE = 96,
00298 SI_NOCHAT = 100,
00299 SI_AURABLADE = 103,
00300 SI_PARRYING = 104,
00301 SI_CONCENTRATION = 105,
00302 SI_TENSIONRELAX = 106,
00303 SI_BERSERK = 107,
00304 SI_FURY = 108,
00305 SI_GOSPEL = 109,
00306 SI_ASSUMPTIO = 110,
00307 SI_GUILDAURA = 112,
00308 SI_MAGICPOWER = 113,
00309 SI_EDP = 114,
00310 SI_TRUESIGHT = 115,
00311 SI_WINDWALK = 116,
00312 SI_MELTDOWN = 117,
00313 SI_CARTBOOST = 118,
00314 SI_CHASEWALK = 119,
00315 SI_REJECTSWORD = 120,
00316 SI_MARIONETTE = 121,
00317 SI_MARIONETTE2 = 122,
00318 SI_MOONLIT = 123,
00319 SI_BLEEDING = 124,
00320 SI_JOINTBEAT = 125,
00321 SI_MINDBREAKER = 126,
00322 SI_MEMORIZE = 127,
00323 SI_FOGWALL = 128,
00324 SI_SPIDERWEB = 129,
00325 SI_DEVOTION = 130,
00326 SI_SACRIFICE = 131,
00327 SI_STEELBODY = 132,
00328 SI_WIGGLE = 134,
00329 SI_READYSTORM = 135,
00330 SI_READYDOWN = 137,
00331 SI_READYTURN = 139,
00332 SI_READYCOUNTER = 141,
00333 SI_DODGE = 143,
00334 SI_JUMPKICK = 144,
00335 SI_RUN = 145,
00336 SI_ADRENALINE2 = 147,
00337 SI_NIGHT = 149,
00338 SI_KAIZEL = 156,
00339 SI_KAAHI = 157,
00340 SI_KAUPE = 158,
00341 SI_ONEHAND = 161,
00342 SI_PRESERVE = 181,
00343 SI_BATTLEORDERS = 182,
00344 SI_REGENERATION = 183,
00345 SI_DOUBLECASTING = 186,
00346 SI_GRAVITATION = 187,
00347 SI_MAXOVERTHRUST = 188,
00348 SI_LONGING = 189,
00349 SI_HERMODE = 190,
00350 SI_TAROT = 191,
00351 SI_SHRINK = 197,
00352 SI_SIGHTBLASTER = 198,
00353 SI_WINKCHARM = 199,
00354 SI_CLOSECONFINE = 200,
00355 SI_CLOSECONFINE2 = 201,
00356 };
00357 extern int StatusIconChangeTable[];
00358
00359 extern int percentrefinery[5][10];
00360
00361 extern int inv_index;
00362
00363 int status_getrefinebonus(int lv, int type);
00364 int status_percentrefinery(struct map_session_data *sd, struct item *item);
00365
00366 int status_calc_pc(struct map_session_data*, int);
00367 int status_calc_speed(struct map_session_data*);
00368 int status_get_class(struct block_list *bl);
00369 int status_get_dir(struct block_list *bl);
00370 int status_get_lv(struct block_list *bl);
00371 int status_get_range(struct block_list *bl);
00372 int status_get_hp(struct block_list *bl);
00373 int status_get_max_hp(struct block_list *bl);
00374 int status_get_str(struct block_list *bl);
00375 int status_get_agi(struct block_list *bl);
00376 int status_get_vit(struct block_list *bl);
00377 int status_get_int(struct block_list *bl);
00378 int status_get_dex(struct block_list *bl);
00379 int status_get_luk(struct block_list *bl);
00380 int status_get_hit(struct block_list *bl);
00381 int status_get_flee(struct block_list *bl);
00382 int status_get_def(struct block_list *bl);
00383 int status_get_mdef(struct block_list *bl);
00384 int status_get_flee2(struct block_list *bl);
00385 int status_get_critical(struct block_list *bl);
00386 int status_get_def2(struct block_list *bl);
00387 int status_get_mdef2(struct block_list *bl);
00388 int status_get_baseatk(struct block_list *bl);
00389 int status_get_atk(struct block_list *bl);
00390 int status_get_atk_(struct block_list *bl);
00391 int status_get_atk2(struct block_list *bl);
00392 int status_get_atk_2(struct block_list *bl);
00393 int status_get_matk1(struct block_list *bl);
00394 int status_get_matk2(struct block_list *bl);
00395 int status_get_speed(struct block_list *bl);
00396 int status_get_adelay(struct block_list *bl);
00397 int status_get_amotion(struct block_list *bl);
00398 int status_get_dmotion(struct block_list *bl);
00399 int status_get_element(struct block_list *bl);
00400 int status_get_attack_element(struct block_list *bl);
00401 int status_get_attack_element2(struct block_list *bl);
00402 #define status_get_elem_type(bl) (status_get_element(bl) % 10)
00403 #define status_get_elem_level(bl) (status_get_element(bl) / 10 / 2)
00404 int status_get_party_id(struct block_list *bl);
00405 int status_get_guild_id(struct block_list *bl);
00406 int status_get_race(struct block_list *bl);
00407 int status_get_size(struct block_list *bl);
00408 int status_get_mode(struct block_list *bl);
00409
00410 int status_get_race2(struct block_list *bl);
00411 int status_isdead(struct block_list *bl);
00412
00413 struct status_change *status_get_sc_data(struct block_list *bl);
00414 short *status_get_sc_count(struct block_list *bl);
00415 short *status_get_opt1(struct block_list *bl);
00416 short *status_get_opt2(struct block_list *bl);
00417 short *status_get_opt3(struct block_list *bl);
00418 short *status_get_option(struct block_list *bl);
00419
00420 int status_get_sc_def(struct block_list *bl, int type);
00421 #define status_get_sc_def_mdef(bl) (status_get_sc_def(bl, SP_MDEF1))
00422 #define status_get_sc_def_vit(bl) (status_get_sc_def(bl, SP_DEF2))
00423 #define status_get_sc_def_int(bl) (status_get_sc_def(bl, SP_MDEF2))
00424 #define status_get_sc_def_luk(bl) (status_get_sc_def(bl, SP_LUK))
00425
00426 int status_change_start(struct block_list *bl, int type, intptr_t val1, intptr_t val2, intptr_t val3, intptr_t val4, int tick, int flag);
00427 int status_change_clear(struct block_list *bl, int type);
00428 int status_change_end(struct block_list* bl, int type, int tid);
00429 TIMER_FUNC(status_change_timer);
00430 int status_change_timer_sub(struct block_list *bl, va_list ap);
00431
00432 int status_change_clear_buffs(struct block_list *bl);
00433 int status_change_clear_debuffs(struct block_list *bl);
00434
00435 int do_init_status(void);
00436
00437 #endif