status.h 59 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311
  1. // Copyright (c) Athena Dev Teams - Licensed under GNU GPL
  2. // For more information, see LICENCE in the main folder
  3. #ifndef _STATUS_H_
  4. #define _STATUS_H_
  5. struct block_list;
  6. struct mob_data;
  7. struct pet_data;
  8. struct homun_data;
  9. struct mercenary_data;
  10. struct elemental_data;
  11. struct npc_data;
  12. struct status_change;
  13. /**
  14. * Max Refine available to your server
  15. * Changing this limit requires edits to refine_db.txt
  16. **/
  17. #ifdef RENEWAL
  18. # define MAX_REFINE 20
  19. #else
  20. # define MAX_REFINE 10
  21. #endif
  22. /// Refine type
  23. enum refine_type {
  24. REFINE_TYPE_ARMOR = 0,
  25. REFINE_TYPE_WEAPON1 = 1,
  26. REFINE_TYPE_WEAPON2 = 2,
  27. REFINE_TYPE_WEAPON3 = 3,
  28. REFINE_TYPE_WEAPON4 = 4,
  29. REFINE_TYPE_MAX = 5
  30. };
  31. /// Get refine chance
  32. int status_get_refine_chance(enum refine_type wlv, int refine);
  33. /// Status changes listing. These code are for use by the server.
  34. typedef enum sc_type {
  35. SC_NONE = -1,
  36. //First we enumerate common status ailments which are often used around.
  37. SC_STONE = 0,
  38. SC_COMMON_MIN = 0, // begin
  39. SC_FREEZE,
  40. SC_STUN,
  41. SC_SLEEP,
  42. SC_POISON,
  43. SC_CURSE,
  44. SC_SILENCE,
  45. SC_CONFUSION,
  46. SC_BLIND,
  47. SC_BLEEDING,
  48. SC_DPOISON, //10
  49. SC_COMMON_MAX = 10, // end
  50. //Next up, we continue on 20, to leave enough room for additional "common" ailments in the future.
  51. SC_PROVOKE = 20,
  52. SC_ENDURE,
  53. SC_TWOHANDQUICKEN,
  54. SC_CONCENTRATE,
  55. SC_HIDING,
  56. SC_CLOAKING,
  57. SC_ENCPOISON,
  58. SC_POISONREACT,
  59. SC_QUAGMIRE,
  60. SC_ANGELUS,
  61. SC_BLESSING, //30
  62. SC_SIGNUMCRUCIS,
  63. SC_INCREASEAGI,
  64. SC_DECREASEAGI,
  65. SC_SLOWPOISON,
  66. SC_IMPOSITIO ,
  67. SC_SUFFRAGIUM,
  68. SC_ASPERSIO,
  69. SC_BENEDICTIO,
  70. SC_KYRIE,
  71. SC_MAGNIFICAT, //40
  72. SC_GLORIA,
  73. SC_AETERNA,
  74. SC_ADRENALINE,
  75. SC_WEAPONPERFECTION,
  76. SC_OVERTHRUST,
  77. SC_MAXIMIZEPOWER,
  78. SC_TRICKDEAD,
  79. SC_LOUD,
  80. SC_ENERGYCOAT,
  81. SC_BROKENARMOR, //50 - NOTE: These two aren't used anywhere, and they have an icon...
  82. SC_BROKENWEAPON,
  83. SC_HALLUCINATION,
  84. SC_WEIGHT50,
  85. SC_WEIGHT90,
  86. SC_ASPDPOTION0,
  87. SC_ASPDPOTION1,
  88. SC_ASPDPOTION2,
  89. SC_ASPDPOTION3,
  90. SC_SPEEDUP0,
  91. SC_SPEEDUP1, //60
  92. SC_ATKPOTION,
  93. SC_MATKPOTION,
  94. SC_WEDDING,
  95. SC_SLOWDOWN,
  96. SC_ANKLE,
  97. SC_KEEPING,
  98. SC_BARRIER,
  99. SC_STRIPWEAPON,
  100. SC_STRIPSHIELD,
  101. SC_STRIPARMOR, //70
  102. SC_STRIPHELM,
  103. SC_CP_WEAPON,
  104. SC_CP_SHIELD,
  105. SC_CP_ARMOR,
  106. SC_CP_HELM,
  107. SC_AUTOGUARD,
  108. SC_REFLECTSHIELD,
  109. SC_SPLASHER,
  110. SC_PROVIDENCE,
  111. SC_DEFENDER, //80
  112. SC_MAGICROD,
  113. SC_SPELLBREAKER,
  114. SC_AUTOSPELL,
  115. SC_SIGHTTRASHER,
  116. SC_AUTOBERSERK,
  117. SC_SPEARQUICKEN,
  118. SC_AUTOCOUNTER,
  119. SC_SIGHT,
  120. SC_SAFETYWALL,
  121. SC_RUWACH, //90
  122. SC_EXTREMITYFIST,
  123. SC_EXPLOSIONSPIRITS,
  124. SC_COMBO,
  125. SC_BLADESTOP_WAIT,
  126. SC_BLADESTOP,
  127. SC_FIREWEAPON,
  128. SC_WATERWEAPON,
  129. SC_WINDWEAPON,
  130. SC_EARTHWEAPON,
  131. SC_VOLCANO, //100,
  132. SC_DELUGE,
  133. SC_VIOLENTGALE,
  134. SC_WATK_ELEMENT,
  135. SC_ARMOR,
  136. SC_ARMOR_ELEMENT,
  137. SC_NOCHAT,
  138. SC_BABY,
  139. SC_AURABLADE,
  140. SC_PARRYING,
  141. SC_CONCENTRATION, //110
  142. SC_TENSIONRELAX,
  143. SC_BERSERK,
  144. SC_FURY,
  145. SC_GOSPEL,
  146. SC_ASSUMPTIO,
  147. SC_BASILICA,
  148. SC_GUILDAURA,
  149. SC_MAGICPOWER,
  150. SC_EDP,
  151. SC_TRUESIGHT, //120
  152. SC_WINDWALK,
  153. SC_MELTDOWN,
  154. SC_CARTBOOST,
  155. SC_CHASEWALK,
  156. SC_REJECTSWORD,
  157. SC_MARIONETTE,
  158. SC_MARIONETTE2,
  159. SC_CHANGEUNDEAD,
  160. SC_JOINTBEAT,
  161. SC_MINDBREAKER, //130
  162. SC_MEMORIZE,
  163. SC_FOGWALL,
  164. SC_SPIDERWEB,
  165. SC_DEVOTION,
  166. SC_SACRIFICE,
  167. SC_STEELBODY,
  168. SC_ORCISH,
  169. SC_READYSTORM,
  170. SC_READYDOWN,
  171. SC_READYTURN, //140
  172. SC_READYCOUNTER,
  173. SC_DODGE,
  174. SC_RUN,
  175. SC_SHADOWWEAPON,
  176. SC_ADRENALINE2,
  177. SC_GHOSTWEAPON,
  178. SC_KAIZEL,
  179. SC_KAAHI,
  180. SC_KAUPE,
  181. SC_ONEHAND, //150
  182. SC_PRESERVE,
  183. SC_BATTLEORDERS,
  184. SC_REGENERATION,
  185. SC_DOUBLECAST,
  186. SC_GRAVITATION,
  187. SC_MAXOVERTHRUST,
  188. SC_LONGING,
  189. SC_HERMODE,
  190. SC_SHRINK,
  191. SC_SIGHTBLASTER, //160
  192. SC_WINKCHARM,
  193. SC_CLOSECONFINE,
  194. SC_CLOSECONFINE2,
  195. SC_DANCING,
  196. SC_ELEMENTALCHANGE,
  197. SC_RICHMANKIM,
  198. SC_ETERNALCHAOS,
  199. SC_DRUMBATTLE,
  200. SC_NIBELUNGEN,
  201. SC_ROKISWEIL, //170
  202. SC_INTOABYSS,
  203. SC_SIEGFRIED,
  204. SC_WHISTLE,
  205. SC_ASSNCROS,
  206. SC_POEMBRAGI,
  207. SC_APPLEIDUN,
  208. SC_MODECHANGE,
  209. SC_HUMMING,
  210. SC_DONTFORGETME,
  211. SC_FORTUNE, //180
  212. SC_SERVICE4U,
  213. SC_STOP, //Prevents inflicted chars from walking. [Skotlex]
  214. SC_SPURT,
  215. SC_SPIRIT,
  216. SC_COMA, //Not a real SC_, it makes a char's HP/SP hit 1.
  217. SC_INTRAVISION,
  218. SC_INCALLSTATUS,
  219. SC_INCSTR,
  220. SC_INCAGI,
  221. SC_INCVIT, //190
  222. SC_INCINT,
  223. SC_INCDEX,
  224. SC_INCLUK,
  225. SC_INCHIT,
  226. SC_INCHITRATE,
  227. SC_INCFLEE,
  228. SC_INCFLEERATE,
  229. SC_INCMHPRATE,
  230. SC_INCMSPRATE,
  231. SC_INCATKRATE, //200
  232. SC_INCMATKRATE,
  233. SC_INCDEFRATE,
  234. SC_STRFOOD,
  235. SC_AGIFOOD,
  236. SC_VITFOOD,
  237. SC_INTFOOD,
  238. SC_DEXFOOD,
  239. SC_LUKFOOD,
  240. SC_HITFOOD,
  241. SC_FLEEFOOD, //210
  242. SC_BATKFOOD,
  243. SC_WATKFOOD,
  244. SC_MATKFOOD,
  245. SC_SCRESIST, //Increases resistance to status changes.
  246. SC_XMAS, // Xmas Suit [Valaris]
  247. SC_WARM, //SG skills [Komurka]
  248. SC_SUN_COMFORT,
  249. SC_MOON_COMFORT,
  250. SC_STAR_COMFORT,
  251. SC_FUSION, //220
  252. SC_SKILLRATE_UP,
  253. SC_SKE,
  254. SC_KAITE,
  255. SC_SWOO, // [marquis007]
  256. SC_SKA, // [marquis007]
  257. SC_EARTHSCROLL,
  258. SC_MIRACLE, //SG 'hidden' skill [Komurka]
  259. SC_MADNESSCANCEL,
  260. SC_ADJUSTMENT,
  261. SC_INCREASING, //230
  262. SC_GATLINGFEVER,
  263. SC_TATAMIGAESHI,
  264. SC_UTSUSEMI,
  265. SC_BUNSINJYUTSU,
  266. SC_KAENSIN,
  267. SC_SUITON,
  268. SC_NEN,
  269. SC_KNOWLEDGE,
  270. SC_SMA,
  271. SC_FLING, //240
  272. SC_AVOID,
  273. SC_CHANGE,
  274. SC_BLOODLUST,
  275. SC_FLEET,
  276. SC_SPEED,
  277. SC_DEFENCE,
  278. SC_INCASPDRATE,
  279. SC_INCFLEE2 = 248,
  280. SC_JAILED,
  281. SC_ENCHANTARMS, //250
  282. SC_MAGICALATTACK,
  283. SC_ARMORCHANGE,
  284. SC_CRITICALWOUND,
  285. SC_MAGICMIRROR,
  286. SC_SLOWCAST,
  287. SC_SUMMER,
  288. SC_EXPBOOST,
  289. SC_ITEMBOOST,
  290. SC_BOSSMAPINFO,
  291. SC_LIFEINSURANCE, //260
  292. SC_INCCRI,
  293. //SC_INCDEF,
  294. //SC_INCBASEATK = 263,
  295. //SC_FASTCAST,
  296. SC_MDEF_RATE = 265,
  297. //SC_HPREGEN,
  298. SC_INCHEALRATE = 267,
  299. SC_PNEUMA,
  300. SC_AUTOTRADE,
  301. SC_KSPROTECTED, //270
  302. SC_ARMOR_RESIST = 271,
  303. SC_SPCOST_RATE,
  304. SC_COMMONSC_RESIST,
  305. SC_SEVENWIND,
  306. SC_DEF_RATE,
  307. //SC_SPREGEN,
  308. SC_WALKSPEED = 277,
  309. // Mercenary Only Bonus Effects
  310. SC_MERC_FLEEUP,
  311. SC_MERC_ATKUP,
  312. SC_MERC_HPUP, //280
  313. SC_MERC_SPUP,
  314. SC_MERC_HITUP,
  315. SC_MERC_QUICKEN,
  316. SC_REBIRTH,
  317. //SC_SKILLCASTRATE, //285
  318. //SC_DEFRATIOATK,
  319. //SC_HPDRAIN,
  320. //SC_SKILLATKBONUS,
  321. SC_ITEMSCRIPT = 289,
  322. SC_S_LIFEPOTION, //290
  323. SC_L_LIFEPOTION,
  324. SC_JEXPBOOST,
  325. //SC_IGNOREDEF,
  326. SC_HELLPOWER = 294,
  327. SC_INVINCIBLE, //295
  328. SC_INVINCIBLEOFF,
  329. SC_MANU_ATK,
  330. SC_MANU_DEF,
  331. SC_SPL_ATK,
  332. SC_SPL_DEF, //300
  333. SC_MANU_MATK,
  334. SC_SPL_MATK,
  335. SC_FOOD_STR_CASH,
  336. SC_FOOD_AGI_CASH,
  337. SC_FOOD_VIT_CASH,
  338. SC_FOOD_DEX_CASH,
  339. SC_FOOD_INT_CASH,
  340. SC_FOOD_LUK_CASH,//308
  341. /**
  342. * 3rd
  343. **/
  344. SC_FEAR,//309
  345. SC_BURNING,//310
  346. SC_FREEZING,//311
  347. /**
  348. * Rune Knight
  349. **/
  350. SC_ENCHANTBLADE,//312
  351. SC_DEATHBOUND,//313
  352. SC_MILLENNIUMSHIELD,
  353. SC_CRUSHSTRIKE,//315
  354. SC_REFRESH,
  355. SC_REUSE_REFRESH,
  356. SC_GIANTGROWTH,
  357. SC_STONEHARDSKIN,
  358. SC_VITALITYACTIVATION,//320
  359. SC_STORMBLAST,
  360. SC_FIGHTINGSPIRIT,
  361. SC_ABUNDANCE,
  362. /**
  363. * Arch Bishop
  364. **/
  365. SC_ADORAMUS,
  366. SC_EPICLESIS,//325
  367. SC_ORATIO,
  368. SC_LAUDAAGNUS,
  369. SC_LAUDARAMUS,
  370. SC_RENOVATIO,
  371. SC_EXPIATIO,//330
  372. SC_DUPLELIGHT,
  373. SC_SECRAMENT,
  374. /**
  375. * Warlock
  376. **/
  377. SC_WHITEIMPRISON,
  378. SC_MARSHOFABYSS,
  379. SC_RECOGNIZEDSPELL,//335
  380. SC_STASIS,
  381. SC_SPHERE_1,
  382. SC_SPHERE_2,
  383. SC_SPHERE_3,
  384. SC_SPHERE_4,//340
  385. SC_SPHERE_5,
  386. SC_READING_SB,
  387. SC_FREEZE_SP,
  388. /**
  389. * Ranger
  390. **/
  391. SC_FEARBREEZE,
  392. SC_ELECTRICSHOCKER,//345
  393. SC_WUGDASH,
  394. SC_BITE,
  395. SC_CAMOUFLAGE,
  396. /**
  397. * Mechanic
  398. **/
  399. SC_ACCELERATION,
  400. SC_HOVERING,//350
  401. SC_SHAPESHIFT,
  402. SC_INFRAREDSCAN,
  403. SC_ANALYZE,
  404. SC_MAGNETICFIELD,
  405. SC_NEUTRALBARRIER,//355
  406. SC_NEUTRALBARRIER_MASTER,
  407. SC_STEALTHFIELD,
  408. SC_STEALTHFIELD_MASTER,
  409. SC_OVERHEAT,
  410. SC_OVERHEAT_LIMITPOINT,//360
  411. /**
  412. * Guillotine Cross
  413. **/
  414. SC_VENOMIMPRESS,
  415. SC_POISONINGWEAPON,
  416. SC_WEAPONBLOCKING,
  417. SC_CLOAKINGEXCEED,
  418. SC_HALLUCINATIONWALK,//365
  419. SC_HALLUCINATIONWALK_POSTDELAY,
  420. SC_ROLLINGCUTTER,
  421. SC_TOXIN,
  422. SC_PARALYSE,
  423. SC_VENOMBLEED,//370
  424. SC_MAGICMUSHROOM,
  425. SC_DEATHHURT,
  426. SC_PYREXIA,
  427. SC_OBLIVIONCURSE,
  428. SC_LEECHESEND,//375
  429. /**
  430. * Royal Guard
  431. **/
  432. SC_REFLECTDAMAGE,
  433. SC_FORCEOFVANGUARD,
  434. SC_SHIELDSPELL_DEF,
  435. SC_SHIELDSPELL_MDEF,
  436. SC_SHIELDSPELL_REF,//380
  437. SC_EXEEDBREAK,
  438. SC_PRESTIGE,
  439. SC_BANDING,
  440. SC_BANDING_DEFENCE,
  441. SC_EARTHDRIVE,//385
  442. SC_INSPIRATION,
  443. /**
  444. * Sorcerer
  445. **/
  446. SC_SPELLFIST,
  447. SC_CRYSTALIZE,
  448. SC_STRIKING,
  449. SC_WARMER,//390
  450. SC_VACUUM_EXTREME,
  451. SC_PROPERTYWALK,
  452. /**
  453. * Minstrel / Wanderer
  454. **/
  455. SC_SWINGDANCE,
  456. SC_SYMPHONYOFLOVER,
  457. SC_MOONLITSERENADE,//395
  458. SC_RUSHWINDMILL,
  459. SC_ECHOSONG,
  460. SC_HARMONIZE,
  461. SC_VOICEOFSIREN,
  462. SC_DEEPSLEEP,//400
  463. SC_SIRCLEOFNATURE,
  464. SC_GLOOMYDAY,
  465. SC_GLOOMYDAY_SK,
  466. SC_SONGOFMANA,
  467. SC_DANCEWITHWUG,//405
  468. SC_SATURDAYNIGHTFEVER,
  469. SC_LERADSDEW,
  470. SC_MELODYOFSINK,
  471. SC_BEYONDOFWARCRY,
  472. SC_UNLIMITEDHUMMINGVOICE,//410
  473. SC_SITDOWN_FORCE,
  474. SC_NETHERWORLD,
  475. /**
  476. * Sura
  477. **/
  478. SC_CRESCENTELBOW,
  479. SC_CURSEDCIRCLE_ATKER,
  480. SC_CURSEDCIRCLE_TARGET,
  481. SC_LIGHTNINGWALK,//416
  482. SC_RAISINGDRAGON,
  483. SC_GT_ENERGYGAIN,
  484. SC_GT_CHANGE,
  485. SC_GT_REVITALIZE,
  486. /**
  487. * Genetic
  488. **/
  489. SC_GN_CARTBOOST,//421
  490. SC_THORNSTRAP,
  491. SC_BLOODSUCKER,
  492. SC_SMOKEPOWDER,
  493. SC_TEARGAS,
  494. SC_MANDRAGORA,//426
  495. SC_STOMACHACHE,
  496. SC_MYSTERIOUS_POWDER,
  497. SC_MELON_BOMB,
  498. SC_BANANA_BOMB,
  499. SC_BANANA_BOMB_SITDOWN,//431
  500. SC_SAVAGE_STEAK,
  501. SC_COCKTAIL_WARG_BLOOD,
  502. SC_MINOR_BBQ,
  503. SC_SIROMA_ICE_TEA,
  504. SC_DROCERA_HERB_STEAMED,//436
  505. SC_PUTTI_TAILS_NOODLES,
  506. SC_BOOST500,
  507. SC_FULL_SWING_K,
  508. SC_MANA_PLUS,
  509. SC_MUSTLE_M,//441
  510. SC_LIFE_FORCE_F,
  511. SC_EXTRACT_WHITE_POTION_Z,
  512. SC_VITATA_500,
  513. SC_EXTRACT_SALAMINE_JUICE,
  514. /**
  515. * Shadow Chaser
  516. **/
  517. SC__REPRODUCE,//446
  518. SC__AUTOSHADOWSPELL,
  519. SC__SHADOWFORM,
  520. SC__BODYPAINT,
  521. SC__INVISIBILITY,
  522. SC__DEADLYINFECT,//451
  523. SC__ENERVATION,
  524. SC__GROOMY,
  525. SC__IGNORANCE,
  526. SC__LAZINESS,
  527. SC__UNLUCKY,//456
  528. SC__WEAKNESS,
  529. SC__STRIPACCESSORY,
  530. SC__MANHOLE,
  531. SC__BLOODYLUST,//460
  532. /**
  533. * Elemental Spirits
  534. **/
  535. SC_CIRCLE_OF_FIRE,
  536. SC_CIRCLE_OF_FIRE_OPTION,
  537. SC_FIRE_CLOAK,
  538. SC_FIRE_CLOAK_OPTION,
  539. SC_WATER_SCREEN,//465
  540. SC_WATER_SCREEN_OPTION,
  541. SC_WATER_DROP,
  542. SC_WATER_DROP_OPTION,
  543. SC_WATER_BARRIER,
  544. SC_WIND_STEP,//470
  545. SC_WIND_STEP_OPTION,
  546. SC_WIND_CURTAIN,
  547. SC_WIND_CURTAIN_OPTION,
  548. SC_ZEPHYR,
  549. SC_SOLID_SKIN,//475
  550. SC_SOLID_SKIN_OPTION,
  551. SC_STONE_SHIELD,
  552. SC_STONE_SHIELD_OPTION,
  553. SC_POWER_OF_GAIA,
  554. SC_PYROTECHNIC,//480
  555. SC_PYROTECHNIC_OPTION,
  556. SC_HEATER,
  557. SC_HEATER_OPTION,
  558. SC_TROPIC,
  559. SC_TROPIC_OPTION,//485
  560. SC_AQUAPLAY,
  561. SC_AQUAPLAY_OPTION,
  562. SC_COOLER,
  563. SC_COOLER_OPTION,
  564. SC_CHILLY_AIR,//490
  565. SC_CHILLY_AIR_OPTION,
  566. SC_GUST,
  567. SC_GUST_OPTION,
  568. SC_BLAST,
  569. SC_BLAST_OPTION,//495
  570. SC_WILD_STORM,
  571. SC_WILD_STORM_OPTION,
  572. SC_PETROLOGY,
  573. SC_PETROLOGY_OPTION,
  574. SC_CURSED_SOIL,//500
  575. SC_CURSED_SOIL_OPTION,
  576. SC_UPHEAVAL,
  577. SC_UPHEAVAL_OPTION,
  578. SC_TIDAL_WEAPON,
  579. SC_TIDAL_WEAPON_OPTION,//505
  580. SC_ROCK_CRUSHER,
  581. SC_ROCK_CRUSHER_ATK,
  582. /* Guild Aura */
  583. SC_LEADERSHIP,
  584. SC_GLORYWOUNDS,
  585. SC_SOULCOLD, //508
  586. SC_HAWKEYES,
  587. /* ... */
  588. SC_ODINS_POWER,
  589. SC_RAID,
  590. /* Sorcerer .extra */
  591. SC_FIRE_INSIGNIA,
  592. SC_WATER_INSIGNIA,
  593. SC_WIND_INSIGNIA, //516
  594. SC_EARTH_INSIGNIA,
  595. /* new pushcart */
  596. SC_PUSH_CART,
  597. /* Warlock Spell books */
  598. SC_SPELLBOOK1,
  599. SC_SPELLBOOK2,
  600. SC_SPELLBOOK3,
  601. SC_SPELLBOOK4,
  602. SC_SPELLBOOK5,
  603. SC_SPELLBOOK6,
  604. /**
  605. * In official server there are only 7 maximum number of spell books that can be memorized
  606. * To increase the maximum value just add another status type before SC_MAXSPELLBOOK (ex. SC_SPELLBOOK7, SC_SPELLBOOK8 and so on)
  607. **/
  608. SC_MAXSPELLBOOK,
  609. /* Max HP & SP */
  610. SC_INCMHP,
  611. SC_INCMSP,
  612. SC_PARTYFLEE, // 531
  613. /**
  614. * Kagerou & Oboro [malufett]
  615. **/
  616. SC_MEIKYOUSISUI,
  617. SC_JYUMONJIKIRI,
  618. SC_KYOUGAKU,
  619. SC_IZAYOI,
  620. SC_ZENKAI,
  621. SC_KAGEHUMI,
  622. SC_KYOMU,
  623. SC_KAGEMUSYA,
  624. SC_ZANGETSU,
  625. SC_GENSOU,
  626. SC_AKAITSUKI,
  627. //homon S
  628. SC_STYLE_CHANGE,
  629. SC_TINDER_BREAKER,
  630. SC_TINDER_BREAKER2,
  631. SC_CBC,
  632. SC_EQC,
  633. SC_GOLDENE_FERSE,
  634. SC_ANGRIFFS_MODUS,
  635. SC_OVERED_BOOST,
  636. SC_LIGHT_OF_REGENE,
  637. SC_ASH,
  638. SC_GRANITIC_ARMOR,
  639. SC_MAGMA_FLOW,
  640. SC_PYROCLASTIC,
  641. SC_PARALYSIS,
  642. SC_PAIN_KILLER,
  643. SC_HANBOK,
  644. //Vellum Weapon reductions
  645. SC_DEFSET,
  646. SC_MDEFSET,
  647. SC_DARKCROW,
  648. SC_FULL_THROTTLE,
  649. SC_REBOUND,
  650. SC_UNLIMIT,
  651. SC_KINGS_GRACE,
  652. SC_TELEKINESIS_INTENSE,
  653. SC_OFFERTORIUM,
  654. SC_FRIGG_SONG,
  655. SC_MONSTER_TRANSFORM,
  656. SC_ANGEL_PROTECT,
  657. SC_ILLUSIONDOPING,
  658. SC_FLASHCOMBO,
  659. SC_MOONSTAR,
  660. SC_SUPER_STAR,
  661. /**
  662. * Rebellion [Cydh]
  663. **/
  664. SC_HEAT_BARREL,
  665. SC_HEAT_BARREL_AFTER,
  666. SC_P_ALTER,
  667. SC_E_CHAIN,
  668. SC_C_MARKER,
  669. SC_ANTI_M_BLAST,
  670. SC_B_TRAP,
  671. SC_H_MINE,
  672. SC_QD_SHOT_READY,
  673. SC_MTF_ASPD,
  674. SC_MTF_RANGEATK,
  675. SC_MTF_MATK,
  676. SC_MTF_MLEATKED,
  677. SC_MTF_CRIDAMAGE,
  678. SC_OKTOBERFEST,
  679. SC_STRANGELIGHTS,
  680. SC_DECORATION_OF_MUSIC,
  681. SC_QUEST_BUFF1,
  682. SC_QUEST_BUFF2,
  683. SC_QUEST_BUFF3,
  684. SC_ALL_RIDING,
  685. SC_TEARGAS_SOB,
  686. SC__FEINTBOMB,
  687. SC__CHAOS,
  688. SC_CHASEWALK2,
  689. SC_VACUUM_EXTREME_POSTDELAY,
  690. SC_MTF_ASPD2,
  691. SC_MTF_RANGEATK2,
  692. SC_MTF_MATK2,
  693. SC_2011RWC_SCROLL,
  694. SC_JP_EVENT04,
  695. // 2014 Halloween Event
  696. SC_MTF_MHP,
  697. SC_MTF_MSP,
  698. SC_MTF_PUMPKIN,
  699. SC_MTF_HITFLEE,
  700. SC_CRIFOOD,
  701. SC_ATTHASTE_CASH,
  702. // Item Reuse Limits
  703. SC_REUSE_LIMIT_A,
  704. SC_REUSE_LIMIT_B,
  705. SC_REUSE_LIMIT_C,
  706. SC_REUSE_LIMIT_D,
  707. SC_REUSE_LIMIT_E,
  708. SC_REUSE_LIMIT_F,
  709. SC_REUSE_LIMIT_G,
  710. SC_REUSE_LIMIT_H,
  711. SC_REUSE_LIMIT_MTF,
  712. SC_REUSE_LIMIT_ASPD_POTION,
  713. SC_REUSE_MILLENNIUMSHIELD,
  714. SC_REUSE_CRUSHSTRIKE,
  715. SC_REUSE_STORMBLAST,
  716. SC_ALL_RIDING_REUSE_LIMIT,
  717. SC_REUSE_LIMIT_ECL,
  718. SC_REUSE_LIMIT_RECALL,
  719. SC_PROMOTE_HEALTH_RESERCH,
  720. SC_ENERGY_DRINK_RESERCH,
  721. SC_NORECOVER_STATE,
  722. /**
  723. * Summoner
  724. */
  725. SC_SUHIDE,
  726. SC_SU_STOOP,
  727. SC_SPRITEMABLE,
  728. SC_CATNIPPOWDER,
  729. SC_SV_ROOTTWIST,
  730. SC_BITESCAR,
  731. SC_ARCLOUSEDASH,
  732. SC_TUNAPARTY,
  733. SC_SHRIMP,
  734. SC_FRESHSHRIMP,
  735. SC_ACTIVE_MONSTER_TRANSFORM,
  736. SC_CLOUD_KILL,
  737. SC_LJOSALFAR,
  738. SC_MERMAID_LONGING,
  739. SC_HAT_EFFECT,
  740. SC_FLOWERSMOKE,
  741. SC_FSTONE,
  742. SC_HAPPINESS_STAR,
  743. SC_MAPLE_FALLS,
  744. SC_TIME_ACCESSORY,
  745. SC_MAGICAL_FEATHER,
  746. SC_GVG_GIANT,
  747. SC_GVG_GOLEM,
  748. SC_GVG_STUN,
  749. SC_GVG_STONE,
  750. SC_GVG_FREEZ,
  751. SC_GVG_SLEEP,
  752. SC_GVG_CURSE,
  753. SC_GVG_SILENCE,
  754. SC_GVG_BLIND,
  755. #ifdef RENEWAL
  756. SC_EXTREMITYFIST2, //! NOTE: This SC should be right before SC_MAX, so it doesn't disturb if RENEWAL is disabled
  757. #endif
  758. SC_MAX, //Automatically updated max, used in for's to check we are within bounds.
  759. } sc_type;
  760. /// Official status change ids, used to display status icons on the client.
  761. enum si_type {
  762. SI_BLANK = -1,
  763. SI_PROVOKE = 0,
  764. SI_ENDURE = 1,
  765. SI_TWOHANDQUICKEN = 2,
  766. SI_CONCENTRATE = 3,
  767. SI_HIDING = 4,
  768. SI_CLOAKING = 5,
  769. SI_ENCPOISON = 6,
  770. SI_POISONREACT = 7,
  771. SI_QUAGMIRE = 8,
  772. SI_ANGELUS = 9,
  773. SI_BLESSING = 10,
  774. SI_SIGNUMCRUCIS = 11,
  775. SI_INCREASEAGI = 12,
  776. SI_DECREASEAGI = 13,
  777. SI_SLOWPOISON = 14,
  778. SI_IMPOSITIO = 15,
  779. SI_SUFFRAGIUM = 16,
  780. SI_ASPERSIO = 17,
  781. SI_BENEDICTIO = 18,
  782. SI_KYRIE = 19,
  783. SI_MAGNIFICAT = 20,
  784. SI_GLORIA = 21,
  785. SI_AETERNA = 22,
  786. SI_ADRENALINE = 23,
  787. SI_WEAPONPERFECTION = 24,
  788. SI_OVERTHRUST = 25,
  789. SI_MAXIMIZEPOWER = 26,
  790. SI_RIDING = 27,
  791. SI_FALCON = 28,
  792. SI_TRICKDEAD = 29,
  793. SI_LOUD = 30,
  794. SI_ENERGYCOAT = 31,
  795. SI_BROKENARMOR = 32,
  796. SI_BROKENWEAPON = 33,
  797. SI_HALLUCINATION = 34,
  798. SI_WEIGHT50 = 35,
  799. SI_WEIGHT90 = 36,
  800. SI_ASPDPOTION0 = 37,
  801. SI_ASPDPOTION1 = 38,
  802. SI_ASPDPOTION2 = 39,
  803. SI_ASPDPOTIONINFINITY = 40,
  804. SI_SPEEDPOTION1 = 41,
  805. // SI_MOVHASTE_INFINITY = 42,
  806. SI_AUTOCOUNTER = 43,
  807. SI_SPLASHER = 44,
  808. SI_ANKLESNARE = 45,
  809. SI_ACTIONDELAY = 46,
  810. // SI_NOACTION = 47,
  811. // SI_IMPOSSIBLEPICKUP = 48,
  812. SI_BARRIER = 49,
  813. SI_STRIPWEAPON = 50,
  814. SI_STRIPSHIELD = 51,
  815. SI_STRIPARMOR = 52,
  816. SI_STRIPHELM = 53,
  817. SI_CP_WEAPON = 54,
  818. SI_CP_SHIELD = 55,
  819. SI_CP_ARMOR = 56,
  820. SI_CP_HELM = 57,
  821. SI_AUTOGUARD = 58,
  822. SI_REFLECTSHIELD = 59,
  823. SI_DEVOTION = 60,
  824. SI_PROVIDENCE = 61,
  825. SI_DEFENDER = 62,
  826. SI_MAGICROD = 63,
  827. // SI_WEAPONPROPERTY = 64,
  828. SI_AUTOSPELL = 65,
  829. // SI_SPECIALZONE = 66,
  830. // SI_MASK = 67,
  831. SI_SPEARQUICKEN = 68,
  832. SI_BDPLAYING = 69,
  833. SI_WHISTLE = 70,
  834. SI_ASSASSINCROSS = 71,
  835. SI_POEMBRAGI = 72,
  836. SI_APPLEIDUN = 73,
  837. SI_HUMMING = 74,
  838. SI_DONTFORGETME = 75,
  839. SI_FORTUNEKISS = 76,
  840. SI_SERVICEFORYOU = 77,
  841. SI_RICHMANKIM = 78,
  842. SI_ETERNALCHAOS = 79,
  843. SI_DRUMBATTLEFIELD = 80,
  844. SI_RINGNIBELUNGEN = 81,
  845. SI_ROKISWEIL = 82,
  846. SI_INTOABYSS = 83,
  847. SI_SIEGFRIED = 84,
  848. SI_BLADESTOP = 85,
  849. SI_EXPLOSIONSPIRITS = 86,
  850. SI_STEELBODY = 87,
  851. SI_EXTREMITYFIST = 88,
  852. // SI_COMBOATTACK = 89,
  853. SI_FIREWEAPON = 90,
  854. SI_WATERWEAPON = 91,
  855. SI_WINDWEAPON = 92,
  856. SI_EARTHWEAPON = 93,
  857. // SI_MAGICATTACK = 94,
  858. SI_STOP = 95,
  859. // SI_WEAPONBRAKER = 96,
  860. SI_UNDEAD = 97,
  861. // SI_POWERUP = 98,
  862. // SI_AGIUP = 99,
  863. // SI_SIEGEMODE = 100,
  864. // SI_INVISIBLE = 101,
  865. // SI_STATUSONE = 102,
  866. SI_AURABLADE = 103,
  867. SI_PARRYING = 104,
  868. SI_CONCENTRATION = 105,
  869. SI_TENSIONRELAX = 106,
  870. SI_BERSERK = 107,
  871. // SI_SACRIFICE = 108,
  872. SI_GOSPEL = 109,
  873. SI_ASSUMPTIO = 110,
  874. SI_BASILICA = 111,
  875. SI_LANDENDOW = 112,
  876. SI_MAGICPOWER = 113,
  877. SI_EDP = 114,
  878. SI_TRUESIGHT = 115,
  879. SI_WINDWALK = 116,
  880. SI_MELTDOWN = 117,
  881. SI_CARTBOOST = 118,
  882. SI_CHASEWALK = 119,
  883. SI_REJECTSWORD = 120,
  884. SI_MARIONETTE = 121,
  885. SI_MARIONETTE2 = 122,
  886. SI_MOONLIT = 123,
  887. SI_BLEEDING = 124,
  888. SI_JOINTBEAT = 125,
  889. SI_MINDBREAKER = 126,
  890. SI_MEMORIZE = 127,
  891. SI_FOGWALL = 128,
  892. SI_SPIDERWEB = 129,
  893. SI_BABY = 130,
  894. // SI_SUB_WEAPONPROPERTY = 131,
  895. SI_AUTOBERSERK = 132,
  896. SI_RUN = 133,
  897. SI_BUMP = 134,
  898. SI_READYSTORM = 135,
  899. // SI_STORMKICK_READY = 136,
  900. SI_READYDOWN = 137,
  901. // SI_DOWNKICK_READY = 138,
  902. SI_READYTURN = 139,
  903. // SI_TURNKICK_READY = 140,
  904. SI_READYCOUNTER = 141,
  905. // SI_COUNTER_READY = 142,
  906. SI_DODGE = 143,
  907. // SI_DODGE_READY = 144,
  908. SI_SPURT = 145,
  909. SI_SHADOWWEAPON = 146,
  910. SI_ADRENALINE2 = 147,
  911. SI_GHOSTWEAPON = 148,
  912. SI_SPIRIT = 149,
  913. SI_PLUSATTACKPOWER = 150,
  914. SI_PLUSMAGICPOWER = 151,
  915. SI_DEVIL = 152,
  916. SI_KAITE = 153,
  917. SI_SWOO = 154,
  918. // SI_STAR2 = 155,
  919. SI_KAIZEL = 156,
  920. SI_KAAHI = 157,
  921. SI_KAUPE = 158,
  922. SI_SMA = 159,
  923. SI_NIGHT = 160,
  924. SI_ONEHAND = 161,
  925. // SI_FRIEND = 162,
  926. // SI_FRIENDUP = 163,
  927. // SI_SG_WARM = 164,
  928. SI_WARM = 165,
  929. // 166 | The three show the exact same display: ultra red character (165, 166, 167)
  930. // 167 | Their names would be SI_SG_SUN_WARM, SI_SG_MOON_WARM, SI_SG_STAR_WARM
  931. // SI_EMOTION = 168,
  932. SI_SUN_COMFORT = 169,
  933. SI_MOON_COMFORT = 170,
  934. SI_STAR_COMFORT = 171,
  935. // SI_EXPUP = 172,
  936. SI_GDSKILL_BATTLEORDER = 173,
  937. SI_GDSKILL_REGENERATION = 174,
  938. // SI_GDSKILL_POSTDELAY = 175,
  939. // SI_RESISTHANDICAP = 176,
  940. // SI_MAXHPPERCENT = 177,
  941. // SI_MAXSPPERCENT = 178,
  942. // SI_DEFENCE = 179,
  943. // SI_SLOWDOWN = 180,
  944. SI_PRESERVE = 181,
  945. SI_CHASEWALK2 = 182,
  946. // SI_NOT_EXTREMITYFIST = 183,
  947. SI_INTRAVISION = 184,
  948. // SI_MOVESLOW_POTION = 185,
  949. SI_DOUBLECAST = 186,
  950. SI_GRAVITATION = 187,
  951. SI_MAXOVERTHRUST = 188,
  952. SI_LONGING = 189,
  953. SI_HERMODE = 190,
  954. SI_TAROT = 191, // the icon allows no doubt... but what is it really used for ?? [DracoRPG]
  955. // SI_HLIF_AVOID = 192,
  956. // SI_HFLI_FLEET = 193,
  957. // SI_HFLI_SPEED = 194,
  958. // SI_HLIF_CHANGE = 195,
  959. // SI_HAMI_BLOODLUST = 196,
  960. SI_SHRINK = 197,
  961. SI_SIGHTBLASTER = 198,
  962. SI_WINKCHARM = 199,
  963. SI_CLOSECONFINE = 200,
  964. SI_CLOSECONFINE2 = 201,
  965. // SI_DISABLEMOVE = 202,
  966. SI_MADNESSCANCEL = 203, //[blackhole89]
  967. SI_GATLINGFEVER = 204,
  968. SI_EARTHSCROLL = 205,
  969. SI_UTSUSEMI = 206,
  970. SI_BUNSINJYUTSU = 207,
  971. SI_NEN = 208,
  972. SI_ADJUSTMENT = 209,
  973. SI_ACCURACY = 210,
  974. // SI_NJ_SUITON = 211,
  975. // SI_PET = 212,
  976. // SI_MENTAL = 213,
  977. // SI_EXPMEMORY = 214,
  978. // SI_PERFORMANCE = 215,
  979. // SI_GAIN = 216,
  980. // SI_GRIFFON = 217,
  981. // SI_DRIFT = 218,
  982. // SI_WALLSHIFT = 219,
  983. // SI_REINCARNATION = 220,
  984. // SI_PATTACK = 221,
  985. // SI_PSPEED = 222,
  986. // SI_PDEFENSE = 223,
  987. // SI_PCRITICAL = 224,
  988. // SI_RANKING = 225,
  989. // SI_PTRIPLE = 226,
  990. // SI_DENERGY = 227,
  991. // SI_WAVE1 = 228,
  992. // SI_WAVE2 = 229,
  993. // SI_WAVE3 = 230,
  994. // SI_WAVE4 = 231,
  995. // SI_DAURA = 232,
  996. // SI_DFREEZER = 233,
  997. // SI_DPUNISH = 234,
  998. // SI_DBARRIER = 235,
  999. // SI_DWARNING = 236,
  1000. // SI_MOUSEWHEEL = 237,
  1001. // SI_DGAUGE = 238,
  1002. // SI_DACCEL = 239,
  1003. // SI_DBLOCK = 240,
  1004. SI_FOODSTR = 241,
  1005. SI_FOODAGI = 242,
  1006. SI_FOODVIT = 243,
  1007. SI_FOODDEX = 244,
  1008. SI_FOODINT = 245,
  1009. SI_FOODLUK = 246,
  1010. SI_FOODFLEE = 247,
  1011. SI_FOODHIT = 248,
  1012. SI_FOODCRI = 249,
  1013. SI_EXPBOOST = 250,
  1014. SI_LIFEINSURANCE = 251,
  1015. SI_ITEMBOOST = 252,
  1016. SI_BOSSMAPINFO = 253,
  1017. // SI_DA_ENERGY = 254,
  1018. // SI_DA_FIRSTSLOT = 255,
  1019. // SI_DA_HEADDEF = 256,
  1020. // SI_DA_SPACE = 257,
  1021. // SI_DA_TRANSFORM = 258,
  1022. // SI_DA_ITEMREBUILD = 259,
  1023. // SI_DA_ILLUSION = 260, //All mobs display as Turtle General
  1024. // SI_DA_DARKPOWER = 261,
  1025. // SI_DA_EARPLUG = 262,
  1026. // SI_DA_CONTRACT = 263, //Bio Mob effect on you and SI_TRICKDEAD icon
  1027. // SI_DA_BLACK = 264, //For short time blurry screen
  1028. // SI_DA_MAGICCART = 265,
  1029. // SI_CRYSTAL = 266,
  1030. // SI_DA_REBUILD = 267,
  1031. // SI_DA_EDARKNESS = 268,
  1032. // SI_DA_EGUARDIAN = 269,
  1033. // SI_DA_TIMEOUT = 270,
  1034. SI_FOOD_STR_CASH = 271,
  1035. SI_FOOD_AGI_CASH = 272,
  1036. SI_FOOD_VIT_CASH = 273,
  1037. SI_FOOD_DEX_CASH = 274,
  1038. SI_FOOD_INT_CASH = 275,
  1039. SI_FOOD_LUK_CASH = 276,
  1040. SI_MERC_FLEEUP = 277,
  1041. SI_MERC_ATKUP = 278,
  1042. SI_MERC_HPUP = 279,
  1043. SI_MERC_SPUP = 280,
  1044. SI_MERC_HITUP = 281,
  1045. SI_SLOWCAST = 282,
  1046. // SI_MAGICMIRROR = 283,
  1047. // SI_STONESKIN = 284,
  1048. // SI_ANTIMAGIC = 285,
  1049. SI_CRITICALWOUND = 286,
  1050. // SI_NPC_DEFENDER = 287,
  1051. // SI_NOACTION_WAIT = 288,
  1052. SI_MOVHASTE_HORSE = 289,
  1053. SI_DEF_RATE = 290,
  1054. SI_MDEF_RATE = 291,
  1055. SI_INCHEALRATE = 292,
  1056. SI_S_LIFEPOTION = 293,
  1057. SI_L_LIFEPOTION = 294,
  1058. SI_INCCRI = 295,
  1059. SI_PLUSAVOIDVALUE = 296,
  1060. // SI_ATKER_ASPD = 297,
  1061. // SI_TARGET_ASPD = 298,
  1062. // SI_ATKER_MOVESPEED = 299,
  1063. SI_ATKER_BLOOD = 300,
  1064. SI_TARGET_BLOOD = 301,
  1065. SI_ARMOR_PROPERTY = 302,
  1066. SI_REUSE_LIMIT_A = 303,
  1067. SI_HELLPOWER = 304,
  1068. SI_STEAMPACK = 305,
  1069. SI_REUSE_LIMIT_B = 306,
  1070. SI_REUSE_LIMIT_C = 307,
  1071. SI_REUSE_LIMIT_D = 308,
  1072. SI_REUSE_LIMIT_E = 309,
  1073. SI_REUSE_LIMIT_F = 310,
  1074. SI_INVINCIBLE = 311,
  1075. SI_CASH_PLUSONLYJOBEXP = 312,
  1076. SI_PARTYFLEE = 313,
  1077. SI_ANGEL_PROTECT = 314,
  1078. SI_ENDURE_MDEF = 315,
  1079. SI_ENCHANTBLADE = 316,
  1080. SI_DEATHBOUND = 317,
  1081. SI_REFRESH = 318,
  1082. SI_GIANTGROWTH = 319,
  1083. SI_STONEHARDSKIN = 320,
  1084. SI_VITALITYACTIVATION = 321,
  1085. SI_FIGHTINGSPIRIT = 322,
  1086. SI_ABUNDANCE = 323,
  1087. SI_REUSE_MILLENNIUMSHIELD = 324,
  1088. SI_REUSE_CRUSHSTRIKE = 325,
  1089. SI_REUSE_REFRESH = 326,
  1090. SI_REUSE_STORMBLAST = 327,
  1091. SI_VENOMIMPRESS = 328,
  1092. SI_EPICLESIS = 329,
  1093. SI_ORATIO = 330,
  1094. SI_LAUDAAGNUS = 331,
  1095. SI_LAUDARAMUS = 332,
  1096. SI_CLOAKINGEXCEED = 333,
  1097. SI_HALLUCINATIONWALK = 334,
  1098. SI_HALLUCINATIONWALK_POSTDELAY = 335,
  1099. SI_RENOVATIO = 336,
  1100. SI_WEAPONBLOCKING = 337,
  1101. SI_WEAPONBLOCKING_POSTDELAY = 338,
  1102. SI_ROLLINGCUTTER = 339,
  1103. SI_EXPIATIO = 340,
  1104. SI_POISONINGWEAPON = 341,
  1105. SI_TOXIN = 342,
  1106. SI_PARALYSE = 343,
  1107. SI_VENOMBLEED = 344,
  1108. SI_MAGICMUSHROOM = 345,
  1109. SI_DEATHHURT = 346,
  1110. SI_PYREXIA = 347,
  1111. SI_OBLIVIONCURSE = 348,
  1112. SI_LEECHESEND = 349,
  1113. SI_DUPLELIGHT = 350,
  1114. SI_FROSTMISTY = 351,
  1115. SI_FEARBREEZE = 352,
  1116. SI_ELECTRICSHOCKER = 353,
  1117. SI_MARSHOFABYSS = 354,
  1118. SI_RECOGNIZEDSPELL = 355,
  1119. SI_STASIS = 356,
  1120. SI_WUGRIDER = 357,
  1121. SI_WUGDASH = 358,
  1122. SI_WUGBITE = 359,
  1123. SI_CAMOUFLAGE = 360,
  1124. SI_ACCELERATION = 361,
  1125. SI_HOVERING = 362,
  1126. SI_SPHERE_1 = 363,
  1127. SI_SPHERE_2 = 364,
  1128. SI_SPHERE_3 = 365,
  1129. SI_SPHERE_4 = 366,
  1130. SI_SPHERE_5 = 367,
  1131. SI_MVPCARD_TAOGUNKA = 368,
  1132. SI_MVPCARD_MISTRESS = 369,
  1133. SI_MVPCARD_ORCHERO = 370,
  1134. SI_MVPCARD_ORCLORD = 371,
  1135. SI_OVERHEAT_LIMITPOINT = 372,
  1136. SI_OVERHEAT = 373,
  1137. SI_SHAPESHIFT = 374,
  1138. SI_INFRAREDSCAN = 375,
  1139. SI_MAGNETICFIELD = 376,
  1140. SI_NEUTRALBARRIER = 377,
  1141. SI_NEUTRALBARRIER_MASTER = 378,
  1142. SI_STEALTHFIELD = 379,
  1143. SI_STEALTHFIELD_MASTER = 380,
  1144. SI_MANU_ATK = 381,
  1145. SI_MANU_DEF = 382,
  1146. SI_SPL_ATK = 383,
  1147. SI_SPL_DEF = 384,
  1148. SI_REPRODUCE = 385,
  1149. SI_MANU_MATK = 386,
  1150. SI_SPL_MATK = 387,
  1151. SI_STR_SCROLL = 388,
  1152. SI_INT_SCROLL = 389,
  1153. SI_LG_REFLECTDAMAGE = 390,
  1154. SI_FORCEOFVANGUARD = 391,
  1155. SI_BUCHEDENOEL = 392,
  1156. SI_AUTOSHADOWSPELL = 393,
  1157. SI_SHADOWFORM = 394,
  1158. SI_RAID = 395,
  1159. SI_SHIELDSPELL_DEF = 396,
  1160. SI_SHIELDSPELL_MDEF = 397,
  1161. SI_SHIELDSPELL_REF = 398,
  1162. SI_BODYPAINT = 399,
  1163. SI_EXEEDBREAK = 400,
  1164. SI_ADORAMUS = 401,
  1165. SI_PRESTIGE = 402,
  1166. SI_INVISIBILITY = 403,
  1167. SI_DEADLYINFECT = 404,
  1168. SI_BANDING = 405,
  1169. SI_EARTHDRIVE = 406,
  1170. SI_INSPIRATION = 407,
  1171. SI_ENERVATION = 408,
  1172. SI_GROOMY = 409,
  1173. SI_RAISINGDRAGON = 410,
  1174. SI_IGNORANCE = 411,
  1175. SI_LAZINESS = 412,
  1176. SI_LIGHTNINGWALK = 413,
  1177. SI_ACARAJE = 414,
  1178. SI_UNLUCKY = 415,
  1179. SI_CURSEDCIRCLE_ATKER = 416,
  1180. SI_CURSEDCIRCLE_TARGET = 417,
  1181. SI_WEAKNESS = 418,
  1182. SI_CRESCENTELBOW = 419,
  1183. SI_NOEQUIPACCESSARY = 420,
  1184. SI_STRIPACCESSARY = 421,
  1185. SI_MANHOLE = 422,
  1186. SI_POPECOOKIE = 423,
  1187. SI_FALLENEMPIRE = 424,
  1188. SI_GENTLETOUCH_ENERGYGAIN = 425,
  1189. SI_GENTLETOUCH_CHANGE = 426,
  1190. SI_GENTLETOUCH_REVITALIZE = 427,
  1191. SI_BLOODYLUST = 428,
  1192. SI_SWINGDANCE = 429,
  1193. SI_SYMPHONYOFLOVERS = 430,
  1194. SI_PROPERTYWALK = 431,
  1195. SI_SPELLFIST = 432,
  1196. SI_NETHERWORLD = 433,
  1197. SI_VOICEOFSIREN = 434,
  1198. SI_DEEPSLEEP = 435,
  1199. SI_SIRCLEOFNATURE = 436,
  1200. SI_COLD = 437,
  1201. SI_GLOOMYDAY = 438,
  1202. SI_SONGOFMANA = 439,
  1203. SI_CLOUDKILL = 440,
  1204. SI_DANCEWITHWUG = 441,
  1205. SI_RUSHWINDMILL = 442,
  1206. SI_ECHOSONG = 443,
  1207. SI_HARMONIZE = 444,
  1208. SI_STRIKING = 445,
  1209. SI_WARMER = 446,
  1210. SI_MOONLITSERENADE = 447,
  1211. SI_SATURDAYNIGHTFEVER = 448,
  1212. SI_SITDOWN_FORCE = 449,
  1213. SI_ANALYZE = 450,
  1214. SI_LERADSDEW = 451,
  1215. SI_MELODYOFSINK = 452,
  1216. SI_WARCRYOFBEYOND = 453,
  1217. SI_UNLIMITEDHUMMINGVOICE = 454,
  1218. SI_SPELLBOOK1 = 455,
  1219. SI_SPELLBOOK2 = 456,
  1220. SI_SPELLBOOK3 = 457,
  1221. SI_FREEZE_SP = 458,
  1222. SI_GN_TRAINING_SWORD = 459,
  1223. SI_GN_REMODELING_CART = 460,
  1224. SI_GN_CARTBOOST = 461,
  1225. SI_FIXEDCASTINGTM_REDUCE = 462,
  1226. SI_THORNTRAP = 463,
  1227. SI_BLOODSUCKER = 464,
  1228. SI_SPORE_EXPLOSION = 465,
  1229. SI_DEMONIC_FIRE = 466,
  1230. SI_FIRE_EXPANSION_SMOKE_POWDER = 467,
  1231. SI_FIRE_EXPANSION_TEAR_GAS = 468,
  1232. SI_BLOCKING_PLAY = 469,
  1233. SI_MANDRAGORA = 470,
  1234. SI_ACTIVATE = 471,
  1235. SI_SECRAMENT = 472,
  1236. SI_ASSUMPTIO2 = 473,
  1237. SI_TK_SEVENWIND = 474,
  1238. SI_LIMIT_ODINS_RECALL = 475,
  1239. SI_STOMACHACHE = 476,
  1240. SI_MYSTERIOUS_POWDER = 477,
  1241. SI_MELON_BOMB = 478,
  1242. SI_BANANA_BOMB_SITDOWN_POSTDELAY = 479,
  1243. SI_PROMOTE_HEALTH_RESERCH = 480,
  1244. SI_ENERGY_DRINK_RESERCH = 481,
  1245. SI_EXTRACT_WHITE_POTION_Z = 482,
  1246. SI_VITATA_500 = 483,
  1247. SI_EXTRACT_SALAMINE_JUICE = 484,
  1248. SI_BOOST500 = 485,
  1249. SI_FULL_SWING_K = 486,
  1250. SI_MANA_PLUS = 487,
  1251. SI_MUSTLE_M = 488,
  1252. SI_LIFE_FORCE_F = 489,
  1253. SI_VACUUM_EXTREME = 490,
  1254. SI_SAVAGE_STEAK = 491,
  1255. SI_COCKTAIL_WARG_BLOOD = 492,
  1256. SI_MINOR_BBQ = 493,
  1257. SI_SIROMA_ICE_TEA = 494,
  1258. SI_DROCERA_HERB_STEAMED = 495,
  1259. SI_PUTTI_TAILS_NOODLES = 496,
  1260. SI_BANANA_BOMB = 497,
  1261. SI_SUMMON_AGNI = 498,
  1262. SI_SPELLBOOK4 = 499,
  1263. SI_SPELLBOOK5 = 500,
  1264. SI_SPELLBOOK6 = 501,
  1265. SI_SPELLBOOK7 = 502,
  1266. SI_ELEMENTAL_AGGRESSIVE = 503,
  1267. SI_RETURN_TO_ELDICASTES = 504,
  1268. SI_BANDING_DEFENCE = 505,
  1269. SI_SKELSCROLL = 506,
  1270. SI_DISTRUCTIONSCROLL = 507,
  1271. SI_ROYALSCROLL = 508,
  1272. SI_IMMUNITYSCROLL = 509,
  1273. SI_MYSTICSCROLL = 510,
  1274. SI_BATTLESCROLL = 511,
  1275. SI_ARMORSCROLL = 512,
  1276. SI_FREYJASCROLL = 513,
  1277. SI_SOULSCROLL = 514,
  1278. SI_CIRCLE_OF_FIRE = 515,
  1279. SI_CIRCLE_OF_FIRE_OPTION = 516,
  1280. SI_FIRE_CLOAK = 517,
  1281. SI_FIRE_CLOAK_OPTION = 518,
  1282. SI_WATER_SCREEN = 519,
  1283. SI_WATER_SCREEN_OPTION = 520,
  1284. SI_WATER_DROP = 521,
  1285. SI_WATER_DROP_OPTION = 522,
  1286. SI_WIND_STEP = 523,
  1287. SI_WIND_STEP_OPTION = 524,
  1288. SI_WIND_CURTAIN = 525,
  1289. SI_WIND_CURTAIN_OPTION = 526,
  1290. SI_WATER_BARRIER = 527,
  1291. SI_ZEPHYR = 528,
  1292. SI_SOLID_SKIN = 529,
  1293. SI_SOLID_SKIN_OPTION = 530,
  1294. SI_STONE_SHIELD = 531,
  1295. SI_STONE_SHIELD_OPTION = 532,
  1296. SI_POWER_OF_GAIA = 533,
  1297. // SI_EL_WAIT = 534,
  1298. // SI_EL_PASSIVE = 535,
  1299. // SI_EL_DEFENSIVE = 536,
  1300. // SI_EL_OFFENSIVE = 537,
  1301. // SI_EL_COST = 538,
  1302. SI_PYROTECHNIC = 539,
  1303. SI_PYROTECHNIC_OPTION = 540,
  1304. SI_HEATER = 541,
  1305. SI_HEATER_OPTION = 542,
  1306. SI_TROPIC = 543,
  1307. SI_TROPIC_OPTION = 544,
  1308. SI_AQUAPLAY = 545,
  1309. SI_AQUAPLAY_OPTION = 546,
  1310. SI_COOLER = 547,
  1311. SI_COOLER_OPTION = 548,
  1312. SI_CHILLY_AIR = 549,
  1313. SI_CHILLY_AIR_OPTION = 550,
  1314. SI_GUST = 551,
  1315. SI_GUST_OPTION = 552,
  1316. SI_BLAST = 553,
  1317. SI_BLAST_OPTION = 554,
  1318. SI_WILD_STORM = 555,
  1319. SI_WILD_STORM_OPTION = 556,
  1320. SI_PETROLOGY = 557,
  1321. SI_PETROLOGY_OPTION = 558,
  1322. SI_CURSED_SOIL = 559,
  1323. SI_CURSED_SOIL_OPTION = 560,
  1324. SI_UPHEAVAL = 561,
  1325. SI_UPHEAVAL_OPTION = 562,
  1326. SI_TIDAL_WEAPON = 563,
  1327. SI_TIDAL_WEAPON_OPTION = 564,
  1328. SI_ROCK_CRUSHER = 565,
  1329. SI_ROCK_CRUSHER_ATK = 566,
  1330. SI_FIRE_INSIGNIA = 567,
  1331. SI_WATER_INSIGNIA = 568,
  1332. SI_WIND_INSIGNIA = 569,
  1333. SI_EARTH_INSIGNIA = 570,
  1334. SI_EQUIPED_FLOOR = 571,
  1335. SI_GUARDIAN_RECALL = 572,
  1336. SI_MORA_BUFF = 573,
  1337. SI_REUSE_LIMIT_G = 574,
  1338. SI_REUSE_LIMIT_H = 575,
  1339. SI_NEEDLE_OF_PARALYZE = 576,
  1340. SI_PAIN_KILLER = 577,
  1341. SI_G_LIFEPOTION = 578,
  1342. SI_VITALIZE_POTION = 579,
  1343. SI_LIGHT_OF_REGENE = 580,
  1344. SI_OVERED_BOOST = 581,
  1345. SI_SILENT_BREEZE = 582,
  1346. SI_ODINS_POWER = 583,
  1347. SI_STYLE_CHANGE = 584,
  1348. SI_SONIC_CLAW_POSTDELAY = 585,
  1349. // ID's 586 - 595 Currently Unused
  1350. SI_SILVERVEIN_RUSH_POSTDELAY = 596,
  1351. SI_MIDNIGHT_FRENZY_POSTDELAY = 597,
  1352. SI_GOLDENE_FERSE = 598,
  1353. SI_ANGRIFFS_MODUS = 599,
  1354. SI_TINDER_BREAKER = 600,
  1355. SI_TINDER_BREAKER_POSTDELAY = 601,
  1356. SI_CBC = 602,
  1357. SI_CBC_POSTDELAY = 603,
  1358. SI_EQC = 604,
  1359. SI_MAGMA_FLOW = 605,
  1360. SI_GRANITIC_ARMOR = 606,
  1361. SI_PYROCLASTIC = 607,
  1362. SI_VOLCANIC_ASH = 608,
  1363. SI_SPIRITS_SAVEINFO1 = 609,
  1364. SI_SPIRITS_SAVEINFO2 = 610,
  1365. SI_MAGIC_CANDY = 611,
  1366. SI_SEARCH_STORE_INFO = 612,
  1367. SI_ALL_RIDING = 613,
  1368. SI_ALL_RIDING_REUSE_LIMIT = 614,
  1369. SI_MACRO = 615,
  1370. SI_MACRO_POSTDELAY = 616,
  1371. SI_BEER_BOTTLE_CAP = 617,
  1372. SI_OVERLAPEXPUP = 618,
  1373. SI_PC_IZ_DUN05 = 619,
  1374. SI_CRUSHSTRIKE = 620,
  1375. SI_MONSTER_TRANSFORM = 621,
  1376. SI_SIT = 622,
  1377. SI_ONAIR = 623,
  1378. SI_MTF_ASPD = 624,
  1379. SI_MTF_RANGEATK = 625,
  1380. SI_MTF_MATK = 626,
  1381. SI_MTF_MLEATKED = 627,
  1382. SI_MTF_CRIDAMAGE = 628,
  1383. SI_REUSE_LIMIT_MTF = 629,
  1384. SI_MACRO_PERMIT = 630,
  1385. SI_MACRO_PLAY = 631,
  1386. SI_SKF_CAST = 632,
  1387. SI_SKF_ASPD = 633,
  1388. SI_SKF_ATK = 634,
  1389. SI_SKF_MATK = 635,
  1390. SI_REWARD_PLUSONLYJOBEXP = 636,
  1391. SI_HANDICAPSTATE_NORECOVER = 637,
  1392. SI_SET_NUM_DEF = 638,
  1393. SI_SET_NUM_MDEF = 639,
  1394. SI_SET_PER_DEF = 640,
  1395. SI_SET_PER_MDEF = 641,
  1396. SI_PARTYBOOKING_SEARCH_DELAY = 642,
  1397. SI_PARTYBOOKING_REGISTER_DELAY = 643,
  1398. SI_PERIOD_TIME_CHECK_DETECT_SKILL = 644,
  1399. SI_KO_JYUMONJIKIRI = 645,
  1400. SI_MEIKYOUSISUI = 646,
  1401. SI_ATTHASTE_CASH = 647,
  1402. SI_EQUIPPED_DIVINE_ARMOR = 648,
  1403. SI_EQUIPPED_HOLY_ARMOR = 649,
  1404. SI_2011RWC = 650,
  1405. SI_KYOUGAKU = 651,
  1406. SI_IZAYOI = 652,
  1407. SI_ZENKAI = 653,
  1408. SI_KG_KAGEHUMI = 654,
  1409. SI_KYOMU = 655,
  1410. SI_KAGEMUSYA = 656,
  1411. SI_ZANGETSU = 657,
  1412. SI_PHI_DEMON = 658,
  1413. SI_GENSOU = 659,
  1414. SI_AKAITSUKI = 660,
  1415. SI_TETANY = 661,
  1416. SI_GM_BATTLE = 662,
  1417. SI_GM_BATTLE2 = 663,
  1418. SI_2011RWC_SCROLL = 664,
  1419. SI_ACTIVE_MONSTER_TRANSFORM = 665,
  1420. SI_MYSTICPOWDER = 666,
  1421. SI_ECLAGE_RECALL = 667,
  1422. SI_ENTRY_QUEUE_APPLY_DELAY = 668,
  1423. SI_REUSE_LIMIT_ECL = 669,
  1424. SI_M_LIFEPOTION = 670,
  1425. SI_ENTRY_QUEUE_NOTIFY_ADMISSION_TIME_OUT = 671,
  1426. SI_UNKNOWN_NAME = 672,
  1427. SI_ON_PUSH_CART = 673,
  1428. SI_HAT_EFFECT = 674,
  1429. SI_FLOWER_LEAF = 675,
  1430. SI_RAY_OF_PROTECTION = 676,
  1431. SI_GLASTHEIM_ATK = 677,
  1432. SI_GLASTHEIM_DEF = 678,
  1433. SI_GLASTHEIM_HEAL = 679,
  1434. SI_GLASTHEIM_HIDDEN = 680,
  1435. SI_GLASTHEIM_STATE = 681,
  1436. SI_GLASTHEIM_ITEMDEF = 682,
  1437. SI_GLASTHEIM_HPSP = 683,
  1438. SI_HOMUN_SKILL_POSTDELAY = 684,
  1439. SI_ALMIGHTY = 685,
  1440. SI_GVG_GIANT = 686,
  1441. SI_GVG_GOLEM = 687,
  1442. SI_GVG_STUN = 688,
  1443. SI_GVG_STONE = 689,
  1444. SI_GVG_FREEZ = 690,
  1445. SI_GVG_SLEEP = 691,
  1446. SI_GVG_CURSE = 692,
  1447. SI_GVG_SILENCE = 693,
  1448. SI_GVG_BLIND = 694,
  1449. SI_CLIENT_ONLY_EQUIP_ARROW = 695,
  1450. SI_CLAN_INFO = 696,
  1451. SI_JP_EVENT01 = 697,
  1452. SI_JP_EVENT02 = 698,
  1453. SI_JP_EVENT03 = 699,
  1454. SI_JP_EVENT04 = 700,
  1455. SI_TELEPORT_FIXEDCASTINGDELAY = 701,
  1456. SI_GEFFEN_MAGIC1 = 702,
  1457. SI_GEFFEN_MAGIC2 = 703,
  1458. SI_GEFFEN_MAGIC3 = 704,
  1459. SI_QUEST_BUFF1 = 705,
  1460. SI_QUEST_BUFF2 = 706,
  1461. SI_QUEST_BUFF3 = 707,
  1462. SI_REUSE_LIMIT_RECALL = 708,
  1463. SI_SAVEPOSITION = 709,
  1464. SI_HANDICAPSTATE_ICEEXPLO = 710,
  1465. SI_FENRIR_CARD = 711,
  1466. SI_REUSE_LIMIT_ASPD_POTION = 712,
  1467. SI_MAXPAIN = 713,
  1468. SI_PC_STOP = 714,
  1469. SI_FRIGG_SONG = 715,
  1470. SI_OFFERTORIUM = 716,
  1471. SI_TELEKINESIS_INTENSE = 717,
  1472. SI_MOONSTAR = 718,
  1473. SI_STRANGELIGHTS = 719,
  1474. SI_FULL_THROTTLE = 720,
  1475. SI_REBOUND = 721,
  1476. SI_UNLIMIT = 722,
  1477. SI_KINGS_GRACE = 723,
  1478. SI_ITEM_ATKMAX = 724,
  1479. SI_ITEM_ATKMIN = 725,
  1480. SI_ITEM_MATKMAX = 726,
  1481. SI_ITEM_MATKMIN = 727,
  1482. SI_SUPER_STAR = 728,
  1483. SI_HIGH_RANKER = 729,
  1484. SI_DARKCROW = 730,
  1485. SI_2013_VALENTINE1 = 731,
  1486. SI_2013_VALENTINE2 = 732,
  1487. SI_2013_VALENTINE3 = 733,
  1488. SI_ILLUSIONDOPING = 734,
  1489. SI_WIDEWEB = 735,
  1490. SI_CHILL = 736,
  1491. SI_BURNT = 737,
  1492. SI_PCCAFE_PLAY_TIME = 738,
  1493. SI_TWISTED_TIME = 739,
  1494. SI_FLASHCOMBO = 740,
  1495. SI_JITTER_BUFF1 = 741,
  1496. SI_JITTER_BUFF2 = 742,
  1497. SI_JITTER_BUFF3 = 743,
  1498. SI_JITTER_BUFF4 = 744,
  1499. SI_JITTER_BUFF5 = 745,
  1500. SI_JITTER_BUFF6 = 746,
  1501. SI_JITTER_BUFF7 = 747,
  1502. SI_JITTER_BUFF8 = 748,
  1503. SI_JITTER_BUFF9 = 749,
  1504. SI_JITTER_BUFF10 = 750,
  1505. SI_CUP_OF_BOZA = 751,
  1506. SI_B_TRAP = 752,
  1507. SI_E_CHAIN = 753,
  1508. SI_E_QD_SHOT_READY = 754,
  1509. SI_C_MARKER = 755,
  1510. SI_H_MINE = 756,
  1511. SI_H_MINE_SPLASH = 757,
  1512. SI_P_ALTER = 758,
  1513. SI_HEAT_BARREL = 759,
  1514. SI_ANTI_M_BLAST = 760,
  1515. SI_SLUGSHOT = 761,
  1516. SI_SWORDCLAN = 762,
  1517. SI_ARCWANDCLAN = 763,
  1518. SI_GOLDENMACECLAN = 764,
  1519. SI_CROSSBOWCLAN = 765,
  1520. SI_PACKING_ENVELOPE1 = 766,
  1521. SI_PACKING_ENVELOPE2 = 767,
  1522. SI_PACKING_ENVELOPE3 = 768,
  1523. SI_PACKING_ENVELOPE4 = 769,
  1524. SI_PACKING_ENVELOPE5 = 770,
  1525. SI_PACKING_ENVELOPE6 = 771,
  1526. SI_PACKING_ENVELOPE7 = 772,
  1527. SI_PACKING_ENVELOPE8 = 773,
  1528. SI_PACKING_ENVELOPE9 = 774,
  1529. SI_PACKING_ENVELOPE10 = 775,
  1530. SI_GLASTHEIM_TRANS = 776,
  1531. SI_ZONGZI_POUCH_TRANS = 777,
  1532. SI_HEAT_BARREL_AFTER = 778,
  1533. SI_DECORATION_OF_MUSIC = 779,
  1534. SI_OVERSEAEXPUP = 780,
  1535. SI_CLOWN_N_GYPSY_CARD = 781,
  1536. SI_OPEN_NPC_MARKET = 782,
  1537. SI_BEEF_RIB_STEW = 783,
  1538. SI_PORK_RIB_STEW = 784,
  1539. SI_CHUSEOK_MONDAY = 785,
  1540. SI_CHUSEOK_TUESDAY = 786,
  1541. SI_CHUSEOK_WEDNESDAY = 787,
  1542. SI_CHUSEOK_THURSDAY = 788,
  1543. SI_CHUSEOK_FRIDAY = 789,
  1544. SI_CHUSEOK_WEEKEND = 790,
  1545. SI_ALL_LIGHTGUARD = 791,
  1546. SI_ALL_LIGHTGUARD_COOL_TIME = 792,
  1547. SI_MTF_MHP = 793,
  1548. SI_MTF_MSP = 794,
  1549. SI_MTF_PUMPKIN = 795,
  1550. SI_MTF_HITFLEE = 796,
  1551. SI_MTF_CRIDAMAGE2 = 797,
  1552. SI_MTF_SPDRAIN = 798,
  1553. SI_ACUO_MINT_GUM = 799,
  1554. SI_S_HEALPOTION = 800,
  1555. SI_REUSE_LIMIT_S_HEAL_POTION = 801,
  1556. SI_PLAYTIME_STATISTICS = 802,
  1557. SI_GN_CHANGEMATERIAL_OPERATOR = 803,
  1558. SI_GN_MIX_COOKING_OPERATOR = 804,
  1559. SI_GN_MAKEBOMB_OPERATOR = 805,
  1560. SI_GN_S_PHARMACY_OPERATOR = 806,
  1561. SI_SO_EL_ANALYSIS_DISASSEMBLY_OPERATOR = 807,
  1562. SI_SO_EL_ANALYSIS_COMBINATION_OPERATOR = 808,
  1563. SI_NC_MAGICDECOY_OPERATOR = 809,
  1564. SI_GUILD_STORAGE = 810,
  1565. SI_GC_POISONINGWEAPON_OPERATOR = 811,
  1566. SI_WS_WEAPONREFINE_OPERATOR = 812,
  1567. SI_BS_REPAIRWEAPON_OPERATOR = 813,
  1568. SI_GET_MAILBOX = 814,
  1569. SI_JUMPINGCLAN = 815,
  1570. SI_JP_OTP = 816,
  1571. SI_HANDICAPTOLERANCE_LEVELGAP = 817,
  1572. SI_MTF_RANGEATK2 = 818,
  1573. SI_MTF_ASPD2 = 819,
  1574. SI_MTF_MATK2 = 820,
  1575. SI_SHOW_NPCHPBAR = 821,
  1576. SI_FLOWERSMOKE = 822,
  1577. SI_FSTONE = 823,
  1578. SI_DAILYSENDMAILCNT = 824,
  1579. SI_QSCARABA = 825,
  1580. SI_LJOSALFAR = 826,
  1581. SI_PAD_READER_KNIGHT = 827,
  1582. SI_PAD_READER_CRUSADER = 828,
  1583. SI_PAD_READER_BLACKSMITH = 829,
  1584. SI_PAD_READER_ALCHEMIST = 830,
  1585. SI_PAD_READER_ASSASSIN = 831,
  1586. SI_PAD_READER_ROGUE = 832,
  1587. SI_PAD_READER_WIZARD = 833,
  1588. SI_PAD_READER_SAGE = 834,
  1589. SI_PAD_READER_PRIEST = 835,
  1590. SI_PAD_READER_MONK = 836,
  1591. SI_PAD_READER_HUNTER = 837,
  1592. SI_PAD_READER_BARD = 838,
  1593. SI_PAD_READER_DANCER = 839,
  1594. SI_PAD_READER_TAEKWON = 840,
  1595. SI_PAD_READER_NINJA = 841,
  1596. SI_PAD_READER_GUNSLINGER = 842,
  1597. SI_PAD_READER_SUPERNOVICE = 843,
  1598. SI_ESSENCE_OF_TIME = 844,
  1599. SI_MINIGAME_ROULETTE = 845,
  1600. SI_MINIGAME_GOLD_POINT = 846,
  1601. SI_MINIGAME_SILVER_POINT = 847,
  1602. SI_MINIGAME_BRONZE_POINT = 848,
  1603. SI_HAPPINESS_STAR = 849,
  1604. SI_SUMMEREVENT01 = 850,
  1605. SI_SUMMEREVENT02 = 851,
  1606. SI_SUMMEREVENT03 = 852,
  1607. SI_SUMMEREVENT04 = 853,
  1608. SI_SUMMEREVENT05 = 854,
  1609. SI_MINIGAME_ROULETTE_BONUS_ITEM = 855,
  1610. SI_DRESS_UP = 856,
  1611. SI_MAPLE_FALLS = 857,
  1612. SI_ALL_NIFLHEIM_RECALL = 858,
  1613. SI_MTF_MARIONETTE = 860,
  1614. SI_MTF_LUDE = 861,
  1615. SI_MTF_CRUISER = 862,
  1616. SI_MERMAID_LONGING = 863,
  1617. SI_MAGICAL_FEATHER = 864,
  1618. SI_DRACULA_CARD = 865,
  1619. SI_LIMIT_POWER_BOOSTER = 867,
  1620. SI_TIME_ACCESSORY = 872,
  1621. SI_EP16_DEF = 873,
  1622. SI_NORMAL_ATKED_SP = 874,
  1623. SI_BODYSTATE_STONECURSE = 875,
  1624. SI_BODYSTATE_FREEZING = 876,
  1625. SI_BODYSTATE_STUN = 877,
  1626. SI_BODYSTATE_SLEEP = 878,
  1627. SI_BODYSTATE_UNDEAD = 879,
  1628. SI_BODYSTATE_STONECURSE_ING = 880,
  1629. SI_BODYSTATE_BURNNING = 881,
  1630. SI_BODYSTATE_IMPRISON = 882,
  1631. SI_HEALTHSTATE_POISON = 883,
  1632. SI_HEALTHSTATE_CURSE = 884,
  1633. SI_HEALTHSTATE_SILENCE = 885,
  1634. SI_HEALTHSTATE_CONFUSION = 886,
  1635. SI_HEALTHSTATE_BLIND = 887,
  1636. SI_HEALTHSTATE_ANGELUS = 888,
  1637. SI_HEALTHSTATE_BLOODING = 889,
  1638. SI_HEALTHSTATE_HEAVYPOISON = 890,
  1639. SI_HEALTHSTATE_FEAR = 891,
  1640. SI_CHERRY_BLOSSOM_CAKE = 892,
  1641. SI_SU_STOOP = 893,
  1642. SI_CATNIPPOWDER = 894,
  1643. SI_SV_ROOTTWIST = 896,
  1644. SI_ATTACK_PROPERTY_NOTHING = 897,
  1645. SI_ATTACK_PROPERTY_WATER = 898,
  1646. SI_ATTACK_PROPERTY_GROUND = 899,
  1647. SI_ATTACK_PROPERTY_FIRE = 900,
  1648. SI_ATTACK_PROPERTY_WIND = 901,
  1649. SI_ATTACK_PROPERTY_POISON = 902,
  1650. SI_ATTACK_PROPERTY_SAINT = 903,
  1651. SI_ATTACK_PROPERTY_DARKNESS = 904,
  1652. SI_ATTACK_PROPERTY_TELEKINESIS = 905,
  1653. SI_ATTACK_PROPERTY_UNDEAD = 906,
  1654. SI_RESIST_PROPERTY_NOTHING = 907,
  1655. SI_RESIST_PROPERTY_WATER = 908,
  1656. SI_RESIST_PROPERTY_GROUND = 909,
  1657. SI_RESIST_PROPERTY_FIRE = 910,
  1658. SI_RESIST_PROPERTY_WIND = 911,
  1659. SI_RESIST_PROPERTY_POISON = 912,
  1660. SI_RESIST_PROPERTY_SAINT = 913,
  1661. SI_RESIST_PROPERTY_DARKNESS = 914,
  1662. SI_RESIST_PROPERTY_TELEKINESIS = 915,
  1663. SI_RESIST_PROPERTY_UNDEAD = 916,
  1664. SI_BITESCAR = 917,
  1665. SI_ARCLOUSEDASH = 918,
  1666. SI_TUNAPARTY = 919,
  1667. SI_SHRIMP = 920,
  1668. SI_FRESHSHRIMP = 921,
  1669. SI_PERIOD_RECEIVEITEM = 922,
  1670. SI_PERIOD_PLUSEXP = 923,
  1671. SI_PERIOD_PLUSJOBEXP = 924,
  1672. SI_RUNEHELM = 925,
  1673. SI_HELM_VERKANA = 926,
  1674. SI_HELM_RHYDO = 927,
  1675. SI_HELM_TURISUS = 928,
  1676. SI_HELM_HAGALAS = 929,
  1677. SI_HELM_ISIA = 930,
  1678. SI_HELM_ASIR = 931,
  1679. SI_HELM_URJ = 932,
  1680. SI_SUHIDE = 933,
  1681. SI_DORAM_BUF_01 = 935,
  1682. SI_DORAM_BUF_02 = 936,
  1683. SI_SPRITEMABLE = 937,
  1684. SI_AID_PERIOD_RECEIVEITEM = 938,
  1685. SI_AID_PERIOD_PLUSEXP = 939,
  1686. SI_AID_PERIOD_PLUSJOBEXP = 940,
  1687. SI_AID_PERIOD_DEADPENALTY = 941,
  1688. SI_AID_PERIOD_ADDSTOREITEMCOUNT = 942,
  1689. SI_HISS = 950,
  1690. SI_NYANGGRASS = 952,
  1691. SI_CHATTERING = 953,
  1692. SI_GROOMING = 961,
  1693. SI_PROTECTIONOFSHRIMP = 962,
  1694. SI_EP16_2_BUFF_SS = 963,
  1695. SI_EP16_2_BUFF_SC = 964,
  1696. SI_EP16_2_BUFF_AC = 965,
  1697. SI_GS_MAGICAL_BULLET = 966,
  1698. SI_FALLEN_ANGEL = 976,
  1699. SI_GLOOM_CARD = 988,
  1700. SI_PHARAOH_CARD = 989,
  1701. SI_KIEL_CARD = 990,
  1702. SI_MAX,
  1703. };
  1704. /// JOINTBEAT stackable ailments
  1705. enum e_joint_break
  1706. {
  1707. BREAK_ANKLE = 0x01, ///< MoveSpeed reduced by 50%
  1708. BREAK_WRIST = 0x02, ///< ASPD reduced by 25%
  1709. BREAK_KNEE = 0x04, ///< MoveSpeed reduced by 30%, ASPD reduced by 10%
  1710. BREAK_SHOULDER = 0x08, ///< DEF reduced by 50%
  1711. BREAK_WAIST = 0x10, ///< DEF reduced by 25%, ATK reduced by 25%
  1712. BREAK_NECK = 0x20, ///< current attack does 2x damage, inflicts 'bleeding' for 30 seconds
  1713. BREAK_FLAGS = BREAK_ANKLE | BREAK_WRIST | BREAK_KNEE | BREAK_SHOULDER | BREAK_WAIST | BREAK_NECK,
  1714. };
  1715. extern short current_equip_item_index;
  1716. extern unsigned int current_equip_combo_pos;
  1717. extern int current_equip_card_id;
  1718. extern bool running_npc_stat_calc_event;
  1719. extern short current_equip_opt_index;
  1720. /// Mode definitions to clear up code reading. [Skotlex]
  1721. enum e_mode {
  1722. MD_CANMOVE = 0x0000001,
  1723. MD_LOOTER = 0x0000002,
  1724. MD_AGGRESSIVE = 0x0000004,
  1725. MD_ASSIST = 0x0000008,
  1726. MD_CASTSENSOR_IDLE = 0x0000010,
  1727. MD_NORANDOM_WALK = 0x0000020,
  1728. MD_NOCAST_SKILL = 0x0000040,
  1729. MD_CANATTACK = 0x0000080,
  1730. //FREE = 0x0000100,
  1731. MD_CASTSENSOR_CHASE = 0x0000200,
  1732. MD_CHANGECHASE = 0x0000400,
  1733. MD_ANGRY = 0x0000800,
  1734. MD_CHANGETARGET_MELEE = 0x0001000,
  1735. MD_CHANGETARGET_CHASE = 0x0002000,
  1736. MD_TARGETWEAK = 0x0004000,
  1737. MD_RANDOMTARGET = 0x0008000,
  1738. MD_IGNOREMELEE = 0x0010000,
  1739. MD_IGNOREMAGIC = 0x0020000,
  1740. MD_IGNORERANGED = 0x0040000,
  1741. MD_MVP = 0x0080000,
  1742. MD_IGNOREMISC = 0x0100000,
  1743. MD_KNOCKBACK_IMMUNE = 0x0200000,
  1744. MD_TELEPORT_BLOCK = 0x0400000,
  1745. //FREE = 0x0800000,
  1746. MD_FIXED_ITEMDROP = 0x1000000,
  1747. MD_DETECTOR = 0x2000000,
  1748. MD_STATUS_IMMUNE = 0x4000000,
  1749. MD_SKILL_IMMUNE = 0x8000000,
  1750. };
  1751. #define MD_MASK 0x000FFFF
  1752. #define ATR_MASK 0x0FF0000
  1753. #define CL_MASK 0xF000000
  1754. //Status change option definitions (options are what makes status changes visible to chars
  1755. //who were not on your field of sight when it happened)
  1756. ///opt1: (BODYSTATE_*) Non stackable status changes.
  1757. enum sc_opt1 {
  1758. OPT1_STONE = 1, //Petrified
  1759. OPT1_FREEZE,
  1760. OPT1_STUN,
  1761. OPT1_SLEEP,
  1762. //Aegis uses OPT1 = 5 to identify undead enemies (which also grants them immunity to the other opt1 changes)
  1763. OPT1_STONEWAIT = 6, //Petrifying
  1764. OPT1_BURNING,
  1765. OPT1_FREEZING,
  1766. OPT1_IMPRISON,
  1767. OPT1_CRYSTALIZE,
  1768. };
  1769. ///opt2: (HEALTHSTATE_*) Stackable status changes.
  1770. enum sc_opt2 {
  1771. OPT2_POISON = 0x0001,
  1772. OPT2_CURSE = 0x0002,
  1773. OPT2_SILENCE = 0x0004,
  1774. OPT2_SIGNUMCRUCIS = 0x0008, //Confusion
  1775. OPT2_BLIND = 0x0010,
  1776. OPT2_ANGELUS = 0x0020,
  1777. OPT2_BLEEDING = 0x0040,
  1778. OPT2_DPOISON = 0x0080,
  1779. OPT2_FEAR = 0x0100,
  1780. };
  1781. ///opt3: (SHOW_EFST_*)
  1782. enum sc_opt3 {
  1783. OPT3_NORMAL = 0x00000000,
  1784. OPT3_QUICKEN = 0x00000001,
  1785. OPT3_OVERTHRUST = 0x00000002,
  1786. OPT3_ENERGYCOAT = 0x00000004,
  1787. OPT3_EXPLOSIONSPIRITS = 0x00000008,
  1788. OPT3_STEELBODY = 0x00000010,
  1789. OPT3_BLADESTOP = 0x00000020,
  1790. OPT3_AURABLADE = 0x00000040,
  1791. OPT3_BERSERK = 0x00000080,
  1792. OPT3_LIGHTBLADE = 0x00000100,
  1793. OPT3_MOONLIT = 0x00000200,
  1794. OPT3_MARIONETTE = 0x00000400,
  1795. OPT3_ASSUMPTIO = 0x00000800,
  1796. OPT3_WARM = 0x00001000,
  1797. OPT3_KAITE = 0x00002000,
  1798. OPT3_BUNSIN = 0x00004000,
  1799. OPT3_SOULLINK = 0x00008000,
  1800. OPT3_UNDEAD = 0x00010000,
  1801. OPT3_CONTRACT = 0x00020000,
  1802. };
  1803. ///Option (EFFECTSTATE_*)
  1804. enum e_option {
  1805. OPTION_NOTHING = 0x00000000,
  1806. OPTION_SIGHT = 0x00000001,
  1807. OPTION_HIDE = 0x00000002,
  1808. OPTION_CLOAK = 0x00000004,
  1809. OPTION_CART1 = 0x00000008,
  1810. OPTION_FALCON = 0x00000010,
  1811. OPTION_RIDING = 0x00000020,
  1812. OPTION_INVISIBLE = 0x00000040,
  1813. OPTION_CART2 = 0x00000080,
  1814. OPTION_CART3 = 0x00000100,
  1815. OPTION_CART4 = 0x00000200,
  1816. OPTION_CART5 = 0x00000400,
  1817. OPTION_ORCISH = 0x00000800,
  1818. OPTION_WEDDING = 0x00001000,
  1819. OPTION_RUWACH = 0x00002000,
  1820. OPTION_CHASEWALK = 0x00004000,
  1821. OPTION_FLYING = 0x00008000, //! NOTE: That clientside Flying and Xmas are 0x8000 for clients prior to 2007.
  1822. OPTION_XMAS = 0x00010000,
  1823. OPTION_TRANSFORM = 0x00020000,
  1824. OPTION_SUMMER = 0x00040000,
  1825. OPTION_DRAGON1 = 0x00080000,
  1826. OPTION_WUG = 0x00100000,
  1827. OPTION_WUGRIDER = 0x00200000,
  1828. OPTION_MADOGEAR = 0x00400000,
  1829. OPTION_DRAGON2 = 0x00800000,
  1830. OPTION_DRAGON3 = 0x01000000,
  1831. OPTION_DRAGON4 = 0x02000000,
  1832. OPTION_DRAGON5 = 0x04000000,
  1833. OPTION_HANBOK = 0x08000000,
  1834. OPTION_OKTOBERFEST = 0x10000000,
  1835. // compound constant for older carts
  1836. OPTION_CART = OPTION_CART1|OPTION_CART2|OPTION_CART3|OPTION_CART4|OPTION_CART5,
  1837. // compound constants
  1838. OPTION_DRAGON = OPTION_DRAGON1|OPTION_DRAGON2|OPTION_DRAGON3|OPTION_DRAGON4|OPTION_DRAGON5,
  1839. OPTION_COSTUME = OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER|OPTION_HANBOK|OPTION_OKTOBERFEST,
  1840. };
  1841. ///Defines for the manner system [Skotlex]
  1842. enum manner_flags
  1843. {
  1844. MANNER_NOCHAT = 0x01,
  1845. MANNER_NOSKILL = 0x02,
  1846. MANNER_NOCOMMAND = 0x04,
  1847. MANNER_NOITEM = 0x08,
  1848. MANNER_NOROOM = 0x10,
  1849. };
  1850. /// Status Change State Flags
  1851. enum scs_flag {
  1852. SCS_NOMOVECOND = 0x00000001, ///< cond flag for nomove
  1853. SCS_NOMOVE = 0x00000002, ///< unit unable to move
  1854. SCS_NOPICKITEMCOND = 0x00000004, ///< cond flag for nopickitem
  1855. SCS_NOPICKITEM = 0x00000008, ///< player unable to pick up items
  1856. SCS_NODROPITEMCOND = 0x00000010, ///< cond flag for nodropitem
  1857. SCS_NODROPITEM = 0x00000020, ///< player unable to drop items
  1858. SCS_NOCASTCOND = 0x00000040, ///< cond flag for nocast
  1859. SCS_NOCAST = 0x00000080, ///< unit unable to cast skills
  1860. SCS_NOCHAT = 0x00000100, ///< unit can't talk
  1861. SCS_NOCHATCOND = 0x00000200, ///< cond flag for notalk
  1862. };
  1863. ///Define flags for the status_calc_bl function. [Skotlex]
  1864. enum scb_flag
  1865. {
  1866. SCB_NONE = 0x00000000,
  1867. SCB_BASE = 0x00000001,
  1868. SCB_MAXHP = 0x00000002,
  1869. SCB_MAXSP = 0x00000004,
  1870. SCB_STR = 0x00000008,
  1871. SCB_AGI = 0x00000010,
  1872. SCB_VIT = 0x00000020,
  1873. SCB_INT = 0x00000040,
  1874. SCB_DEX = 0x00000080,
  1875. SCB_LUK = 0x00000100,
  1876. SCB_BATK = 0x00000200,
  1877. SCB_WATK = 0x00000400,
  1878. SCB_MATK = 0x00000800,
  1879. SCB_HIT = 0x00001000,
  1880. SCB_FLEE = 0x00002000,
  1881. SCB_DEF = 0x00004000,
  1882. SCB_DEF2 = 0x00008000,
  1883. SCB_MDEF = 0x00010000,
  1884. SCB_MDEF2 = 0x00020000,
  1885. SCB_SPEED = 0x00040000,
  1886. SCB_ASPD = 0x00080000,
  1887. SCB_DSPD = 0x00100000,
  1888. SCB_CRI = 0x00200000,
  1889. SCB_FLEE2 = 0x00400000,
  1890. SCB_ATK_ELE = 0x00800000,
  1891. SCB_DEF_ELE = 0x01000000,
  1892. SCB_MODE = 0x02000000,
  1893. SCB_SIZE = 0x04000000,
  1894. SCB_RACE = 0x08000000,
  1895. SCB_RANGE = 0x10000000,
  1896. SCB_REGEN = 0x20000000,
  1897. SCB_DYE = 0x40000000, // force cloth-dye change to 0 to avoid client crashes.
  1898. SCB_BATTLE = 0x3FFFFFFE,
  1899. SCB_ALL = 0x3FFFFFFF
  1900. };
  1901. enum e_status_calc_opt {
  1902. SCO_NONE = 0x0,
  1903. SCO_FIRST = 0x1, ///< Trigger the calculations that should take place only onspawn/once, process base status initialization code
  1904. SCO_FORCE = 0x2, ///< Only relevant to BL_PC types, ensures call bypasses the queue caused by delayed damage
  1905. };
  1906. /// Flags for status_change_start and status_get_sc_def
  1907. enum e_status_change_start_flags {
  1908. SCSTART_NONE = 0x00,
  1909. SCSTART_NOAVOID = 0x01, /// Cannot be avoided (it has to start)
  1910. SCSTART_NOTICKDEF = 0x02, /// Tick should not be reduced (by statuses or bonuses)
  1911. SCSTART_LOADED = 0x04, /// When sc_data loaded (fetched from table), no values (val1 ~ val4) have to be altered/recalculate
  1912. SCSTART_NORATEDEF = 0x08, /// Rate should not be reduced (by statuses or bonuses)
  1913. SCSTART_NOICON = 0x10, /// Status icon won't be sent to client
  1914. };
  1915. /// Enum for status_change_clear_buffs
  1916. enum e_status_change_clear_buffs_flags {
  1917. SCCB_BUFFS = 0x01,
  1918. SCCB_DEBUFFS = 0x02,
  1919. SCCB_REFRESH = 0x04,
  1920. SCCB_CHEM_PROTECT = 0x08,
  1921. SCCB_LUXANIMA = 0x10,
  1922. };
  1923. ///Enum for bonus_script's flag [Cydh]
  1924. enum e_bonus_script_flags {
  1925. BSF_REM_ON_DEAD = 0x001, ///< Removed when dead
  1926. BSF_REM_ON_DISPELL = 0x002, ///< Removed by Dispell
  1927. BSF_REM_ON_CLEARANCE = 0x004, ///< Removed by Clearance
  1928. BSF_REM_ON_LOGOUT = 0x008, ///< Removed when player logged out
  1929. BSF_REM_ON_BANISHING_BUSTER = 0x010, ///< Removed by Banishing Buster
  1930. BSF_REM_ON_REFRESH = 0x020, ///< Removed by Refresh
  1931. BSF_REM_ON_LUXANIMA = 0x040, ///< Removed by Luxanima
  1932. BSF_REM_ON_MADOGEAR = 0x080, ///< Removed when Madogear is activated or deactivated
  1933. BSF_REM_ON_DAMAGED = 0x100, ///< Removed when receive damage
  1934. BSF_PERMANENT = 0x200, ///< Cannot be removed by sc_end SC_ALL
  1935. // These flags cannot be stacked, BSF_FORCE_REPLACE has highest priority to check if YOU force to add both
  1936. BSF_FORCE_REPLACE = 0x400, ///< Force to replace duplicated script by expanding the duration
  1937. BSF_FORCE_DUPLICATE = 0x800, ///< Force to add duplicated script
  1938. // These flags aren't part of 'bonus_script' scripting flags
  1939. BSF_REM_ALL = 0x0, ///< Remove all bonus script
  1940. BSF_REM_BUFF = 0x4000, ///< Remove positive buff if battle_config.debuff_on_logout&1
  1941. BSF_REM_DEBUFF = 0x8000, ///< Remove negative buff if battle_config.debuff_on_logout&2
  1942. };
  1943. ///Enum for status_get_hpbonus and status_get_spbonus
  1944. enum e_status_bonus {
  1945. STATUS_BONUS_FIX = 0,
  1946. STATUS_BONUS_RATE = 1,
  1947. };
  1948. ///Define to determine who gets HP/SP consumed on doing skills/etc. [Skotlex]
  1949. #define BL_CONSUME (BL_PC|BL_HOM|BL_MER|BL_ELEM)
  1950. ///Define to determine who has regen
  1951. #define BL_REGEN (BL_PC|BL_HOM|BL_MER|BL_ELEM)
  1952. ///Define to determine who will receive a clif_status_change packet for effects that require one to display correctly
  1953. #define BL_SCEFFECT (BL_PC|BL_HOM|BL_MER|BL_MOB|BL_ELEM)
  1954. /** Basic damage info of a weapon
  1955. * Required because players have two of these, one in status_data
  1956. * and another for their left hand weapon. */
  1957. struct weapon_atk {
  1958. unsigned short atk, atk2;
  1959. unsigned short range;
  1960. unsigned char ele;
  1961. #ifdef RENEWAL
  1962. unsigned short matk;
  1963. unsigned char wlv;
  1964. #endif
  1965. };
  1966. sc_type SkillStatusChangeTable[MAX_SKILL]; /// skill -> status
  1967. int StatusIconChangeTable[SC_MAX]; /// status -> "icon" (icon is a bit of a misnomer, since there exist values with no icon associated)
  1968. unsigned int StatusChangeFlagTable[SC_MAX]; /// status -> flags
  1969. int StatusSkillChangeTable[SC_MAX]; /// status -> skill
  1970. int StatusRelevantBLTypes[SI_MAX]; /// "icon" -> enum bl_type (for clif->status_change to identify for which bl types to send packets)
  1971. unsigned int StatusChangeStateTable[SC_MAX]; /// status -> flags
  1972. bool StatusDisplayType[SC_MAX];
  1973. ///For holding basic status (which can be modified by status changes)
  1974. struct status_data {
  1975. unsigned int
  1976. hp, sp, // see status_cpy before adding members before hp and sp
  1977. max_hp, max_sp;
  1978. short
  1979. str, agi, vit, int_, dex, luk;
  1980. unsigned short
  1981. batk,
  1982. #ifdef RENEWAL
  1983. watk,
  1984. watk2,
  1985. eatk,
  1986. #endif
  1987. matk_min, matk_max,
  1988. speed,
  1989. amotion, adelay, dmotion;
  1990. enum e_mode mode;
  1991. short
  1992. hit, flee, cri, flee2,
  1993. def2, mdef2,
  1994. #ifdef RENEWAL_ASPD
  1995. aspd_rate2,
  1996. #endif
  1997. aspd_rate;
  1998. /**
  1999. * defType is RENEWAL dependent and defined in src/map/config/data/const.h
  2000. **/
  2001. defType def,mdef;
  2002. unsigned char
  2003. def_ele, ele_lv,
  2004. size,
  2005. race, /// see enum e_race
  2006. class_; /// see enum e_classAE
  2007. struct weapon_atk rhw, lhw; //Right Hand/Left Hand Weapon.
  2008. };
  2009. ///Additional regen data that only players have.
  2010. struct regen_data_sub {
  2011. unsigned short
  2012. hp,sp;
  2013. //tick accumulation before healing.
  2014. struct {
  2015. unsigned int hp,sp;
  2016. } tick;
  2017. //Regen rates. n/100
  2018. struct {
  2019. unsigned short hp,sp;
  2020. } rate;
  2021. };
  2022. ///Regen data
  2023. struct regen_data {
  2024. unsigned char flag; //Marks what stuff you may heal or not.
  2025. unsigned short hp,sp,shp,ssp;
  2026. //tick accumulation before healing.
  2027. struct {
  2028. unsigned int hp,sp,shp,ssp;
  2029. } tick;
  2030. //Regen rates. n/100
  2031. struct {
  2032. unsigned short hp, sp, shp, ssp;
  2033. } rate;
  2034. struct {
  2035. unsigned walk:1; //Can you regen even when walking?
  2036. unsigned gc:1; //Tags when you should have double regen due to GVG castle
  2037. unsigned overweight :2; //overweight state (1: 50%, 2: 90%)
  2038. unsigned block :2; //Block regen flag (1: Hp, 2: Sp)
  2039. } state;
  2040. //skill-regen, sitting-skill-regen (since not all chars with regen need it)
  2041. struct regen_data_sub *sregen, *ssregen;
  2042. };
  2043. ///Status display entry
  2044. struct sc_display_entry {
  2045. enum sc_type type;
  2046. int val1, val2, val3;
  2047. };
  2048. ///Status change entry
  2049. struct status_change_entry {
  2050. int timer;
  2051. int val1,val2,val3,val4;
  2052. };
  2053. ///Status change
  2054. struct status_change {
  2055. unsigned int option;// effect state (bitfield)
  2056. unsigned int opt3;// skill state (bitfield)
  2057. unsigned short opt1;// body state
  2058. unsigned short opt2;// health state (bitfield)
  2059. unsigned char count;
  2060. //! TODO: See if it is possible to implement the following SC's without requiring extra parameters while the SC is inactive.
  2061. unsigned char jb_flag; //Joint Beat type flag
  2062. struct {
  2063. unsigned char move;
  2064. unsigned char pickup;
  2065. unsigned char drop;
  2066. unsigned char cast;
  2067. unsigned char chat;
  2068. } cant;/* status change state flags */
  2069. //int sg_id; //ID of the previous Storm gust that hit you
  2070. short comet_x, comet_y; // Point where src casted Comet - required to calculate damage from this point
  2071. /**
  2072. * The Storm Gust counter was dropped in renewal
  2073. **/
  2074. #ifndef RENEWAL
  2075. unsigned char sg_counter; //Storm gust counter (previous hits from storm gust)
  2076. #endif
  2077. unsigned char bs_counter; // Blood Sucker counter
  2078. struct status_change_entry *data[SC_MAX];
  2079. };
  2080. // for looking up associated data
  2081. sc_type status_skill2sc(int skill);
  2082. int status_sc2skill(sc_type sc);
  2083. unsigned int status_sc2scb_flag(sc_type sc);
  2084. int status_type2relevant_bl_types(int type);
  2085. int StatusIconChangeTable[SC_MAX]; /// status -> "icon" (icon is a bit of a misnomer, since there exist values with no icon associated)
  2086. int status_damage(struct block_list *src,struct block_list *target,int64 dhp,int64 dsp, int walkdelay, int flag);
  2087. //Define for standard HP damage attacks.
  2088. #define status_fix_damage(src, target, hp, walkdelay) status_damage(src, target, hp, 0, walkdelay, 0)
  2089. //Define for standard SP damage attacks.
  2090. #define status_fix_spdamage(src, target, sp, walkdelay) status_damage(src, target, 0, sp, walkdelay, 0)
  2091. //Define for standard HP/SP damage triggers.
  2092. #define status_zap(bl, hp, sp) status_damage(NULL, bl, hp, sp, 0, 1)
  2093. //Define for standard HP/SP skill-related cost triggers (mobs require no HP/SP to use skills)
  2094. int64 status_charge(struct block_list* bl, int64 hp, int64 sp);
  2095. int status_percent_change(struct block_list *src, struct block_list *target, int8 hp_rate, int8 sp_rate, uint8 flag);
  2096. //Easier handling of status_percent_change
  2097. #define status_percent_heal(bl, hp_rate, sp_rate) status_percent_change(NULL, bl, -(hp_rate), -(sp_rate), 0)
  2098. /// Deals % damage from 'src' to 'target'. If rate is > 0 is % of current HP/SP, < 0 % of MaxHP/MaxSP
  2099. #define status_percent_damage(src, target, hp_rate, sp_rate, kill) status_percent_change(src, target, hp_rate, sp_rate, (kill)?1:2)
  2100. //Instant kill with no drops/exp/etc
  2101. #define status_kill(bl) status_percent_damage(NULL, bl, 100, 0, true)
  2102. //Used to set the hp/sp of an object to an absolute value (can't kill)
  2103. int status_set_hp(struct block_list *bl, unsigned int hp, int flag);
  2104. int status_set_maxhp(struct block_list *bl, unsigned int hp, int flag);
  2105. int status_set_sp(struct block_list *bl, unsigned int sp, int flag);
  2106. int status_set_maxsp(struct block_list *bl, unsigned int hp, int flag);
  2107. int status_heal(struct block_list *bl,int64 hhp,int64 hsp, int flag);
  2108. int status_revive(struct block_list *bl, unsigned char per_hp, unsigned char per_sp);
  2109. struct regen_data *status_get_regen_data(struct block_list *bl);
  2110. struct status_data *status_get_status_data(struct block_list *bl);
  2111. struct status_data *status_get_base_status(struct block_list *bl);
  2112. const char * status_get_name(struct block_list *bl);
  2113. int status_get_class(struct block_list *bl);
  2114. int status_get_lv(struct block_list *bl);
  2115. #define status_get_range(bl) status_get_status_data(bl)->rhw.range
  2116. #define status_get_hp(bl) status_get_status_data(bl)->hp
  2117. #define status_get_max_hp(bl) status_get_status_data(bl)->max_hp
  2118. #define status_get_sp(bl) status_get_status_data(bl)->sp
  2119. #define status_get_max_sp(bl) status_get_status_data(bl)->max_sp
  2120. #define status_get_str(bl) status_get_status_data(bl)->str
  2121. #define status_get_agi(bl) status_get_status_data(bl)->agi
  2122. #define status_get_vit(bl) status_get_status_data(bl)->vit
  2123. #define status_get_int(bl) status_get_status_data(bl)->int_
  2124. #define status_get_dex(bl) status_get_status_data(bl)->dex
  2125. #define status_get_luk(bl) status_get_status_data(bl)->luk
  2126. #define status_get_hit(bl) status_get_status_data(bl)->hit
  2127. #define status_get_flee(bl) status_get_status_data(bl)->flee
  2128. defType status_get_def(struct block_list *bl);
  2129. #define status_get_mdef(bl) status_get_status_data(bl)->mdef
  2130. #define status_get_flee2(bl) status_get_status_data(bl)->flee2
  2131. #define status_get_def2(bl) status_get_status_data(bl)->def2
  2132. #define status_get_mdef2(bl) status_get_status_data(bl)->mdef2
  2133. #define status_get_critical(bl) status_get_status_data(bl)->cri
  2134. #define status_get_batk(bl) status_get_status_data(bl)->batk
  2135. #define status_get_watk(bl) status_get_status_data(bl)->rhw.atk
  2136. #define status_get_watk2(bl) status_get_status_data(bl)->rhw.atk2
  2137. #define status_get_matk_max(bl) status_get_status_data(bl)->matk_max
  2138. #define status_get_matk_min(bl) status_get_status_data(bl)->matk_min
  2139. #define status_get_lwatk(bl) status_get_status_data(bl)->lhw.atk
  2140. #define status_get_lwatk2(bl) status_get_status_data(bl)->lhw.atk2
  2141. unsigned short status_get_speed(struct block_list *bl);
  2142. #define status_get_adelay(bl) status_get_status_data(bl)->adelay
  2143. #define status_get_amotion(bl) status_get_status_data(bl)->amotion
  2144. #define status_get_dmotion(bl) status_get_status_data(bl)->dmotion
  2145. #define status_get_element(bl) status_get_status_data(bl)->def_ele
  2146. #define status_get_element_level(bl) status_get_status_data(bl)->ele_lv
  2147. unsigned char status_calc_attack_element(struct block_list *bl, struct status_change *sc, int element);
  2148. #define status_get_attack_sc_element(bl, sc) status_calc_attack_element(bl, sc, 0)
  2149. #define status_get_attack_element(bl) status_get_status_data(bl)->rhw.ele
  2150. #define status_get_attack_lelement(bl) status_get_status_data(bl)->lhw.ele
  2151. #define status_get_race(bl) status_get_status_data(bl)->race
  2152. #define status_get_class_(bl) status_get_status_data(bl)->class_
  2153. #define status_get_size(bl) status_get_status_data(bl)->size
  2154. #define status_get_mode(bl) status_get_status_data(bl)->mode
  2155. #define status_has_mode(status,md) (((status)->mode&(md)) == (md))
  2156. #define status_bl_has_mode(bl,md) status_has_mode(status_get_status_data((bl)),(md))
  2157. #define status_get_homstr(bl) (status->str + ((TBL_HOM*)bl)->homunculus.str_value)
  2158. #define status_get_homagi(bl) (status->agi + ((TBL_HOM*)bl)->homunculus.agi_value)
  2159. #define status_get_homvit(bl) (status->vit + ((TBL_HOM*)bl)->homunculus.vit_value)
  2160. #define status_get_homint(bl) (status->int_ + ((TBL_HOM*)bl)->homunculus.int_value)
  2161. #define status_get_homdex(bl) (status->dex + ((TBL_HOM*)bl)->homunculus.dex_value)
  2162. #define status_get_homluk(bl) (status->luk + ((TBL_HOM*)bl)->homunculus.luk_value)
  2163. int status_get_party_id(struct block_list *bl);
  2164. int status_get_guild_id(struct block_list *bl);
  2165. int status_get_emblem_id(struct block_list *bl);
  2166. enum e_race2 status_get_race2(struct block_list *bl);
  2167. struct view_data *status_get_viewdata(struct block_list *bl);
  2168. void status_set_viewdata(struct block_list *bl, int class_);
  2169. void status_change_init(struct block_list *bl);
  2170. struct status_change *status_get_sc(struct block_list *bl);
  2171. int status_isdead(struct block_list *bl);
  2172. int status_isimmune(struct block_list *bl);
  2173. int status_get_sc_def(struct block_list *src,struct block_list *bl, enum sc_type type, int rate, int tick, unsigned char flag);
  2174. //Short version, receives rate in 1->100 range, and does not uses a flag setting.
  2175. #define sc_start(src, bl, type, rate, val1, tick) status_change_start(src,bl,type,100*(rate),val1,0,0,0,tick,SCSTART_NONE)
  2176. #define sc_start2(src, bl, type, rate, val1, val2, tick) status_change_start(src,bl,type,100*(rate),val1,val2,0,0,tick,SCSTART_NONE)
  2177. #define sc_start4(src, bl, type, rate, val1, val2, val3, val4, tick) status_change_start(src,bl,type,100*(rate),val1,val2,val3,val4,tick,SCSTART_NONE)
  2178. 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,int tick,unsigned char flag);
  2179. int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const char* file, int line);
  2180. #define status_change_end(bl,type,tid) status_change_end_(bl,type,tid,__FILE__,__LINE__)
  2181. int kaahi_heal_timer(int tid, unsigned int tick, int id, intptr_t data);
  2182. int status_change_timer(int tid, unsigned int tick, int id, intptr_t data);
  2183. int status_change_timer_sub(struct block_list* bl, va_list ap);
  2184. int status_change_clear(struct block_list* bl, int type);
  2185. void status_change_clear_buffs(struct block_list* bl, uint8 type);
  2186. void status_change_clear_onChangeMap(struct block_list *bl, struct status_change *sc);
  2187. #define status_calc_bl(bl, flag) status_calc_bl_(bl, (enum scb_flag)(flag), SCO_NONE)
  2188. #define status_calc_mob(md, opt) status_calc_bl_(&(md)->bl, SCB_ALL, opt)
  2189. #define status_calc_pet(pd, opt) status_calc_bl_(&(pd)->bl, SCB_ALL, opt)
  2190. #define status_calc_pc(sd, opt) status_calc_bl_(&(sd)->bl, SCB_ALL, opt)
  2191. #define status_calc_homunculus(hd, opt) status_calc_bl_(&(hd)->bl, SCB_ALL, opt)
  2192. #define status_calc_mercenary(md, opt) status_calc_bl_(&(md)->bl, SCB_ALL, opt)
  2193. #define status_calc_elemental(ed, opt) status_calc_bl_(&(ed)->bl, SCB_ALL, opt)
  2194. #define status_calc_npc(nd, opt) status_calc_bl_(&(nd)->bl, SCB_ALL, opt)
  2195. bool status_calc_weight(struct map_session_data *sd, uint8 flag);
  2196. bool status_calc_cart_weight(struct map_session_data *sd, uint8 flag);
  2197. void status_calc_bl_(struct block_list *bl, enum scb_flag flag, enum e_status_calc_opt opt);
  2198. int status_calc_mob_(struct mob_data* md, enum e_status_calc_opt opt);
  2199. void status_calc_pet_(struct pet_data* pd, enum e_status_calc_opt opt);
  2200. int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt);
  2201. int status_calc_homunculus_(struct homun_data *hd, enum e_status_calc_opt opt);
  2202. int status_calc_mercenary_(struct mercenary_data *md, enum e_status_calc_opt opt);
  2203. int status_calc_elemental_(struct elemental_data *ed, enum e_status_calc_opt opt);
  2204. int status_calc_npc_(struct npc_data *nd, enum e_status_calc_opt opt);
  2205. void status_calc_misc(struct block_list *bl, struct status_data *status, int level);
  2206. void status_calc_regen(struct block_list *bl, struct status_data *status, struct regen_data *regen);
  2207. void status_calc_regen_rate(struct block_list *bl, struct regen_data *regen, struct status_change *sc);
  2208. void status_calc_slave_mode(struct mob_data *md, struct mob_data *mmd);
  2209. bool status_check_skilluse(struct block_list *src, struct block_list *target, uint16 skill_id, int flag);
  2210. int status_check_visibility(struct block_list *src, struct block_list *target);
  2211. int status_change_spread(struct block_list *src, struct block_list *bl, bool type);
  2212. #ifndef RENEWAL
  2213. unsigned short status_base_matk_min(const struct status_data* status);
  2214. unsigned short status_base_matk_max(const struct status_data* status);
  2215. #else
  2216. unsigned int status_weapon_atk(struct weapon_atk wa, struct map_session_data *sd);
  2217. unsigned short status_base_matk(struct block_list *bl, const struct status_data* status, int level);
  2218. #endif
  2219. unsigned short status_base_atk(const struct block_list *bl, const struct status_data *status);
  2220. void initChangeTables(void);
  2221. int status_readdb(void);
  2222. int do_init_status(void);
  2223. void do_final_status(void);
  2224. #endif /* _STATUS_H_ */