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); | |||
|  | 		} | |||
|  | 	} | |||
|  | } | |||
|  | 
 | |||
|  |  |