亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? family.c

?? 石器時(shí)代8.0服務(wù)端完整源代碼。可以直接編譯
?? C
?? 第 1 頁 / 共 5 頁
字號:
#include "version.h"#include <stdio.h>#include <string.h>#include <ctype.h>#include <time.h>#include "readmap.h"#include "object.h"#include "char.h"#include "char_base.h"#include "lssproto_serv.h"#include "saacproto_cli.h"#include "npcutil.h"#include "family.h"#include "log.h"#include "handletime.h"#include "buf.h"#include "net.h"#include "char_base.h"#include "battle.h"#include "npc_bus.h"#include "char_talk.h"#include "npc_scheduleman.h"#ifdef _FM_MODIFY#include "npc_fmdengon.h"#endif#define CHAR_MAXNAME 20#define CHAR_MAXID 20#define MINFMLEVLEFORPOINT	3	// 3 申請莊園最低等級#ifdef _FAMILY_MANORNUM_CHANGE#else#define	MANORNUM		4#endifstruct FAMILY{	int		fmindex;	char	name[CHAR_MAXNAME];	char	leadername[CHAR_MAXNAME];	char	leaderid[CHAR_MAXID];	int		leadergraph;	char	petname[CHAR_MAXNAME];	char	petattr[256];	int		fmnum;	int		acceptflag;	char	rule[256];	int		village;	int		pointindex;	int		dp;	char	memolist[35][100];};int	familyNumTotal = 0;char	familyListBuf[MAXFAMILYLIST];int	channelMember[FAMILY_MAXNUM][FAMILY_MAXCHANNEL][FAMILY_MAXMEMBER];int	familyMemberIndex[FAMILY_MAXNUM][FAMILY_MAXMEMBER];int	familyTax[FAMILY_MAXNUM];extern	tagRidePetTable ridePetTable[296];void LeaveMemberIndex( int charaindex, int fmindexi);// Arminius: 取得家族 pk dp 增加/損失值// getFMdpAward// arg: windp=winner's fmdp	losedp=loser's fmdp// ret: dp award//#ifdef _MERGE_NEW_8int fmdplevelexp[]={0,			// 0					150000,		// 1					500000,		// 2					1000000,	// 3					1500000,	// 4					2000000,	// 5					2500000,	// 6					3500000,	// 7					4500000,	// 8					5000000,	// 9					7000000		//10					};#elseint fmdplevelexp[]={0,			// 0					10000,		// 1					30000,		// 2					100000,		// 3					500000,		// 4					1500000,	// 5					5000000,	// 6					15000000,	// 7					50000000,	// 8					200000000,	// 9					500000000	//10					};#endif// Arminius end// shan beginint getFmLv(int playerindex)	// 合成時(shí)專用{    int i, dp;    dp = CHAR_getWorkInt(playerindex, CHAR_WORKFMDP);    if( dp > fmdplevelexp[10] ){//        print("\n player DP->%d",dp);        return 10;    }    for(i=0; i<=10; i++)        if( dp <= fmdplevelexp[i+1] ) break;	// Nuke 20040217: Open the merge limit	//if(i>=9) i = 8;	if (i>=10) i=10;	    return i;}#ifdef _MERGE_NEW_8 // 查詢個(gè)人聲望等級int famelevelexp[]={0,			// 0					1500,		// 1					3000,		// 2					4500,		// 3					7500,		// 4					11000,		// 5					14500,		// 6					18000,		// 7					25000,		// 8					32000,		// 9					39000		//10					};int getFameLv(int playerindex)	// 合成時(shí)專用{    int i, dp;    dp = CHAR_getWorkInt(playerindex, CHAR_FAME);    if( dp > famelevelexp[10] ){        return 10;    }    for(i=0; i<=10; i++)        if( dp <= famelevelexp[i+1] ) break;	if (i>=10) i=10;	    return i;}#endifstruct FMMEMBER_LIST memberlist[FAMILY_MAXNUM];struct FMS_MEMO      fmsmemo;struct FM_POINTLIST  fmpointlist;#ifdef _NEW_MANOR_LAWManorSchedule_t	ManorSchedule[MANORNUM];#endifstruct FMS_DPTOP     fmdptop; struct FM_PKFLOOR    fmpkflnum[FAMILY_FMPKFLOOR]={	{142},	{143},	{144},	{145},	{146},	{1042},	{2032},	{3032},	{4032},#ifdef _FAMILY_MANORNUM_CHANGE	// CoolFish 用來修改裝園數(shù)量	{5032},	{6032},	{7032},	{8032},	{9032},	{10032},#endif};int leaderdengonindex = 0;// shan end 新增圖層需到 family.h 增加 FAMILY_FMPKFLOOR 數(shù)量void SetFMPetVarInit(int meindex){	int i = 0, petindex = 0;#ifdef _FMVER21		if (CHAR_getInt(meindex, CHAR_FMLEADERFLAG) != FMMEMBER_LEADER)#else	if (CHAR_getInt(meindex, CHAR_FMLEADERFLAG) != 1)#endif		{		for (i = 0; i < CHAR_MAXPETHAVE; i++)		{			petindex = CHAR_getCharPet(meindex, i);			if (!CHAR_CHECKINDEX(petindex))	continue;			CHAR_setInt(petindex, CHAR_PETFAMILY, -1);		}   	}}void SetFMVarInit(int meindex){	SetFMPetVarInit(meindex); // 清除守護(hù)獸 Flag   	CHAR_setInt(meindex, CHAR_FMINDEX, -1);   	CHAR_setChar(meindex, CHAR_FMNAME, "");   	CHAR_setInt(meindex, CHAR_FMSPRITE, -1);#ifdef _FMVER21   	   	CHAR_setInt(meindex, CHAR_FMLEADERFLAG, FMMEMBER_NONE);#else   	CHAR_setInt(meindex, CHAR_FMLEADERFLAG, -1);#endif   	   	CHAR_setWorkInt(meindex, CHAR_WORKFMSETUPFLAG, -1);   	CHAR_setWorkInt(meindex, CHAR_WORKFMINDEXI, -1);   	CHAR_setWorkInt(meindex, CHAR_WORKFMCHARINDEX, -1);}void FAMILY_Init( void ){	int i, j ,k;	for( i=0; i<FAMILY_MAXNUM; i++)	{	    for( j=0; j<FAMILY_MAXCHANNEL; j++)	        for( k=0; k<FAMILY_MAXMEMBER; k++)	        	channelMember[i][j][k] = -1;	}	for( i=0; i<FAMILY_MAXNUM; i++)	    for( j=0; j<FAMILY_MAXMEMBER; j++ )	    	familyMemberIndex[i][j] = -1;	    #ifdef _NEW_MANOR_LAW	for(i=0;i<FAMILY_MAXHOME;i++){		fmpointlist.fm_momentum[i] = -1;		fmpointlist.fm_inwar[i] = FALSE;	}	memset(&ManorSchedule,0,sizeof(ManorSchedule));	for(j=0;j<MANORNUM;j++){		for(i=0;i<10;i++){			ManorSchedule[j].iSort[i] = ManorSchedule[j].iFmIndex[i] = -1;		}	}#endif			familyListBuf[0] = '\0';	saacproto_ACShowFMList_send( acfd );	//print( "FamilyData_Init:%s ", familyListBuf );}void CHAR_Family(int fd, int index, char *message){   char		firstToken[64];   char		messageeraseescape[512];   char*	messagebody;   {      if (*message == 0)	return;      CHAR_getMessageBody(message, firstToken,         sizeof(firstToken), &messagebody);               if (!messagebody)		return;            strcpysafe(messageeraseescape, sizeof(messageeraseescape),         messagebody);      makeStringFromEscaped(messageeraseescape);      switch(tolower(firstToken[0]))      {			case 'a':				// 成立家族				FAMILY_Add(fd, index, message);				break;			case 'j':				// 加入家族				FAMILY_Join(fd, index, message);				break;			case 'e':				// 離開、退出家族				FAMILY_Leave(fd, index, message);				break;			case 'm':				// 族長審核				FAMILY_CheckMember(fd, index, message);				break;         			case 's':				// 取得家族相關(guān)資料				FAMILY_Detail(fd, index, message);				break;			case 'c':				// 家族頻道				FAMILY_Channel(fd, index, message);				break;			case 'b':				// 家族銀行				FAMILY_Bank(fd, index, message);				break;			case 'p':#ifdef _UN_FMPOINT#else				// 申請家族據(jù)點(diǎn)				FAMILY_SetPoint(fd, index, message);#endif				break;			case 't':				// 是否繼續(xù)招募成員				FAMILY_SetAcceptFlag(fd, index, message);				break;			case 'x':				// 修改家族主旨				FAMILY_FixRule( fd, index, message );				break;			case 'r':				// 騎乘寵物				FAMILY_RidePet( fd, index, message );				break;			case 'l':				// 族長功能				FAMILY_LeaderFunc( fd, index, message );				break;#ifdef _FM_MODIFY				// 家族布告欄功能			case 'd':#ifdef _UN_FMMEMO#else				NPC_FmDengonLooked(0,index);#endif				break;#endif			default:				break;      }   }}int CheckFMLeader(int meindex){   if (CHAR_getInt(meindex, CHAR_FMINDEX) > 0)	return -1;   if (strcmp(CHAR_getChar(meindex, CHAR_FMNAME), "") != 0)	return -1;#ifdef _FMVER21   if (CHAR_getInt(meindex, CHAR_FMLEADERFLAG) == FMMEMBER_LEADER)	return -1;#else   if (CHAR_getInt(meindex, CHAR_FMLEADERFLAG) == 1)	return -1;#endif      return 1;}int CheckFMMember(int meindex){   if (CHAR_getInt(meindex, CHAR_FMINDEX) > 0)   	return -1;   if (strcmp(CHAR_getChar(meindex, CHAR_FMNAME), "") != 0)	return -1;#ifdef _FMVER21   if (CHAR_getInt(meindex, CHAR_FMLEADERFLAG) > 0 &&       CHAR_getInt(meindex, CHAR_FMLEADERFLAG) != FMMEMBER_APPLY )	return -1;#else   if (CHAR_getInt(meindex, CHAR_FMLEADERFLAG) > 0 )	return -1;#endif          return 1;}int CheckLeaderQ(int meindex){   if (CHAR_getInt(meindex, CHAR_LV) < FMLEADERLV   	&& CHAR_getInt(meindex, CHAR_TRANSMIGRATION) <= 0)   	return	-1;   if (!NPC_EventCheckFlg(meindex, 4))   	return	-2;   return	0;}void FAMILY_Add(int fd, int meindex, char* message){	char token[128], fmname[128], charname[128], charid[128];	char petname[128], fmrule[256], petattr[256], buf[1024];	int charlv, havepetindex, petindex, fmsprite = 0, chargrano;	int gold, tmpflag;		if (!CHAR_CHECKINDEX(meindex))	return;		if (CHAR_getWorkInt(meindex, CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE)		return;	if (CHAR_getInt(meindex, CHAR_FMINDEX) >= 0 		&& strcmp(CHAR_getChar(meindex, CHAR_FMNAME), "") != 0)	{		lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,			WINDOW_BUTTONTYPE_OK,			-1, -1,			makeEscapeString( "\n你已經(jīng)加入家族羅~無法再成立家族!", buf, sizeof(buf)));   	return;	}	tmpflag = CheckLeaderQ(meindex);	if(tmpflag == -1)	{		lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,			WINDOW_BUTTONTYPE_OK,			-1, -1,			makeEscapeString( "\n很抱歉喔!你的等級不足!", buf, sizeof(buf)));   	return;	}		if(tmpflag == -2)	{		lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,			WINDOW_BUTTONTYPE_OK,			-1, -1,			makeEscapeString( "\n很抱歉喔!你必須先完成成人禮才行!", buf, sizeof(buf)));   	return;   	}	gold = CHAR_getInt(meindex, CHAR_GOLD);	if( gold < 10000 )	{		lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,			WINDOW_BUTTONTYPE_OK,			-1, -1,			makeEscapeString( "\n很抱歉喔!成立家族需要一萬元石幣的手續(xù)費(fèi)!", buf, sizeof(buf)));   	return;	}	else {   	CHAR_setInt( meindex, CHAR_GOLD, gold-10000 );   	CHAR_send_P_StatusString( meindex , CHAR_P_STRING_GOLD);	}		if (getStringFromIndexWithDelim(message, "|", 2, token,   	sizeof(token)) == FALSE)	return;	sprintf(fmname, "%s", token);	if ((strstr(fmname, " ")) || (strcmp(fmname, "") == 0) || (strstr(fmname, " ")))	{		lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,			WINDOW_BUTTONTYPE_OK,			-1, -1,			makeEscapeString( "\n家族的名稱請勿輸入空格!", buf, sizeof(buf)));   	return;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区3| 一区二区三区国产豹纹内裤在线 | 精品日韩一区二区| 亚洲一区二区三区四区在线观看 | 粉嫩av一区二区三区粉嫩| 中文字幕高清一区| 欧美偷拍一区二区| 国内精品免费**视频| 国产精品电影一区二区| 欧美日韩aaaaaa| 精品无人区卡一卡二卡三乱码免费卡| 国产精品毛片久久久久久| 在线观看亚洲a| 国产又粗又猛又爽又黄91精品| 亚洲欧美日韩综合aⅴ视频| 欧美一区二区三区公司| 成人综合婷婷国产精品久久免费| 亚洲午夜久久久久久久久电影网 | 欧美日韩五月天| 国产乱妇无码大片在线观看| 一区二区三区日韩| 久久精品一区蜜桃臀影院| 欧日韩精品视频| 蜜桃视频在线一区| 亚洲免费观看高清完整| www国产亚洲精品久久麻豆| 欧美色图免费看| 不卡一区在线观看| 精品一区二区三区在线播放视频| 亚洲永久免费av| 中文无字幕一区二区三区| 欧美一卡在线观看| 欧美性猛交xxxxxx富婆| 极品少妇xxxx精品少妇偷拍| 亚洲一区二区视频| 日韩毛片高清在线播放| 欧美日韩久久不卡| 色婷婷国产精品| 东方aⅴ免费观看久久av| 久久精品免费观看| 三级不卡在线观看| 一区二区三区在线免费播放| 国产精品免费视频网站| 久久精品人人做人人爽97| 欧美一级专区免费大片| 欧美猛男超大videosgay| 91小宝寻花一区二区三区| 粉嫩av一区二区三区在线播放| 精久久久久久久久久久| 亚洲视频综合在线| 中文字幕亚洲在| 美女一区二区久久| 亚欧色一区w666天堂| 一区二区三区不卡在线观看 | 色婷婷香蕉在线一区二区| av成人免费在线观看| 国产福利不卡视频| 日韩有码一区二区三区| 午夜不卡在线视频| 天天亚洲美女在线视频| 久久超级碰视频| 成人不卡免费av| 欧美色涩在线第一页| 精品裸体舞一区二区三区| 国产精品午夜久久| 亚洲最大成人网4388xx| 裸体歌舞表演一区二区| 成人免费av在线| 欧美三级韩国三级日本三斤| 日韩你懂的电影在线观看| 国产精品国产三级国产普通话99| 亚洲电影一区二区三区| 国产做a爰片久久毛片| 99re视频精品| 欧美一区二区三区喷汁尤物| 国产蜜臀av在线一区二区三区| 一区二区三区国产| 久久99精品国产91久久来源| 成人在线综合网站| 69久久夜色精品国产69蝌蚪网| 久久久另类综合| 曰韩精品一区二区| 国产精品18久久久久久久网站| 在线日韩av片| 久久精品视频一区二区| 一区二区三区欧美久久| 国产一区二区女| 欧美日韩免费观看一区二区三区| 久久久久久久电影| 五月婷婷激情综合| 成a人片国产精品| 精品国产91洋老外米糕| 不卡的电影网站| 日韩精品一区二区三区在线播放 | 国产精品免费aⅴ片在线观看| 日韩中文字幕一区二区三区| 成人av免费在线| 久久蜜桃一区二区| 日本成人在线看| 在线精品视频小说1| 国产清纯白嫩初高生在线观看91 | 国产福利不卡视频| 欧美剧情电影在线观看完整版免费励志电影| 国产色综合一区| 三级不卡在线观看| 日本精品一级二级| 中文字幕一区二区三区在线观看 | 欧美精品aⅴ在线视频| 亚洲色欲色欲www| 国产suv精品一区二区6| 日韩无一区二区| 视频一区二区欧美| 欧美性大战久久| 亚洲丝袜另类动漫二区| 丁香六月久久综合狠狠色| 精品久久国产字幕高潮| 日韩成人精品视频| 欧美系列一区二区| 一区二区高清视频在线观看| 成人久久久精品乱码一区二区三区| 精品福利一二区| 久久99精品久久久久久动态图 | 26uuu色噜噜精品一区二区| 奇米综合一区二区三区精品视频 | 色综合久久中文综合久久97| 国产精品久久久久久久久久久免费看| 国产一区在线观看视频| 26uuu亚洲| 国产精品一区在线| 久久久国际精品| 欧美日韩久久一区| 亚洲欧美综合色| 99久久精品久久久久久清纯| 中文在线一区二区| 欧美xxxxxxxx| 精品一区二区免费在线观看| 精品日韩av一区二区| 狠狠色狠狠色综合系列| 久久久不卡网国产精品一区| 国产成a人亚洲精| 国产精品久久久久久妇女6080| 成人激情开心网| 亚洲欧美另类久久久精品| 欧美性xxxxxx少妇| 日本一不卡视频| 精品av久久707| 国产精品综合一区二区| 中文字幕免费在线观看视频一区| 不卡的电影网站| 亚洲一区二区五区| 91精品国产综合久久福利软件| 麻豆国产欧美日韩综合精品二区| 久久综合国产精品| 99久久免费精品高清特色大片| 亚洲精品ww久久久久久p站 | 国产欧美日韩激情| 99久久精品国产一区二区三区| 亚洲永久免费av| 欧美一区二区免费| 丁香网亚洲国际| 国产精品人人做人人爽人人添 | 91在线免费播放| 午夜电影一区二区三区| 精品福利在线导航| 91在线国内视频| 日本欧美加勒比视频| 国产精品视频一二| 欧美四级电影网| 九色|91porny| 一区二区三区四区蜜桃| 日韩一区二区三区三四区视频在线观看| 久色婷婷小香蕉久久| 国产精品久久久久影视| 7777精品伊人久久久大香线蕉经典版下载 | 久久成人久久爱| 亚洲欧洲国产日韩| 日韩一区二区电影| av亚洲精华国产精华精| 日韩在线a电影| 中文字幕在线观看不卡| 91麻豆精品91久久久久久清纯 | 91在线观看美女| 麻豆91小视频| 亚洲日本免费电影| 欧美va亚洲va香蕉在线| 色欧美片视频在线观看在线视频| 久久er精品视频| 亚洲精品亚洲人成人网| 久久免费看少妇高潮| 欧美区视频在线观看| 成人午夜激情影院| 美女网站色91| 亚洲图片欧美一区| 中文字幕成人在线观看| 91精品国产综合久久久久久| 成人av动漫在线| 精品一区二区三区香蕉蜜桃 | 亚洲高清免费观看 | 6080亚洲精品一区二区| 色婷婷一区二区|