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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? npcshandle.c

?? 最新主流石器時代源代碼,包含諸多目前流行功能代碼.
?? C
字號:
#include <stdio.h>#include <strings.h>#include <sys/types.h>#include <sys/socket.h>#include <sys/time.h>#include <sys/stat.h>#include <netinet/in.h>#include <arpa/inet.h>#include <stdlib.h>#include <unistd.h>#include <fcntl.h>#include <netdb.h>#include <errno.h>#include "autil.h"#include "util.h"#include "net.h"#include "object.h"#include "char.h"#include "char_base.h"#include "log.h"#include "handletime.h"#include "npcserver.h"#include "lssproto_serv.h"#include "lssproto_util.h"#include "npcshandle.h"#include "npcutil.h"#include "npc_eventaction.h"#ifdef _NPCSERVER_NEWenum{	uEQUAL = 1, //等於	uBIGEQUALt,	//大於等於	uSMALLEQUALt, //小於等於	uBIGTHAN = 5,	//大於	uSMALLTHAN, //小於	uNEQUAL, //不等於};BOOL NPCS_HandleCheckFreeMess( int npcobjindex, int charaindex, int charobjindex,				char *CheckfreeMess){	BOOL ReCall = FALSE;	BOOL Enable = FALSE;	char buf1[1024], buf2[256];	int i=1;	//主條件判斷	while( getStringFromIndexWithDelim( CheckfreeMess, "OVER", i, buf1, sizeof( buf1)) != FALSE ){		i++;		if( NPC_Util_GetStrFromStrWithDelim( buf1, "FREE", buf2, sizeof( buf2)) == NULL  ) continue;		if( NPCS_FreePassCheck( charaindex, buf2) == TRUE ){			if( NPC_Util_GetStrFromStrWithDelim( buf1, "FreeMess", buf2, sizeof( buf2)) == NULL  ) continue;			Enable = TRUE;			if( NPCS_RunDoEventAction( charaindex, buf1) == FALSE )				return FALSE;			//事件處理			NPCS_NpcstalkToCli( charaindex, npcobjindex, buf2, CHAR_COLORYELLOW);			break;		}	}	if( Enable == FALSE ){//所有條件不成立		NPCS_NpcstalkToCli( charaindex, npcobjindex, "條件不足!", CHAR_COLORYELLOW);		return FALSE;	}	if( ReCall == TRUE ){		//判斷是否recall	}	return TRUE;}BOOL NPCS_FreePassCheck( int charaindex, char *buf){	char buff2[256];	char buff3[128];	int i=1,j=1;	int loop=0;	while( getStringFromIndexWithDelim(buf,",",i,buff2,sizeof(buff2)) !=FALSE )	{			i++;		if(strstr(buff2,"&")!=NULL){			j=1;			loop=0;			while( getStringFromIndexWithDelim(buff2,"&",j,buff3,sizeof(buff3)) !=FALSE )	{				j++;				if(NPCS_FreeBigSmallCheck( charaindex, buff3)==FALSE)	{					loop=1;					break;				}			}			if(loop==0)	return TRUE;		}else{			if( NPCS_FreeBigSmallCheck( charaindex, buff2) == TRUE) return TRUE;		}	}	CHAR_setWorkInt( charaindex, CHAR_WORKWARPCHECK, FALSE );	return FALSE;}BOOL NPCS_FreeBigSmallCheck( int charaindex,char* buf){	char buff1[128], buff2[128], Head[128];	int kosuu,temp=-1,flg=0;	memset( Head, 0, sizeof( Head));	if( strstr( buf, "=" ) != NULL ){		strcpy( Head, "=");		flg = uEQUAL;		if( strstr( buf, ">") != NULL ){			strcat( Head, ">");			flg = uBIGEQUALt;		}else if( strstr( buf, "<") != NULL ){			strcat( Head, "<");			flg = uSMALLEQUALt;		}else if( strstr( buf, "!") != NULL )	{			strcat( Head, "!");			flg = uNEQUAL;		}	}else if(strstr( buf, "<") != NULL){		strcpy( Head, "<");		flg = uSMALLTHAN;	}else if(strstr( buf, ">") != NULL){		strcpy( Head, ">");		flg = uBIGTHAN;	}	Head[ strlen( Head)+1] = 0;	getStringFromIndexWithDelim( buf, Head, 2, buff2, sizeof(buff2));	getStringFromIndexWithDelim( buf, Head, 1, buff1, sizeof(buff1));	if( strstr( buff2, "*") != NULL ){		char buff3[128];		getStringFromIndexWithDelim( buff2, "*", 1, buff3, sizeof(buff3));		temp = atoi( buff3);		getStringFromIndexWithDelim( buff2, "*", 2, buff3, sizeof(buff3));		kosuu = atoi( buff3);	}else {		kosuu = atoi( buff2);		temp = 1;	}	return NPCS_ArgumentFreeCheck( charaindex, buff1, kosuu, flg, temp);}BOOL NPCS_ArgumentFreeCheck( int charaindex, char* Argument, int amount, int temp, int probjID){//amount 數量 Argument 參數	int MyPoint=0, reAmount;	reAmount = 0;	if( strcmp( Argument, "LV") == 0)	{//等級		MyPoint = CHAR_getInt( charaindex, CHAR_LV);	}else if( strcmp( Argument, "GOLD") == 0)	{//石幣		MyPoint = CHAR_getInt( charaindex, CHAR_GOLD);	}else if( strcmp( Argument, "TRANS") == 0)	{//轉生次數		MyPoint = CHAR_getInt( charaindex, CHAR_TRANSMIGRATION);	}else if( strcmp( Argument, "PET") == 0)	{//寵物 ID 數量		MyPoint = NPCS_getUserPetAmount( charaindex, probjID, 1);	}else if( strcmp( Argument, "ITEM") == 0)	{//道具 ID 數量		MyPoint = NPCS_getUserItemAmount( charaindex, probjID, 1);	}else if( strcmp( Argument, "ENDEV") == 0)	{//結束旗標		return NPC_EventCheckFlg( charaindex, amount);	}else if( strcmp( Argument, "NOWEV") == 0)	{//開啟旗標		return NPC_NowEventCheckFlg( charaindex, amount);	}else if( strcmp( Argument, "PARTY") == 0)	{//檢查團隊人數		MyPoint = NPCS_getUserPartyAmount( charaindex );	}else if( strcmp( Argument, "reITEM")== 0)	{//剩馀道具欄位		NPCS_getUserItemAmount( charaindex, probjID, 0);		MyPoint = reAmount;	}else if( strcmp( Argument, "rePET") == 0)	{//剩馀寵物欄位		NPCS_getUserPetAmount( charaindex, probjID, 0);		MyPoint = reAmount;	}else {	}	return NPCS_ArgumentBigSmallCheck( amount, MyPoint, temp);}BOOL NPCS_ArgumentBigSmallCheck( int point, int mypoint, int flg){	switch( flg){	case uEQUAL: //等於		if( mypoint == point ) return TRUE;		break;	case uBIGEQUALt: //大於等於		if( mypoint >= point ) return TRUE;		break;	case uSMALLEQUALt: //小於等於		if( mypoint <= point ) return TRUE;		break;	case uBIGTHAN: //大於		if( mypoint > point ) return TRUE;		break;	case uSMALLTHAN: //小於		if( mypoint < point ) return TRUE;		break;	case uNEQUAL: //不等於		if( mypoint != point ) return TRUE;		break;	}	return FALSE;}int NPCS_getUserPetAmount( int charaindex, int objID, int flg){	int i, Amount=0, reAmount=0;	for( i=0 ;i <CHAR_MAXPETHAVE; i++) {		int petindex = CHAR_getCharPet( charaindex, i);		if( !CHAR_CHECKINDEX( petindex)){			reAmount++;		}else{			if( CHAR_getInt( petindex, CHAR_PETID) == objID)				Amount++;		}	}	if( flg == 1 ){		return Amount;	}else{		return reAmount;	}}int NPCS_getUserItemAmount( int charaindex, int objID, int flg){	int i, Amount=0, reAmount=0;	for( i=CHAR_STARTITEMARRAY ;  i<CHAR_MAXITEMHAVE; i++){		int itemindex = CHAR_getItemIndex( charaindex, i);		if( !ITEM_CHECKINDEX( itemindex) ){			reAmount++;		}else{			if( ITEM_getInt( itemindex, ITEM_ID) == objID)				Amount++;		}	}	if( flg == 1 ){		return Amount;	}else {		return reAmount;	}}int NPCS_getUserPartyAmount( int charaindex ){	int partys=0;	int leaderindex=-1;	leaderindex = charaindex;	if( CHAR_getWorkInt( charaindex, CHAR_WORKPARTYMODE) == CHAR_PARTY_NONE ){		return 0;	}else if( CHAR_getWorkInt( charaindex, CHAR_WORKPARTYMODE) == CHAR_PARTY_CLIENT ){		leaderindex = CHAR_getWorkInt( charaindex, CHAR_WORKPARTYINDEX1);	}		if( CHAR_getWorkInt( leaderindex, CHAR_WORKPARTYMODE) == CHAR_PARTY_LEADER ){		int i;		for( i=0; i<5; i++)	{			int pindex = CHAR_getWorkInt( leaderindex, CHAR_WORKPARTYINDEX1+i);			if( !CHAR_CHECKINDEX( pindex) )				partys++;		}	}	return partys;}BOOL NPCS_RunDoEventAction( int charaindex, char *buf1){	char buf2[256];	// WON ADD	if( NPC_Util_GetStrFromStrWithDelim( buf1, "AddGold", buf2, sizeof( buf2)) != NULL ) {		if( NPC_ActionAddGold2( charaindex, buf2) == FALSE )			return FALSE;	}				if( NPC_Util_GetStrFromStrWithDelim( buf1, "DelGold", buf2, sizeof( buf2)) != NULL ) {		if( NPC_ActionDelGold( charaindex, buf2) == FALSE )			return FALSE;	}	if( NPC_Util_GetStrFromStrWithDelim( buf1, "DelItem", buf2, sizeof( buf2)) != NULL ) {		//print("\n DelItem:%s:%d ", __FILE__, __LINE__);		if( NPC_ActionDelItem( charaindex, buf2) == FALSE ) {			//print("\n 改封包??NPC_ActionDelItem:%s:%s  ", CHAR_getChar(toindex, CHAR_CDKEY), buf2);			return FALSE;		}	}	if( NPC_Util_GetStrFromStrWithDelim( buf1, "AddItem", buf2, sizeof( buf2)) != NULL ) {		if( NPC_ActionAddItem( charaindex, buf2) == FALSE )			return FALSE;	}	if( NPC_Util_GetStrFromStrWithDelim( buf1, "DelPet", buf2, sizeof( buf2)) != NULL ) {		if( NPC_ActionDelPet( charaindex, buf2) == FALSE )			return FALSE;	}	if( NPC_Util_GetStrFromStrWithDelim( buf1, "AddPet", buf2, sizeof( buf2)) != NULL ) {		if( NPC_ActionAddPet( charaindex, buf2) == FALSE )			return FALSE;	}	if( NPC_Util_GetStrFromStrWithDelim( buf1, "EvEnd", buf2, sizeof( buf2)) != NULL ) {		if( NPC_ActionSetEend( charaindex, buf2) == FALSE )			return FALSE;	}	if( NPC_Util_GetStrFromStrWithDelim( buf1, "EvNow", buf2, sizeof( buf2)) != NULL ) {		if( NPC_ActionSetNow( charaindex, buf2) == FALSE )			return FALSE;	}	return TRUE;}BOOL NPCS_NpcstalkToCli( int charaindex,int npcobjindex, char* message, CHAR_COLOR color ){	static char    lastbuf[2048];	static char    escapebuf[2048];	int fd;	if( !CHAR_CHECKINDEX(charaindex) ) return FALSE;	if( CHAR_getInt( charaindex,CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER) return FALSE;	if( (fd=getfdFromCharaIndex( charaindex )) == -1 ) return FALSE;	if( color < CHAR_COLORWHITE && color > CHAR_COLORGREEN2 )return FALSE;#ifndef _CHANNEL_MODIFY    	snprintf( lastbuf, sizeof(lastbuf), "P|%s:%s",#else	snprintf( lastbuf, sizeof(lastbuf), "P|P|%s:%s",#endif			makeEscapeString( OBJECT_getName( npcobjindex), escapebuf, sizeof(escapebuf)), message);	lssproto_TK_send( fd, npcobjindex, lastbuf, color);	return TRUE;}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区成人在线视频 | 中文在线一区二区 | 91麻豆精品视频| 欧美日韩情趣电影| 欧美国产一区在线| 九色综合国产一区二区三区| 欧美午夜理伦三级在线观看| 亚洲国产精品精华液ab| 美女视频一区二区三区| 欧美性高清videossexo| 亚洲欧美怡红院| 国产成人精品在线看| 91精品啪在线观看国产60岁| 亚洲精品国产视频| 99vv1com这只有精品| 国产欧美一区二区精品性| 黄色小说综合网站| 日韩午夜在线播放| 日本sm残虐另类| 欧美久久一区二区| 亚洲成人av一区二区三区| 欧洲一区二区三区免费视频| 国产欧美一区二区三区网站| 国产揄拍国内精品对白| 精品国产乱码久久久久久图片| 亚洲午夜电影在线| 色欧美日韩亚洲| 综合久久综合久久| 色综合久久久网| 一区二区三区在线免费观看| www.亚洲人| 亚洲日本在线看| 色菇凉天天综合网| 亚洲天堂2016| 91黄色小视频| 天堂资源在线中文精品| 9191成人精品久久| 日产国产欧美视频一区精品| 欧美高清你懂得| 美腿丝袜一区二区三区| 日韩久久久精品| 国产一区二区不卡老阿姨| 久久久久国产免费免费| 99久久国产综合精品色伊| 亚洲欧美一区二区三区极速播放| 一本大道久久精品懂色aⅴ| 一区二区三区免费观看| 色综合久久88色综合天天6| 一区二区三区日韩在线观看| 欧美亚日韩国产aⅴ精品中极品| 偷拍自拍另类欧美| 日韩欧美中文一区二区| 国产精品中文欧美| 日韩久久一区二区| 欧美日韩大陆一区二区| 久久99久久99精品免视看婷婷| xfplay精品久久| 成人福利在线看| 亚洲国产视频网站| 精品嫩草影院久久| 99久久伊人网影院| 日韩国产精品久久久久久亚洲| 精品久久久久久无| 成人中文字幕在线| 午夜欧美2019年伦理| 精品少妇一区二区| 99久久综合狠狠综合久久| 亚洲综合激情另类小说区| www国产成人| 欧美日韩一区二区三区高清 | 成人av网址在线观看| 亚洲一区在线观看免费| 2024国产精品视频| 欧美三片在线视频观看| 国产精品18久久久久久久久| 亚洲最新在线观看| 欧美激情一区在线观看| 欧美精选一区二区| 不卡视频在线观看| 蜜臀av在线播放一区二区三区 | 不卡视频在线看| 麻豆视频观看网址久久| 亚洲精品福利视频网站| 久久亚洲精精品中文字幕早川悠里| 欧美影片第一页| 成人激情动漫在线观看| 久久精品久久综合| 亚洲高清在线精品| 亚洲三级理论片| 欧美韩国日本不卡| 久久久99精品免费观看| 91精品一区二区三区在线观看| 色94色欧美sute亚洲13| 丁香六月综合激情| 国内精品在线播放| 蓝色福利精品导航| 日韩精品一区第一页| 亚洲欧洲精品一区二区三区| 久久精品欧美日韩| 日韩欧美激情一区| 91精品国产高清一区二区三区蜜臀 | eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 日本在线播放一区二区三区| 伊人性伊人情综合网| 亚洲欧美在线另类| 国产精品国产三级国产aⅴ原创 | 91精品国产91热久久久做人人| 91蜜桃免费观看视频| a在线播放不卡| 白白色亚洲国产精品| 成人h动漫精品一区二区| 国产一区二区三区黄视频 | 久久久久99精品国产片| 精品久久久久久无| 2020国产精品| 欧美精品一区二区三区四区| 精品国产一区二区三区忘忧草| 欧美v亚洲v综合ⅴ国产v| 欧美精品一区二区三区蜜臀| 日韩欧美国产一区二区三区| 日韩一区二区在线看| 精品剧情在线观看| 2020国产成人综合网| 国产欧美一区二区精品久导航| 国产亚洲精品bt天堂精选| 国产日韩三级在线| 1000部国产精品成人观看| 亚洲乱码国产乱码精品精98午夜| 一二三四区精品视频| 日韩国产欧美一区二区三区| 另类专区欧美蜜桃臀第一页| 国产精品亚洲一区二区三区妖精| 国产成人av资源| 色综合一区二区三区| 欧美日韩国产三级| 日韩精品资源二区在线| 中文字幕乱码一区二区免费| 亚洲男人天堂一区| 偷拍与自拍一区| 国产精品一区二区在线看| 不卡大黄网站免费看| 欧美日韩另类国产亚洲欧美一级| 欧美一级日韩一级| 国产女人aaa级久久久级| 一区二区三区四区亚洲| 美女在线观看视频一区二区| 丰满白嫩尤物一区二区| 欧美视频一区二区三区四区| 精品免费视频一区二区| 亚洲欧美一区二区在线观看| 日韩电影一区二区三区四区| 成人不卡免费av| 久久亚洲综合av| 亚洲影院久久精品| 国产精品正在播放| 欧美色精品天天在线观看视频| 精品免费一区二区三区| 夜夜操天天操亚洲| 国产成人在线视频网址| 欧美唯美清纯偷拍| 国产日产亚洲精品系列| 日韩av网站免费在线| 成人国产视频在线观看| 6080午夜不卡| 亚洲色图视频免费播放| 国产一区二区美女| 欧美日韩精品免费| 国产精品免费久久| 九九九精品视频| 欧美日韩三级一区| 最新国产成人在线观看| 国产精品一区在线观看乱码| 91精品国产免费久久综合| 成人欧美一区二区三区| 国产精品一区在线观看你懂的| 91精品国产综合久久久久| 亚洲色图欧美在线| 国产黑丝在线一区二区三区| 欧美一级午夜免费电影| 一片黄亚洲嫩模| 色综合久久久网| 成人免费在线观看入口| 国产成人av福利| 久久女同精品一区二区| 美腿丝袜亚洲综合| 3atv一区二区三区| 亚洲观看高清完整版在线观看 | 国产精品免费久久久久| 九色综合国产一区二区三区| 欧美一区二区三区白人| 性欧美疯狂xxxxbbbb| 欧美性猛交xxxxxxxx| 伊人夜夜躁av伊人久久| 91久久精品日日躁夜夜躁欧美| 亚洲三级在线免费观看| 色视频成人在线观看免| 亚洲综合色噜噜狠狠| 欧美午夜在线一二页| 午夜视频一区在线观看| 欧美日韩在线亚洲一区蜜芽|