12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565 |
- // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
- // For more information, see LICENCE in the main folder
- #ifndef NPC_HPP
- #define NPC_HPP
- #include <map>
- #include <vector>
- #include "../common/database.hpp"
- #include "../common/timer.hpp"
- #include "../config/core.hpp"
- #include "clif.hpp" //
- #include "map.hpp" // struct block_list
- #include "status.hpp" // struct status_change
- #include "unit.hpp" // struct unit_data
- #include "navi.hpp" // navi stuff
- struct block_list;
- struct npc_data;
- struct view_data;
- struct npc_timerevent_list {
- int timer,pos;
- };
- struct npc_label_list {
- char name[NAME_LENGTH+1];
- int pos;
- };
- /// Item list for NPC sell/buy list
- struct npc_item_list {
- t_itemid nameid;
- unsigned int value;
- #if PACKETVER >= 20131223
- int32 qty; ///< Stock counter (Market shop)
- uint8 flag; ///< 1: Item added by npcshopitem/npcshopadditem, force load! (Market shop)
- #endif
- };
- /// List of bought/sold item for NPC shops
- struct s_npc_buy_list {
- int32 qty; ///< Amount of item will be bought
- uint32 nameid; ///< ID of item will be bought
- };
- struct s_stylist_costs{
- uint32 price;
- t_itemid requiredItem;
- t_itemid requiredItemBox;
- };
- struct s_stylist_entry{
- uint16 look;
- int16 index;
- uint32 value;
- std::shared_ptr<s_stylist_costs> human;
- std::shared_ptr<s_stylist_costs> doram;
- };
- struct s_stylist_list{
- uint16 look;
- std::unordered_map<int16, std::shared_ptr<s_stylist_entry>> entries;
- };
- class StylistDatabase : public TypesafeYamlDatabase<uint32, s_stylist_list>{
- private:
- bool parseCostNode( std::shared_ptr<s_stylist_entry> entry, bool doram, const ryml::NodeRef& node );
- public:
- StylistDatabase() : TypesafeYamlDatabase( "STYLIST_DB", 1 ){
- }
- const std::string getDefaultLocation() override;
- uint64 parseBodyNode( const ryml::NodeRef& node ) override;
- };
- extern StylistDatabase stylist_db;
- struct s_npc_barter_requirement{
- uint16 index;
- t_itemid nameid;
- uint16 amount;
- int8 refine;
- };
- struct s_npc_barter_item{
- uint16 index;
- t_itemid nameid;
- bool stockLimited;
- uint32 stock;
- uint32 price;
- std::map<uint16, std::shared_ptr<s_npc_barter_requirement>> requirements;
- };
- struct s_npc_barter{
- std::string name;
- int16 m;
- uint16 x;
- uint16 y;
- uint8 dir;
- int16 sprite;
- std::map<uint16, std::shared_ptr<s_npc_barter_item>> items;
- };
- class BarterDatabase : public TypesafeYamlDatabase<std::string, s_npc_barter>{
- public:
- BarterDatabase() : TypesafeYamlDatabase( "BARTER_DB", 1 ){
- }
- const std::string getDefaultLocation();
- uint64 parseBodyNode( const ryml::NodeRef& node );
- void loadingFinished();
- };
- extern BarterDatabase barter_db;
- struct s_barter_purchase{
- std::shared_ptr<s_npc_barter_item> item;
- uint32 amount;
- item_data* data;
- };
- struct s_questinfo {
- e_questinfo_types icon;
- e_questinfo_markcolor color;
- struct script_code* condition;
- ~s_questinfo(){
- if( this->condition != nullptr ){
- script_free_code( this->condition );
- }
- }
- };
- struct npc_data {
- struct block_list bl;
- struct unit_data ud; //Because they need to be able to move....
- struct view_data vd;
- struct status_change sc; //They can't have status changes, but.. they want the visual opt values.
- struct npc_data *master_nd;
- short class_,speed;
- char name[NPC_NAME_LENGTH+1];// display name
- char exname[NPC_NAME_LENGTH+1];// unique npc name
- int chat_id,touching_id;
- unsigned int next_walktime;
- int instance_id;
- unsigned size : 2;
- struct status_data status;
- unsigned int level,stat_point;
- struct s_npc_params {
- unsigned short str, agi, vit, int_, dex, luk;
- } params;
- void* chatdb; // pointer to a npc_parse struct (see npc_chat.cpp)
- char* path;/* path dir */
- enum npc_subtype subtype;
- bool trigger_on_hidden;
- int src_id;
- union {
- struct {
- struct script_code *script;
- short xs,ys; // OnTouch area radius
- int guild_id;
- t_tick timer;
- int timerid,timeramount,rid;
- t_tick timertick;
- struct npc_timerevent_list *timer_event;
- int label_list_num;
- struct npc_label_list *label_list;
- } scr;
- struct {
- struct npc_item_list *shop_item;
- uint16 count;
- t_itemid itemshop_nameid; // Item Shop cost item ID
- char pointshop_str[32]; // Point Shop cost variable name
- bool discount;
- } shop;
- struct {
- short xs,ys; // OnTouch area radius
- short x,y; // destination coords
- unsigned short mapindex; // destination map
- } warp;
- struct {
- struct mob_data *md;
- time_t kill_time;
- char killer_name[NAME_LENGTH];
- int spawn_timer;
- } tomb;
- struct {
- bool extended;
- } barter;
- } u;
- struct sc_display_entry **sc_display;
- unsigned char sc_display_count;
- std::vector<std::shared_ptr<s_questinfo>> qi_data;
- struct {
- t_tick timeout;
- unsigned long color;
- } progressbar;
- #ifdef GENERATE_NAVI
- struct navi_link navi; // for warps and the src of npcs
- std::vector<navi_link> links; // for extra links, like warper npc
- #endif
- };
- struct eri;
- extern struct eri *npc_sc_display_ers;
- #define START_NPC_NUM 110000000
- enum e_job_types
- {
- NPC_RANGE1_START = 44,
- JT_WARPNPC,
- JT_1_ETC_01,
- JT_1_M_01,
- JT_1_M_02,
- JT_1_M_03,
- JT_1_M_04,
- JT_1_M_BARD,
- JT_1_M_HOF,
- JT_1_M_INNKEEPER,
- JT_1_M_JOBGUIDER,
- JT_1_M_JOBTESTER,
- JT_1_M_KNIGHTMASTER,
- JT_1_M_LIBRARYMASTER,
- JT_1_M_MERCHANT,
- JT_1_M_ORIENT01,
- JT_1_M_PASTOR,
- JT_1_M_PUBMASTER,
- JT_1_M_SIZ,
- JT_1_M_SMITH,
- JT_1_M_WIZARD,
- JT_1_M_YOUNGKNIGHT,
- JT_1_F_01,
- JT_1_F_02,
- JT_1_F_03,
- JT_1_F_04,
- JT_1_F_GYPSY,
- JT_1_F_LIBRARYGIRL,
- JT_1_F_MARIA,
- JT_1_F_MERCHANT_01,
- JT_1_F_MERCHANT_02,
- JT_1_F_ORIENT_01,
- JT_1_F_ORIENT_02,
- JT_1_F_ORIENT_03,
- JT_1_F_ORIENT_04,
- JT_1_F_PRIEST,
- JT_1_F_PUBGIRL,
- JT_4_DOG01,
- JT_4_KID01,
- JT_4_M_01,
- JT_4_M_02,
- JT_4_M_03,
- JT_4_M_04,
- JT_4_M_BARBER,
- JT_4_M_ORIENT01,
- JT_4_M_ORIENT02,
- JT_4_F_01,
- JT_4_F_02,
- JT_4_F_03,
- JT_4_F_04,
- JT_4_F_MAID,
- JT_4_F_SISTER,
- JT_4W_KID,
- JT_4W_M_01,
- JT_4W_M_02,
- JT_4W_M_03,
- JT_4W_SAILOR,
- JT_4W_F_01,
- JT_8_F,
- JT_8_F_GRANDMOTHER,
- JT_EFFECTLAUNCHER,
- JT_8W_SOLDIER,
- JT_1_M_MOC_LORD,
- JT_1_M_PAY_ELDER,
- JT_1_M_PRON_KING,
- JT_4_M_MANAGER,
- JT_4_M_MINISTER,
- JT_HIDDEN_NPC,
- JT_4_F_KAFRA6,
- JT_4_F_KAFRA5,
- JT_4_F_KAFRA4,
- JT_4_F_KAFRA3,
- JT_4_F_KAFRA2,
- JT_4_F_KAFRA1,
- JT_2_M_THIEFMASTER,
- JT_2_M_SWORDMASTER,
- JT_2_M_PHARMACIST,
- JT_2_M_MOLGENSTEIN,
- JT_2_M_DYEINGER,
- JT_2_F_MAGICMASTER,
- JT_4_F_TELEPORTER,
- JT_4_M_TELEPORTER,
- NPC_RANGE1_END,
- JT_HIDDEN_WARP_NPC = 139,
- NPC_RANGE2_START = 400,
- JT_4_M_MUT2,
- JT_4_M_SCIENCE,
- JT_4_F_VALKYRIE2,
- JT_4_M_UNCLEKNIGHT,
- JT_4_M_YOUNGKNIGHT,
- JT_2_MONEMUS,
- JT_4_M_ATEIL,
- JT_4_F_ANNIVERSARY,
- JT_4_M_GREATPO,
- JT_4_M_NOVELIST,
- JT_4_M_CHAMPSOUL,
- JT_4_M_OLDFRIAR,
- JT_4_M_CRU_SOLD,
- JT_4_M_CRU_KNT,
- JT_4_M_CRU_HEAD,
- JT_4_M_CRU_CRUA,
- JT_4_M_KY_SOLD,
- JT_4_M_KY_KNT,
- JT_4_M_KY_HEAD,
- JT_4_M_KY_KIYOM,
- JT_4_M_BOSSCAT,
- JT_4_M_BABYCAT,
- JT_4W_F_KAFRA2,
- JT_4_F_MUNAK,
- JT_4_M_BONGUN,
- JT_4_BEAR,
- JT_4_BLUEWOLF,
- JT_4_PECOPECO,
- JT_4_M_JP_MID,
- JT_4_M_JP_RUN,
- JT_4_ORCLADY,
- JT_4_ORCLADY2,
- JT_4_ORCWARRIOR,
- JT_4_ORCWARRIOR2,
- JT_4_F_FAIRY,
- JT_4_F_FAIRYKID,
- JT_4_F_FAIRYKID2,
- JT_4_F_FAIRYKID3,
- JT_4_F_FAIRYKID4,
- JT_4_F_FAIRYKID5,
- JT_4_F_FAIRYKID6,
- JT_4_M_FAIRYKID,
- JT_4_M_FAIRYKID2,
- JT_4_M_FAIRYKID3,
- JT_4_M_FAIRYKID4,
- JT_4_M_FAIRYKID5,
- JT_4_M_FAIRYSOLDIER,
- JT_4_M_TUFFOLD,
- JT_4_MAN_BENKUNI,
- JT_4_MAN_GALTUN,
- JT_4_MAN_JERUTOO,
- JT_4_MAN_LAVAIL,
- JT_4_MAN_NITT,
- JT_4_MAN_PIOM,
- JT_4_MAN_PIOM2,
- JT_4_M_DSTMAN,
- JT_4_M_DSTMANDEAD,
- JT_4_BABYLEOPARD,
- JT_4_M_REDSWORD,
- JT_4_MAN_PIOM3,
- JT_4_M_FAIRYSOLDIER2,
- JT_4_F_FAIRYSOLDIER,
- JT_4_DRAGON_EGG,
- JT_4_MIMIC,
- JT_4_F_FAIRY1,
- JT_4_F_GUILLOTINE,
- JT_4_M_GUILLOTINE,
- JT_4_M_KNIGHT_BLACK,
- JT_4_M_KNIGHT_GOLD,
- JT_4_M_KNIGHT_SILVER,
- JT_4_SKULL_MUD,
- JT_4_M_BRZ_INDIAN,
- JT_4_F_BRZ_INDIAN,
- JT_4_F_BRZ_INDOLD,
- JT_4_M_BRZ_JACI,
- JT_4_M_BRZ_MAN1,
- JT_4_M_BRZ_MAN2,
- JT_4_F_BRZ_WOMAN,
- JT_4_M_MINSTREL,
- JT_4_M_MINSTREL1,
- JT_4_M_SHADOWCHASER,
- JT_4_F_SHADOWCHASER,
- JT_4_M_SURA,
- JT_4_F_SURA,
- JT_4_F_WANDERER,
- JT_4_M_BARD,
- JT_1_FLAG_NOFEAR,
- JT_4_M_NOFEARGUY,
- JT_4_MAN_PIOM6,
- JT_4_MAN_PIOM4,
- JT_4_MAN_PIOM5,
- JT_4_MAN_GALTUN1,
- JT_4_HUMAN_GERUTOO,
- JT_4_M_ROKI,
- JT_4_M_MERCAT1,
- JT_4_M_MERCAT2,
- JT_4_M_CATMAN1,
- JT_4_M_CATMAN2,
- JT_4_F_BRZ_WOMAN2,
- JT_4_M_JP_DISH,
- JT_4_F_JP_NOAH,
- JT_4_F_JP_OZ,
- JT_4_F_JP_CHROME,
- JT_4_F_JP_RINNE,
- JT_4_WHITETIGER,
- JT_4_VENDING_MACHINE,
- JT_4_MISTY,
- JT_4_NECORING,
- JT_4_ELEPHANT,
- JT_4_F_NYDHOG,
- JT_4_F_NYDHOG2,
- JT_4_M_ROKI2,
- JT_4_M_DOGTRAVELER,
- JT_4_M_DOGTRAVELER2,
- JT_4_F_DOGTRAVELER,
- JT_4_M_RAFLE_GR,
- JT_4_M_RAFLE_OLD,
- JT_4_F_RAFLE_PK,
- JT_4_M_LYINGDOG,
- JT_4_F_MORAFINE1,
- JT_4_F_MORAFINE2,
- JT_4_M_RAFLE_OR,
- JT_4_F_RAFLE_YE,
- JT_4_M_RAFLE_VI,
- JT_4_F_RAFLE_VI,
- JT_4_M_ARDHA,
- JT_4_CREEPER,
- JT_JP_RUFAKU,
- JT_JP_SUPIKA,
- JT_JP_SABIKU,
- JT_JP_ARUGORU,
- JT_JP_ARUNA,
- JT_JP_AIRI,
- JT_4_M_DEWOLDMAN,
- JT_4_M_DEWOLDWOMAN,
- JT_4_M_DEWMAN,
- JT_4_M_DEWWOMAN,
- JT_4_M_DEWBOY,
- JT_4_M_DEWGIRL,
- JT_4_M_DEWZATICHIEF,
- JT_4_M_DEWZATIMAN,
- JT_4_M_ALCHE_E,
- JT_4_MASK_SMOKEY,
- JT_4_CAT_SAILOR1,
- JT_4_CAT_SAILOR2,
- JT_4_CAT_SAILOR3,
- JT_4_CAT_SAILOR4,
- JT_4_CAT_CHEF,
- JT_4_CAT_MERMASTER,
- JT_4_CRACK,
- JT_4_ASTER,
- JT_4_F_STARFISHGIRL,
- JT_4_CAT_DOWN,
- JT_4_CAT_REST,
- JT_4_CAT_3COLOR,
- JT_4_CAT_ADMIRAL,
- JT_4_SOIL,
- JT_4_F_ALCHE_A,
- JT_4_CAT_ADV1,
- JT_4_CAT_ADV2,
- JT_4_CAT_SAILOR5,
- JT_2_DROP_MACHINE,
- JT_2_SLOT_MACHINE,
- JT_2_VENDING_MACHINE1,
- JT_MOB_TOMB,
- JT_4_MYSTCASE,
- JT_4_M_SIT_NOVICE,
- JT_4_OCTOPUS_LEG,
- JT_4_F_NURSE,
- JT_4_MAL_SOLDIER,
- JT_4_MAL_CAPTAIN,
- JT_4_MAL_BUDIDAI,
- JT_4_M_MAYOR,
- JT_4_M_BARYO_OLD,
- JT_4_F_BARYO_OLD,
- JT_4_F_BARYO_GIRL,
- JT_4_M_BARYO_BOY,
- JT_4_M_BARYO_MAN,
- JT_4_F_BARYO_WOMAN,
- JT_4_BARYO_CHIEF,
- JT_4_MAL_KAFRA,
- JT_4_M_MALAYA,
- JT_4_F_MALAYA,
- JT_4_F_PATIENT,
- JT_4_M_PATIENT,
- JT_4_F_KR_TIGER,
- JT_4_M_KR_BOY,
- JT_4_M_KAGE_OLD,
- JT_4_WHIKEBAIN,
- JT_4_EREND,
- JT_4_RAWREL,
- JT_4_ARMAIA,
- JT_4_KAVAC,
- JT_4_YGNIZEM,
- JT_4_EREMES,
- JT_4_MAGALETA,
- JT_4_KATRINN,
- JT_4_SHECIL,
- JT_4_SEYREN,
- JT_4_HARWORD,
- JT_4_F_JP_CYNTHIA,
- JT_4_M_JP_GUSTON,
- JT_4_M_JP_BERKUT,
- JT_4_F_JP_DARK_ADELAIDE,
- JT_4_M_JP_DARK_DARIUS,
- JT_4_M_JP_JESTER,
- JT_XMAS_SMOKEY_B,
- JT_XMAS_SMOKEY_R,
- JT_XMAS_SMOKEY_Y,
- JT_4_F_CLOCKDOLL,
- JT_4_F_FAIRY2,
- JT_4_F_PINKWOMAN,
- JT_4_FAIRYDEADLEAF,
- JT_4_FROG,
- JT_4_M_BLACKMAN,
- JT_4_M_BLUEMAN,
- JT_4_M_FAIRYANG,
- JT_4_M_FAIRYAVANT,
- JT_4_M_FAIRYFREAK,
- JT_4_M_FAIRYKID6,
- JT_4_M_FAIRYSCHOLAR,
- JT_4_M_FAIRYSCHOLAR_DIRTY,
- JT_4_M_FARIY_HISIE,
- JT_4_M_FARIYKING,
- JT_4_M_NEWOZ,
- JT_4_M_OLIVER,
- JT_4_M_PROFESSORWORM,
- JT_4_M_REDMAN,
- JT_4_F_GELKA,
- JT_4_M_ROTERT,
- JT_4_BLACKDRAGON,
- JT_4_M_GUNSLINGER,
- JT_4_F_GUNSLINGER,
- JT_4_M_ARCHER,
- JT_4_M_SWORDMAN,
- JT_4_M_NINJA_RED,
- JT_4_M_NINJA_BLUE,
- JT_4_M_THIEF_RUMIN,
- JT_4_M_NOV_RUMIN,
- JT_4_F_MAYSEL,
- JT_4_F_ACOLYTE,
- JT_4_M_NOV_HUNT,
- JT_4_F_GENETIC,
- JT_4_F_TAEKWON,
- JT_4_F_SWORDMAN,
- JT_4_F_IU,
- JT_4_M_RAGI,
- JT_4_M_MELODY,
- JT_4_TRACE,
- JT_4_F_HIMEL,
- JT_4_LEVITATEMAN,
- JT_4_M_HEINRICH,
- JT_4_M_ROYALGUARD,
- JT_4_M_BARMUND,
- JT_4_F_KHALITZBURG,
- JT_4_F_HIMEL2,
- JT_4_WHITEKNIGHT,
- JT_4_COCO,
- JT_4_M_ALADDIN,
- JT_4_M_GENIE,
- JT_4_F_GENIE,
- JT_4_JP_MID_SWIM,
- JT_4_JP_RUNE_SWIM,
- JT_4_F_FENRIR,
- JT_4_F_GEFFEN_FAY,
- JT_4_F_IRIS,
- JT_4_F_LUCILE,
- JT_4_F_SARAH_BABY,
- JT_4_GEFFEN_01,
- JT_4_GEFFEN_02,
- JT_4_GEFFEN_03,
- JT_4_GEFFEN_04,
- JT_4_GEFFEN_05,
- JT_4_GEFFEN_06,
- JT_4_GEFFEN_07,
- JT_4_GEFFEN_08,
- JT_4_GEFFEN_09,
- JT_4_GEFFEN_10,
- JT_4_GEFFEN_11,
- JT_4_GEFFEN_12,
- JT_4_GEFFEN_13,
- JT_4_GEFFEN_14,
- JT_4_M_CHAOS,
- JT_4_M_CHIEF_IRIN,
- JT_4_M_SAKRAY,
- JT_4_M_SAKRAYROYAL,
- JT_4_TOWER_01,
- JT_4_TOWER_02,
- JT_4_TOWER_03,
- JT_4_TOWER_04,
- JT_4_TOWER_05,
- JT_4_TOWER_06,
- JT_4_TOWER_07,
- JT_4_TOWER_08,
- JT_4_TOWER_09,
- JT_4_TOWER_10,
- JT_4_TOWER_11,
- JT_4_TOWER_12,
- JT_4_TOWER_13,
- JT_8_F_GIRL,
- JT_4_F_GODEMOM,
- JT_4_F_GON,
- JT_4_F_KID2,
- JT_4_M_BIBI,
- JT_4_M_GEF_SOLDIER,
- JT_4_M_KID1,
- JT_4_M_MOC_SOLDIER,
- JT_4_M_PAY_SOLDIER,
- JT_4_M_SEAMAN,
- JT_4_M_SNOWMAN,
- JT_4_F_05,
- JT_4_M_05,
- JT_4_M_06,
- JT_4_F_06,
- JT_4_M_PIERROT,
- JT_4_M_KID2,
- JT_4_F_KID3,
- JT_4_M_SANTA,
- JT_4_F_NACORURI,
- JT_4_F_SHAMAN,
- JT_4_F_KAFRA7,
- JT_GUILD_FLAG,
- JT_1_SHADOW_NPC,
- JT_4_F_07,
- JT_4_F_JOB_ASSASSIN,
- JT_4_F_JOB_BLACKSMITH,
- JT_4_F_JOB_HUNTER,
- JT_4_F_JOB_KNIGHT,
- JT_4_F_NOVICE,
- JT_4_M_JOB_ASSASSIN,
- JT_4_M_JOB_BLACKSMITH,
- JT_4_M_JOB_HUNTER,
- JT_4_M_JOB_KNIGHT1,
- JT_4_M_JOB_KNIGHT2,
- JT_4_M_JOB_WIZARD,
- JT_4_BAPHOMET,
- JT_4_DARKLORD,
- JT_4_DEVIRUCHI,
- JT_8_DOPPEL,
- JT_2_M_ALCHE,
- JT_2_M_BARD_ORIENT,
- JT_2_M_SAGE_B,
- JT_2_M_SAGE_OLD,
- JT_4_F_ALCHE,
- JT_4_F_CRU,
- JT_4_F_MONK,
- JT_4_F_ROGUE,
- JT_4_M_ALCHE_A,
- JT_4_M_ALCHE_B,
- JT_4_M_ALCHE_C,
- JT_4_M_CRU,
- JT_4_M_CRU_OLD,
- JT_4_M_MONK,
- JT_4_M_SAGE_A,
- JT_4_M_SAGE_C,
- JT_4_F_SON,
- JT_4_F_JPN2,
- JT_4_F_JPN,
- JT_4_F_JPNCHIBI,
- JT_4_F_JPNOBA2,
- JT_4_F_JPNOBA,
- JT_4_M_JPN2,
- JT_4_M_JPN,
- JT_4_M_JPNCHIBI,
- JT_4_M_JPNOJI2,
- JT_4_M_JPNOJI,
- JT_8_M_JPNSOLDIER,
- JT_8_M_JPNMASTER,
- JT_4_F_JPNMU,
- JT_4_F_TWGIRL,
- JT_4_F_TWGRANDMOM,
- JT_4_F_TWMASKGIRL,
- JT_4_F_TWMIDWOMAN,
- JT_4_M_TWBOY,
- JT_4_M_TWMASKMAN,
- JT_4_M_TWMIDMAN,
- JT_4_M_TWOLDMAN,
- JT_4_M_TWTEAMAN,
- JT_4_M_YOYOROGUE,
- JT_8_M_TWSOLDIER,
- JT_4_F_UMGIRL,
- JT_4_F_UMOLDWOMAN,
- JT_4_F_UMWOMAN,
- JT_4_M_UMCHIEF,
- JT_4_M_UMDANCEKID2,
- JT_4_M_UMDANCEKID,
- JT_4_M_UMKID,
- JT_4_M_UMOLDMAN,
- JT_4_M_UMSOLDIER,
- JT_4_M_SALVATION,
- JT_4_F_NFDEADKAFRA,
- JT_4_F_NFDEADMGCIAN,
- JT_4_F_NFLOSTGIRL,
- JT_4_M_NFDEADMAN2,
- JT_4_M_NFDEADMAN,
- JT_4_M_NFDEADSWDMAN,
- JT_4_M_NFLOSTMAN,
- JT_4_M_NFMAN,
- JT_4_NFBAT,
- JT_4_NFCOCK,
- JT_4_NFCOFFIN,
- JT_4_NFWISP,
- JT_1_F_SIGNZISK,
- JT_1_M_SIGN1,
- JT_1_M_SIGNALCHE,
- JT_1_M_SIGNART,
- JT_1_M_SIGNMCNT,
- JT_1_M_SIGNMONK2,
- JT_1_M_SIGNMONK,
- JT_1_M_SIGNROGUE,
- JT_4_F_VALKYRIE,
- JT_TW_TOWER,
- JT_2_M_OLDBLSMITH,
- JT_4_F_CHNDOCTOR,
- JT_4_F_CHNDRESS1,
- JT_4_F_CHNDRESS2,
- JT_4_F_CHNDRESS3,
- JT_4_F_CHNWOMAN,
- JT_4_M_CHN8GUEK,
- JT_4_M_CHNCOOK,
- JT_4_M_CHNGENERL,
- JT_4_M_CHNMAN,
- JT_4_M_CHNMONK,
- JT_4_M_CHNOLD,
- JT_4_M_CHNSOLDIER,
- JT_4_M_DWARF,
- JT_4_M_GRANDMONK,
- JT_4_M_ROGUE,
- JT_4_M_DOMINO,
- JT_4_F_DOMINO,
- JT_4_F_ZONDAGIRL,
- JT_4_M_REIDIN_KURS,
- JT_4_M_ZONDAOYAJI,
- JT_4_M_BUDDHIST,
- JT_2_BOARD1,
- JT_2_BOARD2,
- JT_2_BULLETIN_BOARD,
- JT_4_F_THAIAYO,
- JT_4_F_THAIGIRL,
- JT_4_F_THAISHAMAN,
- JT_4_M_THAIAYO,
- JT_4_M_THAIOLD,
- JT_4_M_THAIONGBAK,
- JT_CLEAR_NPC,
- JT_4_F_RACING,
- JT_4_F_EINOLD,
- JT_4_M_EINOLD,
- JT_4_M_EINMINER,
- JT_4_M_DIEMAN,
- JT_4_F_EINWOMAN,
- JT_4_M_REPAIR,
- JT_4_M_EIN_SOLDIER,
- JT_4_M_YURI,
- JT_4_M_EINMAN2,
- JT_4_M_EINMAN,
- JT_2_F_SIGN1,
- JT_4_BOARD3,
- JT_4_BULLETIN_BOARD2,
- JT_4_F_AGENTKAFRA,
- JT_4_F_KAFRA8,
- JT_4_F_KAFRA9,
- JT_4_F_LGTGIRL,
- JT_4_F_LGTGRAND,
- JT_4_F_OPERATION,
- JT_4_LGTSCIENCE,
- JT_4_M_LGTGRAND,
- JT_4_M_LGTGUARD2,
- JT_4_M_LGTGUARD,
- JT_4_M_LGTMAN,
- JT_4_M_LGTPOOR,
- JT_4_M_OPERATION,
- JT_4_M_PRESIDENT,
- JT_4_M_REINDEER,
- JT_4_M_ZONDAMAN,
- JT_4_M_PECOKNIGHT,
- JT_4_CAT,
- JT_4_F_YUNYANG,
- JT_4_M_OILMAN,
- JT_4_F_CAPEGIRL,
- JT_4_M_MASKMAN,
- JT_4_M_SITDOWN,
- JT_4_F_SITDOWN,
- JT_4_M_ALCHE_D,
- JT_4_M_ACROSS,
- JT_4_F_ACROSS,
- JT_4_COOK,
- JT_4_M_LIEMAN,
- JT_2_POSTBOX,
- JT_4_BULL,
- JT_4_LAM,
- JT_4_F_HUGIRL,
- JT_4_F_HUGRANMA,
- JT_4_F_HUWOMAN,
- JT_4_F_KHELLISIA,
- JT_4_F_KHELLY,
- JT_4_M_HUBOY,
- JT_4_M_HUGRANFA,
- JT_4_M_HUMAN_01,
- JT_4_M_HUMAN_02,
- JT_4_M_HUMERCHANT,
- JT_4_M_HUOLDARMY,
- JT_4_M_KHKIEL,
- JT_4_M_KHKYEL,
- JT_4_M_KHMAN,
- JT_4_F_KHWOMAN,
- JT_4_F_KHGIRL,
- JT_4_M_KHBOY,
- JT_4_M_PHILMAN,
- JT_4_PORING,
- JT_2_COLAVEND,
- JT_4_F_SOCCER,
- JT_4_M_SOCCER7,
- JT_4_M_SOCCER9,
- JT_4_F_CHILD,
- JT_4_F_MADAME,
- JT_4_F_MASK1,
- JT_4_F_MASK,
- JT_4_F_RACHOLD,
- JT_4_F_SHABBY,
- JT_4_F_TRAINEE,
- JT_4_M_CHILD1,
- JT_4_M_CHILD,
- JT_4_M_DOCTOR,
- JT_4_M_FROZEN1,
- JT_4_M_FROZEN,
- JT_4_M_MASK1,
- JT_4_M_MASK,
- JT_4_M_MIDDLE1,
- JT_4_M_MIDDLE,
- JT_4_M_RACHMAN2,
- JT_4_M_RACHMAN1,
- JT_4_M_RACHOLD1,
- JT_4_M_RACHOLD,
- JT_4_M_RASWORD,
- JT_4_M_TRAINEE,
- JT_4_F_ARUNA_POP,
- JT_4_M_ARUNA_NFM1,
- JT_4_DST_CAMEL,
- JT_4_DST_SOLDIER,
- JT_4_F_DESERT,
- JT_4_F_DST_CHILD,
- JT_4_F_DST_GRAND,
- JT_4_M_DESERT,
- JT_4_M_DST_CHILD,
- JT_4_M_DST_GRAND,
- JT_4_M_DST_MASTER,
- JT_4_M_DST_TOUGH,
- JT_4_ANGELING,
- JT_4_ARCHANGELING,
- JT_4_GHOSTRING,
- JT_4_F_EDEN_MASTER,
- JT_4_F_EDEN_OFFICER,
- JT_4_M_EDEN_GUARDER,
- JT_4_M_PATRICK,
- JT_4_DONKEY,
- JT_4_M_TRISTAN,
- JT_4_WHITE_COW,
- JT_4_F_RUSCHILD,
- JT_4_F_RUSWOMAN1,
- JT_4_F_RUSWOMAN2,
- JT_4_F_RUSWOMAN3,
- JT_4_M_RUSCHILD,
- JT_4_M_GUSLIMAN,
- JT_4_M_RUSBALD,
- JT_4_M_RUSKING,
- JT_4_M_RUSKNIGHT,
- JT_4_M_RUSMAN1,
- JT_4_M_RUSMAN2,
- JT_4_M_DRAKE,
- JT_4_F_BABAYAGA,
- JT_4_F_RUSGREEN,
- JT_4_RUS_DWOLF,
- JT_1_FLAG_LION,
- JT_1_FLAG_EAGLE,
- JT_4_M_MIKID,
- JT_4_BLUE_FLOWER,
- JT_4_RED_FLOWER,
- JT_4_YELL_FLOWER,
- JT_4_F_CAVE1,
- JT_4_F_MUT1,
- JT_4_F_MUT2,
- JT_4_F_SCIENCE,
- JT_4_M_1STPRIN1,
- JT_4_M_1STPRIN2,
- JT_4_M_2NDPRIN1,
- JT_4_M_2NDPRIN2,
- JT_4_M_3RDPRIN1,
- JT_4_M_3RDPRIN2,
- JT_4_M_4THPRIN1,
- JT_4_M_4THPRIN2,
- JT_4_M_5THPRIN1,
- JT_4_M_5THPRIN2,
- JT_4_M_6THPRIN1,
- JT_4_M_6THPRIN2,
- JT_4_M_CASMAN1,
- JT_4_M_CAVE1,
- JT_4_M_MOCASS1,
- JT_4_M_MOCASS2,
- JT_4_M_MUT1,
- NPC_RANGE2_END, // Official JT_MON_BEGIN
- NPC_RANGE3_START = 10000, // Official JT_NEW_NPC_3RD_BEGIN
- JT_4_TOWER_14,
- JT_4_TOWER_15,
- JT_4_TOWER_16,
- JT_4_TOWER_17,
- JT_4_TREASURE_BOX,
- JT_ACADEMY_MASTER,
- JT_PORTAL,
- JT_THANATOS_BATTLE,
- JT_THANATOS_KEEP,
- JT_4_F_LYDIA,
- JT_4_LUDE,
- JT_4_ALIZA,
- JT_4_ALICE,
- JT_4_ARCHER_SKEL,
- JT_4_JACK,
- JT_4_SOLDIER_SKEL,
- JT_4_LOLI_RURI,
- JT_4_M_SAKRAY_TIED,
- JT_4_M_ANTONIO,
- JT_4_M_COOKIE,
- JT_4_M_BELIEVER01,
- JT_4_F_BELIEVER01,
- JT_4_M_BELIEVER02,
- JT_4_ROPEPILE,
- JT_4_BRICKPILE,
- JT_4_WOODPILE,
- JT_4_M_TAMARIN,
- JT_4_M_DEATH,
- JT_4_GHOST_STAND,
- JT_4_GHOST_COLLAPSE,
- JT_4_COOKIEHOUSE,
- JT_4_F_SKULL06GIRL,
- JT_4_NONMYSTCASE,
- JT_4_F_KIMI,
- JT_4_M_FROZEN_GC,
- JT_4_M_FROZEN_KN,
- JT_4_SNAKE_LORD,
- JT_4_F_MOCBOY,
- JT_4_F_RUNAIN,
- JT_4_M_ROEL,
- JT_4_F_SHALOSH,
- JT_4_ENERGY_RED,
- JT_4_ENERGY_BLUE,
- JT_4_ENERGY_YELLOW,
- JT_4_ENERGY_BLACK,
- JT_4_ENERGY_WHITE,
- JT_4_F_PERE01,
- JT_4_JITTERBUG,
- JT_4_SEA_OTTER,
- JT_4_GALAPAGO,
- JT_4_DESERTWOLF_B,
- JT_4_BB_PORING,
- JT_4_F_CHARLESTON01,
- JT_4_F_CHARLESTON02,
- JT_4_F_CHARLESTON03,
- JT_4_M_IAN,
- JT_4_M_OLDSCHOLAR,
- JT_4_F_LAPERM,
- JT_4_M_DEBON,
- JT_4_M_BIRMAN,
- JT_4_F_SHAM,
- JT_4_M_REBELLION,
- JT_4_F_REBELLION,
- JT_4_CHN_SHAOTH,
- JT_4_SHOAL,
- JT_4_F_SARAH,
- JT_4_GIGANTES_BIG,
- JT_4_GIGANTES,
- JT_4_GIGANTES_SMALL,
- JT_4_GARGOYLE_STATUE,
- JT_4_AIRA,
- JT_4_EZELLA,
- JT_4_KULUNA,
- JT_4_LUNE,
- JT_4_MALLINA,
- JT_4_MORIN,
- JT_4_NASARIN,
- JT_4_F_BERRYTEA,
- JT_4_F_FRUIT,
- JT_4_SCR_MT_ROBOTS,
- JT_4_MACHINE_DEVICE,
- JT_4_GC109,
- JT_4_SYS_MSG,
- JT_4_M_TATIO,
- JT_4_M_REKENBER,
- JT_4_XMAS_CAT1,
- JT_4_XMAS_CAT2,
- JT_4_XMAS_CAT3,
- JT_4_XMAS_CAT4,
- JT_4_XMAS_CAT5,
- JT_4_XMAS_CAT6,
- JT_4_M_DEATH2,
- JT_4_S_KADOMATSU,
- JT_4_B_KADOMATSU,
- JT_4_F_08,
- JT_4_F_08_STATUE,
- JT_4_M_DARKPRIEST,
- JT_4_JP_GARM_H,
- JT_4_JP_MEDUSA_H,
- JT_4_CHN_GVG_01,
- JT_4_SPRING_RABBIT,
- JT_4_PD_TYRA,
- JT_4_PD_TYRANOS,
- JT_4_PD_PLESI,
- JT_4_PD_PLESIO,
- JT_4_PD_BRACHI,
- JT_4_PD_BRACHIOS,
- JT_4_PD_GOLDDRAGON,
- JT_4_PD_ZAEROG,
- JT_4_PD_TAMADORA,
- JT_4_JP_EDGA_H,
- JT_4_JP_BRAGOLEM_H,
- JT_4_EL_AQUA,
- JT_4_EP16_NIHIL,
- JT_4_EP16_SPICA,
- JT_4_EP16_SKIA,
- JT_4_EP16_PETER,
- JT_4_EP16_CRUX,
- JT_4_EP16_GRANZ,
- JT_4_EP16_STOLZ,
- JT_4_EP16_EGEO,
- JT_4_EP16_COOK,
- JT_4_EP16_MARK,
- JT_4_EP16_TAMARIN,
- JT_4_EP16_POE,
- JT_4_EP16_ISAAC,
- JT_4_EP16_HELMUT,
- JT_4_EP16_WOLF,
- JT_4_EP16_MEYER,
- JT_4_EP16_AGNES,
- JT_4_EP16_FOOD,
- JT_4_EP16_LOUVIERE,
- JT_4_EP16_MAX,
- JT_4_EP16_SPIEGEL,
- JT_4_MOONLIGHT,
- JT_4_MISTRESS,
- JT_4_DRACULA,
- JT_4_STORMKNIGHT,
- JT_4_TATTER,
- JT_4_AS_RAGGED_GOLEM,
- JT_4_AS_BLOODY_KNIGHT,
- JT_4_AS_WIND_GHOST,
- JT_4_F_BIJOU,
- JT_4_EP16_COOK2,
- JT_4_SERVICE_30_M_01,
- JT_4_SERVICE_30_F_01,
- JT_4_SCR_AT_ROBOTS,
- JT_4_F_RANGER,
- JT_4_WAG,
- JT_4_NPC_TRAP,
- JT_4_RAGGLER,
- JT_4_DR_PEPE,
- JT_4_DR_GAMBERI,
- JT_4_DR_AGLIO,
- JT_4_DR_OLIO,
- JT_4_DR_STELO,
- JT_4_DR_TORTEL,
- JT_4_BASIL_SLAVE,
- JT_4_DOU_JINDO,
- JT_4_DOU_SIBA,
- JT_4_TARUTUPI,
- JT_4_DR_SOLDIER,
- JT_4_DR_M_01,
- JT_4_DR_M_02,
- JT_4_DR_F_01,
- JT_4_DR_F_02,
- JT_4_DR_KID_01,
- JT_4_JP_2015EVT,
- JT_4_ALLIGATOR,
- JT_4_ANOLIAN,
- JT_4_TACNU,
- JT_4_CENERE,
- JT_4_F_ARUNA_POP2,
- JT_4_JACK_HEAD,
- JT_4_INJUSTICE,
- JT_4_BLOODYMAN,
- JT_4_GIBBET,
- JT_4_DULLAHAN,
- JT_4_M_LAZY,
- JT_4_M_GONY,
- JT_4_M_ROOKIE,
- JT_4_M_PHILOFONTES,
- JT_4_F_ESTLOVELOY,
- JT_4_F_LEEDSH,
- JT_4_F_DIENE,
- JT_4_F_COATNEIS,
- JT_4_M_RUPERT,
- JT_4_M_FALLENGONY,
- JT_4_M_EISEN,
- JT_4_F_DEADEVIL,
- JT_4_F_HUNTER_EVIL,
- JT_4_F_ELENA,
- JT_4_F_ANYA,
- JT_4_M_SEIREN_UC,
- JT_4_M_GUNSLINGER2,
- JT_4_M_GUNSLINGER3,
- JT_4_M_REBELLION2,
- JT_4_M_REBELLION3,
- JT_4_F_GUNSLINGER2,
- JT_4_F_GUNSLINGER3,
- JT_4_F_REBELLION2,
- JT_4_F_REBELLION3,
- JT_4_M_ILYA,
- JT_4_ELDER = 10205,
- JT_4_LUNATIC,
- JT_4_F_NOVICE2,
- JT_4_WICKEDNYMPH,
- JT_4_F_PREMI,
- JT_4_M_COSTELL,
- JT_4_M_YATTWARP,
- JT_4_M_EVOKASCUDI,
- JT_4_M_JOHNNYJAMES,
- JT_4_M_ALBERTFORD,
- JT_4_M_SEANMCCURDY,
- JT_4_M_KARAMPUCCI,
- JT_4_M_CACTUSMAN1,
- JT_4_M_CACTUSMAN2,
- JT_4_M_CACTUSMAN3,
- JT_4_M_CACTUSLADY,
- JT_4_M_GAST,
- JT_4_M_CACTUSCHILD,
- JT_4_KING,
- JT_4_F_BOMI,
- JT_4_M_CACTUSCHIEF,
- JT_4_F_CACTUSCHILD2,
- JT_4_F_CACTUSLADY2,
- JT_4_F_CACTUSLADY3,
- JT_4_M_CACTUS,
- JT_4_M_COWRAIDERS1,
- JT_4_M_COWRAIDERS2,
- JT_4_M_COWRAIDERS3,
- JT_4_F_JP14THEVT,
- JT_4_M_POORSCHOLAR,
- JT_4_M_PEPPERROTI,
- JT_JP_NPC01,
- JT_4_PURPLE_WARP,
- JT_4_F_NARIN,
- JT_4_M_URGENT_MAN,
- JT_4_M_KEEN_SOLDIER,
- JT_4_F_SLOPPY_WOMAN,
- JT_4_F_DRKAFRA01,
- JT_4_M_DRZONDA01,
- JT_4_M_SWD_RENO,
- JT_4_M_KNG_RENO,
- JT_4_M_AC_RUMIN,
- JT_4_M_HIGH_WIZARD,
- JT_4_SYSTEM_BOX,
- JT_4_STEELBOX,
- JT_4_WOODBOX,
- JT_4_M_POPFESTA,
- JT_4_BONFIRE,
- JT_4_PCCOUNT,
- JT_4_LAVAGOLEM,
- JT_4_F_IA,
- JT_4_LOCKE,
- JT_4_LIL_LIF,
- JT_4_LIL_LIF2,
- JT_4_F_DRAGONHAT,
- JT_4_M_DRAGONHAT,
- JT_JP_NPC02,
- JT_JP_NPC03,
- JT_JP_NPC04,
- JT_JP_NPC05,
- JT_JP_NPC06,
- JT_JP_NPC07,
- JT_JP_NPC08,
- JT_JP_NPC09,
- JT_JP_NPC10,
- JT_4_FIRERING,
- JT_4_SCATLETON,
- JT_4_JP_AB_NPC_001,
- JT_4_JP_AB_NPC_002,
- JT_4_JP_AB_NPC_003,
- JT_4_JP_AB_NPC_004,
- JT_4_JP_AB_NPC_005,
- JT_4_JP_AB_NPC_006,
- JT_4_JP_AB_NPC_007,
- JT_4_JP_AB_NPC_008,
- JT_4_JJAK,
- JT_4_M_SNOWMAN_B,
- JT_4_M_SNOWMAN_R,
- JT_4_M_SNOWMAN_G,
- JT_WARPEFFECTNPC,
- JT_4_HEN,
- JT_4_F_DANGDANG,
- JT_4_M_DANGDANG,
- JT_4_F_DANGDANG1,
- JT_4_LEAFCAT,
- JT_4_NASARIAN,
- JT_4_NASARIAN_EM,
- JT_4_TEDDY_BEAR_W,
- JT_4_TEDDY_BEAR_B,
- JT_4_TEDDY_BEAR_B_L,
- JT_4_M_SOULREAPER,
- JT_4_F_SE_SUN,
- JT_4_M_SE_MOON,
- JT_4_M_SE_STAR,
- JT_4_EP17_KAYA,
- JT_4_EP17_AS,
- JT_4_EP17_ELYUMINA,
- JT_4_EP17_MORNING,
- JT_4_EP17_MIGUEL,
- JT_4_EP17_NIHIL_K,
- JT_4_EP17_MIGUEL_D,
- JT_4_ED_SCHMIDT,
- JT_4_ED_OSCAR,
- JT_4_ED_ORB,
- JT_4_ED_FENCE,
- JT_4_M_ANDREA,
- JT_4_M_ANDREA_D,
- JT_4_F_ANES,
- JT_4_F_ANES_D,
- JT_4_M_SILVANO,
- JT_4_M_SILVANO_D,
- JT_4_F_CECILIA,
- JT_4_F_CECILIA_D,
- JT_4_M_MD_SEYREN,
- JT_4_M_MD_EREMES,
- JT_4_M_MD_HARWORD,
- JT_4_F_MD_MAGALETA,
- JT_4_F_MD_SHECIL,
- JT_4_F_MD_KATRINN,
- JT_4_M_MD_SEYREN_H,
- JT_4_M_MD_EREMES_H,
- JT_4_M_MD_HARWORD_H,
- JT_4_F_MD_MAGALETA_H,
- JT_4_F_MD_SHECIL_H,
- JT_4_F_MD_KATRINN_H,
- JT_4_M_MD_SEYREN_D,
- JT_4_M_MD_EREMES_D,
- JT_4_M_MD_HARWORD_D,
- JT_4_F_MD_MAGALETA_D,
- JT_4_F_MD_SHECIL_D,
- JT_4_F_MD_KATRINN_D,
- JT_4_F_MD_YGNIZEM,
- JT_4_F_ERENE,
- JT_4_M_EINCPTMINER,
- JT_4_F_EINRESERCHER,
- JT_4_F_REINDEER,
- JT_4_PIGOCTO,
- JT_4_ORK_HERO,
- JT_4_JP_16TH,
- JT_4_EP17_MASTER_A,
- JT_4_EP17_BASIC_B,
- JT_4_EP17_GUARD_B,
- JT_4_EP17_BASIC_B_NG,
- JT_4_EP17_GUARD_B_NG,
- JT_4_EP17_SWEETY,
- JT_4_EP17_BOY_A,
- JT_4_EP17_BOY_B,
- JT_4_EP17_TAMARIN,
- JT_4_EP17_SCISSORE,
- JT_4_EP17_TABLET,
- JT_4_EP17_BUCKETS,
- JT_4_EP17_CLEANER,
- JT_4_EP17_BASKET,
- JT_4_EP17_BROKENBETA,
- JT_4_EP17_CLEANER_W,
- JT_4_EP17_MERMAID,
- JT_4_JP_AB_NPC_009,
- JT_4_JP_AB_NPC_010,
- JT_4_4JOB_SILLA = 10364,
- JT_4_4JOB_MAGGI,
- JT_4_4JOB_ROBIN,
- JT_4_4JOB_ROBIN_DRUNK,
- JT_4_4JOB_LETICIA,
- JT_4_4JOB_SERANG,
- JT_4_4JOB_EINHAR,
- JT_4_4JOB_SEALSTONE,
- JT_4_4JOB_PHANTOMBOOK1,
- JT_4_4JOB_PHANTOMBOOK2,
- JT_4_4JOB_PHANTOMBOOK3,
- JT_4_VENDING_MACHINE2,
- JT_4_EP18_MARAM,
- JT_4_EP18_MIRIAM,
- JT_4_EP18_SUAD,
- JT_4_EP18_IMRIL,
- JT_4_EP18_MERCHANT,
- JT_4_EP18_TAMARIN,
- JT_4_EP18_DEW,
- JT_4_EP18_MARK,
- JT_4_EP18_ALF,
- JT_4_EP18_SHULANG,
- JT_4_EP18_BAGOT,
- JT_4_EP18_DEMIFREYA,
- JT_4_EP18_KAMIL,
- JT_4_EP18_HAZAR,
- JT_4_EP18_WAGON,
- JT_4_EP18_PAPERS,
- JT_4_EP18_HALFFLOWER,
- JT_4_EP18_GW_OLD01,
- JT_4_EP18_GW_OLD02,
- JT_4_EP18_GW_MIDDLE01,
- JT_4_EP18_GW_MIDDLE02,
- JT_4_EP18_GW_MAN01,
- JT_4_EP18_GW_MAN02,
- JT_4_EP18_GW_WOMAN01,
- JT_4_EP18_GW_WOMAN02,
- JT_4_EP18_GW_CHILD01,
- JT_4_EP18_GW_CHILD02,
- JT_4_STAR_BOX_SCORE,
- JT_4_STAR_BOX_POW1,
- JT_4_STAR_BOX_POW2,
- JT_4_STAR_BOX_STA1,
- JT_4_STAR_BOX_STA2,
- JT_4_STAR_BOX_SPL1,
- JT_4_STAR_BOX_SPL2,
- JT_4_STAR_BOX_CON1,
- JT_4_STAR_BOX_CON2,
- JT_4_STAR_BOX_WIS1,
- JT_4_STAR_BOX_WIS2,
- JT_4_STAR_BOX_CRT1,
- JT_4_STAR_BOX_CRT2,
- JT_4_4JOB_MAURA,
- JT_4_STAR_BOX_N,
- JT_4_STAR_BOX_H,
- JT_4_STAR_BOX_HP1,
- JT_4_STAR_BOX_HP2,
- JT_4_STAR_BOX_ATK1,
- JT_4_STAR_BOX_ATK2,
- JT_4_STAR_BOX_BARRIER1,
- JT_4_STAR_BOX_BARRIER2,
- JT_4_STAR_BOX_TRAP1,
- JT_4_STAR_BOX_TRAP2,
- JT_4_STAR_BOX_MASTER,
- JT_4_POINT_RED,
- JT_4_POINT_BLUE,
- JT_4_POINT_YELLOW,
- JT_4_POINT_BLACK,
- JT_4_POINT_WHITE,
- JT_4_EXJOB_GERHOLD,
- JT_4_EXJOB_NINJA,
- JT_4_EXJOB_MASTER_J,
- JT_4_EXJOB_MR_SEO,
- JT_4_EXJOB_HAPPY_CLOUD,
- JT_4_EXJOB_STAR,
- JT_4_EXJOB_CHUL_HO,
- JT_4_EXJOB_KI_SUL,
- JT_4_EXJOB_HYUN_ROK,
- JT_1_JOURNEY_STONE_D,
- JT_1_JOURNEY_STONE_F,
- JT_ROZ_MQ_SIGRUN,
- JT_ROZ_MQ_SIGRUN_S,
- JT_ROZ_MQ_HARACE01,
- JT_ROZ_MQ_HARACE02,
- JT_ROZ_MQ_SAHARIO,
- JT_ROZ_MQ_SUPIGEL,
- JT_ROZ_MQ_DEADSOLDIER,
- JT_4_EP19_ZORYARA,
- JT_4_EP19_MORYARA,
- JT_4_EP19_LUNCH,
- JT_4_EP19_LAZY,
- JT_4_EP19_JUNCEA,
- JT_4_EP19_JUNCEA_M,
- JT_4_EP19_JUNCEA_D,
- JT_4_EP19_FRIEDERIKE,
- JT_4_EP19_SUITCASE,
- JT_4_EP19_HEALROCK,
- JT_4_EP19_IWIN,
- JT_4_EP19_IWIN_DIVER,
- JT_4_EP19_TAMARIN,
- JT_4_EP19_LEON,
- JT_4_EP19_AURELIE,
- JT_4_EP19_LASGAND,
- JT_4_EP19_VOGLINDE,
- JT_4_EP19_VELLGUNDE,
- JT_4_EP19_LEHAR,
- JT_4_EP19_RGAN_R1,
- JT_4_EP19_RGAN_R2,
- JT_4_EP19_RGAN_R3,
- JT_4_EP19_RGAN_SR1,
- JT_4_EP19_RGAN_SR2,
- JT_4_EP19_RGAN_SR3,
- JT_1_RAGFES_01,
- JT_1_RAGFES_01_M,
- JT_4_RAGFES_02,
- JT_4_RAGFES_02_M,
- JT_4_RAGFES_03,
- JT_4_RAGFES_03_M,
- JT_4_RAGFES_04,
- JT_4_RAGFES_04_M,
- JT_4_RAGFES_05,
- JT_4_RAGFES_05_M,
- JT_4_RAGFES_06,
- JT_4_RAGFES_06_M,
- JT_4_RAGFES_07,
- JT_4_RAGFES_07_M,
- JT_4_RAGFES_08,
- JT_4_RAGFES_08_M,
- JT_4_RAGFES_09,
- JT_4_RAGFES_09_M,
- JT_4_RAGFES_10,
- JT_4_RAGFES_10_M,
- JT_4_RAGFES_11,
- JT_4_RAGFES_11_M,
- JT_4_RAGFES_12,
- JT_4_RAGFES_12_M,
- JT_4_RAGFES_13,
- JT_4_RAGFES_13_M,
- JT_4_RAGFES_14,
- JT_4_RAGFES_14_M,
- JT_4_RAGFES_15,
- JT_4_RAGFES_15_M,
- JT_4_RAGFES_16,
- JT_4_RAGFES_16_M,
- JT_4_EXJOB_NINJA2,
- JT_ROZ_MQ_LUCIAN = 10510,
- JT_ROZ_MQ_BRITIA,
- JT_ROZ_MQ_ASSASIN01,
- JT_STRANGE_B_SMITH1,
- JT_STRONGER_B_SMTIH,
- JT_NEW_NPC_3RD_END = 19999,
- NPC_RANGE3_END, // Official: JT_NEW_NPC_3RD_END=19999
- // Unofficial
- JT_INVISIBLE = 32767,
- JT_FAKENPC = -1
- };
- // Old NPC range
- #define MAX_NPC_CLASS NPC_RANGE2_END
- // New NPC range
- #define MAX_NPC_CLASS2_START NPC_RANGE3_START
- #define MAX_NPC_CLASS2_END NPC_RANGE3_END
- //Checks if a given id is a valid npc id. [Skotlex]
- //Since new npcs are added all the time, the max valid value is the one before the first mob (Scorpion = 1001)
- #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 ) )
- #ifdef PCRE_SUPPORT
- void npc_chat_finalize(struct npc_data* nd);
- #endif
- //Script NPC events.
- enum npce_event : uint8 {
- NPCE_LOGIN,
- NPCE_LOGOUT,
- NPCE_LOADMAP,
- NPCE_BASELVUP,
- NPCE_JOBLVUP,
- NPCE_DIE,
- NPCE_KILLPC,
- NPCE_KILLNPC,
- NPCE_MAX
- };
- // Status of NPC view.
- enum e_npcv_status : uint8 {
- NPCVIEW_DISABLE = 0x01,
- NPCVIEW_ENABLE = 0x02,
- NPCVIEW_HIDEOFF = 0x04,
- NPCVIEW_HIDEON = 0x08,
- NPCVIEW_CLOAKOFF = 0x10,
- NPCVIEW_CLOAKON = 0x20,
- NPCVIEW_VISIBLE = 0x16,
- NPCVIEW_INVISIBLE = 0x29,
- NPCVIEW_CLOAK = 0x30,
- };
- struct view_data* npc_get_viewdata(int class_);
- int npc_chat_sub(struct block_list* bl, va_list ap);
- int npc_event_dequeue(struct map_session_data* sd,bool free_script_stack=true);
- int npc_event(struct map_session_data* sd, const char* eventname, int ontouch);
- int npc_touch_areanpc(struct map_session_data* sd, int16 m, int16 x, int16 y, struct npc_data* nd);
- int npc_touch_area_allnpc(struct map_session_data* sd, int16 m, int16 x, int16 y);
- int npc_touch_areanpc2(struct mob_data *md); // [Skotlex]
- int npc_check_areanpc(int flag, int16 m, int16 x, int16 y, int16 range);
- int npc_touchnext_areanpc(struct map_session_data* sd,bool leavemap);
- int npc_click(struct map_session_data* sd, struct npc_data* nd);
- bool npc_scriptcont(struct map_session_data* sd, int id, bool closing);
- struct npc_data* npc_checknear(struct map_session_data* sd, struct block_list* bl);
- int npc_buysellsel(struct map_session_data* sd, int id, int type);
- e_purchase_result npc_buylist(struct map_session_data* sd, std::vector<s_npc_buy_list>& item_list);
- static int npc_buylist_sub(struct map_session_data* sd, std::vector<s_npc_buy_list>& item_list, struct npc_data* nd);
- uint8 npc_selllist(struct map_session_data* sd, int n, unsigned short *item_list);
- e_purchase_result npc_barter_purchase( struct map_session_data& sd, std::shared_ptr<s_npc_barter> barter, std::vector<s_barter_purchase>& purchases );
- void npc_parse_mob2(struct spawn_data* mob);
- 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);
- int npc_globalmessage(const char* name,const char* mes);
- const char *npc_get_script_event_name(int npce_index);
- void npc_setcells(struct npc_data* nd);
- void npc_unsetcells(struct npc_data* nd);
- bool npc_movenpc(struct npc_data* nd, int16 x, int16 y);
- bool npc_is_cloaked(struct npc_data* nd, struct map_session_data* sd);
- bool npc_enable_target(npc_data& nd, uint32 char_id, e_npcv_status flag);
- #define npc_enable(nd, flag) npc_enable_target(nd, 0, flag)
- void npc_setdisplayname(struct npc_data* nd, const char* newname);
- void npc_setclass(struct npc_data* nd, short class_);
- struct npc_data* npc_name2id(const char* name);
- int npc_isnear_sub(struct block_list* bl, va_list args);
- bool npc_isnear(struct block_list * bl);
- int npc_get_new_npc_id(void);
- int npc_addsrcfile(const char* name, bool loadscript);
- void npc_delsrcfile(const char* name);
- int npc_parsesrcfile(const char* filepath);
- void do_clear_npc(void);
- void do_final_npc(void);
- void do_init_npc(void);
- void npc_event_do_oninit(void);
- int npc_event_do(const char* name);
- int npc_event_do_id(const char* name, int rid);
- int npc_event_doall(const char* name);
- void npc_event_runall( const char* eventname );
- int npc_event_doall_id(const char* name, int rid);
- int npc_event_doall_path(const char* event_name, const char* path);
- int npc_timerevent_start(struct npc_data* nd, int rid);
- int npc_timerevent_stop(struct npc_data* nd);
- void npc_timerevent_quit(struct map_session_data* sd);
- t_tick npc_gettimerevent_tick(struct npc_data* nd);
- int npc_settimerevent_tick(struct npc_data* nd, int newtimer);
- int npc_remove_map(struct npc_data* nd);
- void npc_unload_duplicates (struct npc_data* nd);
- int npc_unload(struct npc_data* nd, bool single);
- int npc_reload(void);
- void npc_read_event_script(void);
- int npc_script_event(struct map_session_data* sd, enum npce_event type);
- int npc_duplicate4instance(struct npc_data *snd, int16 m);
- int npc_instanceinit(struct npc_data* nd);
- int npc_instancedestroy(struct npc_data* nd);
- int npc_cashshop_buy(struct map_session_data *sd, t_itemid nameid, int amount, int points);
- void npc_shop_currency_type(struct map_session_data *sd, struct npc_data *nd, int cost[2], bool display);
- extern struct npc_data* fake_nd;
- int npc_cashshop_buylist( struct map_session_data *sd, int points, std::vector<s_npc_buy_list>& item_list );
- bool npc_shop_discount(struct npc_data* nd);
- #if PACKETVER >= 20131223
- void npc_market_tosql(const char *exname, struct npc_item_list *list);
- void npc_market_delfromsql_(const char *exname, t_itemid nameid, bool clear);
- #endif
- #ifdef SECURE_NPCTIMEOUT
- TIMER_FUNC(npc_secure_timeout_timer);
- #endif
- // @commands (script-based)
- int npc_do_atcmd_event(struct map_session_data* sd, const char* command, const char* message, const char* eventname);
- bool npc_unloadfile( const char* path );
- #endif /* NPC_HPP */
|