status.hpp 85 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693
  1. // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
  2. // For more information, see LICENCE in the main folder
  3. #ifndef STATUS_HPP
  4. #define STATUS_HPP
  5. #include <algorithm>
  6. #include <bitset>
  7. #include <memory>
  8. #include <unordered_map>
  9. #include <vector>
  10. #include <common/database.hpp>
  11. #include <common/mmo.hpp>
  12. #include <common/timer.hpp>
  13. #include "map.hpp"
  14. #include "script.hpp"
  15. enum e_race2 : uint8;
  16. struct block_list;
  17. struct mob_data;
  18. struct pet_data;
  19. struct homun_data;
  20. struct s_mercenary_data;
  21. struct s_elemental_data;
  22. struct npc_data;
  23. class status_change;
  24. /**
  25. * Max Refine available to your server
  26. **/
  27. #ifdef RENEWAL
  28. # define MAX_REFINE 20
  29. #else
  30. # define MAX_REFINE 10
  31. #endif
  32. /**
  33. * Minimum ASPD (maximum delay between attacks)
  34. * Default value of 8000 effectively results in a minimum ASPD of -200 for players
  35. */
  36. #ifndef MIN_ASPD
  37. #define MIN_ASPD 8000
  38. #endif
  39. /**
  40. * Maximum ASPD for non-players (minimum delay between attacks)
  41. * This is applied after ASPD adjustments, so a monster can theoretically be naturally faster than this
  42. * Officially no buff can reduce the delay below 100ms
  43. * This is also the default value for monsters if AttackMotion and AttackDelay are not defined
  44. * The maximum ASPD for players is defined in player.conf
  45. */
  46. #ifndef MAX_ASPD_NOPC
  47. #define MAX_ASPD_NOPC 100
  48. #endif
  49. // DO NOT MODIFY THESE!
  50. // The amotion divider defines the relation between amotion and adelay
  51. // For players amotion is half of adelay
  52. #define AMOTION_DIVIDER_PC 2
  53. // For monsters, homunculus, mercenaries and elementals, amotion and adelay are equal or independent
  54. #define AMOTION_DIVIDER_NOPC 1
  55. // Value for amotion that is represented as 0 ASPD on the client
  56. #define AMOTION_ZERO_ASPD 2000
  57. // Value that represents by how much each ASPD point reduces amotion
  58. #define AMOTION_INTERVAL 10
  59. /// Refine type
  60. enum e_refine_type : uint16{
  61. REFINE_TYPE_ARMOR = 0,
  62. REFINE_TYPE_WEAPON,
  63. REFINE_TYPE_SHADOW_ARMOR,
  64. REFINE_TYPE_SHADOW_WEAPON,
  65. REFINE_TYPE_MAX
  66. };
  67. /// Refine cost type
  68. enum e_refine_cost_type : uint16{
  69. REFINE_COST_NORMAL = 0,
  70. REFINE_COST_HD,
  71. REFINE_COST_ENRICHED,
  72. REFINE_COST_MAX
  73. };
  74. /// Refine script parameters
  75. enum e_refine_parameter{
  76. REFINE_MATERIAL_ID = 0,
  77. REFINE_ZENY_COST
  78. };
  79. struct s_refine_cost{
  80. uint16 index;
  81. t_itemid nameid;
  82. uint16 chance;
  83. uint32 zeny;
  84. uint16 breaking_rate;
  85. uint16 downgrade_amount;
  86. };
  87. struct s_refine_level_info{
  88. uint16 level;
  89. uint32 bonus;
  90. uint32 randombonus_max;
  91. uint16 blessing_amount;
  92. bool broadcast_success;
  93. bool broadcast_failure;
  94. std::unordered_map<uint16, std::shared_ptr<s_refine_cost>> costs;
  95. };
  96. struct s_refine_levels_info{
  97. uint16 level;
  98. std::unordered_map<uint16, std::shared_ptr<s_refine_level_info>> levels;
  99. };
  100. struct s_refine_info{
  101. uint16 groupId;
  102. std::unordered_map<uint16, std::shared_ptr<s_refine_levels_info>> levels;
  103. };
  104. class RefineDatabase : public TypesafeYamlDatabase<uint16, s_refine_info>{
  105. private:
  106. bool calculate_refine_info( const struct item_data& data, e_refine_type& refine_type, uint16& level );
  107. std::shared_ptr<s_refine_level_info> findLevelInfoSub( const struct item_data& data, struct item& item, uint16 refine );
  108. public:
  109. RefineDatabase() : TypesafeYamlDatabase( "REFINE_DB", 2, 1 ){
  110. }
  111. const std::string getDefaultLocation() override;
  112. uint64 parseBodyNode( const ryml::NodeRef& node ) override;
  113. // Additional
  114. std::shared_ptr<s_refine_level_info> findLevelInfo( const struct item_data& data, struct item& item );
  115. std::shared_ptr<s_refine_level_info> findCurrentLevelInfo( const struct item_data& data, struct item& item );
  116. };
  117. extern RefineDatabase refine_db;
  118. /// Weapon attack modification for size
  119. struct s_sizefix_db {
  120. uint16 small, medium, large;
  121. };
  122. class SizeFixDatabase : public TypesafeYamlDatabase<int32, s_sizefix_db> {
  123. public:
  124. SizeFixDatabase() : TypesafeYamlDatabase("SIZE_FIX_DB", 1) {
  125. }
  126. const std::string getDefaultLocation() override;
  127. uint64 parseBodyNode(const ryml::NodeRef& node) override;
  128. };
  129. extern SizeFixDatabase size_fix_db;
  130. class AttributeDatabase : public YamlDatabase {
  131. private:
  132. int16 attr_fix_table[MAX_ELE_LEVEL][ELE_MAX][ELE_MAX];
  133. public:
  134. AttributeDatabase() : YamlDatabase("ATTRIBUTE_DB", 1) {
  135. this->clear();
  136. }
  137. void clear() override{
  138. std::fill_n(&attr_fix_table[0][0][0], MAX_ELE_LEVEL * ELE_MAX * ELE_MAX, 100);
  139. }
  140. const std::string getDefaultLocation() override;
  141. uint64 parseBodyNode(const ryml::NodeRef& node) override;
  142. // Additional
  143. int16 getAttribute(uint16 level, uint16 atk_ele, uint16 def_ele);
  144. };
  145. extern AttributeDatabase elemental_attribute_db;
  146. enum e_enchantgrade_result{
  147. ENCHANTGRADE_UPGRADE_SUCCESS,
  148. ENCHANTGRADE_UPGRADE_FAILED,
  149. ENCHANTGRADE_UPGRADE_DOWNGRADE,
  150. ENCHANTGRADE_UPGRADE_BREAK,
  151. ENCHANTGRADE_UPGRADE_PROTECTED,
  152. };
  153. struct s_enchantgradeoption{
  154. uint16 id;
  155. t_itemid item;
  156. uint16 amount;
  157. uint32 zeny;
  158. uint16 breaking_rate;
  159. uint16 downgrade_amount;
  160. };
  161. struct s_enchantgradelevel{
  162. e_enchantgrade grade;
  163. uint16 chances[MAX_REFINE + 1];
  164. uint16 bonus;
  165. bool announceSuccess;
  166. bool announceFail;
  167. struct{
  168. t_itemid item;
  169. uint16 amountPerStep;
  170. uint16 maximumSteps;
  171. uint16 chanceIncrease;
  172. }catalyst;
  173. std::map<uint16,std::shared_ptr<s_enchantgradeoption>> options;
  174. };
  175. struct s_enchantgrade{
  176. uint16 itemtype;
  177. std::map<uint16,std::map<e_enchantgrade,std::shared_ptr<s_enchantgradelevel>>> levels;
  178. };
  179. class EnchantgradeDatabase : public TypesafeYamlDatabase<uint16, s_enchantgrade>{
  180. public:
  181. EnchantgradeDatabase() : TypesafeYamlDatabase( "ENCHANTGRADE_DB", 3 ){
  182. }
  183. const std::string getDefaultLocation() override;
  184. uint64 parseBodyNode( const ryml::NodeRef& node ) override;
  185. void loadingFinished() override;
  186. // Additional
  187. std::shared_ptr<s_enchantgradelevel> findCurrentLevelInfo( const struct item_data& data, struct item& item );
  188. };
  189. extern EnchantgradeDatabase enchantgrade_db;
  190. /// Status changes listing. These code are for use by the server.
  191. enum sc_type : int16 {
  192. SC_NONE = -1,
  193. //First we enumerate common status ailments which are often used around.
  194. SC_STONE = 0,
  195. SC_COMMON_MIN = SC_STONE, // begin
  196. SC_FREEZE,
  197. SC_STUN,
  198. SC_SLEEP,
  199. SC_POISON,
  200. SC_CURSE,
  201. SC_SILENCE,
  202. SC_CONFUSION,
  203. SC_BLIND,
  204. SC_BLEEDING,
  205. SC_DPOISON, //10
  206. SC_STONEWAIT,
  207. SC_COMMON_MAX = SC_STONEWAIT, // end
  208. //Next up, we continue on 20, to leave enough room for additional "common" ailments in the future.
  209. SC_PROVOKE = 20,
  210. SC_ENDURE,
  211. SC_TWOHANDQUICKEN,
  212. SC_CONCENTRATE,
  213. SC_HIDING,
  214. SC_CLOAKING,
  215. SC_ENCPOISON,
  216. SC_POISONREACT,
  217. SC_QUAGMIRE,
  218. SC_ANGELUS,
  219. SC_BLESSING, //30
  220. SC_SIGNUMCRUCIS,
  221. SC_INCREASEAGI,
  222. SC_DECREASEAGI,
  223. SC_SLOWPOISON,
  224. SC_IMPOSITIO ,
  225. SC_SUFFRAGIUM,
  226. SC_ASPERSIO,
  227. SC_BENEDICTIO,
  228. SC_KYRIE,
  229. SC_MAGNIFICAT, //40
  230. SC_GLORIA,
  231. SC_AETERNA,
  232. SC_ADRENALINE,
  233. SC_WEAPONPERFECTION,
  234. SC_OVERTHRUST,
  235. SC_MAXIMIZEPOWER,
  236. SC_TRICKDEAD,
  237. SC_LOUD,
  238. SC_ENERGYCOAT,
  239. SC_BROKENARMOR, //50 - NOTE: These two aren't used anywhere, and they have an icon...
  240. SC_BROKENWEAPON,
  241. SC_HALLUCINATION,
  242. SC_WEIGHT50,
  243. SC_WEIGHT90,
  244. SC_ASPDPOTION0,
  245. SC_ASPDPOTION1,
  246. SC_ASPDPOTION2,
  247. SC_ASPDPOTION3,
  248. SC_SPEEDUP0,
  249. SC_SPEEDUP1, //60
  250. SC_ATKPOTION,
  251. SC_MATKPOTION,
  252. SC_WEDDING,
  253. SC_SLOWDOWN,
  254. SC_ANKLE,
  255. SC_KEEPING,
  256. SC_BARRIER,
  257. SC_STRIPWEAPON,
  258. SC_STRIPSHIELD,
  259. SC_STRIPARMOR, //70
  260. SC_STRIPHELM,
  261. SC_CP_WEAPON,
  262. SC_CP_SHIELD,
  263. SC_CP_ARMOR,
  264. SC_CP_HELM,
  265. SC_AUTOGUARD,
  266. SC_REFLECTSHIELD,
  267. SC_SPLASHER,
  268. SC_PROVIDENCE,
  269. SC_DEFENDER, //80
  270. SC_MAGICROD,
  271. SC_SPELLBREAKER,
  272. SC_AUTOSPELL,
  273. SC_SIGHTTRASHER,
  274. SC_AUTOBERSERK,
  275. SC_SPEARQUICKEN,
  276. SC_AUTOCOUNTER,
  277. SC_SIGHT,
  278. SC_SAFETYWALL,
  279. SC_RUWACH, //90
  280. SC_EXTREMITYFIST,
  281. SC_EXPLOSIONSPIRITS,
  282. SC_COMBO,
  283. SC_BLADESTOP_WAIT,
  284. SC_BLADESTOP,
  285. SC_FIREWEAPON,
  286. SC_WATERWEAPON,
  287. SC_WINDWEAPON,
  288. SC_EARTHWEAPON,
  289. SC_VOLCANO, //100,
  290. SC_DELUGE,
  291. SC_VIOLENTGALE,
  292. SC_WATK_ELEMENT,
  293. SC_ARMOR,
  294. SC_ARMOR_ELEMENT_WATER,
  295. SC_NOCHAT,
  296. SC_PROTECTEXP,
  297. SC_AURABLADE,
  298. SC_PARRYING,
  299. SC_CONCENTRATION, //110
  300. SC_TENSIONRELAX,
  301. SC_BERSERK,
  302. SC_FURY,
  303. SC_GOSPEL,
  304. SC_ASSUMPTIO,
  305. SC_BASILICA,
  306. SC_GUILDAURA,
  307. SC_MAGICPOWER,
  308. SC_EDP,
  309. SC_TRUESIGHT, //120
  310. SC_WINDWALK,
  311. SC_MELTDOWN,
  312. SC_CARTBOOST,
  313. SC_CHASEWALK,
  314. SC_REJECTSWORD,
  315. SC_MARIONETTE,
  316. SC_MARIONETTE2,
  317. SC_CHANGEUNDEAD,
  318. SC_JOINTBEAT,
  319. SC_MINDBREAKER, //130
  320. SC_MEMORIZE,
  321. SC_FOGWALL,
  322. SC_SPIDERWEB,
  323. SC_DEVOTION,
  324. SC_SACRIFICE,
  325. SC_STEELBODY,
  326. SC_ORCISH,
  327. SC_READYSTORM,
  328. SC_READYDOWN,
  329. SC_READYTURN, //140
  330. SC_READYCOUNTER,
  331. SC_DODGE,
  332. SC_RUN,
  333. SC_SHADOWWEAPON,
  334. SC_ADRENALINE2,
  335. SC_GHOSTWEAPON,
  336. SC_KAIZEL,
  337. SC_KAAHI,
  338. SC_KAUPE,
  339. SC_ONEHAND, //150
  340. SC_PRESERVE,
  341. SC_BATTLEORDERS,
  342. SC_REGENERATION,
  343. SC_DOUBLECAST,
  344. SC_GRAVITATION,
  345. SC_MAXOVERTHRUST,
  346. SC_LONGING,
  347. SC_HERMODE,
  348. SC_SHRINK,
  349. SC_SIGHTBLASTER, //160
  350. SC_WINKCHARM,
  351. SC_CLOSECONFINE,
  352. SC_CLOSECONFINE2,
  353. SC_DANCING,
  354. SC_ELEMENTALCHANGE,
  355. SC_RICHMANKIM,
  356. SC_ETERNALCHAOS,
  357. SC_DRUMBATTLE,
  358. SC_NIBELUNGEN,
  359. SC_ROKISWEIL, //170
  360. SC_INTOABYSS,
  361. SC_SIEGFRIED,
  362. SC_WHISTLE,
  363. SC_ASSNCROS,
  364. SC_POEMBRAGI,
  365. SC_APPLEIDUN,
  366. SC_MODECHANGE,
  367. SC_HUMMING,
  368. SC_DONTFORGETME,
  369. SC_FORTUNE, //180
  370. SC_SERVICE4U,
  371. SC_STOP, //Prevents inflicted chars from walking. [Skotlex]
  372. SC_SPURT,
  373. SC_SPIRIT,
  374. SC_COMA, //Not a real SC_, it makes a char's HP/SP hit 1.
  375. SC_INTRAVISION,
  376. SC_INCALLSTATUS,
  377. SC_INCSTR,
  378. SC_INCAGI,
  379. SC_INCVIT, //190
  380. SC_INCINT,
  381. SC_INCDEX,
  382. SC_INCLUK,
  383. SC_INCHIT,
  384. SC_INCHITRATE,
  385. SC_INCFLEE,
  386. SC_INCFLEERATE,
  387. SC_INCMHPRATE,
  388. SC_INCMSPRATE,
  389. SC_INCATKRATE, //200
  390. SC_INCMATKRATE,
  391. SC_INCDEFRATE,
  392. SC_STRFOOD,
  393. SC_AGIFOOD,
  394. SC_VITFOOD,
  395. SC_INTFOOD,
  396. SC_DEXFOOD,
  397. SC_LUKFOOD,
  398. SC_HITFOOD,
  399. SC_FLEEFOOD, //210
  400. SC_BATKFOOD,
  401. SC_WATKFOOD,
  402. SC_MATKFOOD,
  403. SC_SCRESIST, //Increases resistance to status changes.
  404. SC_XMAS, // Xmas Suit [Valaris]
  405. SC_WARM, //SG skills [Komurka]
  406. SC_SUN_COMFORT,
  407. SC_MOON_COMFORT,
  408. SC_STAR_COMFORT,
  409. SC_FUSION, //220
  410. SC_SKILLRATE_UP,
  411. SC_SKE,
  412. SC_KAITE,
  413. SC_SWOO, // [marquis007]
  414. SC_SKA, // [marquis007]
  415. SC_EARTHSCROLL,
  416. SC_MIRACLE, //SG 'hidden' skill [Komurka]
  417. SC_MADNESSCANCEL,
  418. SC_ADJUSTMENT,
  419. SC_INCREASING, //230
  420. SC_GATLINGFEVER,
  421. SC_TATAMIGAESHI,
  422. SC_UTSUSEMI,
  423. SC_BUNSINJYUTSU,
  424. SC_KAENSIN,
  425. SC_SUITON,
  426. SC_NEN,
  427. SC_KNOWLEDGE,
  428. SC_SMA,
  429. SC_FLING, //240
  430. SC_AVOID,
  431. SC_CHANGE,
  432. SC_BLOODLUST,
  433. SC_FLEET,
  434. SC_SPEED,
  435. SC_DEFENCE,
  436. SC_INCASPDRATE,
  437. SC_INCFLEE2 = 248,
  438. SC_JAILED,
  439. SC_ENCHANTARMS, //250
  440. SC_MAGICALATTACK,
  441. SC_ARMORCHANGE,
  442. SC_CRITICALWOUND,
  443. SC_MAGICMIRROR,
  444. SC_SLOWCAST,
  445. SC_SUMMER,
  446. SC_EXPBOOST,
  447. SC_ITEMBOOST,
  448. SC_BOSSMAPINFO,
  449. SC_LIFEINSURANCE, //260
  450. SC_INCCRI,
  451. //SC_INCDEF,
  452. //SC_INCBASEATK = 263,
  453. //SC_FASTCAST,
  454. SC_MDEF_RATE = 265,
  455. //SC_HPREGEN,
  456. SC_INCHEALRATE = 267,
  457. SC_PNEUMA,
  458. SC_AUTOTRADE,
  459. SC_KSPROTECTED, //270
  460. SC_ARMOR_RESIST = 271,
  461. SC_SPCOST_RATE,
  462. SC_COMMONSC_RESIST,
  463. SC_SEVENWIND,
  464. SC_DEF_RATE,
  465. //SC_SPREGEN,
  466. SC_WALKSPEED = 277,
  467. // Mercenary Only Bonus Effects
  468. SC_MERC_FLEEUP,
  469. SC_MERC_ATKUP,
  470. SC_MERC_HPUP, //280
  471. SC_MERC_SPUP,
  472. SC_MERC_HITUP,
  473. SC_MERC_QUICKEN,
  474. SC_REBIRTH,
  475. //SC_SKILLCASTRATE, //285
  476. //SC_DEFRATIOATK,
  477. //SC_HPDRAIN,
  478. //SC_SKILLATKBONUS,
  479. SC_ITEMSCRIPT = 289,
  480. SC_S_LIFEPOTION, //290
  481. SC_L_LIFEPOTION,
  482. SC_JEXPBOOST,
  483. //SC_IGNOREDEF,
  484. SC_HELLPOWER = 294,
  485. SC_INVINCIBLE, //295
  486. //SC_INVINCIBLEOFF,
  487. SC_MANU_ATK = 297,
  488. SC_MANU_DEF,
  489. SC_SPL_ATK,
  490. SC_SPL_DEF, //300
  491. SC_MANU_MATK,
  492. SC_SPL_MATK,
  493. SC_FOOD_STR_CASH,
  494. SC_FOOD_AGI_CASH,
  495. SC_FOOD_VIT_CASH,
  496. SC_FOOD_DEX_CASH,
  497. SC_FOOD_INT_CASH,
  498. SC_FOOD_LUK_CASH,//308
  499. /**
  500. * 3rd
  501. **/
  502. SC_FEAR,//309
  503. SC_BURNING,//310
  504. SC_FREEZING,//311
  505. /**
  506. * Rune Knight
  507. **/
  508. SC_ENCHANTBLADE,//312
  509. SC_DEATHBOUND,//313
  510. SC_MILLENNIUMSHIELD,
  511. SC_CRUSHSTRIKE,//315
  512. SC_REFRESH,
  513. SC_REUSE_REFRESH,
  514. SC_GIANTGROWTH,
  515. SC_STONEHARDSKIN,
  516. SC_VITALITYACTIVATION,//320
  517. SC_STORMBLAST,
  518. SC_FIGHTINGSPIRIT,
  519. SC_ABUNDANCE,
  520. /**
  521. * Arch Bishop
  522. **/
  523. SC_ADORAMUS,
  524. SC_EPICLESIS,//325
  525. SC_ORATIO,
  526. SC_LAUDAAGNUS,
  527. SC_LAUDARAMUS,
  528. SC_RENOVATIO,
  529. SC_EXPIATIO,//330
  530. SC_DUPLELIGHT,
  531. SC_SECRAMENT,
  532. /**
  533. * Warlock
  534. **/
  535. SC_WHITEIMPRISON,
  536. SC_MARSHOFABYSS,
  537. SC_RECOGNIZEDSPELL,//335
  538. SC_STASIS,
  539. SC_SPHERE_1,
  540. SC_SPHERE_2,
  541. SC_SPHERE_3,
  542. SC_SPHERE_4,//340
  543. SC_SPHERE_5,
  544. SC_READING_SB,
  545. SC_FREEZE_SP,
  546. /**
  547. * Ranger
  548. **/
  549. SC_FEARBREEZE,
  550. SC_ELECTRICSHOCKER,//345
  551. SC_WUGDASH,
  552. SC_BITE,
  553. SC_CAMOUFLAGE,
  554. /**
  555. * Mechanic
  556. **/
  557. SC_ACCELERATION,
  558. SC_HOVERING,//350
  559. SC_SHAPESHIFT,
  560. SC_INFRAREDSCAN,
  561. SC_ANALYZE,
  562. SC_MAGNETICFIELD,
  563. SC_NEUTRALBARRIER,//355
  564. SC_NEUTRALBARRIER_MASTER,
  565. SC_STEALTHFIELD,
  566. SC_STEALTHFIELD_MASTER,
  567. SC_OVERHEAT,
  568. SC_OVERHEAT_LIMITPOINT,//360
  569. /**
  570. * Guillotine Cross
  571. **/
  572. SC_VENOMIMPRESS,
  573. SC_POISONINGWEAPON,
  574. SC_WEAPONBLOCKING,
  575. SC_CLOAKINGEXCEED,
  576. SC_HALLUCINATIONWALK,//365
  577. SC_HALLUCINATIONWALK_POSTDELAY,
  578. SC_ROLLINGCUTTER,
  579. SC_TOXIN,
  580. SC_PARALYSE,
  581. SC_VENOMBLEED,//370
  582. SC_MAGICMUSHROOM,
  583. SC_DEATHHURT,
  584. SC_PYREXIA,
  585. SC_OBLIVIONCURSE,
  586. SC_LEECHESEND,//375
  587. /**
  588. * Royal Guard
  589. **/
  590. SC_REFLECTDAMAGE,
  591. SC_FORCEOFVANGUARD,
  592. SC_SHIELDSPELL_HP,
  593. SC_SHIELDSPELL_SP,
  594. SC_SHIELDSPELL_ATK,//380
  595. SC_EXEEDBREAK,
  596. SC_PRESTIGE,
  597. SC_BANDING,
  598. SC_BANDING_DEFENCE,
  599. SC_EARTHDRIVE,//385
  600. SC_INSPIRATION,
  601. /**
  602. * Sorcerer
  603. **/
  604. SC_SPELLFIST,
  605. SC_CRYSTALIZE,
  606. SC_STRIKING,
  607. SC_WARMER,//390
  608. SC_VACUUM_EXTREME,
  609. SC_PROPERTYWALK,
  610. /**
  611. * Minstrel / Wanderer
  612. **/
  613. SC_SWINGDANCE,
  614. SC_SYMPHONYOFLOVER,
  615. SC_MOONLITSERENADE,//395
  616. SC_RUSHWINDMILL,
  617. SC_ECHOSONG,
  618. SC_HARMONIZE,
  619. SC_VOICEOFSIREN,
  620. SC_DEEPSLEEP,//400
  621. SC_SIRCLEOFNATURE,
  622. SC_GLOOMYDAY,
  623. SC_GLOOMYDAY_SK,
  624. SC_SONGOFMANA,
  625. SC_DANCEWITHWUG,//405
  626. SC_SATURDAYNIGHTFEVER,
  627. SC_LERADSDEW,
  628. SC_MELODYOFSINK,
  629. SC_BEYONDOFWARCRY,
  630. SC_UNLIMITEDHUMMINGVOICE,//410
  631. SC_SITDOWN_FORCE,
  632. SC_NETHERWORLD,
  633. /**
  634. * Sura
  635. **/
  636. SC_CRESCENTELBOW,
  637. SC_CURSEDCIRCLE_ATKER,
  638. SC_CURSEDCIRCLE_TARGET,
  639. SC_LIGHTNINGWALK,//416
  640. SC_RAISINGDRAGON,
  641. SC_GT_ENERGYGAIN,
  642. SC_GT_CHANGE,
  643. SC_GT_REVITALIZE,
  644. /**
  645. * Genetic
  646. **/
  647. SC_GN_CARTBOOST,//421
  648. SC_THORNSTRAP,
  649. SC_BLOODSUCKER,
  650. SC_SMOKEPOWDER,
  651. SC_TEARGAS,
  652. SC_MANDRAGORA,//426
  653. SC_STOMACHACHE,
  654. SC_MYSTERIOUS_POWDER,
  655. SC_MELON_BOMB,
  656. SC_BANANA_BOMB,
  657. SC_BANANA_BOMB_SITDOWN,//431
  658. SC_SAVAGE_STEAK,
  659. SC_COCKTAIL_WARG_BLOOD,
  660. SC_MINOR_BBQ,
  661. SC_SIROMA_ICE_TEA,
  662. SC_DROCERA_HERB_STEAMED,//436
  663. SC_PUTTI_TAILS_NOODLES,
  664. SC_BOOST500,
  665. SC_FULL_SWING_K,
  666. SC_MANA_PLUS,
  667. SC_MUSTLE_M,//441
  668. SC_LIFE_FORCE_F,
  669. SC_EXTRACT_WHITE_POTION_Z,
  670. SC_VITATA_500,
  671. SC_EXTRACT_SALAMINE_JUICE,
  672. /**
  673. * Shadow Chaser
  674. **/
  675. SC__REPRODUCE,//446
  676. SC__AUTOSHADOWSPELL,
  677. SC__SHADOWFORM,
  678. SC__BODYPAINT,
  679. SC__INVISIBILITY,
  680. SC__DEADLYINFECT,//451
  681. SC__ENERVATION,
  682. SC__GROOMY,
  683. SC__IGNORANCE,
  684. SC__LAZINESS,
  685. SC__UNLUCKY,//456
  686. SC__WEAKNESS,
  687. SC__STRIPACCESSORY,
  688. SC__MANHOLE,
  689. SC__BLOODYLUST,//460
  690. /**
  691. * Elemental Spirits
  692. **/
  693. SC_CIRCLE_OF_FIRE,
  694. SC_CIRCLE_OF_FIRE_OPTION,
  695. SC_FIRE_CLOAK,
  696. SC_FIRE_CLOAK_OPTION,
  697. SC_WATER_SCREEN,//465
  698. SC_WATER_SCREEN_OPTION,
  699. SC_WATER_DROP,
  700. SC_WATER_DROP_OPTION,
  701. SC_WATER_BARRIER,
  702. SC_WIND_STEP,//470
  703. SC_WIND_STEP_OPTION,
  704. SC_WIND_CURTAIN,
  705. SC_WIND_CURTAIN_OPTION,
  706. SC_ZEPHYR,
  707. SC_SOLID_SKIN,//475
  708. SC_SOLID_SKIN_OPTION,
  709. SC_STONE_SHIELD,
  710. SC_STONE_SHIELD_OPTION,
  711. SC_POWER_OF_GAIA,
  712. SC_PYROTECHNIC,//480
  713. SC_PYROTECHNIC_OPTION,
  714. SC_HEATER,
  715. SC_HEATER_OPTION,
  716. SC_TROPIC,
  717. SC_TROPIC_OPTION,//485
  718. SC_AQUAPLAY,
  719. SC_AQUAPLAY_OPTION,
  720. SC_COOLER,
  721. SC_COOLER_OPTION,
  722. SC_CHILLY_AIR,//490
  723. SC_CHILLY_AIR_OPTION,
  724. SC_GUST,
  725. SC_GUST_OPTION,
  726. SC_BLAST,
  727. SC_BLAST_OPTION,//495
  728. SC_WILD_STORM,
  729. SC_WILD_STORM_OPTION,
  730. SC_PETROLOGY,
  731. SC_PETROLOGY_OPTION,
  732. SC_CURSED_SOIL,//500
  733. SC_CURSED_SOIL_OPTION,
  734. SC_UPHEAVAL,
  735. SC_UPHEAVAL_OPTION,
  736. SC_TIDAL_WEAPON,
  737. SC_TIDAL_WEAPON_OPTION,//505
  738. SC_ROCK_CRUSHER,
  739. SC_ROCK_CRUSHER_ATK,
  740. /* Guild Aura */
  741. SC_LEADERSHIP,
  742. SC_GLORYWOUNDS,
  743. SC_SOULCOLD,
  744. SC_HAWKEYES,
  745. /* ... */
  746. SC_ODINS_POWER,
  747. SC_RAID,
  748. /* Sorcerer .extra */
  749. SC_FIRE_INSIGNIA,
  750. SC_WATER_INSIGNIA,
  751. SC_WIND_INSIGNIA, //516
  752. SC_EARTH_INSIGNIA,
  753. /* new pushcart */
  754. SC_PUSH_CART,
  755. /* Warlock Spell books */
  756. SC_SPELLBOOK1,
  757. SC_SPELLBOOK2,
  758. SC_SPELLBOOK3,
  759. SC_SPELLBOOK4,
  760. SC_SPELLBOOK5,
  761. SC_SPELLBOOK6,
  762. SC_MAXSPELLBOOK, // SC_SPELLBOOK7
  763. /* Max HP & SP */
  764. SC_INCMHP,
  765. SC_INCMSP,
  766. SC_PARTYFLEE,
  767. /**
  768. * Kagerou & Oboro [malufett]
  769. **/
  770. SC_MEIKYOUSISUI,
  771. SC_JYUMONJIKIRI,
  772. SC_KYOUGAKU,
  773. SC_IZAYOI,
  774. SC_ZENKAI,
  775. SC_KAGEHUMI,
  776. SC_KYOMU,
  777. SC_KAGEMUSYA,
  778. SC_ZANGETSU,
  779. SC_GENSOU,
  780. SC_AKAITSUKI,
  781. //homon S
  782. SC_STYLE_CHANGE,
  783. SC_TINDER_BREAKER,
  784. SC_TINDER_BREAKER2,
  785. SC_CBC,
  786. SC_EQC,
  787. SC_GOLDENE_FERSE,
  788. SC_ANGRIFFS_MODUS,
  789. SC_OVERED_BOOST,
  790. SC_LIGHT_OF_REGENE,
  791. SC_ASH,
  792. SC_GRANITIC_ARMOR,
  793. SC_MAGMA_FLOW,
  794. SC_PYROCLASTIC,
  795. SC_PARALYSIS,
  796. SC_PAIN_KILLER,
  797. SC_HANBOK,
  798. //Vellum Weapon reductions
  799. SC_DEFSET,
  800. SC_MDEFSET,
  801. SC_DARKCROW,
  802. SC_FULL_THROTTLE,
  803. SC_REBOUND,
  804. SC_UNLIMIT,
  805. SC_KINGS_GRACE,
  806. SC_TELEKINESIS_INTENSE,
  807. SC_OFFERTORIUM,
  808. SC_FRIGG_SONG,
  809. SC_MONSTER_TRANSFORM,
  810. SC_ANGEL_PROTECT,
  811. SC_ILLUSIONDOPING,
  812. SC_FLASHCOMBO,
  813. SC_MOONSTAR,
  814. SC_SUPER_STAR,
  815. /**
  816. * Rebellion [Cydh]
  817. **/
  818. SC_HEAT_BARREL,
  819. SC_MAGICALBULLET,
  820. SC_P_ALTER,
  821. SC_E_CHAIN,
  822. SC_C_MARKER,
  823. SC_ANTI_M_BLAST,
  824. SC_B_TRAP,
  825. SC_H_MINE,
  826. SC_QD_SHOT_READY,
  827. SC_MTF_ASPD,
  828. SC_MTF_RANGEATK,
  829. SC_MTF_MATK,
  830. SC_MTF_MLEATKED,
  831. SC_MTF_CRIDAMAGE,
  832. SC_OKTOBERFEST,
  833. SC_STRANGELIGHTS,
  834. SC_DECORATION_OF_MUSIC,
  835. SC_QUEST_BUFF1,
  836. SC_QUEST_BUFF2,
  837. SC_QUEST_BUFF3,
  838. SC_ALL_RIDING,
  839. SC_TEARGAS_SOB,
  840. SC__FEINTBOMB,
  841. SC__CHAOS,
  842. SC_CHASEWALK2,
  843. SC_VACUUM_EXTREME_POSTDELAY,
  844. SC_MTF_ASPD2,
  845. SC_MTF_RANGEATK2,
  846. SC_MTF_MATK2,
  847. SC_2011RWC_SCROLL,
  848. SC_JP_EVENT04,
  849. // 2014 Halloween Event
  850. SC_MTF_MHP,
  851. SC_MTF_MSP,
  852. SC_MTF_PUMPKIN,
  853. SC_MTF_HITFLEE,
  854. SC_CRIFOOD,
  855. SC_ATTHASTE_CASH,
  856. // Item Reuse Limits
  857. SC_REUSE_LIMIT_A,
  858. SC_REUSE_LIMIT_B,
  859. SC_REUSE_LIMIT_C,
  860. SC_REUSE_LIMIT_D,
  861. SC_REUSE_LIMIT_E,
  862. SC_REUSE_LIMIT_F,
  863. SC_REUSE_LIMIT_G,
  864. SC_REUSE_LIMIT_H,
  865. SC_REUSE_LIMIT_MTF,
  866. SC_REUSE_LIMIT_ASPD_POTION,
  867. SC_REUSE_MILLENNIUMSHIELD,
  868. SC_REUSE_CRUSHSTRIKE,
  869. SC_REUSE_STORMBLAST,
  870. SC_ALL_RIDING_REUSE_LIMIT,
  871. SC_REUSE_LIMIT_ECL,
  872. SC_REUSE_LIMIT_RECALL,
  873. SC_PROMOTE_HEALTH_RESERCH,
  874. SC_ENERGY_DRINK_RESERCH,
  875. SC_NORECOVER_STATE,
  876. /**
  877. * Summoner
  878. */
  879. SC_SUHIDE,
  880. SC_SU_STOOP,
  881. SC_SPRITEMABLE,
  882. SC_CATNIPPOWDER,
  883. SC_SV_ROOTTWIST,
  884. SC_BITESCAR,
  885. SC_ARCLOUSEDASH,
  886. SC_TUNAPARTY,
  887. SC_SHRIMP,
  888. SC_FRESHSHRIMP,
  889. SC_ACTIVE_MONSTER_TRANSFORM,
  890. SC_CLOUD_KILL, // Deprecated
  891. SC_LJOSALFAR,
  892. SC_MERMAID_LONGING,
  893. SC_HAT_EFFECT,
  894. SC_FLOWERSMOKE,
  895. SC_FSTONE,
  896. SC_HAPPINESS_STAR,
  897. SC_MAPLE_FALLS,
  898. SC_TIME_ACCESSORY,
  899. SC_MAGICAL_FEATHER,
  900. SC_GVG_GIANT,
  901. SC_GVG_GOLEM,
  902. SC_GVG_STUN,
  903. SC_GVG_STONE,
  904. SC_GVG_FREEZ,
  905. SC_GVG_SLEEP,
  906. SC_GVG_CURSE,
  907. SC_GVG_SILENCE,
  908. SC_GVG_BLIND,
  909. SC_CLAN_INFO,
  910. SC_SWORDCLAN,
  911. SC_ARCWANDCLAN,
  912. SC_GOLDENMACECLAN,
  913. SC_CROSSBOWCLAN,
  914. SC_JUMPINGCLAN,
  915. SC_TAROTCARD,
  916. // Geffen Magic Tournament Buffs
  917. SC_GEFFEN_MAGIC1,
  918. SC_GEFFEN_MAGIC2,
  919. SC_GEFFEN_MAGIC3,
  920. SC_MAXPAIN,
  921. SC_ARMOR_ELEMENT_EARTH,
  922. SC_ARMOR_ELEMENT_FIRE,
  923. SC_ARMOR_ELEMENT_WIND,
  924. SC_DAILYSENDMAILCNT,
  925. SC_DORAM_BUF_01,
  926. SC_DORAM_BUF_02,
  927. /**
  928. * Summoner - Extended
  929. */
  930. SC_HISS,
  931. SC_NYANGGRASS,
  932. SC_GROOMING,
  933. SC_SHRIMPBLESSING,
  934. SC_CHATTERING,
  935. SC_DORAM_WALKSPEED,
  936. SC_DORAM_MATK,
  937. SC_DORAM_FLEE2,
  938. SC_DORAM_SVSP,
  939. SC_FALLEN_ANGEL,
  940. SC_CHEERUP,
  941. SC_DRESSUP,
  942. // Old Glast Heim Buffs
  943. SC_GLASTHEIM_ATK,
  944. SC_GLASTHEIM_DEF,
  945. SC_GLASTHEIM_HEAL,
  946. SC_GLASTHEIM_HIDDEN,
  947. SC_GLASTHEIM_STATE,
  948. SC_GLASTHEIM_ITEMDEF,
  949. SC_GLASTHEIM_HPSP,
  950. // Nightmare Biolab Buffs
  951. SC_LHZ_DUN_N1,
  952. SC_LHZ_DUN_N2,
  953. SC_LHZ_DUN_N3,
  954. SC_LHZ_DUN_N4,
  955. SC_ANCILLA,
  956. SC_EARTHSHAKER,
  957. SC_WEAPONBLOCK_ON,
  958. SC_SPORE_EXPLOSION,
  959. SC_ADAPTATION,
  960. SC_BASILICA_CELL, // Used in renewal mode for cell_basilica only
  961. SC_ENTRY_QUEUE_APPLY_DELAY,
  962. SC_ENTRY_QUEUE_NOTIFY_ADMISSION_TIME_OUT,
  963. // Star Emperor
  964. SC_LIGHTOFMOON,
  965. SC_LIGHTOFSUN,
  966. SC_LIGHTOFSTAR,
  967. SC_LUNARSTANCE,
  968. SC_UNIVERSESTANCE,
  969. SC_SUNSTANCE,
  970. SC_FLASHKICK,
  971. SC_NEWMOON,
  972. SC_STARSTANCE,
  973. SC_DIMENSION,
  974. SC_DIMENSION1,
  975. SC_DIMENSION2,
  976. SC_CREATINGSTAR,
  977. SC_FALLINGSTAR,
  978. SC_NOVAEXPLOSING,
  979. SC_GRAVITYCONTROL,
  980. // Soul Reaper
  981. SC_SOULCOLLECT,
  982. SC_SOULREAPER,
  983. SC_SOULUNITY,
  984. SC_SOULSHADOW,
  985. SC_SOULFAIRY,
  986. SC_SOULFALCON,
  987. SC_SOULGOLEM,
  988. SC_SOULDIVISION,
  989. SC_SOULENERGY,
  990. SC_USE_SKILL_SP_SPA,
  991. SC_USE_SKILL_SP_SHA,
  992. SC_SP_SHA,
  993. SC_SOULCURSE,
  994. SC_HELLS_PLANT,
  995. SC_INCREASE_MAXHP, // EFST_ATKER_ASPD
  996. SC_INCREASE_MAXSP, // EFST_ATKER_MOVESPEED
  997. SC_REF_T_POTION,
  998. SC_ADD_ATK_DAMAGE,
  999. SC_ADD_MATK_DAMAGE,
  1000. SC_HELPANGEL,
  1001. SC_SOUNDOFDESTRUCTION,
  1002. SC_LUXANIMA,
  1003. SC_REUSE_LIMIT_LUXANIMA,
  1004. SC_ENSEMBLEFATIGUE,
  1005. SC_MISTY_FROST,
  1006. SC_MAGIC_POISON,
  1007. // ep16.2
  1008. SC_EP16_2_BUFF_SS,
  1009. SC_EP16_2_BUFF_SC,
  1010. SC_EP16_2_BUFF_AC,
  1011. // Job Improvement Bundle
  1012. SC_OVERBRANDREADY,
  1013. SC_POISON_MIST,
  1014. SC_STONE_WALL,
  1015. SC_CLOUD_POISON,
  1016. SC_HOMUN_TIME,
  1017. SC_EMERGENCY_MOVE,
  1018. SC_MADOGEAR,
  1019. SC_NPC_HALLUCINATIONWALK,
  1020. SC_PACKING_ENVELOPE1,
  1021. SC_PACKING_ENVELOPE2,
  1022. SC_PACKING_ENVELOPE3,
  1023. SC_PACKING_ENVELOPE4,
  1024. SC_PACKING_ENVELOPE5,
  1025. SC_PACKING_ENVELOPE6,
  1026. SC_PACKING_ENVELOPE7,
  1027. SC_PACKING_ENVELOPE8,
  1028. SC_PACKING_ENVELOPE9,
  1029. SC_PACKING_ENVELOPE10,
  1030. SC_SOULATTACK,
  1031. SC_WIDEWEB,
  1032. SC_BURNT,
  1033. SC_CHILL,
  1034. // 4th Job Common Status
  1035. SC_HANDICAPSTATE_DEEPBLIND,
  1036. SC_HANDICAPSTATE_DEEPSILENCE,
  1037. SC_HANDICAPSTATE_LASSITUDE,
  1038. SC_HANDICAPSTATE_FROSTBITE,
  1039. SC_HANDICAPSTATE_SWOONING,
  1040. SC_HANDICAPSTATE_LIGHTNINGSTRIKE,
  1041. SC_HANDICAPSTATE_CRYSTALLIZATION,
  1042. SC_HANDICAPSTATE_CONFLAGRATION,
  1043. SC_HANDICAPSTATE_MISFORTUNE,
  1044. SC_HANDICAPSTATE_DEADLYPOISON,
  1045. SC_HANDICAPSTATE_DEPRESSION,
  1046. SC_HANDICAPSTATE_HOLYFLAME,
  1047. // Dragon Knight
  1048. SC_SERVANTWEAPON,
  1049. SC_SERVANT_SIGN,
  1050. SC_CHARGINGPIERCE,
  1051. SC_CHARGINGPIERCE_COUNT,
  1052. SC_DRAGONIC_AURA,
  1053. SC_VIGOR,
  1054. // Arch Mage
  1055. SC_DEADLY_DEFEASANCE,
  1056. SC_CLIMAX_DES_HU,
  1057. SC_CLIMAX,
  1058. SC_CLIMAX_EARTH,
  1059. SC_CLIMAX_BLOOM,
  1060. SC_CLIMAX_CRYIMP,
  1061. // Windhawk
  1062. SC_WINDSIGN,
  1063. SC_CRESCIVEBOLT,
  1064. SC_CALAMITYGALE,
  1065. // Cardinal
  1066. SC_MEDIALE,
  1067. SC_A_VITA,
  1068. SC_A_TELUM,
  1069. SC_PRE_ACIES,
  1070. SC_COMPETENTIA,
  1071. SC_RELIGIO,
  1072. SC_BENEDICTUM,
  1073. // Meister
  1074. SC_AXE_STOMP,
  1075. SC_A_MACHINE,
  1076. SC_D_MACHINE,
  1077. SC_ABR_BATTLE_WARIOR,
  1078. SC_ABR_DUAL_CANNON,
  1079. SC_ABR_MOTHER_NET,
  1080. SC_ABR_INFINITY,
  1081. // Shadow Cross
  1082. SC_SHADOW_EXCEED,
  1083. SC_DANCING_KNIFE,
  1084. SC_POTENT_VENOM,
  1085. SC_SHADOW_SCAR,
  1086. SC_E_SLASH_COUNT,
  1087. SC_SHADOW_WEAPON,
  1088. // Imperial Guard
  1089. SC_GUARD_STANCE,
  1090. SC_ATTACK_STANCE,
  1091. SC_GUARDIAN_S,
  1092. SC_REBOUND_S,
  1093. SC_HOLY_S,
  1094. SC_ULTIMATE_S,
  1095. SC_SPEAR_SCAR,
  1096. SC_SHIELD_POWER,
  1097. // Elemental Master
  1098. SC_SPELL_ENCHANTING,
  1099. SC_SUMMON_ELEMENTAL_ARDOR,
  1100. SC_SUMMON_ELEMENTAL_DILUVIO,
  1101. SC_SUMMON_ELEMENTAL_PROCELLA,
  1102. SC_SUMMON_ELEMENTAL_TERREMOTUS,
  1103. SC_SUMMON_ELEMENTAL_SERPENS,
  1104. SC_ELEMENTAL_VEIL,
  1105. // Troubadour/Trouvere
  1106. SC_MYSTIC_SYMPHONY,
  1107. SC_KVASIR_SONATA,
  1108. SC_SOUNDBLEND,
  1109. SC_GEF_NOCTURN,
  1110. SC_AIN_RHAPSODY,
  1111. SC_MUSICAL_INTERLUDE,
  1112. SC_JAWAII_SERENADE,
  1113. SC_PRON_MARCH,
  1114. SC_ROSEBLOSSOM,
  1115. // Inquisitor
  1116. SC_POWERFUL_FAITH,
  1117. SC_SINCERE_FAITH,
  1118. SC_FIRM_FAITH,
  1119. SC_HOLY_OIL,
  1120. SC_FIRST_BRAND,
  1121. SC_SECOND_BRAND,
  1122. SC_SECOND_JUDGE,
  1123. SC_THIRD_EXOR_FLAME,
  1124. SC_FIRST_FAITH_POWER,
  1125. SC_MASSIVE_F_BLASTER,
  1126. // Biolo
  1127. SC_PROTECTSHADOWEQUIP,
  1128. SC_RESEARCHREPORT,
  1129. SC_BO_HELL_DUSTY,
  1130. SC_BIONIC_WOODENWARRIOR,
  1131. SC_BIONIC_WOODEN_FAIRY,
  1132. SC_BIONIC_CREEPER,
  1133. SC_BIONIC_HELLTREE,
  1134. // Abyss Chaser
  1135. SC_SHADOW_STRIP,
  1136. SC_ABYSS_DAGGER,
  1137. SC_ABYSSFORCEWEAPON,
  1138. SC_ABYSS_SLAYER,
  1139. // Super Elementals
  1140. SC_FLAMETECHNIC,
  1141. SC_FLAMETECHNIC_OPTION,
  1142. SC_FLAMEARMOR,
  1143. SC_FLAMEARMOR_OPTION,
  1144. SC_COLD_FORCE,
  1145. SC_COLD_FORCE_OPTION,
  1146. SC_CRYSTAL_ARMOR,
  1147. SC_CRYSTAL_ARMOR_OPTION,
  1148. SC_GRACE_BREEZE,
  1149. SC_GRACE_BREEZE_OPTION,
  1150. SC_EYES_OF_STORM,
  1151. SC_EYES_OF_STORM_OPTION,
  1152. SC_EARTH_CARE,
  1153. SC_EARTH_CARE_OPTION,
  1154. SC_STRONG_PROTECTION,
  1155. SC_STRONG_PROTECTION_OPTION,
  1156. SC_DEEP_POISONING,
  1157. SC_DEEP_POISONING_OPTION,
  1158. SC_POISON_SHIELD,
  1159. SC_POISON_SHIELD_OPTION,
  1160. SC_SUB_WEAPONPROPERTY,
  1161. SC_M_LIFEPOTION,
  1162. SC_S_MANAPOTION,
  1163. SC_ALMIGHTY,
  1164. SC_ULTIMATECOOK,
  1165. SC_M_DEFSCROLL,
  1166. SC_INFINITY_DRINK,
  1167. SC_MENTAL_POTION,
  1168. SC_LIMIT_POWER_BOOSTER,
  1169. SC_COMBAT_PILL,
  1170. SC_COMBAT_PILL2,
  1171. SC_MYSTICPOWDER,
  1172. SC_SPARKCANDY,
  1173. SC_MAGICCANDY,
  1174. SC_ACARAJE,
  1175. SC_POPECOOKIE,
  1176. SC_VITALIZE_POTION,
  1177. SC_CUP_OF_BOZA,
  1178. SC_SKF_MATK,
  1179. SC_SKF_ATK,
  1180. SC_SKF_ASPD,
  1181. SC_SKF_CAST,
  1182. SC_BEEF_RIB_STEW,
  1183. SC_PORK_RIB_STEW,
  1184. SC_WEAPONBREAKER,
  1185. // 2021 Mutated Homunculus Skills
  1186. SC_TOXIN_OF_MANDARA,
  1187. SC_GOLDENE_TONE,
  1188. SC_TEMPERING,
  1189. SC_GRADUAL_GRAVITY,
  1190. SC_ALL_STAT_DOWN,
  1191. SC_KILLING_AURA,
  1192. SC_DAMAGE_HEAL,
  1193. SC_IMMUNE_PROPERTY_NOTHING,
  1194. SC_IMMUNE_PROPERTY_WATER,
  1195. SC_IMMUNE_PROPERTY_GROUND,
  1196. SC_IMMUNE_PROPERTY_FIRE,
  1197. SC_IMMUNE_PROPERTY_WIND,
  1198. SC_IMMUNE_PROPERTY_POISON,
  1199. SC_IMMUNE_PROPERTY_SAINT,
  1200. SC_IMMUNE_PROPERTY_DARKNESS,
  1201. SC_IMMUNE_PROPERTY_TELEKINESIS,
  1202. SC_IMMUNE_PROPERTY_UNDEAD,
  1203. SC_RELIEVE_ON,
  1204. SC_RELIEVE_OFF,
  1205. SC_RUSH_QUAKE1,
  1206. SC_RUSH_QUAKE2,
  1207. SC_G_LIFEPOTION,
  1208. // Hyper Novice
  1209. SC_HNNOWEAPON,
  1210. SC_SHIELDCHAINRUSH,
  1211. SC_MISTYFROST,
  1212. SC_GROUNDGRAVITY,
  1213. SC_BREAKINGLIMIT,
  1214. SC_RULEBREAK,
  1215. // Night Watch
  1216. SC_INTENSIVE_AIM,
  1217. SC_INTENSIVE_AIM_COUNT,
  1218. SC_GRENADE_FRAGMENT_1,
  1219. SC_GRENADE_FRAGMENT_2,
  1220. SC_GRENADE_FRAGMENT_3,
  1221. SC_GRENADE_FRAGMENT_4,
  1222. SC_GRENADE_FRAGMENT_5,
  1223. SC_GRENADE_FRAGMENT_6,
  1224. SC_AUTO_FIRING_LAUNCHER,
  1225. SC_HIDDEN_CARD,
  1226. SC_PERIOD_RECEIVEITEM_2ND,
  1227. SC_PERIOD_PLUSEXP_2ND,
  1228. //SC_EXTREMITYFIST2,
  1229. SC_POWERUP = 951,
  1230. SC_AGIUP,
  1231. SC_PROTECTION,
  1232. SC_BATH_FOAM_A,
  1233. SC_BATH_FOAM_B,
  1234. SC_BATH_FOAM_C,
  1235. SC_BUCHEDENOEL,
  1236. SC_EP16_DEF,
  1237. SC_STR_SCROLL,
  1238. SC_INT_SCROLL,
  1239. SC_CONTENTS_1,
  1240. SC_CONTENTS_2,
  1241. SC_CONTENTS_3,
  1242. SC_CONTENTS_4,
  1243. SC_CONTENTS_5,
  1244. SC_CONTENTS_6,
  1245. SC_CONTENTS_7,
  1246. SC_CONTENTS_8,
  1247. SC_CONTENTS_9,
  1248. SC_CONTENTS_10,
  1249. SC_MYSTERY_POWDER,
  1250. SC_CONTENTS_26,
  1251. SC_CONTENTS_27,
  1252. SC_CONTENTS_28,
  1253. SC_CONTENTS_29,
  1254. SC_CONTENTS_31,
  1255. SC_CONTENTS_32,
  1256. SC_CONTENTS_33,
  1257. // Soul Ascetic
  1258. SC_TALISMAN_OF_PROTECTION,
  1259. SC_TALISMAN_OF_WARRIOR,
  1260. SC_TALISMAN_OF_MAGICIAN,
  1261. SC_TALISMAN_OF_FIVE_ELEMENTS,
  1262. SC_T_FIRST_GOD,
  1263. SC_T_SECOND_GOD,
  1264. SC_T_THIRD_GOD,
  1265. SC_T_FOURTH_GOD,
  1266. SC_T_FIFTH_GOD,
  1267. SC_HEAVEN_AND_EARTH,
  1268. SC_TOTEM_OF_TUTELARY,
  1269. SC_RETURN_TO_ELDICASTES,
  1270. SC_GUARDIAN_RECALL,
  1271. SC_ECLAGE_RECALL,
  1272. SC_ALL_NIFLHEIM_RECALL,
  1273. SC_ALL_PRONTERA_RECALL,
  1274. SC_ALL_GLASTHEIM_RECALL,
  1275. SC_ALL_THANATOS_RECALL,
  1276. SC_ALL_LIGHTHALZEN_RECALL,
  1277. // Spirit Handler
  1278. SC_HOGOGONG,
  1279. SC_MARINE_FESTIVAL,
  1280. SC_SANDY_FESTIVAL,
  1281. SC_KI_SUL_RAMPAGE,
  1282. SC_COLORS_OF_HYUN_ROK_1,
  1283. SC_COLORS_OF_HYUN_ROK_2,
  1284. SC_COLORS_OF_HYUN_ROK_3,
  1285. SC_COLORS_OF_HYUN_ROK_4,
  1286. SC_COLORS_OF_HYUN_ROK_5,
  1287. SC_COLORS_OF_HYUN_ROK_6,
  1288. SC_COLORS_OF_HYUN_ROK_BUFF,
  1289. SC_TEMPORARY_COMMUNION,
  1290. SC_BLESSING_OF_M_CREATURES,
  1291. SC_BLESSING_OF_M_C_DEBUFF,
  1292. // Sky Emperor
  1293. SC_RISING_SUN,
  1294. SC_NOON_SUN,
  1295. SC_SUNSET_SUN,
  1296. SC_RISING_MOON,
  1297. SC_MIDNIGHT_MOON,
  1298. SC_DAWN_MOON,
  1299. SC_STAR_BURST,
  1300. SC_SKY_ENCHANT,
  1301. SC_WILD_WALK,
  1302. SC_MAX, //Automatically updated max, used in for's to check we are within bounds.
  1303. };
  1304. /// Official status change ids, used to display status icons on the client.
  1305. enum efst_type : int16{
  1306. /// Do not modify code below this, until the end of the API hook, since it will be automatically generated again
  1307. /// @APIHOOK_START(EFST_ENUM)
  1308. EFST_BLANK = -1,
  1309. EFST_PROVOKE,
  1310. EFST_ENDURE,
  1311. EFST_TWOHANDQUICKEN,
  1312. EFST_CONCENTRATION,
  1313. EFST_HIDING,
  1314. EFST_CLOAKING,
  1315. EFST_ENCHANTPOISON,
  1316. EFST_POISONREACT,
  1317. EFST_QUAGMIRE,
  1318. EFST_ANGELUS,
  1319. EFST_BLESSING,
  1320. EFST_CRUCIS,
  1321. EFST_INC_AGI,
  1322. EFST_DEC_AGI,
  1323. EFST_SLOWPOISON,
  1324. EFST_IMPOSITIO,
  1325. EFST_SUFFRAGIUM,
  1326. EFST_ASPERSIO,
  1327. EFST_BENEDICTIO,
  1328. EFST_KYRIE,
  1329. EFST_MAGNIFICAT,
  1330. EFST_GLORIA,
  1331. EFST_LEXAETERNA,
  1332. EFST_ADRENALINE,
  1333. EFST_WEAPONPERFECT,
  1334. EFST_OVERTHRUST,
  1335. EFST_MAXIMIZE,
  1336. EFST_RIDING,
  1337. EFST_FALCON,
  1338. EFST_TRICKDEAD,
  1339. EFST_SHOUT,
  1340. EFST_ENERGYCOAT,
  1341. EFST_BROKENARMOR,
  1342. EFST_BROKENWEAPON,
  1343. EFST_ILLUSION,
  1344. EFST_WEIGHTOVER50,
  1345. EFST_WEIGHTOVER90,
  1346. EFST_ATTHASTE_POTION1,
  1347. EFST_ATTHASTE_POTION2,
  1348. EFST_ATTHASTE_POTION3,
  1349. EFST_ATTHASTE_INFINITY,
  1350. EFST_MOVHASTE_POTION,
  1351. EFST_MOVHASTE_INFINITY,
  1352. EFST_AUTOCOUNTER,
  1353. EFST_SPLASHER,
  1354. EFST_ANKLESNARE,
  1355. EFST_POSTDELAY,
  1356. EFST_NOACTION,
  1357. EFST_IMPOSSIBLEPICKUP,
  1358. EFST_BARRIER,
  1359. EFST_NOEQUIPWEAPON,
  1360. EFST_NOEQUIPSHIELD,
  1361. EFST_NOEQUIPARMOR,
  1362. EFST_NOEQUIPHELM,
  1363. EFST_PROTECTWEAPON,
  1364. EFST_PROTECTSHIELD,
  1365. EFST_PROTECTARMOR,
  1366. EFST_PROTECTHELM,
  1367. EFST_AUTOGUARD,
  1368. EFST_REFLECTSHIELD,
  1369. EFST_DEVOTION,
  1370. EFST_PROVIDENCE,
  1371. EFST_DEFENDER,
  1372. EFST_MAGICROD,
  1373. EFST_WEAPONPROPERTY,
  1374. EFST_AUTOSPELL,
  1375. EFST_SPECIALZONE,
  1376. EFST_MASK,
  1377. EFST_SPEARQUICKEN,
  1378. EFST_BDPLAYING,
  1379. EFST_WHISTLE,
  1380. EFST_ASSASSINCROSS,
  1381. EFST_POEMBRAGI,
  1382. EFST_APPLEIDUN,
  1383. EFST_HUMMING,
  1384. EFST_DONTFORGETME,
  1385. EFST_FORTUNEKISS,
  1386. EFST_SERVICEFORYOU,
  1387. EFST_RICHMANKIM,
  1388. EFST_ETERNALCHAOS,
  1389. EFST_DRUMBATTLEFIELD,
  1390. EFST_RINGNIBELUNGEN,
  1391. EFST_ROKISWEIL,
  1392. EFST_INTOABYSS,
  1393. EFST_SIEGFRIED,
  1394. EFST_BLADESTOP,
  1395. EFST_EXPLOSIONSPIRITS,
  1396. EFST_STEELBODY,
  1397. EFST_EXTREMITYFIST,
  1398. EFST_COMBOATTACK,
  1399. EFST_PROPERTYFIRE,
  1400. EFST_PROPERTYWATER,
  1401. EFST_PROPERTYWIND,
  1402. EFST_PROPERTYGROUND,
  1403. EFST_MAGICATTACK,
  1404. EFST_STOP,
  1405. EFST_WEAPONBRAKER,
  1406. EFST_PROPERTYUNDEAD,
  1407. EFST_POWERUP,
  1408. EFST_AGIUP,
  1409. EFST_SIEGEMODE,
  1410. EFST_INVISIBLE,
  1411. EFST_STATUSONE,
  1412. EFST_AURABLADE,
  1413. EFST_PARRYING,
  1414. EFST_LKCONCENTRATION,
  1415. EFST_TENSIONRELAX,
  1416. EFST_BERSERK,
  1417. EFST_SACRIFICE,
  1418. EFST_GOSPEL,
  1419. EFST_ASSUMPTIO,
  1420. EFST_BASILICA,
  1421. EFST_GROUNDMAGIC,
  1422. EFST_MAGICPOWER,
  1423. EFST_EDP,
  1424. EFST_TRUESIGHT,
  1425. EFST_WINDWALK,
  1426. EFST_MELTDOWN,
  1427. EFST_CARTBOOST,
  1428. EFST_CHASEWALK,
  1429. EFST_SWORDREJECT,
  1430. EFST_MARIONETTE_MASTER,
  1431. EFST_MARIONETTE,
  1432. EFST_MOON,
  1433. EFST_BLOODING,
  1434. EFST_JOINTBEAT,
  1435. EFST_MINDBREAKER,
  1436. EFST_MEMORIZE,
  1437. EFST_FOGWALL,
  1438. EFST_SPIDERWEB,
  1439. EFST_PROTECTEXP,
  1440. EFST_SUB_WEAPONPROPERTY,
  1441. EFST_AUTOBERSERK,
  1442. EFST_RUN,
  1443. EFST_TING,
  1444. EFST_STORMKICK_ON,
  1445. EFST_STORMKICK_READY,
  1446. EFST_DOWNKICK_ON,
  1447. EFST_DOWNKICK_READY,
  1448. EFST_TURNKICK_ON,
  1449. EFST_TURNKICK_READY,
  1450. EFST_COUNTER_ON,
  1451. EFST_COUNTER_READY,
  1452. EFST_DODGE_ON,
  1453. EFST_DODGE_READY,
  1454. EFST_STRUP,
  1455. EFST_PROPERTYDARK,
  1456. EFST_ADRENALINE2,
  1457. EFST_PROPERTYTELEKINESIS,
  1458. EFST_SOULLINK,
  1459. EFST_PLUSATTACKPOWER,
  1460. EFST_PLUSMAGICPOWER,
  1461. EFST_DEVIL1,
  1462. EFST_KAITE,
  1463. EFST_SWOO,
  1464. EFST_STAR2,
  1465. EFST_KAIZEL,
  1466. EFST_KAAHI,
  1467. EFST_KAUPE,
  1468. EFST_SMA_READY,
  1469. EFST_SKE,
  1470. EFST_ONEHANDQUICKEN,
  1471. EFST_FRIEND,
  1472. EFST_FRIENDUP,
  1473. EFST_SG_WARM,
  1474. EFST_SG_SUN_WARM,
  1475. EFST_SG_MOON_WARM,
  1476. EFST_SG_STAR_WARM,
  1477. EFST_EMOTION,
  1478. EFST_SUN_COMFORT,
  1479. EFST_MOON_COMFORT,
  1480. EFST_STAR_COMFORT,
  1481. EFST_EXPUP,
  1482. EFST_GDSKILL_BATTLEORDER,
  1483. EFST_GDSKILL_REGENERATION,
  1484. EFST_GDSKILL_POSTDELAY,
  1485. EFST_RESISTHANDICAP,
  1486. EFST_MAXHPPERCENT,
  1487. EFST_MAXSPPERCENT,
  1488. EFST_DEFENCE,
  1489. EFST_SLOWDOWN,
  1490. EFST_PRESERVE,
  1491. EFST_CHASEWALK2,
  1492. EFST_NOT_EXTREMITYFIST,
  1493. EFST_CLAIRVOYANCE,
  1494. EFST_MOVESLOW_POTION,
  1495. EFST_DOUBLECASTING,
  1496. EFST_GRAVITATION,
  1497. EFST_OVERTHRUSTMAX,
  1498. EFST_LONGING,
  1499. EFST_HERMODE,
  1500. EFST_TAROTCARD,
  1501. EFST_HLIF_AVOID,
  1502. EFST_HFLI_FLEET,
  1503. EFST_HFLI_SPEED,
  1504. EFST_HLIF_CHANGE,
  1505. EFST_HAMI_BLOODLUST,
  1506. EFST_CR_SHRINK,
  1507. EFST_WZ_SIGHTBLASTER,
  1508. EFST_DC_WINKCHARM,
  1509. EFST_RG_CCONFINE_M,
  1510. EFST_RG_CCONFINE_S,
  1511. EFST_DISABLEMOVE,
  1512. EFST_GS_MADNESSCANCEL,
  1513. EFST_GS_GATLINGFEVER,
  1514. EFST_EARTHSCROLL,
  1515. EFST_NJ_UTSUSEMI,
  1516. EFST_NJ_BUNSINJYUTSU,
  1517. EFST_NJ_NEN,
  1518. EFST_GS_ADJUSTMENT,
  1519. EFST_GS_ACCURACY,
  1520. EFST_NJ_SUITON,
  1521. EFST_PET,
  1522. EFST_MENTAL,
  1523. EFST_EXPMEMORY,
  1524. EFST_PERFORMANCE,
  1525. EFST_GAIN,
  1526. EFST_GRIFFON,
  1527. EFST_DRIFT,
  1528. EFST_WALLSHIFT,
  1529. EFST_REINCARNATION,
  1530. EFST_PATTACK,
  1531. EFST_PSPEED,
  1532. EFST_PDEFENSE,
  1533. EFST_PCRITICAL,
  1534. EFST_RANKING,
  1535. EFST_PTRIPLE,
  1536. EFST_DENERGY,
  1537. EFST_WAVE1,
  1538. EFST_WAVE2,
  1539. EFST_WAVE3,
  1540. EFST_WAVE4,
  1541. EFST_DAURA,
  1542. EFST_DFREEZER,
  1543. EFST_DPUNISH,
  1544. EFST_DBARRIER,
  1545. EFST_DWARNING,
  1546. EFST_MOUSEWHEEL,
  1547. EFST_DGAUGE,
  1548. EFST_DACCEL,
  1549. EFST_DBLOCK,
  1550. EFST_FOOD_STR,
  1551. EFST_FOOD_AGI,
  1552. EFST_FOOD_VIT,
  1553. EFST_FOOD_DEX,
  1554. EFST_FOOD_INT,
  1555. EFST_FOOD_LUK,
  1556. EFST_FOOD_BASICAVOIDANCE,
  1557. EFST_FOOD_BASICHIT,
  1558. EFST_FOOD_CRITICALSUCCESSVALUE,
  1559. EFST_CASH_PLUSEXP,
  1560. EFST_CASH_DEATHPENALTY,
  1561. EFST_CASH_RECEIVEITEM,
  1562. EFST_CASH_BOSS_ALARM,
  1563. EFST_DA_ENERGY,
  1564. EFST_DA_FIRSTSLOT,
  1565. EFST_DA_HEADDEF,
  1566. EFST_DA_SPACE,
  1567. EFST_DA_TRANSFORM,
  1568. EFST_DA_ITEMREBUILD,
  1569. EFST_DA_ILLUSION,
  1570. EFST_DA_DARKPOWER,
  1571. EFST_DA_EARPLUG,
  1572. EFST_DA_CONTRACT,
  1573. EFST_DA_BLACK,
  1574. EFST_DA_MAGICCART,
  1575. EFST_CRYSTAL,
  1576. EFST_DA_REBUILD,
  1577. EFST_DA_EDARKNESS,
  1578. EFST_DA_EGUARDIAN,
  1579. EFST_DA_TIMEOUT,
  1580. EFST_FOOD_STR_CASH,
  1581. EFST_FOOD_AGI_CASH,
  1582. EFST_FOOD_VIT_CASH,
  1583. EFST_FOOD_DEX_CASH,
  1584. EFST_FOOD_INT_CASH,
  1585. EFST_FOOD_LUK_CASH,
  1586. EFST_MER_FLEE,
  1587. EFST_MER_ATK,
  1588. EFST_MER_HP,
  1589. EFST_MER_SP,
  1590. EFST_MER_HIT,
  1591. EFST_SLOWCAST,
  1592. EFST_MAGICMIRROR,
  1593. EFST_STONESKIN,
  1594. EFST_ANTIMAGIC,
  1595. EFST_CRITICALWOUND,
  1596. EFST_NPC_DEFENDER,
  1597. EFST_NOACTION_WAIT,
  1598. EFST_MOVHASTE_HORSE,
  1599. EFST_PROTECT_DEF,
  1600. EFST_PROTECT_MDEF,
  1601. EFST_HEALPLUS,
  1602. EFST_S_LIFEPOTION,
  1603. EFST_L_LIFEPOTION,
  1604. EFST_CRITICALPERCENT,
  1605. EFST_PLUSAVOIDVALUE,
  1606. EFST_ATKER_ASPD,
  1607. EFST_TARGET_ASPD,
  1608. EFST_ATKER_MOVESPEED,
  1609. EFST_ATKER_BLOOD,
  1610. EFST_TARGET_BLOOD,
  1611. EFST_ARMOR_PROPERTY,
  1612. EFST_REUSE_LIMIT_A,
  1613. EFST_HELLPOWER,
  1614. EFST_STEAMPACK,
  1615. EFST_REUSE_LIMIT_B,
  1616. EFST_REUSE_LIMIT_C,
  1617. EFST_REUSE_LIMIT_D,
  1618. EFST_REUSE_LIMIT_E,
  1619. EFST_REUSE_LIMIT_F,
  1620. EFST_INVINCIBLE,
  1621. EFST_CASH_PLUSONLYJOBEXP,
  1622. EFST_PARTYFLEE,
  1623. EFST_ANGEL_PROTECT,
  1624. EFST_ENDURE_MDEF,
  1625. EFST_ENCHANTBLADE,
  1626. EFST_DEATHBOUND,
  1627. EFST_REFRESH,
  1628. EFST_GIANTGROWTH,
  1629. EFST_STONEHARDSKIN,
  1630. EFST_VITALITYACTIVATION,
  1631. EFST_FIGHTINGSPIRIT,
  1632. EFST_ABUNDANCE,
  1633. EFST_REUSE_MILLENNIUMSHIELD,
  1634. EFST_REUSE_CRUSHSTRIKE,
  1635. EFST_REUSE_REFRESH,
  1636. EFST_REUSE_STORMBLAST,
  1637. EFST_VENOMIMPRESS,
  1638. EFST_EPICLESIS,
  1639. EFST_ORATIO,
  1640. EFST_LAUDAAGNUS,
  1641. EFST_LAUDARAMUS,
  1642. EFST_CLOAKINGEXCEED,
  1643. EFST_HALLUCINATIONWALK,
  1644. EFST_HALLUCINATIONWALK_POSTDELAY,
  1645. EFST_RENOVATIO,
  1646. EFST_WEAPONBLOCKING,
  1647. EFST_WEAPONBLOCKING_POSTDELAY,
  1648. EFST_ROLLINGCUTTER,
  1649. EFST_EXPIATIO,
  1650. EFST_POISONINGWEAPON,
  1651. EFST_TOXIN,
  1652. EFST_PARALYSE,
  1653. EFST_VENOMBLEED,
  1654. EFST_MAGICMUSHROOM,
  1655. EFST_DEATHHURT,
  1656. EFST_PYREXIA,
  1657. EFST_OBLIVIONCURSE,
  1658. EFST_LEECHESEND,
  1659. EFST_DUPLELIGHT,
  1660. EFST_FROSTMISTY,
  1661. EFST_FEARBREEZE,
  1662. EFST_ELECTRICSHOCKER,
  1663. EFST_MARSHOFABYSS,
  1664. EFST_RECOGNIZEDSPELL,
  1665. EFST_STASIS,
  1666. EFST_WUGRIDER,
  1667. EFST_WUGDASH,
  1668. EFST_WUGBITE,
  1669. EFST_CAMOUFLAGE,
  1670. EFST_ACCELERATION,
  1671. EFST_HOVERING,
  1672. EFST_SUMMON1,
  1673. EFST_SUMMON2,
  1674. EFST_SUMMON3,
  1675. EFST_SUMMON4,
  1676. EFST_SUMMON5,
  1677. EFST_MVPCARD_TAOGUNKA,
  1678. EFST_MVPCARD_MISTRESS,
  1679. EFST_MVPCARD_ORCHERO,
  1680. EFST_MVPCARD_ORCLORD,
  1681. EFST_OVERHEAT_LIMITPOINT,
  1682. EFST_OVERHEAT,
  1683. EFST_SHAPESHIFT,
  1684. EFST_INFRAREDSCAN,
  1685. EFST_MAGNETICFIELD,
  1686. EFST_NEUTRALBARRIER,
  1687. EFST_NEUTRALBARRIER_MASTER,
  1688. EFST_STEALTHFIELD,
  1689. EFST_STEALTHFIELD_MASTER,
  1690. EFST_MANU_ATK,
  1691. EFST_MANU_DEF,
  1692. EFST_SPL_ATK,
  1693. EFST_SPL_DEF,
  1694. EFST_REPRODUCE,
  1695. EFST_MANU_MATK,
  1696. EFST_SPL_MATK,
  1697. EFST_STR_SCROLL,
  1698. EFST_INT_SCROLL,
  1699. EFST_LG_REFLECTDAMAGE,
  1700. EFST_FORCEOFVANGUARD,
  1701. EFST_BUCHEDENOEL,
  1702. EFST_AUTOSHADOWSPELL,
  1703. EFST_SHADOWFORM,
  1704. EFST_RAID,
  1705. EFST_SHIELDSPELL_DEF,
  1706. EFST_SHIELDSPELL_MDEF,
  1707. EFST_SHIELDSPELL_REF,
  1708. EFST_BODYPAINT,
  1709. EFST_EXEEDBREAK,
  1710. EFST_ADORAMUS,
  1711. EFST_PRESTIGE,
  1712. EFST_INVISIBILITY,
  1713. EFST_DEADLYINFECT,
  1714. EFST_BANDING,
  1715. EFST_EARTHDRIVE,
  1716. EFST_INSPIRATION,
  1717. EFST_ENERVATION,
  1718. EFST_GROOMY,
  1719. EFST_RAISINGDRAGON,
  1720. EFST_IGNORANCE,
  1721. EFST_LAZINESS,
  1722. EFST_LIGHTNINGWALK,
  1723. EFST_ACARAJE,
  1724. EFST_UNLUCKY,
  1725. EFST_CURSEDCIRCLE_ATKER,
  1726. EFST_CURSEDCIRCLE_TARGET,
  1727. EFST_WEAKNESS,
  1728. EFST_CRESCENTELBOW,
  1729. EFST_NOEQUIPACCESSARY,
  1730. EFST_STRIPACCESSARY,
  1731. EFST_MANHOLE,
  1732. EFST_POPECOOKIE,
  1733. EFST_FALLENEMPIRE,
  1734. EFST_GENTLETOUCH_ENERGYGAIN,
  1735. EFST_GENTLETOUCH_CHANGE,
  1736. EFST_GENTLETOUCH_REVITALIZE,
  1737. EFST_BLOODYLUST,
  1738. EFST_SWING,
  1739. EFST_SYMPHONY_LOVE,
  1740. EFST_PROPERTYWALK,
  1741. EFST_SPELLFIST,
  1742. EFST_NETHERWORLD,
  1743. EFST_SIREN,
  1744. EFST_DEEP_SLEEP,
  1745. EFST_SIRCLEOFNATURE,
  1746. EFST_COLD,
  1747. EFST_GLOOMYDAY,
  1748. EFST_SONG_OF_MANA,
  1749. EFST_CLOUD_KILL,
  1750. EFST_DANCE_WITH_WUG,
  1751. EFST_RUSH_WINDMILL,
  1752. EFST_ECHOSONG,
  1753. EFST_HARMONIZE,
  1754. EFST_STRIKING,
  1755. EFST_WARMER,
  1756. EFST_MOONLIT_SERENADE,
  1757. EFST_SATURDAY_NIGHT_FEVER,
  1758. EFST_SITDOWN_FORCE,
  1759. EFST_ANALYZE,
  1760. EFST_LERADS_DEW,
  1761. EFST_MELODYOFSINK,
  1762. EFST_BEYOND_OF_WARCRY,
  1763. EFST_UNLIMITED_HUMMING_VOICE,
  1764. EFST_SPELLBOOK1,
  1765. EFST_SPELLBOOK2,
  1766. EFST_SPELLBOOK3,
  1767. EFST_FREEZE_SP,
  1768. EFST_GN_TRAINING_SWORD,
  1769. EFST_GN_REMODELING_CART,
  1770. EFST_GN_CARTBOOST,
  1771. EFST_FIXEDCASTINGTM_REDUCE,
  1772. EFST_THORNS_TRAP,
  1773. EFST_BLOOD_SUCKER,
  1774. EFST_SPORE_EXPLOSION,
  1775. EFST_DEMONIC_FIRE,
  1776. EFST_FIRE_EXPANSION_SMOKE_POWDER,
  1777. EFST_FIRE_EXPANSION_TEAR_GAS,
  1778. EFST_BLOCKING_PLAY,
  1779. EFST_MANDRAGORA,
  1780. EFST_ACTIVATE,
  1781. EFST_AB_SECRAMENT,
  1782. EFST_ASSUMPTIO2,
  1783. EFST_TK_SEVENWIND,
  1784. EFST_LIMIT_ODINS_RECALL,
  1785. EFST_STOMACHACHE,
  1786. EFST_MYSTERIOUS_POWDER,
  1787. EFST_MELON_BOMB,
  1788. EFST_BANANA_BOMB_SITDOWN_POSTDELAY,
  1789. EFST_PROMOTE_HEALTH_RESERCH,
  1790. EFST_ENERGY_DRINK_RESERCH,
  1791. EFST_EXTRACT_WHITE_POTION_Z,
  1792. EFST_VITATA_500,
  1793. EFST_EXTRACT_SALAMINE_JUICE,
  1794. EFST_BOOST500,
  1795. EFST_FULL_SWING_K,
  1796. EFST_MANA_PLUS,
  1797. EFST_MUSTLE_M,
  1798. EFST_LIFE_FORCE_F,
  1799. EFST_VACUUM_EXTREME,
  1800. EFST_SAVAGE_STEAK,
  1801. EFST_COCKTAIL_WARG_BLOOD,
  1802. EFST_MINOR_BBQ,
  1803. EFST_SIROMA_ICE_TEA,
  1804. EFST_DROCERA_HERB_STEAMED,
  1805. EFST_PUTTI_TAILS_NOODLES,
  1806. EFST_BANANA_BOMB,
  1807. EFST_SUMMON_AGNI,
  1808. EFST_SPELLBOOK4,
  1809. EFST_SPELLBOOK5,
  1810. EFST_SPELLBOOK6,
  1811. EFST_SPELLBOOK7,
  1812. EFST_ELEMENTAL_AGGRESSIVE,
  1813. EFST_RETURN_TO_ELDICASTES,
  1814. EFST_BANDING_DEFENCE,
  1815. EFST_SKELSCROLL,
  1816. EFST_DISTRUCTIONSCROLL,
  1817. EFST_ROYALSCROLL,
  1818. EFST_IMMUNITYSCROLL,
  1819. EFST_MYSTICSCROLL,
  1820. EFST_BATTLESCROLL,
  1821. EFST_ARMORSCROLL,
  1822. EFST_FREYJASCROLL,
  1823. EFST_SOULSCROLL,
  1824. EFST_CIRCLE_OF_FIRE,
  1825. EFST_CIRCLE_OF_FIRE_OPTION,
  1826. EFST_FIRE_CLOAK,
  1827. EFST_FIRE_CLOAK_OPTION,
  1828. EFST_WATER_SCREEN,
  1829. EFST_WATER_SCREEN_OPTION,
  1830. EFST_WATER_DROP,
  1831. EFST_WATER_DROP_OPTION,
  1832. EFST_WIND_STEP,
  1833. EFST_WIND_STEP_OPTION,
  1834. EFST_WIND_CURTAIN,
  1835. EFST_WIND_CURTAIN_OPTION,
  1836. EFST_WATER_BARRIER,
  1837. EFST_ZEPHYR,
  1838. EFST_SOLID_SKIN,
  1839. EFST_SOLID_SKIN_OPTION,
  1840. EFST_STONE_SHIELD,
  1841. EFST_STONE_SHIELD_OPTION,
  1842. EFST_POWER_OF_GAIA,
  1843. EFST_EL_WAIT,
  1844. EFST_EL_PASSIVE,
  1845. EFST_EL_DEFENSIVE,
  1846. EFST_EL_OFFENSIVE,
  1847. EFST_EL_COST,
  1848. EFST_PYROTECHNIC,
  1849. EFST_PYROTECHNIC_OPTION,
  1850. EFST_HEATER,
  1851. EFST_HEATER_OPTION,
  1852. EFST_TROPIC,
  1853. EFST_TROPIC_OPTION,
  1854. EFST_AQUAPLAY,
  1855. EFST_AQUAPLAY_OPTION,
  1856. EFST_COOLER,
  1857. EFST_COOLER_OPTION,
  1858. EFST_CHILLY_AIR,
  1859. EFST_CHILLY_AIR_OPTION,
  1860. EFST_GUST,
  1861. EFST_GUST_OPTION,
  1862. EFST_BLAST,
  1863. EFST_BLAST_OPTION,
  1864. EFST_WILD_STORM,
  1865. EFST_WILD_STORM_OPTION,
  1866. EFST_PETROLOGY,
  1867. EFST_PETROLOGY_OPTION,
  1868. EFST_CURSED_SOIL,
  1869. EFST_CURSED_SOIL_OPTION,
  1870. EFST_UPHEAVAL,
  1871. EFST_UPHEAVAL_OPTION,
  1872. EFST_TIDAL_WEAPON,
  1873. EFST_TIDAL_WEAPON_OPTION,
  1874. EFST_ROCK_CRUSHER,
  1875. EFST_ROCK_CRUSHER_ATK,
  1876. EFST_FIRE_INSIGNIA,
  1877. EFST_WATER_INSIGNIA,
  1878. EFST_WIND_INSIGNIA,
  1879. EFST_EARTH_INSIGNIA,
  1880. EFST_EQUIPED_FLOOR,
  1881. EFST_GUARDIAN_RECALL,
  1882. EFST_MORA_BUFF,
  1883. EFST_REUSE_LIMIT_G,
  1884. EFST_REUSE_LIMIT_H,
  1885. EFST_NEEDLE_OF_PARALYZE,
  1886. EFST_PAIN_KILLER,
  1887. EFST_G_LIFEPOTION,
  1888. EFST_VITALIZE_POTION,
  1889. EFST_LIGHT_OF_REGENE,
  1890. EFST_OVERED_BOOST,
  1891. EFST_SILENT_BREEZE,
  1892. EFST_ODINS_POWER,
  1893. EFST_STYLE_CHANGE,
  1894. EFST_SONIC_CLAW_POSTDELAY,
  1895. EFST_SILVERVEIN_RUSH_POSTDELAY = 596,
  1896. EFST_MIDNIGHT_FRENZY_POSTDELAY,
  1897. EFST_GOLDENE_FERSE,
  1898. EFST_ANGRIFFS_MODUS,
  1899. EFST_TINDER_BREAKER,
  1900. EFST_TINDER_BREAKER_POSTDELAY,
  1901. EFST_CBC,
  1902. EFST_CBC_POSTDELAY,
  1903. EFST_EQC,
  1904. EFST_MAGMA_FLOW,
  1905. EFST_GRANITIC_ARMOR,
  1906. EFST_PYROCLASTIC,
  1907. EFST_VOLCANIC_ASH,
  1908. EFST_SPIRITS_SAVEINFO1,
  1909. EFST_SPIRITS_SAVEINFO2,
  1910. EFST_MAGIC_CANDY,
  1911. EFST_SEARCH_STORE_INFO,
  1912. EFST_ALL_RIDING,
  1913. EFST_ALL_RIDING_REUSE_LIMIT,
  1914. EFST_MACRO,
  1915. EFST_MACRO_POSTDELAY,
  1916. EFST_BEER_BOTTLE_CAP,
  1917. EFST_OVERLAPEXPUP,
  1918. EFST_PC_IZ_DUN05,
  1919. EFST_CRUSHSTRIKE,
  1920. EFST_MONSTER_TRANSFORM,
  1921. EFST_SIT,
  1922. EFST_ONAIR,
  1923. EFST_MTF_ASPD,
  1924. EFST_MTF_RANGEATK,
  1925. EFST_MTF_MATK,
  1926. EFST_MTF_MLEATKED,
  1927. EFST_MTF_CRIDAMAGE,
  1928. EFST_REUSE_LIMIT_MTF,
  1929. EFST_MACRO_PERMIT,
  1930. EFST_MACRO_PLAY,
  1931. EFST_SKF_CAST,
  1932. EFST_SKF_ASPD,
  1933. EFST_SKF_ATK,
  1934. EFST_SKF_MATK,
  1935. EFST_REWARD_PLUSONLYJOBEXP,
  1936. EFST_HANDICAPSTATE_NORECOVER,
  1937. EFST_SET_NUM_DEF,
  1938. EFST_SET_NUM_MDEF,
  1939. EFST_SET_PER_DEF,
  1940. EFST_SET_PER_MDEF,
  1941. EFST_PARTYBOOKING_SEARCH_DEALY,
  1942. EFST_PARTYBOOKING_REGISTER_DEALY,
  1943. EFST_PERIOD_TIME_CHECK_DETECT_SKILL,
  1944. EFST_KO_JYUMONJIKIRI,
  1945. EFST_MEIKYOUSISUI,
  1946. EFST_ATTHASTE_CASH,
  1947. EFST_EQUIPPED_DIVINE_ARMOR,
  1948. EFST_EQUIPPED_HOLY_ARMOR,
  1949. EFST_2011RWC,
  1950. EFST_KYOUGAKU,
  1951. EFST_IZAYOI,
  1952. EFST_ZENKAI,
  1953. EFST_KG_KAGEHUMI,
  1954. EFST_KYOMU,
  1955. EFST_KAGEMUSYA,
  1956. EFST_ZANGETSU,
  1957. EFST_PHI_DEMON,
  1958. EFST_GENSOU,
  1959. EFST_AKAITSUKI,
  1960. EFST_TETANY,
  1961. EFST_GM_BATTLE,
  1962. EFST_GM_BATTLE2,
  1963. EFST_2011RWC_SCROLL,
  1964. EFST_ACTIVE_MONSTER_TRANSFORM,
  1965. EFST_MYSTICPOWDER,
  1966. EFST_ECLAGE_RECALL,
  1967. EFST_ENTRY_QUEUE_APPLY_DELAY,
  1968. EFST_REUSE_LIMIT_ECL,
  1969. EFST_M_LIFEPOTION,
  1970. EFST_ENTRY_QUEUE_NOTIFY_ADMISSION_TIME_OUT,
  1971. EFST_UNKNOWN_NAME,
  1972. EFST_ON_PUSH_CART,
  1973. EFST_HAT_EFFECT,
  1974. EFST_FLOWER_LEAF,
  1975. EFST_RAY_OF_PROTECTION,
  1976. EFST_GLASTHEIM_ATK,
  1977. EFST_GLASTHEIM_DEF,
  1978. EFST_GLASTHEIM_HEAL,
  1979. EFST_GLASTHEIM_HIDDEN,
  1980. EFST_GLASTHEIM_STATE,
  1981. EFST_GLASTHEIM_ITEMDEF,
  1982. EFST_GLASTHEIM_HPSP,
  1983. EFST_HOMUN_SKILL_POSTDELAY,
  1984. EFST_ALMIGHTY,
  1985. EFST_GVG_GIANT,
  1986. EFST_GVG_GOLEM,
  1987. EFST_GVG_STUN,
  1988. EFST_GVG_STONE,
  1989. EFST_GVG_FREEZ,
  1990. EFST_GVG_SLEEP,
  1991. EFST_GVG_CURSE,
  1992. EFST_GVG_SILENCE,
  1993. EFST_GVG_BLIND,
  1994. EFST_CLIENT_ONLY_EQUIP_ARROW,
  1995. EFST_CLAN_INFO,
  1996. EFST_JP_EVENT01,
  1997. EFST_JP_EVENT02,
  1998. EFST_JP_EVENT03,
  1999. EFST_JP_EVENT04,
  2000. EFST_TELEPORT_FIXEDCASTINGDELAY,
  2001. EFST_GEFFEN_MAGIC1,
  2002. EFST_GEFFEN_MAGIC2,
  2003. EFST_GEFFEN_MAGIC3,
  2004. EFST_QUEST_BUFF1,
  2005. EFST_QUEST_BUFF2,
  2006. EFST_QUEST_BUFF3,
  2007. EFST_REUSE_LIMIT_RECALL,
  2008. EFST_SAVEPOSITION,
  2009. EFST_HANDICAPSTATE_ICEEXPLO,
  2010. EFST_FENRIR_CARD,
  2011. EFST_REUSE_LIMIT_ASPD_POTION,
  2012. EFST_MAXPAIN,
  2013. EFST_PC_STOP,
  2014. EFST_FRIGG_SONG,
  2015. EFST_OFFERTORIUM,
  2016. EFST_TELEKINESIS_INTENSE,
  2017. EFST_MOONSTAR,
  2018. EFST_STRANGELIGHTS,
  2019. EFST_FULL_THROTTLE,
  2020. EFST_REBOUND,
  2021. EFST_UNLIMIT,
  2022. EFST_KINGS_GRACE,
  2023. EFST_ITEM_ATKMAX,
  2024. EFST_ITEM_ATKMIN,
  2025. EFST_ITEM_MATKMAX,
  2026. EFST_ITEM_MATKMIN,
  2027. EFST_SUPER_STAR,
  2028. EFST_HIGH_RANKER,
  2029. EFST_DARKCROW,
  2030. EFST_2013_VALENTINE1,
  2031. EFST_2013_VALENTINE2,
  2032. EFST_2013_VALENTINE3,
  2033. EFST_ILLUSIONDOPING,
  2034. EFST_WIDEWEB,
  2035. EFST_CHILL,
  2036. EFST_BURNT,
  2037. EFST_PCCAFE_PLAY_TIME,
  2038. EFST_TWISTED_TIME,
  2039. EFST_FLASHCOMBO,
  2040. EFST_JITTER_BUFF1,
  2041. EFST_JITTER_BUFF2,
  2042. EFST_JITTER_BUFF3,
  2043. EFST_JITTER_BUFF4,
  2044. EFST_JITTER_BUFF5,
  2045. EFST_JITTER_BUFF6,
  2046. EFST_JITTER_BUFF7,
  2047. EFST_JITTER_BUFF8,
  2048. EFST_JITTER_BUFF9,
  2049. EFST_JITTER_BUFF10,
  2050. EFST_CUP_OF_BOZA,
  2051. EFST_B_TRAP,
  2052. EFST_E_CHAIN,
  2053. EFST_E_QD_SHOT_READY,
  2054. EFST_C_MARKER,
  2055. EFST_H_MINE,
  2056. EFST_H_MINE_SPLASH,
  2057. EFST_P_ALTER,
  2058. EFST_HEAT_BARREL,
  2059. EFST_ANTI_M_BLAST,
  2060. EFST_SLUGSHOT,
  2061. EFST_SWORDCLAN,
  2062. EFST_ARCWANDCLAN,
  2063. EFST_GOLDENMACECLAN,
  2064. EFST_CROSSBOWCLAN,
  2065. EFST_PACKING_ENVELOPE1,
  2066. EFST_PACKING_ENVELOPE2,
  2067. EFST_PACKING_ENVELOPE3,
  2068. EFST_PACKING_ENVELOPE4,
  2069. EFST_PACKING_ENVELOPE5,
  2070. EFST_PACKING_ENVELOPE6,
  2071. EFST_PACKING_ENVELOPE7,
  2072. EFST_PACKING_ENVELOPE8,
  2073. EFST_PACKING_ENVELOPE9,
  2074. EFST_PACKING_ENVELOPE10,
  2075. EFST_GLASTHEIM_TRANS,
  2076. EFST_ZONGZI_POUCH_TRANS,
  2077. EFST_HEAT_BARREL_AFTER,
  2078. EFST_DECORATION_OF_MUSIC,
  2079. EFST_OVERSEAEXPUP,
  2080. EFST_CLOWN_N_GYPSY_CARD,
  2081. EFST_OPEN_NPC_MARKET,
  2082. EFST_BEEF_RIB_STEW,
  2083. EFST_PORK_RIB_STEW,
  2084. EFST_CHUSEOK_MONDAY,
  2085. EFST_CHUSEOK_TUESDAY,
  2086. EFST_CHUSEOK_WEDNESDAY,
  2087. EFST_CHUSEOK_THURSDAY,
  2088. EFST_CHUSEOK_FRIDAY,
  2089. EFST_CHUSEOK_WEEKEND,
  2090. EFST_ALL_LIGHTGUARD,
  2091. EFST_ALL_LIGHTGUARD_COOL_TIME,
  2092. EFST_MTF_MHP,
  2093. EFST_MTF_MSP,
  2094. EFST_MTF_PUMPKIN,
  2095. EFST_MTF_HITFLEE,
  2096. EFST_MTF_CRIDAMAGE2,
  2097. EFST_MTF_SPDRAIN,
  2098. EFST_ACUO_MINT_GUM,
  2099. EFST_S_HEALPOTION,
  2100. EFST_REUSE_LIMIT_S_HEAL_POTION,
  2101. EFST_PLAYTIME_STATISTICS,
  2102. EFST_GN_CHANGEMATERIAL_OPERATOR,
  2103. EFST_GN_MIX_COOKING_OPERATOR,
  2104. EFST_GN_MAKEBOMB_OPERATOR,
  2105. EFST_GN_S_PHARMACY_OPERATOR,
  2106. EFST_SO_EL_ANALYSIS_DISASSEMBLY_OPERATOR,
  2107. EFST_SO_EL_ANALYSIS_COMBINATION_OPERATOR,
  2108. EFST_NC_MAGICDECOY_OPERATOR,
  2109. EFST_GUILD_STORAGE,
  2110. EFST_GC_POISONINGWEAPON_OPERATOR,
  2111. EFST_WS_WEAPONREFINE_OPERATOR,
  2112. EFST_BS_REPAIRWEAPON_OPERATOR,
  2113. EFST_GET_MAILBOX,
  2114. EFST_JUMPINGCLAN,
  2115. EFST_JP_OTP,
  2116. EFST_HANDICAPTOLERANCE_LEVELGAP,
  2117. EFST_MTF_RANGEATK2,
  2118. EFST_MTF_ASPD2,
  2119. EFST_MTF_MATK2,
  2120. EFST_SHOW_NPCHPBAR,
  2121. EFST_FLOWERSMOKE,
  2122. EFST_FSTONE,
  2123. EFST_DAILYSENDMAILCNT,
  2124. EFST_QSCARABA,
  2125. EFST_LJOSALFAR,
  2126. EFST_PAD_READER_KNIGHT,
  2127. EFST_PAD_READER_CRUSADER,
  2128. EFST_PAD_READER_BLACKSMITH,
  2129. EFST_PAD_READER_ALCHEMIST,
  2130. EFST_PAD_READER_ASSASSIN,
  2131. EFST_PAD_READER_ROGUE,
  2132. EFST_PAD_READER_WIZARD,
  2133. EFST_PAD_READER_SAGE,
  2134. EFST_PAD_READER_PRIEST,
  2135. EFST_PAD_READER_MONK,
  2136. EFST_PAD_READER_HUNTER,
  2137. EFST_PAD_READER_BARD,
  2138. EFST_PAD_READER_DANCER,
  2139. EFST_PAD_READER_TAEKWON,
  2140. EFST_PAD_READER_NINJA,
  2141. EFST_PAD_READER_GUNSLINGER,
  2142. EFST_PAD_READER_SUPERNOVICE,
  2143. EFST_ESSENCE_OF_TIME,
  2144. EFST_MINIGAME_ROULETTE,
  2145. EFST_MINIGAME_GOLD_POINT,
  2146. EFST_MINIGAME_SILVER_POINT,
  2147. EFST_MINIGAME_BRONZE_POINT,
  2148. EFST_HAPPINESS_STAR,
  2149. EFST_SUMMEREVENT01,
  2150. EFST_SUMMEREVENT02,
  2151. EFST_SUMMEREVENT03,
  2152. EFST_SUMMEREVENT04,
  2153. EFST_SUMMEREVENT05,
  2154. EFST_MINIGAME_ROULETTE_BONUS_ITEM,
  2155. EFST_DRESS_UP,
  2156. EFST_MAPLE_FALLS,
  2157. EFST_ALL_NIFLHEIM_RECALL,
  2158. EFST_MARKING_USE_CHANGEMONSTER,
  2159. EFST_MTF_MARIONETTE,
  2160. EFST_MTF_LUDE,
  2161. EFST_MTF_CRUISER,
  2162. EFST_MERMAID_LONGING,
  2163. EFST_MAGICAL_FEATHER,
  2164. EFST_DRACULA_CARD,
  2165. EFST_ALL_PRONTERA_RECALL,
  2166. EFST_LIMIT_POWER_BOOSTER,
  2167. EFST_GIFT_OF_SNOW,
  2168. EFST_NPC_HALLUCINATIONWALK,
  2169. EFST_NPC_HALLUCINATIONWALK_POSTDELAY,
  2170. EFST_NPC_XXXWALK,
  2171. EFST_TIME_ACCESSORY,
  2172. EFST_EP16_DEF,
  2173. EFST_NORMAL_ATKED_SP,
  2174. EFST_BODYSTATE_STONECURSE,
  2175. EFST_BODYSTATE_FREEZING,
  2176. EFST_BODYSTATE_STUN,
  2177. EFST_BODYSTATE_SLEEP,
  2178. EFST_BODYSTATE_UNDEAD,
  2179. EFST_BODYSTATE_STONECURSE_ING,
  2180. EFST_BODYSTATE_BURNNING,
  2181. EFST_BODYSTATE_IMPRISON,
  2182. EFST_HEALTHSTATE_POISON,
  2183. EFST_HEALTHSTATE_CURSE,
  2184. EFST_HEALTHSTATE_SILENCE,
  2185. EFST_HEALTHSTATE_CONFUSION,
  2186. EFST_HEALTHSTATE_BLIND,
  2187. EFST_HEALTHSTATE_ANGELUS,
  2188. EFST_HEALTHSTATE_BLOODING,
  2189. EFST_HEALTHSTATE_HEAVYPOISON,
  2190. EFST_HEALTHSTATE_FEAR,
  2191. EFST_CHERRY_BLOSSOM_CAKE,
  2192. EFST_SU_STOOP,
  2193. EFST_CATNIPPOWDER,
  2194. EFST_HEAD_EQUIPMENT_EFFECT,
  2195. EFST_SV_ROOTTWIST,
  2196. EFST_ATTACK_PROPERTY_NOTHING,
  2197. EFST_ATTACK_PROPERTY_WATER,
  2198. EFST_ATTACK_PROPERTY_GROUND,
  2199. EFST_ATTACK_PROPERTY_FIRE,
  2200. EFST_ATTACK_PROPERTY_WIND,
  2201. EFST_ATTACK_PROPERTY_POISON,
  2202. EFST_ATTACK_PROPERTY_SAINT,
  2203. EFST_ATTACK_PROPERTY_DARKNESS,
  2204. EFST_ATTACK_PROPERTY_TELEKINESIS,
  2205. EFST_ATTACK_PROPERTY_UNDEAD,
  2206. EFST_RESIST_PROPERTY_NOTHING,
  2207. EFST_RESIST_PROPERTY_WATER,
  2208. EFST_RESIST_PROPERTY_GROUND,
  2209. EFST_RESIST_PROPERTY_FIRE,
  2210. EFST_RESIST_PROPERTY_WIND,
  2211. EFST_RESIST_PROPERTY_POISON,
  2212. EFST_RESIST_PROPERTY_SAINT,
  2213. EFST_RESIST_PROPERTY_DARKNESS,
  2214. EFST_RESIST_PROPERTY_TELEKINESIS,
  2215. EFST_RESIST_PROPERTY_UNDEAD,
  2216. EFST_BITESCAR,
  2217. EFST_ARCLOUSEDASH,
  2218. EFST_TUNAPARTY,
  2219. EFST_SHRIMP,
  2220. EFST_FRESHSHRIMP,
  2221. EFST_PERIOD_RECEIVEITEM,
  2222. EFST_PERIOD_PLUSEXP,
  2223. EFST_PERIOD_PLUSJOBEXP,
  2224. EFST_RUNEHELM,
  2225. EFST_HELM_VERKANA,
  2226. EFST_HELM_RHYDO,
  2227. EFST_HELM_TURISUS,
  2228. EFST_HELM_HAGALAS,
  2229. EFST_HELM_ISIA,
  2230. EFST_HELM_ASIR,
  2231. EFST_HELM_URJ,
  2232. EFST_SUHIDE,
  2233. EFST_REUSE_LIMIT_MG,
  2234. EFST_DORAM_BUF_01,
  2235. EFST_DORAM_BUF_02,
  2236. EFST_SPRITEMABLE,
  2237. EFST_AID_PERIOD_RECEIVEITEM,
  2238. EFST_AID_PERIOD_PLUSEXP,
  2239. EFST_AID_PERIOD_PLUSJOBEXP,
  2240. EFST_AID_PERIOD_DEADPENALTY,
  2241. EFST_AID_PERIOD_ADDSTOREITEMCOUNT,
  2242. EFST_ALL_GLASTHEIM_RECALL,
  2243. EFST_REUSE_LIMIT_PEPO_MD,
  2244. EFST_ALL_THANATOS_RECALL,
  2245. EFST_KAFRA_STORE,
  2246. EFST_REUSE_ABBYS,
  2247. EFST_MAGICSTONE_OF_GRACE_SET,
  2248. EFST_PRIVATE_AIRPLANE,
  2249. EFST_HISS,
  2250. EFST_HISS_AVOID,
  2251. EFST_NYANGGRASS,
  2252. EFST_CHATTERING,
  2253. EFST_CHATTERING_OPT_ATK_MATK,
  2254. EFST_CHATTERING_OPT_HASTE,
  2255. EFST_SPIRITOFLAND_STEMSPEAR,
  2256. EFST_SPIRITOFLAND_ROOTTWIST,
  2257. EFST_SPIRITOFLAND_POWDERING,
  2258. EFST_SPIRITOFLAND_METEOR,
  2259. EFST_SPIRITOFLAND_NYANGGRASS,
  2260. EFST_GROOMING,
  2261. EFST_PROTECTIONOFSHRIMP,
  2262. EFST_EP16_2_BUFF_SS,
  2263. EFST_EP16_2_BUFF_SC,
  2264. EFST_EP16_2_BUFF_AC,
  2265. EFST_GS_MAGICAL_BULLET,
  2266. EFST_FALLEN_ANGEL = 976,
  2267. EFST_REUSE_LIMIT_MOVEPOINT,
  2268. EFST_MACRO_DETECTOR_ANSWER_WAITING,
  2269. EFST_BLAZE_BEAD,
  2270. EFST_FROZEN_BEAD,
  2271. EFST_BREEZE_BEAD,
  2272. EFST_SOULATTACK,
  2273. EFST_AID_PERIOD_RECEIVEITEM_2ND,
  2274. EFST_AID_PERIOD_PLUSEXP_2ND,
  2275. EFST_AID_PERIOD_PLUSJOBEXP_2ND,
  2276. EFST_PRONTERA_JP,
  2277. EFST_ASSISTANT_VENDING,
  2278. EFST_GLOOM_CARD,
  2279. EFST_PHARAOH_CARD,
  2280. EFST_KIEL_CARD,
  2281. EFST_ASSISTANT_BUYING,
  2282. EFST_CHEERUP,
  2283. EFST_GET_CNT_UNREAD_RODEX_CHARDB,
  2284. EFST_GET_CNT_UNREAD_RODEX_GLOBALDB,
  2285. EFST_S_MANAPOTION,
  2286. EFST_M_DEFSCROLL,
  2287. EFST_OPEN_REFINING_UI,
  2288. EFST_ALL_LIGHTHALZEN_RECALL,
  2289. EFST_SWAP_EQUIPITEM,
  2290. EFST_AS_RAGGED_GOLEM_CARD,
  2291. EFST_LHZ_DUN_N1,
  2292. EFST_LHZ_DUN_N2,
  2293. EFST_LHZ_DUN_N3,
  2294. EFST_LHZ_DUN_N4,
  2295. EFST_TAEKWON_MISSION,
  2296. EFST_SUN_PLACE,
  2297. EFST_MOON_PLACE,
  2298. EFST_STAR_PLACE,
  2299. EFST_SUN_MONSTER,
  2300. EFST_MOON_MONSTER,
  2301. EFST_STAR_MONSTER,
  2302. EFST_AL_WARP_ADDSLOT,
  2303. EFST_ALL_STAT_DOWN,
  2304. EFST_GRADUAL_GRAVITY,
  2305. EFST_DAMAGE_HEAL,
  2306. EFST_IMMUNE_PROPERTY_NOTHING,
  2307. EFST_IMMUNE_PROPERTY_WATER,
  2308. EFST_IMMUNE_PROPERTY_GROUND,
  2309. EFST_IMMUNE_PROPERTY_FIRE,
  2310. EFST_IMMUNE_PROPERTY_WIND,
  2311. EFST_IMMUNE_PROPERTY_POISON,
  2312. EFST_IMMUNE_PROPERTY_SAINT,
  2313. EFST_IMMUNE_PROPERTY_DARKNESS,
  2314. EFST_IMMUNE_PROPERTY_TELEKINESIS,
  2315. EFST_IMMUNE_PROPERTY_UNDEAD,
  2316. EFST_REUSE_LIMIT_NP,
  2317. EFST_SPECIALCOOKIE,
  2318. EFST_DAMAGE_HEAL2,
  2319. EFST_DAMAGE_HEAL3,
  2320. EFST_GLORY_OF_RETURN,
  2321. EFST_ATK_POPCORN,
  2322. EFST_MATK_POPCORN,
  2323. EFST_ASPD_POPCORN,
  2324. EFST_ULTIMATECOOK,
  2325. EFST_LIGHTOFMOON,
  2326. EFST_LIGHTOFSUN,
  2327. EFST_LIGHTOFSTAR,
  2328. EFST_LUNARSTANCE,
  2329. EFST_UNIVERSESTANCE,
  2330. EFST_SUNSTANCE,
  2331. EFST_FLASHKICK,
  2332. EFST_NEWMOON,
  2333. EFST_STARSTANCE,
  2334. EFST_DIMENSION,
  2335. EFST_DIMENSION1,
  2336. EFST_DIMENSION2,
  2337. EFST_CREATINGSTAR,
  2338. EFST_FALLINGSTAR,
  2339. EFST_NOVAEXPLOSING,
  2340. EFST_GRAVITYCONTROL,
  2341. XXX_EFST_WORLDSTORE_ACTIVE,
  2342. EFST_WORLDSTORE_ITEMMOVEINFO_SENDCOMPLETE,
  2343. EFST_SOULCOLLECT,
  2344. EFST_SOULREAPER,
  2345. EFST_SOULUNITY,
  2346. EFST_SOULSHADOW,
  2347. EFST_SOULFAIRY,
  2348. EFST_SOULFALCON,
  2349. EFST_SOULGOLEM,
  2350. EFST_SOULDIVISION,
  2351. EFST_SOULENERGY,
  2352. EFST_USE_SKILL_SP_SPA,
  2353. EFST_USE_SKILL_SP_SHA,
  2354. EFST_SP_SHA,
  2355. EFST_INFINITY_DRINK,
  2356. EFST_ABYSS_001,
  2357. EFST_ABYSS_002,
  2358. EFST_ABYSS_003,
  2359. EFST_ABYSS_004,
  2360. EFST_ABYSS_005,
  2361. EFST_ABYSS_006,
  2362. EFST_ABYSS_007,
  2363. EFST_ABYSS_008,
  2364. EFST_REUSE_LIMIT_THM = 1075,
  2365. EFST_REUSE_LIMIT_TLI,
  2366. EFST_REUSE_LIMIT_TKC,
  2367. EFST_REUSE_LIMIT_TRP,
  2368. EFST_REUSE_LIMIT_TBG,
  2369. EFST_REUSE_LIMIT_TBM,
  2370. EFST_YGGDRASIL_BLESS,
  2371. EFST_USE_SKILL_SP_SWHOO,
  2372. EFST_HUNTING_EVENT,
  2373. EFST_PERIOD_RECEIVEITEM_2ND,
  2374. EFST_PERIOD_PLUSEXP_2ND,
  2375. EFST_EXPDROPUP,
  2376. EFST_TW_NEWYEAR_EVENT,
  2377. EFST_ENSEMBLEFATIGUE,
  2378. EFST_ADAPTATION,
  2379. EFST_DANCINGLESSON,
  2380. EFST_MUSICALLESSON,
  2381. EFST_REUSE_LIMIT_RC,
  2382. EFST_DANCINGLESSON_EQUIPPED,
  2383. EFST_MUSICALLESSON_EQUIPPED,
  2384. EFST_ANCILLA,
  2385. EFST_REUSE_LIMIT_POTION_A,
  2386. EFST_REUSE_LIMIT_POTION_B,
  2387. EFST_REUSE_LIMIT_POTION_C,
  2388. EFST_REUSE_LIMIT_POTION_D,
  2389. EFST_REUSE_LIMIT_POTION_E,
  2390. EFST_REUSE_LIMIT_POTION_F,
  2391. EFST_BRAVESET,
  2392. EFST_MACEMASTERY_EQUIPPED,
  2393. EFST_FESTIVE_ENERGY,
  2394. EFST_TEST_KR01,
  2395. EFST_STARFISH_JP,
  2396. EFST_WEAPONBLOCK_ON,
  2397. EFST_CRI_DAMAGE,
  2398. EFST_DEF_POWER,
  2399. EFST_DEF_IGNORE,
  2400. EFST_BOW_ATK_POWER,
  2401. EFST_RED_ORG_POTION,
  2402. EFST_CAST_TIME,
  2403. EFST_BLADESTOPREADY,
  2404. EFST_TELEPORT_BR,
  2405. EFST_SA_WEAPON_PROPERTY,
  2406. EFST_LEAPIMPAIRED,
  2407. EFST_SENDING_ITEMLIST,
  2408. EFST_EXCLUSIVE_RECEIVEITEM,
  2409. EFST_EXCLUSIVE_PLUSEXP,
  2410. EFST_ASSUMPTIO_BUFF,
  2411. EFST_BASILICA_BUFF,
  2412. EFST_OVERLAPEXPUP2,
  2413. EFST_STOPMOVE_IMMEDIATELY,
  2414. EFST_SOULCURSE,
  2415. EFST_SOUND_OF_DESTRUCTION,
  2416. EFST_DF_MANAPLUS,
  2417. EFST_DF_FULLSWINGK,
  2418. EFST_NV_BREAKTHROUGH,
  2419. EFST_HELPANGEL,
  2420. EFST_NV_TRANSCENDENCE,
  2421. EFST_SWEETSFAIR_ATK,
  2422. EFST_SWEETSFAIR_MATK,
  2423. EFST_REUSE_SKILL,
  2424. EFST_FLOWER_LEAF2,
  2425. EFST_FLOWER_LEAF3,
  2426. EFST_FLOWER_LEAF4,
  2427. EFST_CHARM_BOOST,
  2428. EFST_EARTHSHAKER,
  2429. EFST_PERIOD_USE_WORLDMAP,
  2430. EFST_MISTY_FROST,
  2431. EFST_MAGIC_POISON,
  2432. EFST_MOVE_AGIT,
  2433. EFST_REUSE_JPNONLY_LIMIT_I,
  2434. EFST_REUSE_JPNONLY_LIMIT_J,
  2435. EFST_REUSE_JPNONLY_LIMIT_K,
  2436. EFST_JPNONLY_TACTICS,
  2437. EFST_PRISON,
  2438. EFST_MADOGEAR_TYPE,
  2439. EFST_DEADLY_DEFEASANCE,
  2440. EFST_CLIMAX_DES_HU,
  2441. EFST_CLIMAX,
  2442. EFST_FEINTBOMB,
  2443. EFST_LUXANIMA,
  2444. EFST_BATH_FOAM_A,
  2445. EFST_BATH_FOAM_B,
  2446. EFST_BATH_FOAM_C,
  2447. EFST_AROMA_OIL,
  2448. EFST_REUSE_LIMIT_LUXANIMA,
  2449. EFST_POWERFUL_FAITH,
  2450. EFST_SINCERE_FAITH,
  2451. EFST_FIRM_FAITH,
  2452. EFST_AIRSHIP_PIPE,
  2453. EFST_PIECES_OF_SHADOW,
  2454. EFST_HELLS_PLANT_ARMOR,
  2455. EFST_RELIEVE_DAMAGE,
  2456. EFST_LOCKON_LASER,
  2457. EFST_GRADE_ENCHANT_UI_OPEN,
  2458. EFST_REF_T_POTION,
  2459. EFST_ADD_ATK_DAMAGE,
  2460. EFST_ADD_MATK_DAMAGE,
  2461. EFST_SERVANTWEAPON,
  2462. EFST_SERVANT_SIGN,
  2463. EFST_CHARGINGPIERCE,
  2464. EFST_CHARGINGPIERCE_COUNT,
  2465. EFST_DRAGONIC_AURA,
  2466. EFST_BIG_SCAR,
  2467. EFST_VIGOR,
  2468. EFST_WILL_OF_FAITH,
  2469. EFST_PRESSURE,
  2470. EFST_SA_DRAGONOLOGY,
  2471. EFST_CLIMAX_EARTH,
  2472. EFST_CLIMAX_BLOOM,
  2473. EFST_CLIMAX_CRYIMP,
  2474. EFST_MD_ME_POTION,
  2475. EFST_MD_MA_POTION,
  2476. EFST_MD_TA_POTION,
  2477. EFST_MD_RA_POTION,
  2478. EFST_REUSE_MEGAPHONE,
  2479. EFST_HOLY_OIL,
  2480. EFST_CRYSTAL_IMPACT,
  2481. EFST_SHADOW_EXCEED,
  2482. EFST_DANCING_KNIFE,
  2483. EFST_POTENT_VENOM,
  2484. EFST_SHADOW_SCAR,
  2485. EFST_E_SLASH_COUNT,
  2486. EFST_MEDIALE,
  2487. EFST_A_VITA,
  2488. EFST_A_TELUM,
  2489. EFST_PRE_ACIES,
  2490. EFST_COMPETENTIA,
  2491. EFST_GUARD_STANCE,
  2492. EFST_ATTACK_STANCE,
  2493. EFST_GUARDIAN_S,
  2494. EFST_HANDICAPSTATE_DEEPBLIND,
  2495. EFST_HANDICAPSTATE_DEEPSILENCE,
  2496. EFST_HANDICAPSTATE_LASSITUDE,
  2497. EFST_HANDICAPSTATE_FROSTBITE,
  2498. EFST_HANDICAPSTATE_SWOONING,
  2499. EFST_HANDICAPSTATE_LIGHTNINGSTRIKE,
  2500. EFST_HANDICAPSTATE_CRYSTALLIZATION,
  2501. EFST_HANDICAPSTATE_CONFLAGRATION,
  2502. EFST_HANDICAPSTATE_MISFORTUNE,
  2503. EFST_HANDICAPSTATE_DEADLYPOISON,
  2504. EFST_HANDICAPSTATE_DEPRESSION,
  2505. EFST_HANDICAPSTATE_HOLYFLAME,
  2506. EFST_REBOUND_S,
  2507. EFST_SHIELD_MASTERY,
  2508. EFST_SPEAR_SWORD_M,
  2509. EFST_HOLY_S,
  2510. EFST_ULTIMATE_S,
  2511. EFST_SPEAR_SCAR,
  2512. EFST_SHIELD_POWER,
  2513. EFST_FIDUS_ANIMUS,
  2514. EFST_MACE_BOOK_M,
  2515. EFST_SHADOW_WEAPON,
  2516. EFST_RELIGIO,
  2517. EFST_BENEDICTUM,
  2518. EFST_MVPCARD_KIEL,
  2519. EFST_FIRST_BRAND,
  2520. EFST_SECOND_BRAND,
  2521. EFST_SECOND_JUDGE,
  2522. EFST_THIRD_EXOR_FLAME,
  2523. EFST_FIRST_FAITH_POWER,
  2524. EFST_AXE_STOMP,
  2525. EFST_A_MACHINE,
  2526. EFST_D_MACHINE,
  2527. EFST_MT_M_MACHINE_OPERATOR,
  2528. EFST_TWOAXEDEF,
  2529. EFST_DAGGER_AND_BOW_M,
  2530. EFST_MAGIC_SWORD_M,
  2531. EFST_SHADOW_STRIP,
  2532. EFST_ABYSS_DAGGER,
  2533. EFST_ABYSSFORCEWEAPON,
  2534. EFST_ABYSS_SLAYER,
  2535. EFST_TWOHANDDEF,
  2536. EFST_PROTECTSHADOWEQUIP,
  2537. EFST_RESEARCHREPORT,
  2538. EFST_BO_HELL_DUSTY,
  2539. EFST_WINDSIGN,
  2540. EFST_CRESCIVEBOLT,
  2541. EFST_CALAMITYGALE,
  2542. EFST_CRESCIVEBOLT3,
  2543. EFST_STAGE_MANNER,
  2544. EFST_RETROSPECTION,
  2545. EFST_MYSTIC_SYMPHONY,
  2546. EFST_KVASIR_SONATA,
  2547. EFST_SOUNDBLEND,
  2548. EFST_GEF_NOCTURN,
  2549. EFST_AIN_RHAPSODY,
  2550. EFST_MUSICAL_INTERLUDE,
  2551. EFST_JAWAII_SERENADE,
  2552. EFST_PRON_MARCH,
  2553. EFST_ROSEBLOSSOM,
  2554. EFST_BO_BIONIC_PHARMACY_OPERATOR,
  2555. EFST_ACIDIFIED_ZONE_WATER,
  2556. EFST_ACIDIFIED_ZONE_GROUND,
  2557. EFST_ACIDIFIED_ZONE_WIND,
  2558. EFST_ACIDIFIED_ZONE_FIRE,
  2559. EFST_MAGIC_BOOK_M,
  2560. EFST_SPELL_ENCHANTING,
  2561. EFST_SUMMON_ELEMENTAL_ARDOR,
  2562. EFST_SUMMON_ELEMENTAL_DILUVIO,
  2563. EFST_SUMMON_ELEMENTAL_PROCELLA,
  2564. EFST_SUMMON_ELEMENTAL_TERREMOTUS,
  2565. EFST_SUMMON_ELEMENTAL_SERPENS,
  2566. EFST_FLAMETECHNIC,
  2567. EFST_FLAMETECHNIC_OPTION,
  2568. EFST_FLAMEARMOR,
  2569. EFST_FLAMEARMOR_OPTION,
  2570. EFST_COLD_FORCE,
  2571. EFST_COLD_FORCE_OPTION,
  2572. EFST_CRYSTAL_ARMOR,
  2573. EFST_CRYSTAL_ARMOR_OPTION,
  2574. EFST_GRACE_BREEZE,
  2575. EFST_GRACE_BREEZE_OPTION,
  2576. EFST_EYES_OF_STORM,
  2577. EFST_EYES_OF_STORM_OPTION,
  2578. EFST_EARTH_CARE,
  2579. EFST_EARTH_CARE_OPTION,
  2580. EFST_STRONG_PROTECTION,
  2581. EFST_STRONG_PROTECTION_OPTION,
  2582. EFST_DEEP_POISONING,
  2583. EFST_DEEP_POISONING_OPTION,
  2584. EFST_POISON_SHIELD,
  2585. EFST_POISON_SHIELD_OPTION,
  2586. EFST_ABR_BATTLE_WARIOR,
  2587. EFST_ABR_DUAL_CANNON,
  2588. EFST_ABR_MOTHER_NET,
  2589. EFST_ABR_INFINITY,
  2590. EFST_ELEMENTAL_VEIL,
  2591. EFST_RENOVATIO_EXT,
  2592. EFST_HOMUN_TIME,
  2593. EFST_POWER_ACCELERATION,
  2594. EFST_MAX_HP_SP_AVOID,
  2595. EFST_ADD_ALL_STATE,
  2596. EFST_AID_PERIOD_POWER_ACCELERATION,
  2597. EFST_AID_PERIOD_MAX_HP_SP_AVOID,
  2598. EFST_AID_PERIOD_ADD_ALL_STATE,
  2599. EFST_POISON_MIST,
  2600. EFST_HACKANDSLASHER,
  2601. EFST_GET_CNT_UNREAD_RETURN_RODEX_CHARDB,
  2602. EFST_STONE_WALL,
  2603. EFST_REUSE_LIMIT_I,
  2604. EFST_OVERBRANDREADY,
  2605. EFST_SHIELDSPELL,
  2606. EFST_AUTOSHADOWSPELL_CHECK2,
  2607. EFST_CLOUD_POISON,
  2608. EFST_SPORE_EXPLOSION_DEBUFF,
  2609. EFST_DEFSCROLL = 1321,
  2610. EFST_MASSIVE_F_BLASTER = 1326,
  2611. EFST_NOEQUIPWEAPON2 = 1330,
  2612. EFST_NOEQUIPARMOR2,
  2613. EFST_NOEQUIPSHIELD2,
  2614. EFST_NOEQUIPSHOES2,
  2615. EFST_NOEQUIPPENDANT2,
  2616. EFST_NOEQUIPEARING2,
  2617. EFST_NOEQUIPFULL2,
  2618. EFST_CURSE_R_CUBE,
  2619. EFST_CURSE_B_CUBE,
  2620. EFST_KILLING_AURA,
  2621. EFST_TOXIN_OF_MANDARA = 1341,
  2622. EFST_GOLDENE_TONE,
  2623. EFST_TEMPERING,
  2624. EFST_NW_P_F_I,
  2625. EFST_INTENSIVE_AIM,
  2626. EFST_INTENSIVE_AIM_COUNT,
  2627. EFST_GRENADE_FRAGMENT_1,
  2628. EFST_GRENADE_FRAGMENT_2,
  2629. EFST_GRENADE_FRAGMENT_3,
  2630. EFST_GRENADE_FRAGMENT_4,
  2631. EFST_GRENADE_FRAGMENT_5,
  2632. EFST_GRENADE_FRAGMENT_6,
  2633. EFST_AUTO_FIRING_LAUNCHEREFST,
  2634. EFST_HIDDEN_CARD,
  2635. EFST_NW_GRENADE_MASTERY,
  2636. EFST_TALISMAN_OF_PROTECTION,
  2637. EFST_TALISMAN_OF_WARRIOR,
  2638. EFST_TALISMAN_OF_MAGICIAN,
  2639. EFST_TALISMAN_OF_FIVE_ELEMENTS,
  2640. EFST_T_FIRST_GOD,
  2641. EFST_T_SECOND_GOD,
  2642. EFST_T_THIRD_GOD,
  2643. EFST_T_FOURTH_GOD,
  2644. EFST_T_FIVETH_GOD,
  2645. EFST_HEAVEN_AND_EARTH,
  2646. EFST_HOGOGONG,
  2647. EFST_MARINE_FESTIVAL,
  2648. EFST_SANDY_FESTIVAL,
  2649. EFST_KI_SUL_RAMPAGE,
  2650. EFST_COLORS_OF_HYUN_ROK_1,
  2651. EFST_COLORS_OF_HYUN_ROK_2,
  2652. EFST_COLORS_OF_HYUN_ROK_3,
  2653. EFST_COLORS_OF_HYUN_ROK_4,
  2654. EFST_COLORS_OF_HYUN_ROK_5,
  2655. EFST_COLORS_OF_HYUN_ROK_6,
  2656. EFST_COLORS_OF_HYUN_ROK_BUFF,
  2657. EFST_TEMPORARY_COMMUNION,
  2658. EFST_BLESSING_OF_M_CREATURES,
  2659. EFST_BLESSING_OF_M_C_DEBUFF,
  2660. EFST_SHIELDCHAINRUSH,
  2661. EFST_MISTYFROST,
  2662. EFST_GROUNDGRAVITY,
  2663. EFST_BREAKINGLIMIT,
  2664. EFST_RULEBREAK,
  2665. EFST_RISING_SUN,
  2666. EFST_NOON_SUN,
  2667. EFST_SUNSET_SUN,
  2668. EFST_RISING_MOON,
  2669. EFST_MIDNIGHT_MOON,
  2670. EFST_DAWN_MOON,
  2671. EFST_STAR_BURST,
  2672. EFST_SKY_ENCHANT,
  2673. EFST_SHADOW_CLOCK,
  2674. EFST_SHINKIROU_CALL,
  2675. EFST_NIGHTMARE,
  2676. EFST_NOODLE_FES_1,
  2677. EFST_NOODLE_FES_2,
  2678. EFST_NOODLE_FES_3,
  2679. EFST_NOODLE_FES_4,
  2680. EFST_NOODLE_FES_5,
  2681. EFST_RUSH_QUAKE1 = 1402,
  2682. EFST_RUSH_QUAKE2,
  2683. EFST_SBUNSHIN = 1415,
  2684. EFST_MTP_W_POTION_100 = 1418,
  2685. EFST_CHANGE_SIZE = 1420,
  2686. EFST_CHANGE_SIZE_MONSTER,
  2687. EFST_SHOW_EFFECT1,
  2688. EFST_SHOW_EFFECT2,
  2689. EFST_SHOW_EFFECT3,
  2690. EFST_VR_SPEED,
  2691. EFST_VR_ASPD,
  2692. EFST_VR_MHP,
  2693. EFST_VR_MSP,
  2694. EFST_VR_HIT,
  2695. EFST_VR_DEF,
  2696. EFST_VR_MDEF,
  2697. EFST_VR_BOOK001,
  2698. EFST_VR_BOOK002,
  2699. EFST_VR_BOOK003,
  2700. EFST_VR_BOOK004,
  2701. EFST_REUSE_LIMIT_VR_BOOK,
  2702. EFST_VR_BOOK005 = 1439,
  2703. EFST_VR_BOOK006,
  2704. EFST_VR_BOOK007,
  2705. EFST_VR_BOOK008,
  2706. EFST_VR_BOOK009,
  2707. EFST_ALL_T_STAT,
  2708. EFST_P_ATK_PLUS,
  2709. EFST_S_MATK_PLUS,
  2710. EFST_C_RATE_PLUS,
  2711. EFST_RESIST_PLUS,
  2712. EFST_PVP_DUN_BUFF,
  2713. EFST_TARGET_MARKER = 1453,
  2714. EFST_BLOCK_SEAL,
  2715. EFST_FROST_STORM,
  2716. EFST_GROGGY,
  2717. EFST_WARM_SHIELD, //1457
  2718. EFST_CONTENTS_1 = 1459,
  2719. EFST_CONTENTS_2,
  2720. EFST_CONTENTS_3,
  2721. EFST_CONTENTS_4,
  2722. EFST_CONTENTS_5,
  2723. EFST_CONTENTS_6,
  2724. EFST_CONTENTS_7,
  2725. EFST_CONTENTS_8,
  2726. EFST_CONTENTS_9,
  2727. EFST_CONTENTS_10,
  2728. EFST_CONTENTS_11,
  2729. EFST_CONTENTS_12,
  2730. EFST_CONTENTS_13,
  2731. EFST_CONTENTS_14,
  2732. EFST_CONTENTS_15,
  2733. EFST_CONTENTS_16,
  2734. EFST_CONTENTS_17,
  2735. EFST_CONTENTS_18,
  2736. EFST_CONTENTS_19,
  2737. EFST_CONTENTS_20,
  2738. EFST_CONTENTS_21,
  2739. EFST_CONTENTS_22,
  2740. EFST_CONTENTS_23,
  2741. EFST_CONTENTS_24,
  2742. EFST_CONTENTS_25,
  2743. EFST_CONTENTS_26,
  2744. EFST_CONTENTS_27,
  2745. EFST_CONTENTS_28,
  2746. EFST_CONTENTS_29,
  2747. EFST_CONTENTS_30,
  2748. EFST_CONTENTS_31,
  2749. EFST_CONTENTS_32,
  2750. EFST_CONTENTS_33, //1491
  2751. EFST_C_BUFF_1 = 1509,
  2752. EFST_C_BUFF_2,
  2753. EFST_CHASING = 1560,
  2754. EFST_MYSTERY_POWDER = 1665,
  2755. EFST_WILD_WALK,
  2756. EFST_FIRE_CHARM_POWER,
  2757. EFST_WATER_CHARM_POWER,
  2758. EFST_WIND_CHARM_POWER,
  2759. EFST_GROUND_CHARM_POWER,
  2760. EFST_OVERCOMING_CRISIS, //1671
  2761. /// @APIHOOK_END
  2762. /// Do not modify code above this, since it will be automatically generated by the API again
  2763. EFST_MAX,
  2764. };
  2765. /// JOINTBEAT stackable ailments
  2766. enum e_joint_break : uint8 {
  2767. BREAK_ANKLE = 0x01, ///< MoveSpeed reduced by 50%
  2768. BREAK_WRIST = 0x02, ///< ASPD reduced by 25%
  2769. BREAK_KNEE = 0x04, ///< MoveSpeed reduced by 30%, ASPD reduced by 10%
  2770. BREAK_SHOULDER = 0x08, ///< DEF reduced by 50%
  2771. BREAK_WAIST = 0x10, ///< DEF reduced by 25%, ATK reduced by 25%
  2772. BREAK_NECK = 0x20, ///< Current attack does 2x damage, inflicts 'bleeding' for 30 seconds
  2773. BREAK_FLAGS = BREAK_ANKLE | BREAK_WRIST | BREAK_KNEE | BREAK_SHOULDER | BREAK_WAIST | BREAK_NECK,
  2774. };
  2775. extern int16 current_equip_item_index;
  2776. extern uint32 current_equip_combo_pos;
  2777. extern int32 current_equip_card_id;
  2778. extern int16 current_equip_opt_index;
  2779. //Status change option definitions (options are what makes status changes visible to chars
  2780. //who were not on your field of sight when it happened)
  2781. ///opt1: (BODYSTATE_*) Non stackable status changes.
  2782. enum e_sc_opt1 : uint16 {
  2783. OPT1_NONE = 0,
  2784. OPT1_STONE = 1, //Petrified
  2785. OPT1_FREEZE,
  2786. OPT1_STUN,
  2787. OPT1_SLEEP,
  2788. //Aegis uses OPT1 = 5 to identify undead enemies (which also grants them immunity to the other opt1 changes)
  2789. OPT1_STONEWAIT = 6, //Petrifying
  2790. OPT1_BURNING,
  2791. OPT1_IMPRISON,
  2792. OPT1_MAX
  2793. };
  2794. ///opt2: (HEALTHSTATE_*) Stackable status changes.
  2795. enum e_sc_opt2 : uint16 {
  2796. OPT2_NONE = 0x0,
  2797. OPT2_POISON = 0x0001,
  2798. OPT2_CURSE = 0x0002,
  2799. OPT2_SILENCE = 0x0004,
  2800. OPT2_SIGNUMCRUCIS = 0x0008, //Confusion
  2801. OPT2_BLIND = 0x0010,
  2802. OPT2_ANGELUS = 0x0020,
  2803. OPT2_BLEEDING = 0x0040,
  2804. OPT2_DPOISON = 0x0080,
  2805. OPT2_FEAR = 0x0100,
  2806. OPT2_MAX
  2807. };
  2808. ///opt3: (SHOW_EFST_*)
  2809. enum e_sc_opt3 : uint32 {
  2810. OPT3_NORMAL = 0x0,
  2811. OPT3_QUICKEN = 0x00000001,
  2812. OPT3_OVERTHRUST = 0x00000002,
  2813. OPT3_ENERGYCOAT = 0x00000004,
  2814. OPT3_EXPLOSIONSPIRITS = 0x00000008,
  2815. OPT3_STEELBODY = 0x00000010,
  2816. OPT3_BLADESTOP = 0x00000020,
  2817. OPT3_AURABLADE = 0x00000040,
  2818. OPT3_BERSERK = 0x00000080,
  2819. OPT3_LIGHTBLADE = 0x00000100,
  2820. OPT3_MOONLIT = 0x00000200,
  2821. OPT3_MARIONETTE = 0x00000400,
  2822. OPT3_ASSUMPTIO = 0x00000800,
  2823. OPT3_WARM = 0x00001000,
  2824. OPT3_KAITE = 0x00002000,
  2825. OPT3_BUNSIN = 0x00004000,
  2826. OPT3_SOULLINK = 0x00008000,
  2827. OPT3_UNDEAD = 0x00010000,
  2828. OPT3_CONTRACT = 0x00020000,
  2829. OPT3_MAX
  2830. };
  2831. ///Option (EFFECTSTATE_*)
  2832. enum e_option : uint32 {
  2833. OPTION_NOTHING = 0x0,
  2834. OPTION_SIGHT = 0x00000001,
  2835. OPTION_HIDE = 0x00000002,
  2836. OPTION_CLOAK = 0x00000004,
  2837. OPTION_CART1 = 0x00000008,
  2838. OPTION_FALCON = 0x00000010,
  2839. OPTION_RIDING = 0x00000020,
  2840. OPTION_INVISIBLE = 0x00000040,
  2841. OPTION_CART2 = 0x00000080,
  2842. OPTION_CART3 = 0x00000100,
  2843. OPTION_CART4 = 0x00000200,
  2844. OPTION_CART5 = 0x00000400,
  2845. OPTION_ORCISH = 0x00000800,
  2846. OPTION_WEDDING = 0x00001000,
  2847. OPTION_RUWACH = 0x00002000,
  2848. OPTION_CHASEWALK = 0x00004000,
  2849. OPTION_FLYING = 0x00008000, //! NOTE: That clientside Flying and Xmas are 0x8000 for clients prior to 2007.
  2850. OPTION_XMAS = 0x00010000,
  2851. OPTION_TRANSFORM = 0x00020000,
  2852. OPTION_SUMMER = 0x00040000,
  2853. OPTION_DRAGON1 = 0x00080000,
  2854. OPTION_WUG = 0x00100000,
  2855. OPTION_WUGRIDER = 0x00200000,
  2856. OPTION_MADOGEAR = 0x00400000,
  2857. OPTION_DRAGON2 = 0x00800000,
  2858. OPTION_DRAGON3 = 0x01000000,
  2859. OPTION_DRAGON4 = 0x02000000,
  2860. OPTION_DRAGON5 = 0x04000000,
  2861. OPTION_HANBOK = 0x08000000,
  2862. OPTION_OKTOBERFEST = 0x10000000,
  2863. OPTION_SUMMER2 = 0x20000000,
  2864. OPTION_MAX,
  2865. // compound constant for older carts
  2866. OPTION_CART = OPTION_CART1|OPTION_CART2|OPTION_CART3|OPTION_CART4|OPTION_CART5,
  2867. // compound constants
  2868. OPTION_DRAGON = OPTION_DRAGON1|OPTION_DRAGON2|OPTION_DRAGON3|OPTION_DRAGON4|OPTION_DRAGON5,
  2869. OPTION_COSTUME = OPTION_WEDDING|OPTION_XMAS|OPTION_SUMMER|OPTION_HANBOK|OPTION_OKTOBERFEST|OPTION_SUMMER2,
  2870. };
  2871. ///Defines for the manner system [Skotlex]
  2872. enum manner_flags
  2873. {
  2874. MANNER_NOCHAT = 0x01,
  2875. MANNER_NOSKILL = 0x02,
  2876. MANNER_NOCOMMAND = 0x04,
  2877. MANNER_NOITEM = 0x08,
  2878. MANNER_NOROOM = 0x10,
  2879. };
  2880. /// Status Change State Flags
  2881. enum e_scs_flag : uint8 {
  2882. SCS_NONE = 0,
  2883. SCS_NOMOVECOND, ///< cond flag for SCS_NOMOVE
  2884. SCS_NOMOVE, ///< unit unable to move
  2885. SCS_NOPICKITEMCOND, ///< cond flag for SCS_NOPICKITEM
  2886. SCS_NOPICKITEM, ///< player unable to pick up items
  2887. SCS_NODROPITEMCOND, ///< cond flag for SCS_NODROPITEM
  2888. SCS_NODROPITEM, ///< player unable to drop items
  2889. SCS_NOCASTCOND, ///< cond flag for SCS_NOCAST
  2890. SCS_NOCAST, ///< unit unable to cast skills
  2891. SCS_NOCHAT, ///< unit can't talk
  2892. SCS_NOCHATCOND, ///< cond flag for SCS_NOCHAT
  2893. SCS_NOEQUIPITEM, ///< player can't puts on equip
  2894. SCS_NOEQUIPITEMCOND, ///< cond flag for SCS_NOEQUIPITEM
  2895. SCS_NOUNEQUIPITEM, ///< player can't puts off equip
  2896. SCS_NOUNEQUIPITEMCOND, ///< cond flag for SCS_NOUNEQUIPITEM
  2897. SCS_NOCONSUMEITEM, ///< player can't consumes equip
  2898. SCS_NOCONSUMEITEMCOND, ///< cond flag for SCS_NOCONSUMEITEM
  2899. SCS_NOATTACK, ///< unit can't attack
  2900. SCS_NOATTACKCOND, ///< cond flag for SCS_NOATTACK
  2901. SCS_NOWARP, ///< unit can't warp
  2902. SCS_NOWARPCOND, ///< cond flag for SCS_NOWARP
  2903. SCS_NODEATHPENALTY, ///< player doesn't experience EXP loss
  2904. SCS_NODEATHPENALTYCOND, ///< cond flag for SCS_NODEATHPENALTYCOND
  2905. SCS_NOINTERACT, ///< player can't sit/stand/talk to NPC
  2906. SCS_NOINTERACTCOND, ///< cond flag for SCS_NOINTERACT
  2907. SCS_MAX
  2908. };
  2909. ///Define flags for the status_calc_bl function. [Skotlex]
  2910. enum e_scb_flag : uint8 {
  2911. SCB_NONE = 0,
  2912. SCB_BASE,
  2913. SCB_MAXHP,
  2914. SCB_MAXSP,
  2915. SCB_STR,
  2916. SCB_AGI,
  2917. SCB_VIT,
  2918. SCB_INT,
  2919. SCB_DEX,
  2920. SCB_LUK,
  2921. SCB_BATK,
  2922. SCB_WATK,
  2923. SCB_MATK,
  2924. SCB_HIT,
  2925. SCB_FLEE,
  2926. SCB_DEF,
  2927. SCB_DEF2,
  2928. SCB_MDEF,
  2929. SCB_MDEF2,
  2930. SCB_SPEED,
  2931. SCB_ASPD,
  2932. SCB_DSPD,
  2933. SCB_CRI,
  2934. SCB_FLEE2,
  2935. SCB_ATK_ELE,
  2936. SCB_DEF_ELE,
  2937. SCB_MODE,
  2938. SCB_SIZE,
  2939. SCB_RACE,
  2940. SCB_RANGE,
  2941. SCB_REGEN,
  2942. // 4th Job T.Stat/T.Sub-Stat Flags
  2943. SCB_MAXAP,
  2944. SCB_POW,
  2945. SCB_STA,
  2946. SCB_WIS,
  2947. SCB_SPL,
  2948. SCB_CON,
  2949. SCB_CRT,
  2950. SCB_PATK,
  2951. SCB_SMATK,
  2952. SCB_RES,
  2953. SCB_MRES,
  2954. SCB_HPLUS,
  2955. SCB_CRATE,
  2956. // Extra Flags
  2957. SCB_DYE, // force cloth-dye change to 0 to avoid client crashes.
  2958. SCB_MAX,
  2959. };
  2960. enum e_status_calc_opt : uint8 {
  2961. SCO_NONE = 0x0,
  2962. SCO_FIRST = 0x1, ///< Trigger the calculations that should take place only onspawn/once, process base status initialization code
  2963. SCO_FORCE = 0x2, ///< Only relevant to BL_PC types, ensures call bypasses the queue caused by delayed damage
  2964. };
  2965. /// Flags for status_change_start and status_get_sc_def
  2966. enum e_status_change_start_flags : int64 {
  2967. SCSTART_NONE = 0x0,
  2968. SCSTART_NOAVOID = 0x01, /// Cannot be avoided (it has to start)
  2969. SCSTART_NOTICKDEF = 0x02, /// Tick should not be reduced (by statuses or bonuses)
  2970. SCSTART_LOADED = 0x04, /// When sc_data loaded (fetched from table), no values (val1 ~ val4) have to be altered/recalculate
  2971. SCSTART_NORATEDEF = 0x08, /// Rate should not be reduced (by statuses or bonuses)
  2972. SCSTART_NOICON = 0x10, /// Status icon won't be sent to client
  2973. };
  2974. /// Enum for status_change_clear_buffs
  2975. enum e_status_change_clear_buffs_flags : int64 {
  2976. SCCB_BUFFS = 0x01,
  2977. SCCB_DEBUFFS = 0x02,
  2978. SCCB_REFRESH = 0x04,
  2979. SCCB_CHEM_PROTECT = 0x08,
  2980. SCCB_LUXANIMA = 0x10,
  2981. SCCB_HERMODE = 0x20,
  2982. };
  2983. ///Enum for bonus_script's flag [Cydh]
  2984. enum e_bonus_script_flags : uint32 {
  2985. BSF_REM_ON_DEAD = 0x001, ///< Removed when dead
  2986. BSF_REM_ON_DISPELL = 0x002, ///< Removed by Dispell
  2987. BSF_REM_ON_CLEARANCE = 0x004, ///< Removed by Clearance
  2988. BSF_REM_ON_LOGOUT = 0x008, ///< Removed when player logged out
  2989. BSF_REM_ON_BANISHING_BUSTER = 0x010, ///< Removed by Banishing Buster
  2990. BSF_REM_ON_REFRESH = 0x020, ///< Removed by Refresh
  2991. BSF_REM_ON_LUXANIMA = 0x040, ///< Removed by Luxanima
  2992. BSF_REM_ON_MADOGEAR = 0x080, ///< Removed when Madogear is activated or deactivated
  2993. BSF_REM_ON_DAMAGED = 0x100, ///< Removed when receive damage
  2994. BSF_PERMANENT = 0x200, ///< Cannot be removed by sc_end SC_ALL
  2995. // These flags cannot be stacked, BSF_FORCE_REPLACE has highest priority to check if YOU force to add both
  2996. BSF_FORCE_REPLACE = 0x400, ///< Force to replace duplicated script by expanding the duration
  2997. BSF_FORCE_DUPLICATE = 0x800, ///< Force to add duplicated script
  2998. // These flags aren't part of 'bonus_script' scripting flags
  2999. BSF_REM_ALL = 0x0, ///< Remove all bonus script
  3000. BSF_REM_BUFF = 0x4000, ///< Remove positive buff if battle_config.debuff_on_logout&1
  3001. BSF_REM_DEBUFF = 0x8000, ///< Remove negative buff if battle_config.debuff_on_logout&2
  3002. };
  3003. ///Enum for status_get_hpbonus and status_get_spbonus
  3004. enum e_status_bonus {
  3005. STATUS_BONUS_FIX = 0,
  3006. STATUS_BONUS_RATE = 1,
  3007. };
  3008. ///Enum of Status Change Flags [Cydh]
  3009. enum e_status_change_flag : uint16 {
  3010. SCF_NONE = 0,
  3011. SCF_BLEFFECT,
  3012. SCF_DISPLAYPC,
  3013. SCF_NOCLEARBUFF,
  3014. SCF_NOREMOVEONDEAD,
  3015. SCF_NODISPELL,
  3016. SCF_NOCLEARANCE,
  3017. SCF_NOBANISHINGBUSTER,
  3018. SCF_NOSAVE,
  3019. SCF_NOSAVEINFINITE,
  3020. SCF_REMOVEONDAMAGED,
  3021. SCF_REMOVEONREFRESH,
  3022. SCF_REMOVEONLUXANIMA,
  3023. SCF_STOPATTACKING,
  3024. SCF_STOPCASTING,
  3025. SCF_STOPWALKING,
  3026. SCF_BOSSRESIST,
  3027. SCF_MVPRESIST,
  3028. SCF_SETSTAND,
  3029. SCF_FAILEDMADO,
  3030. SCF_DEBUFF,
  3031. SCF_REMOVEONCHANGEMAP,
  3032. SCF_REMOVEONMAPWARP,
  3033. SCF_REMOVECHEMICALPROTECT,
  3034. SCF_OVERLAPIGNORELEVEL,
  3035. SCF_SENDOPTION,
  3036. SCF_ONTOUCH,
  3037. SCF_UNITMOVE,
  3038. SCF_NONPLAYER,
  3039. SCF_SENDLOOK,
  3040. SCF_DISPLAYNPC,
  3041. SCF_REQUIREWEAPON,
  3042. SCF_REQUIRESHIELD,
  3043. SCF_MOBLOSETARGET,
  3044. SCF_REMOVEELEMENTALOPTION,
  3045. SCF_SUPERNOVICEANGEL,
  3046. SCF_TAEKWONANGEL,
  3047. SCF_MADOCANCEL,
  3048. SCF_MADOENDCANCEL,
  3049. SCF_RESTARTONMAPWARP,
  3050. SCF_SPREADEFFECT,
  3051. SCF_SENDVAL1,
  3052. SCF_SENDVAL2,
  3053. SCF_SENDVAL3,
  3054. SCF_NOFORCEDEND,
  3055. SCF_NOWARNING,
  3056. SCF_REMOVEONUNEQUIP,
  3057. SCF_REMOVEONUNEQUIPWEAPON,
  3058. SCF_REMOVEONUNEQUIPARMOR,
  3059. SCF_REMOVEONHERMODE,
  3060. SCF_REQUIRENOWEAPON,
  3061. SCF_REMOVEFROMHOMONWARP,
  3062. SCF_REMOVEFROMHOMONMAPWARP,
  3063. SCF_MAX
  3064. };
  3065. /// Struct of SC configs [Cydh]
  3066. struct s_status_change_db {
  3067. sc_type type; ///< SC_
  3068. efst_type icon; ///< EFST_
  3069. std::bitset<SCS_MAX> state; ///< SCS_
  3070. std::bitset<SCB_MAX> calc_flag; ///< SCB_ flags
  3071. uint16 opt1; ///< OPT1_
  3072. uint16 opt2; ///< OPT2_
  3073. uint32 opt3; ///< OPT3_
  3074. uint32 look; ///< OPTION_ Changelook
  3075. std::bitset<SCF_MAX> flag; ///< SCF_ Flags, enum e_status_change_flag
  3076. uint16 skill_id; ///< Associated skill for (addeff) duration lookups
  3077. std::vector<sc_type> endonstart; ///< List of SC that will be ended when this SC is activated
  3078. std::vector<sc_type> fail; ///< List of SC that causing this SC cannot be activated
  3079. std::vector<sc_type> endreturn; ///< List of SC that will be ended when this SC is activated and then immediately return
  3080. std::vector<sc_type> endonend; ///< List of SC that will be ended when this SC ends
  3081. t_tick min_duration; ///< Minimum duration effect (after all status reduction)
  3082. uint16 min_rate; ///< Minimum rate to be applied (after all status reduction)
  3083. struct script_code* script; ///< Script to execute, when starting the status change.
  3084. s_status_change_db();
  3085. ~s_status_change_db();
  3086. };
  3087. class StatusDatabase : public TypesafeCachedYamlDatabase<uint16, s_status_change_db> {
  3088. public:
  3089. StatusDatabase() : TypesafeCachedYamlDatabase("STATUS_DB", 4, 3) {
  3090. // All except BASE and extra flags.
  3091. SCB_BATTLE.set();
  3092. SCB_BATTLE.reset(SCB_BASE);
  3093. SCB_BATTLE.reset(SCB_DYE);
  3094. // All except extra flags.
  3095. SCB_ALL.set();
  3096. SCB_ALL.reset(SCB_DYE);
  3097. }
  3098. const std::string getDefaultLocation() override;
  3099. uint64 parseBodyNode(const ryml::NodeRef& node) override;
  3100. void loadingFinished() override;
  3101. // Determine who will receive a clif_status_change packet for effects that require one to display correctly
  3102. uint16 StatusRelevantBLTypes[EFST_MAX];
  3103. // Extras
  3104. efst_type getIcon(sc_type type);
  3105. std::bitset<SCB_MAX> getCalcFlag(sc_type type);
  3106. std::vector<sc_type> getEndOnStart(sc_type type);
  3107. uint16 getSkill(sc_type type);
  3108. bool hasSCF(status_change *sc, e_status_change_flag flag);
  3109. void removeByStatusFlag(block_list *bl, std::vector<e_status_change_flag> flag);
  3110. void changeSkillTree(map_session_data *sd, int32 class_ = 0);
  3111. bool validateStatus(sc_type type);
  3112. std::bitset<SCB_MAX> getSCB_BATTLE();
  3113. std::bitset<SCB_MAX> getSCB_ALL();
  3114. private:
  3115. std::bitset<SCB_MAX> SCB_BATTLE, SCB_ALL;
  3116. };
  3117. extern StatusDatabase status_db;
  3118. /// Enum for status_calc_weight and status_calc_cart_weight
  3119. enum e_status_calc_weight_opt {
  3120. CALCWT_NONE = 0x0,
  3121. CALCWT_ITEM = 0x1, ///< Recalculate item weight
  3122. CALCWT_MAXBONUS = 0x2, ///< Recalculate max weight based on skill/status/configuration bonuses
  3123. CALCWT_CARTSTATE = 0x4, ///< Whether to check for cart state
  3124. };
  3125. // Enum for refine chance types
  3126. enum e_refine_chance_type {
  3127. REFINE_CHANCE_NORMAL = 0,
  3128. REFINE_CHANCE_ENRICHED,
  3129. REFINE_CHANCE_EVENT_NORMAL,
  3130. REFINE_CHANCE_EVENT_ENRICHED,
  3131. REFINE_CHANCE_TYPE_MAX
  3132. };
  3133. ///Define to determine who gets HP/SP consumed on doing skills/etc. [Skotlex]
  3134. #define BL_CONSUME (BL_PC|BL_HOM|BL_MER|BL_ELEM)
  3135. ///Define to determine who has regen
  3136. #define BL_REGEN (BL_PC|BL_HOM|BL_MER|BL_ELEM)
  3137. ///Define to determine who will receive a clif_status_change packet for effects that require one to display correctly
  3138. #define BL_SCEFFECT (BL_PC|BL_HOM|BL_MER|BL_MOB|BL_ELEM)
  3139. /** Basic damage info of a weapon
  3140. * Required because players have two of these, one in status_data
  3141. * and another for their left hand weapon. */
  3142. struct weapon_atk {
  3143. uint16 atk, atk2;
  3144. uint16 range;
  3145. unsigned char ele;
  3146. #ifdef RENEWAL
  3147. uint16 matk;
  3148. unsigned char wlv;
  3149. #endif
  3150. };
  3151. ///For holding basic status (which can be modified by status changes)
  3152. struct status_data {
  3153. // see status_cpy before adding members before hp and sp
  3154. uint32 hp;
  3155. uint32 sp;
  3156. uint32 ap;
  3157. uint32 max_hp;
  3158. uint32 max_sp;
  3159. uint32 max_ap;
  3160. int16
  3161. str, agi, vit, int_, dex, luk,
  3162. pow, sta, wis, spl, con, crt,
  3163. eatk;
  3164. uint16
  3165. batk,
  3166. #ifdef RENEWAL
  3167. watk,
  3168. watk2,
  3169. #endif
  3170. matk_min, matk_max,
  3171. speed,
  3172. amotion, clientamotion, adelay, dmotion;
  3173. int32 mode;
  3174. int16
  3175. hit, flee, cri, flee2,
  3176. def2, mdef2,
  3177. #ifdef RENEWAL_ASPD
  3178. aspd_rate2,
  3179. #endif
  3180. aspd_rate,
  3181. patk, smatk,
  3182. res, mres,
  3183. hplus, crate;
  3184. /**
  3185. * defType is RENEWAL dependent and defined in src/config/const.hpp
  3186. **/
  3187. defType def,mdef;
  3188. unsigned char
  3189. def_ele, ele_lv,
  3190. size,
  3191. race, /// see enum e_race
  3192. class_; /// see enum e_classAE
  3193. struct weapon_atk rhw, lhw; //Right Hand/Left Hand Weapon.
  3194. };
  3195. ///Additional regen data that only players have.
  3196. struct regen_data_sub {
  3197. uint16
  3198. hp,sp;
  3199. //tick accumulation before healing.
  3200. struct {
  3201. uint32 hp;
  3202. uint32 sp;
  3203. } tick;
  3204. //Regen rates. n/100
  3205. struct {
  3206. uint16 hp,sp;
  3207. } rate;
  3208. };
  3209. ///Regen data
  3210. struct regen_data {
  3211. unsigned char flag; //Marks what stuff you may heal or not.
  3212. uint16 hp,sp,shp,ssp;
  3213. //tick accumulation before healing.
  3214. struct {
  3215. t_tick hp, sp; //time of last natural recovery
  3216. uint32 shp;
  3217. uint32 ssp;
  3218. } tick;
  3219. //Regen rates. n/100
  3220. struct {
  3221. uint16 hp, sp, shp, ssp;
  3222. } rate;
  3223. struct {
  3224. unsigned walk:1; //Can you regen even when walking?
  3225. unsigned gc:1; //Tags when you should have double regen due to GVG castle
  3226. unsigned overweight :2; //overweight state (1: 50%, 2: 90%)
  3227. unsigned block :2; //Block regen flag (1: Hp, 2: Sp)
  3228. } state;
  3229. //skill-regen, sitting-skill-regen (since not all chars with regen need it)
  3230. struct regen_data_sub *sregen, *ssregen;
  3231. };
  3232. ///Status display entry
  3233. struct sc_display_entry {
  3234. enum sc_type type;
  3235. int32 val1, val2, val3;
  3236. };
  3237. ///Status change entry
  3238. struct status_change_entry {
  3239. int32 timer;
  3240. int32 val1,val2,val3,val4;
  3241. };
  3242. ///Status change
  3243. class status_change {
  3244. public:
  3245. uint32 option;// effect state (bitfield)
  3246. uint32 opt3;// skill state (bitfield)
  3247. uint16 opt1;// body state
  3248. uint16 opt2;// health state (bitfield)
  3249. unsigned char count;
  3250. sc_type lastEffect; // Used to check for stacking damageable SC on the same attack
  3251. int32 lastEffectTimer; // Timer for lastEffect
  3252. //! TODO: See if it is possible to implement the following SC's without requiring extra parameters while the SC is inactive.
  3253. struct {
  3254. uint8 move;
  3255. uint8 pickup;
  3256. uint8 drop;
  3257. uint8 cast;
  3258. uint8 chat;
  3259. uint8 equip;
  3260. uint8 unequip;
  3261. uint8 consume;
  3262. uint8 attack;
  3263. uint8 warp;
  3264. uint8 deathpenalty;
  3265. uint8 interact;
  3266. } cant;/* status change state flags */
  3267. //int32 sg_id; //ID of the previous Storm gust that hit you
  3268. int16 comet_x, comet_y; // Point where src casted Comet - required to calculate damage from this point
  3269. /**
  3270. * The Storm Gust counter was dropped in renewal
  3271. **/
  3272. #ifndef RENEWAL
  3273. unsigned char sg_counter; //Storm gust counter (previous hits from storm gust)
  3274. #endif
  3275. private:
  3276. struct status_change_entry *data[SC_MAX];
  3277. std::pair<enum sc_type, struct status_change_entry *> lastStatus; // last-fetched status
  3278. public:
  3279. status_change();
  3280. status_change_entry * getSCE(enum sc_type type);
  3281. status_change_entry * getSCE(uint32 type);
  3282. status_change_entry * createSCE(enum sc_type type);
  3283. void deleteSCE(enum sc_type type);
  3284. void clearSCE(enum sc_type type);
  3285. bool empty();
  3286. };
  3287. #ifndef ONLY_CONSTANTS
  3288. int32 status_damage( struct block_list *src, struct block_list *target, int64 dhp, int64 dsp, int64 dap, t_tick walkdelay, int32 flag, uint16 skill_id );
  3289. static int32 status_damage( struct block_list *src, struct block_list *target, int64 dhp, int64 dsp, t_tick walkdelay, int32 flag, uint16 skill_id ){
  3290. return status_damage( src, target, dhp, dsp, 0, walkdelay, flag, skill_id );
  3291. }
  3292. //Define for standard HP damage attacks.
  3293. static int32 status_fix_damage( struct block_list *src, struct block_list *target, int64 hp, t_tick walkdelay, uint16 skill_id ){
  3294. return status_damage( src, target, hp, 0, walkdelay, 0, skill_id );
  3295. }
  3296. //Define for standard SP damage attacks.
  3297. static int32 status_fix_spdamage( struct block_list *src, struct block_list *target, int64 sp, t_tick walkdelay, uint16 skill_id ){
  3298. return status_damage( src, target, 0, sp, walkdelay, 0, skill_id );
  3299. }
  3300. //Define for standard AP damage attacks.
  3301. static int32 status_fix_apdamage( struct block_list *src, struct block_list *target, int64 ap, t_tick walkdelay, uint16 skill_id ){
  3302. return status_damage( src, target, 0, 0, ap, walkdelay, 0, skill_id );
  3303. }
  3304. //Define for standard HP/SP/AP damage triggers.
  3305. static int32 status_zap( struct block_list* bl, int64 hp, int64 sp, int64 ap = 0 ){
  3306. return status_damage( nullptr, bl, hp, sp, ap, 0, 1, 0 );
  3307. }
  3308. //Define for standard HP/SP skill-related cost triggers (mobs require no HP/SP/AP to use skills)
  3309. int64 status_charge(struct block_list* bl, int64 hp, int64 sp);
  3310. int32 status_percent_change(struct block_list *src, struct block_list *target, int8 hp_rate, int8 sp_rate, int8 ap_rate, uint8 flag);
  3311. //Easier handling of status_percent_change
  3312. static int32 status_percent_heal( struct block_list* bl, int8 hp_rate, int8 sp_rate, int8 ap_rate = 0 ){
  3313. return status_percent_change( nullptr, bl, -(hp_rate), -(sp_rate), -(ap_rate), 0 );
  3314. }
  3315. /// Deals % damage from 'src' to 'target'. If rate is > 0 is % of current HP/SP/AP, < 0 % of MaxHP/MaxSP/MaxAP
  3316. static int32 status_percent_damage( struct block_list* src, struct block_list* target, int8 hp_rate, int8 sp_rate, bool kill ){
  3317. return status_percent_change( src, target, hp_rate, sp_rate, 0, kill ? 1 : 2 );
  3318. }
  3319. static int32 status_percent_damage( struct block_list* src, struct block_list* target, int8 hp_rate, int8 sp_rate, int8 ap_rate, bool kill ){
  3320. return status_percent_change( src, target, hp_rate, sp_rate, ap_rate, kill ? 1 : 2 );
  3321. }
  3322. //Instant kill with no drops/exp/etc
  3323. static int32 status_kill( struct block_list* bl ){
  3324. return status_percent_damage( nullptr, bl, 100, 0, 0, true );
  3325. }
  3326. //Used to set the hp/sp/ap of an object to an absolute value (can't kill)
  3327. int32 status_set_hp(struct block_list *bl, uint32 hp, int32 flag);
  3328. int32 status_set_maxhp(struct block_list *bl, uint32 hp, int32 flag);
  3329. int32 status_set_sp(struct block_list *bl, uint32 sp, int32 flag);
  3330. int32 status_set_maxsp(struct block_list *bl, uint32 hp, int32 flag);
  3331. int32 status_set_ap(struct block_list *bl, uint32 ap, int32 flag);
  3332. int32 status_set_maxap(struct block_list *bl, uint32 ap, int32 flag);
  3333. int32 status_heal( struct block_list *bl,int64 hhp,int64 hsp, int64 hap, int32 flag );
  3334. static int32 status_heal( struct block_list *bl,int64 hhp,int64 hsp, int32 flag ){
  3335. return status_heal( bl, hhp, hsp, 0, flag );
  3336. }
  3337. int32 status_revive(struct block_list *bl, unsigned char per_hp, unsigned char per_sp, unsigned char per_ap = 0);
  3338. struct regen_data *status_get_regen_data(struct block_list *bl);
  3339. status_data* status_get_status_data(block_list& bl);
  3340. struct status_data *status_get_base_status(struct block_list *bl);
  3341. const char* status_get_name( block_list& bl );
  3342. int32 status_get_class(struct block_list *bl);
  3343. int32 status_get_lv(struct block_list *bl);
  3344. #define status_get_range(bl) status_get_status_data(*bl)->rhw.range
  3345. #define status_get_hp(bl) status_get_status_data(*bl)->hp
  3346. #define status_get_max_hp(bl) status_get_status_data(*bl)->max_hp
  3347. #define status_get_sp(bl) status_get_status_data(*bl)->sp
  3348. #define status_get_max_sp(bl) status_get_status_data(*bl)->max_sp
  3349. #define status_get_ap(bl) status_get_status_data(*bl)->ap
  3350. #define status_get_max_ap(bl) status_get_status_data(*bl)->max_ap
  3351. #define status_get_str(bl) status_get_status_data(*bl)->str
  3352. #define status_get_agi(bl) status_get_status_data(*bl)->agi
  3353. #define status_get_vit(bl) status_get_status_data(*bl)->vit
  3354. #define status_get_int(bl) status_get_status_data(*bl)->int_
  3355. #define status_get_dex(bl) status_get_status_data(*bl)->dex
  3356. #define status_get_luk(bl) status_get_status_data(*bl)->luk
  3357. #define status_get_pow(bl) status_get_status_data(*bl)->pow
  3358. #define status_get_sta(bl) status_get_status_data(*bl)->sta
  3359. #define status_get_wis(bl) status_get_status_data(*bl)->wis
  3360. #define status_get_spl(bl) status_get_status_data(*bl)->spl
  3361. #define status_get_con(bl) status_get_status_data(*bl)->con
  3362. #define status_get_crt(bl) status_get_status_data(*bl)->crt
  3363. #define status_get_hit(bl) status_get_status_data(*bl)->hit
  3364. #define status_get_flee(bl) status_get_status_data(*bl)->flee
  3365. defType status_get_def(struct block_list *bl);
  3366. #define status_get_mdef(bl) status_get_status_data(*bl)->mdef
  3367. #define status_get_flee2(bl) status_get_status_data(*bl)->flee2
  3368. #define status_get_def2(bl) status_get_status_data(*bl)->def2
  3369. #define status_get_mdef2(bl) status_get_status_data(*bl)->mdef2
  3370. #define status_get_critical(bl) status_get_status_data(*bl)->cri
  3371. #define status_get_batk(bl) status_get_status_data(*bl)->batk
  3372. #define status_get_watk(bl) status_get_status_data(*bl)->rhw.atk
  3373. #define status_get_watk2(bl) status_get_status_data(*bl)->rhw.atk2
  3374. #define status_get_matk_max(bl) status_get_status_data(*bl)->matk_max
  3375. #define status_get_matk_min(bl) status_get_status_data(*bl)->matk_min
  3376. #define status_get_lwatk(bl) status_get_status_data(*bl)->lhw.atk
  3377. #define status_get_lwatk2(bl) status_get_status_data(*bl)->lhw.atk2
  3378. uint16 status_get_speed(struct block_list *bl);
  3379. #define status_get_adelay(bl) status_get_status_data(*bl)->adelay
  3380. #define status_get_amotion(bl) status_get_status_data(*bl)->amotion
  3381. #define status_get_clientamotion(bl) status_get_status_data(*bl)->clientamotion
  3382. #define status_get_dmotion(bl) status_get_status_data(*bl)->dmotion
  3383. #define status_get_patk(bl) status_get_status_data(*bl)->patk
  3384. #define status_get_smatk(bl) status_get_status_data(*bl)->smatk
  3385. #define status_get_res(bl) status_get_status_data(*bl)->res
  3386. #define status_get_mres(bl) status_get_status_data(*bl)->mres
  3387. #define status_get_hplus(bl) status_get_status_data(*bl)->hplus
  3388. #define status_get_crate(bl) status_get_status_data(*bl)->crate
  3389. #define status_get_element(bl) status_get_status_data(*bl)->def_ele
  3390. #define status_get_element_level(bl) status_get_status_data(*bl)->ele_lv
  3391. unsigned char status_calc_attack_element(struct block_list *bl, status_change *sc, int32 element);
  3392. #define status_get_attack_sc_element(bl, sc) status_calc_attack_element(bl, sc, 0)
  3393. #define status_get_attack_element(bl) status_get_status_data(*bl)->rhw.ele
  3394. #define status_get_attack_lelement(bl) status_get_status_data(*bl)->lhw.ele
  3395. #define status_get_race(bl) status_get_status_data(*bl)->race
  3396. #define status_get_class_(bl) status_get_status_data(*bl)->class_
  3397. #define status_get_size(bl) status_get_status_data(*bl)->size
  3398. #define status_get_mode(bl) status_get_status_data(*bl)->mode
  3399. #define status_has_mode(status,md) (((status)->mode&(md)) == (md))
  3400. #define status_bl_has_mode(bl,md) status_has_mode(status_get_status_data(*(bl)),(md))
  3401. #define status_get_homstr(bl) (status->str + ((TBL_HOM*)bl)->homunculus.str_value)
  3402. #define status_get_homagi(bl) (status->agi + ((TBL_HOM*)bl)->homunculus.agi_value)
  3403. #define status_get_homvit(bl) (status->vit + ((TBL_HOM*)bl)->homunculus.vit_value)
  3404. #define status_get_homint(bl) (status->int_ + ((TBL_HOM*)bl)->homunculus.int_value)
  3405. #define status_get_homdex(bl) (status->dex + ((TBL_HOM*)bl)->homunculus.dex_value)
  3406. #define status_get_homluk(bl) (status->luk + ((TBL_HOM*)bl)->homunculus.luk_value)
  3407. int32 status_get_party_id(struct block_list *bl);
  3408. int32 status_get_guild_id(struct block_list *bl);
  3409. int32 status_get_emblem_id(struct block_list *bl);
  3410. std::vector<e_race2> status_get_race2(struct block_list *bl);
  3411. struct view_data *status_get_viewdata(struct block_list *bl);
  3412. void status_set_viewdata(struct block_list *bl, int32 class_);
  3413. void status_change_init(struct block_list *bl);
  3414. status_change *status_get_sc(struct block_list *bl);
  3415. bool status_isdead(block_list &bl);
  3416. int32 status_isimmune(struct block_list *bl);
  3417. t_tick status_get_sc_def(struct block_list *src,struct block_list *bl, enum sc_type type, int32 rate, t_tick tick, unsigned char flag);
  3418. int32 status_change_start(struct block_list* src, struct block_list* bl,enum sc_type type,int32 rate,int32 val1,int32 val2,int32 val3,int32 val4,t_tick duration,unsigned char flag, int32 delay = 0);
  3419. //Short version, receives rate in 1->100 range, and does not uses a flag setting.
  3420. static int32 sc_start(block_list *src, block_list *bl, sc_type type, int32 rate, int32 val1, t_tick duration, int32 delay = 0) {
  3421. return status_change_start(src, bl, type, 100 * rate, val1, 0, 0, 0, duration, SCSTART_NONE, delay);
  3422. }
  3423. static int32 sc_start2(block_list *src, block_list *bl, sc_type type, int32 rate, int32 val1, int32 val2, t_tick duration, int32 delay = 0) {
  3424. return status_change_start(src, bl, type, 100 * rate, val1, val2, 0, 0, duration, SCSTART_NONE, delay);
  3425. }
  3426. static int32 sc_start4(block_list *src, block_list *bl, sc_type type, int32 rate, int32 val1, int32 val2, int32 val3, int32 val4, t_tick duration, int32 delay = 0) {
  3427. return status_change_start(src, bl, type, 100 * rate, val1, val2, val3, val4, duration, SCSTART_NONE, delay);
  3428. }
  3429. int32 status_change_end(struct block_list* bl, enum sc_type type, int32 tid = INVALID_TIMER);
  3430. TIMER_FUNC(status_change_timer);
  3431. int32 status_change_timer_sub(struct block_list* bl, va_list ap);
  3432. int32 status_change_clear(struct block_list* bl, int32 type);
  3433. void status_change_clear_buffs(struct block_list* bl, uint8 type);
  3434. void status_change_clear_onChangeMap(struct block_list *bl, status_change *sc);
  3435. TIMER_FUNC(status_clear_lastEffect_timer);
  3436. #define status_calc_mob(md, opt) status_calc_bl_(&(md)->bl, status_db.getSCB_ALL(), opt)
  3437. #define status_calc_pet(pd, opt) status_calc_bl_(&(pd)->bl, status_db.getSCB_ALL(), opt)
  3438. #define status_calc_pc(sd, opt) status_calc_bl_(&(sd)->bl, status_db.getSCB_ALL(), opt)
  3439. #define status_calc_homunculus(hd, opt) status_calc_bl_(&(hd)->bl, status_db.getSCB_ALL(), opt)
  3440. #define status_calc_mercenary(md, opt) status_calc_bl_(&(md)->bl, status_db.getSCB_ALL(), opt)
  3441. #define status_calc_elemental(ed, opt) status_calc_bl_(&(ed)->bl, status_db.getSCB_ALL(), opt)
  3442. #define status_calc_npc(nd, opt) status_calc_bl_(&(nd)->bl, status_db.getSCB_ALL(), opt)
  3443. bool status_calc_weight(map_session_data *sd, enum e_status_calc_weight_opt flag);
  3444. bool status_calc_cart_weight(map_session_data *sd, enum e_status_calc_weight_opt flag);
  3445. void status_calc_bl_(struct block_list *bl, std::bitset<SCB_MAX> flag, uint8 opt = SCO_NONE);
  3446. int32 status_calc_mob_(struct mob_data* md, uint8 opt);
  3447. void status_calc_pet_(struct pet_data* pd, uint8 opt);
  3448. int32 status_calc_pc_(map_session_data* sd, uint8 opt);
  3449. int32 status_calc_homunculus_(struct homun_data *hd, uint8 opt);
  3450. int32 status_calc_mercenary_(s_mercenary_data *md, uint8 opt);
  3451. int32 status_calc_elemental_(s_elemental_data *ed, uint8 opt);
  3452. int32 status_calc_npc_(struct npc_data *nd, uint8 opt);
  3453. static void status_calc_bl(block_list *bl, std::vector<e_scb_flag> flags) {
  3454. static std::bitset<SCB_MAX> temp;
  3455. temp.reset();
  3456. for (const auto &scb : flags) {
  3457. temp.set(scb);
  3458. }
  3459. status_calc_bl_(bl, temp);
  3460. }
  3461. void status_calc_misc(struct block_list *bl, struct status_data *status, int32 level);
  3462. void status_calc_regen(struct block_list *bl, struct status_data *status, struct regen_data *regen);
  3463. void status_calc_regen_rate(struct block_list *bl, struct regen_data *regen, status_change *sc);
  3464. void status_calc_state(struct block_list *bl, status_change *sc, std::bitset<SCS_MAX> flag, bool start);
  3465. void status_calc_slave_mode(mob_data& md);
  3466. bool status_check_skilluse(struct block_list *src, struct block_list *target, uint16 skill_id, int32 flag);
  3467. bool status_check_visibility(block_list* src, block_list* target, bool checkblind);
  3468. int32 status_change_spread(block_list *src, block_list *bl);
  3469. #ifndef RENEWAL
  3470. uint16 status_base_matk_min(const struct status_data* status);
  3471. uint16 status_base_matk_max(const struct status_data* status);
  3472. #else
  3473. uint32 status_weapon_atk(struct weapon_atk wa, map_session_data *sd);
  3474. uint16 status_base_atk_min(struct block_list *bl, const struct status_data* status, int32 level);
  3475. uint16 status_base_atk_max(struct block_list *bl, const struct status_data* status, int32 level);
  3476. uint16 status_base_matk_min(struct block_list *bl, const struct status_data* status, int32 level);
  3477. uint16 status_base_matk_max(struct block_list *bl, const struct status_data* status, int32 level);
  3478. #endif
  3479. uint16 status_calc_consumablematk( status_change *sc, int32 matk );
  3480. uint16 status_calc_pseudobuff_matk( map_session_data *sd, status_change *sc, int32 matk );
  3481. uint16 status_base_atk(const struct block_list *bl, const struct status_data *status, int32 level);
  3482. // Status changes accessors for StatusChange database
  3483. uint16 status_efst_get_bl_type(enum efst_type efst);
  3484. void status_readdb( bool reload = false );
  3485. void do_init_status(void);
  3486. void do_final_status(void);
  3487. #endif /* ONLY_CONSTANTS */
  3488. #endif /* STATUS_HPP */