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

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

?? npc_newnpcman.c

?? 最新主流石器時(shí)代源代碼,包含諸多目前流行功能代碼.
?? C
?? 第 1 頁 / 共 3 頁
字號(hào):
NPC_NEWNPCMAN_START=21,
NPC_NEWNPCMAN_MAN,
NPC_NEWNPCMAN_END,
};

enum	{
	NEWNPC_START = 1,
	NEWNPC_MAN,
	NEWNPC_END,
};

enum {
	NPC_WORK_INDEX = CHAR_NPCWORKINT1,
	NPC_WORK_WORKTYPE = CHAR_NPCWORKINT2,
	NPC_WORK_CURRENTTIME = CHAR_NPCWORKINT3,
};

BOOL CHECK_YEARPET( int toindex);
static void NPC_NewNpcMan_selectWindow( int meindex, int toindex, int num, int flg);
int NPC_NewNpcManDelPet(int meindex,int talker, int petsel);
BOOL NPC_NewNpcManAddPet(int meindex, int talker, int petid);

//可換四種寵
static	int Re_Pet[4];
// shan
char uStr[128]="";

BOOL NPC_NewNpcManInit( int meindex )
{
	char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE];
	char buf1[256],buf2[256];
	int k=1;

	if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg)) == NULL)	{
		print("GambleBank:GetArgStrErr");
		return FALSE;
	}

	if( NPC_Util_GetStrFromStrWithDelim( npcarg, "REPET", buf1, sizeof( buf1)) == NULL )	{
		return FALSE;
	}

	while( getStringFromIndexWithDelim(buf1, ",", k, buf2, sizeof(buf2)) != FALSE )	{
		Re_Pet[k-1] = atoi( buf2);
		if( Re_Pet[k-1] < 0 )
			return FALSE;
		k++;
		if( (k-1) >= arraysizeof( Re_Pet) )
			break;
	}

    CHAR_setInt( meindex , CHAR_WHICHTYPE , CHAR_NEWNPCMAN );
	CHAR_setInt( meindex, CHAR_LOOPINTERVAL, NEWNPCMAN_STANDBY);
	CHAR_setWorkInt( meindex, NPC_WORK_CURRENTTIME, NowTime.tv_sec);
	CHAR_setWorkInt( meindex , NPC_WORK_INDEX, -1);
	return TRUE;
}

void NPC_NewNpcManLoop( int meindex)
{
	//test
	char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE];
	char buf1[256],buf2[256];
	int k=1;

	int fulltime = NEWNPCMAN_WAITTIME;
	if( (CHAR_getWorkInt( meindex, NPC_WORK_CURRENTTIME) + fulltime) > NowTime.tv_sec )
		return;
	CHAR_setWorkInt( meindex , NPC_WORK_INDEX, -1);
	CHAR_setWorkInt( meindex, NPC_WORK_CURRENTTIME, NowTime.tv_sec);

	//test
	if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg)) == NULL)	{
		print("GambleBank:GetArgStrErr");
		return;
	}

	if( NPC_Util_GetStrFromStrWithDelim( npcarg, "REPET", buf1, sizeof( buf1)) == NULL )	{
		return;
	}

	while( getStringFromIndexWithDelim(buf1, ",", k, buf2, sizeof(buf2)) != FALSE )	{
		Re_Pet[k-1] = atoi( buf2);
		if( Re_Pet[k-1] < 0 )
			return;
		k++;
		if( (k-1) >= arraysizeof( Re_Pet) )
			break;
	}
	//test end
}

void NPC_NewNpcManTalked( int meindex , int talkerindex , char *msg , int color )
{
	char buf1[256];

	if( CHAR_getInt( talkerindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) {
    		return;
	}

	if(NPC_Util_isFaceToFace( meindex ,talkerindex , 2) == FALSE) {
		if(NPC_Util_isFaceToChara( talkerindex, meindex, 1) == FALSE) return;
	}    

	if( CHAR_getWorkInt( meindex , NPC_WORK_INDEX) >= 0 )	{
			sprintf( buf1,"%s","我正忙著呢!");
			print("\n NPC_WORK_INDEX = %d ", CHAR_getWorkInt( meindex , NPC_WORK_INDEX));
			CHAR_talkToCli( talkerindex, meindex, buf1,  CHAR_COLORYELLOW);
		return;
	}else	{
		CHAR_setWorkInt( meindex , NPC_WORK_INDEX, talkerindex);
		print("\n start : NPC_WORK_INDEX = talkerindex");
		CHAR_setWorkInt( meindex, NPC_WORK_CURRENTTIME, NowTime.tv_sec);
		NPC_NewNpcMan_selectWindow( meindex, talkerindex, NEWNPC_START, 0);
	}
}

static void NPC_NewNpcMan_selectWindow( int meindex, int toindex, int num, int flg)
{
	char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE];
	char token[256];
	char token_str[][56]={"ERROR_MSG","START_MSG","END_MSG","ERROR_ALL"};
	int buttontype = 0, windowtype = 0, windowno = 0;
	int fd = getfdFromCharaIndex( toindex);
	int petno = 718, petid =1479;
	int type_str = 0;
	windowtype = WINDOW_MESSAGETYPE_MESSAGE;
	
	if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg)) == NULL)	{
		print("GambleBank:GetArgStrErr");
		CHAR_setWorkInt( meindex , NPC_WORK_INDEX, -1);
		return ;
	}

	if( CHAR_getWorkInt( meindex , NPC_WORK_INDEX) != toindex )	{
		sprintf( token,"%s","我正忙著呢!");
		CHAR_talkToCli( toindex, meindex, token,  CHAR_COLORYELLOW);
		return;
	}
	CHAR_setWorkInt( meindex, NPC_WORK_CURRENTTIME, NowTime.tv_sec);
	print("\n switch( num=%d)", num);
	switch( num)	{
	case NEWNPC_START:
		type_str = 1;
		buttontype = WINDOW_BUTTONTYPE_OKCANCEL;
		windowno = NPC_NEWNPCMAN_START;
		break;

	case NEWNPC_MAN:
		{
			if( CHECK_YEARPET( toindex) == TRUE )	{
				type_str = 1;
				windowtype = WINDOW_MESSAGETYPE_PETSELECT;
				buttontype = WINDOW_BUTTONTYPE_CANCEL;
				windowno = NPC_NEWNPCMAN_MAN;
			}else	{
				type_str = 3;
				buttontype = WINDOW_BUTTONTYPE_OK;
				windowno = NPC_NEWNPCMAN_END;
				CHAR_setWorkInt( meindex , NPC_WORK_INDEX, -1);
			}
		}
	break;

	case NEWNPC_END:
		type_str = 0;
		if( flg <= CHAR_MAXPETHAVE && flg >= 0 )	{
			petno = flg;

			if( ( petid = NPC_NewNpcManDelPet( meindex, toindex, petno)) >= 0 )	{
				if( NPC_NewNpcManAddPet( meindex, toindex, petid) == TRUE )	{
					type_str = 2;
				}
			}
		}
		CHAR_setWorkInt( meindex , NPC_WORK_INDEX, -1);
		buttontype = WINDOW_BUTTONTYPE_OK;
		windowno = NPC_NEWNPCMAN_END;

		break;
	}

	if(NPC_Util_GetStrFromStrWithDelim( npcarg, token_str[ type_str], token,sizeof( token) ) == NULL) {
		print("token_str[%d] err !", type_str);
		CHAR_setWorkInt( meindex , NPC_WORK_INDEX, -1);
		return;
	}

	lssproto_WN_send( fd, windowtype, buttontype, windowno,
		CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX), token);
}

void NPC_NewNpcManWindowTalked( int meindex, int talkerindex, int seqno, int select, char *data)
{

	if( CHAR_getInt( talkerindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) {
    		return;
	}
	if(NPC_Util_isFaceToFace( meindex ,talkerindex , 2) == FALSE) {
		if(NPC_Util_isFaceToChara( talkerindex, meindex, 1) == FALSE) return;
	}    

	print("\n seqno=%d, select=%d", seqno, select);
	switch( seqno)	{
	case NPC_NEWNPCMAN_START:
		if( select != WINDOW_BUTTONTYPE_YES && select != WINDOW_BUTTONTYPE_OK )	{
			CHAR_setWorkInt( meindex , NPC_WORK_INDEX, -1);
			return;
		}
		if(select==WINDOW_BUTTONTYPE_CANCEL)	{
			CHAR_setWorkInt( meindex , NPC_WORK_INDEX, -1);
		}else	{
			NPC_NewNpcMan_selectWindow( meindex, talkerindex, NEWNPC_MAN, -1);
		}
	break;

	case NPC_NEWNPCMAN_MAN:
		{
			int petnum;
			petnum = atoi( data)-1;

			print("\n petnum=%d", petnum);
			if(select==WINDOW_BUTTONTYPE_CANCEL)	{
				CHAR_setWorkInt( meindex , NPC_WORK_INDEX, -1);
			}else	{
				NPC_NewNpcMan_selectWindow( meindex, talkerindex, NEWNPC_END, petnum);
			}
		}
		break;

	case NPC_NEWNPCMAN_END:
		break;
	}
}

int NPC_NewNpcManDelPet(int meindex,int talker, int petsel)
{
	int defpet;
	int fd = getfdFromCharaIndex( talker );
	char msgbuf[64], szPet[128];
	int k=0;
	int petindex=-1;

	petindex = CHAR_getCharPet( talker, petsel);
	if( !CHAR_CHECKINDEX(petindex) )
		return -1;

	for( k=0;k<arraysizeof( Re_Pet); k++)	{
		if( CHAR_getInt( petindex, CHAR_PETID) == Re_Pet[k] )
			break;
	}
	if( k == arraysizeof( Re_Pet) )	{
		return -1;
	}else	{
		print("\n FIND [%d,%d] & DEL !!", k, Re_Pet[k]);
	}

	if( CHAR_getWorkInt( CONNECT_getCharaindex( fd), CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE )
		return -1;
	defpet = CHAR_getInt( talker, CHAR_DEFAULTPET);
	if(defpet == petsel)	{
		CHAR_setInt( talker, CHAR_DEFAULTPET, -1);
		lssproto_KS_send( fd, -1, TRUE);
	}
	snprintf( msgbuf,sizeof( msgbuf), "交出%s。", CHAR_getChar( petindex, CHAR_NAME));
	
	// shan
	if(CHAR_getChar( petindex, CHAR_UNIQUECODE)!=NULL){
		strncpy(uStr, CHAR_getChar( petindex, CHAR_UNIQUECODE), sizeof( STRING32));
	}else{
		strncpy(uStr, "Pet_Unicode_null", sizeof( STRING32));
	}
	
	CHAR_talkToCli( talker, -1, msgbuf,  CHAR_COLORWHITE);
				LogPet(
					CHAR_getChar( talker, CHAR_NAME ),
					CHAR_getChar( talker, CHAR_CDKEY ),
					CHAR_getChar( petindex, CHAR_NAME),
					CHAR_getInt( petindex, CHAR_LV),
					"TenseiDel",
					CHAR_getInt( talker,CHAR_FLOOR),
					CHAR_getInt( talker,CHAR_X ),
					CHAR_getInt( talker,CHAR_Y ),
					CHAR_getChar( petindex, CHAR_UNIQUECODE)
				);

	CHAR_setCharPet( talker, petsel, -1);
	CHAR_endCharOneArray( petindex );
	snprintf( szPet, sizeof( szPet ), "K%d", petsel);
	CHAR_sendStatusString( talker, szPet );

	return Re_Pet[k];
}

BOOL NPC_NewNpcManAddPet(int meindex, int talker, int petid)
{
	int	ret;
	char msgbuf[64];
	int	enemynum;
	int	i,j;
	int petindex, petindex2;

	//檢查寵物欄是否有空位
	for( i = 0 ;i < CHAR_MAXPETHAVE ; i++) {
		petindex = CHAR_getCharPet( talker, i);
		if( petindex == -1  )
			break;
	}

    if( i == CHAR_MAXPETHAVE )      {
		snprintf( msgbuf,sizeof( msgbuf), "寵物已滿!!");
		CHAR_talkToCli( talker, -1, msgbuf,  CHAR_COLORWHITE);
		return FALSE;
	}

	enemynum = ENEMY_getEnemyNum();
	for( i = 0; i < enemynum; i ++ ) {
		//if( ENEMY_getInt( i, ENEMY_ID ) == petid )
		if( ENEMY_getInt( i, ENEMY_TEMPNO ) == petid )	{
			print("\n ADD FIND [%d,%d]", i, ENEMY_getInt( i, ENEMY_TEMPNO ));
			break;
		}
	}
	if( i == enemynum )
		return FALSE;
	ret = ENEMY_createPetFromEnemyIndex( talker, i);
	for( i = 0; i < CHAR_MAXPETHAVE; i ++ )	{
		if( CHAR_getCharPet( talker, i ) == ret )
			break;
	}

	if( i == CHAR_MAXPETHAVE )
		i = 0;

	if( CHAR_CHECKINDEX( ret ) == TRUE ){
		CHAR_setMaxExpFromLevel( ret, CHAR_getInt( ret, CHAR_LV ));
	}
	
	petindex2 = CHAR_getCharPet(talker, i);
	if( !CHAR_CHECKINDEX( petindex2) )
		return FALSE;
	snprintf( msgbuf,sizeof( msgbuf), "拿到%s。", CHAR_getChar(petindex2,CHAR_NAME));
	CHAR_talkToCli( talker, -1, msgbuf,  CHAR_COLORWHITE);
	for(j = 0; j < CHAR_MAXPETHAVE; j++){
		petindex = CHAR_getCharPet(talker, j);
		if( !CHAR_CHECKINDEX( petindex) )
			continue;
		CHAR_complianceParameter( petindex );
		snprintf( msgbuf, sizeof( msgbuf ), "K%d", j );
		CHAR_sendStatusString( talker, msgbuf );
		snprintf( msgbuf, sizeof( msgbuf ), "W%d", j );
		CHAR_sendStatusString( talker, msgbuf );
	}

	// shan
	CHAR_setChar(petindex2, CHAR_UNIQUECODE, uStr);	

	LogPet(
		CHAR_getChar( talker, CHAR_NAME ),
		CHAR_getChar( talker, CHAR_CDKEY ),
		CHAR_getChar( petindex2, CHAR_NAME),
		CHAR_getInt( petindex2, CHAR_LV),
		"TenseiGet",
		CHAR_getInt( talker,CHAR_FLOOR),
		CHAR_getInt( talker,CHAR_X ),
		CHAR_getInt( talker,CHAR_Y ),
		CHAR_getChar( petindex2, CHAR_UNIQUECODE)
	);
	return TRUE;
}

BOOL CHECK_YEARPET( int toindex)
{
			int i,k,petindex=-1;
			for( i=0;i<CHAR_MAXPETHAVE;i++)	{
				petindex = CHAR_getCharPet( toindex, i);
				if( !CHAR_CHECKINDEX(petindex) )
					continue;
				for( k=0;k<arraysizeof( Re_Pet); k++)	{
					if( CHAR_getInt( petindex, CHAR_PETID) == Re_Pet[k] )	{
						print("\n check yearpet find it");
						return TRUE;
					}
				}
			}
			return FALSE;
}

#endif
*/
#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
波多野结衣欧美| 日韩午夜电影在线观看| 国产黄色91视频| 亚洲免费观看在线视频| 亚洲欧洲精品一区二区精品久久久| 精品免费日韩av| 777欧美精品| 欧美日本在线看| 欧美日韩中文国产| 色8久久精品久久久久久蜜| 91浏览器打开| 91蜜桃网址入口| 97成人超碰视| 色综合天天综合网天天看片| 99视频有精品| 麻豆精品久久精品色综合| 裸体健美xxxx欧美裸体表演| 大白屁股一区二区视频| 精品系列免费在线观看| 理论电影国产精品| 免费不卡在线视频| 国产一区二区三区不卡在线观看| 麻豆成人久久精品二区三区红| 日韩精品色哟哟| 久久99久久精品欧美| 精品亚洲欧美一区| 国产一区二区三区电影在线观看| youjizz久久| 91在线国产福利| 欧美在线一二三| 欧美三级一区二区| 日韩午夜激情免费电影| 欧美精品一区二区久久久| 欧美激情一区二区三区全黄| 国产精品国产三级国产普通话三级| 国产午夜精品在线观看| 亚洲欧美日本在线| 亚洲电影在线免费观看| 亚洲综合色噜噜狠狠| 日产精品久久久久久久性色| 精品中文字幕一区二区小辣椒| 中文在线免费一区三区高中清不卡 | 国产91在线观看丝袜| av激情亚洲男人天堂| 日本韩国精品在线| 26uuu精品一区二区| 一区视频在线播放| 日韩精品成人一区二区三区| 国产综合色在线| av激情成人网| 欧美r级电影在线观看| 国产欧美日韩视频一区二区| 亚洲人成电影网站色mp4| 日韩国产精品久久久| 国产老妇另类xxxxx| 成人综合在线观看| 欧美一级一区二区| 久久99精品久久久久久国产越南| 麻豆传媒一区二区三区| 成人精品视频一区二区三区 | 91美女片黄在线| 欧美伊人久久大香线蕉综合69| 91精品国产综合久久久久久漫画| 久久久精品日韩欧美| 亚洲精品成人在线| 久久99精品国产麻豆不卡| 一本色道久久综合亚洲aⅴ蜜桃| 欧美精品日韩一区| 久久久噜噜噜久久中文字幕色伊伊| 一区二区三区精品| 狠狠狠色丁香婷婷综合激情| 欧美亚洲综合一区| 国产欧美综合色| 午夜av电影一区| 色综合一区二区三区| 日韩美女一区二区三区四区| 中文字幕在线不卡一区| 国产乱码精品一品二品| 在线观看中文字幕不卡| 国产精品天天摸av网| 美腿丝袜一区二区三区| 色综合天天天天做夜夜夜夜做| 26uuuu精品一区二区| 石原莉奈在线亚洲二区| 92国产精品观看| 国产欧美一区二区三区鸳鸯浴| 婷婷激情综合网| 99re这里都是精品| 国产亚洲综合性久久久影院| 午夜视频在线观看一区二区| 99精品视频在线免费观看| 久久综合久久99| 久久99精品国产麻豆不卡| 欧美视频在线不卡| 国产日产欧产精品推荐色| 激情综合五月婷婷| 欧美日本高清视频在线观看| 亚洲国产aⅴ成人精品无吗| 91在线观看一区二区| 中文字幕av免费专区久久| 国产黄色成人av| 亚洲精品在线观| 美女视频黄a大片欧美| 欧美吻胸吃奶大尺度电影 | 中文字幕乱码一区二区免费| 免费不卡在线观看| 欧美高清一级片在线| 亚洲成a人片在线观看中文| 色欲综合视频天天天| 国产精品看片你懂得| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 国产精品18久久久久久久久| 91精品久久久久久久91蜜桃| 亚洲综合在线第一页| 欧美日韩另类一区| 亚洲综合久久久久| 在线免费观看一区| 日韩影视精彩在线| 91在线视频18| 色噜噜狠狠色综合欧洲selulu| 色综合亚洲欧洲| 欧美亚洲禁片免费| 色综合久久久久久久久久久| 国产精品456| 日韩精品乱码免费| 亚洲女人****多毛耸耸8| 欧美一级欧美三级在线观看| 丝袜美腿一区二区三区| 国产精品三级在线观看| 欧美丝袜自拍制服另类| 欧美日韩成人在线| 欧美视频一区二区在线观看| 国产精品888| 白白色 亚洲乱淫| 97精品视频在线观看自产线路二| 国产成都精品91一区二区三| 亚洲一二三级电影| 国产精品第13页| 日本一区二区视频在线观看| 精品国产不卡一区二区三区| 欧美一区二区日韩| 成人av高清在线| 久久av老司机精品网站导航| 久久国产精品无码网站| 亚洲成人在线免费| 亚洲成人在线免费| 亚洲自拍偷拍图区| 天天免费综合色| 日产国产欧美视频一区精品 | 国产日产欧美一区二区三区| 欧美一区二区美女| 51精品国自产在线| 欧美日韩免费一区二区三区视频| 国产精品77777| 蜜臀av国产精品久久久久| 一区二区三区精品在线观看| 日韩国产欧美三级| 成人一区二区三区| 成人精品免费网站| 色先锋aa成人| 精品国产成人在线影院| 国产精品久久久一本精品| 五月激情六月综合| 美女视频黄频大全不卡视频在线播放| 日本免费在线视频不卡一不卡二| 99精品欧美一区二区蜜桃免费| 欧美日韩和欧美的一区二区| 亚洲精品一区二区三区99| 日本午夜精品一区二区三区电影| 成人免费视频一区二区| 91丨九色丨国产丨porny| 精品国产一区二区三区不卡 | 国产一区二区三区在线看麻豆| 久久午夜免费电影| 色婷婷久久99综合精品jk白丝| 国产乱子轮精品视频| 亚洲影视资源网| 正在播放亚洲一区| 91精品福利视频| 国产精品原创巨作av| 亚洲资源在线观看| 欧美国产1区2区| 91精品国产麻豆国产自产在线| 99久久精品免费看| 激情av综合网| 亚洲国产你懂的| 亚洲黄色片在线观看| 久久久精品国产99久久精品芒果| 欧美视频一区二区| 国产成+人+日韩+欧美+亚洲| 久久精品一区蜜桃臀影院| 91精品欧美久久久久久动漫| 欧美自拍偷拍午夜视频| 99视频一区二区三区| 成人av在线影院| 成人午夜电影久久影院| 国产一区二区女| 国产精品亚洲午夜一区二区三区 | 国产三级精品三级在线专区| 日韩一区二区三区在线视频|