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