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

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

?? npc_gambleroulette.c

?? 最新主流石器時(shí)代源代碼,包含諸多目前流行功能代碼.
?? C
字號(hào):
#include "version.h"
#include <string.h>
#include "char.h"
#include "object.h"
#include "char_base.h"
#include "npcutil.h"
#include "readmap.h"
#include "lssproto_serv.h"
#include "handletime.h"

#ifdef _GAMBLE_ROULETTE 
#include "npc_gambleroulette.h"

#define _OTHER_ROUND	//另一種跑法

static void Gamble_Roulette_walk( int meindex);
static int Gamble_RouletteSetPoint( int meindex );
static void Find_Master( int meindex);
int RunRand( int meindex, int flg );
BOOL SetEndPoint( int meindex );
void Gamble_Roulette_Reset( int meindex, int flg);
void ResetDataStart( int meindex);
BOOL ReadPointData( int meindex );
enum {
	NPC_WORK_ROUTETOX = CHAR_NPCWORKINT1,
	NPC_WORK_ROUTETOY = CHAR_NPCWORKINT2,
	NPC_WORK_ROUTEPOINT = CHAR_NPCWORKINT3,
	NPC_WORK_ROUNDTRIP = CHAR_NPCWORKINT4,
	NPC_WORK_MODE = CHAR_NPCWORKINT5,
	NPC_WORK_CURRENTROUTE = CHAR_NPCWORKINT6, 
	NPC_WORK_ROUTEMAX = CHAR_NPCWORKINT7,
	NPC_WORK_WAITTIME = CHAR_NPCWORKINT8,
	NPC_WORK_CURRENTTIME = CHAR_NPCWORKINT9,
	NPC_WORK_SEFLG = CHAR_NPCWORKINT10,	//記錄主持人index
};

typedef struct tagRoulettePoint {
	int x;
	int y;
	int flg;
}RoulettePoint;
RoulettePoint PointData[]={
	{-1,-1,-1},{-1,-1,-1},{-1,-1,-1},{-1,-1,-1},	
};

RoulettePoint TestPointData[4*8];

#define		ROULETTE_STANDBY	1500
#define		ROULETTE_LOOPTIME	1000

#define		ROULETTE_RUNTIME1	50

BOOL NPC_Gamble_RouletteInit( int meindex )
{
	char	argstr[NPC_UTIL_GETARGSTR_BUFSIZE];

	NPC_Util_GetArgStr( meindex, argstr, sizeof( argstr));

	CHAR_setInt( meindex , CHAR_WHICHTYPE , CHAR_GAMBLEROULETTE );
	//CHAR_setWorkInt( meindex, NPC_WORK_ROUTEMAX, routenum);
	//小豬要走幾格才停
	CHAR_setWorkInt( meindex, NPC_WORK_ROUTEMAX, 0);
	CHAR_setWorkInt( meindex, NPC_WORK_SEFLG, -1);
	// NPC_WORK_MODE 小豬的狀態(tài) 0:等待 1:走(順)
	CHAR_setWorkInt( meindex, NPC_WORK_MODE, 0);
	//第幾個(gè)地圖點(diǎn)
	CHAR_setWorkInt( meindex, NPC_WORK_ROUTEPOINT, 0);
	//順向 1  逆向  0
	CHAR_setWorkInt( meindex, NPC_WORK_ROUNDTRIP, 1);
	//第幾個(gè)路線
	CHAR_setWorkInt( meindex, NPC_WORK_CURRENTROUTE, 0);
	//設(shè)定LOOP TIMER
	CHAR_setInt( meindex, CHAR_LOOPINTERVAL, ROULETTE_STANDBY);
	//用來(lái)記錄時(shí)間點(diǎn)
	CHAR_setWorkInt( meindex, NPC_WORK_CURRENTTIME, NowTime.tv_sec);
	CHAR_sendCToArroundCharacter( CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX));
	if( ReadPointData( meindex) == FALSE )
		return FALSE;
    return TRUE;
}

void NPC_Gamble_RouletteTalked( int meindex , int talkerindex , char *szMes , int color )
{
	return;
}

void NPC_Gamble_RouletteWindowTalked( int meindex, int talkerindex, int seqno, int select, char *data)
{
	return;
}

void NPC_Gamble_RouletteLoop( int meindex)
{
	int	objmeindex = -1, index = 0, act = 0;
	objmeindex = CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX);
	switch( CHAR_getWorkInt( meindex, NPC_WORK_MODE )) {
	  case 0:	//停止時(shí)等待	為等待主持人下命令
		  
		  //抓主持人index 檢查主持人 是否喊開(kāi)始
		  if( CHAR_getWorkInt( meindex, NPC_WORK_SEFLG) < 0 )	{
			CHAR_setWorkInt( meindex, NPC_WORK_MODE,5);
		  }else	{
			index = CHAR_getWorkInt( meindex, NPC_WORK_SEFLG);
			//CHAR_NPCWORKINT7 0 null 1 準(zhǔn)備 2 跑 3 停
			if( CHAR_getWorkInt( index, CHAR_NPCWORKINT7 ) == 2 )	{
				CHAR_sendCToArroundCharacter( objmeindex);
				CHAR_setWorkInt( meindex, NPC_WORK_MODE,1);
				CHAR_setInt( meindex, CHAR_LOOPINTERVAL, ROULETTE_RUNTIME1);
				//決定小豬走幾格
				CHAR_setWorkInt( meindex, NPC_WORK_ROUTEMAX, RunRand( meindex, 0 ) );
				ResetDataStart( meindex);//決定進(jìn)點(diǎn)
				if( CHAR_getInt( meindex, CHAR_X) == 14 &&
					CHAR_getInt( meindex, CHAR_Y) == 8 )	{
				}else	{
					print("\n\n####################\n 小豬不在原點(diǎn)!![%d,%d]",
						CHAR_getInt( meindex, CHAR_X),
						CHAR_getInt( meindex, CHAR_Y)
					);

				}
			}else if( CHAR_getWorkInt( index, CHAR_NPCWORKINT7 ) == 1 ||
				( CHAR_getWorkInt( index, CHAR_NPCWORKINT9) < 30 &&
				CHAR_getWorkInt( index, CHAR_NPCWORKINT9) > 24 )
				)	{	//準(zhǔn)備
				if( CHAR_getInt( meindex, CHAR_X) == 14 && CHAR_getInt( meindex, CHAR_Y) == 8 )	{
				}else	{
					CHAR_warpToSpecificPoint( meindex, CHAR_getInt( meindex, CHAR_FLOOR),
					14, 8);
					CHAR_setInt( meindex, CHAR_X, 14);
					CHAR_setInt( meindex, CHAR_Y, 8);
					CHAR_sendCToArroundCharacter( objmeindex);
				}
			}
		  }
		break;
	  case 1:
	  		Gamble_Roulette_walk( meindex);
		break;
	  case 2:
		break;
	  case 3:
		  //點(diǎn)歸零
		  CHAR_setWorkInt( meindex, NPC_WORK_MODE, 0);
		  //動(dòng)作 
		  act = CHAR_ACTATTACK;
		  CHAR_sendWatchEvent( objmeindex, act, NULL,0, FALSE);
		  CHAR_setWorkInt( meindex, CHAR_WORKACTION, act);
		  CHAR_setWorkInt( meindex, NPC_WORK_ROUTEMAX, 0);
		  CHAR_setInt( meindex, CHAR_LOOPINTERVAL, ROULETTE_STANDBY);

		  //送人物資料給視覺(jué)  圍內(nèi)的人
		  CHAR_sendCToArroundCharacter( objmeindex);
		  if( SetEndPoint( meindex ) == FALSE )	{
			print("\n not Set EndPoint !!");
		  }
#ifdef _OTHER_ROUND
#else
		  ReadPointData( meindex);	//load round data
#endif
		  //還原主持人
		  index = CHAR_getWorkInt( meindex, NPC_WORK_SEFLG);
		  CHAR_setWorkInt( index, CHAR_NPCWORKINT7, 3);
		break;
	  case 5:	//尋找主持人
			Find_Master( meindex);
			if( CHAR_getWorkInt( meindex, NPC_WORK_SEFLG) < 0 )	{
				CHAR_setInt( meindex, CHAR_LOOPINTERVAL, 0);
				CHAR_setWorkInt( meindex, NPC_WORK_MODE,-1);
			}else	{
				CHAR_setWorkInt( meindex, NPC_WORK_MODE, 0);			
			}
		break;
	  default:
		  //重置 錯(cuò)誤處理
		  Gamble_Roulette_Reset( meindex, 0);
	    break;
	}
}

static void Gamble_Roulette_walk( int meindex)
{	
	POINT	start, end;
	int dir;
	int ret;
	int i,run_num = 0;
	int	objmeindex = -1;
	objmeindex = CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX);

	start.x = CHAR_getInt( meindex, CHAR_X);
	start.y = CHAR_getInt( meindex, CHAR_Y);
	end.x = CHAR_getWorkInt( meindex, NPC_WORK_ROUTETOX);
	end.y = CHAR_getWorkInt( meindex, NPC_WORK_ROUTETOY);
	// loop timer分為兩部分 1. 處理下一點(diǎn) 2. 走到下一點(diǎn)

	if( start.x == end.x && start.y == end.y ) {
#ifdef _OTHER_ROUND
#else
		int add = 1;
		//如果為 NPC_WORK_ROUNDTRIP != 1  逆向
		if( CHAR_getWorkInt( meindex, NPC_WORK_ROUNDTRIP ) != 1 ) {
			add *= -1;
		}
		CHAR_setWorkInt( meindex, NPC_WORK_ROUTEPOINT, 
						CHAR_getWorkInt( meindex, NPC_WORK_ROUTEPOINT) +add);
#endif
		if( Gamble_RouletteSetPoint( meindex ) == FALSE ) {
#ifdef _OTHER_ROUND
			CHAR_setWorkInt( meindex, NPC_WORK_MODE,3);
			CHAR_setWorkInt( meindex, NPC_WORK_CURRENTTIME, NowTime.tv_sec);
			return;
#else
			if( CHAR_getWorkInt( meindex, NPC_WORK_ROUNDTRIP ) != 1 ) {
				CHAR_setWorkInt( meindex, NPC_WORK_ROUTEPOINT, arraysizeof( PointData) );	//逆向
			}else	{
				CHAR_setWorkInt( meindex, NPC_WORK_ROUTEPOINT, -1);	//順向
			}
			return;
#endif
		}else	{
			return;
		}
	}
//--------------------------------------------------------------------
		run_num = CHAR_getWorkInt( meindex, NPC_WORK_ROUTEMAX);
		if( run_num > 0 ){
			CHAR_setWorkInt( meindex, NPC_WORK_ROUTEMAX, (run_num - 1) );
		}else	{
#ifdef _OTHER_ROUND
			CHAR_setWorkInt( meindex, NPC_WORK_MODE,3);
			CHAR_setWorkInt( meindex, NPC_WORK_CURRENTTIME, NowTime.tv_sec);
			return;
#else
			int npc_ai=0;
			int masterindex;
			masterindex = CHAR_getWorkInt( meindex, NPC_WORK_SEFLG);
			npc_ai = CHAR_getWorkInt( masterindex, CHAR_NPCWORKINT3);
			if( npc_ai > 10 )	{
				if( start.x == 7 && start.y == 5 )	{	// 7,5
					CHAR_setWorkInt( masterindex, CHAR_NPCWORKINT3, 0);
				}else	{
					CHAR_setWorkInt( meindex, NPC_WORK_ROUTEMAX, 1);
					return;
				}
			}
			CHAR_setWorkInt( meindex, NPC_WORK_MODE,3);
			CHAR_setWorkInt( meindex, NPC_WORK_CURRENTTIME, NowTime.tv_sec);
			return;
#endif
		}
//--------------------------------------------------------------------
	dir = NPC_Util_getDirFromTwoPoint( &start,&end );
	for( i = 0; i < 100; i ++ ) {	
		if( dir < 0 ) {
			dir = RAND( 0,7);
		}
		dir = NPC_Util_SuberiWalk( meindex, dir);
		if( dir >= 0 && dir <= 7) break;
	}
	if( dir >= 0 && dir <= 7 ) {
		ret = CHAR_walk( meindex, dir, 0);
	}
}

static void Find_Master( int meindex)
{
	int floor, x=14, y=3;
	OBJECT  object;
	floor = CHAR_getInt( meindex , CHAR_FLOOR);
	for( object = MAP_getTopObj( floor, x, y) ; object ; object = NEXT_OBJECT(object ) ){
		int findex;
		int objindex = GET_OBJINDEX(object);
		if( !CHECKOBJECTUSE( objindex)) continue;
		findex = OBJECT_getIndex( objindex);
		if( !CHAR_CHECKINDEX( findex)) continue;
		if( CHAR_getInt( findex , CHAR_WHICHTYPE ) != CHAR_GAMBLEMASTER ) continue;
		if( CHAR_getWorkInt( findex, CHAR_NPCWORKINT8) != 10001 ) continue;
		CHAR_setWorkInt( meindex, NPC_WORK_SEFLG, findex) ;
		return;
	}
}

int RunRand( int meindex, int flg )
{
#define RAND(x,y)   ((x-1)+1+ (int)( (double)(y-(x-1))*rand()/(RAND_MAX+1.0)) )
	int run_num1=0;
	int i;
	
	run_num1 = RAND( 90, 150);
	for( i=0; i<6; i++ )	{
		run_num1 += RAND( 0, 20);
	}
	return run_num1;
}

BOOL SetEndPoint( int meindex )
{
	int x,y;
	int master;
	int endpoint;

	master = CHAR_getWorkInt( meindex, NPC_WORK_SEFLG);
	if( !CHAR_CHECKINDEX( master) )
		return FALSE;

	if( CHAR_getWorkInt( master, CHAR_NPCWORKINT7) != 2 )	{
		print("\n error( master,CHAR_NPCWORKINT7) != 2 ");
		return FALSE;
	}

	x = CHAR_getInt( meindex, CHAR_X);
	y = CHAR_getInt( meindex, CHAR_Y);
	endpoint = (x<<16)+(y<<0);
	CHAR_setWorkInt( master, CHAR_NPCWORKINT10, endpoint);
	return TRUE;
}

void Gamble_Roulette_Reset( int meindex, int flg)
{
	//錯(cuò)誤處理
	int index;
	CHAR_setWorkInt( meindex, NPC_WORK_ROUTEMAX, 0);
	CHAR_setWorkInt( meindex, NPC_WORK_MODE, 0);
	CHAR_setInt( meindex, CHAR_LOOPINTERVAL, ROULETTE_STANDBY);

	index = CHAR_getWorkInt( meindex, NPC_WORK_SEFLG);
	if( !CHAR_CHECKINDEX( index) )	{
		print("\n Gamble_Roulette error: no master !!");
		return;
	}
	CHAR_setWorkInt( index, CHAR_NPCWORKINT7, 3);
	CHAR_setWorkInt( index, CHAR_NPCWORKINT10, 0);
}

void ResetDataStart( int meindex )
{
#define RAND(x,y)   ((x-1)+1+ (int)( (double)(y-(x-1))*rand()/(RAND_MAX+1.0)) )
	int Start=1;
	struct tagWalkStartPoint{
		int x;
		int y;
		int rip;
	}WalkStart[]={
		{7,5,1}, {7,11,0}, {22,11,1}, {22,5,0},
	};
	Start = RAND( 0, 3);

	CHAR_setWorkInt( meindex, NPC_WORK_ROUNDTRIP, WalkStart[Start].rip );
	CHAR_setWorkInt( meindex, NPC_WORK_ROUTEPOINT, Start);
	CHAR_setWorkInt( meindex, NPC_WORK_ROUTETOX, WalkStart[Start].x );
	CHAR_setWorkInt( meindex, NPC_WORK_ROUTETOY, WalkStart[Start].y );
	
	{
		int i=0,k;
		int RIP = CHAR_getWorkInt( meindex, NPC_WORK_ROUNDTRIP);
		k = CHAR_getWorkInt( meindex, NPC_WORK_ROUTEPOINT);
		if( RIP )	{
			while( i < (arraysizeof( TestPointData)))	{
				k++;
				if( k > 3 ) k = 0;
				TestPointData[i].x = PointData[k].x;
				TestPointData[i].y = PointData[k].y;
				i++;
			}
		}else	{
			while( i < (arraysizeof( TestPointData)))	{
				k--;
				if( k < 0 ) k = 3;
				TestPointData[i].x = PointData[k].x;
				TestPointData[i].y = PointData[k].y;
				i++;
			}
		}
	}
#ifdef _OTHER_ROUND
	CHAR_setWorkInt( meindex, NPC_WORK_ROUTEPOINT, 0);
#endif
}

BOOL ReadPointData( int meindex )
{

	char	buf1[256], buf2[32], buf3[16];
	char	argstr[NPC_UTIL_GETARGSTR_BUFSIZE];
	int k=1,i=0;
	NPC_Util_GetArgStr( meindex, argstr, sizeof( argstr));

	if( NPC_Util_GetStrFromStrWithDelim( argstr, "roulette",buf1, sizeof(buf1)) == NULL ) {
		print("\n roulette error: not found !!");
		return FALSE;
	}
	k=1;
	while( getStringFromIndexWithDelim( buf1, ";", k, buf2, sizeof(buf2) ) != FALSE )	{
		k++;
		if( strstr( buf2,",") == NULL )
			continue;

		if( getStringFromIndexWithDelim( buf2, ",", 1, buf3, sizeof(buf3)) == FALSE)	{
			return FALSE;
		}
		PointData[i].x = atoi( buf3);
		if( getStringFromIndexWithDelim( buf2, ",", 2, buf3, sizeof(buf3)) == FALSE)	{
			return FALSE;
		}
		PointData[i].y = atoi( buf3);
		if( i > 9 )	{
			break;
		}
		i++;
	}
#ifdef _OTHER_ROUND
#else
	Gamble_RouletteSetPoint( meindex);
#endif
	return TRUE;//arraysizeof( PointData)
}

static int Gamble_RouletteSetPoint( int meindex )
{
#ifdef _OTHER_ROUND
	int i;
	i = CHAR_getWorkInt( meindex, NPC_WORK_ROUTEPOINT);
	CHAR_setWorkInt( meindex, NPC_WORK_ROUTETOX, TestPointData[i].x );
	CHAR_setWorkInt( meindex, NPC_WORK_ROUTETOY, TestPointData[i].y );
	i++;
	CHAR_setWorkInt( meindex, NPC_WORK_ROUTEPOINT, i);
	if( i >= arraysizeof( TestPointData) )	{
		return FALSE;
	}
#else
	int i;
	i = CHAR_getWorkInt( meindex, NPC_WORK_ROUTEPOINT);
	if( i<0 || i>arraysizeof( PointData) -1)	{
		return FALSE;
	}
	CHAR_setWorkInt( meindex, NPC_WORK_ROUTETOX, PointData[i].x );
	CHAR_setWorkInt( meindex, NPC_WORK_ROUTETOY, PointData[i].y );
#endif
	{//檢查路線
		struct tagWalkStartPoint{
			int x;
			int y;
		}WalkStart[]={
			{22,5}, {7,5}, {7,11}, {22,11}, {22,5}, {7,5}
		};
		int ch_x,ch_y;
		int next_x,next_y;
		int h;
		ch_x = CHAR_getInt( meindex, CHAR_X);
		ch_y = CHAR_getInt( meindex, CHAR_Y);
		for( h=1; h<5; h++)	{
			if( ch_x == WalkStart[h].x &&
				ch_y == WalkStart[h].y)	{
				next_x = CHAR_getWorkInt( meindex, NPC_WORK_ROUTETOX);
				next_y = CHAR_getWorkInt( meindex, NPC_WORK_ROUTETOY);
				if( next_x == WalkStart[h+1].x &&
					next_y == WalkStart[h+1].y)	{

				}else if( next_x == WalkStart[h-1].x &&
							next_y == WalkStart[h-1].y)	{
				}else	{
					print("\n ##############################");
					print("\n  ERR : [%d,%d] -> [%d,%d]",ch_x,ch_y,next_x,next_y);
				}
				break;
			}
		}
	}
	return TRUE;
}

#endif



?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲美腿欧美偷拍| 日本成人在线不卡视频| 欧美一区二区日韩| 成人动漫av在线| 日本免费在线视频不卡一不卡二| 亚洲欧美在线观看| 久久新电视剧免费观看| 69成人精品免费视频| 色婷婷久久久亚洲一区二区三区| 激情综合色播五月| 午夜精品一区二区三区电影天堂| 中文字幕第一区| 久久久久成人黄色影片| 欧美一区二区三区四区五区| 色综合久久中文综合久久牛| 成人av网站大全| 国产精品77777竹菊影视小说| 毛片av中文字幕一区二区| 午夜视频久久久久久| 亚洲男女一区二区三区| 18成人在线视频| 日本一区二区三区电影| 久久综合久久综合久久综合| 欧美电影免费观看高清完整版| 欧美日本在线观看| 欧美日本精品一区二区三区| 欧美亚洲一区二区三区四区| 91在线丨porny丨国产| 99re热视频精品| 成人一区二区三区视频| 国产丶欧美丶日本不卡视频| 国产一区二区h| 国产久卡久卡久卡久卡视频精品| 国内外成人在线视频| 精品一区二区久久久| 久久精品国产精品亚洲精品 | 日韩高清不卡一区二区三区| 亚洲福利一二三区| 亚洲1区2区3区视频| 亚洲gay无套男同| 三级久久三级久久| 轻轻草成人在线| 久久成人免费网| 国产福利电影一区二区三区| 成人免费看黄yyy456| www.亚洲免费av| 色八戒一区二区三区| 欧美色手机在线观看| 欧美精品成人一区二区三区四区| 777色狠狠一区二区三区| 91精品国产综合久久久久| 欧美一区二区三区在线观看| 三级欧美韩日大片在线看| 日韩电影免费在线看| 九九精品一区二区| 国产不卡免费视频| 91色porny在线视频| 欧美性一级生活| 制服丝袜成人动漫| 久久青草国产手机看片福利盒子| 中文一区一区三区高中清不卡| 亚洲欧美一区二区视频| 亚洲韩国精品一区| 精品在线观看视频| 99久久国产综合精品麻豆 | 久久亚洲影视婷婷| 国产精品视频九色porn| 亚洲午夜精品17c| 麻豆成人久久精品二区三区红| 粉嫩欧美一区二区三区高清影视| 99久久99久久久精品齐齐| 欧美美女网站色| 国产三级欧美三级日产三级99 | 蜜臀av性久久久久蜜臀aⅴ| 国产精品1024久久| 欧美三区在线观看| 久久色在线观看| 亚洲一区电影777| 精品亚洲国产成人av制服丝袜| 成人h动漫精品| 欧美一区二区视频在线观看| 国产精品美女久久久久久久久久久| 亚洲午夜一区二区| 国产综合色视频| 在线观看亚洲一区| 久久精品水蜜桃av综合天堂| 亚洲乱码精品一二三四区日韩在线| 日韩电影在线一区二区| av电影在线观看不卡| 日韩手机在线导航| 亚洲乱码日产精品bd| 国产一区二区三区在线观看免费视频 | 日韩欧美一级二级| 怡红院av一区二区三区| 国产真实乱偷精品视频免| 欧美撒尿777hd撒尿| 国产精品乱码妇女bbbb| 伦理电影国产精品| 欧美日韩一区二区在线观看视频| 国产日产欧美一区二区视频| 亚洲国产成人av| 91天堂素人约啪| 久久综合九色综合97_久久久| 亚洲成人免费电影| 91小宝寻花一区二区三区| 久久久精品免费网站| 日韩va欧美va亚洲va久久| 91免费版在线| 欧美国产日韩亚洲一区| 国内精品国产三级国产a久久| 欧美日韩精品欧美日韩精品| 亚洲精品乱码久久久久久久久| 国产高清一区日本| 欧美精品一区二区三区高清aⅴ| 亚洲一区二区在线播放相泽| 99精品久久99久久久久| 国产精品女主播av| 国产馆精品极品| 久久婷婷久久一区二区三区| 蜜桃av噜噜一区二区三区小说| 欧美日韩一区二区三区视频 | 丁香一区二区三区| 2020国产精品久久精品美国| 蜜臀久久99精品久久久久久9| 欧美高清视频一二三区| 同产精品九九九| 欧美亚洲国产怡红院影院| 亚洲欧美日韩中文播放| 91在线视频播放地址| 国产精品久久久爽爽爽麻豆色哟哟| 国产东北露脸精品视频| 国产欧美日韩不卡| 不卡的电影网站| **网站欧美大片在线观看| 成人激情免费视频| 中文字幕日韩一区| 色天天综合色天天久久| 亚洲国产精品人人做人人爽| 欧美偷拍一区二区| 亚洲国产毛片aaaaa无费看| 欧美日本免费一区二区三区| 日韩av电影免费观看高清完整版在线观看| 欧美日韩一区三区四区| 美女视频网站黄色亚洲| 精品国产免费久久 | 懂色av一区二区夜夜嗨| 亚洲欧洲成人av每日更新| 色久优优欧美色久优优| 亚洲一区视频在线| 91精品久久久久久久91蜜桃| 精品一区二区三区在线播放视频| 久久综合久久鬼色| 99久久精品国产精品久久| 亚洲综合免费观看高清完整版在线| 欧美日韩一区二区在线观看视频| 青青草一区二区三区| 国产视频一区二区三区在线观看| av一区二区三区在线| 亚洲一区在线看| 日韩区在线观看| 国产黄人亚洲片| 一区二区三区日本| 欧美一级片免费看| 成人综合激情网| 性做久久久久久免费观看| 精品日产卡一卡二卡麻豆| 成人亚洲精品久久久久软件| 亚洲一二三区在线观看| 欧美va日韩va| 色综合久久久久久久久| 美女被吸乳得到大胸91| 中文字幕亚洲区| 3atv在线一区二区三区| 国产成人激情av| 午夜久久久久久久久| 国产日韩精品一区二区三区在线| 欧美亚州韩日在线看免费版国语版| 精品午夜久久福利影院| 亚洲少妇中出一区| 精品久久久久久久久久久久久久久久久 | 亚洲色图一区二区| 日韩女同互慰一区二区| 91色porny| 国产精品影音先锋| 亚洲精品菠萝久久久久久久| 日韩丝袜情趣美女图片| 99久久er热在这里只有精品15| 日韩欧美国产不卡| 99精品国产99久久久久久白柏| 亚洲制服丝袜av| 欧美一区二区啪啪| 成人av资源网站| 亚洲国产综合色| 久久久亚洲精华液精华液精华液| 欧美一区二区在线视频| 欧美猛男gaygay网站| 欧美亚洲动漫制服丝袜| 欧美在线短视频| 日本高清不卡aⅴ免费网站| 91亚洲永久精品|