npc.hpp 32 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570
  1. // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
  2. // For more information, see LICENCE in the main folder
  3. #ifndef NPC_HPP
  4. #define NPC_HPP
  5. #include <map>
  6. #include <vector>
  7. #include "../common/database.hpp"
  8. #include "../common/timer.hpp"
  9. #include "clif.hpp" //
  10. #include "map.hpp" // struct block_list
  11. #include "status.hpp" // struct status_change
  12. #include "unit.hpp" // struct unit_data
  13. struct block_list;
  14. struct npc_data;
  15. struct view_data;
  16. struct npc_timerevent_list {
  17. int timer,pos;
  18. };
  19. struct npc_label_list {
  20. char name[NAME_LENGTH+1];
  21. int pos;
  22. };
  23. /// Item list for NPC sell/buy list
  24. struct npc_item_list {
  25. t_itemid nameid;
  26. unsigned int value;
  27. #if PACKETVER >= 20131223
  28. unsigned short qty; ///< Stock counter (Market shop)
  29. uint8 flag; ///< 1: Item added by npcshopitem/npcshopadditem, force load! (Market shop)
  30. #endif
  31. };
  32. #if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
  33. #pragma pack(push, 1)
  34. #endif // not NetBSD < 6 / Solaris
  35. /// List of bought/sold item for NPC shops
  36. struct s_npc_buy_list {
  37. unsigned short qty; ///< Amount of item will be bought
  38. #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
  39. uint32 nameid; ///< ID of item will be bought
  40. #else
  41. uint16 nameid; ///< ID of item will be bought
  42. #endif
  43. } __attribute__((packed));
  44. #if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
  45. #pragma pack(pop)
  46. #endif // not NetBSD < 6 / Solaris
  47. struct s_stylist_costs{
  48. uint32 price;
  49. t_itemid requiredItem;
  50. t_itemid requiredItemBox;
  51. };
  52. struct s_stylist_entry{
  53. uint16 look;
  54. int16 index;
  55. uint32 value;
  56. std::shared_ptr<s_stylist_costs> human;
  57. std::shared_ptr<s_stylist_costs> doram;
  58. };
  59. struct s_stylist_list{
  60. uint16 look;
  61. std::unordered_map<int16, std::shared_ptr<s_stylist_entry>> entries;
  62. };
  63. class StylistDatabase : public TypesafeYamlDatabase<uint32, s_stylist_list>{
  64. private:
  65. bool parseCostNode( std::shared_ptr<s_stylist_entry> entry, bool doram, const YAML::Node& node );
  66. public:
  67. StylistDatabase() : TypesafeYamlDatabase( "STYLIST_DB", 1 ){
  68. }
  69. const std::string getDefaultLocation() override;
  70. uint64 parseBodyNode( const YAML::Node& node ) override;
  71. };
  72. extern StylistDatabase stylist_db;
  73. struct s_npc_barter_requirement{
  74. uint16 index;
  75. t_itemid nameid;
  76. uint16 amount;
  77. int8 refine;
  78. };
  79. struct s_npc_barter_item{
  80. uint16 index;
  81. t_itemid nameid;
  82. bool stockLimited;
  83. uint32 stock;
  84. uint32 price;
  85. std::map<uint16, std::shared_ptr<s_npc_barter_requirement>> requirements;
  86. };
  87. struct s_npc_barter{
  88. std::string name;
  89. int16 m;
  90. uint16 x;
  91. uint16 y;
  92. uint8 dir;
  93. int16 sprite;
  94. std::map<uint16, std::shared_ptr<s_npc_barter_item>> items;
  95. };
  96. class BarterDatabase : public TypesafeYamlDatabase<std::string, s_npc_barter>{
  97. public:
  98. BarterDatabase() : TypesafeYamlDatabase( "BARTER_DB", 1 ){
  99. }
  100. const std::string getDefaultLocation();
  101. uint64 parseBodyNode( const YAML::Node& node );
  102. void loadingFinished();
  103. };
  104. extern BarterDatabase barter_db;
  105. struct s_barter_purchase{
  106. std::shared_ptr<s_npc_barter_item> item;
  107. uint32 amount;
  108. item_data* data;
  109. };
  110. struct s_questinfo {
  111. e_questinfo_types icon;
  112. e_questinfo_markcolor color;
  113. struct script_code* condition;
  114. ~s_questinfo(){
  115. if( this->condition != nullptr ){
  116. script_free_code( this->condition );
  117. }
  118. }
  119. };
  120. struct npc_data {
  121. struct block_list bl;
  122. struct unit_data ud; //Because they need to be able to move....
  123. struct view_data vd;
  124. struct status_change sc; //They can't have status changes, but.. they want the visual opt values.
  125. struct npc_data *master_nd;
  126. short class_,speed;
  127. char name[NPC_NAME_LENGTH+1];// display name
  128. char exname[NPC_NAME_LENGTH+1];// unique npc name
  129. int chat_id,touching_id;
  130. unsigned int next_walktime;
  131. int instance_id;
  132. unsigned size : 2;
  133. struct status_data status;
  134. unsigned int level,stat_point;
  135. struct s_npc_params {
  136. unsigned short str, agi, vit, int_, dex, luk;
  137. } params;
  138. void* chatdb; // pointer to a npc_parse struct (see npc_chat.cpp)
  139. char* path;/* path dir */
  140. enum npc_subtype subtype;
  141. bool trigger_on_hidden;
  142. int src_id;
  143. union {
  144. struct {
  145. struct script_code *script;
  146. short xs,ys; // OnTouch area radius
  147. int guild_id;
  148. t_tick timer;
  149. int timerid,timeramount,rid;
  150. t_tick timertick;
  151. struct npc_timerevent_list *timer_event;
  152. int label_list_num;
  153. struct npc_label_list *label_list;
  154. } scr;
  155. struct {
  156. struct npc_item_list *shop_item;
  157. uint16 count;
  158. t_itemid itemshop_nameid; // Item Shop cost item ID
  159. char pointshop_str[32]; // Point Shop cost variable name
  160. bool discount;
  161. } shop;
  162. struct {
  163. short xs,ys; // OnTouch area radius
  164. short x,y; // destination coords
  165. unsigned short mapindex; // destination map
  166. } warp;
  167. struct {
  168. struct mob_data *md;
  169. time_t kill_time;
  170. char killer_name[NAME_LENGTH];
  171. int spawn_timer;
  172. } tomb;
  173. struct {
  174. bool extended;
  175. } barter;
  176. } u;
  177. struct sc_display_entry **sc_display;
  178. unsigned char sc_display_count;
  179. std::vector<std::shared_ptr<s_questinfo>> qi_data;
  180. struct {
  181. t_tick timeout;
  182. unsigned long color;
  183. } progressbar;
  184. };
  185. struct eri;
  186. extern struct eri *npc_sc_display_ers;
  187. #define START_NPC_NUM 110000000
  188. enum e_job_types
  189. {
  190. NPC_RANGE1_START = 44,
  191. JT_WARPNPC,
  192. JT_1_ETC_01,
  193. JT_1_M_01,
  194. JT_1_M_02,
  195. JT_1_M_03,
  196. JT_1_M_04,
  197. JT_1_M_BARD,
  198. JT_1_M_HOF,
  199. JT_1_M_INNKEEPER,
  200. JT_1_M_JOBGUIDER,
  201. JT_1_M_JOBTESTER,
  202. JT_1_M_KNIGHTMASTER,
  203. JT_1_M_LIBRARYMASTER,
  204. JT_1_M_MERCHANT,
  205. JT_1_M_ORIENT01,
  206. JT_1_M_PASTOR,
  207. JT_1_M_PUBMASTER,
  208. JT_1_M_SIZ,
  209. JT_1_M_SMITH,
  210. JT_1_M_WIZARD,
  211. JT_1_M_YOUNGKNIGHT,
  212. JT_1_F_01,
  213. JT_1_F_02,
  214. JT_1_F_03,
  215. JT_1_F_04,
  216. JT_1_F_GYPSY,
  217. JT_1_F_LIBRARYGIRL,
  218. JT_1_F_MARIA,
  219. JT_1_F_MERCHANT_01,
  220. JT_1_F_MERCHANT_02,
  221. JT_1_F_ORIENT_01,
  222. JT_1_F_ORIENT_02,
  223. JT_1_F_ORIENT_03,
  224. JT_1_F_ORIENT_04,
  225. JT_1_F_PRIEST,
  226. JT_1_F_PUBGIRL,
  227. JT_4_DOG01,
  228. JT_4_KID01,
  229. JT_4_M_01,
  230. JT_4_M_02,
  231. JT_4_M_03,
  232. JT_4_M_04,
  233. JT_4_M_BARBER,
  234. JT_4_M_ORIENT01,
  235. JT_4_M_ORIENT02,
  236. JT_4_F_01,
  237. JT_4_F_02,
  238. JT_4_F_03,
  239. JT_4_F_04,
  240. JT_4_F_MAID,
  241. JT_4_F_SISTER,
  242. JT_4W_KID,
  243. JT_4W_M_01,
  244. JT_4W_M_02,
  245. JT_4W_M_03,
  246. JT_4W_SAILOR,
  247. JT_4W_F_01,
  248. JT_8_F,
  249. JT_8_F_GRANDMOTHER,
  250. JT_EFFECTLAUNCHER,
  251. JT_8W_SOLDIER,
  252. JT_1_M_MOC_LORD,
  253. JT_1_M_PAY_ELDER,
  254. JT_1_M_PRON_KING,
  255. JT_4_M_MANAGER,
  256. JT_4_M_MINISTER,
  257. JT_HIDDEN_NPC,
  258. JT_4_F_KAFRA6,
  259. JT_4_F_KAFRA5,
  260. JT_4_F_KAFRA4,
  261. JT_4_F_KAFRA3,
  262. JT_4_F_KAFRA2,
  263. JT_4_F_KAFRA1,
  264. JT_2_M_THIEFMASTER,
  265. JT_2_M_SWORDMASTER,
  266. JT_2_M_PHARMACIST,
  267. JT_2_M_MOLGENSTEIN,
  268. JT_2_M_DYEINGER,
  269. JT_2_F_MAGICMASTER,
  270. JT_4_F_TELEPORTER,
  271. JT_4_M_TELEPORTER,
  272. NPC_RANGE1_END,
  273. JT_HIDDEN_WARP_NPC = 139,
  274. NPC_RANGE2_START = 400,
  275. JT_4_M_MUT2,
  276. JT_4_M_SCIENCE,
  277. JT_4_F_VALKYRIE2,
  278. JT_4_M_UNCLEKNIGHT,
  279. JT_4_M_YOUNGKNIGHT,
  280. JT_2_MONEMUS,
  281. JT_4_M_ATEIL,
  282. JT_4_F_ANNIVERSARY,
  283. JT_4_M_GREATPO,
  284. JT_4_M_NOVELIST,
  285. JT_4_M_CHAMPSOUL,
  286. JT_4_M_OLDFRIAR,
  287. JT_4_M_CRU_SOLD,
  288. JT_4_M_CRU_KNT,
  289. JT_4_M_CRU_HEAD,
  290. JT_4_M_CRU_CRUA,
  291. JT_4_M_KY_SOLD,
  292. JT_4_M_KY_KNT,
  293. JT_4_M_KY_HEAD,
  294. JT_4_M_KY_KIYOM,
  295. JT_4_M_BOSSCAT,
  296. JT_4_M_BABYCAT,
  297. JT_4W_F_KAFRA2,
  298. JT_4_F_MUNAK,
  299. JT_4_M_BONGUN,
  300. JT_4_BEAR,
  301. JT_4_BLUEWOLF,
  302. JT_4_PECOPECO,
  303. JT_4_M_JP_MID,
  304. JT_4_M_JP_RUN,
  305. JT_4_ORCLADY,
  306. JT_4_ORCLADY2,
  307. JT_4_ORCWARRIOR,
  308. JT_4_ORCWARRIOR2,
  309. JT_4_F_FAIRY,
  310. JT_4_F_FAIRYKID,
  311. JT_4_F_FAIRYKID2,
  312. JT_4_F_FAIRYKID3,
  313. JT_4_F_FAIRYKID4,
  314. JT_4_F_FAIRYKID5,
  315. JT_4_F_FAIRYKID6,
  316. JT_4_M_FAIRYKID,
  317. JT_4_M_FAIRYKID2,
  318. JT_4_M_FAIRYKID3,
  319. JT_4_M_FAIRYKID4,
  320. JT_4_M_FAIRYKID5,
  321. JT_4_M_FAIRYSOLDIER,
  322. JT_4_M_TUFFOLD,
  323. JT_4_MAN_BENKUNI,
  324. JT_4_MAN_GALTUN,
  325. JT_4_MAN_JERUTOO,
  326. JT_4_MAN_LAVAIL,
  327. JT_4_MAN_NITT,
  328. JT_4_MAN_PIOM,
  329. JT_4_MAN_PIOM2,
  330. JT_4_M_DSTMAN,
  331. JT_4_M_DSTMANDEAD,
  332. JT_4_BABYLEOPARD,
  333. JT_4_M_REDSWORD,
  334. JT_4_MAN_PIOM3,
  335. JT_4_M_FAIRYSOLDIER2,
  336. JT_4_F_FAIRYSOLDIER,
  337. JT_4_DRAGON_EGG,
  338. JT_4_MIMIC,
  339. JT_4_F_FAIRY1,
  340. JT_4_F_GUILLOTINE,
  341. JT_4_M_GUILLOTINE,
  342. JT_4_M_KNIGHT_BLACK,
  343. JT_4_M_KNIGHT_GOLD,
  344. JT_4_M_KNIGHT_SILVER,
  345. JT_4_SKULL_MUD,
  346. JT_4_M_BRZ_INDIAN,
  347. JT_4_F_BRZ_INDIAN,
  348. JT_4_F_BRZ_INDOLD,
  349. JT_4_M_BRZ_JACI,
  350. JT_4_M_BRZ_MAN1,
  351. JT_4_M_BRZ_MAN2,
  352. JT_4_F_BRZ_WOMAN,
  353. JT_4_M_MINSTREL,
  354. JT_4_M_MINSTREL1,
  355. JT_4_M_SHADOWCHASER,
  356. JT_4_F_SHADOWCHASER,
  357. JT_4_M_SURA,
  358. JT_4_F_SURA,
  359. JT_4_F_WANDERER,
  360. JT_4_M_BARD,
  361. JT_1_FLAG_NOFEAR,
  362. JT_4_M_NOFEARGUY,
  363. JT_4_MAN_PIOM6,
  364. JT_4_MAN_PIOM4,
  365. JT_4_MAN_PIOM5,
  366. JT_4_MAN_GALTUN1,
  367. JT_4_HUMAN_GERUTOO,
  368. JT_4_M_ROKI,
  369. JT_4_M_MERCAT1,
  370. JT_4_M_MERCAT2,
  371. JT_4_M_CATMAN1,
  372. JT_4_M_CATMAN2,
  373. JT_4_F_BRZ_WOMAN2,
  374. JT_4_M_JP_DISH,
  375. JT_4_F_JP_NOAH,
  376. JT_4_F_JP_OZ,
  377. JT_4_F_JP_CHROME,
  378. JT_4_F_JP_RINNE,
  379. JT_4_WHITETIGER,
  380. JT_4_VENDING_MACHINE,
  381. JT_4_MISTY,
  382. JT_4_NECORING,
  383. JT_4_ELEPHANT,
  384. JT_4_F_NYDHOG,
  385. JT_4_F_NYDHOG2,
  386. JT_4_M_ROKI2,
  387. JT_4_M_DOGTRAVELER,
  388. JT_4_M_DOGTRAVELER2,
  389. JT_4_F_DOGTRAVELER,
  390. JT_4_M_RAFLE_GR,
  391. JT_4_M_RAFLE_OLD,
  392. JT_4_F_RAFLE_PK,
  393. JT_4_M_LYINGDOG,
  394. JT_4_F_MORAFINE1,
  395. JT_4_F_MORAFINE2,
  396. JT_4_M_RAFLE_OR,
  397. JT_4_F_RAFLE_YE,
  398. JT_4_M_RAFLE_VI,
  399. JT_4_F_RAFLE_VI,
  400. JT_4_M_ARDHA,
  401. JT_4_CREEPER,
  402. JT_JP_RUFAKU,
  403. JT_JP_SUPIKA,
  404. JT_JP_SABIKU,
  405. JT_JP_ARUGORU,
  406. JT_JP_ARUNA,
  407. JT_JP_AIRI,
  408. JT_4_M_DEWOLDMAN,
  409. JT_4_M_DEWOLDWOMAN,
  410. JT_4_M_DEWMAN,
  411. JT_4_M_DEWWOMAN,
  412. JT_4_M_DEWBOY,
  413. JT_4_M_DEWGIRL,
  414. JT_4_M_DEWZATICHIEF,
  415. JT_4_M_DEWZATIMAN,
  416. JT_4_M_ALCHE_E,
  417. JT_4_MASK_SMOKEY,
  418. JT_4_CAT_SAILOR1,
  419. JT_4_CAT_SAILOR2,
  420. JT_4_CAT_SAILOR3,
  421. JT_4_CAT_SAILOR4,
  422. JT_4_CAT_CHEF,
  423. JT_4_CAT_MERMASTER,
  424. JT_4_CRACK,
  425. JT_4_ASTER,
  426. JT_4_F_STARFISHGIRL,
  427. JT_4_CAT_DOWN,
  428. JT_4_CAT_REST,
  429. JT_4_CAT_3COLOR,
  430. JT_4_CAT_ADMIRAL,
  431. JT_4_SOIL,
  432. JT_4_F_ALCHE_A,
  433. JT_4_CAT_ADV1,
  434. JT_4_CAT_ADV2,
  435. JT_4_CAT_SAILOR5,
  436. JT_2_DROP_MACHINE,
  437. JT_2_SLOT_MACHINE,
  438. JT_2_VENDING_MACHINE1,
  439. JT_MOB_TOMB,
  440. JT_4_MYSTCASE,
  441. JT_4_M_SIT_NOVICE,
  442. JT_4_OCTOPUS_LEG,
  443. JT_4_F_NURSE,
  444. JT_4_MAL_SOLDIER,
  445. JT_4_MAL_CAPTAIN,
  446. JT_4_MAL_BUDIDAI,
  447. JT_4_M_MAYOR,
  448. JT_4_M_BARYO_OLD,
  449. JT_4_F_BARYO_OLD,
  450. JT_4_F_BARYO_GIRL,
  451. JT_4_M_BARYO_BOY,
  452. JT_4_M_BARYO_MAN,
  453. JT_4_F_BARYO_WOMAN,
  454. JT_4_BARYO_CHIEF,
  455. JT_4_MAL_KAFRA,
  456. JT_4_M_MALAYA,
  457. JT_4_F_MALAYA,
  458. JT_4_F_PATIENT,
  459. JT_4_M_PATIENT,
  460. JT_4_F_KR_TIGER,
  461. JT_4_M_KR_BOY,
  462. JT_4_M_KAGE_OLD,
  463. JT_4_WHIKEBAIN,
  464. JT_4_EREND,
  465. JT_4_RAWREL,
  466. JT_4_ARMAIA,
  467. JT_4_KAVAC,
  468. JT_4_YGNIZEM,
  469. JT_4_EREMES,
  470. JT_4_MAGALETA,
  471. JT_4_KATRINN,
  472. JT_4_SHECIL,
  473. JT_4_SEYREN,
  474. JT_4_HARWORD,
  475. JT_4_F_JP_CYNTHIA,
  476. JT_4_M_JP_GUSTON,
  477. JT_4_M_JP_BERKUT,
  478. JT_4_F_JP_DARK_ADELAIDE,
  479. JT_4_M_JP_DARK_DARIUS,
  480. JT_4_M_JP_JESTER,
  481. JT_XMAS_SMOKEY_B,
  482. JT_XMAS_SMOKEY_R,
  483. JT_XMAS_SMOKEY_Y,
  484. JT_4_F_CLOCKDOLL,
  485. JT_4_F_FAIRY2,
  486. JT_4_F_PINKWOMAN,
  487. JT_4_FAIRYDEADLEAF,
  488. JT_4_FROG,
  489. JT_4_M_BLACKMAN,
  490. JT_4_M_BLUEMAN,
  491. JT_4_M_FAIRYANG,
  492. JT_4_M_FAIRYAVANT,
  493. JT_4_M_FAIRYFREAK,
  494. JT_4_M_FAIRYKID6,
  495. JT_4_M_FAIRYSCHOLAR,
  496. JT_4_M_FAIRYSCHOLAR_DIRTY,
  497. JT_4_M_FARIY_HISIE,
  498. JT_4_M_FARIYKING,
  499. JT_4_M_NEWOZ,
  500. JT_4_M_OLIVER,
  501. JT_4_M_PROFESSORWORM,
  502. JT_4_M_REDMAN,
  503. JT_4_F_GELKA,
  504. JT_4_M_ROTERT,
  505. JT_4_BLACKDRAGON,
  506. JT_4_M_GUNSLINGER,
  507. JT_4_F_GUNSLINGER,
  508. JT_4_M_ARCHER,
  509. JT_4_M_SWORDMAN,
  510. JT_4_M_NINJA_RED,
  511. JT_4_M_NINJA_BLUE,
  512. JT_4_M_THIEF_RUMIN,
  513. JT_4_M_NOV_RUMIN,
  514. JT_4_F_MAYSEL,
  515. JT_4_F_ACOLYTE,
  516. JT_4_M_NOV_HUNT,
  517. JT_4_F_GENETIC,
  518. JT_4_F_TAEKWON,
  519. JT_4_F_SWORDMAN,
  520. JT_4_F_IU,
  521. JT_4_M_RAGI,
  522. JT_4_M_MELODY,
  523. JT_4_TRACE,
  524. JT_4_F_HIMEL,
  525. JT_4_LEVITATEMAN,
  526. JT_4_M_HEINRICH,
  527. JT_4_M_ROYALGUARD,
  528. JT_4_M_BARMUND,
  529. JT_4_F_KHALITZBURG,
  530. JT_4_F_HIMEL2,
  531. JT_4_WHITEKNIGHT,
  532. JT_4_COCO,
  533. JT_4_M_ALADDIN,
  534. JT_4_M_GENIE,
  535. JT_4_F_GENIE,
  536. JT_4_JP_MID_SWIM,
  537. JT_4_JP_RUNE_SWIM,
  538. JT_4_F_FENRIR,
  539. JT_4_F_GEFFEN_FAY,
  540. JT_4_F_IRIS,
  541. JT_4_F_LUCILE,
  542. JT_4_F_SARAH_BABY,
  543. JT_4_GEFFEN_01,
  544. JT_4_GEFFEN_02,
  545. JT_4_GEFFEN_03,
  546. JT_4_GEFFEN_04,
  547. JT_4_GEFFEN_05,
  548. JT_4_GEFFEN_06,
  549. JT_4_GEFFEN_07,
  550. JT_4_GEFFEN_08,
  551. JT_4_GEFFEN_09,
  552. JT_4_GEFFEN_10,
  553. JT_4_GEFFEN_11,
  554. JT_4_GEFFEN_12,
  555. JT_4_GEFFEN_13,
  556. JT_4_GEFFEN_14,
  557. JT_4_M_CHAOS,
  558. JT_4_M_CHIEF_IRIN,
  559. JT_4_M_SAKRAY,
  560. JT_4_M_SAKRAYROYAL,
  561. JT_4_TOWER_01,
  562. JT_4_TOWER_02,
  563. JT_4_TOWER_03,
  564. JT_4_TOWER_04,
  565. JT_4_TOWER_05,
  566. JT_4_TOWER_06,
  567. JT_4_TOWER_07,
  568. JT_4_TOWER_08,
  569. JT_4_TOWER_09,
  570. JT_4_TOWER_10,
  571. JT_4_TOWER_11,
  572. JT_4_TOWER_12,
  573. JT_4_TOWER_13,
  574. JT_8_F_GIRL,
  575. JT_4_F_GODEMOM,
  576. JT_4_F_GON,
  577. JT_4_F_KID2,
  578. JT_4_M_BIBI,
  579. JT_4_M_GEF_SOLDIER,
  580. JT_4_M_KID1,
  581. JT_4_M_MOC_SOLDIER,
  582. JT_4_M_PAY_SOLDIER,
  583. JT_4_M_SEAMAN,
  584. JT_4_M_SNOWMAN,
  585. JT_4_F_05,
  586. JT_4_M_05,
  587. JT_4_M_06,
  588. JT_4_F_06,
  589. JT_4_M_PIERROT,
  590. JT_4_M_KID2,
  591. JT_4_F_KID3,
  592. JT_4_M_SANTA,
  593. JT_4_F_NACORURI,
  594. JT_4_F_SHAMAN,
  595. JT_4_F_KAFRA7,
  596. JT_GUILD_FLAG,
  597. JT_1_SHADOW_NPC,
  598. JT_4_F_07,
  599. JT_4_F_JOB_ASSASSIN,
  600. JT_4_F_JOB_BLACKSMITH,
  601. JT_4_F_JOB_HUNTER,
  602. JT_4_F_JOB_KNIGHT,
  603. JT_4_F_NOVICE,
  604. JT_4_M_JOB_ASSASSIN,
  605. JT_4_M_JOB_BLACKSMITH,
  606. JT_4_M_JOB_HUNTER,
  607. JT_4_M_JOB_KNIGHT1,
  608. JT_4_M_JOB_KNIGHT2,
  609. JT_4_M_JOB_WIZARD,
  610. JT_4_BAPHOMET,
  611. JT_4_DARKLORD,
  612. JT_4_DEVIRUCHI,
  613. JT_8_DOPPEL,
  614. JT_2_M_ALCHE,
  615. JT_2_M_BARD_ORIENT,
  616. JT_2_M_SAGE_B,
  617. JT_2_M_SAGE_OLD,
  618. JT_4_F_ALCHE,
  619. JT_4_F_CRU,
  620. JT_4_F_MONK,
  621. JT_4_F_ROGUE,
  622. JT_4_M_ALCHE_A,
  623. JT_4_M_ALCHE_B,
  624. JT_4_M_ALCHE_C,
  625. JT_4_M_CRU,
  626. JT_4_M_CRU_OLD,
  627. JT_4_M_MONK,
  628. JT_4_M_SAGE_A,
  629. JT_4_M_SAGE_C,
  630. JT_4_F_SON,
  631. JT_4_F_JPN2,
  632. JT_4_F_JPN,
  633. JT_4_F_JPNCHIBI,
  634. JT_4_F_JPNOBA2,
  635. JT_4_F_JPNOBA,
  636. JT_4_M_JPN2,
  637. JT_4_M_JPN,
  638. JT_4_M_JPNCHIBI,
  639. JT_4_M_JPNOJI2,
  640. JT_4_M_JPNOJI,
  641. JT_8_M_JPNSOLDIER,
  642. JT_8_M_JPNMASTER,
  643. JT_4_F_JPNMU,
  644. JT_4_F_TWGIRL,
  645. JT_4_F_TWGRANDMOM,
  646. JT_4_F_TWMASKGIRL,
  647. JT_4_F_TWMIDWOMAN,
  648. JT_4_M_TWBOY,
  649. JT_4_M_TWMASKMAN,
  650. JT_4_M_TWMIDMAN,
  651. JT_4_M_TWOLDMAN,
  652. JT_4_M_TWTEAMAN,
  653. JT_4_M_YOYOROGUE,
  654. JT_8_M_TWSOLDIER,
  655. JT_4_F_UMGIRL,
  656. JT_4_F_UMOLDWOMAN,
  657. JT_4_F_UMWOMAN,
  658. JT_4_M_UMCHIEF,
  659. JT_4_M_UMDANCEKID2,
  660. JT_4_M_UMDANCEKID,
  661. JT_4_M_UMKID,
  662. JT_4_M_UMOLDMAN,
  663. JT_4_M_UMSOLDIER,
  664. JT_4_M_SALVATION,
  665. JT_4_F_NFDEADKAFRA,
  666. JT_4_F_NFDEADMGCIAN,
  667. JT_4_F_NFLOSTGIRL,
  668. JT_4_M_NFDEADMAN2,
  669. JT_4_M_NFDEADMAN,
  670. JT_4_M_NFDEADSWDMAN,
  671. JT_4_M_NFLOSTMAN,
  672. JT_4_M_NFMAN,
  673. JT_4_NFBAT,
  674. JT_4_NFCOCK,
  675. JT_4_NFCOFFIN,
  676. JT_4_NFWISP,
  677. JT_1_F_SIGNZISK,
  678. JT_1_M_SIGN1,
  679. JT_1_M_SIGNALCHE,
  680. JT_1_M_SIGNART,
  681. JT_1_M_SIGNMCNT,
  682. JT_1_M_SIGNMONK2,
  683. JT_1_M_SIGNMONK,
  684. JT_1_M_SIGNROGUE,
  685. JT_4_F_VALKYRIE,
  686. JT_TW_TOWER,
  687. JT_2_M_OLDBLSMITH,
  688. JT_4_F_CHNDOCTOR,
  689. JT_4_F_CHNDRESS1,
  690. JT_4_F_CHNDRESS2,
  691. JT_4_F_CHNDRESS3,
  692. JT_4_F_CHNWOMAN,
  693. JT_4_M_CHN8GUEK,
  694. JT_4_M_CHNCOOK,
  695. JT_4_M_CHNGENERL,
  696. JT_4_M_CHNMAN,
  697. JT_4_M_CHNMONK,
  698. JT_4_M_CHNOLD,
  699. JT_4_M_CHNSOLDIER,
  700. JT_4_M_DWARF,
  701. JT_4_M_GRANDMONK,
  702. JT_4_M_ROGUE,
  703. JT_4_M_DOMINO,
  704. JT_4_F_DOMINO,
  705. JT_4_F_ZONDAGIRL,
  706. JT_4_M_REIDIN_KURS,
  707. JT_4_M_ZONDAOYAJI,
  708. JT_4_M_BUDDHIST,
  709. JT_2_BOARD1,
  710. JT_2_BOARD2,
  711. JT_2_BULLETIN_BOARD,
  712. JT_4_F_THAIAYO,
  713. JT_4_F_THAIGIRL,
  714. JT_4_F_THAISHAMAN,
  715. JT_4_M_THAIAYO,
  716. JT_4_M_THAIOLD,
  717. JT_4_M_THAIONGBAK,
  718. JT_CLEAR_NPC,
  719. JT_4_F_RACING,
  720. JT_4_F_EINOLD,
  721. JT_4_M_EINOLD,
  722. JT_4_M_EINMINER,
  723. JT_4_M_DIEMAN,
  724. JT_4_F_EINWOMAN,
  725. JT_4_M_REPAIR,
  726. JT_4_M_EIN_SOLDIER,
  727. JT_4_M_YURI,
  728. JT_4_M_EINMAN2,
  729. JT_4_M_EINMAN,
  730. JT_2_F_SIGN1,
  731. JT_4_BOARD3,
  732. JT_4_BULLETIN_BOARD2,
  733. JT_4_F_AGENTKAFRA,
  734. JT_4_F_KAFRA8,
  735. JT_4_F_KAFRA9,
  736. JT_4_F_LGTGIRL,
  737. JT_4_F_LGTGRAND,
  738. JT_4_F_OPERATION,
  739. JT_4_LGTSCIENCE,
  740. JT_4_M_LGTGRAND,
  741. JT_4_M_LGTGUARD2,
  742. JT_4_M_LGTGUARD,
  743. JT_4_M_LGTMAN,
  744. JT_4_M_LGTPOOR,
  745. JT_4_M_OPERATION,
  746. JT_4_M_PRESIDENT,
  747. JT_4_M_REINDEER,
  748. JT_4_M_ZONDAMAN,
  749. JT_4_M_PECOKNIGHT,
  750. JT_4_CAT,
  751. JT_4_F_YUNYANG,
  752. JT_4_M_OILMAN,
  753. JT_4_F_CAPEGIRL,
  754. JT_4_M_MASKMAN,
  755. JT_4_M_SITDOWN,
  756. JT_4_F_SITDOWN,
  757. JT_4_M_ALCHE_D,
  758. JT_4_M_ACROSS,
  759. JT_4_F_ACROSS,
  760. JT_4_COOK,
  761. JT_4_M_LIEMAN,
  762. JT_2_POSTBOX,
  763. JT_4_BULL,
  764. JT_4_LAM,
  765. JT_4_F_HUGIRL,
  766. JT_4_F_HUGRANMA,
  767. JT_4_F_HUWOMAN,
  768. JT_4_F_KHELLISIA,
  769. JT_4_F_KHELLY,
  770. JT_4_M_HUBOY,
  771. JT_4_M_HUGRANFA,
  772. JT_4_M_HUMAN_01,
  773. JT_4_M_HUMAN_02,
  774. JT_4_M_HUMERCHANT,
  775. JT_4_M_HUOLDARMY,
  776. JT_4_M_KHKIEL,
  777. JT_4_M_KHKYEL,
  778. JT_4_M_KHMAN,
  779. JT_4_F_KHWOMAN,
  780. JT_4_F_KHGIRL,
  781. JT_4_M_KHBOY,
  782. JT_4_M_PHILMAN,
  783. JT_4_PORING,
  784. JT_2_COLAVEND,
  785. JT_4_F_SOCCER,
  786. JT_4_M_SOCCER7,
  787. JT_4_M_SOCCER9,
  788. JT_4_F_CHILD,
  789. JT_4_F_MADAME,
  790. JT_4_F_MASK1,
  791. JT_4_F_MASK,
  792. JT_4_F_RACHOLD,
  793. JT_4_F_SHABBY,
  794. JT_4_F_TRAINEE,
  795. JT_4_M_CHILD1,
  796. JT_4_M_CHILD,
  797. JT_4_M_DOCTOR,
  798. JT_4_M_FROZEN1,
  799. JT_4_M_FROZEN,
  800. JT_4_M_MASK1,
  801. JT_4_M_MASK,
  802. JT_4_M_MIDDLE1,
  803. JT_4_M_MIDDLE,
  804. JT_4_M_RACHMAN2,
  805. JT_4_M_RACHMAN1,
  806. JT_4_M_RACHOLD1,
  807. JT_4_M_RACHOLD,
  808. JT_4_M_RASWORD,
  809. JT_4_M_TRAINEE,
  810. JT_4_F_ARUNA_POP,
  811. JT_4_M_ARUNA_NFM1,
  812. JT_4_DST_CAMEL,
  813. JT_4_DST_SOLDIER,
  814. JT_4_F_DESERT,
  815. JT_4_F_DST_CHILD,
  816. JT_4_F_DST_GRAND,
  817. JT_4_M_DESERT,
  818. JT_4_M_DST_CHILD,
  819. JT_4_M_DST_GRAND,
  820. JT_4_M_DST_MASTER,
  821. JT_4_M_DST_TOUGH,
  822. JT_4_ANGELING,
  823. JT_4_ARCHANGELING,
  824. JT_4_GHOSTRING,
  825. JT_4_F_EDEN_MASTER,
  826. JT_4_F_EDEN_OFFICER,
  827. JT_4_M_EDEN_GUARDER,
  828. JT_4_M_PATRICK,
  829. JT_4_DONKEY,
  830. JT_4_M_TRISTAN,
  831. JT_4_WHITE_COW,
  832. JT_4_F_RUSCHILD,
  833. JT_4_F_RUSWOMAN1,
  834. JT_4_F_RUSWOMAN2,
  835. JT_4_F_RUSWOMAN3,
  836. JT_4_M_RUSCHILD,
  837. JT_4_M_GUSLIMAN,
  838. JT_4_M_RUSBALD,
  839. JT_4_M_RUSKING,
  840. JT_4_M_RUSKNIGHT,
  841. JT_4_M_RUSMAN1,
  842. JT_4_M_RUSMAN2,
  843. JT_4_M_DRAKE,
  844. JT_4_F_BABAYAGA,
  845. JT_4_F_RUSGREEN,
  846. JT_4_RUS_DWOLF,
  847. JT_1_FLAG_LION,
  848. JT_1_FLAG_EAGLE,
  849. JT_4_M_MIKID,
  850. JT_4_BLUE_FLOWER,
  851. JT_4_RED_FLOWER,
  852. JT_4_YELL_FLOWER,
  853. JT_4_F_CAVE1,
  854. JT_4_F_MUT1,
  855. JT_4_F_MUT2,
  856. JT_4_F_SCIENCE,
  857. JT_4_M_1STPRIN1,
  858. JT_4_M_1STPRIN2,
  859. JT_4_M_2NDPRIN1,
  860. JT_4_M_2NDPRIN2,
  861. JT_4_M_3RDPRIN1,
  862. JT_4_M_3RDPRIN2,
  863. JT_4_M_4THPRIN1,
  864. JT_4_M_4THPRIN2,
  865. JT_4_M_5THPRIN1,
  866. JT_4_M_5THPRIN2,
  867. JT_4_M_6THPRIN1,
  868. JT_4_M_6THPRIN2,
  869. JT_4_M_CASMAN1,
  870. JT_4_M_CAVE1,
  871. JT_4_M_MOCASS1,
  872. JT_4_M_MOCASS2,
  873. JT_4_M_MUT1,
  874. NPC_RANGE2_END, // Official JT_MON_BEGIN
  875. NPC_RANGE3_START = 10000, // Official JT_NEW_NPC_3RD_BEGIN
  876. JT_4_TOWER_14,
  877. JT_4_TOWER_15,
  878. JT_4_TOWER_16,
  879. JT_4_TOWER_17,
  880. JT_4_TREASURE_BOX,
  881. JT_ACADEMY_MASTER,
  882. JT_PORTAL,
  883. JT_THANATOS_BATTLE,
  884. JT_THANATOS_KEEP,
  885. JT_4_F_LYDIA,
  886. JT_4_LUDE,
  887. JT_4_ALIZA,
  888. JT_4_ALICE,
  889. JT_4_ARCHER_SKEL,
  890. JT_4_JACK,
  891. JT_4_SOLDIER_SKEL,
  892. JT_4_LOLI_RURI,
  893. JT_4_M_SAKRAY_TIED,
  894. JT_4_M_ANTONIO,
  895. JT_4_M_COOKIE,
  896. JT_4_M_BELIEVER01,
  897. JT_4_F_BELIEVER01,
  898. JT_4_M_BELIEVER02,
  899. JT_4_ROPEPILE,
  900. JT_4_BRICKPILE,
  901. JT_4_WOODPILE,
  902. JT_4_M_TAMARIN,
  903. JT_4_M_DEATH,
  904. JT_4_GHOST_STAND,
  905. JT_4_GHOST_COLLAPSE,
  906. JT_4_COOKIEHOUSE,
  907. JT_4_F_SKULL06GIRL,
  908. JT_4_NONMYSTCASE,
  909. JT_4_F_KIMI,
  910. JT_4_M_FROZEN_GC,
  911. JT_4_M_FROZEN_KN,
  912. JT_4_SNAKE_LORD,
  913. JT_4_F_MOCBOY,
  914. JT_4_F_RUNAIN,
  915. JT_4_M_ROEL,
  916. JT_4_F_SHALOSH,
  917. JT_4_ENERGY_RED,
  918. JT_4_ENERGY_BLUE,
  919. JT_4_ENERGY_YELLOW,
  920. JT_4_ENERGY_BLACK,
  921. JT_4_ENERGY_WHITE,
  922. JT_4_F_PERE01,
  923. JT_4_JITTERBUG,
  924. JT_4_SEA_OTTER,
  925. JT_4_GALAPAGO,
  926. JT_4_DESERTWOLF_B,
  927. JT_4_BB_PORING,
  928. JT_4_F_CHARLESTON01,
  929. JT_4_F_CHARLESTON02,
  930. JT_4_F_CHARLESTON03,
  931. JT_4_M_IAN,
  932. JT_4_M_OLDSCHOLAR,
  933. JT_4_F_LAPERM,
  934. JT_4_M_DEBON,
  935. JT_4_M_BIRMAN,
  936. JT_4_F_SHAM,
  937. JT_4_M_REBELLION,
  938. JT_4_F_REBELLION,
  939. JT_4_CHN_SHAOTH,
  940. JT_4_SHOAL,
  941. JT_4_F_SARAH,
  942. JT_4_GIGANTES_BIG,
  943. JT_4_GIGANTES,
  944. JT_4_GIGANTES_SMALL,
  945. JT_4_GARGOYLE_STATUE,
  946. JT_4_AIRA,
  947. JT_4_EZELLA,
  948. JT_4_KULUNA,
  949. JT_4_LUNE,
  950. JT_4_MALLINA,
  951. JT_4_MORIN,
  952. JT_4_NASARIN,
  953. JT_4_F_BERRYTEA,
  954. JT_4_F_FRUIT,
  955. JT_4_SCR_MT_ROBOTS,
  956. JT_4_MACHINE_DEVICE,
  957. JT_4_GC109,
  958. JT_4_SYS_MSG,
  959. JT_4_M_TATIO,
  960. JT_4_M_REKENBER,
  961. JT_4_XMAS_CAT1,
  962. JT_4_XMAS_CAT2,
  963. JT_4_XMAS_CAT3,
  964. JT_4_XMAS_CAT4,
  965. JT_4_XMAS_CAT5,
  966. JT_4_XMAS_CAT6,
  967. JT_4_M_DEATH2,
  968. JT_4_S_KADOMATSU,
  969. JT_4_B_KADOMATSU,
  970. JT_4_F_08,
  971. JT_4_F_08_STATUE,
  972. JT_4_M_DARKPRIEST,
  973. JT_4_JP_GARM_H,
  974. JT_4_JP_MEDUSA_H,
  975. JT_4_CHN_GVG_01,
  976. JT_4_SPRING_RABBIT,
  977. JT_4_PD_TYRA,
  978. JT_4_PD_TYRANOS,
  979. JT_4_PD_PLESI,
  980. JT_4_PD_PLESIO,
  981. JT_4_PD_BRACHI,
  982. JT_4_PD_BRACHIOS,
  983. JT_4_PD_GOLDDRAGON,
  984. JT_4_PD_ZAEROG,
  985. JT_4_PD_TAMADORA,
  986. JT_4_JP_EDGA_H,
  987. JT_4_JP_BRAGOLEM_H,
  988. JT_4_EL_AQUA,
  989. JT_4_EP16_NIHIL,
  990. JT_4_EP16_SPICA,
  991. JT_4_EP16_SKIA,
  992. JT_4_EP16_PETER,
  993. JT_4_EP16_CRUX,
  994. JT_4_EP16_GRANZ,
  995. JT_4_EP16_STOLZ,
  996. JT_4_EP16_EGEO,
  997. JT_4_EP16_COOK,
  998. JT_4_EP16_MARK,
  999. JT_4_EP16_TAMARIN,
  1000. JT_4_EP16_POE,
  1001. JT_4_EP16_ISAAC,
  1002. JT_4_EP16_HELMUT,
  1003. JT_4_EP16_WOLF,
  1004. JT_4_EP16_MEYER,
  1005. JT_4_EP16_AGNES,
  1006. JT_4_EP16_FOOD,
  1007. JT_4_EP16_LOUVIERE,
  1008. JT_4_EP16_MAX,
  1009. JT_4_EP16_SPIEGEL,
  1010. JT_4_MOONLIGHT,
  1011. JT_4_MISTRESS,
  1012. JT_4_DRACULA,
  1013. JT_4_STORMKNIGHT,
  1014. JT_4_TATTER,
  1015. JT_4_AS_RAGGED_GOLEM,
  1016. JT_4_AS_BLOODY_KNIGHT,
  1017. JT_4_AS_WIND_GHOST,
  1018. JT_4_F_BIJOU,
  1019. JT_4_EP16_COOK2,
  1020. JT_4_SERVICE_30_M_01,
  1021. JT_4_SERVICE_30_F_01,
  1022. JT_4_SCR_AT_ROBOTS,
  1023. JT_4_F_RANGER,
  1024. JT_4_WAG,
  1025. JT_4_NPC_TRAP,
  1026. JT_4_RAGGLER,
  1027. JT_4_DR_PEPE,
  1028. JT_4_DR_GAMBERI,
  1029. JT_4_DR_AGLIO,
  1030. JT_4_DR_OLIO,
  1031. JT_4_DR_STELO,
  1032. JT_4_DR_TORTEL,
  1033. JT_4_BASIL_SLAVE,
  1034. JT_4_DOU_JINDO,
  1035. JT_4_DOU_SIBA,
  1036. JT_4_TARUTUPI,
  1037. JT_4_DR_SOLDIER,
  1038. JT_4_DR_M_01,
  1039. JT_4_DR_M_02,
  1040. JT_4_DR_F_01,
  1041. JT_4_DR_F_02,
  1042. JT_4_DR_KID_01,
  1043. JT_4_JP_2015EVT,
  1044. JT_4_ALLIGATOR,
  1045. JT_4_ANOLIAN,
  1046. JT_4_TACNU,
  1047. JT_4_CENERE,
  1048. JT_4_F_ARUNA_POP2,
  1049. JT_4_JACK_HEAD,
  1050. JT_4_INJUSTICE,
  1051. JT_4_BLOODYMAN,
  1052. JT_4_GIBBET,
  1053. JT_4_DULLAHAN,
  1054. JT_4_M_LAZY,
  1055. JT_4_M_GONY,
  1056. JT_4_M_ROOKIE,
  1057. JT_4_M_PHILOFONTES,
  1058. JT_4_F_ESTLOVELOY,
  1059. JT_4_F_LEEDSH,
  1060. JT_4_F_DIENE,
  1061. JT_4_F_COATNEIS,
  1062. JT_4_M_RUPERT,
  1063. JT_4_M_FALLENGONY,
  1064. JT_4_M_EISEN,
  1065. JT_4_F_DEADEVIL,
  1066. JT_4_F_HUNTER_EVIL,
  1067. JT_4_F_ELENA,
  1068. JT_4_F_ANYA,
  1069. JT_4_M_SEIREN_UC,
  1070. JT_4_M_GUNSLINGER2,
  1071. JT_4_M_GUNSLINGER3,
  1072. JT_4_M_REBELLION2,
  1073. JT_4_M_REBELLION3,
  1074. JT_4_F_GUNSLINGER2,
  1075. JT_4_F_GUNSLINGER3,
  1076. JT_4_F_REBELLION2,
  1077. JT_4_F_REBELLION3,
  1078. JT_4_M_ILYA,
  1079. JT_4_ELDER = 10205,
  1080. JT_4_LUNATIC,
  1081. JT_4_F_NOVICE2,
  1082. JT_4_WICKEDNYMPH,
  1083. JT_4_F_PREMI,
  1084. JT_4_M_COSTELL,
  1085. JT_4_M_YATTWARP,
  1086. JT_4_M_EVOKASCUDI,
  1087. JT_4_M_JOHNNYJAMES,
  1088. JT_4_M_ALBERTFORD,
  1089. JT_4_M_SEANMCCURDY,
  1090. JT_4_M_KARAMPUCCI,
  1091. JT_4_M_CACTUSMAN1,
  1092. JT_4_M_CACTUSMAN2,
  1093. JT_4_M_CACTUSMAN3,
  1094. JT_4_M_CACTUSLADY,
  1095. JT_4_M_GAST,
  1096. JT_4_M_CACTUSCHILD,
  1097. JT_4_KING,
  1098. JT_4_F_BOMI,
  1099. JT_4_M_CACTUSCHIEF,
  1100. JT_4_F_CACTUSCHILD2,
  1101. JT_4_F_CACTUSLADY2,
  1102. JT_4_F_CACTUSLADY3,
  1103. JT_4_M_CACTUS,
  1104. JT_4_M_COWRAIDERS1,
  1105. JT_4_M_COWRAIDERS2,
  1106. JT_4_M_COWRAIDERS3,
  1107. JT_4_F_JP14THEVT,
  1108. JT_4_M_POORSCHOLAR,
  1109. JT_4_M_PEPPERROTI,
  1110. JT_JP_NPC01,
  1111. JT_4_PURPLE_WARP,
  1112. JT_4_F_NARIN,
  1113. JT_4_M_URGENT_MAN,
  1114. JT_4_M_KEEN_SOLDIER,
  1115. JT_4_F_SLOPPY_WOMAN,
  1116. JT_4_F_DRKAFRA01,
  1117. JT_4_M_DRZONDA01,
  1118. JT_4_M_SWD_RENO,
  1119. JT_4_M_KNG_RENO,
  1120. JT_4_M_AC_RUMIN,
  1121. JT_4_M_HIGH_WIZARD,
  1122. JT_4_SYSTEM_BOX,
  1123. JT_4_STEELBOX,
  1124. JT_4_WOODBOX,
  1125. JT_4_M_POPFESTA,
  1126. JT_4_BONFIRE,
  1127. JT_4_PCCOUNT,
  1128. JT_4_LAVAGOLEM,
  1129. JT_4_F_IA,
  1130. JT_4_LOCKE,
  1131. JT_4_LIL_LIF,
  1132. JT_4_LIL_LIF2,
  1133. JT_4_F_DRAGONHAT,
  1134. JT_4_M_DRAGONHAT,
  1135. JT_JP_NPC02,
  1136. JT_JP_NPC03,
  1137. JT_JP_NPC04,
  1138. JT_JP_NPC05,
  1139. JT_JP_NPC06,
  1140. JT_JP_NPC07,
  1141. JT_JP_NPC08,
  1142. JT_JP_NPC09,
  1143. JT_JP_NPC10,
  1144. JT_4_FIRERING,
  1145. JT_4_SCATLETON,
  1146. JT_4_JP_AB_NPC_001,
  1147. JT_4_JP_AB_NPC_002,
  1148. JT_4_JP_AB_NPC_003,
  1149. JT_4_JP_AB_NPC_004,
  1150. JT_4_JP_AB_NPC_005,
  1151. JT_4_JP_AB_NPC_006,
  1152. JT_4_JP_AB_NPC_007,
  1153. JT_4_JP_AB_NPC_008,
  1154. JT_4_JJAK,
  1155. JT_4_M_SNOWMAN_B,
  1156. JT_4_M_SNOWMAN_R,
  1157. JT_4_M_SNOWMAN_G,
  1158. JT_WARPEFFECTNPC,
  1159. JT_4_HEN,
  1160. JT_4_F_DANGDANG,
  1161. JT_4_M_DANGDANG,
  1162. JT_4_F_DANGDANG1,
  1163. JT_4_LEAFCAT,
  1164. JT_4_NASARIAN,
  1165. JT_4_NASARIAN_EM,
  1166. JT_4_TEDDY_BEAR_W,
  1167. JT_4_TEDDY_BEAR_B,
  1168. JT_4_TEDDY_BEAR_B_L,
  1169. JT_4_M_SOULREAPER,
  1170. JT_4_F_SE_SUN,
  1171. JT_4_M_SE_MOON,
  1172. JT_4_M_SE_STAR,
  1173. JT_4_EP17_KAYA,
  1174. JT_4_EP17_AS,
  1175. JT_4_EP17_ELYUMINA,
  1176. JT_4_EP17_MORNING,
  1177. JT_4_EP17_MIGUEL,
  1178. JT_4_EP17_NIHIL_K,
  1179. JT_4_EP17_MIGUEL_D,
  1180. JT_4_ED_SCHMIDT,
  1181. JT_4_ED_OSCAR,
  1182. JT_4_ED_ORB,
  1183. JT_4_ED_FENCE,
  1184. JT_4_M_ANDREA,
  1185. JT_4_M_ANDREA_D,
  1186. JT_4_F_ANES,
  1187. JT_4_F_ANES_D,
  1188. JT_4_M_SILVANO,
  1189. JT_4_M_SILVANO_D,
  1190. JT_4_F_CECILIA,
  1191. JT_4_F_CECILIA_D,
  1192. JT_4_M_MD_SEYREN,
  1193. JT_4_M_MD_EREMES,
  1194. JT_4_M_MD_HARWORD,
  1195. JT_4_F_MD_MAGALETA,
  1196. JT_4_F_MD_SHECIL,
  1197. JT_4_F_MD_KATRINN,
  1198. JT_4_M_MD_SEYREN_H,
  1199. JT_4_M_MD_EREMES_H,
  1200. JT_4_M_MD_HARWORD_H,
  1201. JT_4_F_MD_MAGALETA_H,
  1202. JT_4_F_MD_SHECIL_H,
  1203. JT_4_F_MD_KATRINN_H,
  1204. JT_4_M_MD_SEYREN_D,
  1205. JT_4_M_MD_EREMES_D,
  1206. JT_4_M_MD_HARWORD_D,
  1207. JT_4_F_MD_MAGALETA_D,
  1208. JT_4_F_MD_SHECIL_D,
  1209. JT_4_F_MD_KATRINN_D,
  1210. JT_4_F_MD_YGNIZEM,
  1211. JT_4_F_ERENE,
  1212. JT_4_M_EINCPTMINER,
  1213. JT_4_F_EINRESERCHER,
  1214. JT_4_F_REINDEER,
  1215. JT_4_PIGOCTO,
  1216. JT_4_ORK_HERO,
  1217. JT_4_JP_16TH,
  1218. JT_4_EP17_MASTER_A,
  1219. JT_4_EP17_BASIC_B,
  1220. JT_4_EP17_GUARD_B,
  1221. JT_4_EP17_BASIC_B_NG,
  1222. JT_4_EP17_GUARD_B_NG,
  1223. JT_4_EP17_SWEETY,
  1224. JT_4_EP17_BOY_A,
  1225. JT_4_EP17_BOY_B,
  1226. JT_4_EP17_TAMARIN,
  1227. JT_4_EP17_SCISSORE,
  1228. JT_4_EP17_TABLET,
  1229. JT_4_EP17_BUCKETS,
  1230. JT_4_EP17_CLEANER,
  1231. JT_4_EP17_BASKET,
  1232. JT_4_EP17_BROKENBETA,
  1233. JT_4_EP17_CLEANER_W,
  1234. JT_4_EP17_MERMAID,
  1235. JT_4_JP_AB_NPC_009,
  1236. JT_4_JP_AB_NPC_010,
  1237. JT_4_4JOB_SILLA = 10364,
  1238. JT_4_4JOB_MAGGI,
  1239. JT_4_4JOB_ROBIN,
  1240. JT_4_4JOB_ROBIN_DRUNK,
  1241. JT_4_4JOB_LETICIA,
  1242. JT_4_4JOB_SERANG,
  1243. JT_4_4JOB_EINHAR,
  1244. JT_4_4JOB_SEALSTONE,
  1245. JT_4_4JOB_PHANTOMBOOK1,
  1246. JT_4_4JOB_PHANTOMBOOK2,
  1247. JT_4_4JOB_PHANTOMBOOK3,
  1248. JT_4_VENDING_MACHINE2,
  1249. JT_4_EP18_MARAM,
  1250. JT_4_EP18_MIRIAM,
  1251. JT_4_EP18_SUAD,
  1252. JT_4_EP18_IMRIL,
  1253. JT_4_EP18_MERCHANT,
  1254. JT_4_EP18_TAMARIN,
  1255. JT_4_EP18_DEW,
  1256. JT_4_EP18_MARK,
  1257. JT_4_EP18_ALF,
  1258. JT_4_EP18_SHULANG,
  1259. JT_4_EP18_BAGOT,
  1260. JT_4_EP18_DEMIFREYA,
  1261. JT_4_EP18_KAMIL,
  1262. JT_4_EP18_HAZAR,
  1263. JT_4_EP18_WAGON,
  1264. JT_4_EP18_PAPERS,
  1265. JT_4_EP18_HALFFLOWER,
  1266. JT_4_EP18_GW_OLD01,
  1267. JT_4_EP18_GW_OLD02,
  1268. JT_4_EP18_GW_MIDDLE01,
  1269. JT_4_EP18_GW_MIDDLE02,
  1270. JT_4_EP18_GW_MAN01,
  1271. JT_4_EP18_GW_MAN02,
  1272. JT_4_EP18_GW_WOMAN01,
  1273. JT_4_EP18_GW_WOMAN02,
  1274. JT_4_EP18_GW_CHILD01,
  1275. JT_4_EP18_GW_CHILD02,
  1276. JT_4_STAR_BOX_SCORE,
  1277. JT_4_STAR_BOX_POW1,
  1278. JT_4_STAR_BOX_POW2,
  1279. JT_4_STAR_BOX_STA1,
  1280. JT_4_STAR_BOX_STA2,
  1281. JT_4_STAR_BOX_SPL1,
  1282. JT_4_STAR_BOX_SPL2,
  1283. JT_4_STAR_BOX_CON1,
  1284. JT_4_STAR_BOX_CON2,
  1285. JT_4_STAR_BOX_WIS1,
  1286. JT_4_STAR_BOX_WIS2,
  1287. JT_4_STAR_BOX_CRT1,
  1288. JT_4_STAR_BOX_CRT2,
  1289. JT_4_4JOB_MAURA,
  1290. JT_4_STAR_BOX_N,
  1291. JT_4_STAR_BOX_H,
  1292. JT_4_STAR_BOX_HP1,
  1293. JT_4_STAR_BOX_HP2,
  1294. JT_4_STAR_BOX_ATK1,
  1295. JT_4_STAR_BOX_ATK2,
  1296. JT_4_STAR_BOX_BARRIER1,
  1297. JT_4_STAR_BOX_BARRIER2,
  1298. JT_4_STAR_BOX_TRAP1,
  1299. JT_4_STAR_BOX_TRAP2,
  1300. JT_4_STAR_BOX_MASTER,
  1301. JT_4_POINT_RED,
  1302. JT_4_POINT_BLUE,
  1303. JT_4_POINT_YELLOW,
  1304. JT_4_POINT_BLACK,
  1305. JT_4_POINT_WHITE,
  1306. JT_4_EXJOB_GERHOLD,
  1307. JT_4_EXJOB_NINJA,
  1308. JT_4_EXJOB_MASTER_J,
  1309. JT_4_EXJOB_MR_SEO,
  1310. JT_4_EXJOB_HAPPY_CLOUD,
  1311. JT_4_EXJOB_STAR,
  1312. JT_4_EXJOB_CHUL_HO,
  1313. JT_4_EXJOB_KI_SUL,
  1314. JT_4_EXJOB_HYUN_ROK,
  1315. JT_1_JOURNEY_STONE_D,
  1316. JT_1_JOURNEY_STONE_F,
  1317. JT_ROZ_MQ_SIGRUN,
  1318. JT_ROZ_MQ_SIGRUN_S,
  1319. JT_ROZ_MQ_HARACE01,
  1320. JT_ROZ_MQ_HARACE02,
  1321. JT_ROZ_MQ_SAHARIO,
  1322. JT_ROZ_MQ_SUPIGEL,
  1323. JT_ROZ_MQ_DEADSOLDIER,
  1324. JT_4_EP19_ZORYARA,
  1325. JT_4_EP19_MORYARA,
  1326. JT_4_EP19_LUNCH,
  1327. JT_4_EP19_LAZY,
  1328. JT_4_EP19_JUNCEA,
  1329. JT_4_EP19_JUNCEA_M,
  1330. JT_4_EP19_JUNCEA_D,
  1331. JT_4_EP19_FRIEDERIKE,
  1332. JT_4_EP19_SUITCASE,
  1333. JT_4_EP19_HEALROCK,
  1334. JT_4_EP19_IWIN,
  1335. JT_4_EP19_IWIN_DIVER,
  1336. JT_4_EP19_TAMARIN,
  1337. JT_4_EP19_LEON,
  1338. JT_4_EP19_AURELIE,
  1339. JT_4_EP19_LASGAND,
  1340. JT_4_EP19_VOGLINDE,
  1341. JT_4_EP19_VELLGUNDE,
  1342. JT_4_EP19_LEHAR,
  1343. JT_4_EP19_RGAN_R1,
  1344. JT_4_EP19_RGAN_R2,
  1345. JT_4_EP19_RGAN_R3,
  1346. JT_4_EP19_RGAN_SR1,
  1347. JT_4_EP19_RGAN_SR2,
  1348. JT_4_EP19_RGAN_SR3,
  1349. JT_1_RAGFES_01,
  1350. JT_1_RAGFES_01_M,
  1351. JT_4_RAGFES_02,
  1352. JT_4_RAGFES_02_M,
  1353. JT_4_RAGFES_03,
  1354. JT_4_RAGFES_03_M,
  1355. JT_4_RAGFES_04,
  1356. JT_4_RAGFES_04_M,
  1357. JT_4_RAGFES_05,
  1358. JT_4_RAGFES_05_M,
  1359. JT_4_RAGFES_06,
  1360. JT_4_RAGFES_06_M,
  1361. JT_4_RAGFES_07,
  1362. JT_4_RAGFES_07_M,
  1363. JT_4_RAGFES_08,
  1364. JT_4_RAGFES_08_M,
  1365. JT_4_RAGFES_09,
  1366. JT_4_RAGFES_09_M,
  1367. JT_4_RAGFES_10,
  1368. JT_4_RAGFES_10_M,
  1369. JT_4_RAGFES_11,
  1370. JT_4_RAGFES_11_M,
  1371. JT_4_RAGFES_12,
  1372. JT_4_RAGFES_12_M,
  1373. JT_4_RAGFES_13,
  1374. JT_4_RAGFES_13_M,
  1375. JT_4_RAGFES_14,
  1376. JT_4_RAGFES_14_M,
  1377. JT_4_RAGFES_15,
  1378. JT_4_RAGFES_15_M,
  1379. JT_4_RAGFES_16,
  1380. JT_4_RAGFES_16_M,
  1381. JT_4_EXJOB_NINJA2,
  1382. JT_ROZ_MQ_LUCIAN = 10510,
  1383. JT_ROZ_MQ_BRITIA,
  1384. JT_ROZ_MQ_ASSASIN01,
  1385. JT_STRANGE_B_SMITH1,
  1386. JT_STRONGER_B_SMTIH,
  1387. JT_NEW_NPC_3RD_END = 19999,
  1388. NPC_RANGE3_END, // Official: JT_NEW_NPC_3RD_END=19999
  1389. // Unofficial
  1390. JT_INVISIBLE = 32767,
  1391. JT_FAKENPC = -1
  1392. };
  1393. // Old NPC range
  1394. #define MAX_NPC_CLASS NPC_RANGE2_END
  1395. // New NPC range
  1396. #define MAX_NPC_CLASS2_START NPC_RANGE3_START
  1397. #define MAX_NPC_CLASS2_END NPC_RANGE3_END
  1398. //Checks if a given id is a valid npc id. [Skotlex]
  1399. //Since new npcs are added all the time, the max valid value is the one before the first mob (Scorpion = 1001)
  1400. #define npcdb_checkid(id) ( ( (id) > NPC_RANGE1_START && (id) < NPC_RANGE1_END ) || (id) == JT_HIDDEN_WARP_NPC || ( (id) > NPC_RANGE2_START && (id) < NPC_RANGE2_END ) || (id) == JT_INVISIBLE || ( (id) > NPC_RANGE3_START && (id) < NPC_RANGE3_END ) )
  1401. #ifdef PCRE_SUPPORT
  1402. void npc_chat_finalize(struct npc_data* nd);
  1403. #endif
  1404. //Script NPC events.
  1405. enum npce_event : uint8 {
  1406. NPCE_LOGIN,
  1407. NPCE_LOGOUT,
  1408. NPCE_LOADMAP,
  1409. NPCE_BASELVUP,
  1410. NPCE_JOBLVUP,
  1411. NPCE_DIE,
  1412. NPCE_KILLPC,
  1413. NPCE_KILLNPC,
  1414. NPCE_MAX
  1415. };
  1416. // Status of NPC view.
  1417. enum e_npcv_status : uint8 {
  1418. NPCVIEW_DISABLE = 0x01,
  1419. NPCVIEW_ENABLE = 0x02,
  1420. NPCVIEW_HIDEOFF = 0x04,
  1421. NPCVIEW_HIDEON = 0x08,
  1422. NPCVIEW_CLOAKOFF = 0x10,
  1423. NPCVIEW_CLOAKON = 0x20,
  1424. NPCVIEW_VISIBLE = 0x16,
  1425. NPCVIEW_INVISIBLE = 0x29,
  1426. NPCVIEW_CLOAK = 0x30,
  1427. };
  1428. struct view_data* npc_get_viewdata(int class_);
  1429. int npc_chat_sub(struct block_list* bl, va_list ap);
  1430. int npc_event_dequeue(struct map_session_data* sd,bool free_script_stack=true);
  1431. int npc_event(struct map_session_data* sd, const char* eventname, int ontouch);
  1432. int npc_touch_areanpc(struct map_session_data* sd, int16 m, int16 x, int16 y, struct npc_data* nd);
  1433. int npc_touch_area_allnpc(struct map_session_data* sd, int16 m, int16 x, int16 y);
  1434. int npc_touch_areanpc2(struct mob_data *md); // [Skotlex]
  1435. int npc_check_areanpc(int flag, int16 m, int16 x, int16 y, int16 range);
  1436. int npc_touchnext_areanpc(struct map_session_data* sd,bool leavemap);
  1437. int npc_click(struct map_session_data* sd, struct npc_data* nd);
  1438. bool npc_scriptcont(struct map_session_data* sd, int id, bool closing);
  1439. struct npc_data* npc_checknear(struct map_session_data* sd, struct block_list* bl);
  1440. int npc_buysellsel(struct map_session_data* sd, int id, int type);
  1441. e_purchase_result npc_buylist(struct map_session_data* sd, uint16 n, struct s_npc_buy_list *item_list);
  1442. static int npc_buylist_sub(struct map_session_data* sd, uint16 n, struct s_npc_buy_list *item_list, struct npc_data* nd);
  1443. uint8 npc_selllist(struct map_session_data* sd, int n, unsigned short *item_list);
  1444. e_purchase_result npc_barter_purchase( struct map_session_data& sd, std::shared_ptr<s_npc_barter> barter, std::vector<s_barter_purchase>& purchases );
  1445. void npc_parse_mob2(struct spawn_data* mob);
  1446. struct npc_data* npc_add_warp(char* name, short from_mapid, short from_x, short from_y, short xs, short ys, unsigned short to_mapindex, short to_x, short to_y);
  1447. int npc_globalmessage(const char* name,const char* mes);
  1448. const char *npc_get_script_event_name(int npce_index);
  1449. void npc_setcells(struct npc_data* nd);
  1450. void npc_unsetcells(struct npc_data* nd);
  1451. bool npc_movenpc(struct npc_data* nd, int16 x, int16 y);
  1452. bool npc_is_cloaked(struct npc_data* nd, struct map_session_data* sd);
  1453. bool npc_enable_target(npc_data& nd, uint32 char_id, e_npcv_status flag);
  1454. #define npc_enable(nd, flag) npc_enable_target(nd, 0, flag)
  1455. void npc_setdisplayname(struct npc_data* nd, const char* newname);
  1456. void npc_setclass(struct npc_data* nd, short class_);
  1457. struct npc_data* npc_name2id(const char* name);
  1458. int npc_isnear_sub(struct block_list* bl, va_list args);
  1459. bool npc_isnear(struct block_list * bl);
  1460. int npc_get_new_npc_id(void);
  1461. int npc_addsrcfile(const char* name, bool loadscript);
  1462. void npc_delsrcfile(const char* name);
  1463. int npc_parsesrcfile(const char* filepath);
  1464. void do_clear_npc(void);
  1465. void do_final_npc(void);
  1466. void do_init_npc(void);
  1467. void npc_event_do_oninit(void);
  1468. int npc_event_do(const char* name);
  1469. int npc_event_do_id(const char* name, int rid);
  1470. int npc_event_doall(const char* name);
  1471. void npc_event_runall( const char* eventname );
  1472. int npc_event_doall_id(const char* name, int rid);
  1473. int npc_event_doall_path(const char* event_name, const char* path);
  1474. int npc_timerevent_start(struct npc_data* nd, int rid);
  1475. int npc_timerevent_stop(struct npc_data* nd);
  1476. void npc_timerevent_quit(struct map_session_data* sd);
  1477. t_tick npc_gettimerevent_tick(struct npc_data* nd);
  1478. int npc_settimerevent_tick(struct npc_data* nd, int newtimer);
  1479. int npc_remove_map(struct npc_data* nd);
  1480. void npc_unload_duplicates (struct npc_data* nd);
  1481. int npc_unload(struct npc_data* nd, bool single);
  1482. int npc_reload(void);
  1483. void npc_read_event_script(void);
  1484. int npc_script_event(struct map_session_data* sd, enum npce_event type);
  1485. int npc_duplicate4instance(struct npc_data *snd, int16 m);
  1486. int npc_instanceinit(struct npc_data* nd);
  1487. int npc_instancedestroy(struct npc_data* nd);
  1488. int npc_cashshop_buy(struct map_session_data *sd, t_itemid nameid, int amount, int points);
  1489. void npc_shop_currency_type(struct map_session_data *sd, struct npc_data *nd, int cost[2], bool display);
  1490. extern struct npc_data* fake_nd;
  1491. int npc_cashshop_buylist(struct map_session_data *sd, int points, int count, struct PACKET_CZ_PC_BUY_CASH_POINT_ITEM_sub* item_list);
  1492. bool npc_shop_discount(struct npc_data* nd);
  1493. #if PACKETVER >= 20131223
  1494. void npc_market_tosql(const char *exname, struct npc_item_list *list);
  1495. void npc_market_delfromsql_(const char *exname, t_itemid nameid, bool clear);
  1496. #endif
  1497. #ifdef SECURE_NPCTIMEOUT
  1498. TIMER_FUNC(npc_secure_timeout_timer);
  1499. #endif
  1500. // @commands (script-based)
  1501. int npc_do_atcmd_event(struct map_session_data* sd, const char* command, const char* message, const char* eventname);
  1502. bool npc_unloadfile( const char* path );
  1503. #endif /* NPC_HPP */