297 lines
8.0 KiB
C
297 lines
8.0 KiB
C
#ifndef _FAMILY_H_
|
|
#define _FAMILY_H_
|
|
|
|
#include "version.h"
|
|
|
|
#define MAX_FAMILY 1000 // 1000
|
|
#define TEXT_MAX 1024
|
|
#ifdef MEMBER_100
|
|
#define MAX_MEMBERNUM 100
|
|
#else
|
|
#define MAX_MEMBERNUM 50 // 50
|
|
#endif
|
|
#define MIN_MEMBERNUM 10 // 10
|
|
|
|
#ifdef _FIX_9_FMPOINT // WON ADD 九大庄园
|
|
#define MAX_FMPOINT 10
|
|
#else
|
|
#define MAX_FMPOINT 4 // 4
|
|
#endif
|
|
|
|
#define PREDEL_TIME 60*60*24*7 // 七天 60*60*24*3
|
|
#define PREDELMEMBER_TIME 60*60*24*30 // 30天 60*60*24*30
|
|
#define FAMILY_MEMONUM 35 // 家族留言板最大留言数量
|
|
#define FAMILY_MEMOLEN 256
|
|
#define FMSMEMOINDEX 10000 // 家族之间留言板 index
|
|
#define FMSMEMONUM 140
|
|
#define TOPFMLISTNUM 10 // 家族排行榜数量
|
|
#define MINFMPOPNUM -20000000
|
|
// shan 20011207
|
|
#define MAXFMPOPNUM 100000000
|
|
//#define MAXFMPOPNUM 5000000
|
|
#define MINAPPLYPNUM 30 // 申请家族最低人数
|
|
#define FMMEMBERINDEX "fmmember"
|
|
#define FMMEMOLIST "memo"
|
|
#define FMELDERNUM 4 // 长老数量
|
|
#ifdef _EVERYONE_RIDE
|
|
#define FMMAXGOLD 100000000 // 家族基金上限
|
|
#else
|
|
#define FMMAXGOLD 10000000 // 家族基金上限
|
|
#endif
|
|
// shan 20011207
|
|
#define MAXRECVPOP 50000000 // 家族声望转移上限
|
|
// CoolFish: 2001/11/26
|
|
//#define MAXRECVPOP 2500000 // 家族声望转移上限
|
|
|
|
typedef enum
|
|
{
|
|
fmindex,
|
|
fmleadergrano,
|
|
fmnum,
|
|
fmjoinnum,
|
|
fmacceptflag,
|
|
fmsetupflag,
|
|
fmsprite,
|
|
fmpointindex,
|
|
fmpopular,
|
|
fmgold,
|
|
fmmemberindexmaxnum,
|
|
apply_time,
|
|
setup_time,
|
|
predel_time,
|
|
memonowwritenum,
|
|
memonum,
|
|
fmadv,
|
|
fmfeed,
|
|
fmsynthesize,
|
|
fmdealfood,
|
|
fmpk,
|
|
#ifdef _NEW_MANOR_LAW
|
|
fmmomentum,
|
|
#endif
|
|
familymaxint,
|
|
} FAMILY_DATAINT;
|
|
|
|
typedef enum
|
|
{
|
|
fmname,
|
|
fmleadername,
|
|
fmleaderid,
|
|
petname,
|
|
petattr,
|
|
fmrule,
|
|
familymaxchar,
|
|
} FAMILY_DATACHAR;
|
|
|
|
typedef enum
|
|
{
|
|
charlv,
|
|
charflag,
|
|
onlineflag,
|
|
charfdid,
|
|
predeltime,
|
|
popular,
|
|
#ifdef _FMVER21
|
|
eventflag,
|
|
#endif
|
|
#ifdef _NEW_MANOR_LAW
|
|
momentum,
|
|
#endif
|
|
memberdatamaxint,
|
|
} MEMBER_DATAINT;
|
|
|
|
typedef enum
|
|
{
|
|
charname,
|
|
charid,
|
|
memberdatamaxchar,
|
|
} MEMBER_DATACHAR;
|
|
|
|
typedef enum
|
|
{
|
|
FMMEMBER_NONE = -1,
|
|
FMMEMBER_MEMBER = 1,
|
|
FMMEMBER_APPLY,
|
|
FMMEMBER_LEADER,
|
|
FMMEMBER_ELDER,
|
|
FMMEMBER_KINDNUM,
|
|
} MEMBER_KIND;
|
|
|
|
// #define MEMBERMEM memberdatamaxint * sizeof(int) + 50
|
|
// #define FAMILYMEM familymaxint * sizeof(int) + 1000 + MAX_MEMBERNUM * MEMBERMEM
|
|
#ifdef _ACFMPK_LIST
|
|
void FMPK_InitList( void);
|
|
#endif
|
|
void sortFamily(void); // Arminius: sort family
|
|
int getFMsortedlist(char *buf, int bufsize, int bp, int ep);
|
|
|
|
int readFamily(char *dir);
|
|
|
|
int readOneFamilyFromTi( int ti);
|
|
int readOneFamily( char *filename, int i);
|
|
|
|
int writeFamily(char *dir);
|
|
int readFMPoint(char *dir);
|
|
int writeFMPoint(char *dir);
|
|
int readFMSMemo(char *dir);
|
|
int writeFMSMemo(char *dir);
|
|
void delovertimeFMMem(int time);
|
|
#ifdef _PERSONAL_FAME
|
|
int ACAddFM(int fd, int *workindex, char *fmname, char *fmleadername,
|
|
char *fmleaderid, int fmleaderlv, char *petname, char *petattr,
|
|
char *fmrule, int fmsprite, int fmleadergrano, int fame, int charfdid);
|
|
#else
|
|
int ACAddFM(int fd, int *workindex, char *fmname, char *fmleadername,
|
|
char *fmleaderid, int fmleaderlv, char *petname, char *petattr,
|
|
char *fmrule, int fmsprite, int fmleadergrano, int charfdid);
|
|
#endif
|
|
#ifdef _PERSONAL_FAME // Arminius: 家族个人声望
|
|
int ACJoinFM(int fd, int index, char *fmname, int fmindex,
|
|
char *charname, char *charid, int charlv, int fame, int charfdid);
|
|
#else
|
|
int ACJoinFM(int fd, int index, char *fmname, int fmindex,
|
|
char *charname, char *charid, int charlv, int charfdid);
|
|
#endif
|
|
int ACLeaveFM(int index, char *fmname, int fmindex,
|
|
char *charname, char* charid);
|
|
int ACDelFM(int index, char *fmname, int fmindex);
|
|
int ACShowFMList(char *data);
|
|
int ACShowFMMemberList(int index, int *acceptflag, int *fmjoinnum, char *data);
|
|
int ACFMDetail(int index, char *fmname, int fmindex, char *data);
|
|
#ifdef _FMVER21
|
|
int ACMemberJoinFM(int index, char *fmname, int fmindex,
|
|
char *charname, int charindex, int result, int meindex);
|
|
#else
|
|
int ACMemberJoinFM(int index, char *fmname, int fmindex,
|
|
char *charname, int charindex, int result);
|
|
#endif
|
|
#ifdef _FMVER21
|
|
int ACMemberLeaveFM(int index, char *fmname, int fmindex,
|
|
char *charname, int flag, int charindex, int meindex);
|
|
#else
|
|
int ACMemberLeaveFM(int index, char *fmname, int fmindex,
|
|
char *charname, int flag, int charindex);
|
|
#endif
|
|
int ACFMAssignOcp(int index, char *fmname, int fmindex,
|
|
char *charname, int charindex, int result);
|
|
|
|
#ifdef _FM_MODIFY
|
|
int ACFMCharLogin(int fd, int index, char *fmname, int fmindex,
|
|
char *charname, char *charid, int charlv, int *floor, int *fmpopular,
|
|
int *joinflag, int *fmsetupflag, int *charindex, int charfdid,
|
|
int *charfame, int eventflag,int gsnum
|
|
#ifdef _NEW_MANOR_LAW
|
|
,int *momentum
|
|
#endif
|
|
);
|
|
#else
|
|
#ifdef _PERSONAL_FAME // Arminius: 家族个人声望
|
|
int ACFMCharLogin(int fd, int index, char *fmname, int fmindex,
|
|
char *charname, char *charid, int charlv, int *floor, int *fmpopular,
|
|
int *joinflag, int *fmsetupflag, int *charindex, int charfdid,
|
|
int *charfame, int eventflag);
|
|
#else
|
|
int ACFMCharLogin(int fd, int index, char *fmname, int fmindex,
|
|
char *charname, char *charid, int charlv, int *floor, int *fmpopular,
|
|
int *joinflag, int *fmsetupflag, int *charindex, int charfdid);
|
|
#endif
|
|
#endif
|
|
|
|
int ACFMCharLogout(int index, char *fmname, int fmindex, char *charname,
|
|
char *charid, int charlv, int charfdid);
|
|
int delfmpointindex(int fmindex);
|
|
int ACgetFMFloor(int fmindex);
|
|
int ACgetFMInfoFromChar(char *fmname, int *fmindex,
|
|
char *charname, char *charid, int *charindex);
|
|
int ACFMReadMemo(int index, int *dataindex, char *data);
|
|
int ACFMWriteMemo(int index, char *fmname, int fmindex, char *data);
|
|
int ACFMPointList(char *data);
|
|
int ACSetFMPoint(int index, char *fmanme, int fmindex, int fmpointindex,
|
|
int fl, int x, int y);
|
|
int ACFixFMPoint(int winindex, char *winfmname, int winfmindex, int loseindex,
|
|
char *losefmname, int losefmindex, int village);
|
|
int ACShowTopFMList(char *data, int datasize, int kindflag);
|
|
int ACFMAnnounce(char *fmname, int fmindex, int index, char *data, int color);
|
|
#ifdef _FAMILYBANKSTONELOG
|
|
int ACgetFMBankgold(int index, char *fmname,int fmindex,int charindex);
|
|
#endif
|
|
int ACFixFMData(int index, char *fmname, int fmindex, int kindflag, int charindex,
|
|
char *data1, char *data2);
|
|
int ACGetFMData(int index, char *fmname, int fmindex, int kindflag, int *data);
|
|
int ACFixFMPK(int winindex, char *winfmname, int winfmindex, int loseindex,
|
|
char *losefmname, int losefmindex);
|
|
int ACGMFixFMData(int index, char *fmname, char *charid, char *cmd, char *data);
|
|
int ChangeFMLeader(int index, char *fmname, int fmindex);
|
|
#ifdef _LEADERFUNCHECK
|
|
int CheckLeaderQ(int index, char *fmname, int fmindex, char *charname, char *charid);
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef _ACFMPK_LIST
|
|
#define FMPKLIST_MAXNUM 10
|
|
typedef struct tagFamilyPKSchedule {
|
|
int pkflg;
|
|
char Data[256];
|
|
} FamilyPKSchedule;
|
|
|
|
void FMPK_LoadList();
|
|
void FMPK_BackUpList();
|
|
int FMPK_GetTypeFlg( int ti);
|
|
char *FMPK_GetData( int ti);
|
|
int FMPK_SetData( int ti, int Pkflg, char *Data, int sizes);
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef _DEATH_FAMILY_GM_COMMAND // WON ADD 家族战GM指令
|
|
void saacproto_ACRELOADFM_recv( int fd, int charindex );
|
|
char *get_fm_leader_index( int fm_index );
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef _DEATH_FAMILY_STRUCT // WON ADD 家族战存放胜负资料
|
|
|
|
#define fm_pk_max 200
|
|
|
|
typedef struct _fm_pk_struct
|
|
{
|
|
int fm_index[fm_pk_max];
|
|
int fm_win[fm_pk_max];
|
|
int fm_lose[fm_pk_max];
|
|
int fm_score[fm_pk_max];
|
|
char fm_name[fm_pk_max][30];
|
|
}FM_PK_STRUCT;
|
|
|
|
|
|
enum{
|
|
FM_INDEX =0,
|
|
FM_WIN,
|
|
FM_LOSE,
|
|
FM_SCORE,
|
|
FM_NAME,
|
|
};
|
|
|
|
|
|
void setInt_fm_pk_struct( int index, int type, int num );
|
|
void setChar_fm_pk_struct( int index, int type, char *msg );
|
|
int getInt_fm_pk_struct( int index, int type );
|
|
char *getChar_fm_pk_struct( int index, int type );
|
|
|
|
|
|
void set_fm_pk_score( char *msg );
|
|
void swap_fm_pk_struct( int no1, int no2 );
|
|
int get_fm_pk_index( int win_index );
|
|
void read_fm_pk_score();
|
|
//void save_fm_pk_score();
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#endif
|
|
|