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

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

?? profession_skill.c

?? 最新主流石器時代源代碼,包含諸多目前流行功能代碼.
?? C
?? 第 1 頁 / 共 3 頁
字號:
	CHAR_HaveSkill* hskill;	for( i=0; i<CHAR_SKILLMAXHAVE; i++ ){					// 技能ID		skillid = CHAR_getCharSkill( charaindex, i);		Pskillid = PROFESSION_SKILL_getskillArray( skillid);				if( Pskillid < 0 ) continue;		// 技能名稱		skill_name = PROFESSION_SKILL_getChar( Pskillid, PROFESSION_SKILL_FUNCNAME);		if( skill_name == NULL ) continue;					if( (strcmp( skill_name , name )) == 0 ){			skill = i;		break;		}	}		if( (skill < 0) || (skill > CHAR_SKILLMAXHAVE) ) return;	skillid = CHAR_getCharSkill( charaindex, skill);	Pskillid = PROFESSION_SKILL_getskillArray( skillid);	if( Pskillid == -1 )	return;	// 人物技能等級	hskill = CHAR_getCharHaveSkill( charaindex, skill );		// 一般技能升級	PROFESSION_NORMAL_SKILL_LEVLE_UP( &hskill->skill, Pskillid, charaindex );	return;}// 二刀流技能升級void PROFESSION_SKILL_DUAL_WEAPON_LVEVEL_UP( int charaindex, char *name ){	int skill=-1, arm = 0, shield = 0;	int skillid=0, Pskillid=0, i;	char *skill_name;	CHAR_HaveSkill* hskill;	// 檢查左右手裝備	for( i = 0 ; i < CHAR_EQUIPPLACENUM ; i ++ ){		int id = CHAR_getItemIndex(charaindex,i);		if( ITEM_CHECKINDEX(id) ){			if( i == CHAR_ARM ) arm = 1;			else if( i == CHAR_EQSHIELD ) shield = 1;					}	}	if( arm != 1 || shield != 1 )	return;		for( i=0; i<CHAR_SKILLMAXHAVE; i++ ){				// 技能ID		skillid = CHAR_getCharSkill( charaindex, i);		Pskillid = PROFESSION_SKILL_getskillArray( skillid);				if( Pskillid < 0 ) continue;		// 技能名稱		skill_name = PROFESSION_SKILL_getChar( Pskillid, PROFESSION_SKILL_FUNCNAME);		if( skill_name == NULL ) continue;					if( (strcmp( skill_name , name )) == 0 ){			skill = i;		break;		}	}	if( (skill < 0) || (skill > CHAR_SKILLMAXHAVE) ) return;	skillid = CHAR_getCharSkill( charaindex, skill);	Pskillid = PROFESSION_SKILL_getskillArray( skillid);	if( Pskillid == -1 )	return;	// 人物技能等級	hskill = CHAR_getCharHaveSkill( charaindex, skill );		// 一般技能升級	PROFESSION_NORMAL_SKILL_LEVLE_UP( &hskill->skill, Pskillid, charaindex );	return;}// 武器專精技能升級void PROFESSION_SKILL_WEAPON_FOCUS_LVEVEL_UP( int charaindex, char *name ){	int skill = -1;	int skillid=0, Pskillid = 0, i;	char *skill_name, *pszOption, *pszP, diff[20];	int WeaponType = -1;	CHAR_HaveSkill* hskill;	memset( diff, -1, sizeof(diff) );	// 裝備武器	WeaponType = BATTLE_GetWepon( charaindex );	switch( WeaponType ){		case ITEM_AXE:					sprintf( diff, "斧" ); break;		case ITEM_CLUB:					sprintf( diff, "棍" ); break;		case ITEM_SPEAR:				sprintf( diff, "槍" ); break;		case ITEM_BOW:					sprintf( diff, "弓" ); break;		case ITEM_BOOMERANG:	// 回旋標				sprintf( diff, "鏢" ); break;		case ITEM_BOUNDTHROW:	// 投擲斧頭			sprintf( diff, "投" ); break;		case ITEM_BREAKTHROW:	// 投擲石			sprintf( diff, "石" ); break;		default: 			sprintf( diff, "無" ); break;	}	for( i=0; i<CHAR_SKILLMAXHAVE; i++ ){		// 技能ID		skillid = CHAR_getCharSkill( charaindex, i);		Pskillid = PROFESSION_SKILL_getskillArray( skillid);				if( Pskillid < 0 ) continue;		// 技能名稱		skill_name = PROFESSION_SKILL_getChar( Pskillid, PROFESSION_SKILL_FUNCNAME);		if( skill_name == NULL ) continue;			// 技能參數		pszOption = PROFESSION_SKILL_getChar( Pskillid, PROFESSION_SKILL_OPTION);		if( pszOption == NULL ) continue;				if( (strcmp( skill_name , name )) == 0 ){			if( (pszP=strstr( pszOption, diff ))!=NULL ){				skill = i;		break;			}		}	}		if( (skill < 0) || (skill > CHAR_SKILLMAXHAVE) ) return;	skillid = CHAR_getCharSkill( charaindex, skill);	Pskillid = PROFESSION_SKILL_getskillArray( skillid);	if( Pskillid == -1 )	return;	// 人物技能等級	hskill = CHAR_getCharHaveSkill( charaindex, skill );		// 一般技能升級	PROFESSION_NORMAL_SKILL_LEVLE_UP( &hskill->skill, Pskillid, charaindex );	return;}// 耗損 MP int PROFESSION_SKILL_DEC_COST_MP( int charaindex, int skill, int Pskillid, int skill_level ){			if(skill_level > 0){		int	dec_mp;		int old_mp = CHAR_getInt( charaindex, CHAR_MP );		int mp=0;					// 取出耗損 MP 		if( (dec_mp = PROFESSION_MAGIC_COST_MP( charaindex, skill )) == -1 )			dec_mp = PROFESSION_SKILL_getInt( Pskillid, PROFESSION_SKILL_COST_MP );		// 檢查 MP量					if( old_mp < dec_mp ) return -1;				// 嗜血成性 		if( Pskillid != 11 #ifdef _PROFESSION_ADDSKILL		//	&& Pskillid != 2 //針針相對不扣 MP#endif			)			if( dec_mp <= 0 ) return -1;				// 扣掉人物 MP		mp = old_mp - dec_mp;		if( mp < 0 ) mp = 0;		CHAR_setInt( charaindex , CHAR_MP , mp );		CHAR_send_P_StatusString( charaindex , CHAR_P_STRING_MP);			return 1;	}		return -1;}// 一般技能升級void PROFESSION_NORMAL_SKILL_LEVLE_UP(Skill *skill, int Pskillid, int charaindex ){	int skill_level = 0, up_fix_value = 0;	int rand_num = RAND( 0, 10000 ), rand_num2 = 0;		// 技能等級到達上限不升級	skill_level = SKILL_getRealInt( skill, SKILL_LEVEL);	if( skill_level >= PROFESSION_SKILL_MAX_LEVEL * 100 ) return;	// 升級修正數值	up_fix_value = PROFESSION_SKILL_getInt( Pskillid, PROFESSION_SKILL_FIX_VALUE) * 100;	rand_num2 = RAND( 0, up_fix_value);	// 升級檢定#ifdef _75_TEST#else	if( rand_num > skill_level + rand_num2){#endif			// 增加熟練度		skill_level += PROFESSION_SKILL_ADD_POINT;	#ifdef _75_TEST		if( skill_level > 10000 )			skill_level = 10000;#endif		SKILL_setInt( skill, SKILL_LEVEL, skill_level );			if( ( skill_level % 100 ) == 0 ){			char msg[256];			sprintf( msg, "%s技能熟練度上升為%d", 	PROFESSION_SKILL_getChar( Pskillid, PROFESSION_SKILL_NAME), skill_level/100 );			CHAR_talkToCli( charaindex, -1, msg, CHAR_COLORYELLOW);			CHAR_sendStatusString( charaindex , "S");									// 職業經驗值增加					PROFESSION_LEVEL_CHECK_UP( charaindex );		}#ifdef _75_TEST#else	}#endif	return;}void PROFESSION_LEVEL_CHECK_UP( int charaindex ){	int skill_level_add = 0, skill_level_sum = 0, i = 0;	int old_level = CHAR_getInt( charaindex, PROFESSION_LEVEL );	int next_level_need_point = 9999999;	CHAR_HaveSkill* hskill;	// 下一級職業升級點數	next_level_need_point = old_level * 70 * 100;			for( i=0; i<CHAR_SKILLMAXHAVE; i++ ){		int skillID = -1;		// 技能等級		hskill = CHAR_getCharHaveSkill( charaindex, i );		skillID = SKILL_getInt( &hskill->skill, SKILL_IDENTITY);		if( skillID <= 0 ) continue;		// 共通技能熟練度 50		if( (skillID == 63) || (skillID == 64) || (skillID == 65) ){			skill_level_add = 50*100;			}else{			skill_level_add = SKILL_getRealInt( &hskill->skill, SKILL_LEVEL);		}				skill_level_sum += skill_level_add;		}		print("\n技能熟練度上升 ==> 當前熟練度點數(%d) 下一級熟練度升級點數(%d)", skill_level_sum, next_level_need_point );	// 技能熟練度達到下一級職業升級點數時,職業等級增加	if(  skill_level_sum >= next_level_need_point ){		int old_skill_point = CHAR_getInt( charaindex, PROFESSION_SKILL_POINT );		int next_skill_point = old_skill_point+1;		char msg[64];		print("\n職業等級上升 ==> 當前職業等級點數(%d) 下一級職業等級升級點數(%d)", old_skill_point, next_skill_point );				CHAR_setInt( charaindex, PROFESSION_LEVEL, old_level + 1 );		CHAR_setInt( charaindex, PROFESSION_SKILL_POINT, next_skill_point );		CHAR_sendStatusString( charaindex , "P");				CHAR_sendCToArroundCharacter( CHAR_getWorkInt( charaindex , CHAR_WORKOBJINDEX ));		sprintf( msg, "職業等級上升為%d級,技能點數上升1點", old_level + 1 );		CHAR_talkToCli( charaindex, -1, msg, CHAR_COLORYELLOW);	}}// 增加技能int PROFESSION_SKILL_ADDSK( int charaindex, int skill, int level ){	int i;	CHAR_HaveSkill *pSkil;	if( level > 100 )		level = 100;	else if( level < 1 )	level = 1;	for( i = 0; i < CHAR_SKILLMAXHAVE; i ++ ){		int skill_id = -1;		pSkil = CHAR_getCharHaveSkill( charaindex, i );		skill_id = SKILL_getInt( &pSkil->skill, SKILL_IDENTITY);		if( skill == skill_id && skill_id != -1 ){			CHAR_talkToCli(charaindex,-1, "你已經學習過此技能", CHAR_COLORYELLOW);			return -1;		}		if( pSkil == NULL )continue;		if( pSkil->use != 0 )continue;		break;	}	if( i >= CHAR_SKILLMAXHAVE ){		CHAR_talkToCli(charaindex,-1, "技能數量已達上限", CHAR_COLORYELLOW);		return -1;	}else{		level *= 100;		SKILL_makeSkillData( &pSkil->skill, skill, level);		pSkil->use = TRUE;	}	CHAR_sendStatusString( charaindex , "S");		return 1;}void profession_common_fun( int charaindex, int toNo, int skill_level, int array, int com1 ){	CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, com1 );	CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNo );	CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );	CHAR_SETWORKINT_HIGH( charaindex, CHAR_WORKBATTLECOM3, skill_level);	CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, array);#ifdef _PROFESSION_ADDSKILL	if( com1 == BATTLE_COM_S_DOOM 		/*&& CHAR_getWorkInt( charaindex, CHAR_DOOMTIME) == 0*/ ){		CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_NONE );		CHAR_setWorkInt( charaindex, CHAR_WORK_com1, com1 );		CHAR_setWorkInt( charaindex, CHAR_WORK_toNo, toNo );		CHAR_setWorkInt( charaindex, CHAR_WORK_mode, BATTLE_CHARMODE_C_OK );		CHAR_setWorkInt( charaindex, CHAR_WORK_skill_level, skill_level );		CHAR_setWorkInt( charaindex, CHAR_WORK_array, array );		CHAR_setWorkInt( charaindex, CHAR_DOOMTIME, 3);	}	else if( com1 == BATTLE_COM_S_FIRE_SPEAR 			/*&& CHAR_getWorkInt( charaindex, CHAR_DOOMTIME) == 0*/ ){		CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_NONE );		CHAR_setWorkInt( charaindex, CHAR_WORK_com1, com1 );		CHAR_setWorkInt( charaindex, CHAR_WORK_toNo, toNo );		CHAR_setWorkInt( charaindex, CHAR_WORK_mode, BATTLE_CHARMODE_C_OK );		CHAR_setWorkInt( charaindex, CHAR_WORK_skill_level, skill_level );		CHAR_setWorkInt( charaindex, CHAR_WORK_array, array );		CHAR_setWorkInt( charaindex, CHAR_DOOMTIME, 2);	}#endif}/*----------------------------------------------------------------------*/// 以下為職業技能// 巫師技能-火山泉int PROFESSION_volcano_springs( int charaindex, int toNo, int array, char *data, int skill_level ){	profession_common_fun( charaindex, toNo, skill_level, array, BATTLE_COM_S_VOLCANO_SPRINGS );			return TRUE;}// 巫師技能-火星球int PROFESSION_fire_ball( int charaindex, int toNo, int array, char *data, int skill_level ){	profession_common_fun( charaindex, toNo, skill_level, array, BATTLE_COM_S_FIRE_BALL );			return TRUE;}// 巫師技能-火龍槍int PROFESSION_fire_spear( int charaindex, int toNo, int array, char *data, int skill_level ){	profession_common_fun( charaindex, toNo, skill_level, array, BATTLE_COM_S_FIRE_SPEAR );			return TRUE;}// 巫師技能-召雷術int PROFESSION_summon_thunder( int charaindex, int toNo, int array, char *data, int skill_level ){	profession_common_fun( charaindex, toNo, skill_level, array, BATTLE_COM_S_SUMMON_THUNDER );			return TRUE;}// 巫師技能-電流術int PROFESSION_current( int charaindex, int toNo, int array, char *data, int skill_level ){	profession_common_fun( charaindex, toNo, skill_level, array, BATTLE_COM_S_CURRENT );			return TRUE;}// 巫師技能-暴風雨int PROFESSION_storm( int charaindex, int toNo, int array, char *data, int skill_level ){	profession_common_fun( charaindex, toNo, skill_level, array, BATTLE_COM_S_STORM );			return TRUE;}// 巫師技能-冰箭術int PROFESSION_ice_arrow( int charaindex, int toNo, int array, char *data, int skill_level ){	profession_common_fun( charaindex, toNo, skill_level, array, BATTLE_COM_S_ICE_ARROW );			return TRUE;}// 巫師技能-冰爆術int PROFESSION_ice_crack( int charaindex, int toNo, int array, char *data, int skill_level ){	profession_common_fun( charaindex, toNo, skill_level, array, BATTLE_COM_S_ICE_CRACK );			return TRUE;}// 巫師技能-冰鏡術int PROFESSION_ice_mirror( int charaindex, int toNo, int array, char *data, int skill_level ){	profession_common_fun( charaindex, toNo, skill_level, array, BATTLE_COM_S_ICE_MIRROR );			return TRUE;}// 巫師技能-世界末日int PROFESSION_doom( int charaindex, int toNo, int array, char *data, int skill_level ){	profession_common_fun( charaindex, toNo, skill_level, array, BATTLE_COM_S_DOOM );			return TRUE;}// 巫師技能-嗜血成性int PROFESSION_blood( int charaindex, int toNo, int array, char *data, int skill_level ){	profession_common_fun( charaindex, toNo, skill_level, array, BATTLE_COM_S_BLOOD );			return TRUE;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天综合天天综合色| 亚洲一级二级在线| 国产精品综合在线视频| 日韩精品一区二区三区中文精品| 亚洲国产成人va在线观看天堂| 国产成人av电影在线| 国产精品二区一区二区aⅴ污介绍| 国内外精品视频| 中文字幕一区日韩精品欧美| aaa亚洲精品| 日产国产欧美视频一区精品| 日韩美一区二区三区| av一区二区不卡| 毛片av中文字幕一区二区| 国产亚洲一区二区三区四区| 91性感美女视频| 五月综合激情网| 国产精品污网站| 欧美mv和日韩mv国产网站| 在线看国产日韩| 99久久国产免费看| 激情另类小说区图片区视频区| 欧美成人精品高清在线播放| 在线看不卡av| 91免费观看在线| 粉嫩嫩av羞羞动漫久久久 | 中文成人av在线| 日韩精品一区二区三区在线| 91在线视频免费观看| 国产福利精品一区二区| 国产揄拍国内精品对白| 久久综合久久鬼色中文字| eeuss鲁片一区二区三区在线观看| 精品一区二区三区视频| 免费av成人在线| 久久精品国产**网站演员| 日韩电影在线一区二区| 一区二区三区高清在线| 午夜精品久久久久久久久久久| 亚洲综合清纯丝袜自拍| 一区二区三区在线看| 亚洲精品乱码久久久久| 亚洲美女免费视频| 视频一区二区三区入口| 亚洲香蕉伊在人在线观| 亚洲成av人影院| 韩国一区二区视频| 91影院在线免费观看| 欧美性欧美巨大黑白大战| 欧美麻豆精品久久久久久| 欧美成人精品福利| 欧美国产精品中文字幕| 一个色在线综合| 国产一区二区精品在线观看| a4yy欧美一区二区三区| 88在线观看91蜜桃国自产| 久久久精品2019中文字幕之3| 国产精品护士白丝一区av| 日本在线不卡视频| 91丨porny丨首页| 精品国产乱码久久久久久1区2区| 亚洲图片激情小说| 国产专区综合网| 欧美性受xxxx黑人xyx| 国产亚洲视频系列| 捆绑调教美女网站视频一区| 一本一本大道香蕉久在线精品 | 国产尤物一区二区| 成人涩涩免费视频| 精品国产乱码久久久久久久| 亚洲一区二区精品3399| 91在线视频观看| 国产免费观看久久| 国产xxx精品视频大全| 欧美亚洲一区二区在线| 久久久久久久久免费| 国内精品写真在线观看| 久久女同精品一区二区| 精品在线亚洲视频| 久久综合色一综合色88| 久久99久久久久| 欧美videossexotv100| 男女男精品视频| 久久综合色一综合色88| 国产69精品久久久久777| 中文字幕成人在线观看| 99久久国产综合精品色伊| 综合欧美一区二区三区| 日韩国产一二三区| 欧美日韩一区高清| 久久精品国产亚洲5555| 日韩一区二区免费视频| 久久不见久久见免费视频7| 欧美va亚洲va| 91久久国产综合久久| 喷白浆一区二区| 亚洲美女视频在线观看| 日韩精品专区在线影院重磅| 国产精品1区2区3区在线观看| 1区2区3区欧美| 2020国产精品自拍| 91精品国产品国语在线不卡| 国产91在线|亚洲| 秋霞电影网一区二区| 中文字幕亚洲电影| 久久精品水蜜桃av综合天堂| 91精品国产91综合久久蜜臀| 精品国产三级电影在线观看| 日本成人在线一区| 国产精品麻豆一区二区| 日韩一区二区视频| 欧美精品久久久久久久久老牛影院| 久久99精品久久久| 日本在线播放一区二区三区| 亚洲女同ⅹxx女同tv| 国产精品成人一区二区艾草| 久久久久久久久久久久久久久99 | 午夜激情综合网| 依依成人综合视频| 日韩理论电影院| 一区二区在线观看视频在线观看| 中文字幕第一区第二区| 日韩理论片在线| 亚洲综合图片区| 日本视频一区二区| 国产资源精品在线观看| 成人中文字幕合集| 欧美日韩精品专区| 欧美性生活一区| 欧美v亚洲v综合ⅴ国产v| 精品国产一区久久| 国产精品麻豆网站| 亚洲国产sm捆绑调教视频| 免费在线观看日韩欧美| 久久国内精品自在自线400部| 精品一区二区三区日韩| 成人免费视频网站在线观看| 在线观看免费一区| 26uuu成人网一区二区三区| 中文字幕一区日韩精品欧美| 亚洲欧美另类久久久精品| 免费日韩伦理电影| av不卡免费在线观看| 色哟哟亚洲精品| 精品91自产拍在线观看一区| 久久久久国产精品人| 午夜久久久久久久久| 99re8在线精品视频免费播放| 欧美日韩亚州综合| 一区二区三区资源| 国产成人夜色高潮福利影视| 成人黄色在线看| 色天使色偷偷av一区二区| 国产日韩欧美电影| 久久国产三级精品| 欧美精品aⅴ在线视频| 亚洲精品高清视频在线观看| 国产精品一线二线三线精华| 欧美在线观看视频一区二区 | 精品在线免费视频| 91精品国产入口在线| 青娱乐精品在线视频| 欧美日韩夫妻久久| 蜜臀av国产精品久久久久| 制服.丝袜.亚洲.另类.中文| 日本伊人色综合网| www欧美成人18+| 成人蜜臀av电影| 一区二区三区日韩欧美精品 | 欧美三日本三级三级在线播放| 一色桃子久久精品亚洲| 91久久精品国产91性色tv | 亚洲欧美一区二区三区国产精品| 91最新地址在线播放| 亚洲黄色免费电影| 欧美丰满少妇xxxbbb| 国产最新精品免费| 成人免费在线观看入口| 欧美一二三四区在线| 国产成人三级在线观看| 亚洲一区二区三区美女| 日韩一级精品视频在线观看| gogo大胆日本视频一区| 日本不卡一区二区三区高清视频| 国产午夜精品久久久久久免费视 | 成人动漫中文字幕| 日本亚洲免费观看| 亚洲狼人国产精品| 欧美电视剧在线看免费| 欧洲视频一区二区| 午夜国产不卡在线观看视频| 精品国产人成亚洲区| 精品视频一区 二区 三区| 国产不卡在线播放| 另类调教123区| 久久se精品一区精品二区| 午夜日韩在线电影| 日韩电影免费在线| 日韩精品欧美精品| 青青草91视频|