91 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
ICEAREA_RAIN_VAR_SIZE  <- 1; // 橡挤 觼晦
 | 
						||
ICEAREA_RAIN_VAR_IS_EXPLOSION  <- 2; // 橡挤 ?嫦 腑挤
 | 
						||
 | 
						||
 | 
						||
function setCustomData_po_ATIceAreaIceRain(obj,receiveData)
 | 
						||
{		
 | 
						||
	if(!obj)
 | 
						||
		return;
 | 
						||
 | 
						||
	local iceRate	  = receiveData.readDword(); // 彩念 ?睦
 | 
						||
	local iceLevel	  = receiveData.readDword(); // 彩念 溯涟
 | 
						||
	local iceTime	  = receiveData.readDword(); // 彩念 卫除
 | 
						||
	local iceSizeRate = receiveData.readFloat(); // 橡挤 念姜觼晦
 | 
						||
	
 | 
						||
	local mage = obj.getTopCharacter();
 | 
						||
	mage = sq_ObjectToSQRCharacter(mage);	
 | 
						||
	if (mage)
 | 
						||
	{	
 | 
						||
		local attackPower = mage.sq_GetBonusRateWithPassive(SKILL_ICE_AREA , STATE_ICE_AREA, 1, 1.0);	
 | 
						||
		sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), attackPower);
 | 
						||
	}
 | 
						||
	
 | 
						||
	
 | 
						||
	local attackInfo = sq_GetCurrentAttackInfo(obj);
 | 
						||
	if (!attackInfo) return;
 | 
						||
	sq_SetChangeStatusIntoAttackInfo(attackInfo, 0, ACTIVESTATUS_FREEZE, iceRate, iceLevel, iceTime);		
 | 
						||
	
 | 
						||
	local var = obj.getVar();
 | 
						||
	var.setFloat(ICEAREA_RAIN_VAR_SIZE,iceSizeRate);
 | 
						||
	var.setBool(ICEAREA_RAIN_VAR_IS_EXPLOSION,false);
 | 
						||
}
 | 
						||
 | 
						||
 | 
						||
function procAppend_po_ATIceAreaIceRain(obj)
 | 
						||
{
 | 
						||
	if(!obj)
 | 
						||
		return;
 | 
						||
	local var = obj.getVar();
 | 
						||
	local isExplosion = var.getBool(ICEAREA_RAIN_VAR_IS_EXPLOSION);
 | 
						||
	
 | 
						||
	if(obj.getZPos() <= 1 && !isExplosion) {
 | 
						||
		local explosionAni = obj.getCustomAnimation(0);		
 | 
						||
		obj.setCurrentAnimation(explosionAni);	
 | 
						||
		sq_CreateParticle("PassiveObject/Character/Mage/Particle/ATIceRain.ptl", obj, 0, 0, 0, true, 30, 0,2);	
 | 
						||
			
 | 
						||
		local iceSizeRate = var.getFloat(ICEAREA_RAIN_VAR_SIZE);	
 | 
						||
		local ani		  = obj.getCurrentAnimation();			
 | 
						||
	
 | 
						||
		ani.setImageRate(iceSizeRate,iceSizeRate);
 | 
						||
		obj.sq_RemoveMoveParticle();
 | 
						||
		var.setBool(ICEAREA_RAIN_VAR_IS_EXPLOSION,true);
 | 
						||
	}
 | 
						||
}
 | 
						||
 | 
						||
function onKeyFrameFlag_po_ATIceAreaIceRain(obj,flagIndex)
 | 
						||
{			
 | 
						||
	if(!obj)
 | 
						||
		return false;
 | 
						||
	if(flagIndex == 1) {
 | 
						||
		local var = obj.getVar();
 | 
						||
		local iceSizeRate = var.getFloat(ICEAREA_RAIN_VAR_SIZE);	
 | 
						||
		local ani = obj.getCurrentAnimation();					
 | 
						||
		ani.setImageRate(iceSizeRate,iceSizeRate);
 | 
						||
	}
 | 
						||
	
 | 
						||
	if(flagIndex == 2) {
 | 
						||
		obj.sq_SetMoveParticle("Particle/ATIceAreaRain.ptl", 0.0, 0.0);
 | 
						||
		sq_CreateParticle("PassiveObject/Character/Mage/Particle/ATIceRainTail1.ptl",obj,0,0,50,true,35,100,8);
 | 
						||
		sq_CreateParticle("PassiveObject/Character/Mage/Particle/ATIceRainTail2.ptl",obj,0,0,50,true,35,100,8);
 | 
						||
	}
 | 
						||
	return true;
 | 
						||
}
 | 
						||
 | 
						||
function onEndCurrentAni_po_ATIceAreaIceRain(obj)
 | 
						||
{
 | 
						||
	if(!obj)
 | 
						||
		return;
 | 
						||
 | 
						||
	local explosionAni = obj.getCustomAnimation(0);
 | 
						||
	local currentAni = obj.getCurrentAnimation();
 | 
						||
	
 | 
						||
	if(sq_IsSameAni(explosionAni,currentAni))
 | 
						||
	{
 | 
						||
		if(obj.isMyControlObject())
 | 
						||
		{
 | 
						||
			sq_SendDestroyPacketPassiveObject(obj);
 | 
						||
		}
 | 
						||
	}
 | 
						||
}
 | 
						||
 | 
						||
 |