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

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

?? npc_freepetskillshop.c

?? 最新主流石器時代源代碼,包含諸多目前流行功能代碼.
?? C
?? 第 1 頁 / 共 2 頁
字號:

	for( i=0; i<arraysizeof( Code_skill); i++)	{
		if( Code_skill[i].PetId == petID )	{
			break;
		}
	}

	//找不到這只寵物
	if( i == arraysizeof( Code_skill) )	{
		{
			char buff1[256];
			sprintf( buff1, "%s不能學特殊技能!!", CHAR_getChar( petindex, CHAR_NAME));
			CHAR_talkToCli( toindex, -1, buff1, CHAR_COLORYELLOW);
		}
		return FALSE;

	}

	if( strstr( Code_skill[i].Code, SCode ) != NULL )	{
		if( NPC_SkillShopPetCheck( toindex, petindex, skillID) == FALSE )	{
			char buff1[256];
			sprintf( buff1, "%s現在還不能學%s!", CHAR_getChar( petindex, CHAR_NAME),
									PETSKILL_getChar( skillindex, PETSKILL_NAME) );
			CHAR_talkToCli( toindex, -1, buff1, CHAR_COLORYELLOW);
			return  FALSE;
		}
		return TRUE;
	}else	{
			char buff1[256];
			sprintf( buff1, "%s不能學%s!!", CHAR_getChar( petindex, CHAR_NAME),
						PETSKILL_getChar( skillindex, PETSKILL_NAME) );
			CHAR_talkToCli( toindex, -1, buff1, CHAR_COLORYELLOW);
	}
	return FALSE;
}

BOOL NPC_FreePetSkillMakeStr(int meindex,int toindex,int select)
{
	char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];
	char msg[256];
	double rate=1.0;
	int i=0;
	char token[NPC_UTIL_GETARGSTR_LINEMAX];
	int fd = getfdFromCharaIndex( toindex);

	if(select==0){
		sprintf(token,"0|0");
		lssproto_WN_send( fd, WINDOW_MESSAGETYPE_PETSKILLSHOP, 
			WINDOW_BUTTONTYPE_NONE, 
			CHAR_WINDOWTYPE_WINDOWPETSKILLSHOP,
			CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),
			token);
	}

	if(NPC_Util_GetArgStr( meindex, argstr, sizeof(argstr))==NULL){
		print("GetArgStrErr");
		return FALSE;
	}
	if( NPC_Util_GetStrFromStrWithDelim( argstr, "main_msg", msg, sizeof( msg)) == NULL){
		print("\n CAN'T FIND main_msg !!");
		return FALSE;
	}

	sprintf(token,"1|%s|%s", CHAR_getChar(meindex,CHAR_NAME), msg);
	if( NPC_Util_GetStrFromStrWithDelim( argstr, "skill_rate", msg, sizeof( msg)) != NULL){
		rate=atof(msg);
	}
	if( NPC_Util_GetStrFromStrWithDelim( argstr, "pet_skill", msg, sizeof( msg)) != NULL)	{
		int skillarray;
		int skillID;
		int cost;
		char token2[265];
		char buf[64];
		i=1;
	    while( getStringFromIndexWithDelim(msg,",",i,buf,sizeof(buf)) !=FALSE )	{
			i++;
			skillID=atoi(buf);
			skillarray = PETSKILL_getPetskillArray( skillID);

			if( PETSKILL_CHECKINDEX( skillarray) == FALSE )
				continue;
			if( PETSKILL_getInt( skillarray, PETSKILL_ILLEGAL) == 1) continue;
			cost = PETSKILL_getInt(skillarray,PETSKILL_COST);
			cost = (int)cost*rate;
			sprintf(token2,"|%s|%d|%s",	PETSKILL_getChar(skillarray, PETSKILL_NAME),
				cost, PETSKILL_getChar(skillarray, PETSKILL_COMMENT) );
			strcat(token,token2);
			}
		}
		CHAR_setWorkInt( toindex, CHAR_WORKSHOPRELEVANT, 3);
		lssproto_WN_send( fd, WINDOW_MESSAGETYPE_PETSKILLSHOP, 
				WINDOW_BUTTONTYPE_NONE, 
				SELECTSKILL_TEACH,
				CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),
				token);

	return TRUE;
}

BOOL NPC_SkillShopItemCheck(int meindex,int talker,int itemNo, int cou)
{
	int i;
	int itemindex=-1;
	int num=0;
	for( i=CHAR_STARTITEMARRAY;i<CHAR_MAXITEMHAVE;i++ ){
		itemindex = CHAR_getItemIndex( talker , i );
		if( ITEM_CHECKINDEX( itemindex) )	{
			if( itemNo == ITEM_getInt(itemindex ,ITEM_ID ) )	{
				num++;
			}
		}
		if( num >= cou )
			return TRUE;
	}
	return FALSE;

}

BOOL NPC_SkillShopDelItems(int meindex,int talker, char *buf)
{
	char buf1[256];
	char item[256], cout[256];
	int i=1;
	BOOL Evflg=TRUE;
	while( getStringFromIndexWithDelim( buf, ",", i,buf1, sizeof( buf1)) != FALSE )	{
		i++;
		if( strstr( buf1, "*") != NULL )	{
			getStringFromIndexWithDelim( buf1, "*", 1, item, sizeof( item));
			getStringFromIndexWithDelim( buf1, "*", 2, cout, sizeof( cout));
		}else	{
			strcpy( item, buf1);
			strcpy( cout, "1");
		}
		if( NPC_SkillShopItemCheck( meindex, talker, atoi( item), atoi( cout)) == FALSE )	{
			Evflg=FALSE;
			break;
		}
		if( Evflg == FALSE )
			break;
	}
	if( Evflg == FALSE )
		return FALSE;
	if( NPC_ActionDelItem( talker, buf) == TRUE )	{
		return TRUE;
	}
	return FALSE;
}

BOOL NPC_SkillShopPetCheck( int toindex, int petindex, int skillID )
{
	char Free[256];
	int i;
	char data[256], msg[256];
	int skillindex =  PETSKILL_getPetskillArray( skillID );

	memset( Free, 0, sizeof( Free));
	sprintf( Free, "%s", PETSKILL_getChar( skillindex, PETSKILL_FREE));

	if( NPC_Util_GetStrFromStrWithDelim( Free, "FREE", data, sizeof( data)) != NULL ) {
		BOOL EvFlg = TRUE;
		i=1;
		while( getStringFromIndexWithDelim( data, "|", i, msg, sizeof( msg)) != FALSE )	{
			i++;
			if( strstr( msg, "LV") != NULL )	{
				char LvStr[256];
				int LV=0;
				if( strstr( msg, ">" ) != NULL )	{
					if( getStringFromIndexWithDelim( msg, ">", 2, LvStr, sizeof( LvStr)) != FALSE )	{
						LV = atoi( LvStr);
						if( CHAR_getInt( petindex, CHAR_LV) <= LV )
							EvFlg = FALSE;
					}
				}else if( strstr( msg, "<")) {
					if( getStringFromIndexWithDelim( msg, "<", 2, LvStr, sizeof( LvStr)) != FALSE )	{
						LV = atoi( LvStr);
						if( CHAR_getInt( petindex, CHAR_LV) >= LV )
							EvFlg = FALSE;
					}
				}
			}else if( strstr( msg, "SK") != NULL )	{
				int j=0, PskId=-1, ID;
				char strSK[256];
				int petskillindex;

				getStringFromIndexWithDelim( msg, "=", 2, strSK, sizeof( strSK) );
				ID = atoi( strSK);
				for( j=0; j < CHAR_MAXPETSKILLHAVE; j++)	{
					PskId = CHAR_getPetSkill( petindex, j);
					petskillindex =  PETSKILL_getPetskillArray( PskId );
					if( !PETSKILL_CHECKINDEX( petskillindex))
						continue;
					if( ID == PskId )	{
						if( strstr( msg, "!=") !=NULL )
							EvFlg = FALSE;
						break;
					}
				}
				if( j == CHAR_MAXPETSKILLHAVE )	{
					EvFlg = FALSE;
					break;
				}
			}
			if( EvFlg == FALSE )
				break;
		}
		if( EvFlg == FALSE )	{
			return FALSE;
		}else	{
			return TRUE;
		}
	}
	return TRUE;
}

BOOL NPC_SkillShopWarp( int meindex, int talkindex)
{
	char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE];
	char data[1024], buf1[256], buf2[256];
	int i=1, j=1;
	BOOL EvFlg=FALSE;
	struct	{
		int FLOOR;
		int X;
		int Y;
	}Points[MAXNPCPOINT];

	if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg))==NULL){
		print("GetArgStrErr");
		return FALSE;
	}
	
	for( i=0;i<MAXNPCPOINT;i++)	{
		Points[i].FLOOR = -1;
		Points[i].X = -1;
		Points[i].Y = -1;
	}
	//WARP
	//NPC_POINT
	if( NPC_Util_GetStrFromStrWithDelim( npcarg, "NPC_POINT", data, sizeof( data)) != NULL ) {
		int where=0;
		i=1;
		j=0;
		while( getStringFromIndexWithDelim( data, ";", i, buf1, sizeof( buf1)) != FALSE )	{
			i++;
			getStringFromIndexWithDelim( buf1, ",", 1, buf2, sizeof( buf2));
			Points[j].FLOOR = atoi( buf2);
			getStringFromIndexWithDelim( buf1, ",", 2, buf2, sizeof( buf2));
			Points[j].X = atoi( buf2);
			getStringFromIndexWithDelim( buf1, ",", 3, buf2, sizeof( buf2));
			Points[j].Y = atoi( buf2);
			j++;
			if( j >= MAXNPCPOINT )
				break;
		}
		where = RAND( 0, i-1);
		CHAR_warpToSpecificPoint( meindex, Points[where].FLOOR,	Points[where].X, Points[where].Y);
		EvFlg = TRUE;
	}

	if( NPC_Util_GetStrFromStrWithDelim( npcarg, "WARP", data, sizeof( data)) != NULL ) {
		int P_Floor,P_X,P_Y;
		getStringFromIndexWithDelim( data, ",", 1, buf2, sizeof( buf2));
		P_Floor = atoi( buf2);
		getStringFromIndexWithDelim( data, ",", 2, buf2, sizeof( buf2));
		P_X = atoi( buf2);
		getStringFromIndexWithDelim( data, ",", 3, buf2, sizeof( buf2));
		P_Y = atoi( buf2);
		CHAR_warpToSpecificPoint( talkindex, P_Floor, P_X, P_Y);
		EvFlg = TRUE;
	}

	return EvFlg;
}

#endif





?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
三级成人在线视频| 中文字幕不卡在线播放| 国产一区二区视频在线| 中文字幕日韩欧美一区二区三区| 欧美精品精品一区| 国产成人免费网站| 亚洲丰满少妇videoshd| 国产区在线观看成人精品| 日韩三级视频在线看| 成人一区在线观看| 亚洲一区二区三区中文字幕| 精品人在线二区三区| 99久久久无码国产精品| 精品无人码麻豆乱码1区2区 | 在线观看视频91| 麻豆极品一区二区三区| 亚洲精品免费播放| 欧美国产日韩一二三区| 精品国产乱码久久久久久蜜臀| 欧美在线你懂得| av电影天堂一区二区在线观看| 国产精品夜夜爽| 久久aⅴ国产欧美74aaa| 日韩激情在线观看| 亚洲中国最大av网站| 日韩毛片精品高清免费| 国产丝袜在线精品| 欧美一区二区三区在线观看| 欧洲国内综合视频| 色综合久久综合中文综合网| 国产精品乡下勾搭老头1| 久久国产精品无码网站| 日本色综合中文字幕| 视频在线观看91| 日韩在线播放一区二区| 香蕉久久夜色精品国产使用方法| 亚洲精品视频在线看| 亚洲三级在线免费观看| 国产精品私房写真福利视频| 久久精品日产第一区二区三区高清版| 26uuu欧美日本| 欧美大片日本大片免费观看| 日韩欧美亚洲另类制服综合在线| 欧美一区二区精品在线| 日韩三级高清在线| 日韩欧美aaaaaa| 精品欧美一区二区久久| 精品久久久久一区| 精品成人在线观看| 国产亚洲精品精华液| 国产日韩视频一区二区三区| 国产欧美一区二区精品性| 国产午夜精品一区二区三区四区| 国产欧美日韩卡一| 国产成人综合视频| 蜜桃传媒麻豆第一区在线观看| 午夜精品123| 美女视频一区在线观看| 国产一区二区三区在线看麻豆| 国模大尺度一区二区三区| 国产精品一区二区在线观看网站| 成人美女视频在线观看| 欧美高清一级片在线| 在线成人av网站| 久久人人爽人人爽| 日韩理论片一区二区| 亚洲国产欧美一区二区三区丁香婷| 日日骚欧美日韩| 国产一区二区三区四区五区入口| 国产高清久久久久| 色香蕉久久蜜桃| 欧美三区在线观看| 亚洲精品一区在线观看| 国产精品久久久久久久久免费樱桃 | 99久久精品久久久久久清纯| 日本电影亚洲天堂一区| 日韩一二三四区| 国产精品五月天| 亚洲国产精品天堂| 久久成人av少妇免费| 美女一区二区久久| 经典三级视频一区| 国产白丝网站精品污在线入口| 色综合一区二区三区| 欧美一区二区三区白人| 欧美极品aⅴ影院| 婷婷六月综合网| 成人午夜视频网站| 欧美精品在线一区二区三区| 欧美激情一区二区三区四区| 石原莉奈一区二区三区在线观看| 国产精品正在播放| 欧美日韩精品三区| 国产精品免费观看视频| 日本不卡在线视频| 色婷婷久久久久swag精品 | 美女尤物国产一区| 99国产精品国产精品毛片| 欧美成va人片在线观看| 洋洋成人永久网站入口| 丁香婷婷综合网| 国产欧美精品国产国产专区| 亚洲一区二区欧美| 懂色av中文一区二区三区| 91精品国产91久久久久久一区二区 | 精品一区在线看| 欧美三级电影在线看| 椎名由奈av一区二区三区| 精品在线观看视频| 欧美日韩精品二区第二页| 中文字幕一区不卡| 国产成人高清在线| 日韩免费高清电影| 天堂午夜影视日韩欧美一区二区| 91尤物视频在线观看| 中文字幕第一区综合| 激情av综合网| 欧美大片国产精品| 日韩av中文字幕一区二区| 欧美性高清videossexo| 亚洲激情网站免费观看| 菠萝蜜视频在线观看一区| 国产视频一区二区在线| 极品少妇一区二区| 欧美xfplay| 久久精品国内一区二区三区| 欧美精品在线一区二区| 午夜亚洲福利老司机| 欧美日精品一区视频| 亚洲一区在线免费观看| 91福利在线观看| 一区二区国产视频| 在线国产电影不卡| 亚洲国产欧美在线| 欧美日本韩国一区二区三区视频 | 18成人在线观看| aa级大片欧美| 日韩一区在线播放| 色婷婷综合久久久久中文一区二区| 亚洲男人的天堂一区二区| 色哟哟在线观看一区二区三区| 一区二区三区四区激情| 欧美亚洲日本国产| 午夜精品久久久久久久99水蜜桃| 69p69国产精品| 激情六月婷婷综合| 中文字幕久久午夜不卡| 99久久精品免费精品国产| 一区二区三区av电影| 欧美日韩精品一区二区天天拍小说 | 狠狠狠色丁香婷婷综合久久五月| 精品国产91九色蝌蚪| 床上的激情91.| 日韩理论片中文av| 欧美日韩你懂得| 久久国产人妖系列| 国产亚洲成aⅴ人片在线观看| 不卡av在线免费观看| 亚洲无线码一区二区三区| 91精品国产综合久久精品| 国产一区二区成人久久免费影院| 日本一区二区三区高清不卡 | 国产亚洲视频系列| 99精品偷自拍| 日韩影视精彩在线| 久久亚洲精品国产精品紫薇| 99久久免费精品高清特色大片| 亚洲国产综合在线| 精品成人一区二区| 成人的网站免费观看| 午夜av一区二区三区| 精品国产伦一区二区三区观看体验 | 韩国三级中文字幕hd久久精品| 国产精品国产馆在线真实露脸| 精品视频一区三区九区| 国产毛片精品视频| 亚洲激情欧美激情| 精品99一区二区三区| 日本道免费精品一区二区三区| 久久国产麻豆精品| 亚洲美女精品一区| 精品国产三级a在线观看| 9色porny自拍视频一区二区| 日本成人中文字幕| 亚洲欧美一区二区三区极速播放 | 午夜激情综合网| 久久久精品日韩欧美| 欧美日韩国产成人在线91| 国产成+人+日韩+欧美+亚洲| 婷婷一区二区三区| 日韩毛片在线免费观看| 精品国产91亚洲一区二区三区婷婷| 91九色02白丝porn| 国产美女主播视频一区| 亚洲成人免费观看| 国产精品女主播av| 精品国产1区二区| 3atv一区二区三区| 91看片淫黄大片一级| 欧美日韩中文字幕精品|