📄 char_base.h
字号:
#ifndef __CHAR_BASE_H__
#define __CHAR_BASE_H__
#include "version.h"
#include "skill.h"
#include "title.h"
/*#include "magicinfo.h"*/
#include "addressbook.h"
#define CHAR_DELIMITER "\n"
#define NONCHAR_DELIMITER "|"
#define STATUSSENDDELIMITER "|"
#define CHAR_MAXGOLDHAVE (1000*10000)
#define CHAR_MAXBANKGOLDHAVE (10000*10000)
#define CHAR_MAXFMBANKGOLDHAVE (10000*10000*2)
#ifdef _PERSONAL_FAME // Arminius 8.30: 家族个人声望
#define MAX_PERSONALFAME (10000 * 10000)
#endif
#define CHAR_SKILLMAXHAVE 5
#define CHAR_TITLEMAXHAVE 30
#define NULLSKILL "0"
#define CHAR_MAXPETHAVE 5
#define CHAR_MAXPERSONAGOLD 50000000
#ifdef _ADD_POOL_ITEM // WON ADD 增加可寄放的道具
#define CHAR_MAXPOOLPETHAVE 15
#else
#define CHAR_MAXPOOLPETHAVE 10
#endif
#define CHAR_MAXPETSKILLHAVE 7
#define CHAR_PARTYMAX 5
#define CHAR_MAXATTRIB 100
#define CHAR_MAXUPLEVEL 140
#define CHAR_MAXDUELPOINT 100000000
#define CHAR_DEFAULTMAXAI (60)
#define CHAR_MAXVARIABLEAI (100*100)
#define CHAR_MINVARIABLEAI (-100*100)
#define CHAR_POISONSTRING "中毒"
#define CHAR_RECOVERPOISONSTRING "解毒了"
#define CHAR_PARALYSISSTRING "麻痹了"
#define CHAR_RECOVERPARALYSISSTRING "麻醉退了"
#define CHAR_SILENCESTRING "无法念魔法了"
#define CHAR_RECOVERSILENCESTRING "可以念魔法了"
#define CHAR_STONESTRING "石化了"
#define CHAR_RECOVERSTONESTRING "变灵活了"
#define CHAR_DARKNESSSTRING "四周不见了"
#define CHAR_RECOVERDARKNESSSTRING "四周出现了"
#define CHAR_CONFUSIONSTRING "陷入恐慌"
#define CHAR_RECOVERCONFUSIONSTRING "恢复正常"
#define CHAR_DEFAULTSEESIZ 23
#define MAP_CHAR_DEFAULTSEESIZ (CHAR_DEFAULTSEESIZ+4)
typedef enum
{
CHAR_HEAD,
CHAR_BODY,
CHAR_ARM,
CHAR_DECORATION1,
CHAR_DECORATION2,
CHAR_EQUIPPLACENUM,
}CHAR_EquipPlace;
typedef struct tagCharHaveSkill
{
int use;
Skill skill;
}CHAR_HaveSkill;
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 _MIND_ICON
CHAR_MIND = 40,
#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, // 家族PK场管理员
CHAR_TYPEFMSCHEDULEMAN, // 家族PK场登记员
CHAR_TYPEMANORSCHEDULEMAN, // 庄园PK场预约人
#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 _ITEM_NPCCHANGE
CHAR_ITEMCHANGENPC,
#endif
#ifdef _CFREE_petskill
CHAR_FREESKILLSHOP,
#endif
#ifdef _PETRACE
CHAR_PETRACEMASTER, // 宠物竞速
CHAR_PETRACEPET,
#endif
#ifdef _ALLDOMAN // (不可开) Syu ADD 排行榜NPC
CHAR_TYPEALLDOMAN,
#endif
CHAR_TYPEPETMAKER, // petmaker
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, /* 可交易 */
CHAR_TRADE_SENDING, /* 交易请求中 */
CHAR_TRADE_TRADING, /* 交易中 */
CHAR_TRADE_LOCK, /* 交易锁定中 */
}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, // 骰子_大
DICE_SMALL, // 骰子_小
DICE_ALLEAT, // 骰子_通吃
PET_RACE1 = 5, // 竞速场_宠物1
PET_RACE2, // 竞速场_宠物2
PET_RACE3, // 竞速场_宠物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, //横列
ROULETTE61 = 111, ROULETTE62, //1到10 10到11
PETFIGHT_WIN1 = 120,
PETFIGHT_WIN2,
PETFIGHT_DUEL,
}GAMBLE_TYPE;
#endif
#ifdef _ADD_POOL_ITEM // (不可开) WON ADD 增加可寄放的道具
#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)
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,
CHAR_OLDEXP,
CHAR_EXP,
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
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
CHAR_TRANSMIGRATION,
CHAR_TRANSEQUATION,
CHAR_INITDATA,
CHAR_SILENT, /* char shutup time */
CHAR_FMINDEX, // 家族 index
CHAR_FMLEADERFLAG, /* 家族成员种类
* FMMEMBER_NONE :没有加入任何家族
* FMMEMBER_APPLY :申请加入家族中
* FMMEMBER_LEADER :族长
* FMMEMBER_MEMBER :一般成员
* FMMEMBER_ELDER :长老
* FMMEMBER_INVITE :祭司 // 暂时不用
* FMMEMBER_BAILEE :财务长 // 暂时不用
* FMMEMBER_VICELEADER :副族长 // 暂时不用
*/
CHAR_FMSPRITE, // 家族守护精灵
CHAR_BANKGOLD,
CHAR_RIDEPET,
CHAR_LEARNRIDE,
#ifdef _NEW_RIDEPETS
CHAR_LOWRIDEPETS,
#endif
CHAR_LIMITLEVEL,
#ifdef _PERSONAL_FAME // Arminius 8.30: 家族个人声望
CHAR_FAME,
#endif
#ifdef _NEWSAVE
CHAR_SAVEINDEXNUMBER, /* SaveFile .0.char or .1.char */
#endif
#ifdef _ATTACK_MAGIC
CHAR_EARTH_EXP, // 玩家的地魔法熟练度
CHAR_WATER_EXP, // 玩家的水魔法熟练度
CHAR_FIRE_EXP, // 玩家的火魔法熟练度
CHAR_WIND_EXP, // 玩家的风魔法熟练度
CHAR_EARTH_RESIST, // 玩家的地魔法抗性
CHAR_WATER_RESIST, // 玩家的水魔法抗性
CHAR_FIRE_RESIST, // 玩家的火魔法抗性
CHAR_WIND_RESIST, // 玩家的风魔法抗性
CHAR_EARTH_ATTMAGIC_EXP, // 玩家的地魔法熟练度经验值
CHAR_WATER_ATTMAGIC_EXP, // 玩家的水魔法熟练度经验值
CHAR_FIRE_ATTMAGIC_EXP, // 玩家的火魔法熟练度经验值
CHAR_WIND_ATTMAGIC_EXP, // 玩家的风魔法熟练度经验值
CHAR_EARTH_DEFMAGIC_EXP, // 玩家的地魔法抗性经验值
CHAR_WATER_DEFMAGIC_EXP, // 玩家的水魔法抗性经验值
CHAR_FIRE_DEFMAGIC_EXP, // 玩家的火魔法抗性经验值
CHAR_WIND_DEFMAGIC_EXP, // 玩家的风魔法抗性经验值
#endif
#ifdef _GAMBLE_BANK
CHAR_PERSONAGOLD, //赌场个人银行
#endif
#ifdef _DROPSTAKENEW
CHAR_GAMBLENUM, //赌场积分
#endif
#ifdef _ADD_ACTION //npc动作
CHAR_ACTIONSTYLE,
#endif
#ifdef _FM_JOINLIMIT
CHAR_FMTIMELIMIT,
#endif
#ifdef _ALLDOMAN // (不可开) Syu ADD 排行榜NPC
CHAR_HEROFLOOR,
#endif
#ifdef _PETSKILL_BECOMEPIG
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -