297 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			297 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
 | ||
| MODE_NORMAL <- 0
 | ||
| MODE_FREEZE <- 1
 | ||
| 
 | ||
| function sq_AddFunctionName(appendage)
 | ||
| {
 | ||
| 	appendage.sq_AddFunctionName("proc", "proc_appendage_atmage_tundra_cs")
 | ||
| 	appendage.sq_AddFunctionName("prepareDraw", "prepareDraw_appendage_atmage_tundra_cs")
 | ||
| 	appendage.sq_AddFunctionName("onStart", "onStart_appendage_atmage_tundra_cs")
 | ||
| 	appendage.sq_AddFunctionName("onEnd", "onEnd_appendage_atmage_tundra_cs")
 | ||
| 	appendage.sq_AddFunctionName("drawAppend", "drawAppend_appendage_atmage_tundra_cs")
 | ||
| 	appendage.sq_AddFunctionName("isEnd", "isEnd_appendage_atmage_tundra_cs")
 | ||
| 	appendage.sq_AddFunctionName("isDrawAppend", "isDrawAppend_appendage_atmage_tundra_cs")
 | ||
| 	appendage.sq_AddFunctionName("onApplyHpDamage", "onApplyHpDamage_appendage_atmage_tundra_cs")
 | ||
| }
 | ||
| 
 | ||
| 
 | ||
| function sq_AddEffect(appendage)
 | ||
| {
 | ||
| }
 | ||
| 
 | ||
| function drawAppend_appendage_atmage_tundra_cs(appendage, isOver, x, y, isFlip)
 | ||
| {
 | ||
| 	if(!appendage) {
 | ||
| 		return;
 | ||
| 	}
 | ||
| 	
 | ||
| 	local obj = appendage.getParent();
 | ||
| 	
 | ||
| 	if(!obj) {
 | ||
| 		appendage.setValid(false);
 | ||
| 		return;
 | ||
| 	}
 | ||
| 
 | ||
| 	local mode = appendage.getVar("mode").get_vector(0);
 | ||
| 	
 | ||
| 	if(sq_IsValidActiveStatus(obj, ACTIVESTATUS_FREEZE) || mode == MODE_FREEZE)
 | ||
| 	{
 | ||
| 		return;
 | ||
| 	}
 | ||
| 	
 | ||
| 	
 | ||
| 	local pAni = sq_GetCurrentAnimation(obj);
 | ||
| 	
 | ||
| 	if(!pAni) {
 | ||
| 		appendage.setValid(false);
 | ||
| 		return;
 | ||
| 	}
 | ||
| 	
 | ||
| 	local t = appendage.sq_var.get_ct_vector(0);
 | ||
| 	local currentT = 0;	
 | ||
| 	currentT = t.Get();
 | ||
| 	
 | ||
| 	
 | ||
| 	//print(" currentT:" + currentT);
 | ||
| 	
 | ||
| 	local startT = 259;
 | ||
| 	local endT = 210;
 | ||
| 	local effectT = 800;
 | ||
| 	local effectType = GRAPHICEFFECT_DODGE;
 | ||
| 	local rgb = sq_RGB(0, 0, 255);
 | ||
| 	
 | ||
| 	local targetV = endT;
 | ||
| 
 | ||
| 	local al = sq_GetUniformVelocity(startT, targetV, currentT, effectT);
 | ||
| 	
 | ||
| 	local alpha = sq_ALPHA(al);
 | ||
| 	pAni.setEffectLayer(true, effectType, true, rgb, alpha, true, false);
 | ||
| 	
 | ||
| 	
 | ||
| 	local size = sq_AniLayerListSize(pAni);	
 | ||
| 
 | ||
| 	if(currentT > effectT)
 | ||
| 	{	
 | ||
| 		local t = appendage.sq_var.get_ct_vector(0);
 | ||
| 		t.Reset();
 | ||
| 		t.Start(1000000,0);
 | ||
| 	}
 | ||
| 	
 | ||
| }
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| function proc_appendage_atmage_tundra_cs(appendage)
 | ||
| {
 | ||
| 	if(!appendage)
 | ||
| 	{
 | ||
| 		return;
 | ||
| 	}
 | ||
| 
 | ||
| 	//print( " tundra_cs");
 | ||
| 	local obj = appendage.getParent();
 | ||
| 	
 | ||
| 	if(!obj)
 | ||
| 	{
 | ||
| 		appendage.setValid(false);
 | ||
| 		return;
 | ||
| 	}
 | ||
| 	
 | ||
| 	local mode = appendage.getVar("mode").get_vector(0);
 | ||
| 	
 | ||
| 	if(sq_IsValidActiveStatus(obj, ACTIVESTATUS_FREEZE))
 | ||
| 	{
 | ||
| 		if(mode == MODE_NORMAL)
 | ||
| 		{
 | ||
| 			appendage.getVar("mode").set_vector(0, MODE_FREEZE);
 | ||
| 		}
 | ||
| 	}
 | ||
| 	else
 | ||
| 	{
 | ||
| 		if(mode == MODE_FREEZE)
 | ||
| 		{
 | ||
| 			appendage.setValid(false);
 | ||
| 			return;
 | ||
| 		}
 | ||
| 	}
 | ||
| 	
 | ||
| 
 | ||
| 	local t = appendage.sq_var.get_ct_vector(1); // 橡晦梱虽 勘葬朝 卫除桧 虽釭贼 彩念奢问桧 菟横骨栖棻.
 | ||
| 	local currentT = 0;	
 | ||
| 	
 | ||
| 	if(t)
 | ||
| 	{
 | ||
| 		currentT = t.Get();
 | ||
| 	}
 | ||
| 	
 | ||
| 	
 | ||
| 	local frozenWaitTime = appendage.getVar("skl").get_vector(0);	// 0.橡晦梱虽 勘葬朝 卫除
 | ||
| 	local frozenLevel = appendage.getVar("skl").get_vector(1);	// 1.彩念溯涟
 | ||
| 	local frozenRate = appendage.getVar("skl").get_vector(2);		// 2.彩念?徽
 | ||
| 	local frozenTime = appendage.getVar("skl").get_vector(3);		// 3.彩念卫除
 | ||
| 	
 | ||
| 	if(currentT > frozenWaitTime)
 | ||
| 	{	
 | ||
| 		if(t)
 | ||
| 		{
 | ||
| 			t.Reset();
 | ||
| 			t.Start(1000000,0);
 | ||
| 		}
 | ||
| 		
 | ||
| 		local obj = appendage.getParent();	
 | ||
| 		
 | ||
| 		if(!sq_IsValidActiveStatus(obj, ACTIVESTATUS_FREEZE))
 | ||
| 		{
 | ||
| 			if(appendage.getSource())
 | ||
| 			{
 | ||
| 				local attackerObj = appendage.getSource();
 | ||
| 				
 | ||
| 				if(attackerObj.isMyControlObject())
 | ||
| 				{
 | ||
| 					local id = sq_GetObjectId(obj);
 | ||
| 					
 | ||
| 					local x = sq_GetXPos(obj);
 | ||
| 					local y = sq_GetYPos(obj);
 | ||
| 					local z = sq_GetZPos(obj);
 | ||
| 					
 | ||
| 					sq_BinaryStartWrite();
 | ||
| 					sq_BinaryWriteDword(id); //
 | ||
| 					sq_BinaryWriteDword(frozenLevel); //
 | ||
| 					sq_BinaryWriteDword(frozenRate); //
 | ||
| 					sq_BinaryWriteDword(frozenTime); //
 | ||
| 					
 | ||
| 					//24259	`Character/Mage/ATTundraSoulFrozen.obj`	// 陴彻饵 矗萄塭暧 陛? ?卫粽螃粽薛?
 | ||
| 					sq_SendCreatePassiveObjectPacketPos(attackerObj, 24259, 0, x, y, z);
 | ||
| 				}
 | ||
| 			}
 | ||
| 		}
 | ||
| 	}
 | ||
| 
 | ||
| 
 | ||
| 	if(appendage.sq_var.get_vector(1) == 0)
 | ||
| 	{
 | ||
| 		local T = appendage.getTimer().Get();	
 | ||
| 		local maxT = appendage.sq_var.get_vector(0);
 | ||
| 		
 | ||
| 		if(T >= maxT)
 | ||
| 		{ // 卫除桧 棻 腑剪釭
 | ||
| 			//appendage.sq_DeleteEffectFront();
 | ||
| 			//appendage.setValid(false);
 | ||
| 			return;
 | ||
| 		}
 | ||
| 	}
 | ||
| }
 | ||
| 
 | ||
| 
 | ||
| function onStart_appendage_atmage_tundra_cs(appendage)
 | ||
| {
 | ||
| 	if(!appendage) {
 | ||
| 		return;
 | ||
| 	}
 | ||
| 	
 | ||
| 	print(" tundra cs start");
 | ||
| 	appendage.sq_DeleteEffectFront();
 | ||
| 	appendage.sq_AddEffectFront("Character/Mage/Effect/Animation/ATTundraSoul/passive_dodge.ani")
 | ||
| 	
 | ||
| 	appendage.sq_var.clear_vector();		
 | ||
| 	
 | ||
| 	appendage.sq_var.push_vector(0); // 晦狱赅萄
 | ||
| 	
 | ||
| 	appendage.sq_var.clear_ct_vector();
 | ||
| 	appendage.sq_var.push_ct_vector();	
 | ||
| 	appendage.sq_var.push_ct_vector();
 | ||
| 	
 | ||
| 	appendage.getVar("mode").clear_vector();
 | ||
| 	appendage.getVar("mode").push_vector(0);
 | ||
| 	
 | ||
| 	local t = appendage.sq_var.get_ct_vector(0);
 | ||
| 	t.Reset();
 | ||
| 	t.Start(1000000,0);
 | ||
| 	
 | ||
| 	local frozenT = appendage.sq_var.get_ct_vector(1);
 | ||
| 	
 | ||
| 	if(frozenT)
 | ||
| 	{
 | ||
| 		frozenT.Reset();
 | ||
| 		frozenT.Start(1000000,0);
 | ||
| 	}
 | ||
| 	
 | ||
| 	local obj = appendage.getParent();	
 | ||
| 	
 | ||
| }
 | ||
| 
 | ||
| function isDrawAppend_appendage_atmage_tundra_cs(appendage)
 | ||
| {
 | ||
| 	local obj = appendage.getParent();
 | ||
| 	
 | ||
| 	if(!obj) {
 | ||
| 		appendage.setValid(false);
 | ||
| 		return false;
 | ||
| 	}
 | ||
| 
 | ||
| 	local mode = appendage.getVar("mode").get_vector(0);
 | ||
| 	
 | ||
| 	if(sq_IsValidActiveStatus(obj, ACTIVESTATUS_FREEZE) || mode == MODE_FREEZE)
 | ||
| 	{
 | ||
| 		return false;
 | ||
| 	}
 | ||
| 	
 | ||
| 	return true;
 | ||
| 	
 | ||
| }
 | ||
| 
 | ||
| function onApplyHpDamage_appendage_atmage_tundra_cs(appendage, newHpDamage, attacker)
 | ||
| {
 | ||
| 	local obj = appendage.getParent();
 | ||
| 	
 | ||
| 	if(!obj)
 | ||
| 		return newHpDamage;
 | ||
| 	
 | ||
| 	local damage = newHpDamage;
 | ||
| 	
 | ||
| 	if(sq_IsValidActiveStatus(obj, ACTIVESTATUS_FREEZE))
 | ||
| 	{
 | ||
| 		local frozenAddDamageRate = appendage.getVar("skl").get_vector(4);		// 4.橡横毡朝 瞳 跷陛 等嘐虽
 | ||
| 		
 | ||
| 		local addDamage = newHpDamage.tofloat() * frozenAddDamageRate.tofloat() / 100.0;
 | ||
| 		
 | ||
| 		print(" addDamage:" + addDamage);
 | ||
| 		
 | ||
| 		damage = damage + addDamage.tointeger();
 | ||
| 	}
 | ||
| 	
 | ||
| 	return damage;
 | ||
| }
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| function prepareDraw_appendage_atmage_tundra_cs(appendage)
 | ||
| {
 | ||
| 	if(!appendage) {
 | ||
| 		return;
 | ||
| 	}
 | ||
| 	
 | ||
| 	local obj = appendage.getParent();	
 | ||
| }
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| function onEnd_appendage_atmage_tundra_cs(appendage)
 | ||
| {
 | ||
| 	if(!appendage)
 | ||
| 	{
 | ||
| 		return;
 | ||
| 	}
 | ||
| 	print(" tundra cs end");
 | ||
| 	appendage.sq_DeleteEffectFront();
 | ||
| 	
 | ||
| }
 | ||
| 
 | ||
| 
 | ||
| // 横渐螳 陕撩 渗褐暧 部睡碟
 | ||
| function isEnd_appendage_atmage_tundra_cs(appendage)
 | ||
| {
 | ||
| 	return false;
 | ||
| } |