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

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

?? tai.cpp

?? 赤壁之戰(游戲原碼)
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*	      [ AI.C ]
 *    AI.C FOR INSTINCE MODULE .
 *    Chbi Fight interface module.
 *    Programmed By Y.Tian. No#Eye. WayAhead. Co. 1997.
 *    Data 2/21/1997.
 */

#include "stdafx.h"
#include <time.h>
#include <windows.h>
#include <stdlib.h>
#include <time.h>
#include <assert.h>
#include "tbnbase.h"
#include "tgeneral.h"
#include "cbprompt.h"
#include "CBMini.h"	// MINI_SetBlink()

WORD BloodPos=0;

// defined in CBRunOT.cpp
// 受傷音效
// nX, nY	:	位置
// nFile	:	單元文件號
extern void RUN_SOUND_Wounded( int nX, int nY, int nFile );

// defined in CBRunOT.cpp
// 用于音效,每隔一定時間該開關打開,當屏幕以外的我方單元(部隊/建筑)
// 受到攻擊時,由畫外音提醒游戲者We are under attack!
// nX, nY	:	被攻擊單元位置坐標
// nFile	:	被攻擊單元文件號
extern void RUN_SOUND_UnderAttack( int nX, int nY, int nFile );


#define UNITNUMBER  16

//#define TY1_JIMOU 
#ifdef TNDEBUG

#include <i86.h>
#include <stdio.h>
#include <conio.h>
#include <graph.h>
#include <stdlib.h>
#include <string.h>

#endif

#include "tai.h"

#include "cbeyes.h"
#include "cbmap.h"
#include "cbctrl.h"
#include "Assert.h"

//--- Define Struct.
S_INSTINCE_BASE SWorker;
S_INSTINCE_BASE User;
S_INSTINCE_BASE SMan;
S_INSTINCE_BASE SFighter;

GOP Gop;

#ifdef TNDEBUG

UNIT_STRUCT Te;
CTRL_TASK TASK;
WORD OBJECTX;
WORD OBJECTY;
WORD OBJECTID;
WORD ATTACKID;

#endif

WORD Trx;
WORD Try;

//--- Define Function For Main Module.

extern  GOP TY_BnAi(struct UNIT_STRUCT Puser);


WORD ScanAttackPostion(struct UNIT_STRUCT * Puser);
WORD ScanLevelPostion(struct UNIT_STRUCT  * Puser);
void  GetUnitStruct(S_INSTINCE_BASE * p);
short GetHelpObject(WORD id);	     //who attack my fried and my building?
void  ReceiveData();

//mid mean : master ID.
//oid mean : object ID.
//GOP   ReceiveObey(short mid,short oid);
GOP   ReceiveObey(struct UNIT_STRUCT * Puser);
//obey mean : task.
//oid mean : object ID.
GOP   Damage();
GOP   AutoMode(WORD myid);
GOP   Help(WORD myid);

//--- Define Function For Worker Module.

GOP  WorkerAI();
GOP WorkerDamage();

//--- Define Function For Man Module.

GOP ManAI();
GOP ManDamage();

//--- Define Function For Fighter Module.

extern short GetObjectID();
extern GOP FighterAI(short ID);
extern GOP FighterAttack(WORD OID);  //ID mean:obeject's id.

DWORD time1 = 0; 
DWORD Time = 0;
int time_num=0;
int de=0;
int de1=0;
// 初始化函數
void InstancePosClear()
{
	time1 = 0;
	Time = 0;
	time_num=0;
	de=0;
	de1=0;
}

/*
 *  worker AI start.  *
 */

GOP WorkerAI()
{  GOP ret;

//which pos mean arrive ?
//what clean damage ?
   if (SWorker.damage == 1)
   {   ret=WorkerDamage();
       return (ret);
   }
   else
   {  SWorker.pos=0;
	  ret.done=0;
      ret.obey=SWorker.Bobey;
      SWorker.answer=SWorker.Bobey;
      return (ret);
   }
   ret.done=0;
   ret.obey=QUXIAO;
   ret.pos.x=CBNULL;
   ret.pos.y=CBNULL;
   ret.pos.z=CBNULL;
   ret.ID=CBNULL;
   return (ret);
}
GOP  WorkerDamage()
{  //int p;
   GOP  ret;
   if (SWorker.pos == 1)
   {   ret.done=0;
	   return (ret);
   }
   SWorker.answer= YIDONG;
   SWorker.Bobey=SWorker.answer;
   ret.done=1;
   ret.obey=SWorker.answer;
//?
   ret.ID=CBNULL;

   //ret.pos.x=SWorker.X+(WORD)getrandom( 1,9 );
   //ret.pos.y=SWorker.Y+(WORD)getrandom( 1,9 );
   ret.pos.x=SWorker.X+3;
   ret.pos.y=SWorker.Y+3;
   if (ret.pos.x > MAP_Lib.szNum.cx)
	 ret.pos.x=ret.pos.x-(ret.pos.x-MAP_Lib.szNum.cx)-6;

   if (ret.pos.y > MAP_Lib.szNum.cy)
	 ret.pos.y=ret.pos.y-(ret.pos.y-MAP_Lib.szNum.cy)-6;
   SWorker.pos=1;
   return (ret);
}

/*
 *  worker AI end.    *
 */

/*
 *  man AI start.     *
 */

GOP ManAI()
{  GOP ret;
   WORD delay=0;

   if (SMan.damage == 1)
   {   ret=ManDamage();
       return (ret);
   }
   else
   {
	   if (SMan.Bobey == QUXIAO)
	   {
		   SMan.answer= YIDONG;
		   SMan.Bobey=SMan.answer;
		   ret.done=1;
		   ret.obey=SMan.answer;
		   ret.ID=CBNULL;

		   srand( (unsigned)time( NULL ) );

		   //delay=getrandom( 1,10 );
		   //delay=getrandom( 1,10 );
		   delay=10;
		   

		   if (delay <7
			   ||time1 <3)
		   {
			   time1++;
			  SMan.pos=0;
			  ret.done=0;
			  ret.obey=SMan.Bobey;
			  SMan.answer=SMan.Bobey;
			  return (ret);
		   }

		   time1=0;
		   delay=getrandom( 1,10 );
		   if (delay >5)
		   {
			   if (delay <7)
			   {
				   ret.pos.x=SMan.X+(WORD)getrandom( 0,2 );
			       ret.pos.y=SMan.Y+(WORD)getrandom( 0,3 );
			   }
			   else
			   {
				   ret.pos.x=SMan.X-(WORD)getrandom( 0,4 );
			       ret.pos.y=SMan.Y+(WORD)getrandom( 0,2 );
			   }
			   
		   }
		   else
		   {
			   if (delay >2)
			   {
				   ret.pos.x=SMan.X-(WORD)getrandom( 0,3 );
				   ret.pos.y=SMan.Y-(WORD)getrandom( 0,2 );
			   }
			   else
			   {
				   ret.pos.x=SMan.X+(WORD)getrandom( 0,2 );
			       ret.pos.y=SMan.Y-(WORD)getrandom( 0,5 );
			   }
			   
		   }
		   if (ret.pos.x < 10)
			   ret.pos.x=10;

		   if (ret.pos.y < 10)
			   ret.pos.y=10;

		   if (ret.pos.x > MAP_Lib.szNum.cx)
			 ret.pos.x=ret.pos.x-(ret.pos.x-MAP_Lib.szNum.cx)-10;

		   if (ret.pos.y > MAP_Lib.szNum.cy)
			 ret.pos.y=ret.pos.y-(ret.pos.y-MAP_Lib.szNum.cy)-10;
		//?  
		   SMan.pos=1;
		   return (ret);
	   }
	   else
	   {
	      SMan.pos=0;
		  ret.done=0;
		  ret.obey=SMan.Bobey;
		  SMan.answer=SMan.Bobey;
		  return (ret);
	   }
   }
   ret.done=0;
   ret.obey=QUXIAO;
   ret.ID=CBNULL;
   ret.pos.x=CBNULL;
   ret.pos.y=CBNULL;
   ret.pos.z=CBNULL;
   return (ret);
}

GOP ManDamage()
{  GOP ret;
   
   if (SMan.pos == 1)
   {  ret.done=0;
      return (ret);
   }
   SMan.answer= YIDONG;
   SMan.Bobey=SMan.answer;
   ret.done=1;
   ret.obey=SMan.answer;
//?
   ret.ID=CBNULL;
   ret.pos.x=SMan.X+(WORD)getrandom( 0,6 );
   ret.pos.y=SMan.Y+(WORD)getrandom( 0,6 );

   if (ret.pos.x > MAP_Lib.szNum.cx)
	 ret.pos.x=ret.pos.x-(ret.pos.x-MAP_Lib.szNum.cx)-10;

   if (ret.pos.y > MAP_Lib.szNum.cy)
	 ret.pos.y=ret.pos.y-(ret.pos.y-MAP_Lib.szNum.cy)-10;
//?  
   SMan.pos=1;
   return (ret);
}

/*
 *  man AI end.       *
 */

/*
 *  finhter AI start. *
 */

short GetObjectID()
{  return (SFighter.target);
}

GOP FighterAI(short ID)
{  GOP ret;
   ret.done=0;
   ret.obey=SFighter.Bobey;
   SFighter.answer=SFighter.Bobey;
   ret.ID=CBNULL;
   ret.pos.x=CBNULL;
   ret.pos.y=CBNULL;
   ret.pos.z=CBNULL;
   return (ret);
}

GOP FighterAttack(WORD OID)
{  GOP ret;

   SFighter.answer=GONGJI;
   ret.done=1;
   ret.obey=SFighter.answer;
   ret.ID=OID;
   ret.pos.x=CBNULL;
   ret.pos.y=CBNULL;
   ret.pos.z=CBNULL;
   return (ret);
}

/*
 *  finhter AI end.   *
 */

void ReceiveData(struct UNIT_STRUCT * P_user )
{  //** get p->nID's struct turn to my struct.
	UNIT_STRUCT * Pobject;
	UNIT_STRUCT * Pobject1;

     User.alive=P_user->nLife;
     User.attrib=P_user->nType;
     User.Bobey=P_user->Status.nTaskID;
     User.target=P_user->nIDAttackMe;
	 User.pos=P_user->nPos;	 
	 User.finish=0;
     //User.pos=P_user->Status.pos;

//?
     if (P_user->nIDAttackMe != MAP_DATA_NONE)
		//&& Time >19)
	 {
		 Time=0;
		 User.damage=0;
 		 Pobject=MAP_GetUnit(P_user->nIDAttackMe);
		 Pobject1=MAP_GetUnit(P_user->nID);

		 if (Pobject->Draw.nPlayer == Pobject1->Draw.nPlayer)
			User.damage=0;
		 else
			User.damage=1;

	 }
     else
	 {
		 User.damage=0;
		 Time++;

	 }
	 User.X=P_user->Draw.nX;
     User.Y=P_user->Draw.nY;
     User.Z=P_user->Status.nParam1;
}


//turn any pos to my sturct.

void GetUnitStruct(S_INSTINCE_BASE * p)
{   p->alive=User.alive;
    p->Bobey=User.Bobey;
    p->answer=User.answer;
    p->damage=User.damage;
    p->finish=User.finish;
    p->target=User.target;
    p->X=User.X;
    p->Y=User.Y;
    p->Z=User.Z;
	p->pos=User.pos;

}

GOP Damage()
{  GOP ret;
   WORD id;
   GetUnitStruct(&SFighter);

   if (User.damage == 1)
   {   
       id=GetObjectID();
       ret=FighterAttack(id);
       return (ret);
   }

   if (SFighter.Bobey  != QUXIAO
	   &&SFighter.Bobey  != DUSE
	   &&SFighter.Bobey  != FANGYU 
	   &&SFighter.Bobey  != MAIFU
	   &&SFighter.Bobey  != GONGJI )// Nov.25.1997
   {
	   ret.done=0;
	   ret.obey=XIEZAI;
	   return (ret);
   }

   ret.done=0;
   ret.obey= QUXIAO;
   ret.ID=CBNULL;
   ret.pos.x=CBNULL;	
   ret.pos.y=CBNULL;
   ret.pos.z=CBNULL;
   return (ret);
}

GOP Help(WORD myid)
{  GOP ret;
   WORD id;
   GetUnitStruct(&SFighter);
   id=GetHelpObject(myid);
   if (id == CBNULL)
   {  ret.done=0;
      ret.obey=QUXIAO;
      ret.ID=CBNULL;
      ret.pos.x=CBNULL;
      ret.pos.y=CBNULL;
      ret.pos.z=CBNULL;
      return (ret);
   }
   else
   {  ret=FighterAttack(id);
      return (ret);
   }
   ret.done=0;
   ret.obey=QUXIAO;
   ret.ID=CBNULL;
   ret.pos.x=CBNULL;
   ret.pos.y=CBNULL;
   ret.pos.z=CBNULL;
   return (ret);
}

short GetHelpObject(WORD id)
{  //WORD * p;
   WORD  p[UNITNUMBER];
   int	 pnum[1];
   UNIT_STRUCT * Pobject;
   UNIT_STRUCT * Pobject1;

   WORD Rid;
   short i;
   short objectnum=0;

   pnum[0]=(int) UNITNUMBER ;
   EYE_GetUnitInSight( 1,id,p,pnum);
   objectnum=pnum[0];
   for (i=0;i<objectnum;i++)
   {  //Rid= * p;
	  Rid=  p[i];
      Pobject=MAP_GetUnit(Rid);
//?
      if (Pobject->nIDAttackMe != MAP_DATA_NONE)
      {  switch(Pobject->nType)
	     {  case  MAP_UNIT_TYPE_BUILDING:
					Rid=Pobject->nIDAttackMe;
					return (Rid);
					break;
	     }	
      }
   }

   objectnum=0;
   Pobject=MAP_GetUnit(id);
   if (Pobject->Soldier.nGenID == MAP_DATA_NONE)
   {  Rid=CBNULL;
      return (Rid);
   }
   Pobject1=MAP_GetUnit(Pobject->Soldier.nGenID);
   for (i=0;i<GENERAL_TROOP_MAX;i++)
   { if (Pobject1->Gen.wTroop[i] != MAP_DATA_NONE)
     {	objectnum++;
     }
   }
   pnum[0]=objectnum;

   EYE_GetUnitInGroup( 1,id,p,pnum);
   objectnum=pnum[0];
   for (i=0;i<objectnum;i++)
   {  //Rid=* p;
	  Rid= p[i];
      Pobject=MAP_GetUnit(Rid);
      if (Pobject->nIDAttackMe != MAP_DATA_NONE)
      {  switch(Pobject->nType)
	     {  case  MAP_UNIT_TYPE_SOLDIER:
			case  MAP_UNIT_TYPE_GEN:

					Rid=Pobject->nIDAttackMe;
					return (Rid);
					break;
	    }
      }
   }
   Rid=CBNULL;
   return (Rid);
}

short GetAttackObject(WORD id,WORD pos)
{  WORD Rid;
   short i;
   int	Tbacknum;

   WORD  Penemy[UNITNUMBER];
   int   Unum[UNITNUMBER];
   UNIT_STRUCT * Pobject;
   UNIT_STRUCT * Pobject1;
   WORD Level[UNITNUMBER][2];

   
   for (i=0;i<UNITNUMBER;i++)
   {
	   Level[i][1]=CBNULL;
   }
   
	   
   Unum[0]=UNITNUMBER;
   EYE_GetUnitInSight(2,id,Penemy,Unum);
   Tbacknum =  Unum[0];
   for (i=0;i<Tbacknum;i++)
   {  //Rid = * Penemy;
	  Rid =  Penemy[i];
      Pobject=MAP_GetUnit(Rid);       
	  if (Pobject->nType == MAP_UNIT_TYPE_SOLDIER
		  ||Pobject->nType == MAP_UNIT_TYPE_SHIP
		  ||Pobject->nType == MAP_UNIT_TYPE_BUILDING
		  ||Pobject->nType == MAP_UNIT_TYPE_GEN
		  ||Pobject->nType == MAP_UNIT_TYPE_WGEN
		  ||Pobject->nType == MAP_UNIT_TYPE_SGEN
		  ||Pobject->nType == MAP_UNIT_TYPE_SHIPYARD
		  ||Pobject->nType == MAP_UNIT_TYPE_WORKER
		  ||Pobject->nType == MAP_UNIT_TYPE_FLAG)
		  
      {  
		 Pobject1=MAP_GetUnit(id);       
		 if (GAME.Players[Pobject->Draw.nPlayer].nType == PLAYER_TYPE_COMPUTER
			 &&GAME.Players[Pobject1->Draw.nPlayer].nType == PLAYER_TYPE_COMPUTER)
		 {
			 break;
		 }
		 else
		 {
			 Assert(Pobject->Draw.nPlayer != Pobject1->Draw.nPlayer);
			 Level[i][0]=0;
			 Level[i][1]=Rid;
		 }
         
      }
      else
      {  if (Pobject->nType != MAP_UNIT_TYPE_RESOURCE)
	     {
		    Pobject1=MAP_GetUnit(id);       
		    if (GAME.Players[Pobject->Draw.nPlayer].nType == PLAYER_TYPE_COMPUTER 
		      &&GAME.Players[Pobject1->Draw.nPlayer].nType == PLAYER_TYPE_COMPUTER )
			{
				break;
			}
			else
			{
				Level[i][0]=1;
				Level[i][1]=Rid;
			}
	     }
      }
   }
   for (i=0;i<Tbacknum;i++)
   {  if (Level[i][0] == 0 
        &&Level[i][1]  != 0)
      {  //free (Penemy);

	     Pobject=MAP_GetUnit(Level[i][0]);       
		 Pobject1=MAP_GetUnit(id);       
		 if (GAME.Players[Pobject->Draw.nPlayer].nType == PLAYER_TYPE_COMPUTER 
		    &&GAME.Players[Pobject1->Draw.nPlayer].nType == PLAYER_TYPE_COMPUTER )
		 {
			 return (CBNULL);
		 }
	     return (Level[i][1]);
      }
      else
     	 return (CBNULL);

   }
   if (Tbacknum != 0 )
   {   //free (Penemy);
	   Pobject1=MAP_GetUnit(Level[0][1]);
       Pobject1=MAP_GetUnit(id);       
	   if (GAME.Players[Pobject->Draw.nPlayer].nType == PLAYER_TYPE_COMPUTER 
		&&GAME.Players[Pobject1->Draw.nPlayer].nType == PLAYER_TYPE_COMPUTER )
	   {
		 return (CBNULL);
	   }
	   return (Level[0][1]);
   }
	   
   return (CBNULL);
}

GOP StopMode(WORD myid,WORD id)
{
	UNIT_STRUCT * Pobject;
	GOP	ret;
	WORD is;

	if (id == CBNULL)
	{
	  ret.done=0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品视频在线免费观看| 日韩欧美一级二级| 麻豆91精品视频| 中文字幕中文字幕一区| 91精品午夜视频| 一本大道久久a久久精品综合| 欧美日韩在线电影| 国产乱子伦一区二区三区国色天香 | 国产欧美日韩综合| 欧美亚洲一区二区在线| 国产在线播放一区三区四| 一区二区不卡在线播放| 国产亚洲综合色| 欧美一区二区三区四区高清 | 日日噜噜夜夜狠狠视频欧美人| 欧美最新大片在线看| 国产精品一区二区久久精品爱涩| 国产色综合久久| 日韩视频123| 欧美福利电影网| 欧美日韩免费一区二区三区视频| 亚洲国产欧美日韩另类综合| 国产精品久久网站| 国产午夜亚洲精品理论片色戒| 国产高清在线观看免费不卡| 青青草伊人久久| 亚洲一区在线电影| 亚洲欧美日韩中文播放| 国产精品久久久久久久久免费桃花| 在线观看日韩精品| 91在线国产观看| 99热精品一区二区| 成人99免费视频| 风流少妇一区二区| 国产精品99久久久久久久女警| 亚洲欧美一区二区三区久本道91| 欧美日韩免费视频| 色综合一区二区| 99精品热视频| 不卡av电影在线播放| 成人精品国产免费网站| 成人性生交大片免费看在线播放| 午夜在线电影亚洲一区| 日韩成人av影视| 天天亚洲美女在线视频| 性做久久久久久久免费看| 日韩精品一卡二卡三卡四卡无卡| 欧美激情自拍偷拍| 国产精品久久久久久久岛一牛影视 | 亚洲国产一二三| 一区二区理论电影在线观看| 亚洲精选在线视频| 亚洲国产三级在线| 青青草伊人久久| 国产一区激情在线| 成人av集中营| 在线中文字幕不卡| 欧美三片在线视频观看| 日韩一级片网站| 久久精品人人爽人人爽| 亚洲欧美在线高清| 污片在线观看一区二区| 久久91精品国产91久久小草 | 亚洲免费在线视频一区 二区| 精品久久一区二区| 国产精品色婷婷久久58| 成人免费在线观看入口| 亚洲综合在线视频| 日韩电影免费在线看| 国产精品自拍av| 欧美亚洲一区二区三区四区| 日韩欧美另类在线| 亚洲欧洲日韩一区二区三区| 天使萌一区二区三区免费观看| 亚洲精品中文字幕乱码三区| 奇米色一区二区三区四区| 国产999精品久久久久久| 欧美体内she精高潮| 26uuu久久综合| 亚洲午夜私人影院| 国产原创一区二区| 在线亚洲一区观看| 久久亚洲综合色| 一区二区三区在线播| 久久国产精品72免费观看| 成人av在线观| 欧美人与性动xxxx| 国产精品国产三级国产普通话蜜臀 | 欧美天堂一区二区三区| 久久日韩精品一区二区五区| 一区二区三区在线免费观看| 精品中文字幕一区二区小辣椒| 日日夜夜免费精品| 成人午夜激情视频| 欧美日韩国产在线观看| 国产精品污污网站在线观看| 日本成人在线电影网| 91国偷自产一区二区三区观看| 欧美午夜不卡在线观看免费| 国产精品婷婷午夜在线观看| 午夜精品一区二区三区电影天堂 | 亚洲乱码国产乱码精品精可以看 | 日韩激情一区二区| 丁香六月久久综合狠狠色| 欧美一级在线免费| 一级中文字幕一区二区| 成人精品免费网站| 久久久久国产精品麻豆| 日韩成人精品在线观看| 91国偷自产一区二区使用方法| 欧美日韩精品系列| 亚洲视频精选在线| 国产露脸91国语对白| 在线电影院国产精品| 一区二区三区四区精品在线视频| 五月婷婷久久丁香| 日本韩国一区二区三区视频| 中文在线一区二区| 国产剧情一区二区| 久久久一区二区三区| 精品一区免费av| 9191成人精品久久| 亚洲午夜激情网站| 在线观看亚洲专区| 一区二区三区在线视频免费 | 91精品在线免费| 亚洲午夜av在线| 日本电影亚洲天堂一区| 亚洲男人电影天堂| 91免费国产在线观看| 亚洲美女区一区| 欧美在线观看一区二区| 亚洲成人av资源| 欧美精品精品一区| 日韩中文欧美在线| 欧美一级理论片| 国产主播一区二区| 久久久久久久久久久久久夜| 国产呦萝稀缺另类资源| 国产欧美日产一区| 成人免费视频caoporn| 国产精品沙发午睡系列990531| 五月天国产精品| 日韩欧美一区二区不卡| 国产一区二三区| 欧美激情一区二区三区全黄 | 日本免费在线视频不卡一不卡二| 丁香天五香天堂综合| 国产精品欧美经典| 日本道色综合久久| 午夜精品在线视频一区| 欧美一级欧美一级在线播放| 裸体在线国模精品偷拍| 国产女人aaa级久久久级| 99精品桃花视频在线观看| 亚洲乱码国产乱码精品精可以看 | 欧美伦理电影网| 天堂成人国产精品一区| 精品国产一区二区三区不卡 | 欧美一区二区三区爱爱| 激情综合一区二区三区| 中文字幕不卡在线| 一本到不卡免费一区二区| 亚洲成人精品影院| 2020国产精品久久精品美国| 成人中文字幕在线| 亚洲国产毛片aaaaa无费看 | 日本亚洲电影天堂| 久久亚洲精精品中文字幕早川悠里 | 国精产品一区一区三区mba视频| 欧美性一二三区| 蜜臀av亚洲一区中文字幕| 国产日韩一级二级三级| 91免费视频观看| 黄色精品一二区| 亚洲美女屁股眼交| 精品国产乱码久久| 91美女片黄在线观看91美女| 老鸭窝一区二区久久精品| 一区在线观看视频| 日韩欧美久久久| 色噜噜狠狠成人网p站| 国内精品伊人久久久久影院对白| 精品国产乱码久久久久久久| 99国产精品久久| 狠狠久久亚洲欧美| 亚洲色图丝袜美腿| 欧美sm极限捆绑bd| 欧美性猛交xxxxxx富婆| 成人高清在线视频| 日本中文字幕不卡| 亚洲男人天堂av| 久久精品亚洲精品国产欧美| 欧美午夜电影网| 成人91在线观看| 国产一区二区三区视频在线播放| 久久精品人人做人人爽97| 91精品国产综合久久香蕉麻豆| 亚洲一级二级三级| 中文字幕国产一区二区|