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

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

?? profession_skill.c

?? 石器時代8.0服務端完整源代碼。可以直接編譯
?? C
?? 第 1 頁 / 共 3 頁
字號:
#include "version.h"#ifdef _PROFESSION_SKILL			// WON ADD 人物職業技能#include <stdio.h>#include <string.h>#include <time.h>#include "buf.h"#include "profession_skill.h"#include "char_base.h"#include "battle.h"#include "magic_base.h"#include "configfile.h"#include "char.h"#include "lssproto_serv.h"#include "skill.h"static Professionskill	*PROFESSION_skill;typedef struct tagProfessionskill_skillFunctionTable{	char			*functionname;	PROFESSION_SKILL_CALLFUNC	func;	int				hash;//	int				status;}PROFESSION_SKILL_skillFunctionTable;static PROFESSION_SKILL_skillFunctionTable PROFESSION_SKILL_functbl[] = {// 巫師技能	{ "PROFESSION_VOLCANO_SPRINGS", PROFESSION_volcano_springs, 0 },	// 火山泉	{ "PROFESSION_FIRE_BALL",		PROFESSION_fire_ball,		0 },	// 火星球	{ "PROFESSION_FIRE_SPEAR",		PROFESSION_fire_spear,		0 },	// 火龍槍	{ "PROFESSION_SUMMON_THUNDER",  PROFESSION_summon_thunder,  0 },	// 召雷術	{ "PROFESSION_CURRENT",			PROFESSION_current,			0 },	// 電流術	{ "PROFESSION_STORM",			PROFESSION_storm,			0 },	// 暴風雨	{ "PROFESSION_ICE_ARROW",		PROFESSION_ice_arrow,		0 },	// 冰箭術	{ "PROFESSION_ICE_CRACK",		PROFESSION_ice_crack,		0 },	// 冰爆術	{ "PROFESSION_ICE_MIRROR",		PROFESSION_ice_mirror,		0 },	// 冰鏡術	{ "PROFESSION_DOOM",			PROFESSION_doom,			0 },	// 世界末日	{ "PROFESSION_BLOOD",			PROFESSION_blood,			0 },	// 嗜血成性	{ "PROFESSION_BLOOD_WORMS",		PROFESSION_blood_worms,		0 },	// 嗜血蠱	{ "PROFESSION_SIGN",			PROFESSION_sign,			0 },	// 一針見血	{ "PROFESSION_FIRE_ENCLOSE",	PROFESSION_fire_enclose,	0 },	// 火附體	{ "PROFESSION_ICE_ENCLOSE",		PROFESSION_ice_eclose,		0 },	// 冰附體	{ "PROFESSION_THUNDER_ENCLOSE",	PROFESSION_thunder_enclose, 0 },	// 雷附體	{ "PROFESSION_FIRE_PRACTICE",	PROFESSION_fire_practice,	0 },	// 火魔法熟練度	{ "PROFESSION_ICE_PRACTICE",	PROFESSION_ice_practice,	0 },	// 冰魔法熟練度	{ "PROFESSION_THUNDER_PRACTICE",PROFESSION_thunder_practice,0 },	// 雷魔法熟練度	{ "PROFESSION_ENCLOSE",			PROFESSION_enclose,			0 },	// 附身術	{ "PROFESSION_TRANSPOSE",		PROFESSION_transpose,		0 },	// 移形換位//	{ "PROFESSION_ALCHEMY",			PROFESSION_alchemy,			0 },	// 煉金術// 勇士技能	{ "PROFESSION_CHAIN_ATK",		PROFESSION_chain_atk,		0 },	// 連環攻擊	{ "PROFESSION_AVOID",			PROFESSION_avoid,			0 },	// 回避	{ "PROFESSION_WEAPON_FOCUS",	PROFESSION_weapon_focus,	0 },	// 武器專精		{ "PROFESSION_REBACK",			PROFESSION_reback,			0 },	// 狀態回復	{ "PROFESSION_BRUST",			PROFESSION_brust,			0 },	// 爆擊	{ "PROFESSION_CHAIN_ATK_2",		PROFESSION_chain_atk_2,		0 },	// 雙重攻擊	{ "PROFESSION_SCAPEGOAT",		PROFESSION_scapegoat,		0 },	// 舍已為友	{ "PROFESSION_ENRAGE",			PROFESSION_enrage,			0 },	// 激化攻擊	{ "PROFESSION_ENERGY_COLLECT",	PROFESSION_energy_collect,	0 },	// 能量聚集	{ "PROFESSION_FOCUS",			PROFESSION_focus,			0 },	// 專注戰斗	{ "PROFESSION_SHIELD_ATTACK",	PROFESSION_shield_attack,	0 },	// 盾擊	{ "PROFESSION_DUAL_WEAPON",		PROFESSION_dual_weapon,		0 },	// 二刀流		{ "PROFESSION_DEFLECT",			PROFESSION_deflect,			0 },	// 格檔	{ "PROFESSION_THROUGH_ATTACK",	PROFESSION_through_attack,	0 },	// 貫穿攻擊	{ "PROFESSION_CAVALRY",			PROFESSION_cavalry,			0 },	// 座騎攻擊	{ "PROFESSION_DEAD_ATTACK",		PROFESSION_dead_attack,		0 },	// 瀕死攻擊	{ "PROFESSION_CONVOLUTE",		PROFESSION_convolute,		0 },	// 回旋攻擊	{ "PROFESSION_CHAOS",			PROFESSION_chaos,			0 },	// 混亂攻擊// 獵人	{ "PROFESSION_TRACK",			PROFESSION_track,			0 },	// 追尋敵蹤	{ "PROFESSION_ESCAPE",			PROFESSION_escape,			0 },	// 回避戰斗	{ "PROFESSION_DOCILE",			PROFESSION_docile,			0 },	// 馴伏寵物	{ "PROFESSION_TRAP",			PROFESSION_trap,			0 },	// 陷阱	{ "PROFESSION_ENRAGE_PET",		PROFESSION_enrage_pet,		0 },	// 激怒寵物	{ "PROFESSION_DRAGNET",			PROFESSION_dragnet,			0 },	// 天羅地網	{ "PROFESSION_ENTWINE",			PROFESSION_entwine,			0 },	// 樹根纏繞	{ "PROFESSION_AUTARKY",			PROFESSION_autarky,			0 },	// 自給自足	{ "PROFESSION_PLUNDER",			PROFESSION_plunder,			0 },	//   體掠奪	{ "PROFESSION_TOXIN_WEAPON",	PROFESSION_toxin_weapon,	0 },	// 毒素武器	{ "PROFESSION_RESIST_FIRE",		PROFESSION_resist_fire,		0 },	// 火抗性	{ "PROFESSION_RESIST_ICE",		PROFESSION_resist_ice,		0 },	// 冰抗性	{ "PROFESSION_RESIST_THUNDER",	PROFESSION_resist_thunder,	0 },	// 雷抗性#ifdef _PROFESSION_ADDSKILL    { "PROFESSION_RESIST_F_I_T",    PROFESSION_resist_f_i_t,    0 },    // 自然威能	{ "PROFESSION_CALL_NATURE",     PROFESSION_call_nature,     0 },    // 號召自然	{ "PROFESSION_BOUNDARY",        PROFESSION_boundary,     0 },       // 四屬性結界#endif	{ "PROFESSION_G_RESIST_FIRE",	PROFESSION_g_resist_fire,	0 },	// 團體火抗性	{ "PROFESSION_G_RESIST_ICE",	PROFESSION_g_resist_ice,	0 },	// 團體冰抗性	{ "PROFESSION_G_RESIST_THUNDER",PROFESSION_g_resist_thunder,0 },	// 團體雷抗性	{ "PROFESSION_ATTACK_WEAK",		PROFESSION_attack_weak,		0 },	// 弱點攻擊	{ "PROFESSION_INSTIGATE",		PROFESSION_instigate,		0 },	// 挑撥	{ "PROFESSION_OBLIVION",		PROFESSION_oblivion,		0 },	// 遺忘// 共同技能	{ "PROFESSION_FULL_MP",			PROFESSION_full_mp,			0 },	// 氣力充沛	{ "PROFESSION_STRONG_BACK",		PROFESSION_strong_back,		0 },	// 負重增加	{ "PROFESSION_STRENGTHEN",		PROFESSION_strengthen,		0 },	// 自我強化};static int profession_skill_num;				// 職業技能總數// 將 profession.txt 載入BOOL PROFESSION_initSkill( char *filename){	FILE*   f;    char    line[256];    int     linenum=-1;	int     skill_readlen=0;	int		i, j;	int max_skillid = 0;    f = fopen(filename,"r");    if( f == NULL ){        print( "file open error\n");        return FALSE;    }    profession_skill_num=0;    while( fgets( line, sizeof( line ), f ) ){		char    token[256];        linenum ++;        if( line[0] == '#' )continue;        if( line[0] == '\n' )continue;        chomp( line );        profession_skill_num++;#ifdef _PROSKILL_OPTIMUM // Robin 取出最大職技ID		if( getStringFromIndexWithDelim( line, ",", 				PROFESSION_SKILL_DATACHARNUM+PROFESSION_SKILL_ID+1,				token, sizeof(token)) == FALSE )			continue;		max_skillid = max( atoi( token), max_skillid);#endif    }    if( fseek( f, 0, SEEK_SET ) == -1 ){        fprint( "Seek Error\n" );        fclose(f);        return FALSE;    }#ifdef _PROSKILL_OPTIMUM // 職技Table數為 最大技能ID +1	profession_skill_num = max_skillid +1;	print("最大職技ID = %d ...", max_skillid);#endif	PROFESSION_skill = allocateMemory( sizeof(struct tagProfessionkill) * profession_skill_num + 1 );	if( PROFESSION_skill == NULL ){        fprint( "無法分配內存 %d\n", sizeof(struct tagProfessionkill)*profession_skill_num);        fclose( f );        return FALSE;    }	// init skill    for( i = 0; i < profession_skill_num; i ++ ) {    	for( j = 0; j < PROFESSION_SKILL_DATAINTNUM; j ++ )    		PROFESSION_SKILL_setInt( i,j,-1);        	for( j = 0; j < PROFESSION_SKILL_DATACHARNUM; j ++ )     		PROFESSION_SKILL_setChar( i,j,"");        }    linenum = -1;    while( fgets( line, sizeof( line ), f ) ){        linenum ++;        if( line[0] == '#' )continue;        if( line[0] == '\n' )continue;                                     chomp( line );        replaceString( line, '\t' , ' ' );		{		    char    buf[256];			for( i = 0; i < strlen( line); i ++) {				if( line[i] != ' ' ) {					break;				}				strcpy( buf, &line[i]);			}						if( i != 0 ) {				strcpy( line, buf);			}		}  		{			char    token[256];			int     ret;#ifdef _PROSKILL_OPTIMUM // 讀取本行職技的ID, 直接以職技ID當Table index			ret = getStringFromIndexWithDelim( line, ",", PROFESSION_SKILL_DATACHARNUM+PROFESSION_SKILL_ID+1, token, sizeof(token));			if( ret==FALSE ){				fprint("Syntax Error file:%s line:%d\n",filename,linenum);				break;			}			skill_readlen = atoi( token);#endif			for( i = 0; i < PROFESSION_SKILL_DATACHARNUM; i ++ ) {			    ret = getStringFromIndexWithDelim( line,",", i + 1, token,sizeof(token));				if( ret==FALSE ){					fprint("Syntax Error file:%s line:%d\n",filename,linenum);					break;				} 				PROFESSION_SKILL_setChar( skill_readlen, i, token);			} 			for( i = 0; i < PROFESSION_SKILL_DATAINTNUM; i ++ ) {				ret = getStringFromIndexWithDelim( line, ",", i+PROFESSION_SKILL_DATACHARNUM+1, token, sizeof(token));								if( ret==FALSE ){					fprint("文件語法錯誤:%s 第%d行\n",filename,linenum);					break;				} 				if( strlen( token) != 0 ) {					PROFESSION_SKILL_setInt( skill_readlen, i , atoi( token ));				} 			}         					skill_readlen ++;		} 		    }     fclose(f);    profession_skill_num = skill_readlen;	for( i = 0; i < arraysizeof( PROFESSION_SKILL_functbl); i ++ ){		PROFESSION_SKILL_functbl[i].hash = hashpjw( PROFESSION_SKILL_functbl[i].functionname );	}    return TRUE;}// 重新載入 profession.txtvoid rePROFESSION_initSkill(){	freeMemory( PROFESSION_skill );	PROFESSION_initSkill(getProfession());}INLINE BOOL PROFESSION_SKILL_CHECKINDEX( int index ){    if( profession_skill_num < index || index < 0 )return FALSE;    return TRUE;}static INLINE BOOL PROFESSION_SKILL_CHECKINTDATAINDEX( int index){	if( PROFESSION_SKILL_DATAINTNUM < index || index < 0 ) return FALSE;	return TRUE;}static INLINE BOOL PROFESSION_SKILL_CHECKCHARDATAINDEX( int index){	if( PROFESSION_SKILL_DATACHARNUM < index || index < 0 ) return FALSE;	return TRUE;}INLINE int PROFESSION_SKILL_getInt( int index, PROFESSION_SKILL_DATAINT element){	return PROFESSION_skill[index].data[element];}INLINE int PROFESSION_SKILL_setInt( int index, PROFESSION_SKILL_DATAINT element, int data){	int buf;	buf = PROFESSION_skill[index].data[element];	PROFESSION_skill[index].data[element]=data;	return buf;}INLINE char* PROFESSION_SKILL_getChar( int index, PROFESSION_SKILL_DATACHAR element){	if( !PROFESSION_SKILL_CHECKINDEX( index)) return NULL;	if( !PROFESSION_SKILL_CHECKCHARDATAINDEX( element)) return NULL;	return PROFESSION_skill[index].string[element].string;}INLINE BOOL PROFESSION_SKILL_setChar( int index ,PROFESSION_SKILL_DATACHAR element, char* new ){    if(!PROFESSION_SKILL_CHECKINDEX(index))return FALSE;    if(!PROFESSION_SKILL_CHECKCHARDATAINDEX(element))return FALSE;    strcpysafe( PROFESSION_skill[index].string[element].string,                sizeof(PROFESSION_skill[index].string[element].string),                new );    return TRUE;}int PROFESSION_SKILL_getskillNum( void){	return profession_skill_num;}/*----------------------------------------------------------------------*/int PROFESSION_SKILL_getskillArray( int skillid){#ifdef _PROSKILL_OPTIMUM // 查詢職技ID改為陣列式	if( skillid >= 0 && skillid < profession_skill_num )		return PROFESSION_skill[skillid].data[PROFESSION_SKILL_ID];#else	int		i;	for( i = 0; i <= profession_skill_num; i ++ ) { // 待優化		if( PROFESSION_skill[i].data[PROFESSION_SKILL_ID] == skillid ) 			return i;	}#endif	return -1;}PROFESSION_SKILL_CALLFUNC PROFESSION_SKILL_getskillFuncPointer(char* name ){    int i;    int hash = hashpjw( name );		for( i = 0; i< arraysizeof( PROFESSION_SKILL_functbl); i++ ){		if( PROFESSION_SKILL_functbl[i].hash == hash ){        	if( strcmp( PROFESSION_SKILL_functbl[i].functionname, name ) == 0 ){	            return PROFESSION_SKILL_functbl[i].func;			}		}	}    return NULL;}int _PROFESSION_SKILL_GetArray( char *file, int line, int charaindex, int skill ){	int		skillid,array;	skillid = CHAR_getCharSkill( charaindex, skill);	if( skillid < 0 )	return -1;	array = PROFESSION_SKILL_getskillArray( skillid );			return array;}/*----------------------------------------------------------------------*/// 使用職業技能int PROFESSION_SKILL_Use( int charaindex, int skill, int toNo, char *data ){	int		Pskillid, skillid;	int		ret=-1, skill_level;	PROFESSION_SKILL_CALLFUNC func;	CHAR_HaveSkill* hskill;	int char_pskill, profession_skill;	skillid = CHAR_getCharSkill( charaindex, skill);	Pskillid = PROFESSION_SKILL_getskillArray( skillid);	//print("\n skillid:%d Pskillid:%d ", skillid, Pskillid); // Robin log	if( Pskillid == -1 ) {		printf("\n 改封包??找不到該職技! ");		return ret;	}#ifdef _PROSKILL_OPTIMUM	// Robin fix 檢查職業是否相符	char_pskill = CHAR_getInt( charaindex, PROFESSION_CLASS );	profession_skill = PROFESSION_SKILL_getInt( Pskillid, PROFESSION_SKILL_PROFESSION_CLASS);	if( (char_pskill <=0) || (char_pskill != profession_skill) ) {		print("\n 改封包??職技的職業不正確!:%d:%d ", char_pskill, profession_skill);		return ret;	}#endif	// 找尋對應 function	func = PROFESSION_SKILL_getskillFuncPointer( PROFESSION_SKILL_getChar( Pskillid, PROFESSION_SKILL_FUNCNAME) );	// 判斷是否為人物	if( CHAR_getInt( charaindex, CHAR_WHICHTYPE) != CHAR_TYPEPLAYER )	return ret;	if( func ){		// 人物技能等級		hskill = CHAR_getCharHaveSkill( charaindex, skill );		skill_level = SKILL_getInt( &hskill->skill, SKILL_LEVEL);			// 耗損 MP 		if( PROFESSION_SKILL_DEC_COST_MP( charaindex, skill, Pskillid, skill_level ) != 1 )	{			print("\n Error:職技MP:%d:%d:%d ", skill, Pskillid, skill_level);			return ret;		}		// 使用職業技能		ret = func( charaindex, toNo, Pskillid, data, skill_level );		if( ret == -1 ){			int rands = rand()%10;			//andy_log			print("ret = %d, rands:%d \n", ret, rands);			if( rands > 5 ) return ret;		}		if( Pskillid == 57 //激怒寵物 選寵物才有經驗值			&& CHAR_getInt( BATTLE_No2Index( CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEINDEX ), toNo ), CHAR_WHICHTYPE) != CHAR_TYPEPET ) 			return ret;		// 一般技能升級		PROFESSION_NORMAL_SKILL_LEVLE_UP( &hskill->skill, Pskillid, charaindex );	}	else {		print("\n 錯誤!找不到職技func ");	}	return ret;}// 特殊技能升級void PROFESSION_SKILL_LVEVEL_UP( int charaindex, char *name ){	int skill=-1;	int skillid=0, Pskillid=0, i;	char *skill_name;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕第一区二区| 麻豆精品一区二区三区| 蜜臂av日日欢夜夜爽一区| 成人国产精品免费观看视频| 欧美日韩在线直播| 亚洲国产高清不卡| av不卡一区二区三区| 欧美成人一区二区| 无吗不卡中文字幕| 91在线视频播放地址| 精品999在线播放| 亚洲第一搞黄网站| 91麻豆自制传媒国产之光| 久久精品在这里| 久久精品噜噜噜成人88aⅴ| 欧美嫩在线观看| 亚洲色欲色欲www在线观看| 国产精品一卡二卡在线观看| 欧美精品粉嫩高潮一区二区| 亚洲免费观看在线观看| 北条麻妃国产九九精品视频| www精品美女久久久tv| 三级久久三级久久| 欧美特级限制片免费在线观看| 亚洲婷婷在线视频| 成人免费视频国产在线观看| 久久女同性恋中文字幕| 久久不见久久见中文字幕免费| 欧美疯狂性受xxxxx喷水图片| 亚洲一区二区三区四区在线| 91美女在线观看| 《视频一区视频二区| 99久久免费国产| 日韩伦理av电影| 91黄色免费版| 亚洲国产欧美一区二区三区丁香婷| 色综合色综合色综合| 日韩理论片在线| 91黄视频在线| 亚洲成av人片在线观看| 欧美精品在线一区二区| 99精品国产热久久91蜜凸| 中文天堂在线一区| 99久久99精品久久久久久| 亚洲视频 欧洲视频| 91视视频在线观看入口直接观看www | 处破女av一区二区| 国产精品第四页| 91久久奴性调教| 日韩av在线免费观看不卡| 精品福利一区二区三区免费视频| 国产精品一级二级三级| 国产精品第一页第二页第三页| 色网站国产精品| 蜜臀av性久久久久蜜臀aⅴ流畅| 精品国产乱码久久久久久图片| 国产高清在线观看免费不卡| 亚洲欧美日韩国产综合在线| 4438亚洲最大| 国产馆精品极品| 亚洲一区二区在线免费观看视频| 日韩一级片在线观看| 成人黄色在线网站| 午夜av一区二区| 亚洲国产精品ⅴa在线观看| 欧美午夜在线观看| 狠狠网亚洲精品| 一区二区三区四区在线| 欧美高清www午色夜在线视频| 琪琪久久久久日韩精品| 久久综合狠狠综合久久综合88 | 日韩欧美成人一区| 国产精品一二三四| 亚洲欧洲日产国码二区| 91片黄在线观看| 亚洲一区在线观看免费观看电影高清| 精品视频1区2区| 国产毛片一区二区| 一级做a爱片久久| 欧美精品在线视频| 91丨porny丨户外露出| 视频一区免费在线观看| 国产清纯白嫩初高生在线观看91 | 精品久久久久久久久久久院品网 | 亚洲成人精品一区二区| 欧美mv日韩mv国产网站| 成人黄色国产精品网站大全在线免费观看| 韩国精品主播一区二区在线观看| 精品国产乱码久久久久久蜜臀| 91在线观看高清| 美国三级日本三级久久99| 国产精品免费av| 91色综合久久久久婷婷| 看片网站欧美日韩| 有码一区二区三区| 国产日韩亚洲欧美综合| 91精品免费在线| 色综合一区二区三区| 成人免费精品视频| 麻豆成人在线观看| 亚洲一区二区三区四区在线免费观看| 精品99999| 欧美欧美欧美欧美首页| 成人av电影在线| 久久精品国产秦先生| 亚洲午夜精品在线| 国产精品欧美久久久久无广告| 欧美久久免费观看| 在线一区二区三区四区五区| 国产一区91精品张津瑜| 日韩精品三区四区| 亚洲成人av福利| 综合自拍亚洲综合图不卡区| 中文字幕av一区二区三区| 欧美不卡在线视频| 91精品蜜臀在线一区尤物| 91国在线观看| 色综合中文字幕国产| 国产一区二区三区日韩| 久久国产精品免费| 韩国av一区二区三区四区| 美女网站色91| 久久99精品久久久| 日韩中文字幕亚洲一区二区va在线 | 久久久久成人黄色影片| 欧美大片在线观看一区二区| 欧美日韩三级一区二区| 欧美性欧美巨大黑白大战| 99热99精品| 国产一区二区三区不卡在线观看| 高清成人免费视频| 国产精品自产自拍| 春色校园综合激情亚洲| 成人永久免费视频| 91香蕉视频mp4| 色婷婷亚洲综合| 色av一区二区| 91精品国产综合久久蜜臀| 欧美一区二区福利在线| 欧美xxxxxxxx| 国产人妖乱国产精品人妖| 国产女同互慰高潮91漫画| 久久日一线二线三线suv| 中文字幕精品在线不卡| 亚洲人成网站色在线观看| 亚洲精品乱码久久久久| 亚洲图片欧美色图| 久久成人av少妇免费| 国产精品996| 欧美麻豆精品久久久久久| 欧美一区二区不卡视频| 欧美成人精品福利| 亚洲国产精品成人综合| 一片黄亚洲嫩模| 黄色日韩三级电影| 欧美性一级生活| 精品少妇一区二区三区视频免付费| 欧美va在线播放| 国产精品乱码一区二三区小蝌蚪| 日韩理论电影院| 日韩中文字幕区一区有砖一区 | 国产精品色哟哟网站| 国产精品成人一区二区艾草 | 欧美体内she精高潮| 日韩一区二区在线观看视频| 久久人人97超碰com| 国产精品国产三级国产普通话99 | 欧美aⅴ一区二区三区视频| 精品一区二区三区香蕉蜜桃| 成人免费高清视频在线观看| 精品视频一区二区不卡| 三级影片在线观看欧美日韩一区二区 | 久久久精品2019中文字幕之3| 国产精品国产三级国产专播品爱网| 亚洲成在线观看| 成人中文字幕电影| 777xxx欧美| 国产日韩精品一区二区浪潮av| 日本欧美一区二区| 99精品欧美一区二区三区小说| 日韩三级精品电影久久久| 亚洲日本乱码在线观看| 免费在线看一区| 色中色一区二区| 久久久久久9999| 另类小说视频一区二区| 色综合久久中文字幕| 日本一区二区三区四区| 免费在线看成人av| 欧洲中文字幕精品| 亚洲国产精品成人综合 | 欧美精品一区二区三区视频| 一区二区三区精品在线| 成人一区二区三区在线观看| 91精品久久久久久蜜臀| 香蕉成人啪国产精品视频综合网| 91在线视频观看| 国产精品久久免费看| 国产精品69毛片高清亚洲| 日韩丝袜美女视频|