script.hpp 40 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000
  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(get_val(st, script_getdata(st,i)))
  43. #define script_isint(st,i) data_isint(get_val(st, 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 unitdata_mobtypes {
  372. UMOB_SIZE = 0,
  373. UMOB_LEVEL,
  374. UMOB_HP,
  375. UMOB_MAXHP,
  376. UMOB_MASTERAID,
  377. UMOB_MAPID,
  378. UMOB_X,
  379. UMOB_Y,
  380. UMOB_SPEED,
  381. UMOB_MODE,
  382. UMOB_AI,
  383. UMOB_SCOPTION,
  384. UMOB_SEX,
  385. UMOB_CLASS,
  386. UMOB_HAIRSTYLE,
  387. UMOB_HAIRCOLOR,
  388. UMOB_HEADBOTTOM,
  389. UMOB_HEADMIDDLE,
  390. UMOB_HEADTOP,
  391. UMOB_CLOTHCOLOR,
  392. UMOB_SHIELD,
  393. UMOB_WEAPON,
  394. UMOB_LOOKDIR,
  395. UMOB_CANMOVETICK,
  396. UMOB_STR,
  397. UMOB_AGI,
  398. UMOB_VIT,
  399. UMOB_INT,
  400. UMOB_DEX,
  401. UMOB_LUK,
  402. UMOB_SLAVECPYMSTRMD,
  403. UMOB_DMGIMMUNE,
  404. UMOB_ATKRANGE,
  405. UMOB_ATKMIN,
  406. UMOB_ATKMAX,
  407. UMOB_MATKMIN,
  408. UMOB_MATKMAX,
  409. UMOB_DEF,
  410. UMOB_MDEF,
  411. UMOB_HIT,
  412. UMOB_FLEE,
  413. UMOB_PDODGE,
  414. UMOB_CRIT,
  415. UMOB_RACE,
  416. UMOB_ELETYPE,
  417. UMOB_ELELEVEL,
  418. UMOB_AMOTION,
  419. UMOB_ADELAY,
  420. UMOB_DMOTION,
  421. UMOB_TARGETID,
  422. };
  423. enum unitdata_homuntypes {
  424. UHOM_SIZE = 0,
  425. UHOM_LEVEL,
  426. UHOM_HP,
  427. UHOM_MAXHP,
  428. UHOM_SP,
  429. UHOM_MAXSP,
  430. UHOM_MASTERCID,
  431. UHOM_MAPID,
  432. UHOM_X,
  433. UHOM_Y,
  434. UHOM_HUNGER,
  435. UHOM_INTIMACY,
  436. UHOM_SPEED,
  437. UHOM_LOOKDIR,
  438. UHOM_CANMOVETICK,
  439. UHOM_STR,
  440. UHOM_AGI,
  441. UHOM_VIT,
  442. UHOM_INT,
  443. UHOM_DEX,
  444. UHOM_LUK,
  445. UHOM_DMGIMMUNE,
  446. UHOM_ATKRANGE,
  447. UHOM_ATKMIN,
  448. UHOM_ATKMAX,
  449. UHOM_MATKMIN,
  450. UHOM_MATKMAX,
  451. UHOM_DEF,
  452. UHOM_MDEF,
  453. UHOM_HIT,
  454. UHOM_FLEE,
  455. UHOM_PDODGE,
  456. UHOM_CRIT,
  457. UHOM_RACE,
  458. UHOM_ELETYPE,
  459. UHOM_ELELEVEL,
  460. UHOM_AMOTION,
  461. UHOM_ADELAY,
  462. UHOM_DMOTION,
  463. UHOM_TARGETID,
  464. };
  465. enum unitdata_pettypes {
  466. UPET_SIZE = 0,
  467. UPET_LEVEL,
  468. UPET_HP,
  469. UPET_MAXHP,
  470. UPET_MASTERAID,
  471. UPET_MAPID,
  472. UPET_X,
  473. UPET_Y,
  474. UPET_HUNGER,
  475. UPET_INTIMACY,
  476. UPET_SPEED,
  477. UPET_LOOKDIR,
  478. UPET_CANMOVETICK,
  479. UPET_STR,
  480. UPET_AGI,
  481. UPET_VIT,
  482. UPET_INT,
  483. UPET_DEX,
  484. UPET_LUK,
  485. UPET_DMGIMMUNE,
  486. UPET_ATKRANGE,
  487. UPET_ATKMIN,
  488. UPET_ATKMAX,
  489. UPET_MATKMIN,
  490. UPET_MATKMAX,
  491. UPET_DEF,
  492. UPET_MDEF,
  493. UPET_HIT,
  494. UPET_FLEE,
  495. UPET_PDODGE,
  496. UPET_CRIT,
  497. UPET_RACE,
  498. UPET_ELETYPE,
  499. UPET_ELELEVEL,
  500. UPET_AMOTION,
  501. UPET_ADELAY,
  502. UPET_DMOTION,
  503. };
  504. enum unitdata_merctypes {
  505. UMER_SIZE = 0,
  506. UMER_HP,
  507. UMER_MAXHP,
  508. UMER_MASTERCID,
  509. UMER_MAPID,
  510. UMER_X,
  511. UMER_Y,
  512. UMER_KILLCOUNT,
  513. UMER_LIFETIME,
  514. UMER_SPEED,
  515. UMER_LOOKDIR,
  516. UMER_CANMOVETICK,
  517. UMER_STR,
  518. UMER_AGI,
  519. UMER_VIT,
  520. UMER_INT,
  521. UMER_DEX,
  522. UMER_LUK,
  523. UMER_DMGIMMUNE,
  524. UMER_ATKRANGE,
  525. UMER_ATKMIN,
  526. UMER_ATKMAX,
  527. UMER_MATKMIN,
  528. UMER_MATKMAX,
  529. UMER_DEF,
  530. UMER_MDEF,
  531. UMER_HIT,
  532. UMER_FLEE,
  533. UMER_PDODGE,
  534. UMER_CRIT,
  535. UMER_RACE,
  536. UMER_ELETYPE,
  537. UMER_ELELEVEL,
  538. UMER_AMOTION,
  539. UMER_ADELAY,
  540. UMER_DMOTION,
  541. UMER_TARGETID,
  542. };
  543. enum unitdata_elemtypes {
  544. UELE_SIZE = 0,
  545. UELE_HP,
  546. UELE_MAXHP,
  547. UELE_SP,
  548. UELE_MAXSP,
  549. UELE_MASTERCID,
  550. UELE_MAPID,
  551. UELE_X,
  552. UELE_Y,
  553. UELE_LIFETIME,
  554. UELE_MODE,
  555. UELE_SPEED,
  556. UELE_LOOKDIR,
  557. UELE_CANMOVETICK,
  558. UELE_STR,
  559. UELE_AGI,
  560. UELE_VIT,
  561. UELE_INT,
  562. UELE_DEX,
  563. UELE_LUK,
  564. UELE_DMGIMMUNE,
  565. UELE_ATKRANGE,
  566. UELE_ATKMIN,
  567. UELE_ATKMAX,
  568. UELE_MATKMIN,
  569. UELE_MATKMAX,
  570. UELE_DEF,
  571. UELE_MDEF,
  572. UELE_HIT,
  573. UELE_FLEE,
  574. UELE_PDODGE,
  575. UELE_CRIT,
  576. UELE_RACE,
  577. UELE_ELETYPE,
  578. UELE_ELELEVEL,
  579. UELE_AMOTION,
  580. UELE_ADELAY,
  581. UELE_DMOTION,
  582. UELE_TARGETID,
  583. };
  584. enum unitdata_npctypes {
  585. UNPC_DISPLAY = 0,
  586. UNPC_LEVEL,
  587. UNPC_HP,
  588. UNPC_MAXHP,
  589. UNPC_MAPID,
  590. UNPC_X,
  591. UNPC_Y,
  592. UNPC_LOOKDIR,
  593. UNPC_STR,
  594. UNPC_AGI,
  595. UNPC_VIT,
  596. UNPC_INT,
  597. UNPC_DEX,
  598. UNPC_LUK,
  599. UNPC_PLUSALLSTAT,
  600. UNPC_DMGIMMUNE,
  601. UNPC_ATKRANGE,
  602. UNPC_ATKMIN,
  603. UNPC_ATKMAX,
  604. UNPC_MATKMIN,
  605. UNPC_MATKMAX,
  606. UNPC_DEF,
  607. UNPC_MDEF,
  608. UNPC_HIT,
  609. UNPC_FLEE,
  610. UNPC_PDODGE,
  611. UNPC_CRIT,
  612. UNPC_RACE,
  613. UNPC_ELETYPE,
  614. UNPC_ELELEVEL,
  615. UNPC_AMOTION,
  616. UNPC_ADELAY,
  617. UNPC_DMOTION,
  618. };
  619. enum navigation_service {
  620. NAV_NONE = 0, ///< 0
  621. NAV_AIRSHIP_ONLY = 1, ///< 1 (actually 1-9)
  622. NAV_SCROLL_ONLY = 10, ///< 10
  623. NAV_AIRSHIP_AND_SCROLL = NAV_AIRSHIP_ONLY + NAV_SCROLL_ONLY, ///< 11 (actually 11-99)
  624. NAV_KAFRA_ONLY = 100, ///< 100
  625. NAV_KAFRA_AND_AIRSHIP = NAV_KAFRA_ONLY + NAV_AIRSHIP_ONLY, ///< 101 (actually 101-109)
  626. NAV_KAFRA_AND_SCROLL = NAV_KAFRA_ONLY + NAV_SCROLL_ONLY, ///< 110
  627. NAV_ALL = NAV_AIRSHIP_ONLY + NAV_SCROLL_ONLY + NAV_KAFRA_ONLY ///< 111 (actually 111-255)
  628. };
  629. enum random_option_attribute {
  630. ROA_ID = 0,
  631. ROA_VALUE,
  632. ROA_PARAM,
  633. };
  634. enum instance_info_type {
  635. IIT_ID,
  636. IIT_TIME_LIMIT,
  637. IIT_IDLE_TIMEOUT,
  638. IIT_ENTER_MAP,
  639. IIT_ENTER_X,
  640. IIT_ENTER_Y,
  641. IIT_MAPCOUNT,
  642. IIT_MAP
  643. };
  644. enum vip_status_type {
  645. VIP_STATUS_ACTIVE = 1,
  646. VIP_STATUS_EXPIRE,
  647. VIP_STATUS_REMAINING
  648. };
  649. enum e_special_effects {
  650. EF_NONE = -1,
  651. EF_HIT1,
  652. EF_HIT2,
  653. EF_HIT3,
  654. EF_HIT4,
  655. EF_HIT5,
  656. EF_HIT6,
  657. EF_ENTRY,
  658. EF_EXIT,
  659. EF_WARP,
  660. EF_ENHANCE,
  661. EF_COIN,
  662. EF_ENDURE,
  663. EF_BEGINSPELL,
  664. EF_GLASSWALL,
  665. EF_HEALSP,
  666. EF_SOULSTRIKE,
  667. EF_BASH,
  668. EF_MAGNUMBREAK,
  669. EF_STEAL,
  670. EF_HIDING,
  671. EF_PATTACK,
  672. EF_DETOXICATION,
  673. EF_SIGHT,
  674. EF_STONECURSE,
  675. EF_FIREBALL,
  676. EF_FIREWALL,
  677. EF_ICEARROW,
  678. EF_FROSTDIVER,
  679. EF_FROSTDIVER2,
  680. EF_LIGHTBOLT,
  681. EF_THUNDERSTORM,
  682. EF_FIREARROW,
  683. EF_NAPALMBEAT,
  684. EF_RUWACH,
  685. EF_TELEPORTATION,
  686. EF_READYPORTAL,
  687. EF_PORTAL,
  688. EF_INCAGILITY,
  689. EF_DECAGILITY,
  690. EF_AQUA,
  691. EF_SIGNUM,
  692. EF_ANGELUS,
  693. EF_BLESSING,
  694. EF_INCAGIDEX,
  695. EF_SMOKE,
  696. EF_FIREFLY,
  697. EF_SANDWIND,
  698. EF_TORCH,
  699. EF_SPRAYPOND,
  700. EF_FIREHIT,
  701. EF_FIRESPLASHHIT,
  702. EF_COLDHIT,
  703. EF_WINDHIT,
  704. EF_POISONHIT,
  705. EF_BEGINSPELL2,
  706. EF_BEGINSPELL3,
  707. EF_BEGINSPELL4,
  708. EF_BEGINSPELL5,
  709. EF_BEGINSPELL6,
  710. EF_BEGINSPELL7,
  711. EF_LOCKON,
  712. EF_WARPZONE,
  713. EF_SIGHTRASHER,
  714. EF_BARRIER,
  715. EF_ARROWSHOT,
  716. EF_INVENOM,
  717. EF_CURE,
  718. EF_PROVOKE,
  719. EF_MVP,
  720. EF_SKIDTRAP,
  721. EF_BRANDISHSPEAR,
  722. EF_CONE,
  723. EF_SPHERE,
  724. EF_BOWLINGBASH,
  725. EF_ICEWALL,
  726. EF_GLORIA,
  727. EF_MAGNIFICAT,
  728. EF_RESURRECTION,
  729. EF_RECOVERY,
  730. EF_EARTHSPIKE,
  731. EF_SPEARBMR,
  732. EF_PIERCE,
  733. EF_TURNUNDEAD,
  734. EF_SANCTUARY,
  735. EF_IMPOSITIO,
  736. EF_LEXAETERNA,
  737. EF_ASPERSIO,
  738. EF_LEXDIVINA,
  739. EF_SUFFRAGIUM,
  740. EF_STORMGUST,
  741. EF_LORD,
  742. EF_BENEDICTIO,
  743. EF_METEORSTORM,
  744. EF_YUFITEL,
  745. EF_YUFITELHIT,
  746. EF_QUAGMIRE,
  747. EF_FIREPILLAR,
  748. EF_FIREPILLARBOMB,
  749. EF_HASTEUP,
  750. EF_FLASHER,
  751. EF_REMOVETRAP,
  752. EF_REPAIRWEAPON,
  753. EF_CRASHEARTH,
  754. EF_PERFECTION,
  755. EF_MAXPOWER,
  756. EF_BLASTMINE,
  757. EF_BLASTMINEBOMB,
  758. EF_CLAYMORE,
  759. EF_FREEZING,
  760. EF_BUBBLE,
  761. EF_GASPUSH,
  762. EF_SPRINGTRAP,
  763. EF_KYRIE,
  764. EF_MAGNUS,
  765. EF_BOTTOM,
  766. EF_BLITZBEAT,
  767. EF_WATERBALL,
  768. EF_WATERBALL2,
  769. EF_FIREIVY,
  770. EF_DETECTING,
  771. EF_CLOAKING,
  772. EF_SONICBLOW,
  773. EF_SONICBLOWHIT,
  774. EF_GRIMTOOTH,
  775. EF_VENOMDUST,
  776. EF_ENCHANTPOISON,
  777. EF_POISONREACT,
  778. EF_POISONREACT2,
  779. EF_OVERTHRUST,
  780. EF_SPLASHER,
  781. EF_TWOHANDQUICKEN,
  782. EF_AUTOCOUNTER,
  783. EF_GRIMTOOTHATK,
  784. EF_FREEZE,
  785. EF_FREEZED,
  786. EF_ICECRASH,
  787. EF_SLOWPOISON,
  788. EF_BOTTOM2,
  789. EF_FIREPILLARON,
  790. EF_SANDMAN,
  791. EF_REVIVE,
  792. EF_PNEUMA,
  793. EF_HEAVENSDRIVE,
  794. EF_SONICBLOW2,
  795. EF_BRANDISH2,
  796. EF_SHOCKWAVE,
  797. EF_SHOCKWAVEHIT,
  798. EF_EARTHHIT,
  799. EF_PIERCESELF,
  800. EF_BOWLINGSELF,
  801. EF_SPEARSTABSELF,
  802. EF_SPEARBMRSELF,
  803. EF_HOLYHIT,
  804. EF_CONCENTRATION,
  805. EF_REFINEOK,
  806. EF_REFINEFAIL,
  807. EF_JOBCHANGE,
  808. EF_LVUP,
  809. EF_JOBLVUP,
  810. EF_TOPRANK,
  811. EF_PARTY,
  812. EF_RAIN,
  813. EF_SNOW,
  814. EF_SAKURA,
  815. EF_STATUS_STATE,
  816. EF_BANJJAKII,
  817. EF_MAKEBLUR,
  818. EF_TAMINGSUCCESS,
  819. EF_TAMINGFAILED,
  820. EF_ENERGYCOAT,
  821. EF_CARTREVOLUTION,
  822. EF_VENOMDUST2,
  823. EF_CHANGEDARK,
  824. EF_CHANGEFIRE,
  825. EF_CHANGECOLD,
  826. EF_CHANGEWIND,
  827. EF_CHANGEFLAME,
  828. EF_CHANGEEARTH,
  829. EF_CHAINGEHOLY,
  830. EF_CHANGEPOISON,
  831. EF_HITDARK,
  832. EF_MENTALBREAK,
  833. EF_MAGICALATTHIT,
  834. EF_SUI_EXPLOSION,
  835. EF_DARKATTACK,
  836. EF_SUICIDE,
  837. EF_COMBOATTACK1,
  838. EF_COMBOATTACK2,
  839. EF_COMBOATTACK3,
  840. EF_COMBOATTACK4,
  841. EF_COMBOATTACK5,
  842. EF_GUIDEDATTACK,
  843. EF_POISONATTACK,
  844. EF_SILENCEATTACK,
  845. EF_STUNATTACK,
  846. EF_PETRIFYATTACK,
  847. EF_CURSEATTACK,
  848. EF_SLEEPATTACK,
  849. EF_TELEKHIT,
  850. EF_PONG,
  851. EF_LEVEL99,
  852. EF_LEVEL99_2,
  853. EF_LEVEL99_3,
  854. EF_GUMGANG,
  855. EF_POTION1,
  856. EF_POTION2,
  857. EF_POTION3,
  858. EF_POTION4,
  859. EF_POTION5,
  860. EF_POTION6,
  861. EF_POTION7,
  862. EF_POTION8,
  863. EF_DARKBREATH,
  864. EF_DEFFENDER,
  865. EF_KEEPING,
  866. EF_SUMMONSLAVE,
  867. EF_BLOODDRAIN,
  868. EF_ENERGYDRAIN,
  869. EF_POTION_CON,
  870. EF_POTION_,
  871. EF_POTION_BERSERK,
  872. EF_POTIONPILLAR,
  873. EF_DEFENDER,
  874. EF_GANBANTEIN,
  875. EF_WIND,
  876. EF_VOLCANO,
  877. EF_GRANDCROSS,
  878. EF_INTIMIDATE,
  879. EF_CHOOKGI,
  880. EF_CLOUD,
  881. EF_CLOUD2,
  882. EF_MAPPILLAR,
  883. EF_LINELINK,
  884. EF_CLOUD3,
  885. EF_SPELLBREAKER,
  886. EF_DISPELL,
  887. EF_DELUGE,
  888. EF_VIOLENTGALE,
  889. EF_LANDPROTECTOR,
  890. EF_BOTTOM_VO,
  891. EF_BOTTOM_DE,
  892. EF_BOTTOM_VI,
  893. EF_BOTTOM_LA,
  894. EF_FASTMOVE,
  895. EF_MAGICROD,
  896. EF_HOLYCROSS,
  897. EF_SHIELDCHARGE,
  898. EF_MAPPILLAR2,
  899. EF_PROVIDENCE,
  900. EF_SHIELDBOOMERANG,
  901. EF_SPEARQUICKEN,
  902. EF_DEVOTION,
  903. EF_REFLECTSHIELD,
  904. EF_ABSORBSPIRITS,
  905. EF_STEELBODY,
  906. EF_FLAMELAUNCHER,
  907. EF_FROSTWEAPON,
  908. EF_LIGHTNINGLOADER,
  909. EF_SEISMICWEAPON,
  910. EF_MAPPILLAR3,
  911. EF_MAPPILLAR4,
  912. EF_GUMGANG2,
  913. EF_TEIHIT1,
  914. EF_GUMGANG3,
  915. EF_TEIHIT2,
  916. EF_TANJI,
  917. EF_TEIHIT1X,
  918. EF_CHIMTO,
  919. EF_STEALCOIN,
  920. EF_STRIPWEAPON,
  921. EF_STRIPSHIELD,
  922. EF_STRIPARMOR,
  923. EF_STRIPHELM,
  924. EF_CHAINCOMBO,
  925. EF_RG_COIN,
  926. EF_BACKSTAP,
  927. EF_TEIHIT3,
  928. EF_BOTTOM_DISSONANCE,
  929. EF_BOTTOM_LULLABY,
  930. EF_BOTTOM_RICHMANKIM,
  931. EF_BOTTOM_ETERNALCHAOS,
  932. EF_BOTTOM_DRUMBATTLEFIELD,
  933. EF_BOTTOM_RINGNIBELUNGEN,
  934. EF_BOTTOM_ROKISWEIL,
  935. EF_BOTTOM_INTOABYSS,
  936. EF_BOTTOM_SIEGFRIED,
  937. EF_BOTTOM_WHISTLE,
  938. EF_BOTTOM_ASSASSINCROSS,
  939. EF_BOTTOM_POEMBRAGI,
  940. EF_BOTTOM_APPLEIDUN,
  941. EF_BOTTOM_UGLYDANCE,
  942. EF_BOTTOM_HUMMING,
  943. EF_BOTTOM_DONTFORGETME,
  944. EF_BOTTOM_FORTUNEKISS,
  945. EF_BOTTOM_SERVICEFORYOU,
  946. EF_TALK_FROSTJOKE,
  947. EF_TALK_SCREAM,
  948. EF_POKJUK,
  949. EF_THROWITEM,
  950. EF_THROWITEM2,
  951. EF_CHEMICALPROTECTION,
  952. EF_POKJUK_SOUND,
  953. EF_DEMONSTRATION,
  954. EF_CHEMICAL2,
  955. EF_TELEPORTATION2,
  956. EF_PHARMACY_OK,
  957. EF_PHARMACY_FAIL,
  958. EF_FORESTLIGHT,
  959. EF_THROWITEM3,
  960. EF_FIRSTAID,
  961. EF_SPRINKLESAND,
  962. EF_LOUD,
  963. EF_HEAL,
  964. EF_HEAL2,
  965. EF_EXIT2,
  966. EF_GLASSWALL2,
  967. EF_READYPORTAL2,
  968. EF_PORTAL2,
  969. EF_BOTTOM_MAG,
  970. EF_BOTTOM_SANC,
  971. EF_HEAL3,
  972. EF_WARPZONE2,
  973. EF_FORESTLIGHT2,
  974. EF_FORESTLIGHT3,
  975. EF_FORESTLIGHT4,
  976. EF_HEAL4,
  977. EF_FOOT,
  978. EF_FOOT2,
  979. EF_BEGINASURA,
  980. EF_TRIPLEATTACK,
  981. EF_HITLINE,
  982. EF_HPTIME,
  983. EF_SPTIME,
  984. EF_MAPLE,
  985. EF_BLIND,
  986. EF_POISON,
  987. EF_GUARD,
  988. EF_JOBLVUP50,
  989. EF_ANGEL2,
  990. EF_MAGNUM2,
  991. EF_CALLZONE,
  992. EF_PORTAL3,
  993. EF_COUPLECASTING,
  994. EF_HEARTCASTING,
  995. EF_ENTRY2,
  996. EF_SAINTWING,
  997. EF_SPHEREWIND,
  998. EF_COLORPAPER,
  999. EF_LIGHTSPHERE,
  1000. EF_WATERFALL,
  1001. EF_WATERFALL_90,
  1002. EF_WATERFALL_SMALL,
  1003. EF_WATERFALL_SMALL_90,
  1004. EF_WATERFALL_T2,
  1005. EF_WATERFALL_T2_90,
  1006. EF_WATERFALL_SMALL_T2,
  1007. EF_WATERFALL_SMALL_T2_90,
  1008. EF_MINI_TETRIS,
  1009. EF_GHOST,
  1010. EF_BAT,
  1011. EF_BAT2,
  1012. EF_SOULBREAKER,
  1013. EF_LEVEL99_4,
  1014. EF_VALLENTINE,
  1015. EF_VALLENTINE2,
  1016. EF_PRESSURE,
  1017. EF_BASH3D,
  1018. EF_AURABLADE,
  1019. EF_REDBODY,
  1020. EF_LKCONCENTRATION,
  1021. EF_BOTTOM_GOSPEL,
  1022. EF_ANGEL,
  1023. EF_DEVIL,
  1024. EF_DRAGONSMOKE,
  1025. EF_BOTTOM_BASILICA,
  1026. EF_ASSUMPTIO,
  1027. EF_HITLINE2,
  1028. EF_BASH3D2,
  1029. EF_ENERGYDRAIN2,
  1030. EF_TRANSBLUEBODY,
  1031. EF_MAGICCRASHER,
  1032. EF_LIGHTSPHERE2,
  1033. EF_LIGHTBLADE,
  1034. EF_ENERGYDRAIN3,
  1035. EF_LINELINK2,
  1036. EF_LINKLIGHT,
  1037. EF_TRUESIGHT,
  1038. EF_FALCONASSAULT,
  1039. EF_TRIPLEATTACK2,
  1040. EF_PORTAL4,
  1041. EF_MELTDOWN,
  1042. EF_CARTBOOST,
  1043. EF_REJECTSWORD,
  1044. EF_TRIPLEATTACK3,
  1045. EF_SPHEREWIND2,
  1046. EF_LINELINK3,
  1047. EF_PINKBODY,
  1048. EF_LEVEL99_5,
  1049. EF_LEVEL99_6,
  1050. EF_BASH3D3,
  1051. EF_BASH3D4,
  1052. EF_NAPALMVALCAN,
  1053. EF_PORTAL5,
  1054. EF_MAGICCRASHER2,
  1055. EF_BOTTOM_SPIDER,
  1056. EF_BOTTOM_FOGWALL,
  1057. EF_SOULBURN,
  1058. EF_SOULCHANGE,
  1059. EF_BABY,
  1060. EF_SOULBREAKER2,
  1061. EF_RAINBOW,
  1062. EF_PEONG,
  1063. EF_TANJI2,
  1064. EF_PRESSEDBODY,
  1065. EF_SPINEDBODY,
  1066. EF_KICKEDBODY,
  1067. EF_AIRTEXTURE,
  1068. EF_HITBODY,
  1069. EF_DOUBLEGUMGANG,
  1070. EF_REFLECTBODY,
  1071. EF_BABYBODY,
  1072. EF_BABYBODY2,
  1073. EF_GIANTBODY,
  1074. EF_GIANTBODY2,
  1075. EF_ASURABODY,
  1076. EF_4WAYBODY,
  1077. EF_QUAKEBODY,
  1078. EF_ASURABODY_MONSTER,
  1079. EF_HITLINE3,
  1080. EF_HITLINE4,
  1081. EF_HITLINE5,
  1082. EF_HITLINE6,
  1083. EF_ELECTRIC,
  1084. EF_ELECTRIC2,
  1085. EF_HITLINE7,
  1086. EF_STORMKICK,
  1087. EF_HALFSPHERE,
  1088. EF_ATTACKENERGY,
  1089. EF_ATTACKENERGY2,
  1090. EF_CHEMICAL3,
  1091. EF_ASSUMPTIO2,
  1092. EF_BLUECASTING,
  1093. EF_RUN,
  1094. EF_STOPRUN,
  1095. EF_STOPEFFECT,
  1096. EF_JUMPBODY,
  1097. EF_LANDBODY,
  1098. EF_FOOT3,
  1099. EF_FOOT4,
  1100. EF_TAE_READY,
  1101. EF_GRANDCROSS2,
  1102. EF_SOULSTRIKE2,
  1103. EF_YUFITEL2,
  1104. EF_NPC_STOP,
  1105. EF_DARKCASTING,
  1106. EF_GUMGANGNPC,
  1107. EF_AGIUP,
  1108. EF_JUMPKICK,
  1109. EF_QUAKEBODY2,
  1110. EF_STORMKICK1,
  1111. EF_STORMKICK2,
  1112. EF_STORMKICK3,
  1113. EF_STORMKICK4,
  1114. EF_STORMKICK5,
  1115. EF_STORMKICK6,
  1116. EF_STORMKICK7,
  1117. EF_SPINEDBODY2,
  1118. EF_BEGINASURA1,
  1119. EF_BEGINASURA2,
  1120. EF_BEGINASURA3,
  1121. EF_BEGINASURA4,
  1122. EF_BEGINASURA5,
  1123. EF_BEGINASURA6,
  1124. EF_BEGINASURA7,
  1125. EF_AURABLADE2,
  1126. EF_DEVIL1,
  1127. EF_DEVIL2,
  1128. EF_DEVIL3,
  1129. EF_DEVIL4,
  1130. EF_DEVIL5,
  1131. EF_DEVIL6,
  1132. EF_DEVIL7,
  1133. EF_DEVIL8,
  1134. EF_DEVIL9,
  1135. EF_DEVIL10,
  1136. EF_DOUBLEGUMGANG2,
  1137. EF_DOUBLEGUMGANG3,
  1138. EF_BLACKDEVIL,
  1139. EF_FLOWERCAST,
  1140. EF_FLOWERCAST2,
  1141. EF_FLOWERCAST3,
  1142. EF_MOCHI,
  1143. EF_LAMADAN,
  1144. EF_EDP,
  1145. EF_SHIELDBOOMERANG2,
  1146. EF_RG_COIN2,
  1147. EF_GUARD2,
  1148. EF_SLIM,
  1149. EF_SLIM2,
  1150. EF_SLIM3,
  1151. EF_CHEMICALBODY,
  1152. EF_CASTSPIN,
  1153. EF_PIERCEBODY,
  1154. EF_SOULLINK,
  1155. EF_CHOOKGI2,
  1156. EF_MEMORIZE,
  1157. EF_SOULLIGHT,
  1158. EF_MAPAE,
  1159. EF_ITEMPOKJUK,
  1160. EF_05VAL,
  1161. EF_BEGINASURA11,
  1162. EF_NIGHT,
  1163. EF_CHEMICAL2DASH,
  1164. EF_GROUNDSAMPLE,
  1165. EF_GI_EXPLOSION,
  1166. EF_CLOUD4,
  1167. EF_CLOUD5,
  1168. EF_BOTTOM_HERMODE,
  1169. EF_CARTTER,
  1170. EF_ITEMFAST,
  1171. EF_SHIELDBOOMERANG3,
  1172. EF_DOUBLECASTBODY,
  1173. EF_GRAVITATION,
  1174. EF_TAROTCARD1,
  1175. EF_TAROTCARD2,
  1176. EF_TAROTCARD3,
  1177. EF_TAROTCARD4,
  1178. EF_TAROTCARD5,
  1179. EF_TAROTCARD6,
  1180. EF_TAROTCARD7,
  1181. EF_TAROTCARD8,
  1182. EF_TAROTCARD9,
  1183. EF_TAROTCARD10,
  1184. EF_TAROTCARD11,
  1185. EF_TAROTCARD12,
  1186. EF_TAROTCARD13,
  1187. EF_TAROTCARD14,
  1188. EF_ACIDDEMON,
  1189. EF_GREENBODY,
  1190. EF_THROWITEM4,
  1191. EF_BABYBODY_BACK,
  1192. EF_THROWITEM5,
  1193. EF_BLUEBODY,
  1194. EF_HATED,
  1195. EF_REDLIGHTBODY,
  1196. EF_RO2YEAR,
  1197. EF_SMA_READY,
  1198. EF_STIN,
  1199. EF_RED_HIT,
  1200. EF_BLUE_HIT,
  1201. EF_QUAKEBODY3,
  1202. EF_SMA,
  1203. EF_SMA2,
  1204. EF_STIN2,
  1205. EF_HITTEXTURE,
  1206. EF_STIN3,
  1207. EF_SMA3,
  1208. EF_BLUEFALL,
  1209. EF_BLUEFALL_90,
  1210. EF_FASTBLUEFALL,
  1211. EF_FASTBLUEFALL_90,
  1212. EF_BIG_PORTAL,
  1213. EF_BIG_PORTAL2,
  1214. EF_SCREEN_QUAKE,
  1215. EF_HOMUNCASTING,
  1216. EF_HFLIMOON1,
  1217. EF_HFLIMOON2,
  1218. EF_HFLIMOON3,
  1219. EF_HO_UP,
  1220. EF_HAMIDEFENCE,
  1221. EF_HAMICASTLE,
  1222. EF_HAMIBLOOD,
  1223. EF_HATED2,
  1224. EF_TWILIGHT1,
  1225. EF_TWILIGHT2,
  1226. EF_TWILIGHT3,
  1227. EF_ITEM_THUNDER,
  1228. EF_ITEM_CLOUD,
  1229. EF_ITEM_CURSE,
  1230. EF_ITEM_ZZZ,
  1231. EF_ITEM_RAIN,
  1232. EF_ITEM_LIGHT,
  1233. EF_ANGEL3,
  1234. EF_M01,
  1235. EF_M02,
  1236. EF_M03,
  1237. EF_M04,
  1238. EF_M05,
  1239. EF_M06,
  1240. EF_M07,
  1241. EF_KAIZEL,
  1242. EF_KAAHI,
  1243. EF_CLOUD6,
  1244. EF_FOOD01,
  1245. EF_FOOD02,
  1246. EF_FOOD03,
  1247. EF_FOOD04,
  1248. EF_FOOD05,
  1249. EF_FOOD06,
  1250. EF_SHRINK,
  1251. EF_THROWITEM6,
  1252. EF_SIGHT2,
  1253. EF_QUAKEBODY4,
  1254. EF_FIREHIT2,
  1255. EF_NPC_STOP2,
  1256. EF_NPC_STOP2_DEL,
  1257. EF_FVOICE,
  1258. EF_WINK,
  1259. EF_COOKING_OK,
  1260. EF_COOKING_FAIL,
  1261. EF_TEMP_OK,
  1262. EF_TEMP_FAIL,
  1263. EF_HAPGYEOK,
  1264. EF_THROWITEM7,
  1265. EF_THROWITEM8,
  1266. EF_THROWITEM9,
  1267. EF_THROWITEM10,
  1268. EF_BUNSINJYUTSU,
  1269. EF_KOUENKA,
  1270. EF_HYOUSENSOU,
  1271. EF_BOTTOM_SUITON,
  1272. EF_STIN4,
  1273. EF_THUNDERSTORM2,
  1274. EF_CHEMICAL4,
  1275. EF_STIN5,
  1276. EF_MADNESS_BLUE,
  1277. EF_MADNESS_RED,
  1278. EF_RG_COIN3,
  1279. EF_BASH3D5,
  1280. EF_CHOOKGI3,
  1281. EF_KIRIKAGE,
  1282. EF_TATAMI,
  1283. EF_KASUMIKIRI,
  1284. EF_ISSEN,
  1285. EF_KAEN,
  1286. EF_BAKU,
  1287. EF_HYOUSYOURAKU,
  1288. EF_DESPERADO,
  1289. EF_LIGHTNING_S,
  1290. EF_BLIND_S,
  1291. EF_POISON_S,
  1292. EF_FREEZING_S,
  1293. EF_FLARE_S,
  1294. EF_RAPIDSHOWER,
  1295. EF_MAGICALBULLET,
  1296. EF_SPREADATTACK,
  1297. EF_TRACKCASTING,
  1298. EF_TRACKING,
  1299. EF_TRIPLEACTION,
  1300. EF_BULLSEYE,
  1301. EF_MAP_MAGICZONE,
  1302. EF_MAP_MAGICZONE2,
  1303. EF_DAMAGE1,
  1304. EF_DAMAGE1_2,
  1305. EF_DAMAGE1_3,
  1306. EF_UNDEADBODY,
  1307. EF_UNDEADBODY_DEL,
  1308. EF_GREEN_NUMBER,
  1309. EF_BLUE_NUMBER,
  1310. EF_RED_NUMBER,
  1311. EF_PURPLE_NUMBER,
  1312. EF_BLACK_NUMBER,
  1313. EF_WHITE_NUMBER,
  1314. EF_YELLOW_NUMBER,
  1315. EF_PINK_NUMBER,
  1316. EF_BUBBLE_DROP,
  1317. EF_NPC_EARTHQUAKE,
  1318. EF_DA_SPACE,
  1319. EF_DRAGONFEAR,
  1320. EF_BLEEDING,
  1321. EF_WIDECONFUSE,
  1322. EF_BOTTOM_RUNNER,
  1323. EF_BOTTOM_TRANSFER,
  1324. EF_CRYSTAL_BLUE,
  1325. EF_BOTTOM_EVILLAND,
  1326. EF_GUARD3,
  1327. EF_NPC_SLOWCAST,
  1328. EF_CRITICALWOUND,
  1329. EF_GREEN99_3,
  1330. EF_GREEN99_5,
  1331. EF_GREEN99_6,
  1332. EF_MAPSPHERE,
  1333. EF_POK_LOVE,
  1334. EF_POK_WHITE,
  1335. EF_POK_VALEN,
  1336. EF_POK_BIRTH,
  1337. EF_POK_CHRISTMAS,
  1338. EF_MAP_MAGICZONE3,
  1339. EF_MAP_MAGICZONE4,
  1340. EF_DUST,
  1341. EF_TORCH_RED,
  1342. EF_TORCH_GREEN,
  1343. EF_MAP_GHOST,
  1344. EF_GLOW1,
  1345. EF_GLOW2,
  1346. EF_GLOW4,
  1347. EF_TORCH_PURPLE,
  1348. EF_CLOUD7,
  1349. EF_CLOUD8,
  1350. EF_FLOWERLEAF,
  1351. EF_MAPSPHERE2,
  1352. EF_GLOW11,
  1353. EF_GLOW12,
  1354. EF_CIRCLELIGHT,
  1355. EF_ITEM315,
  1356. EF_ITEM316,
  1357. EF_ITEM317,
  1358. EF_ITEM318,
  1359. EF_STORM_MIN,
  1360. EF_POK_JAP,
  1361. EF_MAP_GREENLIGHT,
  1362. EF_MAP_MAGICWALL,
  1363. EF_MAP_GREENLIGHT2,
  1364. EF_YELLOWFLY1,
  1365. EF_YELLOWFLY2,
  1366. EF_BOTTOM_BLUE,
  1367. EF_BOTTOM_BLUE2,
  1368. EF_WEWISH,
  1369. EF_FIREPILLARON2,
  1370. EF_FORESTLIGHT5,
  1371. EF_SOULBREAKER3,
  1372. EF_ADO_STR,
  1373. EF_IGN_STR,
  1374. EF_CHIMTO2,
  1375. EF_WINDCUTTER,
  1376. EF_DETECT2,
  1377. EF_FROSTMYSTY,
  1378. EF_CRIMSON_STR,
  1379. EF_HELL_STR,
  1380. EF_SPR_MASH,
  1381. EF_SPR_SOULE,
  1382. EF_DHOWL_STR,
  1383. EF_EARTHWALL,
  1384. EF_SOULBREAKER4,
  1385. EF_CHAINL_STR,
  1386. EF_CHOOKGI_FIRE,
  1387. EF_CHOOKGI_WIND,
  1388. EF_CHOOKGI_WATER,
  1389. EF_CHOOKGI_GROUND,
  1390. EF_MAGENTA_TRAP,
  1391. EF_COBALT_TRAP,
  1392. EF_MAIZE_TRAP,
  1393. EF_VERDURE_TRAP,
  1394. EF_NORMAL_TRAP,
  1395. EF_CLOAKING2,
  1396. EF_AIMED_STR,
  1397. EF_ARROWSTORM_STR,
  1398. EF_LAULAMUS_STR,
  1399. EF_LAUAGNUS_STR,
  1400. EF_MILSHIELD_STR,
  1401. EF_CONCENTRATION2,
  1402. EF_FIREBALL2,
  1403. EF_BUNSINJYUTSU2,
  1404. EF_CLEARTIME,
  1405. EF_GLASSWALL3,
  1406. EF_ORATIO,
  1407. EF_POTION_BERSERK2,
  1408. EF_CIRCLEPOWER,
  1409. EF_ROLLING1,
  1410. EF_ROLLING2,
  1411. EF_ROLLING3,
  1412. EF_ROLLING4,
  1413. EF_ROLLING5,
  1414. EF_ROLLING6,
  1415. EF_ROLLING7,
  1416. EF_ROLLING8,
  1417. EF_ROLLING9,
  1418. EF_ROLLING10,
  1419. EF_PURPLEBODY,
  1420. EF_STIN6,
  1421. EF_RG_COIN4,
  1422. EF_POISONWAV,
  1423. EF_POISONSMOKE,
  1424. EF_GUMGANG4,
  1425. EF_SHIELDBOOMERANG4,
  1426. EF_CASTSPIN2,
  1427. EF_VULCANWAV,
  1428. EF_AGIUP2,
  1429. EF_DETECT3,
  1430. EF_AGIUP3,
  1431. EF_DETECT4,
  1432. EF_ELECTRIC3,
  1433. EF_GUARD4,
  1434. EF_BOTTOM_BARRIER,
  1435. EF_BOTTOM_STEALTH,
  1436. EF_REPAIRTIME,
  1437. EF_NC_ANAL,
  1438. EF_FIRETHROW,
  1439. EF_VENOMIMPRESS,
  1440. EF_FROSTMISTY,
  1441. EF_BURNING,
  1442. EF_COLDTHROW,
  1443. EF_MAKEHALLU,
  1444. EF_HALLUTIME,
  1445. EF_INFRAREDSCAN,
  1446. EF_CRASHAXE,
  1447. EF_GTHUNDER,
  1448. EF_STONERING,
  1449. EF_INTIMIDATE2,
  1450. EF_STASIS,
  1451. EF_REDLINE,
  1452. EF_FROSTDIVER3,
  1453. EF_BOTTOM_BASILICA2,
  1454. EF_RECOGNIZED,
  1455. EF_TETRA,
  1456. EF_TETRACASTING,
  1457. EF_FIREBALL3,
  1458. EF_INTIMIDATE3,
  1459. EF_RECOGNIZED2,
  1460. EF_CLOAKING3,
  1461. EF_INTIMIDATE4,
  1462. EF_STRETCH,
  1463. EF_BLACKBODY,
  1464. EF_ENERVATION,
  1465. EF_ENERVATION2,
  1466. EF_ENERVATION3,
  1467. EF_ENERVATION4,
  1468. EF_ENERVATION5,
  1469. EF_ENERVATION6,
  1470. EF_LINELINK4,
  1471. EF_RG_COIN5,
  1472. EF_WATERFALL_ANI,
  1473. EF_BOTTOM_MANHOLE,
  1474. EF_MANHOLE,
  1475. EF_MAKEFEINT,
  1476. EF_FORESTLIGHT6,
  1477. EF_DARKCASTING2,
  1478. EF_BOTTOM_ANI,
  1479. EF_BOTTOM_MAELSTROM,
  1480. EF_BOTTOM_BLOODYLUST,
  1481. EF_BEGINSPELL_N1,
  1482. EF_BEGINSPELL_N2,
  1483. EF_HEAL_N,
  1484. EF_CHOOKGI_N,
  1485. EF_JOBLVUP50_2,
  1486. EF_CHEMICAL2DASH2,
  1487. EF_CHEMICAL2DASH3,
  1488. EF_ROLLINGCAST,
  1489. EF_WATER_BELOW,
  1490. EF_WATER_FADE,
  1491. EF_BEGINSPELL_N3,
  1492. EF_BEGINSPELL_N4,
  1493. EF_BEGINSPELL_N5,
  1494. EF_BEGINSPELL_N6,
  1495. EF_BEGINSPELL_N7,
  1496. EF_BEGINSPELL_N8,
  1497. EF_WATER_SMOKE,
  1498. EF_DANCE1,
  1499. EF_DANCE2,
  1500. EF_LINKPARTICLE,
  1501. EF_SOULLIGHT2,
  1502. EF_SPR_PARTICLE,
  1503. EF_SPR_PARTICLE2,
  1504. EF_SPR_PLANT,
  1505. EF_CHEMICAL_V,
  1506. EF_SHOOTPARTICLE,
  1507. EF_BOT_REVERB,
  1508. EF_RAIN_PARTICLE,
  1509. EF_CHEMICAL_V2,
  1510. EF_SECRA,
  1511. EF_BOT_REVERB2,
  1512. EF_CIRCLEPOWER2,
  1513. EF_SECRA2,
  1514. EF_CHEMICAL_V3,
  1515. EF_ENERVATION7,
  1516. EF_CIRCLEPOWER3,
  1517. EF_SPR_PLANT2,
  1518. EF_CIRCLEPOWER4,
  1519. EF_SPR_PLANT3,
  1520. EF_RG_COIN6,
  1521. EF_SPR_PLANT4,
  1522. EF_CIRCLEPOWER5,
  1523. EF_SPR_PLANT5,
  1524. EF_CIRCLEPOWER6,
  1525. EF_SPR_PLANT6,
  1526. EF_CIRCLEPOWER7,
  1527. EF_SPR_PLANT7,
  1528. EF_CIRCLEPOWER8,
  1529. EF_SPR_PLANT8,
  1530. EF_HEARTASURA,
  1531. EF_BEGINSPELL_150,
  1532. EF_LEVEL99_150,
  1533. EF_PRIMECHARGE,
  1534. EF_GLASSWALL4,
  1535. EF_GRADIUS_LASER,
  1536. EF_BASH3D6,
  1537. EF_GUMGANG5,
  1538. EF_HITLINE8,
  1539. EF_ELECTRIC4,
  1540. EF_TEIHIT1T,
  1541. EF_SPINMOVE,
  1542. EF_FIREBALL4,
  1543. EF_TRIPLEATTACK4,
  1544. EF_CHEMICAL3S,
  1545. EF_GROUNDSHAKE,
  1546. EF_DQ9_CHARGE,
  1547. EF_DQ9_CHARGE2,
  1548. EF_DQ9_CHARGE3,
  1549. EF_DQ9_CHARGE4,
  1550. EF_BLUELINE,
  1551. EF_SELFSCROLL,
  1552. EF_SPR_LIGHTPRINT,
  1553. EF_PNG_TEST,
  1554. EF_BEGINSPELL_YB,
  1555. EF_CHEMICAL2DASH4,
  1556. EF_GROUNDSHAKE2,
  1557. EF_PRESSURE2,
  1558. EF_RG_COIN7,
  1559. EF_PRIMECHARGE2,
  1560. EF_PRIMECHARGE3,
  1561. EF_PRIMECHARGE4,
  1562. EF_GREENCASTING,
  1563. EF_WALLOFTHORN,
  1564. EF_FIREBALL5,
  1565. EF_THROWITEM11,
  1566. EF_SPR_PLANT9,
  1567. EF_DEMONICFIRE,
  1568. EF_DEMONICFIRE2,
  1569. EF_DEMONICFIRE3,
  1570. EF_HELLSPLANT,
  1571. EF_FIREWALL2,
  1572. EF_VACUUM,
  1573. EF_SPR_PLANT10,
  1574. EF_SPR_LIGHTPRINT2,
  1575. EF_POISONSMOKE2,
  1576. EF_MAKEHALLU2,
  1577. EF_SHOCKWAVE2,
  1578. EF_SPR_PLANT11,
  1579. EF_COLDTHROW2,
  1580. EF_DEMONICFIRE4,
  1581. EF_PRESSURE3,
  1582. EF_LINKPARTICLE2,
  1583. EF_SOULLIGHT3,
  1584. EF_CHAREFFECT,
  1585. EF_GUMGANG6,
  1586. EF_FIREBALL6,
  1587. EF_GUMGANG7,
  1588. EF_GUMGANG8,
  1589. EF_GUMGANG9,
  1590. EF_BOTTOM_DE2,
  1591. EF_COLDSTATUS,
  1592. EF_SPR_LIGHTPRINT3,
  1593. EF_WATERBALL3,
  1594. EF_HEAL_N2,
  1595. EF_RAIN_PARTICLE2,
  1596. EF_CLOUD9,
  1597. EF_YELLOWFLY3,
  1598. EF_EL_GUST,
  1599. EF_EL_BLAST,
  1600. EF_EL_AQUAPLAY,
  1601. EF_EL_UPHEAVAL,
  1602. EF_EL_WILD_STORM,
  1603. EF_EL_CHILLY_AIR,
  1604. EF_EL_CURSED_SOIL,
  1605. EF_EL_COOLER,
  1606. EF_EL_TROPIC,
  1607. EF_EL_PYROTECHNIC,
  1608. EF_EL_PETROLOGY,
  1609. EF_EL_HEATER,
  1610. EF_POISON_MIST,
  1611. EF_ERASER_CUTTER,
  1612. EF_SILENT_BREEZE,
  1613. EF_MAGMA_FLOW,
  1614. EF_GRAYBODY,
  1615. EF_LAVA_SLIDE,
  1616. EF_SONIC_CLAW,
  1617. EF_TINDER_BREAKER,
  1618. EF_MIDNIGHT_FRENZY,
  1619. EF_MACRO,
  1620. EF_CHEMICAL_ALLRANGE,
  1621. EF_TETRA_FIRE,
  1622. EF_TETRA_WATER,
  1623. EF_TETRA_WIND,
  1624. EF_TETRA_GROUND,
  1625. EF_EMITTER,
  1626. EF_VOLCANIC_ASH,
  1627. EF_LEVEL99_ORB1,
  1628. EF_LEVEL99_ORB2,
  1629. EF_LEVEL150,
  1630. EF_LEVEL150_SUB,
  1631. EF_THROWITEM4_1,
  1632. EF_THROW_HAPPOKUNAI,
  1633. EF_THROW_MULTIPLE_COIN,
  1634. EF_THROW_BAKURETSU,
  1635. EF_ROTATE_HUUMARANKA,
  1636. EF_ROTATE_BG,
  1637. EF_ROTATE_LINE_GRAY,
  1638. EF_2011RWC,
  1639. EF_2011RWC2,
  1640. EF_KAIHOU,
  1641. EF_GROUND_EXPLOSION,
  1642. EF_KG_KAGEHUMI,
  1643. EF_KO_ZENKAI_WATER,
  1644. EF_KO_ZENKAI_LAND,
  1645. EF_KO_ZENKAI_FIRE,
  1646. EF_KO_ZENKAI_WIND,
  1647. EF_KO_JYUMONJIKIRI,
  1648. EF_KO_SETSUDAN,
  1649. EF_RED_CROSS,
  1650. EF_KO_IZAYOI,
  1651. EF_ROTATE_LINE_BLUE,
  1652. EF_KG_KYOMU,
  1653. EF_KO_HUUMARANKA,
  1654. EF_BLUELIGHTBODY,
  1655. EF_KAGEMUSYA,
  1656. EF_OB_GENSOU,
  1657. EF_NO100_FIRECRACKER,
  1658. EF_KO_MAKIBISHI,
  1659. EF_KAIHOU1,
  1660. EF_AKAITSUKI,
  1661. EF_ZANGETSU,
  1662. EF_GENSOU,
  1663. EF_HAT_EFFECT,
  1664. EF_CHERRYBLOSSOM,
  1665. EF_EVENT_CLOUD,
  1666. EF_RUN_MAKE_OK,
  1667. EF_RUN_MAKE_FAILURE,
  1668. EF_MIRESULT_MAKE_OK,
  1669. EF_MIRESULT_MAKE_FAIL,
  1670. EF_ALL_RAY_OF_PROTECTION,
  1671. EF_VENOMFOG,
  1672. EF_DUSTSTORM,
  1673. EF_LEVEL160,
  1674. EF_LEVEL160_SUB,
  1675. EF_MAPCHAIN,
  1676. EF_MAGIC_FLOOR,
  1677. EF_ICEMINE,
  1678. EF_FLAMECORSS,
  1679. EF_ICEMINE_1,
  1680. EF_DANCE_BLADE_ATK,
  1681. EF_DARKPIERCING,
  1682. EF_INVINCIBLEOFF2,
  1683. EF_MAXPAIN,
  1684. EF_DEATHSUMMON,
  1685. EF_MOONSTAR,
  1686. EF_STRANGELIGHTS,
  1687. EF_SUPER_STAR,
  1688. EF_YELLOBODY,
  1689. EF_COLORPAPER2,
  1690. EF_EVILS_PAW,
  1691. EF_GC_DARKCROW,
  1692. EF_RK_DRAGONBREATH_WATER,
  1693. EF_ALL_FULL_THROTTLE,
  1694. EF_SR_FLASHCOMBO,
  1695. EF_RK_LUXANIMA,
  1696. EF_CLOUD10,
  1697. EF_SO_ELEMENTAL_SHIELD,
  1698. EF_AB_OFFERTORIUM,
  1699. EF_WL_TELEKINESIS_INTENSE,
  1700. EF_GN_ILLUSIONDOPING,
  1701. EF_NC_MAGMA_ERUPTION,
  1702. EF_LG_KINGS_GRACE,
  1703. EF_BLOODDRAIN2,
  1704. EF_NPC_WIDEWEB,
  1705. EF_NPC_BURNT,
  1706. EF_NPC_CHILL,
  1707. EF_RA_UNLIMIT,
  1708. EF_AB_OFFERTORIUM_RING,
  1709. EF_SC_ESCAPE,
  1710. EF_WM_FRIGG_SONG,
  1711. EF_FLICKER,
  1712. EF_C_MAKER,
  1713. EF_HAMMER_OF_GOD,
  1714. EF_MASS_SPIRAL,
  1715. EF_FIRE_RAIN,
  1716. EF_WHITEBODY,
  1717. EF_BANISHING_BUSTER,
  1718. EF_SLUGSHOT,
  1719. EF_D_TAIL,
  1720. EF_BIND_TRAP1,
  1721. EF_BIND_TRAP2,
  1722. EF_BIND_TRAP3,
  1723. EF_JUMPBODY1,
  1724. EF_ANIMATED_EMITTER,
  1725. EF_RL_EXPLOSION,
  1726. EF_C_MAKER_1,
  1727. EF_QD_SHOT,
  1728. EF_P_ALTER,
  1729. EF_S_STORM,
  1730. EF_MUSIC_HAT,
  1731. EF_CLOUD_KILL,
  1732. EF_ESCAPE,
  1733. EF_XENO_SLASHER,
  1734. EF_FLOWERSMOKE,
  1735. EF_FSTONE,
  1736. EF_QSCARABA,
  1737. EF_LJOSALFAR,
  1738. EF_HAPPINESSSTAR,
  1739. EF_POWER_OF_GAIA,
  1740. EF_MAPLE_FALLS,
  1741. EF_MARKING_USE_CHANGEMONSTER,
  1742. EF_MAGICAL_FEATHER,
  1743. EF_MERMAID_LONGING,
  1744. EF_GIFT_OF_SNOW,
  1745. EF_ACH_COMPLETE,
  1746. EF_TIME_ACCESSORY,
  1747. EF_SPRITEMABLE,
  1748. EF_TUNAPARTY,
  1749. EF_MAX
  1750. };
  1751. enum e_hat_effects {
  1752. HAT_EF_MIN = 0,
  1753. HAT_EF_BLOSSOM_FLUTTERING,
  1754. HAT_EF_MERMAID_LONGING,
  1755. HAT_EF_RL_BANISHING_BUSTER,
  1756. HAT_EF_LJOSALFAR,
  1757. HAT_EF_CLOCKING,
  1758. HAT_EF_SNOW,
  1759. HAT_EF_MAKEBLUR,
  1760. HAT_EF_SLEEPATTACK,
  1761. HAT_EF_GUMGANG,
  1762. HAT_EF_TALK_FROSTJOKE,
  1763. HAT_EF_DEMONSTRATION,
  1764. HAT_EF_FLUTTER_BUTTERFLY,
  1765. HAT_EF_ANGEL_FLUTTERING,
  1766. HAT_EF_BLESSING_OF_ANGELS,
  1767. HAT_EF_ELECTRIC,
  1768. HAT_EF_GREEN_FLOOR,
  1769. HAT_EF_SHRINK,
  1770. HAT_EF_VALHALLA_IDOL,
  1771. HAT_EF_ANGEL_STAIRS,
  1772. HAT_EF_GLOW_OF_NEW_YEAR,
  1773. HAT_EF_BOTTOM_FORTUNEKISS,
  1774. HAT_EF_PINKBODY,
  1775. HAT_EF_DOUBLEGUMGANG,
  1776. HAT_EF_GIANTBODY,
  1777. HAT_EF_GREEN99_6,
  1778. HAT_EF_CIRCLEPOWER,
  1779. HAT_EF_BOTTOM_BLOODYLUST,
  1780. HAT_EF_WATER_BELOW,
  1781. HAT_EF_LEVEL99_150,
  1782. HAT_EF_YELLOWFLY3,
  1783. HAT_EF_KAGEMUSYA,
  1784. HAT_EF_CHERRYBLOSSOM,
  1785. HAT_EF_STRANGELIGHTS,
  1786. HAT_EF_WL_TELEKINESIS_INTENSE,
  1787. HAT_EF_AB_OFFERTORIUM_RING,
  1788. HAT_EF_WHITEBODY2,
  1789. HAT_EF_SAKURA,
  1790. HAT_EF_CLOUD2,
  1791. HAT_EF_FEATHER_FLUTTERING,
  1792. HAT_EF_CAMELLIA_HAIR_PIN,
  1793. HAT_EF_JP_EV_EFFECT01,
  1794. HAT_EF_JP_EV_EFFECT02,
  1795. HAT_EF_JP_EV_EFFECT03,
  1796. HAT_EF_FLORAL_WALTZ,
  1797. HAT_EF_MAGICAL_FEATHER,
  1798. HAT_EF_HAT_EFFECT,
  1799. HAT_EF_BAKURETSU_HADOU,
  1800. HAT_EF_GOLD_SHOWER,
  1801. HAT_EF_WHITEBODY,
  1802. HAT_EF_WATER_BELOW2,
  1803. HAT_EF_FIREWORK,
  1804. HAT_EF_RETURN_TW_1ST_HAT,
  1805. HAT_EF_C_FLUTTERBUTTERFLY_BL,
  1806. HAT_EF_QSCARABA,
  1807. HAT_EF_FSTONE,
  1808. HAT_EF_MAGICCIRCLE,
  1809. HAT_EF_GODCLASS,
  1810. HAT_EF_GODCLASS2,
  1811. HAT_EF_LEVEL99_RED,
  1812. HAT_EF_LEVEL99_ULTRAMARINE,
  1813. HAT_EF_LEVEL99_CYAN,
  1814. HAT_EF_LEVEL99_LIME,
  1815. HAT_EF_LEVEL99_VIOLET,
  1816. HAT_EF_LEVEL99_LILAC,
  1817. HAT_EF_LEVEL99_SUN_ORANGE,
  1818. HAT_EF_LEVEL99_DEEP_PINK,
  1819. HAT_EF_LEVEL99_BLACK,
  1820. HAT_EF_LEVEL99_WHITE,
  1821. HAT_EF_LEVEL160_RED,
  1822. HAT_EF_LEVEL160_ULTRAMARINE,
  1823. HAT_EF_LEVEL160_CYAN,
  1824. HAT_EF_LEVEL160_LIME,
  1825. HAT_EF_LEVEL160_VIOLET,
  1826. HAT_EF_LEVEL160_LILAC,
  1827. HAT_EF_LEVEL160_SUN_ORANGE,
  1828. HAT_EF_LEVEL160_DEEP_PINK,
  1829. HAT_EF_LEVEL160_BLACK,
  1830. HAT_EF_LEVEL160_WHITE,
  1831. HAT_EF_FULL_BLOOMCHERRY_TREE,
  1832. HAT_EF_C_BLESSINGS_OF_SOUL,
  1833. HAT_EF_MANYSTARS,
  1834. HAT_EF_SUBJECT_AURA_GOLD,
  1835. HAT_EF_SUBJECT_AURA_WHITE,
  1836. HAT_EF_SUBJECT_AURA_RED,
  1837. HAT_EF_C_SHINING_ANGEL_WING,
  1838. HAT_EF_MAX
  1839. };
  1840. /**
  1841. * Player blocking actions related flags.
  1842. */
  1843. enum e_pcblock_action_flag : uint16 {
  1844. PCBLOCK_MOVE = 0x001,
  1845. PCBLOCK_ATTACK = 0x002,
  1846. PCBLOCK_SKILL = 0x004,
  1847. PCBLOCK_USEITEM = 0x008,
  1848. PCBLOCK_CHAT = 0x010,
  1849. PCBLOCK_IMMUNE = 0x020,
  1850. PCBLOCK_SITSTAND = 0x040,
  1851. PCBLOCK_COMMANDS = 0x080,
  1852. PCBLOCK_NPCCLICK = 0x100,
  1853. PCBLOCK_NPC = 0x18D,
  1854. PCBLOCK_EMOTION = 0x200,
  1855. PCBLOCK_ALL = 0x3FF,
  1856. };
  1857. /**
  1858. * used to generate quick script_array entries
  1859. **/
  1860. extern struct eri *array_ers;
  1861. extern DBMap *st_db;
  1862. extern unsigned int active_scripts;
  1863. extern unsigned int next_id;
  1864. extern struct eri *st_ers;
  1865. extern struct eri *stack_ers;
  1866. const char* skip_space(const char* p);
  1867. void script_error(const char* src, const char* file, int start_line, const char* error_msg, const char* error_pos);
  1868. void script_warning(const char* src, const char* file, int start_line, const char* error_msg, const char* error_pos);
  1869. bool is_number(const char *p);
  1870. struct script_code* parse_script(const char* src,const char* file,int line,int options);
  1871. void run_script(struct script_code *rootscript,int pos,int rid,int oid);
  1872. int set_reg(struct script_state* st, struct map_session_data* sd, int64 num, const char* name, const void* value, struct reg_db *ref);
  1873. int set_var(struct map_session_data *sd, char *name, void *val);
  1874. int conv_num(struct script_state *st,struct script_data *data);
  1875. const char* conv_str(struct script_state *st,struct script_data *data);
  1876. void pop_stack(struct script_state* st, int start, int end);
  1877. TIMER_FUNC(run_script_timer);
  1878. void script_stop_sleeptimers(int id);
  1879. struct linkdb_node *script_erase_sleepdb(struct linkdb_node *n);
  1880. void script_attach_state(struct script_state* st);
  1881. void script_detach_rid(struct script_state* st);
  1882. void run_script_main(struct script_state *st);
  1883. void script_stop_scriptinstances(struct script_code *code);
  1884. void script_free_code(struct script_code* code);
  1885. void script_free_vars(struct DBMap *storage);
  1886. struct script_state* script_alloc_state(struct script_code* rootscript, int pos, int rid, int oid);
  1887. void script_free_state(struct script_state* st);
  1888. struct DBMap* script_get_label_db(void);
  1889. struct DBMap* script_get_userfunc_db(void);
  1890. void script_run_autobonus(const char *autobonus, struct map_session_data *sd, unsigned int pos);
  1891. const char* script_get_constant_str(const char* prefix, int64 value);
  1892. bool script_get_parameter(const char* name, int* value);
  1893. bool script_get_constant(const char* name, int* value);
  1894. void script_set_constant_(const char* name, int value, const char* constant_name, bool isparameter, bool deprecated);
  1895. #define script_set_constant(name, value, isparameter, deprecated) script_set_constant_(name, value, NULL, isparameter, deprecated)
  1896. void script_hardcoded_constants(void);
  1897. void script_cleararray_pc(struct map_session_data* sd, const char* varname, void* value);
  1898. void script_setarray_pc(struct map_session_data* sd, const char* varname, uint32 idx, void* value, int* refcache);
  1899. int script_config_read(const char *cfgName);
  1900. void do_init_script(void);
  1901. void do_final_script(void);
  1902. int add_str(const char* p);
  1903. const char* get_str(int id);
  1904. void script_reload(void);
  1905. // @commands (script based)
  1906. void setd_sub(struct script_state *st, struct map_session_data *sd, const char *varname, int elem, void *value, struct reg_db *ref);
  1907. /**
  1908. * Array Handling
  1909. **/
  1910. struct reg_db *script_array_src(struct script_state *st, struct map_session_data *sd, const char *name, struct reg_db *ref);
  1911. void script_array_update(struct reg_db *src, int64 num, bool empty);
  1912. void script_array_delete(struct reg_db *src, struct script_array *sa);
  1913. void script_array_remove_member(struct reg_db *src, struct script_array *sa, unsigned int idx);
  1914. void script_array_add_member(struct script_array *sa, unsigned int idx);
  1915. unsigned int script_array_size(struct script_state *st, struct map_session_data *sd, const char *name, struct reg_db *ref);
  1916. unsigned int script_array_highest_key(struct script_state *st, struct map_session_data *sd, const char *name, struct reg_db *ref);
  1917. void script_array_ensure_zero(struct script_state *st, struct map_session_data *sd, int64 uid, struct reg_db *ref);
  1918. int script_free_array_db(DBKey key, DBData *data, va_list ap);
  1919. /* */
  1920. void script_reg_destroy_single(struct map_session_data *sd, int64 reg, struct script_reg_state *data);
  1921. int script_reg_destroy(DBKey key, DBData *data, va_list ap);
  1922. /* */
  1923. void script_generic_ui_array_expand(unsigned int plus);
  1924. unsigned int *script_array_cpy_list(struct script_array *sa);
  1925. bool script_check_RegistryVariableLength(int pType, const char *val, size_t* vlen);
  1926. #endif /* SCRIPT_HPP */