517 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			517 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
 | |
| S_PO_FROZENLAND_MC_0 <- 10
 | |
| S_PO_FROZENLAND_MC_1 <- 11
 | |
| S_PO_FROZENLAND_MC_2 <- 12
 | |
| S_PO_FROZENLAND_MC_3 <- 13
 | |
| S_PO_FROZENLAND_MC_4 <- 14
 | |
| S_PO_FROZENLAND_MC_5 <- 15
 | |
| 
 | |
| 
 | |
| function insertIceFog(obj, dx, dy, dz)
 | |
| {
 | |
| 	if(!obj)
 | |
| 		return;
 | |
| 		
 | |
| 	local x = sq_GetXPos(obj);
 | |
| 	local y = sq_GetYPos(obj);
 | |
| 	local z = sq_GetZPos(obj);
 | |
| 	
 | |
| 	local particleCreater = obj.getVar().GetparticleCreaterMap("fronzenLand", "PassiveObject/Character/Mage/Particle/ATFrozenLand.ptl", obj);
 | |
| 		
 | |
| 	particleCreater.Restart(0);
 | |
| 	particleCreater.SetPos(x + dx, y + dy, z + dz);	
 | |
| 	
 | |
| 	//print(" insertIceFog:" + particleCreater);
 | |
| 	sq_AddParticleObject(obj, particleCreater);
 | |
| 	
 | |
| 
 | |
| }
 | |
| 
 | |
| function setCustomData_po_ATFrozenLandMagicCircle(obj, reciveData)
 | |
| {
 | |
| 
 | |
| 	if(!obj) return;
 | |
| 	
 | |
| 	local radiusRate = reciveData.readDword(); // 卫瞪彰嫔 (葆彻霞 虽荤 绿徽 : 100%~)
 | |
| 	local spinNum = reciveData.readDword(); // 晦菅桧 釭颤釭怃 薯濠葬缣怃 蝶?击 紫朝 热
 | |
| 	local spinTime = reciveData.readDword(); // 模辨给桧 药怃 陛遴等煎 菟横螃朝 卫除
 | |
| 	
 | |
| 	
 | |
| 	local multiHitTerm = reciveData.readDword(); // 晦菅 棻钦?? 除问
 | |
| 	local multiHitAttackRate = reciveData.readDword(); // 晦菅 棻钦?? 奢问溘 (%)
 | |
| 	local expAttackRate = reciveData.readDword(); // 晦菅 ?嫦 奢问溘 (%)
 | |
| 	local frozenRate = reciveData.readDword(); // 彩念 ?徽
 | |
| 	local frozenLevel = reciveData.readDword(); // 彩念 溯涟
 | |
| 	local frozenTime = reciveData.readDword(); // 彩念 卫除
 | |
| 	// 觼煎栖赝 嬴桧蛊 跷陛 蒙机 薯濠葬缣怃 给坚毡朝 卫除桧 0尔棻 觼棻贼 舆嫔蒂 摹??朝 state煎 渗唳?捡 ?栖棻.
 | |
| 	local spinAddTime = reciveData.readDword(); // 模辨给桧陛 议葛搅 舆渗击 ?瞪?朝 卫除 (0.001蟾钦嫔)
 | |
| 	
 | |
| 	obj.getVar("state").clear_vector(); // state vector
 | |
| 	obj.getVar("state").push_vector(0);
 | |
| 	
 | |
| 	obj.getVar("flag").clear_vector();
 | |
| 	obj.getVar("flag").push_vector(0);
 | |
| 	obj.getVar("flag").push_vector(0);
 | |
| 	obj.getVar("flag").push_vector(0);
 | |
| 	obj.getVar("flag").push_vector(0);
 | |
| 	obj.getVar("flag").push_vector(0);
 | |
| 	
 | |
| 	obj.getVar("basePos").clear_vector();
 | |
| 	obj.getVar("basePos").push_vector(0);
 | |
| 	obj.getVar("basePos").push_vector(0);
 | |
| 	obj.getVar("basePos").push_vector(0);
 | |
| 	
 | |
| 	obj.getVar("flag").clear_timer_vector();
 | |
| 	obj.getVar("flag").push_timer_vector();
 | |
| 	
 | |
| 	obj.getVar("icefog").clear_vector();
 | |
| 	obj.getVar("icefog").push_vector(0);
 | |
| 	
 | |
| 	local t = obj.getVar("flag").get_timer_vector(0);
 | |
| 	t.setParameter(50, 1);
 | |
| 	t.resetInstant(0);
 | |
| 	
 | |
| 	//radiusRate = 100;
 | |
| 	
 | |
| 	obj.getVar("radius").clear_vector();
 | |
| 	obj.getVar("radius").push_vector(radiusRate); // 
 | |
| 	obj.getVar("radius").push_vector(0); // setstate煎 setcurrentanimation 胀 拥栖诡桧暮 亿煎遴 绿徽
 | |
| 	obj.getVar("radius").push_vector(spinNum); // 2 蝶?偎热
 | |
| 	obj.getVar("radius").push_vector(spinTime); // 3 模辨给桧 药怃 陛遴等煎 菟横螃朝 卫除
 | |
| 	
 | |
| 	obj.getVar("attack").clear_vector();
 | |
| 	obj.getVar("attack").push_vector(multiHitTerm); // 
 | |
| 	obj.getVar("attack").push_vector(multiHitAttackRate); // 
 | |
| 	obj.getVar("attack").push_vector(expAttackRate); // 
 | |
| 	obj.getVar("attack").push_vector(frozenRate); // 
 | |
| 	obj.getVar("attack").push_vector(frozenLevel); // 
 | |
| 	obj.getVar("attack").push_vector(frozenTime); // 
 | |
| 	
 | |
| 	// 觼煎栖赝 嬴桧蛊 跷陛 蒙机 薯濠葬缣怃 给坚毡朝 卫除桧 0尔棻 觼棻贼 舆嫔蒂 摹??朝 state煎 渗唳?捡 ?栖棻.
 | |
| 	obj.getVar("spin").clear_vector();
 | |
| 	obj.getVar("spin").push_vector(spinAddTime); // 
 | |
| 	
 | |
| 	if(obj.isMyControlObject()) {
 | |
| 		local pIntVec = sq_GetGlobalIntVector();
 | |
| 		
 | |
| 		sq_IntVectorClear(pIntVec);
 | |
| 		sq_IntVectorPush(pIntVec, radiusRate);
 | |
| 		
 | |
| 		obj.addSetStatePacket(S_PO_FROZENLAND_MC_0, pIntVec, STATE_PRIORITY_AUTO, false, "");
 | |
| 	}
 | |
| 
 | |
| }
 | |
| 
 | |
| function setState_po_ATFrozenLandMagicCircle(obj, state, datas)
 | |
| {
 | |
| 
 | |
| 	if(!obj) return;
 | |
| 	
 | |
| 	local passiveState = state;
 | |
| 	
 | |
| 	obj.getVar("state").set_vector(0, passiveState);
 | |
| 	
 | |
| 	obj.getVar("flag").set_vector(VECTOR_FLAG_0, 0);
 | |
| 
 | |
| 	initGetVarTimer(obj, 1, 400, 10);
 | |
| 	
 | |
| 	if(passiveState == S_PO_FROZENLAND_MC_0) {		
 | |
| 		local x = sq_GetXPos(obj);
 | |
| 		local y = sq_GetYPos(obj);
 | |
| 		local z = sq_GetZPos(obj);
 | |
| 		
 | |
| 		obj.getVar("basePos").set_vector(0, x);
 | |
| 		obj.getVar("basePos").set_vector(1, y);
 | |
| 		obj.getVar("basePos").set_vector(2, z);
 | |
| 		
 | |
| 		
 | |
| 		local atk = sq_GetCurrentAttackInfo(obj);
 | |
| 		
 | |
| 		if(atk)
 | |
| 		{
 | |
| 			local frozenRate = obj.getVar("attack").get_vector(3);
 | |
| 			local frozenLevel = obj.getVar("attack").get_vector(4);
 | |
| 			local frozenTime = obj.getVar("attack").get_vector(5);
 | |
| 			
 | |
| 			print(" frozenRate:" + frozenRate);
 | |
| 			
 | |
| 			sq_SetChangeStatusIntoAttackInfo(atk, 0, ACTIVESTATUS_FREEZE, frozenRate, frozenLevel, frozenTime);
 | |
| 		}		
 | |
| 	}
 | |
| 	else if(passiveState == S_PO_FROZENLAND_MC_1) {
 | |
| 	}
 | |
| 	else if(passiveState == S_PO_FROZENLAND_MC_2) {
 | |
| 		local ani = obj.getCustomAnimation(0);
 | |
| 		obj.setCurrentAnimation(ani);
 | |
| 	}
 | |
| 	else if(passiveState == S_PO_FROZENLAND_MC_3) {
 | |
| 	}
 | |
| 	else if(passiveState == S_PO_FROZENLAND_MC_4) {
 | |
| 		local ani = obj.getCustomAnimation(1);
 | |
| 		obj.setCurrentAnimation(ani);
 | |
| 		
 | |
| 		
 | |
| 	}
 | |
| 
 | |
| 	if(passiveState != S_PO_FROZENLAND_MC_3)
 | |
| 	{
 | |
| 		local radius100Rate = obj.getVar("radius").get_vector(0);	
 | |
| 		local radiusRate = (radius100Rate.tofloat() / 100.0);	
 | |
| 		local currentAni = sq_GetCurrentAnimation(obj);
 | |
| 		currentAni.setImageRateFromOriginal(radiusRate, radiusRate);	
 | |
| 		local size = (sq_GetAniRealImageSize(currentAni, ENUM_DIRECTION_RIGHT) / 2) + 60;	
 | |
| 		obj.getVar("radius").set_vector(1, size);
 | |
| 	}
 | |
| 	
 | |
| 	//radius100Rate
 | |
| 	
 | |
| 
 | |
| }
 | |
| 
 | |
| function procAppend_po_ATFrozenLandMagicCircle(obj)
 | |
| {
 | |
| 
 | |
| 	if(!obj) return;
 | |
| 	local pChr = obj.getTopCharacter();
 | |
| 	
 | |
| 	if(!pChr) {
 | |
| 		if(obj.isMyControlObject())
 | |
| 		{
 | |
| 			sq_SendDestroyPacketPassiveObject(obj);
 | |
| 		}
 | |
| 		return;
 | |
| 	}
 | |
| 	
 | |
| 	local objX = sq_GetXPos(obj);
 | |
| 	local objY = sq_GetYPos(obj);
 | |
| 	local objZ = sq_GetZPos(obj);
 | |
| 	
 | |
| 	local state = obj.getVar("state").get_vector(0);
 | |
| 	local passiveState = state;
 | |
| 
 | |
| 	local pAni = sq_GetCurrentAnimation(obj);
 | |
| 	local frmIndex = sq_GetAnimationFrameIndex(pAni);
 | |
| 
 | |
| 	if(passiveState == S_PO_FROZENLAND_MC_0) {
 | |
| 		// 罹晦 passivestate缣怃朝 晦菅 ?卫粽螃粽薛?菟击 虏蛙栖棻..
 | |
| 		if(frmIndex >= 2) {
 | |
| 			if(obj.getVar("flag").get_vector(VECTOR_FLAG_0) == 0) {
 | |
| 				if(obj.isMyControlObject()) {
 | |
| 				
 | |
| 					//obj.getVar("attack").push_vector(multiHitTerm); // 
 | |
| 					//obj.getVar("attack").push_vector(multiHitAttackRate); // 
 | |
| 					//obj.getVar("attack").push_vector(expAttackRate); // 
 | |
| 					//obj.getVar("attack").push_vector(frozenRate); // 
 | |
| 					//obj.getVar("attack").push_vector(frozenLevel); // 
 | |
| 					//obj.getVar("attack").push_vector(frozenTime); // 
 | |
| 					
 | |
| 					local radius100Rate = obj.getVar("radius").get_vector(0);
 | |
| 					local radiusRate = (radius100Rate.tofloat() / 100.0);
 | |
| 					local size = (sq_GetAniRealImageSize(pAni, ENUM_DIRECTION_RIGHT) / 2) + 60;
 | |
| 					obj.getVar("radius").set_vector(1, size);
 | |
| 
 | |
| 				
 | |
| 					local radiusSize = obj.getVar("radius").get_vector(1);
 | |
| 					
 | |
| 					local spinNum = obj.getVar("radius").get_vector(2);
 | |
| 					local spinTime = obj.getVar("radius").get_vector(3);
 | |
| 					local multiHitTerm = obj.getVar("attack").get_vector(0);
 | |
| 					local multiHitAttackRate = obj.getVar("attack").get_vector(1);
 | |
| 					
 | |
| 					// 觼煎栖赝 嬴桧蛊 跷陛 蒙机 薯濠葬缣怃 给坚毡朝 卫除桧 0尔棻 觼棻贼 舆嫔蒂 摹??朝 state煎 渗唳?捡 ?栖棻.
 | |
| 					local spinAddTime = obj.getVar("spin").get_vector(0);
 | |
| 					
 | |
| 					sq_BinaryStartWrite();
 | |
| 					sq_BinaryWriteDword(0); //
 | |
| 					sq_BinaryWriteDword(0); //
 | |
| 					sq_BinaryWriteDword(radiusSize); //
 | |
| 					sq_BinaryWriteDword(spinNum); //
 | |
| 					sq_BinaryWriteDword(spinTime); //
 | |
| 					sq_BinaryWriteDword(multiHitTerm); //
 | |
| 					sq_BinaryWriteDword(multiHitAttackRate); //
 | |
| 					sq_BinaryWriteDword(spinAddTime); //
 | |
| 					sq_SendCreatePassiveObjectPacketFromPassivePos( obj, 24248, 0, 0, 0, 0);
 | |
| 
 | |
| 					sq_BinaryStartWrite();
 | |
| 					sq_BinaryWriteDword(180); //
 | |
| 					sq_BinaryWriteDword(1); //
 | |
| 					sq_BinaryWriteDword(radiusSize); //
 | |
| 					sq_BinaryWriteDword(spinNum); //
 | |
| 					sq_BinaryWriteDword(spinTime); //
 | |
| 					sq_BinaryWriteDword(multiHitTerm); //
 | |
| 					sq_BinaryWriteDword(multiHitAttackRate); //
 | |
| 					sq_BinaryWriteDword(spinAddTime); //
 | |
| 					sq_SendCreatePassiveObjectPacketFromPassivePos( obj, 24248, 0, 0, 0, 0);
 | |
| 					//obj.getVar().set_vector(1, 1);
 | |
| 				}
 | |
| 				
 | |
| 				local pIntVec = sq_GetGlobalIntVector();
 | |
| 				sq_IntVectorClear(pIntVec);
 | |
| 				sq_IntVectorPush(pIntVec, 0);
 | |
| 
 | |
| 				obj.addSetStatePacket(S_PO_FROZENLAND_MC_2, pIntVec, STATE_PRIORITY_AUTO, false, "");
 | |
| 				obj.getVar("flag").set_vector(VECTOR_FLAG_0, 1);
 | |
| 				
 | |
| 				
 | |
| 			}
 | |
| 			local currentT = sq_GetCurrentTime(pAni);			
 | |
| 			//procParticleCreaterMap(obj, currentT, "PassiveObject/Character/Mage/Particle/ATFrozenLand.ptl", objX, objY + 5, objZ);
 | |
| 			//insertIceFog(obj, 0, 5, 0);
 | |
| 		}
 | |
| 	}
 | |
| 	else if(passiveState == S_PO_FROZENLAND_MC_1) {
 | |
| 	}
 | |
| 	else if(passiveState == S_PO_FROZENLAND_MC_2) {
 | |
| 		// 罹晦 ?卫粽蝶才桧?缣怃朝 晦菅桧 桡横螺朝虽 ?樯?坚 棻 桡横螺棻贼 ?嫦?卫粽螃粽薛?蒂 当撩?怃 棻挤蝶才桧?煎 setstate?栖棻.
 | |
| 		if(obj.getVar("flag").get_vector(VECTOR_FLAG_0) == 0)
 | |
| 		{
 | |
| 			local pole_passive_obj = sq_GetPassiveObject(obj, 24248);
 | |
| 			if(!pole_passive_obj)
 | |
| 			{
 | |
| 				local parentObj = obj.getParent();
 | |
| 				CNSquirrelAppendage.sq_RemoveAppendage(parentObj, "Appendage/Character/ap_common_suck.nut");
 | |
| 				
 | |
| 				if(obj.isMyControlObject()) {
 | |
| 				
 | |
| 					local radius100Rate = obj.getVar("radius").get_vector(0);
 | |
| 					
 | |
| 					local radiusRate = (radius100Rate.tofloat() / 100.0);					
 | |
| 					local currentAni = sq_GetCurrentAnimation(obj);
 | |
| 					local size = (sq_GetAniRealImageSize(currentAni, ENUM_DIRECTION_RIGHT) / 2) + 60;
 | |
| 					obj.getVar("radius").set_vector(1, size);
 | |
| 				
 | |
| 					local radiusSize = obj.getVar("radius").get_vector(1);
 | |
| 					
 | |
| 					local expAttackRate = obj.getVar("attack").get_vector(2); // 
 | |
| 					
 | |
| 					sq_BinaryStartWrite();
 | |
| 					sq_BinaryWriteDword(radiusSize); //
 | |
| 					sq_BinaryWriteDword(expAttackRate); // ?嫦奢问溘
 | |
| 					sq_BinaryWriteDword(radius100Rate); // 怃赝 ?渠 绿徽
 | |
| 					
 | |
| 					local cx = obj.getVar("basePos").get_vector(0);
 | |
| 					local cy = obj.getVar("basePos").get_vector(1);
 | |
| 					local cz = obj.getVar("basePos").get_vector(2);
 | |
| 					
 | |
| 					sq_SendCreatePassiveObjectPacket(obj, 24249, 0, 0, 1, 0, obj.getDirection());
 | |
| 
 | |
| 					//sq_SendCreatePassiveObjectPacketFromPassivePos( obj, 24249, 0, cx, cy, cz); // ?嫦 ?卫粽螃粽薛?
 | |
| 					
 | |
| 					
 | |
| 					local pIntVec = sq_GetGlobalIntVector();
 | |
| 					sq_IntVectorClear(pIntVec);
 | |
| 					sq_IntVectorPush(pIntVec, 0);
 | |
| 
 | |
| 					obj.addSetStatePacket(S_PO_FROZENLAND_MC_3, pIntVec, STATE_PRIORITY_AUTO, false, "");
 | |
| 				}
 | |
| 				obj.getVar("flag").set_vector(VECTOR_FLAG_0, 1);
 | |
| 			}
 | |
| 			else
 | |
| 			{				
 | |
| 				if(obj.getVar("flag").get_vector(VECTOR_FLAG_2) == 0)
 | |
| 				{
 | |
| 					local poleState = pole_passive_obj.getState();
 | |
| 					
 | |
| 					if(poleState == S_PO_FROZENLAND_POLE_1 || poleState == S_PO_FROZENLAND_POLE_2)
 | |
| 					{
 | |
| 						local poleAni = pole_passive_obj.getCurrentAnimation();
 | |
| 
 | |
| 						local frmIndex = sq_GetAnimationFrameIndex(poleAni);
 | |
| 						
 | |
| 						if(frmIndex >= 1) 
 | |
| 						{
 | |
| 							// CNFlashScreen* sq_flashScreen(CNRDObject* obj, int inTime, int stayTime, int outTime, 
 | |
| 							// int maxAlpha, DWORD rbga, int effectType, int layerType)
 | |
| 							sq_SetMyShake(obj,4,200);
 | |
| 
 | |
| 							local poleAniFrameNumber = sq_GetAniFrameNumber(poleAni, 0);
 | |
| 							
 | |
| 							local poleAniDelayTime = poleAni.getDelaySum(0, poleAniFrameNumber - 1);
 | |
| 							local poleAniLoopTime = poleAni.getDelaySum(3, poleAniFrameNumber - 1);
 | |
| 
 | |
| 							local spinNum = obj.getVar("radius").get_vector(2);
 | |
| 							local spinTime = obj.getVar("radius").get_vector(3);														
 | |
| 							
 | |
| 							local totalSpinPoleDelaySum = ((spinNum - 1) * poleAniLoopTime) + poleAniDelayTime - 80;	
 | |
| 							
 | |
| 							
 | |
| 							totalSpinPoleDelaySum = totalSpinPoleDelaySum + spinTime;
 | |
| 							
 | |
| 							// 觼煎栖赝 嬴桧蛊 跷陛 蒙机 薯濠葬缣怃 给坚毡朝 卫除桧 0尔棻 觼棻贼 舆嫔蒂 摹??朝 state煎 渗唳?捡 ?栖棻.
 | |
| 							totalSpinPoleDelaySum = totalSpinPoleDelaySum + obj.getVar("spin").get_vector(0);
 | |
| 							
 | |
| 							//print( " spinNum:" + spinNum + " poleAniDelayTime:" + poleAniDelayTime + " poleAniLoopTime:" + poleAniLoopTime + " spinTime:" + spinTime + " totalSpinPoleDelaySum:" + totalSpinPoleDelaySum);
 | |
| 							
 | |
| 							if(obj.isMyControlObject())
 | |
| 							{
 | |
| 								local fScreen = sq_flashScreen(obj,0,totalSpinPoleDelaySum,0,140, sq_RGB(0,0,0), GRAPHICEFFECT_NONE, ENUM_DRAWLAYER_BOTTOM);
 | |
| 							}
 | |
| 							
 | |
| 							obj.getVar("flag").set_vector(VECTOR_FLAG_2, 1);
 | |
| 						}
 | |
| 					}
 | |
| 				}
 | |
| 				
 | |
| 				
 | |
| 				if(!obj.getVar("flag").get_vector(VECTOR_FLAG_3))
 | |
| 				{
 | |
| 					local poleState = pole_passive_obj.getState();
 | |
| 					if(poleState == S_PO_FROZENLAND_POLE_2)
 | |
| 					{
 | |
| 						print(" appendage suck");
 | |
| 						local parentObj = obj.getParent();
 | |
| 
 | |
| 						// 庄横菟桧朝 横?蛤虽 陛翕		
 | |
| 						local appendage = CNSquirrelAppendage.sq_AppendAppendage(parentObj, obj, SKILL_FROZENLAND, false, "Appendage/Character/ap_common_suck.nut", false);
 | |
| 
 | |
| 						local suckVel = 200;						
 | |
| 						local radiusSize = obj.getVar("radius").get_vector(1);
 | |
| 						local range = radiusSize * 2;
 | |
| 						
 | |
| 						if(appendage)
 | |
| 						{
 | |
| 							appendage.sq_SetValidTime(2000);
 | |
| 							// 罹晦怃 append 蒙机		
 | |
| 							CNSquirrelAppendage.sq_Append(appendage, parentObj, obj);
 | |
| 							
 | |
| 							local auraAppendage = appendage.sq_getAuraMaster("frozenAura");
 | |
| 							//
 | |
| 							if(!auraAppendage)
 | |
| 								auraAppendage = appendage.sq_AddAuraMaster("frozenAura",parentObj, obj, 1200, 18, 5, 0);
 | |
| 							
 | |
| 							auraAppendage.setAttractionInfo(suckVel, suckVel, range, 100);
 | |
| 						}
 | |
| 						
 | |
| 						//
 | |
| 						obj.getVar("flag").set_vector(VECTOR_FLAG_3, 1);
 | |
| 						
 | |
| 						obj.sq_PlaySound("ICEEARTH_SPIN");
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| 	else if(passiveState == S_PO_FROZENLAND_MC_3) {
 | |
| 		// 罹晦 ?卫粽蝶才桧?缣怃朝 ?嫦 ?卫粽暧 拥栖诡桧暮 ?溯歜击 ?樯?怃 饵塭虽啪 ?栖棻.
 | |
| 		if(obj.getVar("flag").get_vector(VECTOR_FLAG_0) == 0)
 | |
| 		{
 | |
| 			local exp_passive_obj = sq_GetPassiveObject(obj, 24249);
 | |
| 
 | |
| 			if(exp_passive_obj)
 | |
| 			{
 | |
| 				if(exp_passive_obj.getState() == S_PO_FROZENLAND_1)
 | |
| 				{
 | |
| 					local exp_ani = sq_GetCurrentAnimation(exp_passive_obj);
 | |
| 					local exp_frm_index = sq_GetAnimationFrameIndex(exp_ani);
 | |
| 
 | |
| 					if(exp_frm_index >= 4)
 | |
| 					{
 | |
| 						if(obj.isMyControlObject())
 | |
| 						{
 | |
| 							local pIntVec = sq_GetGlobalIntVector();
 | |
| 							sq_IntVectorClear(pIntVec);
 | |
| 							sq_IntVectorPush(pIntVec, 0);
 | |
| 
 | |
| 							obj.addSetStatePacket(S_PO_FROZENLAND_MC_4, pIntVec, STATE_PRIORITY_AUTO, false, "");
 | |
| 						}
 | |
| 
 | |
| 						obj.getVar("flag").set_vector(VECTOR_FLAG_0, 1);
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| 	
 | |
| 	local t = obj.getVar("flag").get_timer_vector(0);
 | |
| 	
 | |
| 
 | |
| 		
 | |
| 	if(passiveState == S_PO_FROZENLAND_MC_2)
 | |
| 	{
 | |
| 		if(obj.getVar("flag").get_vector(VECTOR_FLAG_2) == 1)
 | |
| 		{
 | |
| 			local currentT = sq_GetCurrentTime(pAni);
 | |
| 			
 | |
| 			if(t.isOnEvent(currentT) == true)
 | |
| 			{
 | |
| 				local radius = obj.getVar("radius").get_vector(1);	
 | |
| 				//
 | |
| 				//local offset = 20;
 | |
| 			
 | |
| 				local index = obj.getVar("icefog").get_vector(0);
 | |
| 				
 | |
| 				local size = 3;
 | |
| 				local iKeyList =[];
 | |
| 				iKeyList.resize(size);
 | |
| 				
 | |
| 				iKeyList[0] = ((radius * 2) / 3);
 | |
| 				iKeyList[1] = -(radius * 2) / 3;
 | |
| 				iKeyList[2] = 0;
 | |
| 				
 | |
| 				print(" iKeyList[0]:" + iKeyList[0]);
 | |
| 				print(" iKeyList[1]:" + iKeyList[1]);
 | |
| 				
 | |
| 				insertIceFog(obj, iKeyList[0], 2, 40);
 | |
| 				insertIceFog(obj, iKeyList[1], 2, 40);
 | |
| 				insertIceFog(obj, iKeyList[2], 2, 40);
 | |
| 				
 | |
| 				print(" insertIceFog:" + iKeyList[index]);
 | |
| 				
 | |
| 				index = index + 1;
 | |
| 				
 | |
| 				if(index > 2)
 | |
| 				{
 | |
| 					index = 0;
 | |
| 				}
 | |
| 				index = obj.getVar("icefog").set_vector(0, index);
 | |
| 			}
 | |
| 		}
 | |
| 	
 | |
| 	}
 | |
| }
 | |
| 
 | |
| 
 | |
| function onDestroyObject_po_ATFrozenLandMagicCircle(obj, object)
 | |
| {
 | |
| 
 | |
| 	if(!obj) return;
 | |
| 
 | |
| }
 | |
| 
 | |
| function onKeyFrameFlag_po_ATFrozenLandMagicCircle(obj, flagIndex)
 | |
| {
 | |
| 
 | |
| }
 | |
| 
 | |
| function onEndCurrentAni_po_ATFrozenLandMagicCircle(obj)
 | |
| {
 | |
| 
 | |
| 	if(!obj) return;
 | |
| 	
 | |
| 	if(!obj.isMyControlObject()) return;
 | |
| 	
 | |
| 	
 | |
| 	local state = obj.getVar("state").get_vector(0);
 | |
| 	
 | |
| 	local passiveState = state;
 | |
| 
 | |
| 	if(passiveState == S_PO_FROZENLAND_MC_0) {
 | |
| 		//local pIntVec = sq_GetGlobalIntVector();
 | |
| 		//
 | |
| 		//sq_IntVectorClear(pIntVec);
 | |
| 		//sq_IntVectorPush(pIntVec, 0);
 | |
| 		//
 | |
| 		//obj.addSetStatePacket(S_PO_FROZENLAND_MC_1, pIntVec, STATE_PRIORITY_AUTO, false, "");
 | |
| 	}
 | |
| 	else if(passiveState == S_PO_FROZENLAND_MC_1) {
 | |
| 	}
 | |
| 	else if(passiveState == S_PO_FROZENLAND_MC_2) {
 | |
| 	}
 | |
| 	else if(passiveState == S_PO_FROZENLAND_MC_4) {
 | |
| 		if(obj.isMyControlObject())
 | |
| 		{
 | |
| 			sq_SendDestroyPacketPassiveObject(obj);
 | |
| 		}
 | |
| 	}
 | |
| }
 |