202 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			202 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | HSS_SUB_STATE_READY		<- 0 | ||
|  | HSS_SUB_STATE_ATTACK_1	<- 1 | ||
|  | HSS_SUB_STATE_ATTACK_2  <- 2 | ||
|  | HSS_SUB_STATE_ATTACK_3	<- 3 | ||
|  | HSS_SUB_STATE_ATTACK_4	<- 4 | ||
|  | HSS_SUB_STATE_LAST		<- 5 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | // 蝶鉴 撮睡嫦翕 亵勒击 虏菟横舆朝 ?热殓栖棻.. 嫦翕 亵勒 state朝 桧嘐 模蝶缣怃 掘?肾横 毡蝗栖棻. 桧够缣怃 useskill娄 setstate蒂 虽姜?舆贼 腌栖棻. | ||
|  | function checkExecutableSkill_HighSpeedSlash(obj)   | ||
|  | { | ||
|  | 	if(!obj) return false; | ||
|  | 	local b_useskill = obj.sq_IsUseSkill(SKILL_HIGH_SPEED_SLASH); | ||
|  | 	if(b_useskill) { | ||
|  | 		obj.sq_IntVectClear(); | ||
|  | 		obj.sq_IntVectPush(HSS_SUB_STATE_READY); // substate撮? | ||
|  | 		obj.sq_addSetStatePacket(STATE_HIGH_SPEED_SPLASH, STATE_PRIORITY_IGNORE_FORCE, true); | ||
|  | 		return true; | ||
|  | 	}	 | ||
|  | 	 | ||
|  | 	return false; | ||
|  | } | ||
|  | 
 | ||
|  | // 蝶鉴嬴桧夔 ?撩? 亵勒击 评虽朝 ?热殓栖棻. true蒂 葬欐?贼 蝶鉴 嬴桧夔桧 ?撩?陛 腌栖棻. (嫦翕亵勒 state朝  模蝶缣怃 籀葬腌栖棻.) | ||
|  | function checkCommandEnable_HighSpeedSlash(obj) | ||
|  | { | ||
|  | 	if(!obj) return false; | ||
|  | 	 | ||
|  | 	local state = obj.sq_GetSTATE(); | ||
|  | 	 | ||
|  | 	if(state == STATE_ATTACK) { | ||
|  | 		return obj.sq_IsCommandEnable(SKILL_HIGH_SPEED_SLASH); // 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20] obj.sq_IsCommandEnable(SKILL_HIGH_SPEED_SLASH); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	return true; | ||
|  | } | ||
|  | 
 | ||
|  | //------------------------------------------------------------------------------ | ||
|  | function onProc_HighSpeedSlash(obj) | ||
|  | {	 | ||
|  | 	if(!obj) return; | ||
|  | 	if(obj.isMyControlObject()) | ||
|  | 	{ | ||
|  | 		obj.setSkillCommandEnable(SKILL_HIGH_SPEED_SLASH,true); | ||
|  | 		local subState = obj.getSkillSubState(); | ||
|  | 		if(subState >= HSS_SUB_STATE_ATTACK_1 && subState <= HSS_SUB_STATE_ATTACK_4) | ||
|  | 		{	 | ||
|  | 			 | ||
|  | 			local b_useskill = obj.sq_IsEnterSkill(SKILL_HIGH_SPEED_SLASH);			 | ||
|  | 			 | ||
|  | 			if(b_useskill != -1) | ||
|  | 			{ | ||
|  | 				local sq_var = obj.getVar(); | ||
|  | 				sq_var.setBool(2,true); | ||
|  | 			} | ||
|  | 		} | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | function onEndState_HighSpeedSlash(obj, newState) | ||
|  | { | ||
|  | 	if(!obj) return; | ||
|  | 	if(newState != STATE_HIGH_SPEED_SPLASH) { | ||
|  | 		obj.setCarryWeapon(true); | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | function sendSubState_HighSpeedSlash(obj, subState) | ||
|  | {	 | ||
|  | 	if(!obj) return; | ||
|  | 	 | ||
|  | 	if(obj.sq_isMyControlObject()) { | ||
|  | 		obj.sq_IntVectClear(); | ||
|  | 		obj.sq_IntVectPush(subState); // substate撮? | ||
|  | 		obj.sq_addSetStatePacket(STATE_HIGH_SPEED_SPLASH, STATE_PRIORITY_USER, true); | ||
|  | 	}	 | ||
|  | } | ||
|  | 
 | ||
|  | // state蒂 撮??坚 籀挤戏煎 菟横螃啪 腌栖棻. 陕谦 葬模蝶蒂 撮??栖棻.  | ||
|  | function onSetState_HighSpeedSlash(obj, state, datas, isResetTimer) | ||
|  | {		 | ||
|  | 	local sq_var = obj.getVar(); | ||
|  | 	local subState = obj.sq_getVectorData(datas, 0); | ||
|  | 	obj.setSkillSubState(subState); | ||
|  | 	 | ||
|  | 	//奢鳝 瞳辨 | ||
|  | 	obj.sq_setCurrentAttackInfo(CUSTOM_ATTACKINFO_HIGH_SPEED_SLASH);	 | ||
|  | 		 | ||
|  | 	if(subState == HSS_SUB_STATE_READY) | ||
|  | 	{		 | ||
|  | 		sq_var.setInt(0,0);			   // ?营暧 棻钦 ?? ?热 蟾晦?	 | ||
|  | 		sq_var.setFloat(1,100.0);			   // 楼紫 隶陛徽 蟾晦?			  | ||
|  | 		sq_var.setBool(2,false);	   // 郦殓溘 蟾晦? | ||
|  | 		 | ||
|  | 		obj.sq_stopMove(); | ||
|  | 		obj.sq_setCurrentAnimation(CUSTOM_ANI_HIGH_SPEED_READY);		 | ||
|  | 		obj.sq_PlaySound("PR_FASTCUT_READY"); | ||
|  | 	} | ||
|  | 	else if(subState == HSS_SUB_STATE_ATTACK_1) | ||
|  | 	{	 | ||
|  | 		if(obj.isCarryWeapon()) | ||
|  | 			obj.setCarryWeapon(false); | ||
|  | 		obj.sq_setCurrentAnimation(CUSTOM_ANI_HIGH_SPEED_ATTACK_1);		 | ||
|  | 		obj.sq_PlaySound("FASTCUT_SWISH"); | ||
|  | 	} | ||
|  | 	else if(subState == HSS_SUB_STATE_ATTACK_2) | ||
|  | 	{	 | ||
|  | 		obj.sq_setCurrentAnimation(CUSTOM_ANI_HIGH_SPEED_ATTACK_2); | ||
|  | 		obj.sq_PlaySound("FASTCUT_SWISH"); | ||
|  | 	} | ||
|  | 	else if(subState == HSS_SUB_STATE_ATTACK_3) | ||
|  | 	{	 | ||
|  | 		obj.sq_setCurrentAnimation(CUSTOM_ANI_HIGH_SPEED_ATTACK_3); | ||
|  | 		obj.sq_PlaySound("FASTCUT_SWISH"); | ||
|  | 	} | ||
|  | 	else if(subState == HSS_SUB_STATE_ATTACK_4) | ||
|  | 	{	 | ||
|  | 		obj.sq_setCurrentAnimation(CUSTOM_ANI_HIGH_SPEED_ATTACK_4); | ||
|  | 		obj.sq_PlaySound("FASTCUT_SWISH"); | ||
|  | 	} | ||
|  | 	else if(subState == HSS_SUB_STATE_LAST) | ||
|  | 	{	 | ||
|  | 		obj.sq_setCurrentAnimation(CUSTOM_ANI_HIGH_SPEED_LAST); | ||
|  | 		obj.sq_setCurrentAttackInfo(CUSTOM_ATTACKINFO_HIGH_SPEED_SLASH_LAST);	 | ||
|  | 		obj.sq_PlaySound("FASTCUT_WHOOSH"); | ||
|  | 		obj.sq_PlaySound("PR_FASTCUT"); | ||
|  | 	} | ||
|  | 	 | ||
|  | 	if(subState >= HSS_SUB_STATE_ATTACK_1 && subState <= HSS_SUB_STATE_ATTACK_4) | ||
|  | 	{	 | ||
|  | 		local isKeyInput = sq_var.getBool(2); | ||
|  | 		if(isKeyInput) {  //郦殓溘桧 毡历棻. | ||
|  | 			local speedUpRate = sq_var.getFloat(1); // 楼紫 隶陛徽 | ||
|  | 			 | ||
|  | 			//楼紫 隶陛.  | ||
|  | 			local intDataSpeedUpRate = obj.sq_getIntData(0); | ||
|  | 			local maxSpeedUpRate = obj.sq_getIntData(1); | ||
|  | 			 | ||
|  | 			maxSpeedUpRate = maxSpeedUpRate.tofloat(); | ||
|  | 			intDataSpeedUpRate = (intDataSpeedUpRate.tofloat() + 100.0) / 100; | ||
|  | 			speedUpRate = speedUpRate * intDataSpeedUpRate.tofloat(); | ||
|  | 			 | ||
|  | 			if(speedUpRate > maxSpeedUpRate) | ||
|  | 				speedUpRate = maxSpeedUpRate; | ||
|  | 			 | ||
|  | 			sq_var.setBool(2,false); | ||
|  | 			sq_var.setFloat(1,speedUpRate); //?营 楼紫 侦褐			 | ||
|  | 						 | ||
|  | 			if(speedUpRate > 0) | ||
|  | 			{ | ||
|  | 				local ani = obj.sq_getCurrentAni(); | ||
|  | 				ani.setSpeedRate(speedUpRate);				 | ||
|  | 				//print("subState" + subState + "speedUpRate : "+speedUpRate);								 | ||
|  | 			} | ||
|  | 		} | ||
|  | 		//print("DelaySum : " + obj.sq_getDelaySum()); | ||
|  | 	} | ||
|  | 	 | ||
|  | 	obj.sq_setAttackPowerWithPassive(SKILL_HIGH_SPEED_SLASH, state, -1,1,1.0); | ||
|  | 	 | ||
|  | } | ||
|  | 
 | ||
|  | function onEndCurrentAni_HighSpeedSlash(obj) | ||
|  | { | ||
|  | 	local sq_var = obj.getVar(); | ||
|  | 	local subStateIndex = obj.getSkillSubState(); | ||
|  | 	local currentHitCount = sq_var.getInt(0); | ||
|  | 	local maxHitCount = obj.sq_getLevelData(0); | ||
|  | 	 | ||
|  | 	if(subStateIndex < HSS_SUB_STATE_LAST && currentHitCount >= maxHitCount){		 | ||
|  | 		sendSubState_HighSpeedSlash(obj,HSS_SUB_STATE_LAST); | ||
|  | 		return; | ||
|  | 	}	 | ||
|  | 	sq_var.setInt(0,currentHitCount+1); //棻钦?? ?热 侦褐 | ||
|  | 	 | ||
|  | 	if(subStateIndex == HSS_SUB_STATE_READY) | ||
|  | 		sendSubState_HighSpeedSlash(obj, HSS_SUB_STATE_ATTACK_1); | ||
|  | 	else if(subStateIndex == HSS_SUB_STATE_ATTACK_1) | ||
|  | 		sendSubState_HighSpeedSlash(obj, HSS_SUB_STATE_ATTACK_2); | ||
|  | 	else if(subStateIndex == HSS_SUB_STATE_ATTACK_2) | ||
|  | 		sendSubState_HighSpeedSlash(obj, HSS_SUB_STATE_ATTACK_3); | ||
|  | 	else if(subStateIndex == HSS_SUB_STATE_ATTACK_3) | ||
|  | 		sendSubState_HighSpeedSlash(obj, HSS_SUB_STATE_ATTACK_4); | ||
|  | 	else if(subStateIndex == HSS_SUB_STATE_ATTACK_4) | ||
|  | 		sendSubState_HighSpeedSlash(obj, HSS_SUB_STATE_ATTACK_1); | ||
|  | 	else if(subStateIndex == HSS_SUB_STATE_LAST){ | ||
|  | 		obj.sq_addSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);		 | ||
|  | 	} | ||
|  | 	 | ||
|  | 	 | ||
|  | } | ||
|  | 
 | ||
|  | function onKeyFrameFlag_HighSpeedSlash(obj,flagIndex) | ||
|  | { | ||
|  | 	//if(flagIndex == 1) | ||
|  | 		 | ||
|  | 		 | ||
|  | 	return true; | ||
|  | } |