chuyiwen_gmsv/include/char_base.h

2073 lines
55 KiB
C
Raw Normal View History

2016-12-24 08:45:52 +08:00
#ifndef __CHAR_BASE_H__
#define __CHAR_BASE_H__
#include "version.h"
#include "skill.h"
#include "title.h"
/*#include "magicinfo.h"*/
#include "addressbook.h"
#ifdef _ALLBLUES_LUA
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
#endif
#define CHAR_DELIMITER "\n"
#define NONCHAR_DELIMITER "|"
#define STATUSSENDDELIMITER "|"
#define CHAR_MAXGOLDHAVE (10000*10000)
#define CHAR_MAXBANKGOLDHAVE (10000*10000)
#define CHAR_MAXFMBANKGOLDHAVE (10000*100000)
#ifdef _NEW_MANOR_LAW
#define MAX_PERSONAL_MOMENTUM 10000000
#endif
#ifdef _PERSONAL_FAME // Arminius 8.30: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define MAX_PERSONALFAME 100000000
#endif
#ifdef _PROFESSION_SKILL // WON ADD <20><><EFBFBD><EFBFBD>ְҵ<D6B0><D2B5><EFBFBD><EFBFBD>
#define CHAR_SKILLMAXHAVE 26 // ְҵ<D6B0><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#else
#define CHAR_SKILLMAXHAVE 5
#endif
#ifdef _STREET_VENDOR
#define MAX_SELL_ITEM 20 // <20><><EFBFBD>߼ӳ<DFBC><D3B3><EFBFBD><EFB9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʮ<EFBFBD><CAAE>
#endif
#define CHAR_TITLEMAXHAVE 30
#define NULLSKILL "0"
#define CHAR_MAXPETHAVE 5
#define CHAR_MAXPERSONAGOLD 50000000
#ifdef _ADD_POOL_ITEM // WON ADD <20><><EFBFBD>ӿɼķŵĵ<C5B5><C4B5><EFBFBD>
#define CHAR_MAXPOOLPETHAVE 15
#else
#define CHAR_MAXPOOLPETHAVE 10
#endif
#define CHAR_MAXPETSKILLHAVE 7
#define CHAR_PARTYMAX 5
#define CHAR_PLAYERNPCMAX 4
#define CHAR_MAXATTRIB 100
#define CHAR_MAXUPLEVEL 200
#define CHAR_MAXDUELPOINT 100000000
#define CHAR_DEFAULTMAXAI (60)
#define CHAR_MAXVARIABLEAI (100*100)
#define CHAR_MINVARIABLEAI (-100*100)
#define CHAR_POISONSTRING "<22>ж<EFBFBD>"
#define CHAR_RECOVERPOISONSTRING "<22><EFBFBD><E2B6BE>"
#define CHAR_PARALYSISSTRING "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#define CHAR_RECOVERPARALYSISSTRING "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#define CHAR_SILENCESTRING "<22>޷<EFBFBD><DEB7><EFBFBD>ħ<EFBFBD><C4A7><EFBFBD><EFBFBD>"
#define CHAR_RECOVERSILENCESTRING "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ħ<EFBFBD><C4A7><EFBFBD><EFBFBD>"
#define CHAR_STONESTRING "ʯ<><CAAF><EFBFBD><EFBFBD>"
#define CHAR_RECOVERSTONESTRING "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
#define CHAR_DARKNESSSTRING "<22><><EFBFBD>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD><EFBFBD>"
#define CHAR_RECOVERDARKNESSSTRING "<22><><EFBFBD>ܳ<EFBFBD><DCB3><EFBFBD><EFBFBD><EFBFBD>"
#define CHAR_CONFUSIONSTRING "<22><><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>"
#define CHAR_RECOVERCONFUSIONSTRING "<22>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>"
#define CHAR_DEFAULTSEESIZ 23
#define MAP_CHAR_DEFAULTSEESIZ (CHAR_DEFAULTSEESIZ+4)
typedef enum
{
CHAR_HEAD,
CHAR_BODY,
CHAR_ARM,
CHAR_DECORATION1,
CHAR_DECORATION2,
#ifdef _ITEM_EQUITSPACE
CHAR_EQBELT, //<2F><><EFBFBD><EFBFBD>
CHAR_EQSHIELD, //<2F><>
CHAR_EQSHOES, //Ь<><D0AC>
#endif
#ifdef _EQUIT_NEWGLOVE
CHAR_EQGLOVE,
#endif
CHAR_EQUIPPLACENUM,
}CHAR_EquipPlace;
#ifdef _PET_ITEM
typedef enum
{
CHAR_PET_HEAD, //ͷ
CHAR_PET_TOOTH, //<2F><>
CHAR_PET_CLAW, //צ
CHAR_PET_BREAST, //<2F><>
CHAR_PET_BACK, //<2F><>
CHAR_PET_WING, //<2F><>
CHAR_PET_FEET, //<2F><>
CHAR_PETITEMNUM,
}CHAR_petitem;
#endif
typedef struct tagCharHaveSkill
{
int use;
Skill skill;
}CHAR_HaveSkill;
#ifdef _STREET_VENDOR
typedef struct STREET_VENDDOR_t{
int pile; // <20><><EFBFBD><EFBFBD>
int price; // <20>۸<EFBFBD>
int index; // <20><><EFBFBD><EFBFBD>
int kind; // <20><><EFBFBD>߻<EFBFBD><DFBB>dz<EFBFBD><C7B3><EFBFBD> 0:<3A><><EFBFBD><EFBFBD> 1:<3A><><EFBFBD><EFBFBD>
BOOL usage; // <20>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>
}StreetVendor_t;
enum{
SV_PILE,
SV_PRICE,
SV_INDEX,
SV_KIND,
SV_USAGE,
MAX_SV
};
#endif
typedef enum
{
CHAR_ACTSTAND,
CHAR_ACTWALK,
CHAR_ACTATTACK,
CHAR_ACTTHROW,
CHAR_ACTDAMAGE,
CHAR_ACTDEAD,
CHAR_ACTMAGIC,
CHAR_ACTITEM,
CHAR_ACTEFFECT,
CHAR_ACTDOWN = 10,
CHAR_ACTSIT,
CHAR_ACTHAND,
CHAR_ACTPLEASURE,
CHAR_ACTANGRY,
CHAR_ACTSAD,
CHAR_ACTGUARD,
CHAR_ACTACTIONWALK,
CHAR_ACTNOD,
CHAR_ACTACTIONSTAND,
CHAR_ACTBATTLE = 20,
CHAR_ACTLEADER,
CHAR_ACTBATTLEWATCH,
CHAR_ACTPOPUPNAME,
CHAR_ACTTURN = 30,
CHAR_ACTWARP,
CHAR_ACTTRADE,
#ifdef _ANGEL_SUMMON
CHAR_ACTANGEL = 34,
#endif
#ifdef _MIND_ICON
CHAR_MIND = 40,
#endif
#ifdef _STREET_VENDOR
CHAR_STREETVENDOR_OPEN,
CHAR_STREETVENDOR_CLOSE,
#endif
#ifdef _ITEM_CRACKER
CHAR_ITEM_CRACKER = 50,
#endif
}CHAR_ACTION;
typedef enum
{
CHAR_CLIACTATTACK,
CHAR_CLIACTDAMAGE,
CHAR_CLIACTDOWN,
CHAR_CLIACTSTAND,
CHAR_CLIACTWALK,
CHAR_CLIACTSIT,
CHAR_CLIACTHAND,
CHAR_CLIACTPLEASURE,
CHAR_CLIACTANGRY,
CHAR_CLIACTSAD,
CHAR_CLIACTGUARD,
CHAR_CLIACTNOD,
CHAR_CLIACTTHROW,
}CHAR_CLIENTACTION;
typedef enum
{
CHAR_TYPENONE,
CHAR_TYPEPLAYER,
CHAR_TYPEENEMY,
CHAR_TYPEPET,
CHAR_TYPEDOOR,
CHAR_TYPEBOX,
CHAR_TYPEMSG,
CHAR_TYPEWARP,
CHAR_TYPESHOP,
CHAR_TYPEHEALER,
CHAR_TYPEOLDMAN,
CHAR_TYPEROOMADMIN,
CHAR_TYPETOWNPEOPLE,
CHAR_TYPEDENGON,
CHAR_TYPEADM,
CHAR_TYPETEMPLE,
CHAR_TYPESTORYTELLER,
CHAR_TYPERANKING,
CHAR_TYPEOTHERNPC,
CHAR_TYPEPRINTPASSMAN,
CHAR_TYPENPCENEMY,
CHAR_TYPEACTION,
CHAR_TYPEWINDOWMAN,
CHAR_TYPESAVEPOINT,
CHAR_TYPEWINDOWHEALER,
CHAR_TYPEITEMSHOP,
CHAR_TYPESTONESHOP,
CHAR_TYPEDUELRANKING,
CHAR_TYPEWARPMAN,
CHAR_TYPEEVENT,
CHAR_TYPEMIC,
CHAR_TYPELUCKYMAN,
CHAR_TYPEBUS,
CHAR_TYPECHARM,
CHAR_TYPECHECKMAN,
CHAR_TYPEJANKEN,
CHAR_TYPETRANSMIGRATION,
CHAR_TYPEFMWARPMAN, // <20><><EFBFBD><EFBFBD><EFBFBD>У˳<D0A3><CBB3><EFBFBD><EFBFBD><EFBFBD>Ա
CHAR_TYPEFMSCHEDULEMAN, // <20><><EFBFBD><EFBFBD><EFBFBD>У˳<D0A3><CBB3>Ǽ<EFBFBD>Ա
CHAR_TYPEMANORSCHEDULEMAN, // ׯ԰<D7AF>У˳<D0A3>ԤԼ<D4A4><D4BC>
#ifdef _GAMBLE_BANK
CHAR_GAMBLEBANK,
#endif
#ifdef _NEW_WARPMAN
CHAR_NEWNPCMAN,
#endif
#ifdef _GAMBLE_ROULETTE
CHAR_GAMBLEROULETTE,
CHAR_GAMBLEMASTER,
#endif
#ifdef _TRANSER_MAN
CHAR_TRANSERMANS,
#endif
#ifdef _NPC_MAKEPAIR
CHAR_MAKEPAIR,
#endif
#ifdef _NPC_FUSION
CHAR_PETFUSIONMAN,
#endif
#ifdef _ITEM_NPCCHANGE
CHAR_ITEMCHANGENPC,
#endif
#ifdef _CFREE_petskill
CHAR_FREESKILLSHOP,
#endif
#ifdef _PETRACE
CHAR_PETRACEMASTER, // <20><><EFBFBD><EFBFBD><EFBEBA>
CHAR_PETRACEPET,
#endif
#ifdef _ALLDOMAN // (<28><><EFBFBD>ɿ<EFBFBD>) Syu ADD <20><><EFBFBD>а<EFBFBD>NPC
CHAR_TYPEALLDOMAN,
#endif
CHAR_TYPEPETMAKER, // petmaker
#ifdef _NPC_WELFARE
CHAR_TYPEWELFARE,
#endif
#ifdef _ALLBLUES_LUA
CHAR_TYPELUANPC,
#endif
#ifdef _JZ_NEWSCRIPT_LUA
CHAR_LUANPC,
#endif
#ifdef _PLAYER_NPC
CHAR_TYPEPLAYERNPC,
CHAR_TYPEPLAYERPETNPC,
#endif
CHAR_TYPENUM,
}CHAR_TYPE;
typedef enum
{
CHAR_EVENT_NONE,
CHAR_EVENT_NPC,
CHAR_EVENT_ENEMY,
CHAR_EVENT_WARP,
CHAR_EVENT_DOOR,
CHAR_EVENT_ALTERRATIVE,
CHAR_EVENT_WARP_MORNING,
CHAR_EVENT_WARP_NOON,
CHAR_EVENT_WARP_NIGHT,
CHAR_EVENTNUM,
}CHAR_EVENT;
typedef enum
{
CHAR_PARTY_NONE,
CHAR_PARTY_LEADER,
CHAR_PARTY_CLIENT,
}CHAR_PARTY_MODE;
typedef enum
{
CHAR_TRADE_FREE, /* <20>ɽ<EFBFBD><C9BD><EFBFBD> */
CHAR_TRADE_SENDING, /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
CHAR_TRADE_TRADING, /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
CHAR_TRADE_LOCK, /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
}CHAR_TRADE_MODE;
typedef enum
{
CHAR_PETMAIL_NONE,
CHAR_PETMAIL_IDLE1,
CHAR_PETMAIL_IDLE2,
CHAR_PETMAIL_RETURNWAIT,
CHAR_PETMAIL_IDLE3,
CHAR_PETMAIL_IDLE4,
CHAR_PETMAIL_IDLE5,
}CHAR_PETMAIL_MODE;
typedef enum
{
CHAR_PETFOLLOW_NONE,
CHAR_PETFOLLOW_NOW,
}CHAR_PETFOLLOW_MODE;
#ifdef _DROPSTAKENEW
typedef enum
{
DICE_BIG = 1, // <20><><EFBFBD><EFBFBD>_<EFBFBD><5F>
DICE_SMALL, // <20><><EFBFBD><EFBFBD>_С
DICE_ALLEAT, // <20><><EFBFBD><EFBFBD><5F><CDA8>
PET_RACE1 = 5, // <20><><EFBFBD>ٳ<EFBFBD>_<EFBFBD><5F><EFBFBD><EFBFBD>1
PET_RACE2, // <20><><EFBFBD>ٳ<EFBFBD>_<EFBFBD><5F><EFBFBD><EFBFBD>2
PET_RACE3, // <20><><EFBFBD>ٳ<EFBFBD>_<EFBFBD><5F><EFBFBD><EFBFBD>3
ROULETTE1 = 11, ROULETTE2, ROULETTE3, ROULETTE4, ROULETTE5, ROULETTE6, ROULETTE7,
ROULETTE8, ROULETTE9, ROULETTE10, ROULETTE11, ROULETTE12, ROULETTE13, ROULETTE14,
ROULETTE15, ROULETTE16, ROULETTE17, ROULETTE18, ROULETTE19, ROULETTE20,
ROULETTE21 = 41, ROULETTE22, ROULETTE23, ROULETTE24, ROULETTE25, ROULETTE26,
ROULETTE27, ROULETTE28, ROULETTE29, ROULETTE30, ROULETTE31, ROULETTE32,
ROULETTE33, ROULETTE34, ROULETTE35, ROULETTE36, ROULETTE37, ROULETTE38,
ROULETTE39, ROULETTE40,
ROULETTE41 = 71, ROULETTE42, ROULETTE43, ROULETTE44, ROULETTE45,
ROULETTE51 = 101, ROULETTE52, ROULETTE53, //<2F><><EFBFBD><EFBFBD>
ROULETTE61 = 111, ROULETTE62, //1<><31>10 10<31><30>11
PETFIGHT_WIN1 = 120,
PETFIGHT_WIN2,
PETFIGHT_DUEL,
}GAMBLE_TYPE;
#endif
#ifdef _CHAR_POOLITEM
#ifdef _NPC_DEPOTPET // <20><><EFBFBD>ų<EFBFBD><C5B3><EFBFBD><EFBFBD>ֿ<EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD>ӵ<EFBFBD><D3B5>ֿ߲<DFB2><D6BF><EFBFBD><EFBFBD><EFBFBD>
#define CHAR_MAXDEPOTITEMHAVE 80
#else
#define CHAR_MAXDEPOTITEMHAVE 60
#endif
#endif
#ifdef _CHAR_POOLPET
#define CHAR_MAXDEPOTPETHAVE 30
#endif
#ifdef _ADD_POOL_ITEM // (<28><><EFBFBD>ɿ<EFBFBD>) WON ADD <20><><EFBFBD>ӿɼķŵĵ<C5B5><C4B5><EFBFBD>
#define CHAR_MAXPOOLITEMHAVE 30
#else
#define CHAR_MAXPOOLITEMHAVE 20
#endif
#define CHAR_MAXITEMNUM 15
#define CHAR_STARTITEMARRAY CHAR_EQUIPPLACENUM
#define CHAR_MAXITEMHAVE (CHAR_STARTITEMARRAY+CHAR_MAXITEMNUM)
#ifdef _PET_ITEM
#define CHAR_MAXPETITEMHAVE CHAR_PETITEMNUM
#endif
typedef enum
{
CHAR_DATAPLACENUMBER,
CHAR_BASEIMAGENUMBER,
CHAR_BASEBASEIMAGENUMBER,
CHAR_FACEIMAGENUMBER,
CHAR_FLOOR,
CHAR_X,
CHAR_Y,
CHAR_DIR,
CHAR_LV,
CHAR_GOLD,
CHAR_HP,
CHAR_MP,
CHAR_MAXMP,
CHAR_VITAL,
CHAR_STR,
CHAR_TOUGH,
CHAR_DEX,
CHAR_CHARM,
CHAR_LUCK,
CHAR_EARTHAT,
CHAR_WATERAT,
CHAR_FIREAT,
CHAR_WINDAT,
CHAR_DEFAULTPET,
CHAR_CRITIAL,
CHAR_COUNTER,
CHAR_RARE,
CHAR_RADARSTRENGTH,
CHAR_CHATVOLUME,
CHAR_MERCHANTLEVEL,
CHAR_HEALERLEVEL,
CHAR_SAVEPOINT = CHAR_HEALERLEVEL,
CHAR_DETERMINEITEM,
CHAR_INDEXOFEQTITLE,
CHAR_POISON,
CHAR_PARALYSIS,
CHAR_SLEEP,
CHAR_STONE,
CHAR_DRUNK,
CHAR_CONFUSION,
CHAR_LOGINCOUNT,
CHAR_NPCCREATEINDEX=CHAR_LOGINCOUNT,
CHAR_DEADCOUNT,
CHAR_WALKCOUNT,
CHAR_TALKCOUNT,
CHAR_DAMAGECOUNT,
CHAR_GETPETCOUNT,
CHAR_KILLPETCOUNT,
CHAR_DEADPETCOUNT,
CHAR_SENDMAILCOUNT,
CHAR_MERGEITEMCOUNT,
CHAR_DUELBATTLECOUNT,
CHAR_DUELWINCOUNT,
CHAR_DUELLOSECOUNT,
CHAR_DUELSTWINCOUNT,
CHAR_DUELMAXSTWINCOUNT,
CHAR_WHICHTYPE,
CHAR_WALKINTERVAL,
CHAR_LOOPINTERVAL,
#ifdef _NEWOPEN_MAXEXP
CHAR_OLDEXP,
CHAR_EXP,
#else
CHAR_EXP,
#endif
CHAR_LASTTALKELDER,
CHAR_SKILLUPPOINT,
CHAR_LEVELUPPOINT,
CHAR_IMAGETYPE,
CHAR_NAMECOLOR,
CHAR_POPUPNAMECOLOR,
CHAR_LASTTIMESETLUCK,
CHAR_DUELPOINT,
CHAR_ENDEVENT, /* (0~31) */
CHAR_ENDEVENT2, /* (32~63) */
CHAR_ENDEVENT3, /* (64~96) */
#ifdef _NEWEVENT
CHAR_ENDEVENT4, /* (96~127) */
CHAR_ENDEVENT5, /* (128~159) */
CHAR_ENDEVENT6, /* (160~191) */
#endif
#ifdef _ADD_NEWEVENT // WON <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_ENDEVENT7,
CHAR_ENDEVENT8,
CHAR_ENDEVENT9,
CHAR_ENDEVENT10,
CHAR_ENDEVENT11,
CHAR_ENDEVENT12,
CHAR_ENDEVENT13,
CHAR_ENDEVENT14,
CHAR_ENDEVENT15,
CHAR_ENDEVENT16,
#endif
CHAR_NOWEVENT, /* (0~31) */
CHAR_NOWEVENT2, /* (32~63) */
CHAR_NOWEVENT3, /* (64~96) */
#ifdef _NEWEVENT
CHAR_NOWEVENT4, /* (96~127) */
CHAR_NOWEVENT5, /* (128~159) */
CHAR_NOWEVENT6, /* (160~191) */
#endif
#ifdef _ADD_NEWEVENT // WON <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_NOWEVENT7,
CHAR_NOWEVENT8, // 224~255 <20><><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD>ר<EFBFBD><D7A8>
CHAR_NOWEVENT9,
CHAR_NOWEVENT10,
CHAR_NOWEVENT11,
CHAR_NOWEVENT12,
CHAR_NOWEVENT13,
CHAR_NOWEVENT14,
CHAR_NOWEVENT15,
CHAR_NOWEVENT16,
#endif
CHAR_TRANSMIGRATION,
CHAR_TRANSEQUATION,
CHAR_INITDATA,
CHAR_SILENT, /* char shutup time */
CHAR_FMINDEX, // <20><><EFBFBD><EFBFBD> index
CHAR_FMLEADERFLAG, /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>
* FMMEMBER_NONE :û<EFBFBD>м<EFBFBD><EFBFBD><EFBFBD><EFBFBD>κμ<EFBFBD><EFBFBD><EFBFBD>
* FMMEMBER_APPLY :<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* FMMEMBER_LEADER :<EFBFBD>
* FMMEMBER_MEMBER :һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա
* FMMEMBER_ELDER :<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* FMMEMBER_INVITE :<EFBFBD><EFBFBD>˾ // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
* FMMEMBER_BAILEE :<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
* FMMEMBER_VICELEADER :<EFBFBD><EFBFBD><EFBFBD> // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
*/
CHAR_FMSPRITE, // <20><><EFBFBD><EFBFBD><EFBFBD>ػ<EFBFBD><D8BB><EFBFBD><EFBFBD><EFBFBD>
CHAR_BANKGOLD,
CHAR_RIDEPET,
CHAR_LEARNRIDE,
#ifdef _NEW_RIDEPETS
CHAR_LOWRIDEPETS,
#endif
CHAR_LIMITLEVEL,
#ifdef _PET_FUSION
CHAR_FUSIONCODE, //<2F><><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>
CHAR_FUSIONINDEX, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_FUSIONRAISE, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_FUSIONBEIT, //<2F><EFBFBD><E8B5B0><EFBFBD><EFBFBD>
CHAR_FUSIONTIMELIMIT, // <20><>ʱ<EFBFBD><CAB1>
#endif
#ifdef _PERSONAL_FAME // Arminius 8.30: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_FAME,
#endif
#ifdef _NEWSAVE
CHAR_SAVEINDEXNUMBER, /* SaveFile .0.char or .1.char */
#endif
#ifdef _ATTACK_MAGIC
CHAR_EARTH_EXP, // <20><><EFBFBD>ҵĵ<D2B5>ħ<EFBFBD><C4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WATER_EXP, // <20><><EFBFBD>ҵ<EFBFBD>ˮħ<CBAE><C4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_FIRE_EXP, // <20><><EFBFBD>ҵĻ<D2B5>ħ<EFBFBD><C4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WIND_EXP, // <20><><EFBFBD>ҵķ<D2B5>ħ<EFBFBD><C4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_EARTH_RESIST, // <20><><EFBFBD>ҵĵ<D2B5>ħ<EFBFBD><C4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WATER_RESIST, // <20><><EFBFBD>ҵ<EFBFBD>ˮħ<CBAE><C4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_FIRE_RESIST, // <20><><EFBFBD>ҵĻ<D2B5>ħ<EFBFBD><C4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WIND_RESIST, // <20><><EFBFBD>ҵķ<D2B5>ħ<EFBFBD><C4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_EARTH_ATTMAGIC_EXP, // <20><><EFBFBD>ҵĵ<D2B5>ħ<EFBFBD><C4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦ<EFBFBD><C8BE><EFBFBD>ֵ
CHAR_WATER_ATTMAGIC_EXP, // <20><><EFBFBD>ҵ<EFBFBD>ˮħ<CBAE><C4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦ<EFBFBD><C8BE><EFBFBD>ֵ
CHAR_FIRE_ATTMAGIC_EXP, // <20><><EFBFBD>ҵĻ<D2B5>ħ<EFBFBD><C4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦ<EFBFBD><C8BE><EFBFBD>ֵ
CHAR_WIND_ATTMAGIC_EXP, // <20><><EFBFBD>ҵķ<D2B5>ħ<EFBFBD><C4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦ<EFBFBD><C8BE><EFBFBD>ֵ
CHAR_EARTH_DEFMAGIC_EXP, // <20><><EFBFBD>ҵĵ<D2B5>ħ<EFBFBD><C4A7><EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><D4BE><EFBFBD>ֵ
CHAR_WATER_DEFMAGIC_EXP, // <20><><EFBFBD>ҵ<EFBFBD>ˮħ<CBAE><C4A7><EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><D4BE><EFBFBD>ֵ
CHAR_FIRE_DEFMAGIC_EXP, // <20><><EFBFBD>ҵĻ<D2B5>ħ<EFBFBD><C4A7><EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><D4BE><EFBFBD>ֵ
CHAR_WIND_DEFMAGIC_EXP, // <20><><EFBFBD>ҵķ<D2B5>ħ<EFBFBD><C4A7><EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><D4BE><EFBFBD>ֵ
#endif
#ifdef _GAMBLE_BANK
CHAR_PERSONAGOLD, //<2F>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
#ifdef _DROPSTAKENEW
CHAR_GAMBLENUM, //<2F>ij<EFBFBD><C4B3><EFBFBD><EFBFBD><EFBFBD>
#endif
#ifdef _ADD_ACTION //npc<70><63><EFBFBD><EFBFBD>
CHAR_ACTIONSTYLE,
#endif
#ifdef _PET_EVOLUTION
CHAR_EVOLUTIONBASEVTL,
CHAR_EVOLUTIONBASESTR,
CHAR_EVOLUTIONBASETGH,
CHAR_EVOLUTIONBASEDEX,
#endif
#ifdef _FM_JOINLIMIT
CHAR_FMTIMELIMIT,
#endif
#ifdef _CHAR_PROFESSION // WON ADD <20><><EFBFBD><EFBFBD>ְҵ
PROFESSION_CLASS, // ְҵ<D6B0><D2B5>
PROFESSION_LEVEL, // ְҵ<D6B0>ȼ<EFBFBD>
// PROFESSION_EXP, // ְҵ<D6B0><D2B5><EFBFBD><EFBFBD>ֵ
PROFESSION_SKILL_POINT, // <20><><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD>
ATTACHPILE, // <20><><EFBFBD>Ӷѵ<D3B6>
PROFESSION_FIRE_P, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PROFESSION_ICE_P, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PROFESSION_THUNDER_P, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PROFESSION_FIRE_R, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PROFESSION_ICE_R, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PROFESSION_THUNDER_R, // <20>׿<EFBFBD><D7BF><EFBFBD>
#endif
#ifdef _ALLDOMAN // (<28><><EFBFBD>ɿ<EFBFBD>) Syu ADD <20><><EFBFBD>а<EFBFBD>NPC
CHAR_HEROFLOOR,
#endif
#ifdef _PETSKILL_BECOMEPIG
CHAR_BECOMEPIG,
CHAR_BECOMEPIG_BBI,//Ҫ<><D2AA><EFBFBD>ɵ<EFBFBD>ͼ<EFBFBD><CDBC>
#endif
CHAR_LASTLEAVETIME, // Robin add <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
#ifdef _NEW_MANOR_LAW
CHAR_MOMENTUM,
#endif
#ifdef _ITEM_ADDEXP2
CHAR_ADDEXPPOWER,
CHAR_ADDEXPTIME,
#endif
#ifdef _VIP_BATTLE_EXP
CHAR_NVIPEXP,
CHAR_NVIPTIME,
#endif
#ifdef _ANGEL_SUMMON
CHAR_HEROCNT, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
#endif
#ifdef _TEACHER_SYSTEM
CHAR_TEACHER_FAME, // <20><>ʦ<EFBFBD><EFBFBD><ECB5BC><EFBFBD><EFBFBD>
#endif
#ifdef _GM_ITEM
CHAR_GMTIME, // <20><><EFBFBD><EFBFBD>GM<47><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
#ifdef _VIP_SERVER
CHAR_AMPOINT, // <20><>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>
#endif
#ifdef _VIP_RIDE
CHAR_VIPRIDE, // <20><>Ա<EFBFBD><D4B1><EFBFBD>ڼ<EFBFBD>
CHAR_VIPTIME, // <20><>Աʱ<D4B1><CAB1>
#endif
#ifdef _AUTO_PK
CHAR_AUTOPK, // <20>Զ<EFBFBD><D4B6><EFBFBD>PK
#endif
#ifdef _BATTLE_PK
CHAR_BATTLEPK,
#endif
#ifdef _PET_BEATITUDE
CHAR_BEATITUDE,
#endif
#ifdef _RIDE_CF
CHAR_LOWRIDEPETS1,
CHAR_HIGHRIDEPETS2, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
#ifdef _SUPER_MAN_ITEM
CHAR_SUPER, //<2F><>Ʒ<EFBFBD><C6B7>
#endif
#ifdef _EV_NUM
CHAR_EVNUM,
CHAR_EVITEM,
#endif
#ifdef _JOB_AUTOPK
CHAR_JOBPKMODE,
CHAR_JOBPKTIME,
#endif
#ifdef _VIGOR_SYS
CHAR_VIGOR,
#endif
#ifdef _STU_SYS
CHAR_STUNUM,
#endif
#ifdef _ALL_TALK
CHAR_ATDATE,
CHAR_ATCNT,
#endif
#ifdef _SAFE_PASSWORD
CHAR_LOCK,
#endif
CHAR_NPCTIME,
#ifdef _OFFLINE_SYSTEM
CHAR_OFFTIME,
#endif
#ifdef _CAMEO_MONEY
CHAR_CAMEO,
#endif
#ifdef _MISSION_TRAIN
CHAR_MISSIONTRAIN_NUM,
CHAR_MISSIONTRAIN_TIME,
#endif
#ifdef _PET_EVOLVE
CHAR_EVOLVE,
#endif
#ifdef _FLOOR_DIFI_FIELD
CHAR_FLOORDIFI_TIME,
#endif
#ifdef _MISSION_TIME
CHAR_MISSION_TIME,
#endif
#ifdef _PLAYER_TITLE
CHAR_TITLE_LV,
CHAR_TITLE_TIME,
#endif
#ifdef _COWRIE
CHAR_BJ,
#endif
#ifdef _ONLINE_TIME
CHAR_ONLINE_TIME,
#endif
CHAR_LUASAVE_WORKINT_1,
CHAR_LUASAVE_WORKINT_2,
CHAR_LUASAVE_WORKINT_3,
CHAR_LUASAVE_INT_1,
CHAR_LUASAVE_INT_2,
CHAR_LUASAVE_INT_3,
#ifdef _CAX_ESC_REPORT
CHAR_REPORT,//ÿ<><C3BF>ǩ<EFBFBD><C7A9>
#endif
#ifdef _CAX_Mercenary
CHAR_MERCENARY,//Ӷ<><D3B6><EFBFBD>ֶ<EFBFBD>
#endif
#ifdef _REGISTRATION_TIME
CHAR_REGISTRATION_TIME,
CHAR_REGISTRATION_COUNT,
CHAR_REGISTRATION_ONLINE_TIME,
#endif
CHAR_DATAINTNUM,
}CHAR_DATAINT;
typedef enum {
CHAR_MODAI = CHAR_CHARM, /* ʸ<><CAB8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĥ<EFBFBD>Ұ<EFBFBD> */
CHAR_VARIABLEAI = CHAR_LUCK, /* ʸ<><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ߨ<EFBFBD> <20><><EFBFBD>װ<EFBFBD>ƥ <20>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD> */
CHAR_SLOT = CHAR_DEFAULTPET, /* <20><> ë<><C3AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ʸ<><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
CHAR_PETGETLV = CHAR_CHATVOLUME, /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD><EFBFBD>ì<EFBFBD><C3AC> ʸ<><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
CHAR_PUTPETTIME = CHAR_LOGINCOUNT, /* ʸ<><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ľ<EFBFBD><C4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
CHAR_MAILMODE = CHAR_RADARSTRENGTH, /* ʸ<><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˪<EFBFBD><CBAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
CHAR_ALLOCPOINT = CHAR_LEVELUPPOINT, /* <20><>ì<EFBFBD><C3AC>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD>Ի<EFBFBD><D4BB>Ի<EFBFBD><D4BB><EFBFBD>̼<EFBFBD><CCBC><EFBFBD><><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) */
CHAR_PETMAILBUFINDEX = CHAR_GETPETCOUNT, /* ʸ<><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(offmsg)<29>߼<EFBFBD>index */
CHAR_PETMAILIDLETIME = CHAR_SENDMAILCOUNT, /* ʸ<><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD>ئ<EFBFBD><D8A6> */
CHAR_PETMAILFROMFLOOR = CHAR_DUELBATTLECOUNT, /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ë˪<C3AB><CBAA><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC>׷<EFBFBD>ʧ */
CHAR_PETMAILFROMX = CHAR_DUELWINCOUNT, /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ë˪<C3AB><CBAA><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD> <20><> */
CHAR_PETMAILFROMY = CHAR_DUELLOSECOUNT, /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ë˪<C3AB><CBAA><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD> <20><> */
CHAR_PETMAILEFFECT = CHAR_DUELSTWINCOUNT, /* ʸ<><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBCB0><EFBFBD>ؼ<EFBFBD><D8BC>ް<EFBFBD><DEB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> į */
CHAR_PETSENDMAILCOUNT = CHAR_TALKCOUNT, /* ʸ<><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ë<EFBFBD><C3AB><EFBFBD>Ϸּ<CFB7><D6BC><EFBFBD> */
CHAR_PETRANK = CHAR_LASTTIMESETLUCK, /* ʸ<><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>ۨ߷<DBA8><DFB7>޷¡<DEB7><C2A1><EFBFBD> */
CHAR_PETID = CHAR_DUELMAXSTWINCOUNT,/* ʸ<><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
CHAR_PETFAMILY = CHAR_FMLEADERFLAG, // CoolFish: Family <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ػ<EFBFBD><D8BB><EFBFBD>
CHAR_PETENEMYID = CHAR_GAMBLENUM,
}CHAR_PET;
typedef enum
{
CHAR_NAME,
CHAR_OWNTITLE,
CHAR_USERPETNAME = CHAR_OWNTITLE,
CHAR_NPCARGUMENT,
CHAR_CDKEY = CHAR_NPCARGUMENT,
CHAR_OWNERCDKEY,
CHAR_OWNERCHARANAME,
CHAR_FMNAME,
#ifdef _UNIQUE_P_I
CHAR_UNIQUECODE,
#endif
#ifdef _ACTION_GMQUE
CHAR_GMQUESTR1,
#endif
#ifdef _TEACHER_SYSTEM
CHAR_TEACHER_ID, // <20><>ʦ<EFBFBD>ʺ<EFBFBD>
CHAR_TEACHER_NAME, // <20><>ʦ<EFBFBD><CAA6><EFBFBD><EFBFBD>
#endif
#ifdef _ITEM_SETLOVER
CHAR_LOVE, // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
CHAR_LOVERID, // <20><><EFBFBD><EFBFBD><EFBFBD>ʺ<EFBFBD>
CHAR_LOVERNAME, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
#ifdef _GM_ITEM
CHAR_GMFUNCTION, // <20><><EFBFBD><EFBFBD>GM<47><4D><EFBFBD><EFBFBD>
#endif
#ifdef _NEW_NAME //<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>ƺ<EFBFBD>
CHAR_NEWNAME,
#endif
#ifdef _EV_NUM
CHAR_EVCODE,
#endif
#ifdef _ALL_RANDMODE
CHAR_RANDTYPE,
#endif
#ifdef _OFFLINE_SYSTEM
CHAR_OFFBUF,
#endif
// CHAR_CHARPLAYIP, //<2F><><EFBFBD><EFBFBD>IP
CHAR_DATACHARNUM,
}CHAR_DATACHAR;
typedef enum
{
CHAR_ISATTACK,
CHAR_ISATTACKED,
CHAR_ISOVER,
CHAR_ISOVERED,
CHAR_HAVEHEIGHT,
CHAR_ISVISIBLE,
CHAR_ISTRANSPARENT,
CHAR_ISFLYING,
CHAR_ISDIE,
CHAR_ISBIG,
CHAR_ISSHOWBATTLEMSG,
CHAR_ISPARTY,
CHAR_ISWARP,
CHAR_ISDUEL,
CHAR_ISPARTYCHAT,
CHAR_ISTRADECARD,
CHAR_ISTRADE,
#ifdef _CHANNEL_MODIFY
CHAR_ISTELL, //<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_ISFM, //<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_ISOCC, //ְҵƵ<D2B5><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_ISSAVE, //<2F>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><E6BFAA>
CHAR_ISCHAT, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_ISWORLD, //<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
CHAR_FLGNUM,
}CHAR_DATAFLG;
#define CHAR_FS_PARTY (1 << 0)
#define CHAR_FS_BATTLE (1 << 1)
#define CHAR_FS_DUEL (1 << 2)
#define CHAR_FS_PARTYCHAT (1 << 3) //<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CHAR_FS_TRADECARD (1 << 4)
#define CHAR_FS_TRADE (1 << 5)
#ifdef _CHANNEL_MODIFY
#define CHAR_FS_TELL (1 << 6) //<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CHAR_FS_FM (1 << 7) //<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CHAR_FS_OCC (1 << 8) //ְҵƵ<D2B5><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CHAR_FS_SAVE (1 << 9) //<2F>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><E6BFAA>
#define CHAR_FS_CHAT (1 << 10) //<2F><><EFBFBD><EFBFBD><EFBFBD>ҿ<EFBFBD><D2BF><EFBFBD>
#define CHAR_FS_WORLD (1 << 11) //<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
typedef enum
{
CHAR_WORKBATTLEMODE,
CHAR_WORKBATTLEINDEX,
CHAR_WORKBATTLESIDE,
CHAR_WORKBATTLECOM1,
CHAR_WORKBATTLECOM2,
CHAR_WORKBATTLECOM3,
#ifdef _PSKILL_MDFYATTACK
CHAR_WORKBATTLECOM4,
#endif
CHAR_WORKBATTLEFLG,
CHAR_WORKBATTLEWATCH,
CHAR_WORKFIXEARTHAT,
CHAR_WORKFIXWATERAT,
CHAR_WORKFIXFIREAT,
CHAR_WORKFIXWINDAT,
#ifdef _PROFESSION_ADDSKILL
CHAR_WORKFIXEARTHAT_BOUNDARY, //<2F>ؽ<EFBFBD><D8BD><EFBFBD> <20><>16λԪ<CEBB><D4AA><EFBFBD>ż<EFBFBD>ǿ<EFBFBD>ٷֱ<D9B7> <20><>16λԪ<CEBB><D4AA><EFBFBD>Żغ<C5BB><D8BA><EFBFBD>
CHAR_WORKFIXWATERAT_BOUNDARY, //ˮ<><CBAE><EFBFBD><EFBFBD>
CHAR_WORKFIXFIREAT_BOUNDARY, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORKFIXWINDAT_BOUNDARY, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
CHAR_WORKMAXHP,
CHAR_WORKMAXMP,
CHAR_WORKATTACKPOWER,
CHAR_WORKDEFENCEPOWER,
CHAR_WORKQUICK,
CHAR_WORKFIXVITAL,
CHAR_WORKFIXSTR,
CHAR_WORKFIXTOUGH,
CHAR_WORKFIXDEX,
#ifdef _ITEMSET5_TXT
CHAR_WORKFIXARRANGE,
CHAR_WORKARRANGEPOWER,
CHAR_WORKFIXSEQUENCE,
CHAR_WORKSEQUENCEPOWER,
CHAR_WORKATTACHPILE,
CHAR_WORKHITRIGHT, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
#ifdef _ITEMSET6_TXT
CHAR_WORKNEGLECTGUARD,
#endif
CHAR_WORKMODATTACK,
CHAR_WORKMODDEFENCE,
CHAR_WORKMODQUICK,
CHAR_WORKMODCAPTURE,
CHAR_WORKMODCHARM,
CHAR_WORKFIXCHARM,
CHAR_WORKFIXLUCK,
CHAR_WORKFIXAI,
CHAR_WORKFIXAVOID,
CHAR_WORKDAMAGEABSROB,
CHAR_WORKDAMAGEREFLEC,
CHAR_WORKDAMAGEVANISH,
CHAR_WORKPOISON,
CHAR_WORKPARALYSIS,
CHAR_WORKSLEEP,
CHAR_WORKSTONE,
CHAR_WORKDRUNK,
CHAR_WORKCONFUSION,
CHAR_WORKWEAKEN, //<2F><><EFBFBD><EFBFBD> vincent add _MAGIC_WEAKEN
CHAR_WORKDEEPPOISON, //<2F>綾 vincent add _MAGIC_DEEPPOISON
CHAR_WORKBARRIER, //ħ<><C4A7> vincent add _MAGIC_BARRIER
CHAR_WORKNOCAST, //<2F><>Ĭ vincent add _MAGIC_NOCAST
CHAR_WORKMODPOISON,
CHAR_WORKMODPARALYSIS,
CHAR_WORKMODSLEEP,
CHAR_WORKMODSTONE,
CHAR_WORKMODDRUNK,
CHAR_WORKMODCONFUSION,
CHAR_WORKMODWEAKEN,
CHAR_WORKMODDEEPPOISON,
CHAR_WORKMODBARRIER, //ħ<><C4A7>
CHAR_WORKMODNOCAST, //<2F><>Ĭ
CHAR_WORKMODCRITICAL, //һ<><D2BB><EFBFBD><EFBFBD>ɱ
CHAR_WORKULTIMATE,
CHAR_WORKPARTYMODE,
CHAR_WORKTRADEMODE, /* <20><><EFBFBD><EFBFBD>ģʽ
* 0: CHAR_TRADE_FREE :<EFBFBD>ɽ<EFBFBD><EFBFBD><EFBFBD>
* 1: CHAR_TRADE_SENDING:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 2: CHAR_TRADE_TRADING:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 3: CHAR_TRADE_LOCK :<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
CHAR_WORKPARTYINDEX1,
CHAR_WORKPARTYINDEX2,
CHAR_WORKPARTYINDEX3,
CHAR_WORKPARTYINDEX4,
CHAR_WORKPARTYINDEX5,
CHAR_WORKOBJINDEX,
CHAR_WORKWALKSTARTSEC,
CHAR_WORKWALKSTARTMSEC,
CHAR_WORKLOOPSTARTSEC,
CHAR_WORKLOOPSTARTMSEC,
CHAR_WORKLASTATTACKCHARAINDEX,
CHAR_WORKEVENTTYPE,
CHAR_WORKGETEXP,
CHAR_WORKMODCAPTUREDEFAULT,
CHAR_WORKACTION,
CHAR_WORKFD,
CHAR_WORKFLG,
CHAR_WORKGMLEVEL,
CHAR_NPCWORKINT1,
CHAR_NPCWORKINT2,
CHAR_NPCWORKINT3,
CHAR_NPCWORKINT4,
CHAR_NPCWORKINT5,
CHAR_NPCWORKINT6,
CHAR_NPCWORKINT7,
CHAR_NPCWORKINT8,
CHAR_NPCWORKINT9,
CHAR_NPCWORKINT10,
CHAR_NPCWORKINT11,
#ifdef _PETRACE
CHAR_NPCWORKINT12,
#endif
CHAR_NPCWORKINT13,
CHAR_WORKWARPCHECK,
CHAR_TENSEICHECKED,
CHAR_WORKFMINDEXI, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> index
CHAR_WORKFMCHANNEL, // <20><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
CHAR_WORKFMCHANNELQUICK,
CHAR_WORKFMFLOOR, // <20><><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ͼ<EFBFBD><CDBC>
CHAR_WORKFMDP, // <20><><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>ֵ
CHAR_WORKFMPKFLAG, // <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD> 1:Yes
CHAR_WORKFMSETUPFLAG, // <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
CHAR_WORKFMMANINDEX, // FMWARPMAN Index
CHAR_WORKFMCHARINDEX, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD> index
CHAR_WORKBATTLEFLAG, // -1(ս<><D5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29><>1(<28><>ս<EFBFBD><D5BD>)
CHAR_WORK_PET0_STAT,
CHAR_WORK_PET1_STAT,
CHAR_WORK_PET2_STAT,
CHAR_WORK_PET3_STAT,
CHAR_WORK_PET4_STAT,
CHAR_WORKLOGINTIME, // <20><><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>ʱ<EFBFBD><CAB1>
CHAR_WORKTALKCOUNT,
CHAR_WORKTALKTIME,
CHAR_WORKPETFOLLOW, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORKPETFALL, // ս<><D5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORKLEADERCHANGE, // <20><EFBFBD><E5B3A4>λindex
#ifdef _EQUIT_DEFMAGIC
CHAR_EQUITDEFMAGIC_E,
CHAR_EQUITDEFMAGIC_WA,
CHAR_EQUITDEFMAGIC_F,
CHAR_EQUITDEFMAGIC_WI,
CHAR_EQUITQUIMAGIC,
#endif
#ifdef _EQUIT_RESIST
CHAR_WORKEQUITFIRE, //װ<><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORKEQUITTHUNDER,//װ<><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORKEQUITICE,//װ<><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORKEQUITWEAKEN,//װ<><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORKEQUITBARRIER,//װ<><D7B0><EFBFBD><EFBFBD>ħ<EFBFBD><C4A7>
CHAR_WORKEQUITNOCAST,//װ<><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ
CHAR_WORKEQUITFALLRIDE,//װ<><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
#ifdef _PETMAIL_DEFNUMS
CHAR_PETMAILNUMS,
CHAR_PETMAILSENDTIME,
#endif
#ifdef _ITEM_METAMO
CHAR_WORKITEMMETAMO,
#endif
#ifdef _ADD_DEAMGEDEFC
CHAR_WORKOTHERDMAGE,
CHAR_WORKOTHERDEFC,
#endif
#ifdef _LOSE_FINCH_
CHAR_WORKSPETRELIFE, //<2F><><EFBFBD><EFBFBD><EFB8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
#ifdef _CHIKULA_STONE
CHAR_WORKCHIKULAHP,
CHAR_WORKCHIKULAMP,
#endif
#ifdef _PETSKILL_SETDUCK
CHAR_MYSKILLDUCKPOWER,
CHAR_MYSKILLDUCK,
CHAR_MYSKILLSTRPOWER,
CHAR_MYSKILLSTR,
CHAR_MYSKILLTGHPOWER,
CHAR_MYSKILLTGH,
CHAR_MYSKILLDEXPOWER,
CHAR_MYSKILLDEX,
CHAR_MAGICPETMP,
#endif
CHAR_SKILLSTRPOWER,
CHAR_SKILLDEXPOWER,
#ifdef _NPC_MAKEPAIR
CHAR_MYPAIRINDEX,
CHAR_MYPAIRFLG,
CHAR_MYPAIRCODE,
#endif
#ifdef _OTHER_MAGICSTAUTS
CHAR_DEFMAGICSTATUS,
#ifdef _MAGIC_SUPERWALL
CHAR_MAGICSUPERWALL,
#endif
CHAR_OTHERSTATUSNUMS,
#endif
#ifdef _NPCCHANGE_PLAYERIMG
CHAR_WORKNPCMETAMO,
#endif
CHAR_PickAllPet,
#ifdef _DROPSTAKENEW
CHAR_WORKSTAKEFLAG,
CHAR_WORKSTAKETYPE1,
CHAR_WORKSTAKETYPE2,
CHAR_WORKSTAKETYPE3,
CHAR_WORKSTAKETYPE4,
CHAR_WORKSTAKETYPE5,
#endif
CHAR_WORKTOXICATION,
#ifdef _SUIT_ITEM
CHAR_WORKSUITITEM,
CHAR_WORKROUNDHP,
CHAR_WORKROUNDMP,
CHAR_WORKSUITVIT,
CHAR_WORKSUITSTR,
CHAR_WORKSUITTGH,
CHAR_WORKSUITDEX,
CHAR_WORKSUITMODSTR,
#ifdef _SUIT_ADDENDUM
CHAR_WORKRESIST, //<2F><EFBFBD><ECB3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORKCOUNTER,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORKMPOWER, //<2F><>ǿ<EFBFBD><C7BF>ʦ<EFBFBD><CAA6>ħ<EFBFBD><C4A7>( <20><>Ӱ<EFBFBD><D3B0><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>:<3A><>ɽȪ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ĩ<EFBFBD><C4A9> <20><><EFBFBD><EFBFBD>ǹ <20><>Ѫ<EFBFBD><D1AA><EFBFBD><EFBFBD> <20><>Ѫ<EFBFBD><D1AA> һ<><D2BB><EFBFBD><EFBFBD>Ѫ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> )
#endif
#ifdef _SUIT_TWFWENDUM
CHAR_WORK_EA,//<2F><>
CHAR_WORK_WR,//ˮ
CHAR_WORK_FI,//<2F><>
CHAR_WORK_WI,//<2F><>
#endif
#ifdef _SUIT_ADDPART3
CHAR_WORKDUCKPOWER,//<2F><>װ<EFBFBD>ر<EFBFBD>
CHAR_WORKRENOCAST, //<2F><>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORKSUITSTR_P,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ%
CHAR_WORKSUITTGH_P,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ%
CHAR_WORKSUITDEX_P,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λΪ%
#endif
#ifdef _SUIT_ADDPART4
CHAR_SUITPOISON, //װ<><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORKMPOWER2, //<2F><>CHAR_WORKMPOWER<45><52>ͬ
CHAR_WORKUNMPOWER, //<2F>ֿ<EFBFBD><D6BF><EFBFBD>ʦ<EFBFBD><CAA6>ħ<EFBFBD><C4A7>( <20><>Ӱ<EFBFBD><D3B0><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>:<3A><>ɽȪ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ĩ<EFBFBD><C4A9> <20><><EFBFBD><EFBFBD>ǹ <20><>Ѫ<EFBFBD><D1AA><EFBFBD><EFBFBD> <20><>Ѫ<EFBFBD><D1AA> һ<><D2BB><EFBFBD><EFBFBD>Ѫ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> )
#endif
#endif//_SUIT_ITEM
#ifdef _IMPRECATE_ITEM
CHAR_WORKHURTMP, //<2F>˺<EFBFBD> MP
CHAR_WORKWISHESHP, //ף<><D7A3> hp
CHAR_WORKWISHESMP, //ף<><D7A3> MP
CHAR_WORKIMPRECATENUM1,
CHAR_WORKIMPRECATENUM2,
CHAR_WORKIMPRECATENUM3,
#endif
#ifdef _STATUS_WATERWORD
CHAR_WORKMAPFLOORTYPE,
CHAR_WORKSTATUSWATER,
#endif
#ifdef _BATTLENPC_WARP_PLAYER
CHAR_WORKTURN,
#endif
#ifdef _MIND_ICON
CHAR_MIND_NUM,
#endif
#ifdef _ITEM_CRACKER
CHAR_WORKITEM_CRACKER,
#endif
#ifdef _ALLDOMAN // (<28><><EFBFBD>ɿ<EFBFBD>) Syu ADD <20><><EFBFBD>а<EFBFBD>NPC
CHAR_WORKHEROFLOOR,
#endif
#ifdef _PROFESSION_SKILL // WON ADD <20><><EFBFBD><EFBFBD>ְҵ<D6B0><D2B5><EFBFBD><EFBFBD>
CHAR_ENCOUNT_FIX, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_ENCOUNT_NUM,
CHAR_WORK_F_PROFICIENCY,// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORK_I_PROFICIENCY,// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORK_T_PROFICIENCY,// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORK_F_RESIST, // <20><><EFBFBD><EFBFBD>
CHAR_WORK_I_RESIST, // <20><><EFBFBD><EFBFBD>
CHAR_WORK_T_RESIST, // <20>
CHAR_MYSKILLHIT, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_MYSKILLHIT_NUM,
CHAR_WORKDIZZY, // <20><>ѣ
CHAR_WORKMODDIZZY,
CHAR_WORKENTWINE, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORKMODENTWINE,
CHAR_WORKTRAP, // <20><><EFBFBD><EFBFBD>
CHAR_WORKMODTRAP,
CHAR_WORKDRAGNET, // <20><><EFBFBD>޵<EFBFBD><DEB5><EFBFBD>
CHAR_WORKMODDRAGNET,
#ifdef _PROFESSION_ADDSKILL
//***********ע<><D7A2>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ò<EFBFBD><C3B2>ɸ<EFBFBD><C9B8><EFBFBD>*************
CHAR_WORKICECRACK, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORKICECRACK2, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD>2
CHAR_WORKICECRACK3, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD>3
CHAR_WORKICECRACK4, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD>4
CHAR_WORKICECRACK5, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD>5
CHAR_WORKICECRACK6, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD>6
CHAR_WORKICECRACK7, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD>7
CHAR_WORKICECRACK8, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD>8
CHAR_WORKICECRACK9, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD>9
CHAR_WORKICECRACK10, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD>10
CHAR_WORKMODICECRACK,
CHAR_WORKMODICECRACK2,
CHAR_WORKMODICECRACK3,
CHAR_WORKMODICECRACK4,
CHAR_WORKMODICECRACK5,
CHAR_WORKMODICECRACK6,
CHAR_WORKMODICECRACK7,
CHAR_WORKMODICECRACK8,
CHAR_WORKMODICECRACK9,
CHAR_WORKMODICECRACK10,
//*****************************************
#else
CHAR_WORKICECRACK, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORKMODICECRACK,
#endif //_PROFESSION_ADDSKILL
CHAR_WORKOBLIVION, // <20><><EFBFBD><EFBFBD>
CHAR_WORKMODOBLIVION,
CHAR_WORKICEARROW, // <20><><EFBFBD><EFBFBD>
CHAR_WORKMODICEARROW,
CHAR_WORKBLOODWORMS, // <20><>Ѫ<EFBFBD><D1AA>
CHAR_WORKMODBLOODWORMS,
CHAR_WORKBLOODWORMSID,
CHAR_WORKSIGN, // һ<><D2BB><EFBFBD><EFBFBD>Ѫ
CHAR_WORKMODSIGN,
CHAR_WORKSIGNID,
CHAR_WORK_P_DUCK, // <20>ر<EFBFBD>
CHAR_WORKMOD_P_DUCK,
CHAR_WORK_WEAPON, // <20><><EFBFBD><EFBFBD>ר<EFBFBD><D7A8>
CHAR_WORKMOD_WEAPON,
CHAR_WORK_FOCUS, // רעս<D7A2><D5BD>
CHAR_WORKMOD_FOCUS,
CHAR_WORKINSTIGATE, // <20><><EFBFBD><EFBFBD>
CHAR_WORKMODINSTIGATE,
CHAR_WORK_F_ENCLOSE, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORK_I_ENCLOSE, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORK_T_ENCLOSE, // <20>׸<EFBFBD><D7B8><EFBFBD>
CHAR_WORKMOD_F_ENCLOSE,
CHAR_WORKMOD_I_ENCLOSE,
CHAR_WORKMOD_T_ENCLOSE,
CHAR_WORK_F_ENCLOSE_2, // <20><><EFBFBD><EFBFBD>
CHAR_WORK_I_ENCLOSE_2, // <20><><EFBFBD><EFBFBD>
CHAR_WORK_T_ENCLOSE_2, // <20>׸<EFBFBD>
CHAR_WORKMOD_F_ENCLOSE_2,
CHAR_WORKMOD_I_ENCLOSE_2,
CHAR_WORKMOD_T_ENCLOSE_2,
CHAR_WORKRESIST_F, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORKRESIST_I, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORKRESIST_T, // <20><><EFBFBD><EFBFBD><EFBFBD>׿<EFBFBD><D7BF><EFBFBD>
#ifdef _PROFESSION_ADDSKILL
CHAR_WORKERSIST_F_I_T, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׿<EFBFBD><D7BF><EFBFBD>
CHAR_WORKANNEX, //<2F><><EFBFBD><EFBFBD>
CHAR_WORKWATER, //ˮ<><CBAE><EFBFBD><EFBFBD>
CHAR_WORKFEAR, //<2F>־<EFBFBD>
CHAR_DOOMTIME, //<2F><><EFBFBD><EFBFBD>ĩ<EFBFBD>ռ<EFBFBD><D5BC><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǹ<EFBFBD><C7B9><EFBFBD><EFBFBD>)
CHAR_WORK_com1,
CHAR_WORK_toNo,
CHAR_WORK_mode,
CHAR_WORK_skill_level,
CHAR_WORK_array,
#endif
CHAR_WORKMODRESIST_F, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>԰ٷֱ<D9B7><D6B1><EFBFBD>ֵ
CHAR_WORKMODRESIST_I, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>԰ٷֱ<D9B7><D6B1><EFBFBD>ֵ
CHAR_WORKMODRESIST_T, // <20><><EFBFBD><EFBFBD><EFBFBD>׿<EFBFBD><D7BF>԰ٷֱ<D9B7><D6B1><EFBFBD>ֵ
#endif
#ifdef _MAGICSTAUTS_RESIST
CHAR_MAGICFIRE, //<2F>𿹾<EFBFBD><F0BFB9BE><EFBFBD>
CHAR_MAGICTHUNDER,//<2F><EFBFBD><E7BFB9><EFBFBD><EFBFBD>
CHAR_MAGICICE,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
#ifdef _PET_SKILL_SARS // WON ADD <20><>ɷ<EFBFBD><C9B7><EFBFBD><EFBFBD>
CHAR_WORKSARS,
CHAR_WORKMODSARS,
#endif
#ifdef _PETSKILL_ACUPUNCTURE
CHAR_WORKACUPUNCTURE,
#endif
#ifdef _PETSKILL_RETRACE
CHAR_WORKRETRACE,
#endif
#ifdef _CHATROOMPROTOCOL // (<28><><EFBFBD>ɿ<EFBFBD>) Syu ADD <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
CHAR_WORKCHATROOMTYPE ,
CHAR_WORKCHATROOMNUM ,
#endif
#ifdef _MAGIC_RESIST_EQUIT // WON ADD ְҵ<D6B0><D2B5><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>
CHAR_WORK_F_SUIT,
CHAR_WORK_I_SUIT,
CHAR_WORK_T_SUIT,
#endif
#ifdef _PETSKILL_BECOMEFOX
CHAR_WORKFOXROUND, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD><D8BA><EFBFBD>
#endif
CHAR_WORKSTANDBYPET, // Robin add <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#ifdef _STREET_VENDOR
CHAR_WORKSTREETVENDOR, // <20><>̯״̬ -1:û<>ڰ<EFBFBD>̯,Ҳû<D2B2>ڰ<EFBFBD>̯<EFBFBD><CCAF><EFBFBD><EFBFBD>;1:<3A><>̯<EFBFBD><CCAF>;2:<3A><><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD>;3:<3A><>̯<EFBFBD><CCAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CHAR_WORKSTREETVENDOR_WHO, // ˭<><CBAD><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD>
#endif
#ifdef _ANGEL_SUMMON
CHAR_WORKMISSION,
CHAR_WORKANGELMODE,
#endif
#ifdef _MAP_TIME
CHAR_WORK_MAP_TIME, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
#endif
#ifdef _PETSKILL_LER
CHAR_WORK_RELIFE, // <20>׶<EFBFBD><D7B6><EFBFBD><EFBFBD><EFBFBD>
#endif
#ifdef _TEACHER_SYSTEM
CHAR_WORK_GET_TEACHER_FAME, // <20><>ʦ<EFBFBD><EFBFBD><ECB5BC><EFBFBD><EFBFBD>
#endif
CHAR_WORKSKYWALKER, // GM<47><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>??
CHAR_WORKLASTMERGETIME, // <20><><EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD>ʱ<EFBFBD><CAB1>
#ifdef _FONT_SIZE
CHAR_WORKFONTSIZE, //
#endif
#ifdef _TIME_TICKET
CHAR_WORKTICKETTIME,
CHAR_WORKTICKETTIMESTART,
#endif
// CHAR_WORKAMPOINT,
CHAR_WORKDBATTLEESCAPE,
#ifdef _AUTO_PK
CHAR_WORK_AUTOPK, //<2F>Զ<EFBFBD><D4B6><EFBFBD>PK
CHAR_WORK_AUTOPK_DEAD, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
CHAR_WORKDEBUGMODE, // <20><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>
#ifdef _TRADE_PK
CHAR_WORKTRADEPK,
#endif
CHAR_WORKSAFEMODE,
CHAR_WORKTRADETYPE,
CHAR_WORKSAVETIME,
#ifdef _ALL_TALK
CHAR_WORKALLTALKTIME,
CHAR_WORKALLTALKTYPE,
#endif
#ifdef _QUESTION_ONLINE
CHAR_WORKQUESTIONFLG,
#endif
CHAR_WORKPETSKILLBT,
#ifdef _VIGOR_SYS
CHAR_WORKVIGORTIME,
#endif
CHAR_WORKBATTLECOM5,
CHAR_WORKBATTLECOM6,
CHAR_WORKBATTLECOM7,
CHAR_WORKLISTPAGE,
CHAR_WORKLISTSELECT,
#ifdef _NPCENEMY_1
CHAR_WORKBATTLEHELP,
#endif
#ifdef _OFFLINE_SYSTEM
CHAR_WORK_OFFLINE,
#endif
#ifdef _PET_RESET
CHAR_WORKRESETPETINDEX,
#endif
#ifdef _BATTLEMAP_CTRL
CHAR_WORKBATTLETIME,
#endif
#ifdef _ZHIPIAO_SYSTEM
CHAR_WORKZHIPIAOPOINT,
CHAR_WORKZHIPIAOITEM,
#endif
#ifdef _NO_DROPITEM
CHAR_DROPITEMCHARAINDEX,
#endif
#ifdef _FMZUZHANG_MSG
CHAR_WORKLOGININTYPE,
#endif
#ifdef _WAN_FIX
CHAR_WORKBATTLEPROTYPE,
#endif
#ifdef _ITEM_RESET
CHAR_WORKFROMITEMINDEX,
CHAR_WORKTOITEMINDEX,
#endif
#ifdef _WARNPC_CTRL
CHAR_WORKNPCENEMYTIME,
CHAR_WORKNPCENEMYBATTLETIME,
CHAR_WORKNPCBATTLESAMEIP,
#endif
#ifdef _NO_DAOLUAN
CHAR_WORKNOTALKTRNTIME,
#endif
#ifdef _NPC_PETSKILLUP
CHAR_WORKPETSKILLUP,
#endif
#ifdef _DP_ZHIPIAO_ITEM
CHAR_WORKDPZHIPIAOITEM,
CHAR_WORKDPZHIPIAOSHUI,
CHAR_WORKDPZHIPIAORAND,
CHAR_WORKDPZHIPIAOPOINT,
#endif
CHAR_WORKRANDEDITBASETIME,
CHAR_WORKRANDTYPE,
#ifdef _LOOK_STREET_TIME
CHAR_LOOKSTREETTIME,
#endif
CHAR_WORKLUANPCINT,
CHAR_WORKLUANPCINT1,
#ifdef _BATTLEEND_FIX
CHAR_WORKBALLTELENDTIME,
#endif
CHAR_WORKBATTLEREVERSE,
CHAR_WORKNPCTYPE,
CHAR_WORKJILU,
CHAR_LASTCHARSAVETIME,
CHAR_WORKOFFLINETIME,
CHAR_WORKITEMEXP,
#ifdef _ONLINE_TIME
CHAR_WORK_LOGIN_TIME,
#endif
#ifdef _SPECIAL_COUNTER
CHAR_WORK_COUNTER,
#endif
#ifdef _SPECIAL_TIMER
CHAR_WORK_TIMER,
#endif
#ifdef _FIX_SAVE_CHAR
CHAR_WORK_SAVE_CHAR,
#endif
#ifdef _RECORD_IP
CHAR_WORK_RECORD_IP,
#endif
#ifdef _NULL_CHECK_ITEM
CHAR_WORKITEMINDEX, // <20><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>
#endif
#ifdef _FIX_STW_SPEED_ENEMY
CHAR_WORK_X,
CHAR_WORK_Y,
CHAR_WORK_W,
CHAR_WORK_DIR,
#endif
CHAR_WORKDATAINTNUM,
CHAR_WORKENCOUNTPROBABILITY_MIN = CHAR_NPCWORKINT1,
CHAR_WORKENCOUNTPROBABILITY_MAX = CHAR_NPCWORKINT2,
CHAR_WORK_TOHELOS_CUTRATE = CHAR_NPCWORKINT3,
CHAR_WORK_TOHELOS_COUNT = CHAR_NPCWORKINT4,
CHAR_WORKSHOPRELEVANT = CHAR_NPCWORKINT5,
CHAR_WORKSHOPRELEVANTSEC = CHAR_NPCWORKINT6,
CHAR_WORKSHOPRELEVANTTRD = CHAR_NPCWORKINT7,
CHAR_WORKTRADER = CHAR_NPCWORKINT8,
CHAR_WORKEFFECT = CHAR_NPCWORKINT9,
CHAR_WORKRENAMEITEMNUM = CHAR_NPCWORKINT10,
CHAR_WORKRENAMEITEMINDEX = CHAR_NPCWORKINT5,
CHAR_WORKPLAYERINDEX = CHAR_NPCWORKINT1,
CHAR_WORKTACTICS = CHAR_NPCWORKINT2,
CHAR_WORKPETFOLLOWMODE = CHAR_NPCWORKINT3,
CHAR_WORKPETFOLLOWCOUNT = CHAR_NPCWORKINT4,
CHAR_WORK_PETFLG = CHAR_NPCWORKINT1,
CHAR_WORKGENERATEINDEX = CHAR_NPCWORKINT1,
CHAR_WORKDOORCLOSETIME = CHAR_NPCWORKINT1,
CHAR_WORKDOORSWITCHCOUNT = CHAR_NPCWORKINT2,
CHAR_WORKDOOROPENG = CHAR_NPCWORKINT3,
CHAR_WORKDOORCLOSEG = CHAR_NPCWORKINT4,
CHAR_WORKDOORSOONFLG = CHAR_NPCWORKINT5,
CHAR_WORKDOORPASSFLG = CHAR_NPCWORKINT6,
CHAR_WORKDOORKEYITEMID = CHAR_NPCWORKINT7,
CHAR_WORKDOORSWITCHCURRENT = CHAR_NPCWORKINT8,
CHAR_WORKDOORORIGINALGRAPHIC = CHAR_NPCWORKINT9,
CHAR_WORKDOOREXPIRETIME = CHAR_NPCWORKINT10,
CHAR_WORKOLDMANID = CHAR_NPCWORKINT1,
CHAR_WORKSHOPCLIENTINDEX = CHAR_NPCWORKINT1,
CHAR_WORKDENGONMAXID = CHAR_NPCWORKINT1,
}CHAR_WORKDATAINT;
enum{
WORKFLG_DEBUGMODE = ( 1 << 0 ),
WORKFLG_MICMODE = ( 2 << 0 ),
};
typedef enum
{
CHAR_INITFUNC,
CHAR_FIRSTFUNCTION = CHAR_INITFUNC,
CHAR_WALKPREFUNC,
CHAR_WALKPOSTFUNC,
CHAR_PREOVERFUNC,
CHAR_POSTOVERFUNC,
CHAR_WATCHFUNC,
CHAR_LOOPFUNC,
CHAR_DYINGFUNC,
CHAR_TALKEDFUNC,
CHAR_PREATTACKEDFUNC,
CHAR_POSTATTACKEDFUNC,
CHAR_OFFFUNC,
CHAR_LOOKEDFUNC,
CHAR_ITEMPUTFUNC,
CHAR_SPECIALTALKEDFUNC,
CHAR_WINDOWTALKEDFUNC,
#ifdef _USER_CHARLOOPS
CHAR_LOOPFUNCTEMP1,
CHAR_LOOPFUNCTEMP2,
CHAR_BATTLEPROPERTY,
#endif
#ifdef _ALLBLUES_LUA
CHAR_OVERLAPEDFUNC,
CHAR_BATTLEOVERDFUNC,
#ifdef _ALLBLUES_LUA_1_4
CHAR_LOGINOUTFUNC,
#endif
#ifdef _ALLBLUES_LUA_1_9
CHAR_BATTLESETFUNC,
#endif
#endif
CHAR_LASTFUNCTION,
CHAR_FUNCTABLENUM = CHAR_LASTFUNCTION,
}CHAR_FUNCTABLE;
typedef enum
{
CHAR_WORKWALKARRAY,
CHAR_NPCWORKCHAR1,
CHAR_NPCWORKCHAR2,
CHAR_NPCWORKCHAR3,
CHAR_NPCWORKCHAR4,
CHAR_NPCWORKCHAR5,
CHAR_NPCWORKCHAR6,
#ifdef _ANGEL_SUMMON
CHAR_WORKHEROINFO,
#endif
#ifdef _STREET_VENDOR
CHAR_STREETVENDOR_NAME,
#endif
#ifdef _NO_QUICK_WAR
CHAR_WARWORKXYD,
#endif
CHAR_WORKDATACHARNUM,
CHAR_WORKBATTLE_TACTICSOPTION = CHAR_NPCWORKCHAR1,
#ifdef _BATTLENPC_WARP_PLAYER
CHAR_WORKBATTLE_ACT_CONDITION = CHAR_NPCWORKCHAR2,
#endif
CHAR_WORKDOORPASSWD = CHAR_NPCWORKCHAR1,
CHAR_WORKDOORNAME = CHAR_NPCWORKCHAR2,
CHAR_WORKDOORGOLDLIMIT = CHAR_NPCWORKCHAR3,
CHAR_WORKDOORWEEK = CHAR_NPCWORKCHAR4,
CHAR_WORKDOORHOUR = CHAR_NPCWORKCHAR5,
CHAR_WORKDOORMINUTE = CHAR_NPCWORKCHAR6,
CHAR_WORKDOORTITLE = CHAR_NPCWORKCHAR6,
CHAR_WORKDOORMANDOORNAME = CHAR_NPCWORKCHAR1,
CHAR_TIME1,
CHAR_TIME2 = CHAR_NPCWORKCHAR6,
CHAR_WORKRANDMSG,
CHAR_WORKRANDEDITBASE,
#ifdef _MM_NO_JIAOBEN
CHAR_WORKDROPMM,
#endif
}CHAR_WORKDATACHAR;
typedef enum
{
CHAR_IMAGETYPE_GIRL,
CHAR_IMAGETYPE_BOY,
CHAR_IMAGETYPE_CHILDBOY,
CHAR_IMAGETYPE_CHILDGIRL,
CHAR_IMAGETYPE_MAN,
CHAR_IMAGETYPE_WOMAN,
CHAR_IMAGETYPE_OLDMAN,
CHAR_IMAGETYPE_DOG,
CHAR_IMAGETYPENUM
}CHAR_ImageType;
#define CHAR_P_STRING_HP ( 1 << 1 ) // 0x00000002
#define CHAR_P_STRING_MAXHP ( 1 << 2 ) // 0x00000004
#define CHAR_P_STRING_MP ( 1 << 3 ) // 0x00000008
#define CHAR_P_STRING_MAXMP ( 1 << 4 ) // 0x00000010
#define CHAR_P_STRING_VITAL ( 1 << 5 )
#define CHAR_P_STRING_STR ( 1 << 6 )
#define CHAR_P_STRING_TOUGH ( 1 << 7 )
#define CHAR_P_STRING_DEX ( 1 << 8 )
#define CHAR_P_STRING_EXP ( 1 << 9 )
#define CHAR_P_STRING_NEXTEXP ( 1 << 10 )
#define CHAR_P_STRING_LV ( 1 << 11 )
#define CHAR_P_STRING_ATK ( 1 << 12 )
#define CHAR_P_STRING_DEF ( 1 << 13 )
#define CHAR_P_STRING_QUICK ( 1 << 14 )
#define CHAR_P_STRING_CHARM ( 1 << 15 )
#define CHAR_P_STRING_LUCK ( 1 << 16 )
#define CHAR_P_STRING_EARTH ( 1 << 17 )
#define CHAR_P_STRING_WATER ( 1 << 18 )
#define CHAR_P_STRING_FIRE ( 1 << 19 )
#define CHAR_P_STRING_WIND ( 1 << 20 )
#define CHAR_P_STRING_GOLD ( 1 << 21 )
#define CHAR_P_STRING_TITLE ( 1 << 22 )
#define CHAR_P_STRING_DUELPOINT ( 1 << 23 )
#define CHAR_P_STRING_TRANSMIGRATION ( 1 << 24 )
#define CHAR_P_STRING_NAME ( 1 << 25 )
#define CHAR_P_STRING_OWNTITLE ( 1 << 26 )
#define CHAR_P_STRING_RIDEPET ( 1 << 27 ) // 0x08000000
#define CHAR_P_STRING_LEARNRIDE ( 1 << 28 ) // 0x10000000
#define CHAR_P_STRING_BASEBASEIMAGENUMBER ( 1 << 29 ) // 0x20000000
//#define CHAR_P_STRING_PKDP ( 1 << 30 )
//#ifdef _CHAR_PROFESSION
//#define CHAR_P_STRING_PROFESSION ( 1 << 30 )
//#endif
#define CHAR_P_STRING_SKYWALKER ( 1 << 30 ) // 0x40000000
#define CHAR_P_STRING_DEBUGMODE ( 1 << 31 ) // 0x80000000
#define CHAR_N_STRING_OBJINDEX ( 1 << 1 )
#define CHAR_N_STRING_LV ( 1 << 2 )
#define CHAR_N_STRING_MAXHP ( 1 << 3 )
#define CHAR_N_STRING_HP ( 1 << 4 )
#define CHAR_N_STRING_MP ( 1 << 5 )
#define CHAR_N_STRING_NAME ( 1 << 6 )
#define CHAR_K_STRING_BASEIMAGENUMBER ( 1 << 1 )
#define CHAR_K_STRING_HP ( 1 << 2 )
#define CHAR_K_STRING_MAXHP ( 1 << 3 )
#define CHAR_K_STRING_MP ( 1 << 4 )
#define CHAR_K_STRING_MAXMP ( 1 << 5 )
#define CHAR_K_STRING_EXP ( 1 << 6 )
#define CHAR_K_STRING_NEXTEXP ( 1 << 7 )
#define CHAR_K_STRING_LV ( 1 << 8 )
#define CHAR_K_STRING_ATK ( 1 << 9 )
#define CHAR_K_STRING_DEF ( 1 << 10 )
#define CHAR_K_STRING_QUICK ( 1 << 11 )
#define CHAR_K_STRING_AI ( 1 << 12 )
#define CHAR_K_STRING_EARTH ( 1 << 13 )
#define CHAR_K_STRING_WATER ( 1 << 14 )
#define CHAR_K_STRING_FIRE ( 1 << 15 )
#define CHAR_K_STRING_WIND ( 1 << 16 )
#define CHAR_K_STRING_SLOT ( 1 << 17 )
#define CHAR_K_STRING_CHANGENAMEFLG ( 1 << 18 )
#define CHAR_K_STRING_NAME ( 1 << 19 )
#define CHAR_K_STRING_USERPETNAME ( 1 << 20 )
typedef union {
int indexOfPet[CHAR_MAXPETHAVE];
int indexOfPetskill[CHAR_MAXPETSKILLHAVE];
}CHAR_UNIONTABLE;
typedef struct tagChar
{
BOOL use;
int data[CHAR_DATAINTNUM];
STRING128 string[CHAR_DATACHARNUM];
char flg[(CHAR_FLGNUM%(sizeof(char)*8))
? (CHAR_FLGNUM/(sizeof(char)*8))+1
: (CHAR_FLGNUM/(sizeof(char)*8))];
int indexOfExistItems[CHAR_MAXITEMHAVE];
int indexOfExistPoolItems[CHAR_MAXPOOLITEMHAVE];
#ifdef _CHAR_POOLITEM
int *indexOfExistDepotItems;
#endif
#ifdef _CHAR_POOLPET
int *indexOfExistDepotPets;
#endif
CHAR_HaveSkill haveSkill[CHAR_SKILLMAXHAVE];
int indexOfHaveTitle[CHAR_TITLEMAXHAVE];
ADDRESSBOOK_entry addressBook[ADDRESSBOOK_MAX];
CHAR_UNIONTABLE unionTable;
int indexOfPoolPet[CHAR_MAXPOOLPETHAVE];
STRING32 charfunctable[CHAR_FUNCTABLENUM];
int workint[CHAR_WORKDATAINTNUM];
STRING64 workchar[CHAR_WORKDATACHARNUM];
int CharMakeSequenceNumber;
void* functable[CHAR_FUNCTABLENUM];
#ifdef _JZ_NEWSCRIPT_LUA
STRING32 lua_charfunctable[CHAR_FUNCTABLENUM];
void* sur_functable[CHAR_FUNCTABLENUM];
STRING32 sur_charfunctable[CHAR_FUNCTABLENUM];
#endif
#ifdef _STREET_VENDOR
StreetVendor_t StreetVendor[MAX_SELL_ITEM];
#endif
#ifdef _ALLBLUES_LUA
lua_State *lua[CHAR_FUNCTABLENUM];
char *luafunctable[CHAR_FUNCTABLENUM];
#endif
}Char;
#define CHAR_CHECKINDEX( index) _CHAR_CHECKINDEX( __FILE__, __LINE__, index)
INLINE BOOL _CHAR_CHECKINDEX( char *file, int line, int index);
#define CHAR_CHECKITEMINDEX( charaindex, iindex) _CHAR_CHECKITEMINDEX( __FILE__, __LINE__, charaindex, iindex)
INLINE BOOL _CHAR_CHECKITEMINDEX( char *file, int line, int charaindex, int iindex );
#define CHAR_CHECKPETINDEX( petindex) _CHAR_CHECKPETINDEX( __FILE__, __LINE__, petindex )
INLINE BOOL _CHAR_CHECKPETINDEX( char *file, int line, int petindex );
#define CHAR_CHECKPOOLPETINDEX( petindex) _CHAR_CHECKPOOLPETINDEX( __FILE__, __LINE__, petindex )
INLINE BOOL _CHAR_CHECKPOOLPETINDEX( char *file, int line, int petindex );
#define CHAR_CHECKPETSKILLINDEX( havepetskillindex) _CHAR_CHECKPETSKILLINDEX( __FILE__, __LINE__, havepetskillindex)
INLINE BOOL _CHAR_CHECKPETSKILLINDEX( char *file, int line, int havepetskillindex );
INLINE int CHAR_getInt( int index , CHAR_DATAINT element);
#define CHAR_setInt( index , element, data) _CHAR_setInt( __FILE__, __LINE__, index , element, data)
INLINE int _CHAR_setInt( char *file, int line, int index ,CHAR_DATAINT element, int data);
#ifdef _FIX_SETWORKINT
#define CHAR_getWorkInt( index , element) _CHAR_getWorkInt( __FILE__, __LINE__, index , element)
INLINE int _CHAR_getWorkInt( char *file, int line, int index ,CHAR_WORKDATAINT element);
#define CHAR_setWorkInt( index, element, data) _CHAR_setWorkInt( __FILE__, __LINE__, index , element, data)
INLINE int _CHAR_setWorkInt( char *file, int line, int index ,CHAR_WORKDATAINT element, int data);
#else
INLINE int CHAR_setWorkInt( int index ,CHAR_WORKDATAINT element, int data);
#endif
#define CHAR_getChar( index, elem) _CHAR_getChar( __FILE__, __LINE__, index, elem)
INLINE char* _CHAR_getChar( char *file, int line, int index ,CHAR_DATACHAR element );
#define CHAR_setChar( index, elem, n) _CHAR_setChar( __FILE__, __LINE__, index, elem, n)
INLINE BOOL _CHAR_setChar( char *file, int line, int index ,CHAR_DATACHAR element, char* new );
#define CHAR_getFlg( index, elem) _CHAR_getFlg( __FILE__, __LINE__, index, elem)
INLINE BOOL _CHAR_getFlg( char *file, int line, int index ,CHAR_DATAFLG element );
#define CHAR_setFlg( index, elem, n) _CHAR_setFlg( __FILE__, __LINE__, index, elem, n)
INLINE BOOL _CHAR_setFlg( char *file, int line, int index , CHAR_DATACHAR element, int newdata );
#define CHAR_getWorkChar( index, elem) _CHAR_getWorkChar( __FILE__, __LINE__, index, elem)
INLINE char * _CHAR_getWorkChar( char *file, int line, int index, CHAR_WORKDATACHAR element );
#define CHAR_setWorkChar( index, elem, n) _CHAR_setWorkChar( __FILE__, __LINE__, index, elem, n)
INLINE BOOL _CHAR_setWorkChar( char *file, int line, int index, CHAR_WORKDATACHAR element, char * new);
#define CHAR_getItemIndex( index, iindex) _CHAR_getItemIndex( __FILE__, __LINE__, index, iindex)
INLINE int _CHAR_getItemIndex( char *file, int line, int charaindex, int ti);
#define CHAR_setItemIndex( index, iindex,id) _CHAR_setItemIndex( __FILE__, __LINE__, index, iindex, id)
INLINE int _CHAR_setItemIndex( char *file, int line, int index ,int iindex,int id );
#define CHAR_getPoolItemIndex( index, iindex) _CHAR_getPoolItemIndex( __FILE__, __LINE__, index, iindex)
INLINE int _CHAR_getPoolItemIndex( char *file, int line, int index, int iindex);
#define CHAR_setPoolItemIndex( index, iindex,id) _CHAR_setPoolItemIndex( __FILE__, __LINE__, index, iindex, id)
INLINE int _CHAR_setPoolItemIndex( char *file, int line, int index ,int iindex,int id );
INLINE BOOL CHAR_setAddressbookEntry( int index , int aindex , ADDRESSBOOK_entry *a );
INLINE ADDRESSBOOK_entry* CHAR_getAddressbookEntry( int index , int aindex);
INLINE Char* CHAR_getCharPointer( int index );
INLINE int CHAR_getCharNum( void );
INLINE int CHAR_getPlayerMaxNum( void );
INLINE int CHAR_getPetMaxNum( void );
INLINE int CHAR_getOthersMaxNum( void );
INLINE BOOL CHAR_getCharUse( int index );
INLINE CHAR_HaveSkill* CHAR_getCharHaveSkill( int index,int sindex );
INLINE int CHAR_getCharHaveTitle( int index,int tindex );
INLINE int CHAR_setCharHaveTitle( int charaindex,int tindex, int new );
INLINE int CHAR_getCharPet( int charaindex,int petindex );
INLINE int CHAR_setCharPet( int charaindex,int petindex, int new );
INLINE int CHAR_getCharPoolPet( int charaindex,int petindex );
INLINE int CHAR_setCharPoolPet( int charaindex,int petindex, int new );
int CHAR_getCharPetElement( int charaindex );
int CHAR_getCharPoolPetElement( int charaindex );
int CHAR_getCharPoolItemIndexElement( int charaindex );
int CHAR_getEmptyCharPoolItemIndexNum( int charaindex);
#ifdef _CHAR_POOLPET
int CHAR_getCharDepotPetElement( int charaindex );
#endif
#define CHAR_getIntPSkill( index, skillti, ti) _CHAR_getIntPSkill( __FILE__, __LINE__, index, skillti, ti)
INLINE int _CHAR_getIntPSkill( char *file, int line, int index, int skillti, SKILL_DATAINT ti);
#define CHAR_setIntPSkill( index, skillti, ti, data) _CHAR_setIntPSkill( __FILE__, __LINE__, index, skillti, ti, data)
INLINE void _CHAR_setIntPSkill( char *file, int line, int index, int skillti, SKILL_DATAINT ti, int data);
extern Char *CHAR_chara;
INLINE int CHAR_getCharMakeSequenceNumber( int charaindex );
void CHAR_constructFunctable( int charaindex );
void* CHAR_getFunctionPointer( int charaindex, int functype );
#ifdef _ALLBLUES_LUA
INLINE BOOL CHAR_setLUAFunction( int charaindex, int functype, lua_State *L, const char *luafunctable );
INLINE BOOL CHAR_delLUAFunction( int charaindex, int functype);
INLINE lua_State *CHAR_getLUAFunction( int charaindex, int functype);
#endif
BOOL CHAR_initCharArray( int pnum, int petnum,int onum );
BOOL CHAR_endCharArray( void );
int CHAR_initCharOneArray( Char* ch );
void CHAR_endCharOneArray( int index );
void CHAR_removeHaveItem( Char* ch );
void CHAR_endCharData( Char* ch );
char* CHAR_makeStringFromCharData( Char* one );
char* CHAR_makeStringFromCharIndex( int index );
BOOL CHAR_makeCharFromStringToArg( char* data, Char* one);
int CHAR_makePetFromStringToArg( char *src, Char *ch, int ti);
char *CHAR_makePetStringFromPetIndex( int petindex);
#define CHAR_getPetSkillElement( petindex) _CHAR_getPetSkillElement( __FILE__, __LINE__, petindex)
int _CHAR_getPetSkillElement( char *file, int line, int petindex );
#define CHAR_setPetSkill( petindex, havepetskillindex, n) _CHAR_setPetSkill( __FILE__, __LINE__, petindex, havepetskillindex, n)
INLINE int _CHAR_setPetSkill( char *file, int line, int petindex,int havepetskillindex, int new );
#define CHAR_getPetSkill( petindex, havepetskillindex) _CHAR_getPetSkill( __FILE__, __LINE__, petindex, havepetskillindex)
INLINE int _CHAR_getPetSkill( char *file, int line, int petindex,int havepetskillindex );
#define SETFLG(a,b,c,d,e,f,g,h) (((a)<<0)+((b)<<1)+((c)<<2)+((d)<<3)+((e)<<4)+((f)<<5)+((g)<<6)+((h)<<7))
INLINE int CHAR_AddMaxExp( int charaindex, int addexp);
INLINE int CHAR_setMaxExpFromLevel( int charaindex, int level);
INLINE int CHAR_setMaxExp( int charaindex, unsigned long int Setexp);
#ifdef _NEWOPEN_MAXEXP
INLINE int CHAR_ChangeExp( int charaindex );
INLINE int CHAR_HandleExp( int charaindex );
#endif
// ride Pet table
typedef struct tagtagRidePetTable
{
int rideNo;
int charNo;
int petNo;
int petId;
} tagRidePetTable;
// CoolFish: Family Member Kind 2001/8/28
typedef enum
{
FMMEMBER_NONE = -1,
FMMEMBER_MEMBER = 1,
FMMEMBER_APPLY,
FMMEMBER_LEADER,
FMMEMBER_ELDER,
} CHAR_FM_MEMBERKIND;
// shan 2002/01/10
typedef enum
{
PET_STAT_NONE = 0,
PET_STAT_SELECT,
PET_STAT_MAIL = 4,
} CHAR_PET_STAT;
#ifdef _PERSONAL_FAME // Arminius: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void CHAR_earnFame(int index, int fame);
#endif
// CoolFish: 2001/10/11
#ifdef _UNIQUE_P_I
void CHAR_setPetUniCode(int petindex);
void ITEM_setItemUniCode(int itemindex);
void Check_P_I_UniCode(int charindex);
#endif
// Arminius 12.15 <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ʿ
int IsMale(int charindex);
// Arminius 12.15 <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD>Ůʿ
int IsFemale(int charindex);
#ifdef _NEW_RIDEPETS
#define RIDE_PET0 1
#define RIDE_PET1 ( 1 << 1 )
#define RIDE_PET2 ( 1 << 2 )
#define RIDE_PET3 ( 1 << 3 )
#define RIDE_PET4 ( 1 << 4 )
#define RIDE_PET5 ( 1 << 5 )
#define RIDE_PET6 ( 1 << 6 )
#define RIDE_PET7 ( 1 << 7 )
#define RIDE_PET8 ( 1 << 8 )
#define RIDE_PET9 ( 1 << 9 )
#define RIDE_PET10 ( 1 << 11 )
#define RIDE_PET11 ( 1 << 10 )
#define RIDE_PET12 ( 1 << 12 )
#define RIDE_PET13 ( 1 << 13 )
#define RIDE_PET14 ( 1 << 14 )
#ifdef _RIDE_CF
#define RIDE_PET15 ( 1 << 15 )
#define RIDE_PET16 ( 1 << 16 )
#define RIDE_PET17 ( 1 << 17 )
#define RIDE_PET19 ( 1 << 19 )
#define RIDE_PET18 ( 1 << 18 )
#define RIDE_PET20 ( 1 << 20 )
#define RIDE_PET21 ( 1 << 21 )
#define RIDE_PET22 ( 1 << 22 )
#define RIDE_PET23 ( 1 << 23 )
#define RIDE_PET24 ( 1 << 24 )
#define RIDE_PET25 ( 1 << 25 )
#define RIDE_PET26 ( 1 << 26 )
#define RIDE_PET27 ( 1 << 27 )
#define RIDE_PET28 ( 1 << 28 )
#define RIDE_PET29 ( 1 << 29 )
#define RIDE_PET30 ( 1 << 30 )
#define RIDE_PET31 ( 1 << 31 )
#define RIDE_TPYE1 1
#define RIDE_TPYE2 ( 1 << 1 )
#define RIDE_PET_ALL ( 0xFFFFFFFF )
#define RIDE_TPYE_ALL ( 0xFFFFFFFF )
#define MAXNOINDEX 32*3
#else
#define RIDE_PET_ALL ( RIDE_PET0|RIDE_PET1|RIDE_PET2|RIDE_PET3|RIDE_PET4|RIDE_PET5|RIDE_PET6|RIDE_PET7|RIDE_PET8|RIDE_PET9|RIDE_PET10|RIDE_PET11 )
#define MAXNOINDEX 15
#endif
#ifdef _PET_BEATITUDE
#define BEATITUDE_VITAL ( 1 << 0 )
#define BEATITUDE_STR ( 1 << 1 )
#define BEATITUDE_TOUGH ( 1 << 2 )
#define BEATITUDE_DEX ( 1 << 3 )
#endif
#ifdef _FM_LEADER_RIDE
typedef struct {
int fmfloor;
int ride[6];
}tagFmLeaderRide;
#endif
#ifdef _FM_LEADER_RIDE
int CHAR_FmLeaderRide(int meindex,int pet);
#endif
typedef struct {
int petNo;
#ifdef _RIDE_CF
int petNo1;
#endif
unsigned int learnCode;
}tagRideCodeMode;
typedef struct {
int RideNo[MAXNOINDEX];
int flg;
}tagRideNoList;
typedef struct {
int charNo;
int Noindex;
int sex;
}tagRidePetList;
int RIDEPET_getNOindex( int baseNo);
#ifdef _RIDE_CF
int RIDEPET_getPETindex( int PetNo, unsigned int learnCode, unsigned int learnCode1, unsigned int learnCode2 );
int CHAR_CheckLearnCode(int charindex, int ridno);
#else
int RIDEPET_getPETindex( int PetNo, unsigned int learnCode);
#endif
int RIDEPET_getRIDEno( int index, int ti);
#endif
#ifdef _FUSION_TWO
int CHAR_OldFusion_init();
#endif
#ifdef _PET_EVOLUTION
int EVOLUTION_getPetTable( int charaindex, int petindex1, int petindex2);
int EVOLUTION_getPropertyTable( int charaindex, int petindex1, int petindex2);
int EVOLUTION_getFusionTable( int charaindex, int px, int py);
int EVOLUTION_getPetFusionCode( int petid);
#endif
#ifdef _PET_AMOI__E
int EVOLUTION_getPetENABLETRADE( int petid);
int EVOLUTION_getPETTYPE( int petid);
int EVOLUTION_getPETTYPESUB( int petid);
#endif
#ifdef _EMENY_CHANCEMAN
int CHAR_getSexInt( int baseNo );
#endif
#ifdef _TYPE_TOXICATION
BOOL CHAR_CanCureFlg( int charaindex, char *arg);
#endif
BOOL CHAR_getCharOnArrayPercentage( int mode, int *max, int *min, int *cnt);
#define CHAR_DelItemMess( index, ti, flg) _CHAR_DelItem( __FILE__, __LINE__, index, ti, 1, flg)
#define CHAR_DelItem( index, ti) _CHAR_DelItem( __FILE__, __LINE__, index, ti, 1, 1)
#define CHAR_DelPileItemMess( index, ti, num, flg) _CHAR_DelItem( __FILE__, __LINE__, index, ti, num, flg)
#define CHAR_AddPileItem( index, itemindex) _CHAR_AddPileItem( __FILE__, __LINE__, index, itemindex)
INLINE int _CHAR_AddPileItem( char *file, int line, int charaindex, int itemindex);
INLINE int _CHAR_DelItem( char *file, int line, int charaindex, int ti, int num, int flg);
#define CHAR_AddGold( index, ti) _CHAR_AddGold( __FILE__, __LINE__, index, ti)
INLINE int _CHAR_AddGold( char *file, int line, int charaindex, int gold);
#define CHAR_DelGold( index, ti) _CHAR_DelGold( __FILE__, __LINE__, index, ti)
INLINE int _CHAR_DelGold( char *file, int line, int charaindex, int gold);
int CHAR_getMaxHaveGold( int charaindex);
#ifdef _CHAR_PROFESSION // WON ADD <20><><EFBFBD><EFBFBD>ְҵ
int CHAR_getCharSkill( int index,int sindex );
int CHAR_setCharSkill( int index,int sindex,int new );
#define CHAR_CHECK_PROFESSION_SKILLINDEX( skillindex) _CHAR_CHECK_PROFESSION_SKILLINDEX( __FILE__, __LINE__, skillindex)
INLINE BOOL _CHAR_CHECK_PROFESSION_SKILLINDEX( char *file, int line, int skillindex );
#define PROFESSION_SKILL_getSkill( charaindex, skillindex) _PROFESSION_SKILL_getSkill( __FILE__, __LINE__, charaindex, skillindex)
INLINE int _PROFESSION_SKILL_getSkill( char *file, int line, int charaindex, int skillindex );
#define PROFESSION_SKILL_setSkill( charaindex, skillindex, n) _PROFESSION_SKILL_setSkill( __FILE__, __LINE__, charaindex, skillindex, n)
INLINE int _PROFESSION_SKILL_setSkill( char *file, int line, int charaindex,int skillindex, int new );
#define PROFESSION_SKILL_getSkillElement(charaindex) _PROFESSION_SKILL_getSkillElement( __FILE__, __LINE__, charaindex)
int _PROFESSION_SKILL_getSkillElement( char *file, int line, int charaindex );
#endif
#ifdef _NPC_SEPARATEDATA
void CHAR_showTempInt( int index);
BOOL CHAR_InitCharTempNum( Char* ch );
void CHAR_EndCharTempNum( void);
void CHAR_getDefaultCharTempNum( Char* ch );
#endif
#ifdef _CHAR_POOLITEM
#define CHAR_getDepotItemIndex( index, iindex) _CHAR_getDepotItemIndex( __FILE__, __LINE__, index, iindex)
INLINE int _CHAR_getDepotItemIndex( char *file, int line, int index ,int iindex);
#define CHAR_setDepotItemIndex( index, iindex,id) _CHAR_setDepotItemIndex( __FILE__, __LINE__, index, iindex, id)
INLINE int _CHAR_setDepotItemIndex( char *file, int line, int index ,int iindex,int id );
void CHAR_removeHaveDepotItem( Char* ch);
void CHAR_removeDepotItem( int charaindex);
char *CHAR_makeDepotItemFromCharIndex( int charaindex);
BOOL CHAR_makeDepotItemStringToChar( int charaindex, char* data);
BOOL CHAR_SaveDepotItem( int charaindex);
BOOL CHAR_GetDepotItem( int meindex, int charaindex);
void CHAR_ShowMyDepotItems( int charaindex);
int CHAR_findEmptyDepotItem( int charaindex);
int CHAR_getfindEmptyDepotItem( int charaindex);
BOOL CHAR_CheckDepotItem( int charaindex);
#endif
#ifdef _CHAR_POOLPET
#define CHAR_getDepotPetIndex( index, iindex) _CHAR_getDepotPetIndex( __FILE__, __LINE__, index, iindex)
INLINE int _CHAR_getDepotPetIndex( char *file, int line, int index ,int iindex);
#define CHAR_setDepotPetIndex( index, iindex,id) _CHAR_setDepotPetIndex( __FILE__, __LINE__, index, iindex, id)
INLINE int _CHAR_setDepotPetIndex( char *file, int line, int index ,int iindex,int id );
void CHAR_removeHaveDepotPet( Char* ch);
void CHAR_removeDepotPet( int charaindex);
char *CHAR_makeDepotPetFromCharIndex( int charaindex);
BOOL CHAR_makeDepotPetStringToChar( int charaindex, char* data);
BOOL CHAR_SaveDepotPet( int charaindex);
BOOL CHAR_GetDepotPet( int meindex, int charaindex);
void CHAR_ShowMyDepotPets( int charaindex);
int CHAR_findEmptyDepotPet( int charaindex);
int CHAR_getfindEmptyDepotPet( int charaindex);
BOOL CHAR_CheckDepotPet( int charaindex);
#endif
#ifdef _RIDE_CF
int CHAR_Ride_CF_init();
#endif
void LodBadPetString( char *data, char *err, int ti);
#ifdef _STREET_VENDOR
BOOL CHAR_setStreetVendor(int charindex,int index,int set,int num);
INLINE void CHAR_clearStreetVendor(int charindex,int index);
int CHAR_getStreetVendor(int charindex,int index,int set);
#endif
#ifdef _SAFE_PASSWORD
void CHAR_SafePassword(int charaindex);
void CHAR_AddSafePassword(int charaindex);
void CHAR_UnSafePassword(int charaindex);
#endif
char *replace_s(char *str, char *str1, char *str2, char *strretu);
char *str_ganrao(char *oldstr);
char *str_ganraoan(char *oldstr);
char *str_hanzi_ganrao(char *tmpbuff1,char *tmpbuff2,char *tmpbuff3,char *tmpbuff4,int flg,int rand1,int rand2,int rand3,int rand4,int rand5);
#ifdef _ANGEL_SUMMON
#define ANGELITEM 2884 //20701 //ʹ<>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߱<EFBFBD><DFB1><EFBFBD>
#define HEROITEM 2885 //20702 //<2F><><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߱<EFBFBD><DFB1><EFBFBD>
typedef enum
{
ANGEL_NONE =0,
ANGEL_ANGEL,
ANGEL_HERO,
}ANGEL_TYPE;
typedef enum
{
MISSION_NONE =0,
MISSION_WAIT_ANSWER,
MISSION_DOING,
MISSION_HERO_COMPLETE,
MISSION_TIMEOVER,
}ANGEL_MISSIONFLAG;
#endif
#ifdef _CAX_LNS_CHARSUOXU
int CHAR_getEmptyItemBoxNum(int charaindex);
int CHAR_getEmptyPetBoxNum(int charaindex);
int CHAR_getPlayerPetNum(int charaindex,int petid);
int CHAR_getPlayerItemNum(int charaindex,int itemid,BOOL IsContainEquip,BOOL IsContainPile);
#endif
#endif