stoneage8.5/石器时代8.5客户端最新源代码/石器源码/systeminc/pc.h

724 lines
15 KiB
C
Raw Normal View History

2020-06-22 17:49:02 +08:00
#ifndef _PC_H_
#define _PC_H_
#include "action.h"
#ifdef _MORECHARACTERS_
#define MAXCHARACTER 4
#else
#define MAXCHARACTER 2
#endif
#define CHAR_NAME_LEN 16
#define CHAR_FREENAME_LEN 32
#define MAGIC_NAME_LEN 28
#define MAGIC_MEMO_LEN 72
#define ITEM_NAME_LEN 28
#define ITEM_NAME2_LEN 16
#define ITEM_MEMO_LEN 84
#define PET_NAME_LEN 16
#define PET_FREENAME_LEN 32
2020-06-23 15:27:59 +08:00
#define CHAR_FMNAME_LEN 33 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2020-06-22 17:49:02 +08:00
2020-06-23 15:27:59 +08:00
#ifdef _CHAR_PROFESSION // WON ADD <20><><EFBFBD><EFBFBD>ְҵ
2020-06-22 17:49:02 +08:00
#define PROFESSION_MEMO_LEN 84
#endif
2020-06-23 15:27:59 +08:00
#ifdef _GM_IDENTIFY // Rog ADD GMʶ<4D><CAB6>
2020-06-22 17:49:02 +08:00
#define GM_NAME_LEN 32
#endif
//#define CHARNAMELEN 256 // ???????
#define MAX_PET 5
#define MAX_MAGIC 9
#define MAX_PARTY 5
#define MAX_ADR_BOOK_COUNT 4
#ifdef _EXTEND_AB
#define MAX_ADR_BOOK_PAGE 20//20 //10 20050214 cyg 10 add to 20
#else
#define MAX_ADR_BOOK_PAGE 10
#endif
#define MAX_ADR_BOOK (MAX_ADR_BOOK_COUNT*MAX_ADR_BOOK_PAGE)
#ifdef _ITEM_EQUITSPACE
typedef enum
{
CHAR_HEAD,
CHAR_BODY,
CHAR_ARM,
CHAR_DECORATION1,
CHAR_DECORATION2,
#ifdef _ITEM_EQUITSPACE
CHAR_EQBELT,
CHAR_EQSHIELD,
CHAR_EQSHOES,
#endif
#ifdef _EQUIT_NEWGLOVE
CHAR_EQGLOVE,
#endif
CHAR_EQUIPPLACENUM,
#ifdef _PET_ITEM
2020-06-23 15:27:59 +08:00
PET_HEAD = 0, // ͷ
PET_WING, // <20><>
PET_TOOTH, // <20><>
PET_PLATE, // <20><><EFBFBD><EFBFBD>
PET_BACK, // <20><>
PET_CLAW, // צ
PET_FOOT, // <20><>(<28><>)
2020-06-22 17:49:02 +08:00
PET_EQUIPNUM
#endif
}CHAR_EquipPlace;
#ifdef _PET_ITEM
typedef enum
{
2020-06-23 15:27:59 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ITEM_PET_HEAD = 29, // ͷ
ITEM_PET_WING, // <20><>
ITEM_PET_TOOTH, // <20><>
ITEM_PET_PLATE, // <20><><EFBFBD><EFBFBD><E5BBA4>
ITEM_PET_BACK, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ITEM_PET_CLAW, // צ
ITEM_PET_1_FOOT, // <20>Ų<EFBFBD><><CBAB>
ITEM_PET_2_FOOT, // <20>Ų<EFBFBD>,<2C><><EFBFBD><EFBFBD>
ITEM_PET_FIN, // <20>Ų<EFBFBD>,<2C><>
2020-06-22 17:49:02 +08:00
ITEM_CATEGORYNUM
}ITEM_CATEGORY;
#define MAX_PET_ITEM 7
#endif
#define MAX_ITEMSTART CHAR_EQUIPPLACENUM
#define MAX_MAXHAVEITEM 15
#ifdef _NEW_ITEM_
#define MAX_ITEM (MAX_ITEMSTART+MAX_MAXHAVEITEM*3)
2020-06-23 15:27:59 +08:00
int <EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>();
2020-06-22 17:49:02 +08:00
#else
#define MAX_ITEM (MAX_ITEMSTART+MAX_MAXHAVEITEM)
#endif
#else
#define MAX_ITEMSTART 5
#define MAX_ITEM 20
#endif
#define RESULT_ITEM_COUNT 3
#define RESULT_ITEM_NAME_LEN 24
//#define RESULT_CHR_EXP 4
#define RESULT_CHR_EXP 5
#define SKILL_NAME_LEN 24
#define SKILL_MEMO_LEN 72
#define MAX_SKILL 7
#define MAX_GOLD 1000000
#define MAX_BANKGOLD 10000000
#define MAX_FMBANKGOLD 100000000
#define MAX_PERSONAL_BANKGOLD 50000000
#ifdef _FMVER21
2020-06-23 15:27:59 +08:00
#define FAMILY_MAXMEMBER 100 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2020-06-22 17:49:02 +08:00
#else
2020-06-23 15:27:59 +08:00
#define FAMILY_MAXMEMBER 50 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2020-06-22 17:49:02 +08:00
#endif
enum
{
PC_ETCFLAG_PARTY = (1 << 0),
PC_ETCFLAG_DUEL = (1 << 1),
2020-06-23 15:27:59 +08:00
PC_ETCFLAG_CHAT_MODE = (1 << 2), //<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PC_ETCFLAG_MAIL = (1 << 3), //<2F><>ƬƵ<C6AC><C6B5>
2020-06-22 17:49:02 +08:00
PC_ETCFLAG_TRADE = (1 << 4)
#ifdef _CHANNEL_MODIFY
2020-06-23 15:27:59 +08:00
,PC_ETCFLAG_CHAT_TELL = (1 << 5) //<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,PC_ETCFLAG_CHAT_FM = (1 << 6) //<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2020-06-22 17:49:02 +08:00
#ifdef _CHAR_PROFESSION
2020-06-23 15:27:59 +08:00
,PC_ETCFLAG_CHAT_OCC = (1 << 7) //ְҵƵ<D2B5><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2020-06-22 17:49:02 +08:00
#endif
2020-06-23 15:27:59 +08:00
,PC_ETCFLAG_CHAT_SAVE = (1 << 8) //<2F>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><E6BFAA>
2020-06-22 17:49:02 +08:00
#ifdef _CHATROOMPROTOCOL
2020-06-23 15:27:59 +08:00
,PC_ETCFLAG_CHAT_CHAT = (1 << 9) //<2F><><EFBFBD><EFBFBD><EFBFBD>ҿ<EFBFBD><D2BF><EFBFBD>
2020-06-22 17:49:02 +08:00
#endif
#endif
#ifdef _CHANNEL_WORLD
2020-06-23 15:27:59 +08:00
,PC_ETCFLAG_CHAT_WORLD = (1 << 10) //<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2020-06-22 17:49:02 +08:00
#endif
#ifdef _CHANNEL_ALL_SERV
2020-06-23 15:27:59 +08:00
,PC_ETCFLAG_ALL_SERV = (1 << 11) //<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2020-06-22 17:49:02 +08:00
#endif
,PC_AI_MOD = (1 << 12)
};
enum
{
PC_ETCFLAG_CHAT_MODE_ID = 0
#ifdef _CHANNEL_MODIFY
2020-06-23 15:27:59 +08:00
,PC_ETCFLAG_CHAT_TELL_ID //<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
,PC_ETCFLAG_CHAT_PARTY_ID //<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
,PC_ETCFLAG_CHAT_FM_ID //<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
2020-06-22 17:49:02 +08:00
#ifdef _CHAR_PROFESSION
2020-06-23 15:27:59 +08:00
,PC_ETCFLAG_CHAT_OCC_ID //ְҵƵ<D2B5><C6B5>
2020-06-22 17:49:02 +08:00
#endif
#ifdef _CHATROOMPROTOCOL
2020-06-23 15:27:59 +08:00
,PC_ETCFLAG_CHAT_CHAT_ID //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2020-06-22 17:49:02 +08:00
#endif
#else
2020-06-23 15:27:59 +08:00
,PC_ETCFLAG_CHAT_PARTY_ID //<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
2020-06-22 17:49:02 +08:00
#endif
#ifdef _CHANNEL_WORLD
2020-06-23 15:27:59 +08:00
,PC_ETCFLAG_CHAT_WORLD_ID //<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
2020-06-22 17:49:02 +08:00
#endif
#ifdef _CHANNEL_ALL_SERV
2020-06-23 15:27:59 +08:00
,PC_ETCFLAG_ALL_SERV_ID //<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2020-06-22 17:49:02 +08:00
#endif
,PC_ETCFLAG_CHAT_WORLD_NUM
};
#define ITEM_FLAG_PET_MAIL ( 1 << 0 )
#define ITEM_FLAG_MIX ( 1 << 1 )
#define ITEM_FLAG_COOKING_MIX ( 1 << 2 )
2020-06-23 15:27:59 +08:00
#define ITEM_FLAG_METAL_MIX ( 1 << 3 ) //<2F><><EFBFBD><EFBFBD>
#define ITEM_FLAG_JEWEL_MIX ( 1 << 4 ) //<2F><>ʯ
#define ITEM_FLAG_FIX_MIX ( 1 << 5 ) //<2F>޸<EFBFBD>
2020-06-22 17:49:02 +08:00
#ifdef _ITEM_INTENSIFY
2020-06-23 15:27:59 +08:00
#define ITEM_FLAG_INTENSIFY_MIX ( 1 << 6 ) //ǿ<><C7BF>
2020-06-22 17:49:02 +08:00
#endif
#ifdef _ITEM_UPINSLAY
2020-06-23 15:27:59 +08:00
#define ITEM_FLAG_UPINSLAY_MIX ( 1 << 7 ) //<2F><><EFBFBD><EFBFBD>
2020-06-22 17:49:02 +08:00
#endif
typedef struct
{
2020-06-23 15:27:59 +08:00
int color; // <20><><EFBFBD>q?<3F><>
int graNo; // ??<3F>k?
2020-06-22 17:49:02 +08:00
int level; // ???????
#ifdef _ITEM_PILENUMS
int pile;
#endif
#ifdef _ALCHEMIST //#ifdef _ITEMSET7_TXT
char alch[4+200];
#endif
2020-06-23 15:27:59 +08:00
short useFlag; // <20><>????
short field; // <20><>????<3F><>?
short target; // <20>n<EFBFBD><6E>
short deadTargetFlag; // ???????<3F>n<EFBFBD><6E>???
short sendFlag; // ????????<3F><>?<3F>u?
char name[ITEM_NAME_LEN*2+1]; // ????<3F><>
char name2[ITEM_NAME2_LEN*2+1]; // ????<3F><>?
2020-06-22 17:49:02 +08:00
char memo[ITEM_MEMO_LEN*2+1]; // ??
char damage[20];
#ifdef _PET_ITEM
char type;
#endif
#ifdef _ITEM_JIGSAW
char jigsaw[50];
#endif
#ifdef _NPC_ITEMUP
int itemup;
#endif
#ifdef _ITEM_COUNTDOWN
int counttime;
#endif
#ifdef _MAGIC_ITEM_
2020-06-23 15:27:59 +08:00
int <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
2020-06-22 17:49:02 +08:00
#endif
} ITEM;
typedef struct
{
int graNo;
int faceGraNo;
int id;
int dir;
int hp, maxHp;
int mp, maxMp;
int vital;
int str, tgh, dex;
int exp, maxExp;
int level;
int atk, def;
int quick, charm, luck;
int earth, water, fire, wind;
int gold;
#ifdef _NEW_MANOR_LAW
int fame;
#endif
int titleNo;
int dp;
char name[CHAR_NAME_LEN+1];
char freeName[CHAR_FREENAME_LEN+1];
short nameColor;
#ifdef _ANGEL_SUMMON
unsigned status;
#else
unsigned short status;
#endif
unsigned short etcFlag;
short battlePetNo;
short selectPetNo[MAX_PET];
short mailPetNo;
#ifdef _STANDBYPET
short standbyPet;
#endif
int battleNo;
short sideNo;
short helpMode;
ITEM item[MAX_ITEM];
ACTION *ptAct;
int pcNameColor;
short transmigration;
char chusheng[61];
char familyName[CHAR_NAME_LEN+1];
int familyleader;
int channel;
int quickChannel;
int personal_bankgold;
2020-06-23 15:27:59 +08:00
int ridePetNo;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2020-06-22 17:49:02 +08:00
int learnride;
unsigned int lowsride;
char ridePetName[CHAR_FREENAME_LEN+1];
int ridePetLevel;
int familySprite;
int baseGraNo;
ITEM itempool[MAX_ITEM];
int big4fm;
2020-06-23 15:27:59 +08:00
int trade_confirm; // 1 -> <20><>ʼֵ
// 2 -> <20>[<5B>ҷ<EFBFBD><D2B7><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>
// 3 -> <20><><EFBFBD>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>
// 4 -> ˫<><CBAB><EFBFBD>԰<EFBFBD><D4B0><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>
2020-06-22 17:49:02 +08:00
2020-06-23 15:27:59 +08:00
#ifdef _CHAR_PROFESSION // WON ADD <20><><EFBFBD><EFBFBD>ְҵ
2020-06-22 17:49:02 +08:00
int profession_class;
int profession_level;
// int profession_exp;
int profession_skill_point;
char profession_class_name[32];
#endif
2020-06-23 15:27:59 +08:00
#ifdef _ALLDOMAN // (<28><><EFBFBD>ɿ<EFBFBD>) Syu ADD <20><><EFBFBD>а<EFBFBD>NPC
2020-06-22 17:49:02 +08:00
int herofloor;
#endif
2020-06-23 15:27:59 +08:00
#ifdef _GM_IDENTIFY // Rog ADD GMʶ<4D><CAB6>
2020-06-22 17:49:02 +08:00
char gm_name[GM_NAME_LEN+1];
#endif
2020-06-23 15:27:59 +08:00
#ifdef _FRIENDCHANNEL // ROG ADD <20><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
2020-06-22 17:49:02 +08:00
char chatRoomNum[4];
#endif
#ifdef _STREET_VENDOR
2020-06-23 15:27:59 +08:00
int iOnStreetVendor; // <20><>̯ģʽ
2020-06-22 17:49:02 +08:00
#endif
2020-06-23 15:27:59 +08:00
int skywalker; // GM<47><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>??
2020-06-22 17:49:02 +08:00
#ifdef _MOVE_SCREEN
2020-06-23 15:27:59 +08:00
BOOL bMoveScreenMode; // <20>ƶ<EFBFBD>ӫĻģʽ
BOOL bCanUseMouse; // <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>ƶ<EFBFBD>
int iDestX; // Ŀ<><C4BF><EFBFBD><EFBFBD> X <20><><EFBFBD><EFBFBD>
int iDestY; // Ŀ<><C4BF><EFBFBD><EFBFBD> Y <20><><EFBFBD><EFBFBD>
2020-06-22 17:49:02 +08:00
#endif
#ifdef _THEATER
2020-06-23 15:27:59 +08:00
int iTheaterMode; // <20>糡ģʽ
int iSceneryNumber; // <20><>¼<EFBFBD><C2BC>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
ACTION *pActNPC[5]; // <20><>¼<EFBFBD><EFBFBD><E7B3A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NPC
2020-06-22 17:49:02 +08:00
#endif
#ifdef _NPC_DANCE
2020-06-23 15:27:59 +08:00
int iDanceMode; // <20><>һ<EFBFBD><D2BB>ģʽ
2020-06-22 17:49:02 +08:00
#endif
#ifdef _EVIL_KILL
2020-06-23 15:27:59 +08:00
int newfame; // <20>ַ<EFBFBD>ħ<EFBFBD><C4A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2020-06-22 17:49:02 +08:00
short ftype;
#endif
int debugmode;
#ifdef _SFUMATO
2020-06-23 15:27:59 +08:00
int sfumato; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦͼ<C8BE><CDBC>ɫ<EFBFBD><C9AB>
2020-06-22 17:49:02 +08:00
#endif
#ifdef _NEW_ITEM_
2020-06-23 15:27:59 +08:00
int <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬;
2020-06-22 17:49:02 +08:00
#endif
#ifdef _CHARSIGNADY_NO_
2020-06-23 15:27:59 +08:00
int ǩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
2020-06-22 17:49:02 +08:00
#endif
#ifdef _MAGIC_ITEM_
2020-06-23 15:27:59 +08:00
int <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬;
int <EFBFBD><EFBFBD><EFBFBD>߹Ч<EFBFBD><EFBFBD>;
2020-06-22 17:49:02 +08:00
#endif
} PC;
#ifdef _FMVER21
enum
{
2020-06-23 15:27:59 +08:00
FMMEMBER_NONE = -1, // δ<><CEB4><EFBFBD><EFBFBD><EFBFBD>κμ<CEBA><CEBC><EFBFBD>
FMMEMBER_MEMBER = 1, // һ<><D2BB><EFBFBD><EFBFBD>Ա
FMMEMBER_APPLY, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
FMMEMBER_LEADER, // <20><><EFBFBD><EFBFBD><EFBFBD>
FMMEMBER_ELDER, // <20><><EFBFBD><EFBFBD>
//FMMEMBER_INVITE, // <20><>˾
//FMMEMBER_BAILEE, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//FMMEMBER_VICELEADER, // <20><><EFBFBD>
2020-06-22 17:49:02 +08:00
FMMEMBER_NUMBER,
};
#endif
enum
{
MAGIC_FIELD_ALL,
MAGIC_FIELD_BATTLE,
MAGIC_FIELD_MAP
};
enum
{
MAGIC_TARGET_MYSELF,
MAGIC_TARGET_OTHER,
MAGIC_TARGET_ALLMYSIDE,
MAGIC_TARGET_ALLOTHERSIDE,
MAGIC_TARGET_ALL,
MAGIC_TARGET_NONE,
MAGIC_TARGET_OTHERWITHOUTMYSELF,
MAGIC_TARGET_WITHOUTMYSELFANDPET,
MAGIC_TARGET_WHOLEOTHERSIDE,
#ifdef __ATTACK_MAGIC
2020-06-23 15:27:59 +08:00
MAGIC_TARGET_SINGLE, // <20><><EFBFBD>Եз<D4B5>ijһ<C4B3><D2BB>
MAGIC_TARGET_ONE_ROW, // <20><><EFBFBD>Եз<D4B5>ijһ<C4B3><D2BB>
MAGIC_TARGET_ALL_ROWS, // <20><><EFBFBD>Եз<D4B5><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2020-06-22 17:49:02 +08:00
#endif
};
enum
{
PETSKILL_FIELD_ALL,
PETSKILL_FIELD_BATTLE,
PETSKILL_FIELD_MAP
};
enum
{
PETSKILL_TARGET_MYSELF,
PETSKILL_TARGET_OTHER,
PETSKILL_TARGET_ALLMYSIDE,
PETSKILL_TARGET_ALLOTHERSIDE,
PETSKILL_TARGET_ALL,
PETSKILL_TARGET_NONE,
PETSKILL_TARGET_OTHERWITHOUTMYSELF,
PETSKILL_TARGET_WITHOUTMYSELFANDPET
2020-06-23 15:27:59 +08:00
#ifdef _BATTLESKILL // (<28><><EFBFBD>ɿ<EFBFBD>) Syu ADD ս<><D5BD><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><DCBD><EFBFBD>
2020-06-22 17:49:02 +08:00
,PETSKILL_TARGET_ONE_ROW
,PETSKILL_TARGET_ONE_LINE
,PETSKILL_TARGER_DEATH
#endif
#ifdef _SKILL_ADDBARRIER
2020-06-23 15:27:59 +08:00
,PETSKILL_TARGET_ONE_ROW_ALL //ѡ<>ҷ<EFBFBD><D2B7>ĵ<EFBFBD><C4B5><EFBFBD>
2020-06-22 17:49:02 +08:00
#endif
};
enum
{
ITEM_FIELD_ALL,
ITEM_FIELD_BATTLE,
ITEM_FIELD_MAP,
};
enum
{
ITEM_TARGET_MYSELF,
ITEM_TARGET_OTHER,
ITEM_TARGET_ALLMYSIDE,
ITEM_TARGET_ALLOTHERSIDE,
ITEM_TARGET_ALL,
ITEM_TARGET_NONE,
ITEM_TARGET_OTHERWITHOUTMYSELF,
ITEM_TARGET_WITHOUTMYSELFANDPET,
#ifdef _PET_ITEM
ITEM_TARGET_PET
#endif
};
typedef struct
{
2020-06-23 15:27:59 +08:00
int index; //λ<><CEBB>
int graNo; // ??<3F>k?
int hp, maxHp; // ????<3F><>??
int mp, maxMp; // ????<3F><>??
int exp, maxExp; // ??<3F>k???????<3F><>????<3F>k
2020-06-22 17:49:02 +08:00
int level; // ???
2020-06-23 15:27:59 +08:00
int atk, def; // ????????<3F>\??
int quick; // <20>զ<EFBFBD>?
int ai; // ?<3F>ߥT
int earth, water, fire, wind; // <20><>???
int maxSkill; // ?<3F><>????
int trn; // <20><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>
2020-06-22 17:49:02 +08:00
#ifdef _SHOW_FUSION
2020-06-23 15:27:59 +08:00
int fusion; // low word: <20><EFBFBD><E8B5B0><EFBFBD><EFBFBD>, hi word: <20><><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>
2020-06-22 17:49:02 +08:00
#endif
#ifdef _ANGEL_SUMMON
unsigned status;
#else
unsigned short status; // ?????(??????)
#endif
2020-06-23 15:27:59 +08:00
char name[CHAR_NAME_LEN+1]; // <20><>?<3F><>
char freeName[PET_NAME_LEN+1]; // ???????<3F><><EFBFBD>q
2020-06-22 17:49:02 +08:00
short useFlag; // ??????????????
2020-06-23 15:27:59 +08:00
short changeNameFlag; // <20><><EFBFBD>q?????????
2020-06-22 17:49:02 +08:00
#ifdef _PET_ITEM
2020-06-23 15:27:59 +08:00
ITEM item[MAX_PET_ITEM]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2020-06-22 17:49:02 +08:00
#endif
#ifdef _PETCOM_
int oldlevel,oldhp,oldatk,oldquick,olddef;
#endif
#ifdef _RIDEPET_
int rideflg;
#endif
#ifdef _PETBLESS_
int blessflg;
int blesshp;
int blessatk;
int blessquick;
int blessdef;
#endif
} PET;
typedef struct
{
short useFlag;
int mp;
short field;
short target;
short deadTargetFlag;
char name[MAGIC_NAME_LEN+1];
char memo[MAGIC_MEMO_LEN+1];
} MAGIC;
typedef struct
{
short useFlag;
int id;
int level;
int maxHp;
int hp;
int mp;
char name[CHAR_NAME_LEN+1];
ACTION *ptAct;
} PARTY;
typedef struct
{
short useFlag;
short onlineFlag;
int level;
short transmigration;
int dp;
int graNo;
char name[CHAR_NAME_LEN+1];
2020-06-23 15:27:59 +08:00
#ifdef _MAILSHOWPLANET // (<28>ɿ<EFBFBD><C9BF><EFBFBD>) Syu ADD <20><>ʾ<EFBFBD><CABE>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
2020-06-22 17:49:02 +08:00
char planetname[64];
#endif
} ADDRESS_BOOK;
typedef struct
{
short petNo;
short levelUp;
int exp;
} BATTLE_RESULT_CHR;
typedef struct
{
short useFlag;
BATTLE_RESULT_CHR resChr[RESULT_CHR_EXP];
char item[RESULT_ITEM_COUNT][RESULT_ITEM_NAME_LEN+1];
} BATTLE_RESULT_MSG;
typedef struct
{
short useFlag;
short skillId;
short field;
short target;
char name[SKILL_NAME_LEN+1];
char memo[SKILL_MEMO_LEN+1];
} PET_SKILL;
2020-06-23 15:27:59 +08:00
#ifdef _CHAR_PROFESSION // WON ADD <20><><EFBFBD><EFBFBD>ְҵ
2020-06-22 17:49:02 +08:00
typedef struct
{
short useFlag;
short skillId;
short target;
short kind;
char name[PROFESSION_MEMO_LEN+1];
char memo[PROFESSION_MEMO_LEN+1];
int icon;
int costmp;
int skill_level;
#ifdef _PRO3_ADDSKILL
int cooltime;
#endif
} PROFESSION_SKILL;
#endif
typedef struct
{
2020-06-23 15:27:59 +08:00
char name[CHAR_NAME_LEN+1]; // SJIS?<3F><><EFBFBD>q????
2020-06-22 17:49:02 +08:00
short level; // ???
int login; // ??????
2020-06-23 15:27:59 +08:00
int faceGraNo; // ???<3F>k?
2020-06-22 17:49:02 +08:00
int hp; // ??
int str; // ???
2020-06-23 15:27:59 +08:00
int def; // <20>\??
int agi; // <20><><EFBFBD><EFBFBD>?
int app; // <20>u?
int attr[4]; // <20>N<EFBFBD><4E>?<3F><>???????
2020-06-22 17:49:02 +08:00
int dp; // ????????
} CHARLISTTABLE;
#ifdef _AIDENGLU_
typedef struct
{
2020-06-23 15:27:59 +08:00
int <EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
int <EFBFBD><EFBFBD>ģ;
int С<EFBFBD><EFBFBD>;
int <EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
int <EFBFBD>Ƿ<EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
int <EFBFBD>Ƿ<EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
int <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
char <EFBFBD><EFBFBD>½<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[4][32];
int <EFBFBD><EFBFBD>½<EFBFBD><EFBFBD>ʱʱ<EFBFBD><EFBFBD>;
2020-06-22 17:49:02 +08:00
}Landed;
#endif
extern PC pc;
extern short maxPcNo;
extern short selectPcNo;
extern short prSendMode;
extern short prSendFlag;
extern short jbSendFlag;
extern short duelSendFlag;
extern int loginDp;
extern short helpFlag;
extern short tradeFlag;
extern short tradeStatus;
//extern short channel;
extern MAGIC magic[];
extern PET pet[];
extern PARTY party[];
extern short partyModeFlag;
extern ADDRESS_BOOK addressBook[];
extern BOOL addressBookFlag;
extern BATTLE_RESULT_MSG battleResultMsg;
extern PET_SKILL petSkill[][MAX_SKILL];
extern CHARLISTTABLE chartable[];
extern char newCharacterName[];
extern int newCharacterGraNo;
extern int newCharacterFaceGraNo;
extern int newCharacterVit;
extern int newCharacterStr;
extern int newCharacterTgh;
extern int newCharacterDex;
extern int newCharacterEarth;
extern int newCharacterWater;
extern int newCharacterFire;
extern int newCharacterWind;
extern int newCharacterHomeTown;
void initPcAll( void );
void initPc( void );
void createPc( int, int, int, int );
void resetPc( void );
void setPcWarpPoint( int, int );
void setPcPoint( void );
void setPcGraNo( int, int );
void setPcId( int );
void setPcDir( int );
void setPcAction( int );
#ifdef __EMOTION
void setPcEmotion( int emotion );
#endif
int getPcAction( void );
2020-06-23 15:27:59 +08:00
#ifdef _CHAR_PROFESSION // WON ADD <20><><EFBFBD><EFBFBD>ְҵ
2020-06-22 17:49:02 +08:00
#ifdef _PRO3_ADDSKILL
#define MAX_PROFESSION_SKILL 30
#else
#define MAX_PROFESSION_SKILL 26
#endif
extern PROFESSION_SKILL profession_skill[];
2020-06-23 15:27:59 +08:00
// #ifdef _GM_IDENTIFY // Rog ADD GMʶ<4D><CAB6>
2020-06-22 17:49:02 +08:00
// void setPcParam( char *, char *, int, char *, int, int, int, int, int, int, int, int, char *);
// void setPcParam( char *, char *, int, char *, int, int, int, int, int, int, int, char *);
// #else
// void setPcParam( char *, char *, int, char *, int, int, int, int, int, int, int, int );
2020-06-23 15:27:59 +08:00
#ifdef _ALLDOMAN // (<28><><EFBFBD>ɿ<EFBFBD>) Syu ADD <20><><EFBFBD>а<EFBFBD>NPC
2020-06-22 17:49:02 +08:00
void setPcParam( char *, char *, int, char *, int, int, int, int, int, int, int , int );
#else
void setPcParam( char *, char *, int, char *, int, int, int, int, int, int, int );
#endif
// #endif
#else
void setPcParam( char *, char *, int, char *, int, int, int, int );
#endif
void updataPcAct( void );
void setPcLeader( void );
void delPcLeader( void );
void setPcParty( void );
void delPcParty( void );
void setPcWatch( void );
void delPcWatch( void );
void changePcAct( int, int, int, int, int, int, int );
void setPcWalkFlag( void );
void delPcWalkFlag( void );
int checkPcWalkFlag( void );
void setPcUseMagic( void );
void delPcUseMagic( void );
void setPcFukidashi( unsigned int );
void setPcNameColor( int );
void clearPartyParam( void );
void clearPtActPartyParam( void );
int existCharacterListEntry( int );
int cmpNameCharacterList( char * );
int setCharacterList( char *, char * );
int resetCharacterList( int );
void getItem( void );
void swapItem( int, int );
BOOL lookAtAround( void );
void initAddressBook( void );
void addressBookProc( void );
int CHAR_getMaxHaveGold( void);
#endif