351 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			351 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | 
 | |||
|  | SUB_STATE_ICEROAD_0	<- 0 | |||
|  | SUB_STATE_ICEROAD_1	<- 1 | |||
|  | SUB_STATE_ICEROAD_2	<- 2 | |||
|  | SUB_STATE_ICEROAD_3	<- 3 | |||
|  | SUB_STATE_ICEROAD_4	<- 4 | |||
|  | SUB_STATE_ICEROAD_CASTING	<- 5 | |||
|  | 
 | |||
|  | SKL_LV_0 <- 0 // 卫除渡 mp 模赅榆 | |||
|  | SKL_LV_1 <- 1 // 虽楼卫除 | |||
|  | SKL_LV_2 <- 2 // 桧楼 马模纂 | |||
|  | SKL_LV_3 <- 3 // 桧楼 ?徽 | |||
|  | 
 | |||
|  | 
 | |||
|  | function checkExecutableSkill_IceRoad(obj) | |||
|  | { | |||
|  | 
 | |||
|  | 	if(!obj) return false; | |||
|  | 	 | |||
|  | 	local skill = sq_GetSkill(obj, SKILL_ICEROAD); | |||
|  | 	 | |||
|  | 	if(!skill) return false; | |||
|  | 	 | |||
|  | 	local appendage = obj.GetSquirrelAppendage("Character/ATMage/IceRoad/ap_ATMage_IceRoad.nut"); | |||
|  | 	 | |||
|  | 	if(appendage) { | |||
|  | 		local isvalid = appendage.isValid(); | |||
|  | 		if(isvalid) { | |||
|  | 			sq_SendChangeSkillEffectPacket(obj, SKILL_ICEROAD); | |||
|  | 			//skill.resetCurrentCoolTime(); | |||
|  | 			//skill.setSealActiveFunction(true);	 | |||
|  | 			//local skill_level = sq_GetSkillLevel(obj, SKILL_ICEROAD); | |||
|  | 			//obj.startSkillCoolTime(SKILL_ICEROAD, skill_level, -1); | |||
|  | 			// | |||
|  | 			//appendage.setValid(false); | |||
|  | 			return true; | |||
|  | 		} | |||
|  | 	}	 | |||
|  | 	 | |||
|  | 	if(skill.isInCoolTime()) return false; | |||
|  | 	 | |||
|  | 	local b_useskill = obj.sq_IsUseSkill(SKILL_ICEROAD); | |||
|  | 
 | |||
|  | 	if(b_useskill) { | |||
|  | 		obj.sq_IntVectClear(); | |||
|  | 		obj.sq_IntVectPush(SUB_STATE_ICEROAD_CASTING); // substate撮? | |||
|  | 		obj.sq_AddSetStatePacket(STATE_ICEROAD, STATE_PRIORITY_IGNORE_FORCE, true); | |||
|  | 		return true; | |||
|  | 	} | |||
|  | 
 | |||
|  | 	return false; | |||
|  | 
 | |||
|  | } | |||
|  | 
 | |||
|  | function checkCommandEnable_IceRoad(obj) | |||
|  | { | |||
|  | 
 | |||
|  | 	if(!obj) return false; | |||
|  | 
 | |||
|  | 	local state = obj.sq_GetState(); | |||
|  | 	 | |||
|  | 	if(state == STATE_ATTACK) { | |||
|  | 		// 念瘫潍缣怃朝 ?姜蝶鉴虏 警蜗桧 陛栋?栖棻. 蒙机濠:姜霞热 [2012.04.20] | |||
|  | 		return obj.sq_IsCommandEnable(SKILL_ICEROAD); | |||
|  | 	} | |||
|  | 	 | |||
|  | 
 | |||
|  | 	return true; | |||
|  | 
 | |||
|  | } | |||
|  | 
 | |||
|  | function onSetState_IceRoad(obj, state, datas, isResetTimer) | |||
|  | { | |||
|  | 
 | |||
|  | 	if(!obj) return; | |||
|  | 
 | |||
|  | 	local substate = obj.sq_GetVectorData(datas, 0); | |||
|  | 	obj.setSkillSubState(substate); | |||
|  | 	 | |||
|  | 	obj.sq_StopMove();	 | |||
|  | 	 | |||
|  | 	//obj.sq_SendCreatePassiveObjectPacket(24243, 0, 0, 0, 0); | |||
|  | 	 | |||
|  | 	obj.getVar().clear_vector(); | |||
|  | 	obj.getVar().push_vector(0); | |||
|  | 	obj.getVar().push_vector(0); | |||
|  | 
 | |||
|  | 	if(substate == SUB_STATE_ICEROAD_CASTING) { | |||
|  | 		obj.sq_SetCurrentAnimation(CUSTOM_ANI_ICEROAD_CASTING); | |||
|  | 		 | |||
|  | 		local skillLevel = sq_GetSkillLevel(obj, SKILL_ICEROAD); | |||
|  | 		local castTime = sq_GetCastTime(obj, SKILL_ICEROAD, skillLevel); | |||
|  | 		local animation = sq_GetCurrentAnimation(obj); | |||
|  | 		local startTime = sq_GetFrameStartTime(animation, 16); | |||
|  | 		local speedRate = startTime.tofloat() / castTime.tofloat(); | |||
|  | 		obj.sq_SetStaticSpeedInfo(SPEED_TYPE_CAST_SPEED, SPEED_TYPE_CAST_SPEED, | |||
|  | 			SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, speedRate, speedRate); | |||
|  | 
 | |||
|  | 		obj.sq_PlaySound("MW_ICEROAD"); | |||
|  | 		sq_StartDrawCastGauge(obj, startTime, true); | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_0) { | |||
|  | 		//CUSTOM_ANI_ICEROAD | |||
|  | 		obj.sq_SetCurrentAnimation(CUSTOM_ANI_ICEROAD); | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_1) { | |||
|  | 		// SUB_STATE_ICEROAD_1 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_2) { | |||
|  | 		// SUB_STATE_ICEROAD_2 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_3) { | |||
|  | 		// SUB_STATE_ICEROAD_3 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_4) { | |||
|  | 		// SUB_STATE_ICEROAD_4 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	 | |||
|  | 
 | |||
|  | } | |||
|  | 
 | |||
|  | function prepareDraw_IceRoad(obj) | |||
|  | { | |||
|  | 
 | |||
|  | 	if(!obj) return; | |||
|  | 
 | |||
|  | 	local substate = obj.getSkillSubState(); | |||
|  | 
 | |||
|  | 	if(substate == SUB_STATE_ICEROAD_0) { | |||
|  | 		// SUB_STATE_ICEROAD_0 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_1) { | |||
|  | 		// SUB_STATE_ICEROAD_1 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_2) { | |||
|  | 		// SUB_STATE_ICEROAD_2 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_3) { | |||
|  | 		// SUB_STATE_ICEROAD_3 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_4) { | |||
|  | 		// SUB_STATE_ICEROAD_4 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	 | |||
|  | 
 | |||
|  | } | |||
|  | 
 | |||
|  | function onProc_IceRoad(obj) | |||
|  | { | |||
|  | 
 | |||
|  | 	if(!obj) return; | |||
|  | 
 | |||
|  | 	local substate = obj.getSkillSubState(); | |||
|  | 
 | |||
|  | 	local pAni = obj.sq_GetCurrentAni(); | |||
|  | 	local frmIndex = obj.sq_GetCurrentFrameIndex(pAni); | |||
|  | 	local currentT = sq_GetCurrentTime(pAni); | |||
|  | 
 | |||
|  | 	if(substate == SUB_STATE_ICEROAD_0) { | |||
|  | 		if(frmIndex >= 7) { | |||
|  | 			if(!obj.getVar().get_vector(0)) { | |||
|  | 			 | |||
|  | 				local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, SKILL_ICEROAD, false, "Character/ATMage/IceRoad/ap_ATMage_IceRoad.nut", false); | |||
|  | 				 | |||
|  | 				// 罹晦怃 append 蒙机		 | |||
|  | 				CNSquirrelAppendage.sq_Append(appendage, obj, obj); | |||
|  | 				// | |||
|  | 
 | |||
|  | 				if(obj.isMyControlObject()) { | |||
|  | 					local skill = sq_GetSkill(obj, SKILL_ICEROAD); | |||
|  | 					skill.setSealActiveFunction(false); | |||
|  | 				} | |||
|  | 
 | |||
|  | 				 | |||
|  | 				obj.getVar().set_vector(0, 1); | |||
|  | 			} | |||
|  | 		} | |||
|  | 		 | |||
|  | 		if(frmIndex >= 4) { | |||
|  | 			if(!obj.getVar().get_vector(1)) { | |||
|  | 				local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, SKILL_ICEROAD, true, "Appendage/Character/ap_atmage_effect.nut", true); | |||
|  | 				obj.getVar().set_vector(1, 1); | |||
|  | 			} | |||
|  | 		} | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_1) { | |||
|  | 		// SUB_STATE_ICEROAD_1 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_2) { | |||
|  | 		// SUB_STATE_ICEROAD_2 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_3) { | |||
|  | 		// SUB_STATE_ICEROAD_3 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_4) { | |||
|  | 		// SUB_STATE_ICEROAD_4 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	 | |||
|  | 
 | |||
|  | } | |||
|  | 
 | |||
|  | function onProcCon_IceRoad(obj) | |||
|  | { | |||
|  | 
 | |||
|  | 	if(!obj) return; | |||
|  | 
 | |||
|  | 	local substate = obj.getSkillSubState(); | |||
|  | 	 | |||
|  | 	//obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false); | |||
|  | 
 | |||
|  | 	if(substate == SUB_STATE_ICEROAD_0) { | |||
|  | 		// SUB_STATE_ICEROAD_0 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_1) { | |||
|  | 		// SUB_STATE_ICEROAD_1 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_2) { | |||
|  | 		// SUB_STATE_ICEROAD_2 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_3) { | |||
|  | 		// SUB_STATE_ICEROAD_3 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_4) { | |||
|  | 		// SUB_STATE_ICEROAD_4 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	 | |||
|  | 
 | |||
|  | } | |||
|  | 
 | |||
|  | function onEndCurrentAni_IceRoad(obj) | |||
|  | { | |||
|  | 
 | |||
|  | 	if(!obj) return; | |||
|  | 
 | |||
|  | 	local substate = obj.getSkillSubState(); | |||
|  | 
 | |||
|  | 	if(substate == SUB_STATE_ICEROAD_CASTING) | |||
|  | 	{ | |||
|  | 		if(obj.isMyControlObject()) | |||
|  | 		{ | |||
|  | 			obj.sq_IntVectClear(); | |||
|  | 			obj.sq_IntVectPush(SUB_STATE_ICEROAD_0); // substate撮? | |||
|  | 			obj.sq_AddSetStatePacket(STATE_ICEROAD, STATE_PRIORITY_IGNORE_FORCE, true); | |||
|  | 		} | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_0) | |||
|  | 	{ | |||
|  | 		// SUB_STATE_ICEROAD_0 怃粽蝶才桧? 蒙机 | |||
|  | 		if(obj.isMyControlObject()) | |||
|  | 		{ | |||
|  | 			obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false); | |||
|  | 		} | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_1) { | |||
|  | 		// SUB_STATE_ICEROAD_1 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_2) { | |||
|  | 		// SUB_STATE_ICEROAD_2 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_3) { | |||
|  | 		// SUB_STATE_ICEROAD_3 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_4) { | |||
|  | 		// SUB_STATE_ICEROAD_4 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	 | |||
|  | 
 | |||
|  | } | |||
|  | 
 | |||
|  | function onKeyFrameFlag_IceRoad(obj, flagIndex) | |||
|  | { | |||
|  | 
 | |||
|  | 	if(!obj) return false; | |||
|  | 
 | |||
|  | 	local substate = obj.getSkillSubState(); | |||
|  | 
 | |||
|  | 	if(substate == SUB_STATE_ICEROAD_0) { | |||
|  | 		// SUB_STATE_ICEROAD_0 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_1) { | |||
|  | 		// SUB_STATE_ICEROAD_1 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_2) { | |||
|  | 		// SUB_STATE_ICEROAD_2 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_3) { | |||
|  | 		// SUB_STATE_ICEROAD_3 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_4) { | |||
|  | 		// SUB_STATE_ICEROAD_4 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	 | |||
|  | 
 | |||
|  | 	return false; | |||
|  | 
 | |||
|  | } | |||
|  | 
 | |||
|  | function onEndState_IceRoad(obj, new_state) | |||
|  | { | |||
|  | 
 | |||
|  | 	if(!obj) return; | |||
|  | 
 | |||
|  | 	local substate = obj.getSkillSubState(); | |||
|  | 
 | |||
|  | 	if(substate == SUB_STATE_ICEROAD_0) { | |||
|  | 		// SUB_STATE_ICEROAD_0 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_1) { | |||
|  | 		// SUB_STATE_ICEROAD_1 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_2) { | |||
|  | 		// SUB_STATE_ICEROAD_2 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_3) { | |||
|  | 		// SUB_STATE_ICEROAD_3 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_4) { | |||
|  | 		// SUB_STATE_ICEROAD_4 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	 | |||
|  | 	// 蝶才桧? 谦猿 ?擎 镞模 肾历棻贼 议蝶? 啪桧虽 桡据 | |||
|  | 	sq_EndDrawCastGauge(obj); | |||
|  | 
 | |||
|  | } | |||
|  | 
 | |||
|  | function onAfterSetState_IceRoad(obj, state, datas, isResetTimer) | |||
|  | { | |||
|  | 
 | |||
|  | 	if(!obj) return; | |||
|  | 
 | |||
|  | 	local substate = obj.getSkillSubState(); | |||
|  | 
 | |||
|  | 	if(substate == SUB_STATE_ICEROAD_0) { | |||
|  | 		// SUB_STATE_ICEROAD_0 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_1) { | |||
|  | 		// SUB_STATE_ICEROAD_1 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_2) { | |||
|  | 		// SUB_STATE_ICEROAD_2 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_3) { | |||
|  | 		// SUB_STATE_ICEROAD_3 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	else if(substate == SUB_STATE_ICEROAD_4) { | |||
|  | 		// SUB_STATE_ICEROAD_4 怃粽蝶才桧? 蒙机 | |||
|  | 	} | |||
|  | 	 | |||
|  | 
 | |||
|  | } | |||
|  |  |