script.hpp 40 KB

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