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