script.hpp 46 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278
  1. // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
  2. // For more information, see LICENCE in the main folder
  3. #ifndef SCRIPT_HPP
  4. #define SCRIPT_HPP
  5. #include <ryml_std.hpp>
  6. #include <ryml.hpp>
  7. #include <common/database.hpp>
  8. #include <common/cbasetypes.hpp>
  9. #include <common/db.hpp>
  10. #include <common/mmo.hpp>
  11. #include <common/timer.hpp>
  12. #define NUM_WHISPER_VAR 10
  13. ///////////////////////////////////////////////////////////////////////////////
  14. //## TODO possible enhancements: [FlavioJS]
  15. // - 'callfunc' supporting labels in the current npc "::LabelName"
  16. // - 'callfunc' supporting labels in other npcs "NpcName::LabelName"
  17. // - 'function FuncName;' function declarations reverting to global functions
  18. // if local label isn't found
  19. // - join callfunc and callsub's functionality
  20. // - remove dynamic allocation in add_word()
  21. // - remove GETVALUE / SETVALUE
  22. // - clean up the set_reg / set_val / setd_sub mess
  23. // - detect invalid label references at parse-time
  24. //
  25. // struct script_state* st;
  26. //
  27. /// Returns the script_data at the target index
  28. #define script_getdata(st,i) ( &((st)->stack->stack_data[(st)->start + (i)]) )
  29. /// Returns if the stack contains data at the target index
  30. #define script_hasdata(st,i) ( (st)->end > (st)->start + (i) )
  31. /// Returns the index of the last data in the stack
  32. #define script_lastdata(st) ( (st)->end - (st)->start - 1 )
  33. /// Pushes an int into the stack
  34. #define script_pushint(st,val) push_val((st)->stack, C_INT, (val))
  35. /// Pushes an int64 into the stack
  36. #define script_pushint64( st, val ) push_val2( (st)->stack, C_INT, val, nullptr )
  37. /// Pushes a string into the stack (script engine frees it automatically)
  38. #define script_pushstr(st,val) push_str((st)->stack, C_STR, (val))
  39. /// Pushes a copy of a string into the stack
  40. #define script_pushstrcopy(st,val) push_str((st)->stack, C_STR, aStrdup(val))
  41. /// Pushes a constant string into the stack (must never change or be freed)
  42. #define script_pushconststr(st,val) push_str((st)->stack, C_CONSTSTR, const_cast<char *>(val))
  43. /// Pushes a nil into the stack
  44. #define script_pushnil(st) push_val((st)->stack, C_NOP, 0)
  45. /// Pushes a copy of the data in the target index
  46. #define script_pushcopy(st,i) push_copy((st)->stack, (st)->start + (i))
  47. #define script_isstring(st,i) data_isstring(get_val(st, script_getdata(st,i)))
  48. #define script_isint(st,i) data_isint(get_val(st, script_getdata(st,i)))
  49. #define script_getnum(st,val) conv_num(st, script_getdata(st,val))
  50. #define script_getnum64(st,val) conv_num64(st, script_getdata(st,val))
  51. #define script_getstr(st,val) conv_str(st, script_getdata(st,val))
  52. #define script_getref(st,val) ( script_getdata(st,val)->ref )
  53. // Returns name of currently running function
  54. #define script_getfuncname(st) ( st->funcname )
  55. // Note: "top" functions/defines use indexes relative to the top of the stack
  56. // -1 is the index of the data at the top
  57. /// Returns the script_data at the target index relative to the top of the stack
  58. #define script_getdatatop(st,i) ( &((st)->stack->stack_data[(st)->stack->sp + (i)]) )
  59. /// Pushes a copy of the data in the target index relative to the top of the stack
  60. #define script_pushcopytop(st,i) push_copy((st)->stack, (st)->stack->sp + (i))
  61. /// Removes the range of values [start,end[ relative to the top of the stack
  62. #define script_removetop(st,start,end) ( pop_stack((st), ((st)->stack->sp + (start)), (st)->stack->sp + (end)) )
  63. //
  64. // struct script_data* data;
  65. //
  66. /// Returns if the script data is a string
  67. #define data_isstring(data) ( (data)->type == C_STR || (data)->type == C_CONSTSTR )
  68. /// Returns if the script data is an int
  69. #define data_isint(data) ( (data)->type == C_INT )
  70. /// Returns if the script data is a reference
  71. #define data_isreference(data) ( (data)->type == C_NAME )
  72. /// Returns if the script data is a label
  73. #define data_islabel(data) ( (data)->type == C_POS )
  74. /// Returns if the script data is an internal script function label
  75. #define data_isfunclabel(data) ( (data)->type == C_USERFUNC_POS )
  76. /// Returns if this is a reference to a constant
  77. #define reference_toconstant(data) ( str_data[reference_getid(data)].type == C_INT )
  78. /// Returns if this a reference to a param
  79. #define reference_toparam(data) ( str_data[reference_getid(data)].type == C_PARAM )
  80. /// Returns if this a reference to a variable
  81. //##TODO confirm it's C_NAME [FlavioJS]
  82. #define reference_tovariable(data) ( str_data[reference_getid(data)].type == C_NAME )
  83. /// Returns the unique id of the reference (id and index)
  84. #define reference_getuid(data) ( (data)->u.num )
  85. /// Returns the id of the reference
  86. #define reference_getid(data) ( (int32)(int64)(reference_getuid(data) & 0xffffffff) )
  87. /// Returns the array index of the reference
  88. #define reference_getindex(data) ( (uint32)(int64)((reference_getuid(data) >> 32) & 0xffffffff) )
  89. /// Returns the name of the reference
  90. #define reference_getname(data) ( str_buf + str_data[reference_getid(data)].str )
  91. /// Returns the linked list of uid-value pairs of the reference (can be NULL)
  92. #define reference_getref(data) ( (data)->ref )
  93. /// Returns the value of the constant
  94. #define reference_getconstant(data) ( str_data[reference_getid(data)].val )
  95. /// Returns the type of param
  96. #define reference_getparamtype(data) ( str_data[reference_getid(data)].val )
  97. /// Composes the uid of a reference from the id and the index
  98. #define reference_uid(id,idx) ( (int64) ((uint64)(id) & 0xFFFFFFFF) | ((uint64)(idx) << 32) )
  99. /// Checks whether two references point to the same variable (or array)
  100. #define is_same_reference(data1, data2) \
  101. ( reference_getid(data1) == reference_getid(data2) \
  102. && ( (data1->ref == data2->ref && data1->ref == NULL) \
  103. || (data1->ref != NULL && data2->ref != NULL && data1->ref->vars == data2->ref->vars \
  104. ) ) )
  105. #define script_getvarid(var) ( (int32)(int64)(var & 0xFFFFFFFF) )
  106. #define script_getvaridx(var) ( (uint32)(int64)((var >> 32) & 0xFFFFFFFF) )
  107. #define not_server_variable(prefix) ( (prefix) != '$' && (prefix) != '.' && (prefix) != '\'')
  108. #define is_string_variable(name) ( (name)[strlen(name) - 1] == '$' )
  109. #define FETCH(n, t) \
  110. if( script_hasdata(st,n) ) \
  111. (t)=script_getnum(st,n);
  112. /// Maximum amount of elements in script arrays
  113. #define SCRIPT_MAX_ARRAYSIZE (UINT_MAX - 1)
  114. enum script_cmd_result {
  115. SCRIPT_CMD_SUCCESS = 0, ///when a buildin cmd was correctly done
  116. SCRIPT_CMD_FAILURE = 1, ///when an errors appear in cmd, show_debug will follow
  117. };
  118. #define SCRIPT_BLOCK_SIZE 512
  119. enum e_labelType { LABEL_NEXTLINE = 1, LABEL_START };
  120. class map_session_data;
  121. struct eri;
  122. extern int potion_flag; //For use on Alchemist improved potions/Potion Pitcher. [Skotlex]
  123. extern int potion_hp, potion_per_hp, potion_sp, potion_per_sp;
  124. extern int potion_target;
  125. extern unsigned int *generic_ui_array;
  126. extern unsigned int generic_ui_array_size;
  127. struct Script_Config {
  128. unsigned warn_func_mismatch_argtypes : 1;
  129. unsigned warn_func_mismatch_paramnum : 1;
  130. int check_cmdcount;
  131. int check_gotocount;
  132. int input_min_value;
  133. int input_max_value;
  134. // PC related
  135. const char *die_event_name;
  136. const char *kill_pc_event_name;
  137. const char *kill_mob_event_name;
  138. const char *login_event_name;
  139. const char *logout_event_name;
  140. const char *loadmap_event_name;
  141. const char *baselvup_event_name;
  142. const char *joblvup_event_name;
  143. // NPC related
  144. const char* ontouch_event_name;
  145. const char* ontouch2_event_name;
  146. const char* ontouchnpc_event_name;
  147. const char* onwhisper_event_name;
  148. const char* oncommand_event_name;
  149. const char* onbuy_event_name;
  150. const char* onsell_event_name;
  151. // Init related
  152. const char* init_event_name;
  153. const char* inter_init_event_name;
  154. const char* inter_init_once_event_name;
  155. // Guild related
  156. const char* guild_break_event_name;
  157. const char* agit_start_event_name;
  158. const char* agit_init_event_name;
  159. const char* agit_end_event_name;
  160. const char* agit_start2_event_name;
  161. const char* agit_init2_event_name;
  162. const char* agit_end2_event_name;
  163. const char* agit_start3_event_name;
  164. const char* agit_init3_event_name;
  165. const char* agit_end3_event_name;
  166. // Timer related
  167. const char* timer_event_name;
  168. const char* timer_quit_event_name;
  169. const char* timer_minute_event_name;
  170. const char* timer_hour_event_name;
  171. const char* timer_clock_event_name;
  172. const char* timer_day_event_name;
  173. const char* timer_sunday_event_name;
  174. const char* timer_monday_event_name;
  175. const char* timer_tuesday_event_name;
  176. const char* timer_wednesday_event_name;
  177. const char* timer_thursday_event_name;
  178. const char* timer_friday_event_name;
  179. const char* timer_saturday_event_name;
  180. // Instance related
  181. const char* instance_init_event_name;
  182. const char* instance_destroy_event_name;
  183. // Navigation related
  184. const char* navi_generate_name;
  185. };
  186. extern struct Script_Config script_config;
  187. typedef enum c_op {
  188. C_NOP, // end of script/no value (nil)
  189. C_POS,
  190. C_INT, // number
  191. C_PARAM, // parameter variable (see pc_readparam/pc_setparam)
  192. C_FUNC, // buildin function call
  193. C_STR, // string (free'd automatically)
  194. C_CONSTSTR, // string (not free'd)
  195. C_ARG, // start of argument list
  196. C_NAME,
  197. C_EOL, // end of line (extra stack values are cleared)
  198. C_RETINFO,
  199. C_USERFUNC, // internal script function
  200. C_USERFUNC_POS, // internal script function label
  201. C_REF, // the next call to c_op2 should push back a ref to the left operand
  202. // operators
  203. C_OP3, // a ? b : c
  204. C_LOR, // a || b
  205. C_LAND, // a && b
  206. C_LE, // a <= b
  207. C_LT, // a < b
  208. C_GE, // a >= b
  209. C_GT, // a > b
  210. C_EQ, // a == b
  211. C_NE, // a != b
  212. C_XOR, // a ^ b
  213. C_OR, // a | b
  214. C_AND, // a & b
  215. C_ADD, // a + b
  216. C_SUB, // a - b
  217. C_MUL, // a * b
  218. C_DIV, // a / b
  219. C_MOD, // a % b
  220. C_NEG, // - a
  221. C_LNOT, // ! a
  222. C_NOT, // ~ a
  223. C_R_SHIFT, // a >> b
  224. C_L_SHIFT, // a << b
  225. C_ADD_POST, // a++
  226. C_SUB_POST, // a--
  227. C_ADD_PRE, // ++a
  228. C_SUB_PRE, // --a
  229. } c_op;
  230. /**
  231. * Generic reg database abstraction to be used with various types of regs/script variables.
  232. */
  233. struct reg_db {
  234. struct DBMap *vars;
  235. struct DBMap *arrays;
  236. };
  237. struct script_retinfo {
  238. struct reg_db scope; ///< scope variables
  239. struct script_code* script; ///< script code
  240. int pos; ///< script location
  241. int nargs; ///< argument count
  242. int defsp; ///< default stack pointer
  243. };
  244. struct script_data {
  245. enum c_op type;
  246. union script_data_val {
  247. int64 num;
  248. char *str;
  249. struct script_retinfo* ri;
  250. } u;
  251. struct reg_db *ref;
  252. };
  253. // Moved defsp from script_state to script_stack since
  254. // it must be saved when script state is RERUNLINE. [Eoe / jA 1094]
  255. struct script_code {
  256. int script_size;
  257. unsigned char* script_buf;
  258. struct reg_db local;
  259. unsigned short instances;
  260. };
  261. struct script_stack {
  262. int sp; ///< number of entries in the stack
  263. int sp_max; ///< capacity of the stack
  264. int defsp;
  265. struct script_data *stack_data; ///< stack
  266. struct reg_db scope; ///< scope variables
  267. };
  268. //
  269. // Script state
  270. //
  271. enum e_script_state { RUN,STOP,END,RERUNLINE,GOTO,RETFUNC,CLOSE };
  272. struct script_state {
  273. struct script_stack* stack;
  274. int start,end;
  275. int pos;
  276. enum e_script_state state;
  277. int rid,oid;
  278. struct script_code *script;
  279. struct sleep_data {
  280. int tick,timer,charid;
  281. } sleep;
  282. //For backing up purposes
  283. struct script_state *bk_st;
  284. int bk_npcid;
  285. unsigned freeloop : 1;// used by buildin_freeloop
  286. unsigned op2ref : 1;// used by op_2
  287. unsigned npc_item_flag : 1;
  288. unsigned mes_active : 1; // Store if invoking character has a NPC dialog box open.
  289. unsigned clear_cutin : 1;
  290. char* funcname; // Stores the current running function name
  291. unsigned int id;
  292. };
  293. struct script_reg {
  294. int64 index;
  295. int data;
  296. };
  297. struct script_regstr {
  298. int64 index;
  299. char* data;
  300. };
  301. struct script_array {
  302. unsigned int id; ///< the first 32b of the 64b uid, aka the id
  303. unsigned int size; ///< how many members
  304. unsigned int *members; ///< member list
  305. };
  306. enum script_parse_options {
  307. SCRIPT_USE_LABEL_DB = 0x1,// records labels in scriptlabel_db
  308. SCRIPT_IGNORE_EXTERNAL_BRACKETS = 0x2,// ignores the check for {} brackets around the script
  309. SCRIPT_RETURN_EMPTY_SCRIPT = 0x4// returns the script object instead of NULL for empty scripts
  310. };
  311. enum monsterinfo_types {
  312. MOB_NAME = 0,
  313. MOB_LV,
  314. MOB_MAXHP,
  315. MOB_BASEEXP,
  316. MOB_JOBEXP,
  317. MOB_ATK1,
  318. MOB_ATK2,
  319. MOB_DEF,
  320. MOB_MDEF,
  321. MOB_RES,
  322. MOB_MRES,
  323. MOB_STR,
  324. MOB_AGI,
  325. MOB_VIT,
  326. MOB_INT,
  327. MOB_DEX,
  328. MOB_LUK,
  329. MOB_RANGE,
  330. MOB_RANGE2,
  331. MOB_RANGE3,
  332. MOB_SIZE,
  333. MOB_RACE,
  334. MOB_ELEMENT,
  335. MOB_MODE,
  336. MOB_MVPEXP,
  337. MOB_ID,
  338. };
  339. enum petinfo_types {
  340. PETINFO_ID = 0,
  341. PETINFO_CLASS,
  342. PETINFO_NAME,
  343. PETINFO_INTIMATE,
  344. PETINFO_HUNGRY,
  345. PETINFO_RENAMED,
  346. PETINFO_LEVEL,
  347. PETINFO_BLOCKID,
  348. PETINFO_EGGID,
  349. PETINFO_FOODID
  350. };
  351. enum e_questinfo_types {
  352. QTYPE_QUEST = 0,
  353. QTYPE_QUEST2,
  354. QTYPE_JOB,
  355. QTYPE_JOB2,
  356. QTYPE_EVENT,
  357. QTYPE_EVENT2,
  358. QTYPE_WARG,
  359. QTYPE_CLICKME = QTYPE_WARG,
  360. QTYPE_DAILYQUEST,
  361. QTYPE_WARG2,
  362. QTYPE_EVENT3 = QTYPE_WARG2,
  363. QTYPE_JOBQUEST,
  364. QTYPE_JUMPING_PORING,
  365. // 11 - 9998 = free
  366. QTYPE_NONE = 9999
  367. };
  368. enum e_questinfo_markcolor : uint8 {
  369. QMARK_NONE = 0,
  370. QMARK_YELLOW,
  371. QMARK_GREEN,
  372. QMARK_PURPLE,
  373. QMARK_MAX
  374. };
  375. #ifndef WIN32
  376. // These are declared in wingdi.h
  377. /* Font Weights */
  378. #define FW_DONTCARE 0
  379. #define FW_THIN 100
  380. #define FW_EXTRALIGHT 200
  381. #define FW_LIGHT 300
  382. #define FW_NORMAL 400
  383. #define FW_MEDIUM 500
  384. #define FW_SEMIBOLD 600
  385. #define FW_BOLD 700
  386. #define FW_EXTRABOLD 800
  387. #define FW_HEAVY 900
  388. #endif
  389. enum unitdata_mobtypes {
  390. UMOB_SIZE = 0,
  391. UMOB_LEVEL,
  392. UMOB_HP,
  393. UMOB_MAXHP,
  394. UMOB_MASTERAID,
  395. UMOB_MAPID,
  396. UMOB_X,
  397. UMOB_Y,
  398. UMOB_SPEED,
  399. UMOB_MODE,
  400. UMOB_AI,
  401. UMOB_SCOPTION,
  402. UMOB_SEX,
  403. UMOB_CLASS,
  404. UMOB_HAIRSTYLE,
  405. UMOB_HAIRCOLOR,
  406. UMOB_HEADBOTTOM,
  407. UMOB_HEADMIDDLE,
  408. UMOB_HEADTOP,
  409. UMOB_CLOTHCOLOR,
  410. UMOB_SHIELD,
  411. UMOB_WEAPON,
  412. UMOB_LOOKDIR,
  413. UMOB_CANMOVETICK,
  414. UMOB_STR,
  415. UMOB_AGI,
  416. UMOB_VIT,
  417. UMOB_INT,
  418. UMOB_DEX,
  419. UMOB_LUK,
  420. UMOB_SLAVECPYMSTRMD,
  421. UMOB_DMGIMMUNE,
  422. UMOB_ATKRANGE,
  423. UMOB_ATKMIN,
  424. UMOB_ATKMAX,
  425. UMOB_MATKMIN,
  426. UMOB_MATKMAX,
  427. UMOB_DEF,
  428. UMOB_MDEF,
  429. UMOB_HIT,
  430. UMOB_FLEE,
  431. UMOB_PDODGE,
  432. UMOB_CRIT,
  433. UMOB_RACE,
  434. UMOB_ELETYPE,
  435. UMOB_ELELEVEL,
  436. UMOB_AMOTION,
  437. UMOB_ADELAY,
  438. UMOB_DMOTION,
  439. UMOB_TARGETID,
  440. UMOB_ROBE,
  441. UMOB_BODY2,
  442. UMOB_GROUP_ID,
  443. UMOB_IGNORE_CELL_STACK_LIMIT,
  444. UMOB_RES,
  445. UMOB_MRES,
  446. UMOB_DAMAGETAKEN,
  447. };
  448. enum unitdata_homuntypes {
  449. UHOM_SIZE = 0,
  450. UHOM_LEVEL,
  451. UHOM_HP,
  452. UHOM_MAXHP,
  453. UHOM_SP,
  454. UHOM_MAXSP,
  455. UHOM_MASTERCID,
  456. UHOM_MAPID,
  457. UHOM_X,
  458. UHOM_Y,
  459. UHOM_HUNGER,
  460. UHOM_INTIMACY,
  461. UHOM_SPEED,
  462. UHOM_LOOKDIR,
  463. UHOM_CANMOVETICK,
  464. UHOM_STR,
  465. UHOM_AGI,
  466. UHOM_VIT,
  467. UHOM_INT,
  468. UHOM_DEX,
  469. UHOM_LUK,
  470. UHOM_DMGIMMUNE,
  471. UHOM_ATKRANGE,
  472. UHOM_ATKMIN,
  473. UHOM_ATKMAX,
  474. UHOM_MATKMIN,
  475. UHOM_MATKMAX,
  476. UHOM_DEF,
  477. UHOM_MDEF,
  478. UHOM_HIT,
  479. UHOM_FLEE,
  480. UHOM_PDODGE,
  481. UHOM_CRIT,
  482. UHOM_RACE,
  483. UHOM_ELETYPE,
  484. UHOM_ELELEVEL,
  485. UHOM_AMOTION,
  486. UHOM_ADELAY,
  487. UHOM_DMOTION,
  488. UHOM_TARGETID,
  489. UHOM_GROUP_ID,
  490. };
  491. enum unitdata_pettypes {
  492. UPET_SIZE = 0,
  493. UPET_LEVEL,
  494. UPET_HP,
  495. UPET_MAXHP,
  496. UPET_MASTERAID,
  497. UPET_MAPID,
  498. UPET_X,
  499. UPET_Y,
  500. UPET_HUNGER,
  501. UPET_INTIMACY,
  502. UPET_SPEED,
  503. UPET_LOOKDIR,
  504. UPET_CANMOVETICK,
  505. UPET_STR,
  506. UPET_AGI,
  507. UPET_VIT,
  508. UPET_INT,
  509. UPET_DEX,
  510. UPET_LUK,
  511. UPET_DMGIMMUNE,
  512. UPET_ATKRANGE,
  513. UPET_ATKMIN,
  514. UPET_ATKMAX,
  515. UPET_MATKMIN,
  516. UPET_MATKMAX,
  517. UPET_DEF,
  518. UPET_MDEF,
  519. UPET_HIT,
  520. UPET_FLEE,
  521. UPET_PDODGE,
  522. UPET_CRIT,
  523. UPET_RACE,
  524. UPET_ELETYPE,
  525. UPET_ELELEVEL,
  526. UPET_AMOTION,
  527. UPET_ADELAY,
  528. UPET_DMOTION,
  529. UPET_GROUP_ID,
  530. };
  531. enum unitdata_merctypes {
  532. UMER_SIZE = 0,
  533. UMER_HP,
  534. UMER_MAXHP,
  535. UMER_MASTERCID,
  536. UMER_MAPID,
  537. UMER_X,
  538. UMER_Y,
  539. UMER_KILLCOUNT,
  540. UMER_LIFETIME,
  541. UMER_SPEED,
  542. UMER_LOOKDIR,
  543. UMER_CANMOVETICK,
  544. UMER_STR,
  545. UMER_AGI,
  546. UMER_VIT,
  547. UMER_INT,
  548. UMER_DEX,
  549. UMER_LUK,
  550. UMER_DMGIMMUNE,
  551. UMER_ATKRANGE,
  552. UMER_ATKMIN,
  553. UMER_ATKMAX,
  554. UMER_MATKMIN,
  555. UMER_MATKMAX,
  556. UMER_DEF,
  557. UMER_MDEF,
  558. UMER_HIT,
  559. UMER_FLEE,
  560. UMER_PDODGE,
  561. UMER_CRIT,
  562. UMER_RACE,
  563. UMER_ELETYPE,
  564. UMER_ELELEVEL,
  565. UMER_AMOTION,
  566. UMER_ADELAY,
  567. UMER_DMOTION,
  568. UMER_TARGETID,
  569. UMER_GROUP_ID,
  570. };
  571. enum unitdata_elemtypes {
  572. UELE_SIZE = 0,
  573. UELE_HP,
  574. UELE_MAXHP,
  575. UELE_SP,
  576. UELE_MAXSP,
  577. UELE_MASTERCID,
  578. UELE_MAPID,
  579. UELE_X,
  580. UELE_Y,
  581. UELE_LIFETIME,
  582. UELE_MODE,
  583. UELE_SPEED,
  584. UELE_LOOKDIR,
  585. UELE_CANMOVETICK,
  586. UELE_STR,
  587. UELE_AGI,
  588. UELE_VIT,
  589. UELE_INT,
  590. UELE_DEX,
  591. UELE_LUK,
  592. UELE_DMGIMMUNE,
  593. UELE_ATKRANGE,
  594. UELE_ATKMIN,
  595. UELE_ATKMAX,
  596. UELE_MATKMIN,
  597. UELE_MATKMAX,
  598. UELE_DEF,
  599. UELE_MDEF,
  600. UELE_HIT,
  601. UELE_FLEE,
  602. UELE_PDODGE,
  603. UELE_CRIT,
  604. UELE_RACE,
  605. UELE_ELETYPE,
  606. UELE_ELELEVEL,
  607. UELE_AMOTION,
  608. UELE_ADELAY,
  609. UELE_DMOTION,
  610. UELE_TARGETID,
  611. UELE_GROUP_ID,
  612. };
  613. enum unitdata_npctypes {
  614. UNPC_LEVEL = 0,
  615. UNPC_HP,
  616. UNPC_MAXHP,
  617. UNPC_MAPID,
  618. UNPC_X,
  619. UNPC_Y,
  620. UNPC_LOOKDIR,
  621. UNPC_STR,
  622. UNPC_AGI,
  623. UNPC_VIT,
  624. UNPC_INT,
  625. UNPC_DEX,
  626. UNPC_LUK,
  627. UNPC_PLUSALLSTAT,
  628. UNPC_DMGIMMUNE,
  629. UNPC_ATKRANGE,
  630. UNPC_ATKMIN,
  631. UNPC_ATKMAX,
  632. UNPC_MATKMIN,
  633. UNPC_MATKMAX,
  634. UNPC_DEF,
  635. UNPC_MDEF,
  636. UNPC_HIT,
  637. UNPC_FLEE,
  638. UNPC_PDODGE,
  639. UNPC_CRIT,
  640. UNPC_RACE,
  641. UNPC_ELETYPE,
  642. UNPC_ELELEVEL,
  643. UNPC_AMOTION,
  644. UNPC_ADELAY,
  645. UNPC_DMOTION,
  646. UNPC_SEX,
  647. UNPC_CLASS,
  648. UNPC_HAIRSTYLE,
  649. UNPC_HAIRCOLOR,
  650. UNPC_HEADBOTTOM,
  651. UNPC_HEADMIDDLE,
  652. UNPC_HEADTOP,
  653. UNPC_CLOTHCOLOR,
  654. UNPC_SHIELD,
  655. UNPC_WEAPON,
  656. UNPC_ROBE,
  657. UNPC_BODY2,
  658. UNPC_DEADSIT,
  659. UNPC_GROUP_ID,
  660. };
  661. enum navigation_service {
  662. NAV_NONE = 0, ///< 0
  663. NAV_AIRSHIP_ONLY = 1, ///< 1 (actually 1-9)
  664. NAV_SCROLL_ONLY = 10, ///< 10
  665. NAV_AIRSHIP_AND_SCROLL = NAV_AIRSHIP_ONLY + NAV_SCROLL_ONLY, ///< 11 (actually 11-99)
  666. NAV_KAFRA_ONLY = 100, ///< 100
  667. NAV_KAFRA_AND_AIRSHIP = NAV_KAFRA_ONLY + NAV_AIRSHIP_ONLY, ///< 101 (actually 101-109)
  668. NAV_KAFRA_AND_SCROLL = NAV_KAFRA_ONLY + NAV_SCROLL_ONLY, ///< 110
  669. NAV_ALL = NAV_AIRSHIP_ONLY + NAV_SCROLL_ONLY + NAV_KAFRA_ONLY ///< 111 (actually 111-255)
  670. };
  671. enum random_option_attribute {
  672. ROA_ID = 0,
  673. ROA_VALUE,
  674. ROA_PARAM,
  675. };
  676. enum instance_info_type {
  677. IIT_ID,
  678. IIT_TIME_LIMIT,
  679. IIT_IDLE_TIMEOUT,
  680. IIT_ENTER_MAP,
  681. IIT_ENTER_X,
  682. IIT_ENTER_Y,
  683. IIT_MAPCOUNT,
  684. IIT_MAP
  685. };
  686. enum e_instance_live_info_type : uint8 {
  687. ILI_NAME,
  688. ILI_MODE,
  689. ILI_OWNER
  690. };
  691. enum vip_status_type {
  692. VIP_STATUS_ACTIVE = 1,
  693. VIP_STATUS_EXPIRE,
  694. VIP_STATUS_REMAINING
  695. };
  696. enum e_special_effects {
  697. EF_NONE = -1,
  698. EF_HIT1,
  699. EF_HIT2,
  700. EF_HIT3,
  701. EF_HIT4,
  702. EF_HIT5,
  703. EF_HIT6,
  704. EF_ENTRY,
  705. EF_EXIT,
  706. EF_WARP,
  707. EF_ENHANCE,
  708. EF_COIN,
  709. EF_ENDURE,
  710. EF_BEGINSPELL,
  711. EF_GLASSWALL,
  712. EF_HEALSP,
  713. EF_SOULSTRIKE,
  714. EF_BASH,
  715. EF_MAGNUMBREAK,
  716. EF_STEAL,
  717. EF_HIDING,
  718. EF_PATTACK,
  719. EF_DETOXICATION,
  720. EF_SIGHT,
  721. EF_STONECURSE,
  722. EF_FIREBALL,
  723. EF_FIREWALL,
  724. EF_ICEARROW,
  725. EF_FROSTDIVER,
  726. EF_FROSTDIVER2,
  727. EF_LIGHTBOLT,
  728. EF_THUNDERSTORM,
  729. EF_FIREARROW,
  730. EF_NAPALMBEAT,
  731. EF_RUWACH,
  732. EF_TELEPORTATION,
  733. EF_READYPORTAL,
  734. EF_PORTAL,
  735. EF_INCAGILITY,
  736. EF_DECAGILITY,
  737. EF_AQUA,
  738. EF_SIGNUM,
  739. EF_ANGELUS,
  740. EF_BLESSING,
  741. EF_INCAGIDEX,
  742. EF_SMOKE,
  743. EF_FIREFLY,
  744. EF_SANDWIND,
  745. EF_TORCH,
  746. EF_SPRAYPOND,
  747. EF_FIREHIT,
  748. EF_FIRESPLASHHIT,
  749. EF_COLDHIT,
  750. EF_WINDHIT,
  751. EF_POISONHIT,
  752. EF_BEGINSPELL2,
  753. EF_BEGINSPELL3,
  754. EF_BEGINSPELL4,
  755. EF_BEGINSPELL5,
  756. EF_BEGINSPELL6,
  757. EF_BEGINSPELL7,
  758. EF_LOCKON,
  759. EF_WARPZONE,
  760. EF_SIGHTRASHER,
  761. EF_BARRIER,
  762. EF_ARROWSHOT,
  763. EF_INVENOM,
  764. EF_CURE,
  765. EF_PROVOKE,
  766. EF_MVP,
  767. EF_SKIDTRAP,
  768. EF_BRANDISHSPEAR,
  769. EF_CONE,
  770. EF_SPHERE,
  771. EF_BOWLINGBASH,
  772. EF_ICEWALL,
  773. EF_GLORIA,
  774. EF_MAGNIFICAT,
  775. EF_RESURRECTION,
  776. EF_RECOVERY,
  777. EF_EARTHSPIKE,
  778. EF_SPEARBMR,
  779. EF_PIERCE,
  780. EF_TURNUNDEAD,
  781. EF_SANCTUARY,
  782. EF_IMPOSITIO,
  783. EF_LEXAETERNA,
  784. EF_ASPERSIO,
  785. EF_LEXDIVINA,
  786. EF_SUFFRAGIUM,
  787. EF_STORMGUST,
  788. EF_LORD,
  789. EF_BENEDICTIO,
  790. EF_METEORSTORM,
  791. EF_YUFITEL,
  792. EF_YUFITELHIT,
  793. EF_QUAGMIRE,
  794. EF_FIREPILLAR,
  795. EF_FIREPILLARBOMB,
  796. EF_HASTEUP,
  797. EF_FLASHER,
  798. EF_REMOVETRAP,
  799. EF_REPAIRWEAPON,
  800. EF_CRASHEARTH,
  801. EF_PERFECTION,
  802. EF_MAXPOWER,
  803. EF_BLASTMINE,
  804. EF_BLASTMINEBOMB,
  805. EF_CLAYMORE,
  806. EF_FREEZING,
  807. EF_BUBBLE,
  808. EF_GASPUSH,
  809. EF_SPRINGTRAP,
  810. EF_KYRIE,
  811. EF_MAGNUS,
  812. EF_BOTTOM,
  813. EF_BLITZBEAT,
  814. EF_WATERBALL,
  815. EF_WATERBALL2,
  816. EF_FIREIVY,
  817. EF_DETECTING,
  818. EF_CLOAKING,
  819. EF_SONICBLOW,
  820. EF_SONICBLOWHIT,
  821. EF_GRIMTOOTH,
  822. EF_VENOMDUST,
  823. EF_ENCHANTPOISON,
  824. EF_POISONREACT,
  825. EF_POISONREACT2,
  826. EF_OVERTHRUST,
  827. EF_SPLASHER,
  828. EF_TWOHANDQUICKEN,
  829. EF_AUTOCOUNTER,
  830. EF_GRIMTOOTHATK,
  831. EF_FREEZE,
  832. EF_FREEZED,
  833. EF_ICECRASH,
  834. EF_SLOWPOISON,
  835. EF_BOTTOM2,
  836. EF_FIREPILLARON,
  837. EF_SANDMAN,
  838. EF_REVIVE,
  839. EF_PNEUMA,
  840. EF_HEAVENSDRIVE,
  841. EF_SONICBLOW2,
  842. EF_BRANDISH2,
  843. EF_SHOCKWAVE,
  844. EF_SHOCKWAVEHIT,
  845. EF_EARTHHIT,
  846. EF_PIERCESELF,
  847. EF_BOWLINGSELF,
  848. EF_SPEARSTABSELF,
  849. EF_SPEARBMRSELF,
  850. EF_HOLYHIT,
  851. EF_CONCENTRATION,
  852. EF_REFINEOK,
  853. EF_REFINEFAIL,
  854. EF_JOBCHANGE,
  855. EF_LVUP,
  856. EF_JOBLVUP,
  857. EF_TOPRANK,
  858. EF_PARTY,
  859. EF_RAIN,
  860. EF_SNOW,
  861. EF_SAKURA,
  862. EF_STATUS_STATE,
  863. EF_BANJJAKII,
  864. EF_MAKEBLUR,
  865. EF_TAMINGSUCCESS,
  866. EF_TAMINGFAILED,
  867. EF_ENERGYCOAT,
  868. EF_CARTREVOLUTION,
  869. EF_VENOMDUST2,
  870. EF_CHANGEDARK,
  871. EF_CHANGEFIRE,
  872. EF_CHANGECOLD,
  873. EF_CHANGEWIND,
  874. EF_CHANGEFLAME,
  875. EF_CHANGEEARTH,
  876. EF_CHAINGEHOLY,
  877. EF_CHANGEPOISON,
  878. EF_HITDARK,
  879. EF_MENTALBREAK,
  880. EF_MAGICALATTHIT,
  881. EF_SUI_EXPLOSION,
  882. EF_DARKATTACK,
  883. EF_SUICIDE,
  884. EF_COMBOATTACK1,
  885. EF_COMBOATTACK2,
  886. EF_COMBOATTACK3,
  887. EF_COMBOATTACK4,
  888. EF_COMBOATTACK5,
  889. EF_GUIDEDATTACK,
  890. EF_POISONATTACK,
  891. EF_SILENCEATTACK,
  892. EF_STUNATTACK,
  893. EF_PETRIFYATTACK,
  894. EF_CURSEATTACK,
  895. EF_SLEEPATTACK,
  896. EF_TELEKHIT,
  897. EF_PONG,
  898. EF_LEVEL99,
  899. EF_LEVEL99_2,
  900. EF_LEVEL99_3,
  901. EF_GUMGANG,
  902. EF_POTION1,
  903. EF_POTION2,
  904. EF_POTION3,
  905. EF_POTION4,
  906. EF_POTION5,
  907. EF_POTION6,
  908. EF_POTION7,
  909. EF_POTION8,
  910. EF_DARKBREATH,
  911. EF_DEFFENDER,
  912. EF_KEEPING,
  913. EF_SUMMONSLAVE,
  914. EF_BLOODDRAIN,
  915. EF_ENERGYDRAIN,
  916. EF_POTION_CON,
  917. EF_POTION_,
  918. EF_POTION_BERSERK,
  919. EF_POTIONPILLAR,
  920. EF_DEFENDER,
  921. EF_GANBANTEIN,
  922. EF_WIND,
  923. EF_VOLCANO,
  924. EF_GRANDCROSS,
  925. EF_INTIMIDATE,
  926. EF_CHOOKGI,
  927. EF_CLOUD,
  928. EF_CLOUD2,
  929. EF_MAPPILLAR,
  930. EF_LINELINK,
  931. EF_CLOUD3,
  932. EF_SPELLBREAKER,
  933. EF_DISPELL,
  934. EF_DELUGE,
  935. EF_VIOLENTGALE,
  936. EF_LANDPROTECTOR,
  937. EF_BOTTOM_VO,
  938. EF_BOTTOM_DE,
  939. EF_BOTTOM_VI,
  940. EF_BOTTOM_LA,
  941. EF_FASTMOVE,
  942. EF_MAGICROD,
  943. EF_HOLYCROSS,
  944. EF_SHIELDCHARGE,
  945. EF_MAPPILLAR2,
  946. EF_PROVIDENCE,
  947. EF_SHIELDBOOMERANG,
  948. EF_SPEARQUICKEN,
  949. EF_DEVOTION,
  950. EF_REFLECTSHIELD,
  951. EF_ABSORBSPIRITS,
  952. EF_STEELBODY,
  953. EF_FLAMELAUNCHER,
  954. EF_FROSTWEAPON,
  955. EF_LIGHTNINGLOADER,
  956. EF_SEISMICWEAPON,
  957. EF_MAPPILLAR3,
  958. EF_MAPPILLAR4,
  959. EF_GUMGANG2,
  960. EF_TEIHIT1,
  961. EF_GUMGANG3,
  962. EF_TEIHIT2,
  963. EF_TANJI,
  964. EF_TEIHIT1X,
  965. EF_CHIMTO,
  966. EF_STEALCOIN,
  967. EF_STRIPWEAPON,
  968. EF_STRIPSHIELD,
  969. EF_STRIPARMOR,
  970. EF_STRIPHELM,
  971. EF_CHAINCOMBO,
  972. EF_RG_COIN,
  973. EF_BACKSTAP,
  974. EF_TEIHIT3,
  975. EF_BOTTOM_DISSONANCE,
  976. EF_BOTTOM_LULLABY,
  977. EF_BOTTOM_RICHMANKIM,
  978. EF_BOTTOM_ETERNALCHAOS,
  979. EF_BOTTOM_DRUMBATTLEFIELD,
  980. EF_BOTTOM_RINGNIBELUNGEN,
  981. EF_BOTTOM_ROKISWEIL,
  982. EF_BOTTOM_INTOABYSS,
  983. EF_BOTTOM_SIEGFRIED,
  984. EF_BOTTOM_WHISTLE,
  985. EF_BOTTOM_ASSASSINCROSS,
  986. EF_BOTTOM_POEMBRAGI,
  987. EF_BOTTOM_APPLEIDUN,
  988. EF_BOTTOM_UGLYDANCE,
  989. EF_BOTTOM_HUMMING,
  990. EF_BOTTOM_DONTFORGETME,
  991. EF_BOTTOM_FORTUNEKISS,
  992. EF_BOTTOM_SERVICEFORYOU,
  993. EF_TALK_FROSTJOKE,
  994. EF_TALK_SCREAM,
  995. EF_POKJUK,
  996. EF_THROWITEM,
  997. EF_THROWITEM2,
  998. EF_CHEMICALPROTECTION,
  999. EF_POKJUK_SOUND,
  1000. EF_DEMONSTRATION,
  1001. EF_CHEMICAL2,
  1002. EF_TELEPORTATION2,
  1003. EF_PHARMACY_OK,
  1004. EF_PHARMACY_FAIL,
  1005. EF_FORESTLIGHT,
  1006. EF_THROWITEM3,
  1007. EF_FIRSTAID,
  1008. EF_SPRINKLESAND,
  1009. EF_LOUD,
  1010. EF_HEAL,
  1011. EF_HEAL2,
  1012. EF_EXIT2,
  1013. EF_GLASSWALL2,
  1014. EF_READYPORTAL2,
  1015. EF_PORTAL2,
  1016. EF_BOTTOM_MAG,
  1017. EF_BOTTOM_SANC,
  1018. EF_HEAL3,
  1019. EF_WARPZONE2,
  1020. EF_FORESTLIGHT2,
  1021. EF_FORESTLIGHT3,
  1022. EF_FORESTLIGHT4,
  1023. EF_HEAL4,
  1024. EF_FOOT,
  1025. EF_FOOT2,
  1026. EF_BEGINASURA,
  1027. EF_TRIPLEATTACK,
  1028. EF_HITLINE,
  1029. EF_HPTIME,
  1030. EF_SPTIME,
  1031. EF_MAPLE,
  1032. EF_BLIND,
  1033. EF_POISON,
  1034. EF_GUARD,
  1035. EF_JOBLVUP50,
  1036. EF_ANGEL2,
  1037. EF_MAGNUM2,
  1038. EF_CALLZONE,
  1039. EF_PORTAL3,
  1040. EF_COUPLECASTING,
  1041. EF_HEARTCASTING,
  1042. EF_ENTRY2,
  1043. EF_SAINTWING,
  1044. EF_SPHEREWIND,
  1045. EF_COLORPAPER,
  1046. EF_LIGHTSPHERE,
  1047. EF_WATERFALL,
  1048. EF_WATERFALL_90,
  1049. EF_WATERFALL_SMALL,
  1050. EF_WATERFALL_SMALL_90,
  1051. EF_WATERFALL_T2,
  1052. EF_WATERFALL_T2_90,
  1053. EF_WATERFALL_SMALL_T2,
  1054. EF_WATERFALL_SMALL_T2_90,
  1055. EF_MINI_TETRIS,
  1056. EF_GHOST,
  1057. EF_BAT,
  1058. EF_BAT2,
  1059. EF_SOULBREAKER,
  1060. EF_LEVEL99_4,
  1061. EF_VALLENTINE,
  1062. EF_VALLENTINE2,
  1063. EF_PRESSURE,
  1064. EF_BASH3D,
  1065. EF_AURABLADE,
  1066. EF_REDBODY,
  1067. EF_LKCONCENTRATION,
  1068. EF_BOTTOM_GOSPEL,
  1069. EF_ANGEL,
  1070. EF_DEVIL,
  1071. EF_DRAGONSMOKE,
  1072. EF_BOTTOM_BASILICA,
  1073. EF_ASSUMPTIO,
  1074. EF_HITLINE2,
  1075. EF_BASH3D2,
  1076. EF_ENERGYDRAIN2,
  1077. EF_TRANSBLUEBODY,
  1078. EF_MAGICCRASHER,
  1079. EF_LIGHTSPHERE2,
  1080. EF_LIGHTBLADE,
  1081. EF_ENERGYDRAIN3,
  1082. EF_LINELINK2,
  1083. EF_LINKLIGHT,
  1084. EF_TRUESIGHT,
  1085. EF_FALCONASSAULT,
  1086. EF_TRIPLEATTACK2,
  1087. EF_PORTAL4,
  1088. EF_MELTDOWN,
  1089. EF_CARTBOOST,
  1090. EF_REJECTSWORD,
  1091. EF_TRIPLEATTACK3,
  1092. EF_SPHEREWIND2,
  1093. EF_LINELINK3,
  1094. EF_PINKBODY,
  1095. EF_LEVEL99_5,
  1096. EF_LEVEL99_6,
  1097. EF_BASH3D3,
  1098. EF_BASH3D4,
  1099. EF_NAPALMVALCAN,
  1100. EF_PORTAL5,
  1101. EF_MAGICCRASHER2,
  1102. EF_BOTTOM_SPIDER,
  1103. EF_BOTTOM_FOGWALL,
  1104. EF_SOULBURN,
  1105. EF_SOULCHANGE,
  1106. EF_BABY,
  1107. EF_SOULBREAKER2,
  1108. EF_RAINBOW,
  1109. EF_PEONG,
  1110. EF_TANJI2,
  1111. EF_PRESSEDBODY,
  1112. EF_SPINEDBODY,
  1113. EF_KICKEDBODY,
  1114. EF_AIRTEXTURE,
  1115. EF_HITBODY,
  1116. EF_DOUBLEGUMGANG,
  1117. EF_REFLECTBODY,
  1118. EF_BABYBODY,
  1119. EF_BABYBODY2,
  1120. EF_GIANTBODY,
  1121. EF_GIANTBODY2,
  1122. EF_ASURABODY,
  1123. EF_4WAYBODY,
  1124. EF_QUAKEBODY,
  1125. EF_ASURABODY_MONSTER,
  1126. EF_HITLINE3,
  1127. EF_HITLINE4,
  1128. EF_HITLINE5,
  1129. EF_HITLINE6,
  1130. EF_ELECTRIC,
  1131. EF_ELECTRIC2,
  1132. EF_HITLINE7,
  1133. EF_STORMKICK,
  1134. EF_HALFSPHERE,
  1135. EF_ATTACKENERGY,
  1136. EF_ATTACKENERGY2,
  1137. EF_CHEMICAL3,
  1138. EF_ASSUMPTIO2,
  1139. EF_BLUECASTING,
  1140. EF_RUN,
  1141. EF_STOPRUN,
  1142. EF_STOPEFFECT,
  1143. EF_JUMPBODY,
  1144. EF_LANDBODY,
  1145. EF_FOOT3,
  1146. EF_FOOT4,
  1147. EF_TAE_READY,
  1148. EF_GRANDCROSS2,
  1149. EF_SOULSTRIKE2,
  1150. EF_YUFITEL2,
  1151. EF_NPC_STOP,
  1152. EF_DARKCASTING,
  1153. EF_GUMGANGNPC,
  1154. EF_AGIUP,
  1155. EF_JUMPKICK,
  1156. EF_QUAKEBODY2,
  1157. EF_STORMKICK1,
  1158. EF_STORMKICK2,
  1159. EF_STORMKICK3,
  1160. EF_STORMKICK4,
  1161. EF_STORMKICK5,
  1162. EF_STORMKICK6,
  1163. EF_STORMKICK7,
  1164. EF_SPINEDBODY2,
  1165. EF_BEGINASURA1,
  1166. EF_BEGINASURA2,
  1167. EF_BEGINASURA3,
  1168. EF_BEGINASURA4,
  1169. EF_BEGINASURA5,
  1170. EF_BEGINASURA6,
  1171. EF_BEGINASURA7,
  1172. EF_AURABLADE2,
  1173. EF_DEVIL1,
  1174. EF_DEVIL2,
  1175. EF_DEVIL3,
  1176. EF_DEVIL4,
  1177. EF_DEVIL5,
  1178. EF_DEVIL6,
  1179. EF_DEVIL7,
  1180. EF_DEVIL8,
  1181. EF_DEVIL9,
  1182. EF_DEVIL10,
  1183. EF_DOUBLEGUMGANG2,
  1184. EF_DOUBLEGUMGANG3,
  1185. EF_BLACKDEVIL,
  1186. EF_FLOWERCAST,
  1187. EF_FLOWERCAST2,
  1188. EF_FLOWERCAST3,
  1189. EF_MOCHI,
  1190. EF_LAMADAN,
  1191. EF_EDP,
  1192. EF_SHIELDBOOMERANG2,
  1193. EF_RG_COIN2,
  1194. EF_GUARD2,
  1195. EF_SLIM,
  1196. EF_SLIM2,
  1197. EF_SLIM3,
  1198. EF_CHEMICALBODY,
  1199. EF_CASTSPIN,
  1200. EF_PIERCEBODY,
  1201. EF_SOULLINK,
  1202. EF_CHOOKGI2,
  1203. EF_MEMORIZE,
  1204. EF_SOULLIGHT,
  1205. EF_MAPAE,
  1206. EF_ITEMPOKJUK,
  1207. EF_05VAL,
  1208. EF_BEGINASURA11,
  1209. EF_NIGHT,
  1210. EF_CHEMICAL2DASH,
  1211. EF_GROUNDSAMPLE,
  1212. EF_GI_EXPLOSION,
  1213. EF_CLOUD4,
  1214. EF_CLOUD5,
  1215. EF_BOTTOM_HERMODE,
  1216. EF_CARTTER,
  1217. EF_ITEMFAST,
  1218. EF_SHIELDBOOMERANG3,
  1219. EF_DOUBLECASTBODY,
  1220. EF_GRAVITATION,
  1221. EF_TAROTCARD1,
  1222. EF_TAROTCARD2,
  1223. EF_TAROTCARD3,
  1224. EF_TAROTCARD4,
  1225. EF_TAROTCARD5,
  1226. EF_TAROTCARD6,
  1227. EF_TAROTCARD7,
  1228. EF_TAROTCARD8,
  1229. EF_TAROTCARD9,
  1230. EF_TAROTCARD10,
  1231. EF_TAROTCARD11,
  1232. EF_TAROTCARD12,
  1233. EF_TAROTCARD13,
  1234. EF_TAROTCARD14,
  1235. EF_ACIDDEMON,
  1236. EF_GREENBODY,
  1237. EF_THROWITEM4,
  1238. EF_BABYBODY_BACK,
  1239. EF_THROWITEM5,
  1240. EF_BLUEBODY,
  1241. EF_HATED,
  1242. EF_REDLIGHTBODY,
  1243. EF_RO2YEAR,
  1244. EF_SMA_READY,
  1245. EF_STIN,
  1246. EF_RED_HIT,
  1247. EF_BLUE_HIT,
  1248. EF_QUAKEBODY3,
  1249. EF_SMA,
  1250. EF_SMA2,
  1251. EF_STIN2,
  1252. EF_HITTEXTURE,
  1253. EF_STIN3,
  1254. EF_SMA3,
  1255. EF_BLUEFALL,
  1256. EF_BLUEFALL_90,
  1257. EF_FASTBLUEFALL,
  1258. EF_FASTBLUEFALL_90,
  1259. EF_BIG_PORTAL,
  1260. EF_BIG_PORTAL2,
  1261. EF_SCREEN_QUAKE,
  1262. EF_HOMUNCASTING,
  1263. EF_HFLIMOON1,
  1264. EF_HFLIMOON2,
  1265. EF_HFLIMOON3,
  1266. EF_HO_UP,
  1267. EF_HAMIDEFENCE,
  1268. EF_HAMICASTLE,
  1269. EF_HAMIBLOOD,
  1270. EF_HATED2,
  1271. EF_TWILIGHT1,
  1272. EF_TWILIGHT2,
  1273. EF_TWILIGHT3,
  1274. EF_ITEM_THUNDER,
  1275. EF_ITEM_CLOUD,
  1276. EF_ITEM_CURSE,
  1277. EF_ITEM_ZZZ,
  1278. EF_ITEM_RAIN,
  1279. EF_ITEM_LIGHT,
  1280. EF_ANGEL3,
  1281. EF_M01,
  1282. EF_M02,
  1283. EF_M03,
  1284. EF_M04,
  1285. EF_M05,
  1286. EF_M06,
  1287. EF_M07,
  1288. EF_KAIZEL,
  1289. EF_KAAHI,
  1290. EF_CLOUD6,
  1291. EF_FOOD01,
  1292. EF_FOOD02,
  1293. EF_FOOD03,
  1294. EF_FOOD04,
  1295. EF_FOOD05,
  1296. EF_FOOD06,
  1297. EF_SHRINK,
  1298. EF_THROWITEM6,
  1299. EF_SIGHT2,
  1300. EF_QUAKEBODY4,
  1301. EF_FIREHIT2,
  1302. EF_NPC_STOP2,
  1303. EF_NPC_STOP2_DEL,
  1304. EF_FVOICE,
  1305. EF_WINK,
  1306. EF_COOKING_OK,
  1307. EF_COOKING_FAIL,
  1308. EF_TEMP_OK,
  1309. EF_TEMP_FAIL,
  1310. EF_HAPGYEOK,
  1311. EF_THROWITEM7,
  1312. EF_THROWITEM8,
  1313. EF_THROWITEM9,
  1314. EF_THROWITEM10,
  1315. EF_BUNSINJYUTSU,
  1316. EF_KOUENKA,
  1317. EF_HYOUSENSOU,
  1318. EF_BOTTOM_SUITON,
  1319. EF_STIN4,
  1320. EF_THUNDERSTORM2,
  1321. EF_CHEMICAL4,
  1322. EF_STIN5,
  1323. EF_MADNESS_BLUE,
  1324. EF_MADNESS_RED,
  1325. EF_RG_COIN3,
  1326. EF_BASH3D5,
  1327. EF_CHOOKGI3,
  1328. EF_KIRIKAGE,
  1329. EF_TATAMI,
  1330. EF_KASUMIKIRI,
  1331. EF_ISSEN,
  1332. EF_KAEN,
  1333. EF_BAKU,
  1334. EF_HYOUSYOURAKU,
  1335. EF_DESPERADO,
  1336. EF_LIGHTNING_S,
  1337. EF_BLIND_S,
  1338. EF_POISON_S,
  1339. EF_FREEZING_S,
  1340. EF_FLARE_S,
  1341. EF_RAPIDSHOWER,
  1342. EF_MAGICALBULLET,
  1343. EF_SPREADATTACK,
  1344. EF_TRACKCASTING,
  1345. EF_TRACKING,
  1346. EF_TRIPLEACTION,
  1347. EF_BULLSEYE,
  1348. EF_MAP_MAGICZONE,
  1349. EF_MAP_MAGICZONE2,
  1350. EF_DAMAGE1,
  1351. EF_DAMAGE1_2,
  1352. EF_DAMAGE1_3,
  1353. EF_UNDEADBODY,
  1354. EF_UNDEADBODY_DEL,
  1355. EF_GREEN_NUMBER,
  1356. EF_BLUE_NUMBER,
  1357. EF_RED_NUMBER,
  1358. EF_PURPLE_NUMBER,
  1359. EF_BLACK_NUMBER,
  1360. EF_WHITE_NUMBER,
  1361. EF_YELLOW_NUMBER,
  1362. EF_PINK_NUMBER,
  1363. EF_BUBBLE_DROP,
  1364. EF_NPC_EARTHQUAKE,
  1365. EF_DA_SPACE,
  1366. EF_DRAGONFEAR,
  1367. EF_BLEEDING,
  1368. EF_WIDECONFUSE,
  1369. EF_BOTTOM_RUNNER,
  1370. EF_BOTTOM_TRANSFER,
  1371. EF_CRYSTAL_BLUE,
  1372. EF_BOTTOM_EVILLAND,
  1373. EF_GUARD3,
  1374. EF_NPC_SLOWCAST,
  1375. EF_CRITICALWOUND,
  1376. EF_GREEN99_3,
  1377. EF_GREEN99_5,
  1378. EF_GREEN99_6,
  1379. EF_MAPSPHERE,
  1380. EF_POK_LOVE,
  1381. EF_POK_WHITE,
  1382. EF_POK_VALEN,
  1383. EF_POK_BIRTH,
  1384. EF_POK_CHRISTMAS,
  1385. EF_MAP_MAGICZONE3,
  1386. EF_MAP_MAGICZONE4,
  1387. EF_DUST,
  1388. EF_TORCH_RED,
  1389. EF_TORCH_GREEN,
  1390. EF_MAP_GHOST,
  1391. EF_GLOW1,
  1392. EF_GLOW2,
  1393. EF_GLOW4,
  1394. EF_TORCH_PURPLE,
  1395. EF_CLOUD7,
  1396. EF_CLOUD8,
  1397. EF_FLOWERLEAF,
  1398. EF_MAPSPHERE2,
  1399. EF_GLOW11,
  1400. EF_GLOW12,
  1401. EF_CIRCLELIGHT,
  1402. EF_ITEM315,
  1403. EF_ITEM316,
  1404. EF_ITEM317,
  1405. EF_ITEM318,
  1406. EF_STORM_MIN,
  1407. EF_POK_JAP,
  1408. EF_MAP_GREENLIGHT,
  1409. EF_MAP_MAGICWALL,
  1410. EF_MAP_GREENLIGHT2,
  1411. EF_YELLOWFLY1,
  1412. EF_YELLOWFLY2,
  1413. EF_BOTTOM_BLUE,
  1414. EF_BOTTOM_BLUE2,
  1415. EF_WEWISH,
  1416. EF_FIREPILLARON2,
  1417. EF_FORESTLIGHT5,
  1418. EF_SOULBREAKER3,
  1419. EF_ADO_STR,
  1420. EF_IGN_STR,
  1421. EF_CHIMTO2,
  1422. EF_WINDCUTTER,
  1423. EF_DETECT2,
  1424. EF_FROSTMYSTY,
  1425. EF_CRIMSON_STR,
  1426. EF_HELL_STR,
  1427. EF_SPR_MASH,
  1428. EF_SPR_SOULE,
  1429. EF_DHOWL_STR,
  1430. EF_EARTHWALL,
  1431. EF_SOULBREAKER4,
  1432. EF_CHAINL_STR,
  1433. EF_CHOOKGI_FIRE,
  1434. EF_CHOOKGI_WIND,
  1435. EF_CHOOKGI_WATER,
  1436. EF_CHOOKGI_GROUND,
  1437. EF_MAGENTA_TRAP,
  1438. EF_COBALT_TRAP,
  1439. EF_MAIZE_TRAP,
  1440. EF_VERDURE_TRAP,
  1441. EF_NORMAL_TRAP,
  1442. EF_CLOAKING2,
  1443. EF_AIMED_STR,
  1444. EF_ARROWSTORM_STR,
  1445. EF_LAULAMUS_STR,
  1446. EF_LAUAGNUS_STR,
  1447. EF_MILSHIELD_STR,
  1448. EF_CONCENTRATION2,
  1449. EF_FIREBALL2,
  1450. EF_BUNSINJYUTSU2,
  1451. EF_CLEARTIME,
  1452. EF_GLASSWALL3,
  1453. EF_ORATIO,
  1454. EF_POTION_BERSERK2,
  1455. EF_CIRCLEPOWER,
  1456. EF_ROLLING1,
  1457. EF_ROLLING2,
  1458. EF_ROLLING3,
  1459. EF_ROLLING4,
  1460. EF_ROLLING5,
  1461. EF_ROLLING6,
  1462. EF_ROLLING7,
  1463. EF_ROLLING8,
  1464. EF_ROLLING9,
  1465. EF_ROLLING10,
  1466. EF_PURPLEBODY,
  1467. EF_STIN6,
  1468. EF_RG_COIN4,
  1469. EF_POISONWAV,
  1470. EF_POISONSMOKE,
  1471. EF_GUMGANG4,
  1472. EF_SHIELDBOOMERANG4,
  1473. EF_CASTSPIN2,
  1474. EF_VULCANWAV,
  1475. EF_AGIUP2,
  1476. EF_DETECT3,
  1477. EF_AGIUP3,
  1478. EF_DETECT4,
  1479. EF_ELECTRIC3,
  1480. EF_GUARD4,
  1481. EF_BOTTOM_BARRIER,
  1482. EF_BOTTOM_STEALTH,
  1483. EF_REPAIRTIME,
  1484. EF_NC_ANAL,
  1485. EF_FIRETHROW,
  1486. EF_VENOMIMPRESS,
  1487. EF_FROSTMISTY,
  1488. EF_BURNING,
  1489. EF_COLDTHROW,
  1490. EF_MAKEHALLU,
  1491. EF_HALLUTIME,
  1492. EF_INFRAREDSCAN,
  1493. EF_CRASHAXE,
  1494. EF_GTHUNDER,
  1495. EF_STONERING,
  1496. EF_INTIMIDATE2,
  1497. EF_STASIS,
  1498. EF_REDLINE,
  1499. EF_FROSTDIVER3,
  1500. EF_BOTTOM_BASILICA2,
  1501. EF_RECOGNIZED,
  1502. EF_TETRA,
  1503. EF_TETRACASTING,
  1504. EF_FIREBALL3,
  1505. EF_INTIMIDATE3,
  1506. EF_RECOGNIZED2,
  1507. EF_CLOAKING3,
  1508. EF_INTIMIDATE4,
  1509. EF_STRETCH,
  1510. EF_BLACKBODY,
  1511. EF_ENERVATION,
  1512. EF_ENERVATION2,
  1513. EF_ENERVATION3,
  1514. EF_ENERVATION4,
  1515. EF_ENERVATION5,
  1516. EF_ENERVATION6,
  1517. EF_LINELINK4,
  1518. EF_RG_COIN5,
  1519. EF_WATERFALL_ANI,
  1520. EF_BOTTOM_MANHOLE,
  1521. EF_MANHOLE,
  1522. EF_MAKEFEINT,
  1523. EF_FORESTLIGHT6,
  1524. EF_DARKCASTING2,
  1525. EF_BOTTOM_ANI,
  1526. EF_BOTTOM_MAELSTROM,
  1527. EF_BOTTOM_BLOODYLUST,
  1528. EF_BEGINSPELL_N1,
  1529. EF_BEGINSPELL_N2,
  1530. EF_HEAL_N,
  1531. EF_CHOOKGI_N,
  1532. EF_JOBLVUP50_2,
  1533. EF_CHEMICAL2DASH2,
  1534. EF_CHEMICAL2DASH3,
  1535. EF_ROLLINGCAST,
  1536. EF_WATER_BELOW,
  1537. EF_WATER_FADE,
  1538. EF_BEGINSPELL_N3,
  1539. EF_BEGINSPELL_N4,
  1540. EF_BEGINSPELL_N5,
  1541. EF_BEGINSPELL_N6,
  1542. EF_BEGINSPELL_N7,
  1543. EF_BEGINSPELL_N8,
  1544. EF_WATER_SMOKE,
  1545. EF_DANCE1,
  1546. EF_DANCE2,
  1547. EF_LINKPARTICLE,
  1548. EF_SOULLIGHT2,
  1549. EF_SPR_PARTICLE,
  1550. EF_SPR_PARTICLE2,
  1551. EF_SPR_PLANT,
  1552. EF_CHEMICAL_V,
  1553. EF_SHOOTPARTICLE,
  1554. EF_BOT_REVERB,
  1555. EF_RAIN_PARTICLE,
  1556. EF_CHEMICAL_V2,
  1557. EF_SECRA,
  1558. EF_BOT_REVERB2,
  1559. EF_CIRCLEPOWER2,
  1560. EF_SECRA2,
  1561. EF_CHEMICAL_V3,
  1562. EF_ENERVATION7,
  1563. EF_CIRCLEPOWER3,
  1564. EF_SPR_PLANT2,
  1565. EF_CIRCLEPOWER4,
  1566. EF_SPR_PLANT3,
  1567. EF_RG_COIN6,
  1568. EF_SPR_PLANT4,
  1569. EF_CIRCLEPOWER5,
  1570. EF_SPR_PLANT5,
  1571. EF_CIRCLEPOWER6,
  1572. EF_SPR_PLANT6,
  1573. EF_CIRCLEPOWER7,
  1574. EF_SPR_PLANT7,
  1575. EF_CIRCLEPOWER8,
  1576. EF_SPR_PLANT8,
  1577. EF_HEARTASURA,
  1578. EF_BEGINSPELL_150,
  1579. EF_LEVEL99_150,
  1580. EF_PRIMECHARGE,
  1581. EF_GLASSWALL4,
  1582. EF_GRADIUS_LASER,
  1583. EF_BASH3D6,
  1584. EF_GUMGANG5,
  1585. EF_HITLINE8,
  1586. EF_ELECTRIC4,
  1587. EF_TEIHIT1T,
  1588. EF_SPINMOVE,
  1589. EF_FIREBALL4,
  1590. EF_TRIPLEATTACK4,
  1591. EF_CHEMICAL3S,
  1592. EF_GROUNDSHAKE,
  1593. EF_DQ9_CHARGE,
  1594. EF_DQ9_CHARGE2,
  1595. EF_DQ9_CHARGE3,
  1596. EF_DQ9_CHARGE4,
  1597. EF_BLUELINE,
  1598. EF_SELFSCROLL,
  1599. EF_SPR_LIGHTPRINT,
  1600. EF_PNG_TEST,
  1601. EF_BEGINSPELL_YB,
  1602. EF_CHEMICAL2DASH4,
  1603. EF_GROUNDSHAKE2,
  1604. EF_PRESSURE2,
  1605. EF_RG_COIN7,
  1606. EF_PRIMECHARGE2,
  1607. EF_PRIMECHARGE3,
  1608. EF_PRIMECHARGE4,
  1609. EF_GREENCASTING,
  1610. EF_WALLOFTHORN,
  1611. EF_FIREBALL5,
  1612. EF_THROWITEM11,
  1613. EF_SPR_PLANT9,
  1614. EF_DEMONICFIRE,
  1615. EF_DEMONICFIRE2,
  1616. EF_DEMONICFIRE3,
  1617. EF_HELLSPLANT,
  1618. EF_FIREWALL2,
  1619. EF_VACUUM,
  1620. EF_SPR_PLANT10,
  1621. EF_SPR_LIGHTPRINT2,
  1622. EF_POISONSMOKE2,
  1623. EF_MAKEHALLU2,
  1624. EF_SHOCKWAVE2,
  1625. EF_SPR_PLANT11,
  1626. EF_COLDTHROW2,
  1627. EF_DEMONICFIRE4,
  1628. EF_PRESSURE3,
  1629. EF_LINKPARTICLE2,
  1630. EF_SOULLIGHT3,
  1631. EF_CHAREFFECT,
  1632. EF_GUMGANG6,
  1633. EF_FIREBALL6,
  1634. EF_GUMGANG7,
  1635. EF_GUMGANG8,
  1636. EF_GUMGANG9,
  1637. EF_BOTTOM_DE2,
  1638. EF_COLDSTATUS,
  1639. EF_SPR_LIGHTPRINT3,
  1640. EF_WATERBALL3,
  1641. EF_HEAL_N2,
  1642. EF_RAIN_PARTICLE2,
  1643. EF_CLOUD9,
  1644. EF_YELLOWFLY3,
  1645. EF_EL_GUST,
  1646. EF_EL_BLAST,
  1647. EF_EL_AQUAPLAY,
  1648. EF_EL_UPHEAVAL,
  1649. EF_EL_WILD_STORM,
  1650. EF_EL_CHILLY_AIR,
  1651. EF_EL_CURSED_SOIL,
  1652. EF_EL_COOLER,
  1653. EF_EL_TROPIC,
  1654. EF_EL_PYROTECHNIC,
  1655. EF_EL_PETROLOGY,
  1656. EF_EL_HEATER,
  1657. EF_POISON_MIST,
  1658. EF_ERASER_CUTTER,
  1659. EF_SILENT_BREEZE,
  1660. EF_MAGMA_FLOW,
  1661. EF_GRAYBODY,
  1662. EF_LAVA_SLIDE,
  1663. EF_SONIC_CLAW,
  1664. EF_TINDER_BREAKER,
  1665. EF_MIDNIGHT_FRENZY,
  1666. EF_MACRO,
  1667. EF_CHEMICAL_ALLRANGE,
  1668. EF_TETRA_FIRE,
  1669. EF_TETRA_WATER,
  1670. EF_TETRA_WIND,
  1671. EF_TETRA_GROUND,
  1672. EF_EMITTER,
  1673. EF_VOLCANIC_ASH,
  1674. EF_LEVEL99_ORB1,
  1675. EF_LEVEL99_ORB2,
  1676. EF_LEVEL150,
  1677. EF_LEVEL150_SUB,
  1678. EF_THROWITEM4_1,
  1679. EF_THROW_HAPPOKUNAI,
  1680. EF_THROW_MULTIPLE_COIN,
  1681. EF_THROW_BAKURETSU,
  1682. EF_ROTATE_HUUMARANKA,
  1683. EF_ROTATE_BG,
  1684. EF_ROTATE_LINE_GRAY,
  1685. EF_2011RWC,
  1686. EF_2011RWC2,
  1687. EF_KAIHOU,
  1688. EF_GROUND_EXPLOSION,
  1689. EF_KG_KAGEHUMI,
  1690. EF_KO_ZENKAI_WATER,
  1691. EF_KO_ZENKAI_LAND,
  1692. EF_KO_ZENKAI_FIRE,
  1693. EF_KO_ZENKAI_WIND,
  1694. EF_KO_JYUMONJIKIRI,
  1695. EF_KO_SETSUDAN,
  1696. EF_RED_CROSS,
  1697. EF_KO_IZAYOI,
  1698. EF_ROTATE_LINE_BLUE,
  1699. EF_KG_KYOMU,
  1700. EF_KO_HUUMARANKA,
  1701. EF_BLUELIGHTBODY,
  1702. EF_KAGEMUSYA,
  1703. EF_OB_GENSOU,
  1704. EF_NO100_FIRECRACKER,
  1705. EF_KO_MAKIBISHI,
  1706. EF_KAIHOU1,
  1707. EF_AKAITSUKI,
  1708. EF_ZANGETSU,
  1709. EF_GENSOU,
  1710. EF_HAT_EFFECT,
  1711. EF_CHERRYBLOSSOM,
  1712. EF_EVENT_CLOUD,
  1713. EF_RUN_MAKE_OK,
  1714. EF_RUN_MAKE_FAILURE,
  1715. EF_MIRESULT_MAKE_OK,
  1716. EF_MIRESULT_MAKE_FAIL,
  1717. EF_ALL_RAY_OF_PROTECTION,
  1718. EF_VENOMFOG,
  1719. EF_DUSTSTORM,
  1720. EF_LEVEL160,
  1721. EF_LEVEL160_SUB,
  1722. EF_MAPCHAIN,
  1723. EF_MAGIC_FLOOR,
  1724. EF_ICEMINE,
  1725. EF_FLAMECORSS,
  1726. EF_ICEMINE_1,
  1727. EF_DANCE_BLADE_ATK,
  1728. EF_DARKPIERCING,
  1729. EF_INVINCIBLEOFF2,
  1730. EF_MAXPAIN,
  1731. EF_DEATHSUMMON,
  1732. EF_MOONSTAR,
  1733. EF_STRANGELIGHTS,
  1734. EF_SUPER_STAR,
  1735. EF_YELLOBODY,
  1736. EF_COLORPAPER2,
  1737. EF_EVILS_PAW,
  1738. EF_GC_DARKCROW,
  1739. EF_RK_DRAGONBREATH_WATER,
  1740. EF_ALL_FULL_THROTTLE,
  1741. EF_SR_FLASHCOMBO,
  1742. EF_RK_LUXANIMA,
  1743. EF_CLOUD10,
  1744. EF_SO_ELEMENTAL_SHIELD,
  1745. EF_AB_OFFERTORIUM,
  1746. EF_WL_TELEKINESIS_INTENSE,
  1747. EF_GN_ILLUSIONDOPING,
  1748. EF_NC_MAGMA_ERUPTION,
  1749. EF_LG_KINGS_GRACE,
  1750. EF_BLOODDRAIN2,
  1751. EF_NPC_WIDEWEB,
  1752. EF_NPC_BURNT,
  1753. EF_NPC_CHILL,
  1754. EF_RA_UNLIMIT,
  1755. EF_AB_OFFERTORIUM_RING,
  1756. EF_SC_ESCAPE,
  1757. EF_WM_FRIGG_SONG,
  1758. EF_FLICKER,
  1759. EF_C_MAKER,
  1760. EF_HAMMER_OF_GOD,
  1761. EF_MASS_SPIRAL,
  1762. EF_FIRE_RAIN,
  1763. EF_WHITEBODY,
  1764. EF_BANISHING_BUSTER,
  1765. EF_SLUGSHOT,
  1766. EF_D_TAIL,
  1767. EF_BIND_TRAP1,
  1768. EF_BIND_TRAP2,
  1769. EF_BIND_TRAP3,
  1770. EF_JUMPBODY1,
  1771. EF_ANIMATED_EMITTER,
  1772. EF_RL_EXPLOSION,
  1773. EF_C_MAKER_1,
  1774. EF_QD_SHOT,
  1775. EF_P_ALTER,
  1776. EF_S_STORM,
  1777. EF_MUSIC_HAT,
  1778. EF_CLOUD_KILL,
  1779. EF_ESCAPE,
  1780. EF_XENO_SLASHER,
  1781. EF_FLOWERSMOKE,
  1782. EF_FSTONE,
  1783. EF_QSCARABA,
  1784. EF_LJOSALFAR,
  1785. EF_HAPPINESSSTAR,
  1786. EF_POWER_OF_GAIA,
  1787. EF_MAPLE_FALLS,
  1788. EF_MARKING_USE_CHANGEMONSTER,
  1789. EF_MAGICAL_FEATHER,
  1790. EF_MERMAID_LONGING,
  1791. EF_GIFT_OF_SNOW,
  1792. EF_ACH_COMPLETE,
  1793. EF_TIME_ACCESSORY,
  1794. EF_SPRITEMABLE,
  1795. EF_TUNAPARTY,
  1796. EF_FRESHSHRIMP,
  1797. EF_SU_GROOMING = 1123,
  1798. EF_SU_CHATTERING,
  1799. EF_FIREDANCE = 1133,
  1800. EF_RICHS_COIN_A,
  1801. EF_E_CHAIN = 1137,
  1802. EF_HEAT_BARREL,
  1803. EF_H_MINE,
  1804. EF_FALLEN_ANGEL,
  1805. EF_IMMUNE_PROPERTY = 1149,
  1806. EF_MOVE_COORDINATE,
  1807. EF_LIGHTSPHERE_SUN = 1197,
  1808. EF_LIGHTSPHERE_MOON,
  1809. EF_LIGHTSPHERE_STAR,
  1810. EF_NOVAEXPLOSING = 1202,
  1811. EF_STAR_EMPEROR,
  1812. EF_SMA_BLACK,
  1813. EF_ENERGYDRAIN_BLACK = 1208,
  1814. EF_BLINK_BODY,
  1815. EF_SOLARBURST = 1218,
  1816. EF_SJ_DOCUMENT,
  1817. EF_FALLING_STAR,
  1818. EF_STORMKICK8 = 1223,
  1819. EF_NEWMOON_KICK = 1229,
  1820. EF_FULLMOON_KICK,
  1821. EF_BOOK_OF_DIMENSION,
  1822. EF_CURSE_EXPLOSION = 1233,
  1823. EF_SOUL_REAPER,
  1824. EF_SOUL_EXPLOSION = 1242,
  1825. EF_MAX
  1826. };
  1827. enum e_hat_effects : int16{
  1828. HAT_EF_MIN = 0,
  1829. HAT_EF_BLOSSOM_FLUTTERING,
  1830. HAT_EF_MERMAID_LONGING,
  1831. HAT_EF_RL_BANISHING_BUSTER,
  1832. HAT_EF_LJOSALFAR,
  1833. HAT_EF_CLOCKING,
  1834. HAT_EF_SNOW,
  1835. HAT_EF_MAKEBLUR,
  1836. HAT_EF_SLEEPATTACK,
  1837. HAT_EF_GUMGANG,
  1838. HAT_EF_TALK_FROSTJOKE,
  1839. HAT_EF_DEMONSTRATION,
  1840. HAT_EF_FLUTTER_BUTTERFLY,
  1841. HAT_EF_ANGEL_FLUTTERING,
  1842. HAT_EF_BLESSING_OF_ANGELS,
  1843. HAT_EF_ELECTRIC,
  1844. HAT_EF_GREEN_FLOOR,
  1845. HAT_EF_SHRINK,
  1846. HAT_EF_VALHALLA_IDOL,
  1847. HAT_EF_ANGEL_STAIRS,
  1848. HAT_EF_GLOW_OF_NEW_YEAR,
  1849. HAT_EF_BOTTOM_FORTUNEKISS,
  1850. HAT_EF_PINKBODY,
  1851. HAT_EF_DOUBLEGUMGANG,
  1852. HAT_EF_GIANTBODY,
  1853. HAT_EF_GREEN99_6,
  1854. HAT_EF_CIRCLEPOWER,
  1855. HAT_EF_BOTTOM_BLOODYLUST,
  1856. HAT_EF_WATER_BELOW,
  1857. HAT_EF_LEVEL99_150,
  1858. HAT_EF_YELLOWFLY3,
  1859. HAT_EF_KAGEMUSYA,
  1860. HAT_EF_CHERRYBLOSSOM,
  1861. HAT_EF_STRANGELIGHTS,
  1862. HAT_EF_WL_TELEKINESIS_INTENSE,
  1863. HAT_EF_AB_OFFERTORIUM_RING,
  1864. HAT_EF_WHITEBODY2,
  1865. HAT_EF_SAKURA,
  1866. HAT_EF_CLOUD2,
  1867. HAT_EF_FEATHER_FLUTTERING,
  1868. HAT_EF_CAMELLIA_HAIR_PIN,
  1869. HAT_EF_JP_EV_EFFECT01,
  1870. HAT_EF_JP_EV_EFFECT02,
  1871. HAT_EF_JP_EV_EFFECT03,
  1872. HAT_EF_FLORAL_WALTZ,
  1873. HAT_EF_MAGICAL_FEATHER,
  1874. HAT_EF_HAT_EFFECT,
  1875. HAT_EF_BAKURETSU_HADOU,
  1876. HAT_EF_GOLD_SHOWER,
  1877. HAT_EF_WHITEBODY,
  1878. HAT_EF_WATER_BELOW2,
  1879. HAT_EF_FIREWORK,
  1880. HAT_EF_RETURN_TW_1ST_HAT,
  1881. HAT_EF_C_FLUTTERBUTTERFLY_BL,
  1882. HAT_EF_QSCARABA,
  1883. HAT_EF_FSTONE,
  1884. HAT_EF_MAGICCIRCLE,
  1885. HAT_EF_BRYSINGGAMEN,
  1886. HAT_EF_MAGINGIORDE,
  1887. HAT_EF_LEVEL99_RED,
  1888. HAT_EF_LEVEL99_ULTRAMARINE,
  1889. HAT_EF_LEVEL99_CYAN,
  1890. HAT_EF_LEVEL99_LIME,
  1891. HAT_EF_LEVEL99_VIOLET,
  1892. HAT_EF_LEVEL99_LILAC,
  1893. HAT_EF_LEVEL99_SUN_ORANGE,
  1894. HAT_EF_LEVEL99_DEEP_PINK,
  1895. HAT_EF_LEVEL99_BLACK,
  1896. HAT_EF_LEVEL99_WHITE,
  1897. HAT_EF_LEVEL160_RED,
  1898. HAT_EF_LEVEL160_ULTRAMARINE,
  1899. HAT_EF_LEVEL160_CYAN,
  1900. HAT_EF_LEVEL160_LIME,
  1901. HAT_EF_LEVEL160_VIOLET,
  1902. HAT_EF_LEVEL160_LILAC,
  1903. HAT_EF_LEVEL160_SUN_ORANGE,
  1904. HAT_EF_LEVEL160_DEEP_PINK,
  1905. HAT_EF_LEVEL160_BLACK,
  1906. HAT_EF_LEVEL160_WHITE,
  1907. HAT_EF_FULL_BLOOMCHERRY_TREE,
  1908. HAT_EF_C_BLESSINGS_OF_SOUL,
  1909. HAT_EF_MANYSTARS,
  1910. HAT_EF_SUBJECT_AURA_GOLD,
  1911. HAT_EF_SUBJECT_AURA_WHITE,
  1912. HAT_EF_SUBJECT_AURA_RED,
  1913. HAT_EF_C_SHINING_ANGEL_WING,
  1914. HAT_EF_MAGIC_STAR_TW,
  1915. HAT_EF_DIGITAL_SPACE,
  1916. HAT_EF_SLEIPNIR,
  1917. HAT_EF_C_MAPLE_WHICH_FALLS_RD,
  1918. HAT_EF_MAGICCIRCLERAINBOW,
  1919. HAT_EF_SNOWFLAKE_TIARA,
  1920. HAT_EF_MIDGARTS_GLORY,
  1921. HAT_EF_LEVEL99_TIGER,
  1922. HAT_EF_LEVEL160_TIGER,
  1923. HAT_EF_FLUFFYWING,
  1924. HAT_EF_C_GHOST_EFFECT,
  1925. HAT_EF_C_POPPING_PORING_AURA,
  1926. HAT_EF_RESONATETAEGO,
  1927. HAT_EF_99LV_RUNE_RED,
  1928. HAT_EF_99LV_ROYAL_GUARD_BLUE,
  1929. HAT_EF_99LV_WARLOCK_VIOLET,
  1930. HAT_EF_99LV_SORCERER_LBLUE,
  1931. HAT_EF_99LV_RANGER_GREEN,
  1932. HAT_EF_99LV_MINSTREL_PINK,
  1933. HAT_EF_99LV_ARCHBISHOP_WHITE,
  1934. HAT_EF_99LV_GUILL_SILVER,
  1935. HAT_EF_99LV_SHADOWC_BLACK,
  1936. HAT_EF_99LV_MECHANIC_GOLD,
  1937. HAT_EF_99LV_GENETIC_YGREEN,
  1938. HAT_EF_160LV_RUNE_RED,
  1939. HAT_EF_160LV_ROYAL_G_BLUE,
  1940. HAT_EF_160LV_WARLOCK_VIOLET,
  1941. HAT_EF_160LV_SORCERER_LBLUE,
  1942. HAT_EF_160LV_RANGER_GREEN,
  1943. HAT_EF_160LV_MINSTREL_PINK,
  1944. HAT_EF_160LV_ARCHB_WHITE,
  1945. HAT_EF_160LV_GUILL_SILVER,
  1946. HAT_EF_160LV_SHADOWC_BLACK,
  1947. HAT_EF_160LV_MECHANIC_GOLD,
  1948. HAT_EF_160LV_GENETIC_YGREEN,
  1949. HAT_EF_WATER_BELOW3,
  1950. HAT_EF_WATER_BELOW4,
  1951. HAT_EF_C_VALKYRIE_WING,
  1952. HAT_EF_2019RTC_CELEAURA_TW,
  1953. HAT_EF_2019RTC1ST_TW,
  1954. HAT_EF_2019RTC2ST_TW,
  1955. HAT_EF_2019RTC3ST_TW,
  1956. HAT_EF_CONS_OF_WIND,
  1957. HAT_EF_MAPLE_FALLS,
  1958. HAT_EF_BJ_HEADSETB,
  1959. HAT_EF_VIP_HAIR,
  1960. HAT_EF_C_MAGIC_HEIR_TW,
  1961. HAT_EF_C_SUDDEN_WEALTH_TW,
  1962. HAT_EF_C_ROMANCE_ROSE_TW,
  1963. HAT_EF_C_DISAPEAR_TIME_TW,
  1964. HAT_EF_2020RTC_01,
  1965. HAT_EF_2020RTC_02,
  1966. HAT_EF_2020RTC_03,
  1967. HAT_EF_C_2020RTC_IMP_TW,
  1968. HAT_EF_SUBJECT_AURA_BLACK,
  1969. HAT_EF_2020RTC_EFFECT_01,
  1970. HAT_EF_2020RTC_EFFECT_02,
  1971. HAT_EF_2020RTC_EFFECT_03,
  1972. HAT_EF_99LV_STAR_E_MBLUE,
  1973. HAT_EF_160LV_STAR_E_MBLUE,
  1974. HAT_EF_99LV_SOUL_R_GRAY,
  1975. HAT_EF_160LV_SOUL_R_GRAY,
  1976. HAT_EF_GEARWHEEL,
  1977. HAT_EF_GIFT_OF_SNOW,
  1978. HAT_EF_SNOW_POWDER,
  1979. HAT_EF_FALLING_SNOW,
  1980. HAT_EF_C_PHIGASIA_SCARF_EXE,
  1981. HAT_EF_C_KYEL_HYRE_ULTI_TW,
  1982. HAT_EF_C_MASTER,
  1983. HAT_EF_C_TIME_ACCESSORY,
  1984. HAT_EF_C_HELM_OF_RA,
  1985. HAT_EF_C_2021RTC_HEADSET_TW,
  1986. HAT_EF_C_MOONSTAR_ACCESSORY,
  1987. HAT_EF_BLACK_THUNDER,
  1988. HAT_EF_BLACK_THUNDER_DARK,
  1989. HAT_EF_C_RELEASED_GROUND,
  1990. HAT_EF_C_SAMBA_CARNIVAL,
  1991. HAT_EF_POISON_MASTER,
  1992. HAT_EF_C_SWIRLING_FLAME,
  1993. HAT_EF_C_2021RTC_HEADSET_1_TW,
  1994. HAT_EF_C_2021RTC_HEADSET_2_TW,
  1995. HAT_EF_C_2021RTC_HEADSET_3_TW,
  1996. HAT_EF_SUBJECT_AURA_WHITE_ALPHA,
  1997. HAT_EF_GC_DARKCROW,
  1998. HAT_EF_DIABOLUS_RING,
  1999. HAT_EF_MAGICCIRCLE_BLUE_TW,
  2000. HAT_EF_C_DISAPEAR_TIME_TW_2,
  2001. HAT_EF_C_MELODY_WING,
  2002. HAT_EF_C_SPOT_LIGHT,
  2003. HAT_EF_C_ASTRA_BLESSING,
  2004. HAT_EF_EFST_C_20TH_ANNIVERSARY_HAT,
  2005. HAT_EF_SUBJECT_AURA_NAVY,
  2006. HAT_EF_20TH_SCARF_J,
  2007. HAT_EF_GHOST_FIRE,
  2008. HAT_EF_SERPENT_SHADOW,
  2009. HAT_EF_C_1ST_EVT_HAT_MSP,
  2010. HAT_EF_C_1ST_EVT_BALLOON_MSP,
  2011. HAT_EF_RABBIT_AURA,
  2012. HAT_EF_ALICE_TEA,
  2013. HAT_EF_C_DARK_LORD_CLOAK,
  2014. HAT_EF_C_SAKURA_FUBUKI,
  2015. HAT_EF_C_DARK_LORD_MANTEAU,
  2016. HAT_EF_DECORATION_OF_MUSIC,
  2017. HAT_EF_2023RTC_S_ROBE1,
  2018. HAT_EF_2023RTC_S_ROBE2,
  2019. HAT_EF_2023RTC_S_ROBE3,
  2020. HAT_EF_C_CONSECRATE_F_AUREOLA,
  2021. HAT_EF_C_BULB_WREATH,
  2022. HAT_EF_MD_HOL_BARRIER1,
  2023. HAT_EF_MD_HOL_BARRIER2,
  2024. HAT_EF_MD_HOL_BARRIER3,
  2025. HAT_EF_MD_HOL_BARRIER4,
  2026. HAT_EF_MD_HOL_BARRIER5,
  2027. HAT_EF_MD_HOL_BARRIER6,
  2028. HAT_EF_MD_HOL_BARRIER7,
  2029. HAT_EF_MD_HOL_BARRIER8,
  2030. HAT_EF_MD_HOL_BARRIER9,
  2031. HAT_EF_MD_HOL_BARRIER10,
  2032. HAT_EF_MD_HOL_BARRIER11,
  2033. HAT_EF_MD_HOL_BARRIER12,
  2034. HAT_EF_MD_HOL_BARRIER13,
  2035. HAT_EF_MD_HOL_BARRIER14,
  2036. HAT_EF_MD_HOL_BARRIER15,
  2037. HAT_EF_MD_HOL_BARRIER16,
  2038. HAT_EF_MD_HOL_BARRIER17,
  2039. HAT_EF_MD_HOL_BARRIER18,
  2040. HAT_EF_MD_HOL_BARRIER19,
  2041. HAT_EF_MD_HOL_BARRIER20,
  2042. HAT_EF_C_FLUTTERING_HAZE,
  2043. HAT_EF_EFST_CINNAMON,
  2044. HAT_EF_AUTUMN_FULL_MOON,
  2045. HAT_EF_NIFLHEIM_NIGHT_SKY,
  2046. HAT_EF_C_ROS2023_CAPE_1,
  2047. HAT_EF_C_ROS2023_CAPE_2,
  2048. HAT_EF_C_15TH_NOV_HELMET,
  2049. HAT_EF_MAX
  2050. };
  2051. enum e_convertpcinfo_type : uint8 {
  2052. CPC_NAME = 0,
  2053. CPC_CHAR = 1,
  2054. CPC_ACCOUNT = 2
  2055. };
  2056. enum e_instance_warpall_flag{
  2057. IWA_NONE = 0x00,
  2058. IWA_NOTDEAD = 0x01,
  2059. };
  2060. /**
  2061. * Player blocking actions related flags.
  2062. */
  2063. enum e_pcblock_action_flag : uint16 {
  2064. PCBLOCK_MOVE = 0x001,
  2065. PCBLOCK_ATTACK = 0x002,
  2066. PCBLOCK_SKILL = 0x004,
  2067. PCBLOCK_USEITEM = 0x008,
  2068. PCBLOCK_CHAT = 0x010,
  2069. PCBLOCK_IMMUNE = 0x020,
  2070. PCBLOCK_SITSTAND = 0x040,
  2071. PCBLOCK_COMMANDS = 0x080,
  2072. PCBLOCK_NPCCLICK = 0x100,
  2073. PCBLOCK_NPC = 0x18D,
  2074. PCBLOCK_EMOTION = 0x200,
  2075. PCBLOCK_ALL = 0x3FF,
  2076. };
  2077. /* getiteminfo/setiteminfo script commands */
  2078. enum e_iteminfo : uint8 {
  2079. ITEMINFO_BUY = 0,
  2080. ITEMINFO_SELL,
  2081. ITEMINFO_TYPE,
  2082. ITEMINFO_MAXCHANCE,
  2083. ITEMINFO_GENDER,
  2084. ITEMINFO_LOCATIONS,
  2085. ITEMINFO_WEIGHT,
  2086. ITEMINFO_ATTACK,
  2087. ITEMINFO_DEFENSE,
  2088. ITEMINFO_RANGE,
  2089. ITEMINFO_SLOT,
  2090. ITEMINFO_VIEW,
  2091. ITEMINFO_EQUIPLEVELMIN,
  2092. ITEMINFO_WEAPONLEVEL,
  2093. ITEMINFO_ALIASNAME,
  2094. ITEMINFO_EQUIPLEVELMAX,
  2095. ITEMINFO_MAGICATTACK,
  2096. ITEMINFO_ID,
  2097. ITEMINFO_AEGISNAME, // 18
  2098. ITEMINFO_ARMORLEVEL,
  2099. ITEMINFO_SUBTYPE,
  2100. };
  2101. class ConstantDatabase : public YamlDatabase {
  2102. public:
  2103. ConstantDatabase() : YamlDatabase("CONSTANT_DB", 1) {
  2104. }
  2105. void clear() override{ }
  2106. const std::string getDefaultLocation() override;
  2107. uint64 parseBodyNode(const ryml::NodeRef& node) override;
  2108. };
  2109. /**
  2110. * used to generate quick script_array entries
  2111. **/
  2112. extern struct eri *array_ers;
  2113. extern DBMap *st_db;
  2114. extern unsigned int active_scripts;
  2115. extern unsigned int next_id;
  2116. extern struct eri *st_ers;
  2117. extern struct eri *stack_ers;
  2118. const char* skip_space(const char* p);
  2119. void script_error(const char* src, const char* file, int start_line, const char* error_msg, const char* error_pos);
  2120. void script_warning(const char* src, const char* file, int start_line, const char* error_msg, const char* error_pos);
  2121. bool is_number(const char *p);
  2122. struct script_code* parse_script(const char* src,const char* file,int line,int options);
  2123. void run_script(struct script_code *rootscript,int pos,int rid,int oid);
  2124. bool set_reg_num(struct script_state* st, map_session_data* sd, int64 num, const char* name, const int64 value, struct reg_db *ref);
  2125. bool set_reg_str(struct script_state* st, map_session_data* sd, int64 num, const char* name, const char* value, struct reg_db* ref);
  2126. bool set_var_str(map_session_data *sd, const char* name, const char* val);
  2127. bool clear_reg( struct script_state* st, map_session_data* sd, int64 num, const char* name, struct reg_db *ref );
  2128. int64 conv_num64(struct script_state *st, struct script_data *data);
  2129. int conv_num(struct script_state *st, struct script_data *data);
  2130. const char* conv_str(struct script_state *st,struct script_data *data);
  2131. void pop_stack(struct script_state* st, int start, int end);
  2132. TIMER_FUNC(run_script_timer);
  2133. void script_stop_sleeptimers(int id);
  2134. struct linkdb_node *script_erase_sleepdb(struct linkdb_node *n);
  2135. void script_attach_state(struct script_state* st);
  2136. void script_detach_rid(struct script_state* st);
  2137. void run_script_main(struct script_state *st);
  2138. void script_stop_scriptinstances(struct script_code *code);
  2139. void script_free_code(struct script_code* code);
  2140. void script_free_vars(struct DBMap *storage);
  2141. struct script_state* script_alloc_state(struct script_code* rootscript, int pos, int rid, int oid);
  2142. void script_free_state(struct script_state* st);
  2143. struct DBMap* script_get_label_db(void);
  2144. struct DBMap* script_get_userfunc_db(void);
  2145. void script_run_autobonus(const char *autobonus, map_session_data *sd, unsigned int pos);
  2146. void script_run_petautobonus(const std::string &autobonus, map_session_data &sd);
  2147. const char* script_get_constant_str(const char* prefix, int64 value);
  2148. bool script_get_parameter(const char* name, int64* value);
  2149. bool script_get_constant(const char* name, int64* value);
  2150. void script_set_constant_(const char* name, int64 value, const char* constant_name, bool isparameter, bool deprecated);
  2151. #define script_set_constant(name, value, isparameter, deprecated) script_set_constant_(name, value, NULL, isparameter, deprecated)
  2152. void script_hardcoded_constants(void);
  2153. void script_cleararray_pc(map_session_data* sd, const char* varname);
  2154. void script_setarray_pc(map_session_data* sd, const char* varname, uint32 idx, int64 value, int* refcache);
  2155. int script_config_read(const char *cfgName);
  2156. void do_init_script(void);
  2157. void do_final_script(void);
  2158. int add_str(const char* p);
  2159. const char* get_str(int id);
  2160. void script_reload(void);
  2161. void setd_sub_num( struct script_state* st, map_session_data* sd, const char* varname, int elem, int64 value, struct reg_db* ref );
  2162. void setd_sub_str( struct script_state* st, map_session_data* sd, const char* varname, int elem, const char* value, struct reg_db* ref );
  2163. /**
  2164. * Array Handling
  2165. **/
  2166. struct reg_db *script_array_src(struct script_state *st, map_session_data *sd, const char *name, struct reg_db *ref);
  2167. void script_array_update(struct reg_db *src, int64 num, bool empty);
  2168. void script_array_delete(struct reg_db *src, struct script_array *sa);
  2169. void script_array_remove_member(struct reg_db *src, struct script_array *sa, unsigned int idx);
  2170. void script_array_add_member(struct script_array *sa, unsigned int idx);
  2171. unsigned int script_array_size(struct script_state *st, map_session_data *sd, const char *name, struct reg_db *ref);
  2172. unsigned int script_array_highest_key(struct script_state *st, map_session_data *sd, const char *name, struct reg_db *ref);
  2173. void script_array_ensure_zero(struct script_state *st, map_session_data *sd, int64 uid, struct reg_db *ref);
  2174. int script_free_array_db(DBKey key, DBData *data, va_list ap);
  2175. /* */
  2176. void script_reg_destroy_single(map_session_data *sd, int64 reg, struct script_reg_state *data);
  2177. int script_reg_destroy(DBKey key, DBData *data, va_list ap);
  2178. /* */
  2179. void script_generic_ui_array_expand(unsigned int plus);
  2180. unsigned int *script_array_cpy_list(struct script_array *sa);
  2181. bool script_check_RegistryVariableLength(int pType, const char *val, size_t* vlen);
  2182. #endif /* SCRIPT_HPP */