122 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			122 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | 
 | ||
|  | function onAfterSetState_ElementalChange(obj, state, datas, isResetTimer) | ||
|  | { | ||
|  | 	obj.sq_SetStaticSpeedInfo(SPEED_TYPE_CAST_SPEED, SPEED_TYPE_CAST_SPEED, | ||
|  | 		SPEED_VALUE_DEFAULT, SPEED_VALUE_DEFAULT, 1.0, 1.0); | ||
|  | 		 | ||
|  | 	local throwState = obj.getThrowState(); | ||
|  | 	 | ||
|  | 	if (throwState == 1) | ||
|  | 	{		 | ||
|  | 		// 楼撩嫦翕 appendage 勘横舆晦 | ||
|  | 		local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, SKILL_ELEMENTAL_CHANGE, false, "Character/ATMage/ElementalChange/ap_ATMage_Elemental_Change.nut", false); | ||
|  | 		local skillLevel = sq_GetSkillLevel(obj, SKILL_ELEMENTAL_CHANGE); | ||
|  | 		local validTime = sq_GetLevelData(obj, SKILL_ELEMENTAL_CHANGE, 0, skillLevel);  | ||
|  | 		 | ||
|  | 		if (appendage != null) | ||
|  | 		{ | ||
|  | 			// 帼? UI 轿溘 横?萄蒂 勘横舆晦 瞪缣 ?轿肾横捡 ?栖棻. | ||
|  | 			appendage.setAppendCauseSkill(BUFF_CAUSE_SKILL, sq_getJob(obj), SKILL_ELEMENTAL_CHANGE, skillLevel); | ||
|  | 			appendage.sq_SetValidTime(validTime);			 | ||
|  | 			appendage.setBuffIconImage(55); | ||
|  | 			appendage.setEnableIsBuff(true); | ||
|  | 			CNSquirrelAppendage.sq_AppendAppendageID(appendage, obj, obj, APID_SKILL_ELEMENTAL_CHANGE, false); | ||
|  | 		} | ||
|  | 		 | ||
|  | 		// 楼撩 尔?暧 楼撩击 夥脯 遽棻.		 | ||
|  | 		local skillLevel = sq_GetSkillLevel(obj, SKILL_ELEMENTAL_SHIELD); | ||
|  | 		if(skillLevel > 0)		 | ||
|  | 		{				 | ||
|  | 			sq_RemoveChangeStatus(obj, APID_AT_MAGE_ELEMENT_SHIELD); | ||
|  | 			 | ||
|  | 			local elementalType = obj.getThrowElement();	 | ||
|  | 			local upValue = sq_GetIntData(obj, SKILL_ELEMENTAL_SHIELD, 0); | ||
|  | 			local ap = sq_CreateChangeStatus(CHANGE_STATUS_TYPE_ELEMENT_TOLERANCE_FIRE + elementalType, false, upValue.tofloat() , 0); | ||
|  | 			if (ap) | ||
|  | 			{ | ||
|  | 				ap.getAppendageInfo().setValidTime(validTime);				 | ||
|  | 				ap.sq_Append(obj, obj, APID_AT_MAGE_ELEMENT_SHIELD, 0, null); | ||
|  | 			}			 | ||
|  | 		} | ||
|  | 		 | ||
|  | 		local element = obj.getThrowElement(); | ||
|  | 		local x = obj.getXPos(); | ||
|  | 		local y = obj.getYPos() + 1; | ||
|  | 		local z = obj.getZPos(); | ||
|  | 		 | ||
|  | 		if (element == ENUM_ELEMENT_FIRE) | ||
|  | 			createAnimationPooledObject(obj, "Character/Mage/Effect/Animation/ATElementalChange/00_fire_dodge.ani", true, x, y, z); | ||
|  | 		else if (element == ENUM_ELEMENT_WATER) | ||
|  | 			createAnimationPooledObject(obj, "Character/Mage/Effect/Animation/ATElementalChange/00_ice_dodge.ani", true, x, y, z); | ||
|  | 		else if (element == ENUM_ELEMENT_DARK) | ||
|  | 			createAnimationPooledObject(obj, "Character/Mage/Effect/Animation/ATElementalChange/01_dark_dodge.ani", true, x, y, z); | ||
|  | 		else if (element == ENUM_ELEMENT_LIGHT) | ||
|  | 			createAnimationPooledObject(obj, "Character/Mage/Effect/Animation/ATElementalChange/00_light_dodge.ani", true, x, y, z);		 | ||
|  | 	} | ||
|  | 	else if (throwState == 3)  | ||
|  | 	{ | ||
|  | 		obj.sq_PlaySound("PCHANGE"); | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | function onAfterSetState_ManaBurst(obj, state, datas, isResetTimer) | ||
|  | { | ||
|  | 	local throwState = obj.getThrowState(); | ||
|  | 	 | ||
|  | 	if (throwState == 1) | ||
|  | 	{ | ||
|  | 		obj.sq_PlaySound("MW_FLOODMANA"); | ||
|  | 		obj.sq_PlaySound("FLOODMANA_CAST"); | ||
|  | 	 | ||
|  | 		// 葆釭?舆 | ||
|  | 		local skillLevel = obj.sq_GetSkillLevel(SKILL_MANABURST); | ||
|  | 		local change_time = sq_GetLevelData(obj, SKILL_MANABURST, SKL_LVL_COLUMN_IDX_2, skillLevel); | ||
|  | 		 | ||
|  | 		 | ||
|  | 		local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, SKILL_MANABURST, false,  | ||
|  | 		"Character/ATMage/ManaBurst/ap_ATMage_ManaBurst.nut", false); | ||
|  | 		 | ||
|  | 		appendage.setAppendCauseSkill(BUFF_CAUSE_SKILL, sq_getJob(obj), SKILL_MANABURST, skillLevel); | ||
|  | 		appendage.sq_SetValidTime(change_time); // 横?蛤虽 颤歜 撮? | ||
|  | 		 | ||
|  | 		// 罹晦怃 append 蒙机		 | ||
|  | 		//CNSquirrelAppendage.sq_Append(appendage, obj, obj); | ||
|  | 		CNSquirrelAppendage.sq_Append(appendage, obj, obj, true); // 帼?蚂 | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | function onAfterSetState_Throw(obj, state, datas, isResetTimer) | ||
|  | { | ||
|  | 	local skillIndex = obj.getThrowIndex(); | ||
|  | 	 | ||
|  | 	if (skillIndex == SKILL_ELEMENTAL_CHANGE) | ||
|  | 	{ | ||
|  | 		onAfterSetState_ElementalChange(obj, state, datas, isResetTimer); | ||
|  | 		 | ||
|  | 		if (obj.getThrowState() == 0) | ||
|  | 		{ | ||
|  | 			// 醴蝶签 UI蒂 ?撩? 卫监棻. | ||
|  | 			obj.setIsCustomSelectSkill(true); | ||
|  | 		} | ||
|  | 		else if (obj.getThrowState() == 1) | ||
|  | 		{ | ||
|  | 			obj.sq_PlaySound("PCHANGE_SELECT"); | ||
|  | 			 | ||
|  | 			 | ||
|  | 			if (obj.isMyControlObject()) | ||
|  | 			{ | ||
|  | 				sq_BinaryStartWrite(); | ||
|  | 				sq_BinaryWriteByte(obj.getThrowElement()); | ||
|  | 				sq_SendChangeSkillEffectPacket(obj, SKILL_ELEMENTAL_CHANGE); | ||
|  | 			} | ||
|  | 		}		 | ||
|  | 	} | ||
|  | 	else if(skillIndex == SKILL_MANABURST) | ||
|  | 	{ | ||
|  | 		onAfterSetState_ManaBurst(obj, state, datas, isResetTimer); | ||
|  | 	} | ||
|  | } |