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

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

?? npc_fmchallenge.c

?? 最新主流石器時(shí)代源代碼,包含諸多目前流行功能代碼.
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
#include "version.h"
#include <time.h>
#include "char.h"
#include "object.h"
#include "lssproto_serv.h"
#include "npcutil.h"
#include "handletime.h"
#include "npc_fmchallenge.h"
#include "family.h"

// 全部的家族 pk 賽程
enum {
	NPC_WORK_ID = CHAR_NPCWORKINT1,		// 登記員 ID, 從 0 開(kāi)始
};

enum {
	CHAR_WORK_PAGE = CHAR_WORKSHOPRELEVANT,		// 換頁(yè)用
	CHAR_WORK_DUELTIME = CHAR_WORKSHOPRELEVANTSEC,	// 所選擇的 pk 時(shí)間
};

#define SCHEDULEFILEDIR		"./Schedule/"

void NPC_LoadPKSchedule(int meindex);	// Load schedule from disk
void NPC_SavePKSchedule(int meindex);	// save schedule to disk
// 產(chǎn)生排程表的 data
void NPC_LIST_gendata(int meindex, int talkerindex, int page, char *buf, int size);
// 產(chǎn)生選擇家族的 data
void NPC_SELECT_gendata(int meindex, int page, char *buf, int size);
// 產(chǎn)生排程詳細(xì)的 data
void NPC_DETAIL_gendata(int meindex, char *buf, int size, int dueltime);

BOOL NPC_SchedulemanInit( int meindex )
{
  char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];
  int meid;
  int interval;

  CHAR_setInt( meindex, CHAR_WHICHTYPE, CHAR_TYPEFMSCHEDULEMAN );
  CHAR_setWorkInt ( meindex, NPC_WORK_PREVIOUSCHECKTIME, -1);

  // 參數(shù)
  NPC_Util_GetArgStr(meindex, argstr, sizeof(argstr));
  meid = NPC_Util_GetNumFromStrWithDelim(argstr, "id" );
  if ((meid<0) || (meid>=MAX_SCHEDULEMAN)) {
    print("SCHEDULEMAN init error: invalid ID(%d)\n",meid);
    meid=0;
  }
  CHAR_setWorkInt(meindex, NPC_WORK_ID, meid);

  interval = NPC_Util_GetNumFromStrWithDelim(argstr, "loopinterval" );
  if ((interval<100) || (interval>10000)) interval=1000;
  CHAR_setInt(meindex, CHAR_LOOPINTERVAL, interval);

  interval = NPC_Util_GetNumFromStrWithDelim(argstr, "challengetimeout");
  if ((interval<60) || (interval>60*60)) interval=20*60;
  CHAR_setWorkInt(meindex, NPC_WORK_CHALLENGETIMEOUT, interval);
  
  interval = NPC_Util_GetNumFromStrWithDelim(argstr, "settingtimeout");
  if ((interval<10) || (interval>60*60)) interval=60;
  CHAR_setWorkInt(meindex, NPC_WORK_SETTINGTIMEOUT, interval);

  interval = NPC_Util_GetNumFromStrWithDelim(argstr, "fightinterval");
  if ((interval<5) || (interval>60)) interval = 50;
  CHAR_setWorkInt(meindex, NPC_WORK_FIGHTINTERVAL, interval);

  NPC_LoadPKSchedule(meindex);

  return TRUE;
}

void NPC_SchedulemanTalked(int meindex, int talkerindex, char *msg, int color)
{
//  CHAR_talkToCli(talkerindex, meindex, "你好,我是家族PK登記員。", color);

#if 0
  char buf[4096];
  int page;

  if (NPC_Util_CharDistance(meindex,talkerindex) > 2) return;

  if (strncmp(msg,"list",4)==0) {
    CHAR_talkToCli(talkerindex, meindex, "顯示將送出的 WN PKSCHEDULELIST data。", color);
    page=atoi(&msg[4]);

    NPC_RemoveExpiredBattle(meindex);
    NPC_LIST_gendata(meindex, talkerindex, page, buf, sizeof(buf));
    
    CHAR_talkToCli(talkerindex, -1, buf, CHAR_COLORWHITE);
  } else if (strncmp(msg,"select",6)==0) {
    CHAR_talkToCli(talkerindex, meindex, "顯示將送出的 WN PKSCHEDULESELECTFAMILY data。", color);
    page=atoi(&msg[6]);

    NPC_SELECT_gendata(meindex, page, buf, sizeof(buf));

    CHAR_talkToCli(talkerindex, -1, buf, CHAR_COLORWHITE);
  } else if (strncmp(msg,"detail",6)==0) {
    page=atoi(&msg[6]);

    CHAR_talkToCli(talkerindex, meindex, "顯示將送出的 WN PKSCHEDULEDETAIL data。", color);

    NPC_DETAIL_gendata(meindex, buf, sizeof(buf), page);
  
    CHAR_talkToCli(talkerindex, -1, buf, CHAR_COLORWHITE);
  } else {
    CHAR_talkToCli(talkerindex, meindex, "你好,我是家族PK登記員。", color);
    sprintf(buf, "我的 ID 是 %d (最大 %d)。",
                 CHAR_getWorkInt(meindex, NPC_WORK_ID), MAX_SCHEDULEMAN-1);
    CHAR_talkToCli(talkerindex, meindex, buf, color);
    CHAR_talkToCli(talkerindex, meindex, "目前測(cè)試中,測(cè)試指令:list,select,detail", color);
    CHAR_talkToCli(talkerindex, meindex, "請(qǐng)下令。", color);
  }
#endif

  char buf[4096];
  int fd;

  if (NPC_Util_CharDistance(meindex, talkerindex) > 2) return;
  if (!NPC_Util_isFaceToFace(meindex, talkerindex, 2)) return;
  fd = getfdFromCharaIndex(talkerindex);
  if (fd == -1) return;

  CHAR_setWorkInt(talkerindex, CHAR_WORK_PAGE, 0);
  NPC_LIST_gendata(meindex, talkerindex, 0, buf, sizeof(buf));
  lssproto_WN_send(fd, WINDOW_MESSAGETYPE_PKSCHEDULELIST,
        		WINDOW_BUTTONTYPE_NEXT | WINDOW_BUTTONTYPE_CANCEL,
        		CHAR_WINDOWTYPE_SCHEDULEMAN_START,
			CHAR_getWorkInt(meindex, CHAR_WORKOBJINDEX),
			buf);
}

void NPC_SchedulemanWindowTalked(int meindex, int talkerindex,
				int seqno, int select, char *data)
{
  int page;
  int buttontype;
  char buf[4096],token[256];
  int fd,i,dt,a;
  int fmpks_pos;

  if (NPC_Util_CharDistance(meindex,talkerindex) > 2) return;
  if (!NPC_Util_isFaceToFace(meindex, talkerindex, 2)) return;
  fd = getfdFromCharaIndex(talkerindex);
  if (fd == -1) return;
  fmpks_pos = CHAR_getWorkInt(meindex, NPC_WORK_ID)*MAX_SCHEDULE;

//  print("seqno=%d select=%d data=%s\n", seqno,select,data);

  switch (seqno) {
  case CHAR_WINDOWTYPE_SCHEDULEMAN_START:
    switch (select) {
    case WINDOW_BUTTONTYPE_NEXT:
    case WINDOW_BUTTONTYPE_PREV:
      page=CHAR_getWorkInt(talkerindex, CHAR_WORK_PAGE)
           + MAXSCHEDULEINONEWINDOW
             * (( select == WINDOW_BUTTONTYPE_NEXT) ? 1 : -1);
      buttontype=WINDOW_BUTTONTYPE_NEXT | WINDOW_BUTTONTYPE_PREV | WINDOW_BUTTONTYPE_CANCEL;
      if (page<0) {
        page=0;
        buttontype=WINDOW_BUTTONTYPE_NEXT | WINDOW_BUTTONTYPE_CANCEL;
      }
      if (page>MAX_SCHEDULE-MAXSCHEDULEINONEWINDOW) {
        page=MAX_SCHEDULE-MAXSCHEDULEINONEWINDOW;
        buttontype=WINDOW_BUTTONTYPE_PREV | WINDOW_BUTTONTYPE_CANCEL;
      }
      CHAR_setWorkInt(talkerindex, CHAR_WORK_PAGE, page);
      // Send WN
      NPC_LIST_gendata(meindex, talkerindex, page, buf, sizeof(buf));
      lssproto_WN_send(fd, WINDOW_MESSAGETYPE_PKSCHEDULELIST,
        		   buttontype,
        		   CHAR_WINDOWTYPE_SCHEDULEMAN_START,
			   CHAR_getWorkInt(meindex, CHAR_WORKOBJINDEX),
			   buf);
      break;
    case WINDOW_BUTTONTYPE_OK:

#ifdef _DEATH_FAMILY_CANT_SCHEDULE // WON ADD 家族戰(zhàn)玩家不能自行約戰(zhàn)
	  CHAR_talkToCli(talkerindex, meindex, "此星球無(wú)法約戰(zhàn)", CHAR_COLORWHITE);
	  break;
#endif

      if ((CHAR_getInt(talkerindex,CHAR_FMLEADERFLAG)==FMMEMBER_LEADER) &&
          (CHAR_getWorkInt(talkerindex, CHAR_WORKFMSETUPFLAG)==1)) {
        // 只有已成立家族的族長(zhǎng)可以使用進(jìn)一步的功能 (設(shè)定、更改、同意)

        // decide: send family list or detail or accept
        dt=atoi(data);
        for (i=0; i<MAX_SCHEDULE; i++) {
          if (fmpks[fmpks_pos+i].dueltime==dt) {
            if (i==0) {
              CHAR_talkToCli(talkerindex, meindex,
                "這個(gè)時(shí)間無(wú)法進(jìn)行預(yù)約。", CHAR_COLORWHITE);
              break;
            }


            switch (fmpks[fmpks_pos+i].flag) {
            case FMPKS_FLAG_NONE:
              if (NPC_AlreadyScheduled(meindex, talkerindex)) {
                // 同一個(gè)家族只能有一次排程
                CHAR_talkToCli(talkerindex, meindex,
                  "你已經(jīng)安排過(guò)一場(chǎng)戰(zhàn)斗,將時(shí)間留給其他家族吧。", CHAR_COLORWHITE);
              } else {
                fmpks[fmpks_pos+i].host_index=CHAR_getInt(talkerindex, CHAR_FMINDEX);
                strcpy(fmpks[fmpks_pos+i].host_name,makeStringFromEscaped(CHAR_getChar(talkerindex, CHAR_FMNAME)));
                
//                print("CHAR_FMNAME: %s\n",fmpks[fmpks_pos+i].host_name);
                
                fmpks[fmpks_pos+i].guest_index=-1;
                strcpy(fmpks[fmpks_pos+i].guest_name," ");
                fmpks[fmpks_pos+i].prepare_time=5;	// default
                fmpks[fmpks_pos+i].max_player=50;	// default
                fmpks[fmpks_pos+i].flag=FMPKS_FLAG_SETTING;
                fmpks[fmpks_pos+i].setting_timeout=
                    CHAR_getWorkInt(meindex, NPC_WORK_SETTINGTIMEOUT);
                // 送出選擇家族的列表
                CHAR_setWorkInt(talkerindex, CHAR_WORK_PAGE, 1); // page 1
                CHAR_setWorkInt(talkerindex, CHAR_WORK_DUELTIME, dt);
                NPC_SELECT_gendata(meindex, 1, buf, sizeof(buf));
                buttontype=0;
                if (familyNumTotal>MAXFAMILYINONEWINDOW)
                  buttontype |= WINDOW_BUTTONTYPE_NEXT;
                lssproto_WN_send(fd, WINDOW_MESSAGETYPE_PKSCHEDULESELECTFAMILY,
        			   buttontype,
        			   CHAR_WINDOWTYPE_SCHEDULEMAN_SELECT,
				   CHAR_getWorkInt(meindex, CHAR_WORKOBJINDEX),
				   buf);
              }
              break;
            case FMPKS_FLAG_CHALLENGE:
              { // 主隊(duì)族長(zhǎng)可以重設(shè)條件,客隊(duì)則是同意 pk,其他人滾蛋
                int tkfmindex=CHAR_getInt(talkerindex, CHAR_FMINDEX);
                if (tkfmindex==fmpks[fmpks_pos+i].host_index) {
                  fmpks[fmpks_pos+i].flag=FMPKS_FLAG_SETTING;
                  fmpks[fmpks_pos+i].setting_timeout=
                    CHAR_getWorkInt(meindex, NPC_WORK_SETTINGTIMEOUT);
                  // 送出細(xì)部調(diào)整的列表
                  CHAR_setWorkInt(talkerindex, CHAR_WORK_DUELTIME, dt);
                  NPC_DETAIL_gendata(meindex, buf, sizeof(buf), dt);
                  lssproto_WN_send(fd, WINDOW_MESSAGETYPE_PKSCHEDULEDETAIL,
        	  		   WINDOW_BUTTONTYPE_OK | WINDOW_BUTTONTYPE_CANCEL,
        	 		   CHAR_WINDOWTYPE_SCHEDULEMAN_DETAIL,
				   CHAR_getWorkInt(meindex, CHAR_WORKOBJINDEX),
				   buf);
                } else if (tkfmindex==fmpks[fmpks_pos+i].guest_index) {
                  fmpks[fmpks_pos+i].flag=FMPKS_FLAG_SCHEDULED;
  		  page=CHAR_getWorkInt(talkerindex, CHAR_WORK_PAGE);
   		  buttontype=WINDOW_BUTTONTYPE_NEXT | WINDOW_BUTTONTYPE_PREV | WINDOW_BUTTONTYPE_OK;
		  if (page<0) {
		    page=0;
		    buttontype=WINDOW_BUTTONTYPE_NEXT | WINDOW_BUTTONTYPE_OK;
		  }
		  if (page>MAX_SCHEDULE-MAXSCHEDULEINONEWINDOW) {
 		    page=MAX_SCHEDULE-MAXSCHEDULEINONEWINDOW;
		    buttontype=WINDOW_BUTTONTYPE_PREV | WINDOW_BUTTONTYPE_OK;
		  }
                  CHAR_talkToCli(talkerindex, meindex,
                      "你的家族已經(jīng)接受挑戰(zhàn)。", CHAR_COLORWHITE);
                  // 重新送出 list
      		  NPC_LIST_gendata(meindex, talkerindex, page, buf, sizeof(buf));
		  lssproto_WN_send(fd, WINDOW_MESSAGETYPE_PKSCHEDULELIST,
        			   buttontype,
        			   CHAR_WINDOWTYPE_SCHEDULEMAN_START,
				   CHAR_getWorkInt(meindex, CHAR_WORKOBJINDEX),
				   buf);
                }
              }
              break;
            case FMPKS_FLAG_SETTING:
              { // 主隊(duì)族長(zhǎng)可以重設(shè)條件
                int tkfmindex=CHAR_getInt(talkerindex, CHAR_FMINDEX);
                if (tkfmindex==fmpks[fmpks_pos+i].host_index) {
                  fmpks[fmpks_pos+i].flag=FMPKS_FLAG_SETTING;
                  fmpks[fmpks_pos+i].setting_timeout=
                    CHAR_getWorkInt(meindex, NPC_WORK_SETTINGTIMEOUT);
                  // 送出細(xì)部調(diào)整的列表
                  CHAR_setWorkInt(talkerindex, CHAR_WORK_DUELTIME, dt);
                  NPC_DETAIL_gendata(meindex, buf, sizeof(buf), dt);
                  lssproto_WN_send(fd, WINDOW_MESSAGETYPE_PKSCHEDULEDETAIL,
        	  		   WINDOW_BUTTONTYPE_OK | WINDOW_BUTTONTYPE_CANCEL,
        	 		   CHAR_WINDOWTYPE_SCHEDULEMAN_DETAIL,
				   CHAR_getWorkInt(meindex, CHAR_WORKOBJINDEX),
				   buf);
                }
              }
            }
            break;
          }
        }
        NPC_SavePKSchedule(meindex);
      } else {
  
			if (CHAR_getInt(talkerindex,CHAR_FMLEADERFLAG)!=FMMEMBER_LEADER) {        
			  CHAR_talkToCli(talkerindex, meindex,
				"只有族長(zhǎng)才能預(yù)約家族PK喔。", CHAR_COLORWHITE);
			} else if (CHAR_getWorkInt(talkerindex, CHAR_WORKFMSETUPFLAG)!=1) {
			  CHAR_talkToCli(talkerindex, meindex,
				"你的家族還沒(méi)有正式成立喔。", CHAR_COLORWHITE);
			}
      }

      break;
    }
    break;
  case CHAR_WINDOWTYPE_SCHEDULEMAN_SELECT:
    switch (select) {
    case WINDOW_BUTTONTYPE_PREV:
    case WINDOW_BUTTONTYPE_NEXT:
      page=CHAR_getWorkInt(talkerindex, CHAR_WORK_PAGE)
           + MAXFAMILYINONEWINDOW
             * (( select == WINDOW_BUTTONTYPE_NEXT) ? 1 : -1);
      buttontype=WINDOW_BUTTONTYPE_NEXT | WINDOW_BUTTONTYPE_PREV;
      if (page<1) {
        page=1;
        buttontype=WINDOW_BUTTONTYPE_NEXT;
      }
      if (page>familyNumTotal-MAXFAMILYINONEWINDOW+1) {
        page=familyNumTotal-MAXFAMILYINONEWINDOW+1;
        buttontype=WINDOW_BUTTONTYPE_PREV;
      }
      CHAR_setWorkInt(talkerindex, CHAR_WORK_PAGE, page);
      // Send WN
      NPC_SELECT_gendata(meindex, page, buf, sizeof(buf));
      lssproto_WN_send(fd, WINDOW_MESSAGETYPE_PKSCHEDULESELECTFAMILY,
        		   buttontype,
        		   CHAR_WINDOWTYPE_SCHEDULEMAN_SELECT,
			   CHAR_getWorkInt(meindex, CHAR_WORKOBJINDEX),
			   buf);
      break;
    case WINDOW_BUTTONTYPE_OK:
#ifdef _FMVER21
      if ((CHAR_getInt(talkerindex,CHAR_FMLEADERFLAG)==FMMEMBER_LEADER) &&
#else
      if ((CHAR_getInt(talkerindex,CHAR_FMLEADERFLAG)==1) &&
#endif      
          (CHAR_getWorkInt(talkerindex, CHAR_WORKFMSETUPFLAG)==1)) {
        dt=CHAR_getWorkInt(talkerindex, CHAR_WORK_DUELTIME);
        for (i=0; i<MAX_SCHEDULE; i++) {
          if (fmpks[fmpks_pos+i].dueltime==dt) {
            if (fmpks[fmpks_pos+i].host_index==CHAR_getInt(talkerindex, CHAR_FMINDEX)) {
              if (getStringFromIndexWithDelim(data,"|",1,token,sizeof(token))) {
                a=atoi(token);
                if (a!=fmpks[fmpks_pos+i].host_index) {
                  fmpks[fmpks_pos+i].guest_index=a;
                  // 必須要再檢查是否有這個(gè)客隊(duì)家族 /**/
                  if (getStringFromIndexWithDelim(data,"|",2,token,sizeof(token))) {
                    strcpy(fmpks[fmpks_pos+i].guest_name, makeStringFromEscaped(token));
                    // 送出 detail 編輯窗
                    NPC_DETAIL_gendata(meindex, buf, sizeof(buf), dt);
                    lssproto_WN_send(fd, WINDOW_MESSAGETYPE_PKSCHEDULEDETAIL,
        	  		   WINDOW_BUTTONTYPE_OK | WINDOW_BUTTONTYPE_CANCEL,
        	 		   CHAR_WINDOWTYPE_SCHEDULEMAN_DETAIL,
				   CHAR_getWorkInt(meindex, CHAR_WORKOBJINDEX),
				   buf);
                  }
                }
              }
            }
          }
        }
      }
      break;
    }
    break;
  case CHAR_WINDOWTYPE_SCHEDULEMAN_DETAIL:
#ifdef _FMVER21  
    if ((CHAR_getInt(talkerindex,CHAR_FMLEADERFLAG)==FMMEMBER_LEADER) &&
#else
    if ((CHAR_getInt(talkerindex,CHAR_FMLEADERFLAG)==1) &&
#endif
        (CHAR_getWorkInt(talkerindex, CHAR_WORKFMSETUPFLAG)==1)) {
      dt=CHAR_getWorkInt(talkerindex, CHAR_WORK_DUELTIME);
      for (i=0; i<MAX_SCHEDULE; i++) {
        if (fmpks[fmpks_pos+i].dueltime==dt) {
          if (fmpks[fmpks_pos+i].host_index==CHAR_getInt(talkerindex, CHAR_FMINDEX)) {
            switch (select) {
            case WINDOW_BUTTONTYPE_OK:
              {
                // 準(zhǔn)備時(shí)間
                if (getStringFromIndexWithDelim(data,"|",4,token,sizeof(token))) {
                  a=atoi(token);
                  if ((a>0) && (a<=40)) fmpks[fmpks_pos+i].prepare_time=a;
                }
                // 最大人數(shù)
                if (getStringFromIndexWithDelim(data,"|",5,token,sizeof(token))) {
                  a=atoi(token);
                  if ((a>0) && (a<=50)) fmpks[fmpks_pos+i].max_player=a;
                }
                fmpks[fmpks_pos+i].flag=FMPKS_FLAG_CHALLENGE;
                fmpks[fmpks_pos+i].challenge_timeout=

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品精品国产高清一毛片一天堂| 成人免费高清视频| 欧美日韩在线三区| 岛国精品一区二区| 久久99热这里只有精品| 一级特黄大欧美久久久| 亚洲国产高清在线观看视频| 日韩三区在线观看| 欧美色倩网站大全免费| 色中色一区二区| 成人avav影音| 日韩精品一二三| 亚洲欧美色一区| 精品久久久久久久一区二区蜜臀| 91精选在线观看| 在线电影欧美成精品| 欧美亚洲国产怡红院影院| 91免费看片在线观看| 成人精品一区二区三区中文字幕| 国产a精品视频| 国产精品综合视频| 久久99国产精品久久99 | 欧美日韩在线播放三区四区| 99视频一区二区三区| 成人国产精品免费网站| 不卡的av网站| 99精品视频中文字幕| 成人av在线播放网址| voyeur盗摄精品| 91视频免费播放| 欧洲一区二区三区免费视频| 欧美亚洲一区二区在线| 7777精品伊人久久久大香线蕉 | 粉嫩av亚洲一区二区图片| 国产激情91久久精品导航| 国产成a人亚洲精| www.日韩av| 色偷偷一区二区三区| 99天天综合性| 欧美写真视频网站| 制服丝袜中文字幕一区| 91精品婷婷国产综合久久性色| 欧美一区二区三区色| 欧美va在线播放| 欧美激情一区在线| 2023国产精华国产精品| 国产亚洲美州欧州综合国| 国产精品妹子av| 亚洲精品午夜久久久| 婷婷久久综合九色综合伊人色| 日韩精品五月天| 国产99久久久精品| 色婷婷久久久久swag精品| 欧美天天综合网| 日韩精品中文字幕一区| 欧美国产亚洲另类动漫| 亚洲精品免费视频| 亚欧色一区w666天堂| 久久国产精品99精品国产| 在线日韩av片| 久久蜜臀中文字幕| 亚洲欧美视频一区| 裸体健美xxxx欧美裸体表演| 国产suv精品一区二区三区| 欧美影院一区二区三区| 精品盗摄一区二区三区| 中文字幕一区二区三| 视频一区二区三区入口| 国产精品77777| 欧美三级电影网| 欧美精彩视频一区二区三区| 亚洲高清三级视频| 国产·精品毛片| 一本到不卡精品视频在线观看| 欧洲另类一二三四区| 久久一日本道色综合| 亚洲影院在线观看| 国产精品1区2区| 欧美另类z0zxhd电影| 国产精品福利一区| 日韩精品三区四区| 99精品国产91久久久久久| 日韩免费看网站| 亚洲黄色免费电影| 岛国av在线一区| 日韩精品一区二区三区在线| 亚洲专区一二三| 国产自产v一区二区三区c| 欧美色涩在线第一页| 国产精品丝袜91| 天天色天天爱天天射综合| 成人小视频免费在线观看| 欧美日韩日本视频| 亚洲图片欧美激情| 国产在线精品免费| 91精品国产综合久久久蜜臀粉嫩| 亚洲欧洲日韩在线| 国产精品亚洲成人| 日韩欧美区一区二| 午夜久久久久久久久久一区二区| 99国产精品视频免费观看| 久久久综合视频| 日韩在线一二三区| 欧美日韩国产区一| 亚洲男同1069视频| 成人免费视频网站在线观看| 日韩免费福利电影在线观看| 亚洲国产精品久久人人爱| 99久久综合精品| 欧美激情在线看| 风间由美中文字幕在线看视频国产欧美| 91麻豆精品国产91久久久久| 亚洲高清不卡在线观看| 成人av动漫网站| 国产亚洲福利社区一区| 国产专区欧美精品| 久久一留热品黄| 国产美女精品在线| 2020国产成人综合网| 国内成人自拍视频| 精品成人一区二区三区四区| 午夜电影一区二区| 欧美精品一二三| 午夜免费久久看| 91麻豆精品国产无毒不卡在线观看 | 久久精品综合网| 国产一区二区三区免费看 | 欧美激情一区三区| 韩国欧美国产1区| 精品国产百合女同互慰| 韩国精品在线观看| 国产色一区二区| 成人av在线资源网站| 亚洲青青青在线视频| 91久久一区二区| 亚洲成人精品一区二区| 欧美日韩国产系列| 美国十次了思思久久精品导航| 日韩精品一区二区三区蜜臀 | 蜜臀av一级做a爰片久久| 日韩你懂的电影在线观看| 午夜国产精品影院在线观看| 欧美日韩免费在线视频| 欧美a级理论片| 久久综合久久综合久久| 国产99久久久国产精品 | 国产一区二区三区免费| 日韩欧美国产精品| 经典三级一区二区| 久久精品视频免费| 99精品视频免费在线观看| 亚洲一区二区三区激情| 欧美日本在线一区| 国产一区二区三区精品视频| 亚洲国产高清aⅴ视频| 在线亚洲高清视频| 免费成人在线网站| 久久综合色之久久综合| 一区二区三区四区精品在线视频| 91视频免费观看| 婷婷开心激情综合| 国产日产欧美一区二区视频| 视频在线观看一区| 国产精品日日摸夜夜摸av| 5566中文字幕一区二区电影| 国产成人精品免费看| 日日夜夜免费精品| 日韩美女精品在线| 精品国产乱码久久久久久闺蜜| 91欧美激情一区二区三区成人| 国模少妇一区二区三区| 亚洲成av人影院| 18成人在线观看| 国产亚洲精品免费| 欧美电视剧在线观看完整版| 欧美日韩一区二区三区不卡| 成人丝袜18视频在线观看| 精品一区二区三区日韩| 亚洲成国产人片在线观看| 日韩美女视频一区| 国产女人水真多18毛片18精品视频| 日韩视频一区在线观看| 欧美主播一区二区三区| 99热99精品| 丁香婷婷综合网| 国产精一区二区三区| 日韩电影免费在线| 午夜电影一区二区三区| 一卡二卡欧美日韩| 亚洲精品少妇30p| 国产精品理论片| 中文一区二区在线观看| 国产欧美日韩视频在线观看| 26uuu国产一区二区三区| 国产精品久久久久久福利一牛影视 | 日本一区二区三区免费乱视频| 欧美tickling挠脚心丨vk| 91精品黄色片免费大全| 欧美精品在欧美一区二区少妇| 欧美三区在线观看|