83 lines
2.9 KiB
C
83 lines
2.9 KiB
C
#ifndef __NPC_SCHEDULEMAN_H__
|
|
#define __NPC_SCHEDULEMAN_H__
|
|
|
|
#define CHARNAME_MAX 32
|
|
|
|
// 最大 scheduleman 数量
|
|
#ifdef _FAMILY_MANORNUM_CHANGE
|
|
#define MAX_SCHEDULEMAN 20
|
|
#else
|
|
#define MAX_SCHEDULEMAN 12
|
|
#endif
|
|
|
|
// 每一个 scheduleman 控管的 schedule 数量
|
|
#define MAX_SCHEDULE 24
|
|
|
|
// schedule 列表的一页所能列出的最大数量
|
|
#define MAXSCHEDULEINONEWINDOW 10
|
|
|
|
// family 列表的一页所能列出的最大数量
|
|
#define MAXFAMILYINONEWINDOW 10
|
|
|
|
// 每一个 scheduleman 所使用的 schedule 储存位置
|
|
// 对应在 fmpks 的 ID*MAX_SCHEDULE 上 (ID=0~MAX_SCHEDULEMAN-1)
|
|
// ID 是写在 data/npc 中指定给 "id:" 的值
|
|
|
|
// dueltime = (隔天?10000:0) + (小时*100)
|
|
|
|
typedef struct tagFamilyPKSchedule {
|
|
int dueltime; // 比赛时刻
|
|
int host_index; // 主队家族
|
|
char host_name[CHARNAME_MAX]; // 主队家族名称
|
|
int guest_index; // 客队家族
|
|
char guest_name[CHARNAME_MAX]; // 客队家族名称
|
|
int prepare_time; // 准备时间 (1~40 分钟)
|
|
int max_player; // 最大出场人数 (1~家族人数上限)
|
|
int flag; // 状态
|
|
int win; // 胜利条件设定
|
|
int challenge_timeout; // 挑战时限
|
|
int setting_timeout; // 设定状态的 timeout
|
|
char gmsv_name[256];
|
|
} FamilyPKSchedule;
|
|
|
|
// 纪录在 FamilyPKSchedule (fmpks) 的 flag 值
|
|
#define FMPKS_FLAG_NONE -1 // 没有任何排程
|
|
#define FMPKS_FLAG_CHALLENGE 0 // 等待客队同意中
|
|
#define FMPKS_FLAG_SETTING 1 // 主队正在设定排程 (取消时变成 NONE)
|
|
#define FMPKS_FLAG_CONFIRMING 2 // 客队正在同意中
|
|
#define FMPKS_FLAG_SCHEDULED 3 // 已经排好排程,尚未开打
|
|
#define FMPKS_FLAG_DUEL 4 // 开打中
|
|
#define FMPKS_FLAG_HOSTWIN 5 // 主队胜
|
|
#define FMPKS_FLAG_GUESTWIN 6 // 客队胜
|
|
#define FMPKS_FLAG_MANOR_BATTLEBEGIN 7 // 庄园挑战 战斗中
|
|
#define FMPKS_FLAG_MANOR_PREPARE 8 // 庄园挑战 准备中
|
|
#define FMPKS_FLAG_MANOR_PEACE 9 // 庄园挑战 休战中
|
|
#define FMPKS_FLAG_MANOR_OTHERPLANET 10 // 庄园挑战 在别的星球决战
|
|
#define FMPKS_FLAG_MANOR_BATTLEEND 11 // 庄园挑战 战斗结束
|
|
#define FMPKS_FLAG_MANOR_PEACE_SAVE 12 // 将庄园挑战存档
|
|
#define FMPKS_FLAG_MANOR_READYTOFIGHT 13 // (GM: manorpk) 全星系变成可约战状态
|
|
#define FMPKS_FLAG_MANOR_CLEANFLAG 14 // (GM: manorpk) 本星球清除状态
|
|
#ifdef _NEW_MANOR_LAW
|
|
#define FMPKS_FLAG_WAIT 15 // 进入挑战期,已记录家族气势,等待挑战排程
|
|
#endif
|
|
|
|
// 传给 client 的 flag
|
|
#define FLAG_NONE -1
|
|
#define FLAG_MODIFY 0
|
|
#define FLAG_ACCEPT 1
|
|
#define FLAG_SETTING 2
|
|
#define FLAG_CONFIRM 3
|
|
#define FLAG_SCHEDULED 4
|
|
|
|
extern FamilyPKSchedule fmpks[MAX_SCHEDULE*MAX_SCHEDULEMAN];
|
|
|
|
BOOL NPC_SchedulemanInit(int meindex);
|
|
void NPC_SchedulemanTalked(int meindex, int talkerindex, char *msg, int color);
|
|
void NPC_SchedulemanWindowTalked(int meindex, int talkerindex,
|
|
int seqno, int select, char *data);
|
|
void NPC_SchedulemanLoop(int meindex);
|
|
|
|
#endif
|
|
|
|
/*__NPC_SCHEDULEMAN_H__*/
|