564 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			564 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
 | |
| 
 | |
| 
 | |
| function setCustomData_po_ATIceManMagicCircle(obj, reciveData)
 | |
| {
 | |
| 	if(!obj) return;
 | |
| 
 | |
| 				//sq_BinaryWriteDword(freezeRate); // 
 | |
| 				//sq_BinaryWriteDword(multiHitAttackRate); // 
 | |
| 				//sq_BinaryWriteDword(smashAttackRate); // 
 | |
| 				//sq_BinaryWriteDword(expPower); // 
 | |
| 	local freezeRate = reciveData.readDword(); //
 | |
| 	local multiHitAttackRate = reciveData.readDword(); //
 | |
| 	local smashAttackRate = reciveData.readDword(); //
 | |
| 	local expPower = reciveData.readDword(); //
 | |
| 	
 | |
| 	obj.getVar("freezeRate").clear_vector(); // 
 | |
| 	obj.getVar("freezeRate").push_vector(freezeRate);
 | |
| 	
 | |
| 	obj.getVar("attack").clear_vector(); // 
 | |
| 	obj.getVar("attack").push_vector(multiHitAttackRate);
 | |
| 	obj.getVar("attack").push_vector(smashAttackRate);
 | |
| 	obj.getVar("attack").push_vector(expPower);
 | |
| 	
 | |
| 	
 | |
| 	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("casting").clear_obj_vector();
 | |
| 
 | |
| 	local pChr = obj.getTopCharacter();
 | |
| 	
 | |
| 	print(" pChr:" + pChr);
 | |
| 	sq_SetCurrentDirection(obj, obj.getDirection());
 | |
| 	
 | |
| 	if(obj.isMyControlObject())
 | |
| 	{
 | |
| 		local pIntVec = sq_GetGlobalIntVector();
 | |
| 		
 | |
| 		sq_IntVectorClear(pIntVec);
 | |
| 		sq_IntVectorPush(pIntVec, 0);
 | |
| 		obj.addSetStatePacket(PASSIVEOBJ_SUB_STATE_0, pIntVec, STATE_PRIORITY_AUTO, false, "");
 | |
| 	}
 | |
| }
 | |
| 
 | |
| function destroy_po_ATIceManMagicCircle(obj)
 | |
| {
 | |
| 	if(!obj)
 | |
| 		return;
 | |
| 		
 | |
| 	destroyObjectByVar(obj, "casting");
 | |
| 	destroyObject(obj);
 | |
| 	
 | |
| 	
 | |
| }
 | |
| 
 | |
| 
 | |
| function setState_po_ATIceManMagicCircle(obj, state, datas)
 | |
| {
 | |
| 	if(!obj) return;
 | |
| 	
 | |
| 	local pChr = obj.getTopCharacter();
 | |
| 	
 | |
| 	local passiveState = state;
 | |
| 	
 | |
| 	obj.getVar("state").set_vector(0, passiveState);
 | |
| 
 | |
| 	local x = sq_GetXPos(obj);
 | |
| 	local y = sq_GetYPos(obj);
 | |
| 	local z = sq_GetZPos(obj);
 | |
| 
 | |
| 	
 | |
| 	obj.getVar("state").clear_ct_vector();
 | |
| 	obj.getVar("state").push_ct_vector();	
 | |
| // 蟾晦?	
 | |
| 	local t = obj.getVar("state").get_ct_vector(0);
 | |
| 	t.Reset();
 | |
| 	t.Start(10000,0);
 | |
| 	
 | |
| 	
 | |
| 	local posX = obj.getXPos();
 | |
| 	local posY = obj.getYPos();
 | |
| 	local posZ = obj.getZPos();
 | |
| 		
 | |
| 	if(passiveState == PASSIVEOBJ_SUB_STATE_0)
 | |
| 	{	
 | |
| 	}
 | |
| 	else if(passiveState == PASSIVEOBJ_SUB_STATE_1)
 | |
| 	{
 | |
| 		local ani = obj.getCustomAnimation(0);
 | |
| 		obj.setCurrentAnimation(ani);		
 | |
| 		
 | |
| 		local pooledBackObj = createAnimationPooledObject(obj, 
 | |
| 		"PassiveObject/Character/Mage/Animation/ATIceMan/01_casting/casting_base_back.ani", false, 
 | |
| 		posX, posY - 1, 0);
 | |
| 		
 | |
| 		local pooledFrontObj = createAnimationPooledObject(obj, 
 | |
| 		"PassiveObject/Character/Mage/Animation/ATIceMan/01_casting/casting_base_front.ani", false, 
 | |
| 		posX, posY + 2, 0);
 | |
| 		
 | |
| 		obj.getVar("casting").push_obj_vector(pooledBackObj);
 | |
| 		obj.getVar("casting").push_obj_vector(pooledFrontObj);
 | |
| 		
 | |
| 
 | |
| 		createAnimationPooledObject(obj, 
 | |
| 		"PassiveObject/Character/Mage/Animation/ATIceMan/01_casting/02_roadappear_dodge_00.ani", true,
 | |
| 		posX, posY + 2, 0);
 | |
| 		
 | |
| 		createAnimationPooledObject(obj, 
 | |
| 		"PassiveObject/Character/Mage/Animation/ATIceMan/01_casting/02_roadappear_dodge_f_00.ani", true, 
 | |
| 		posX, posY - 1, 0);
 | |
| 
 | |
| 	}
 | |
| 	else if(passiveState == PASSIVEOBJ_SUB_STATE_2)
 | |
| 	{
 | |
| 		//pChr.setDirection(
 | |
| 		local ani = obj.getCustomAnimation(1);
 | |
| 		obj.setCurrentAnimation(ani);			
 | |
| 			
 | |
| 		
 | |
| 		local pooledFrontObj = createAnimationPooledObject(obj, 
 | |
| 		"PassiveObject/Character/Mage/Animation/ATIceMan/02_pole/pole_base.ani", false, posX, posY, 0);
 | |
| 		
 | |
| 		obj.getVar().push_obj_vector(pooledFrontObj); // index 2
 | |
| 		
 | |
| 		// 试虽
 | |
| 		createAnimationPooledObject(obj, 
 | |
| 		"PassiveObject/Character/Mage/Animation/ATIceMan/02_pole/dust/19smoke_dodge_11.ani", true, 
 | |
| 		posX, posY + 1, 0);		
 | |
| 		//	
 | |
| 	}
 | |
| 	else if(passiveState == PASSIVEOBJ_SUB_STATE_3)
 | |
| 	{ // 橡挤?惚 1
 | |
| 		local ani = obj.getCustomAnimation(2);
 | |
| 		obj.setCurrentAnimation(ani);
 | |
| 	
 | |
| 		local attackInfo = sq_GetCustomAttackInfo(obj, 0);
 | |
| 		sq_SetCurrentAttackInfo(obj, attackInfo);
 | |
| 		
 | |
| 		////////////////////////////////////////////////////////
 | |
| 		// 涧觼铮桧粽 跷陛
 | |
| 		local pooledObj = null;
 | |
| 		
 | |
| 				
 | |
| 		pooledObj = sq_CreateDrawOnlyObject(obj, 
 | |
| 		"PassiveObject/Character/Mage/Animation/ATIceMan/03_destroy/common/18_shockwave_dodge_0.ani", 
 | |
| 		ENUM_DRAWLAYER_BOTTOM, true);
 | |
| 		
 | |
| 		pooledObj.setCurrentPos(posX, posY, 0);
 | |
| 		
 | |
| 		sq_AddObject(obj, pooledObj, OBJECTTYPE_DRAWONLY, false);
 | |
| 		////////////////////////////////////////////////////////
 | |
| 	
 | |
| 
 | |
| 		local pooledFrontObj = createAnimationPooledObject(obj, 
 | |
| 		"PassiveObject/Character/Mage/Animation/ATIceMan/03_destroy/destroy_base_0.ani", false, posX, posY, 0);
 | |
| 		
 | |
| 		destroyObject(obj);
 | |
| 		
 | |
| 		obj.getVar().push_obj_vector(pooledFrontObj);
 | |
| 		
 | |
| 		local particleCreater = obj.getVar().GetparticleCreaterMap("AtIceManD0", "PassiveObject/Character/Mage/Particle/ATIceManDestroy0.ptl", obj);
 | |
| 			//
 | |
| 		particleCreater.Restart(0);
 | |
| 		particleCreater.SetPos(posX, posY + 5, posZ);	
 | |
| 		
 | |
| 		sq_AddParticleObject(obj, particleCreater);
 | |
| 		
 | |
| 		
 | |
| 		createAnimationPooledObject(obj, 
 | |
| 		"PassiveObject/Character/Mage/Animation/ATIceMan/03_destroy/02_broken/23_glow_dodge.ani", true, 
 | |
| 		posX, posY + 1, 0);
 | |
| 		
 | |
| 		local particle = obj.getVar().GetparticleCreaterMap("AtIceManD1", "PassiveObject/Character/Mage/Particle/ATIceManDestroy1.ptl", obj);
 | |
| 			//
 | |
| 		particle.Restart(0);
 | |
| 		particle.SetPos(posX, posY + 5, 55);	
 | |
| 		
 | |
| 		sq_AddParticleObject(obj, particle);
 | |
| 		
 | |
| 		local atk = sq_GetCurrentAttackInfo(obj);
 | |
| 		local smashAttackRate = obj.getVar("attack").get_vector(1);		
 | |
| 		sq_SetCurrentAttackBonusRate(atk, smashAttackRate);
 | |
| 
 | |
| 		
 | |
| 		if(obj.isMyControlObject())
 | |
| 		{
 | |
| 			// ?贼?娄
 | |
| 			local fScreen = sq_flashScreen(obj,0,80,0,80, sq_RGB(255,255,255), GRAPHICEFFECT_NONE, ENUM_DRAWLAYER_BOTTOM);
 | |
| 			sq_addFlashScreen(fScreen, 0, 400, 240, 150, sq_RGB(0,0,0), GRAPHICEFFECT_NONE, ENUM_DRAWLAYER_BOTTOM);
 | |
| 			//		
 | |
| 			
 | |
| 			sq_SetMyShake(obj,4,300);
 | |
| 		}
 | |
| 	}
 | |
| 	else if(passiveState == PASSIVEOBJ_SUB_STATE_4)
 | |
| 	{ // 橡挤?惚 2
 | |
| 		local pooledFrontObj = createAnimationPooledObject(obj, 
 | |
| 		"PassiveObject/Character/Mage/Animation/ATIceMan/03_destroy/destroy_base_1.ani", false, 
 | |
| 		posX, posY, 0);
 | |
| 		
 | |
| 		destroyObject(obj);
 | |
| 		
 | |
| 		obj.getVar().push_obj_vector(pooledFrontObj);
 | |
| 		
 | |
| 		// 旋煎办		
 | |
| 		createAnimationPooledObject(obj, 
 | |
| 		"PassiveObject/Character/Mage/Animation/ATIceMan/03_destroy/02_broken/23_glow_dodge.ani", true, 
 | |
| 		posX, posY + 1, 0);
 | |
| 		
 | |
| 		
 | |
| 		// 试虽
 | |
| 		createAnimationPooledObject(obj, 
 | |
| 			"PassiveObject/Character/Mage/Animation/ATIceMan/03_destroy/02_broken/dust/19smoke_dodge_00.ani", true, 
 | |
| 		posX, posY + 1, 0);		
 | |
| 		//
 | |
| 		
 | |
| 		local ani = obj.getCustomAnimation(2);
 | |
| 		obj.setCurrentAnimation(ani);
 | |
| 		
 | |
| 		local atk = sq_GetCurrentAttackInfo(obj);
 | |
| 		local smashAttackRate = obj.getVar("attack").get_vector(1);		
 | |
| 		sq_SetCurrentAttackBonusRate(atk, smashAttackRate);
 | |
| 		
 | |
| 		
 | |
| 	}
 | |
| 	else if(passiveState == PASSIVEOBJ_SUB_STATE_5)
 | |
| 	{ // 橡挤?惚 3
 | |
| 		local ani = obj.getCustomAnimation(2);
 | |
| 		obj.setCurrentAnimation(ani);
 | |
| 	
 | |
| 		local attackInfo = sq_GetCustomAttackInfo(obj, 1);
 | |
| 		
 | |
| 		sq_SetCurrentAttackInfo(obj, attackInfo);
 | |
| 	
 | |
| 		local pooledFrontObj = createAnimationPooledObject(obj, 
 | |
| 		"PassiveObject/Character/Mage/Animation/ATIceMan/03_destroy/destroy_base_2.ani", false, 
 | |
| 		posX, posY, 0);
 | |
| 		
 | |
| 		destroyObject(obj);
 | |
| 		
 | |
| 		local frontObj = obj.getVar("casting").get_obj_vector(0);
 | |
| 		local backObj = obj.getVar("casting").get_obj_vector(1);
 | |
| 		
 | |
| 		if(frontObj)
 | |
| 		{
 | |
| 			frontObj.setValid(false);
 | |
| 		}
 | |
| 		
 | |
| 		if(backObj)
 | |
| 		{
 | |
| 			backObj.setValid(false);
 | |
| 		}
 | |
| 		
 | |
| 		obj.getVar("casting").remove_obj_vector(frontObj);
 | |
| 		obj.getVar("casting").remove_obj_vector(backObj);
 | |
| 		
 | |
| 		
 | |
| 		obj.getVar().push_obj_vector(pooledFrontObj);
 | |
| 		
 | |
| 		// 旋煎办		
 | |
| 		createAnimationPooledObject(obj, 
 | |
| 		"PassiveObject/Character/Mage/Animation/ATIceMan/03_destroy/02_broken/23_glow_dodge.ani", true, 
 | |
| 		posX, posY + 1, 0);
 | |
| 		
 | |
| 		local particleCreater = obj.getVar().GetparticleCreaterMap("AtIceManD2", "PassiveObject/Character/Mage/Particle/ATIceManDestroy2.ptl", obj);
 | |
| 			//
 | |
| 		particleCreater.Restart(0);
 | |
| 		particleCreater.SetPos(posX, posY + 5, 55);	
 | |
| 		
 | |
| 		sq_AddParticleObject(obj, particleCreater);
 | |
| 		
 | |
| 		// 试虽
 | |
| 		createAnimationPooledObject(obj, 
 | |
| 		"PassiveObject/Character/Mage/Animation/ATIceMan/03_destroy/03_broken_02/dust/19smoke_dodge_00.ani", true, 
 | |
| 		posX, posY + 1, 0);		
 | |
| 		//
 | |
| 		if(obj.isMyControlObject())
 | |
| 		{
 | |
| 			sq_SetMyShake(obj,4,300);
 | |
| 		}
 | |
| 		
 | |
| 		local atk = sq_GetCurrentAttackInfo(obj);
 | |
| 		local expPower = obj.getVar("attack").get_vector(2);		
 | |
| 		sq_SetCurrentAttackPower(atk, expPower);
 | |
| 		
 | |
| 	}
 | |
| 	else if(passiveState == PASSIVEOBJ_SUB_STATE_6)
 | |
| 	{ // 葆彻霞饷薯
 | |
| 		print(" passiveState == PASSIVEOBJ_SUB_STATE_6");
 | |
| 		local ani = obj.getCustomAnimation(3);
 | |
| 		obj.setCurrentAnimation(ani);
 | |
| 		
 | |
| 		
 | |
| 	}
 | |
| 	
 | |
| 	//local radiusRate = (radius100Rate.tofloat() / 100.0);	
 | |
| 	//local size = (sq_GetAniRealImageSize(currentAni, ENUM_DIRECTION_RIGHT) / 2) + 60;	
 | |
| }
 | |
| 
 | |
| function procAppend_po_ATIceManMagicCircle(obj)
 | |
| {
 | |
| 	if(!obj) return;
 | |
| 	
 | |
| 	local pChr = obj.getTopCharacter();
 | |
| 	
 | |
| 	if(!pChr)
 | |
| 	{
 | |
| 		if(obj.isMyControlObject())
 | |
| 		{
 | |
| 			sq_SendDestroyPacketPassiveObject(obj);
 | |
| 			return;
 | |
| 		}
 | |
| 	}
 | |
| 	
 | |
| 	local passiveState = obj.getVar("state").get_vector(0);
 | |
| 	
 | |
| 	if(pChr.getState() != STATE_ICEMAN)
 | |
| 	{
 | |
| 		if(passiveState <= PASSIVEOBJ_SUB_STATE_3)
 | |
| 		{
 | |
| 			if(obj.isMyControlObject())
 | |
| 			{
 | |
| 				sq_SendDestroyPacketPassiveObject(obj);
 | |
| 				return;
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| 	
 | |
| 	
 | |
| 	
 | |
| 	
 | |
| 	if(passiveState == PASSIVEOBJ_SUB_STATE_0)
 | |
| 	{
 | |
| 	}
 | |
| 	else if(passiveState == PASSIVEOBJ_SUB_STATE_1)
 | |
| 	{
 | |
| 		local sendState = false;
 | |
| 		local castingObj = obj.getVar("casting").get_obj_vector(0);
 | |
| 		
 | |
| 		if(castingObj)
 | |
| 		{
 | |
| 			local isEnd = sq_IsEnd(castingObj.getCurrentAnimation());
 | |
| 			
 | |
| 			if(isEnd)
 | |
| 			{
 | |
| 				if(pChr.getState() == STATE_ICEMAN && pChr.getSkillSubState() >= SUB_STATE_ICEMAN_1)
 | |
| 				{
 | |
| 					local frmIndex = sq_GetCurrentFrameIndex(pChr);
 | |
| 					
 | |
| 					if(frmIndex > 1)
 | |
| 					{
 | |
| 						//print(" pass");
 | |
| 						sendState = true;
 | |
| 					}
 | |
| 					
 | |
| 				}
 | |
| 				//
 | |
| 			}
 | |
| 		}
 | |
| 		else
 | |
| 		{
 | |
| 			//print(" castingObj is null");
 | |
| 			sendState = true;
 | |
| 		}
 | |
| 		
 | |
| 		if(obj.isMyControlObject())
 | |
| 		{
 | |
| 			if(sendState)
 | |
| 			{
 | |
| 				local pIntVec = sq_GetGlobalIntVector();
 | |
| 				sq_IntVectorClear(pIntVec);
 | |
| 				sq_IntVectorPush(pIntVec, 0);
 | |
| 
 | |
| 				obj.addSetStatePacket(PASSIVEOBJ_SUB_STATE_2, pIntVec, STATE_PRIORITY_AUTO, false, "");
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| 	else if(passiveState > PASSIVEOBJ_SUB_STATE_1 && passiveState < PASSIVEOBJ_SUB_STATE_6)
 | |
| 	{ // 橡挤当撩,  橡挤?惚
 | |
| 		//PASSIVEOBJ_SUB_STATE_2	// 橡挤当撩
 | |
| 		//PASSIVEOBJ_SUB_STATE_3	// 橡挤?惚 - 梱虏?贼
 | |
| 		//PASSIVEOBJ_SUB_STATE_4	// 橡挤?惚 - ?惚1
 | |
| 		//PASSIVEOBJ_SUB_STATE_5	// 橡挤?惚 - ?惚2
 | |
| 		local sendState = false;
 | |
| 		local castingObj = obj.getVar().get_obj_vector(0);
 | |
| 
 | |
| 		if(castingObj)
 | |
| 		{
 | |
| 			local isEnd = sq_IsEnd(castingObj.getCurrentAnimation()); // index 2
 | |
| 			
 | |
| 			if(isEnd)
 | |
| 			{
 | |
| 				if(passiveState == PASSIVEOBJ_SUB_STATE_2)
 | |
| 				{ // 橡挤当撩桧 赅舒 部陬击 阳
 | |
| 					if(pChr.getState() == STATE_ICEMAN && pChr.getSkillSubState() >= SUB_STATE_ICEMAN_4)
 | |
| 					{
 | |
| 						local frmIndex = sq_GetCurrentFrameIndex(pChr);
 | |
| 						
 | |
| 						//print( " now:" + frmIndex);
 | |
| 						
 | |
| 						if(frmIndex > 5)
 | |
| 						{
 | |
| 							sendState = true;
 | |
| 						}
 | |
| 					}
 | |
| 				}
 | |
| 				else
 | |
| 				{
 | |
| 					sendState = true;
 | |
| 				}
 | |
| 			}
 | |
| 			else
 | |
| 			{ // 拥栖诡桧暮桧 寰部陬击 阳
 | |
| 				if(passiveState == PASSIVEOBJ_SUB_STATE_2)				
 | |
| 				{ // 晦菅娄 跺桧 ?溯歜 翕晦?
 | |
| 					if(pChr.getSkillSubState() == SUB_STATE_ICEMAN_3)
 | |
| 					{
 | |
| 						local frmIndex = sq_GetCurrentFrameIndex(pChr);
 | |
| 						
 | |
| 						if(frmIndex <= 18)
 | |
| 						{
 | |
| 							local poleObj = obj.getVar().get_obj_vector(2); // index 2
 | |
| 							
 | |
| 							if(poleObj)
 | |
| 							{
 | |
| 								local poleFrmIndex = sq_GetCurrentFrameIndex(poleObj);
 | |
| 								
 | |
| 								if(poleFrmIndex != frmIndex)
 | |
| 								{
 | |
| 									sq_SetAnimationFrameIndex(poleObj.getCurrentAnimation(), frmIndex);
 | |
| 								}
 | |
| 							}
 | |
| 						}
 | |
| 					}
 | |
| 					else if(pChr.getState() == STATE_ICEMAN && pChr.getSkillSubState() >= SUB_STATE_ICEMAN_4)
 | |
| 					{
 | |
| 						local frmIndex = sq_GetCurrentFrameIndex(pChr);
 | |
| 						
 | |
| 						if(frmIndex > 5)
 | |
| 							sendState = true;
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 		else
 | |
| 		{
 | |
| 			sendState = true;
 | |
| 		}
 | |
| 		
 | |
| 		if(obj.isMyControlObject())
 | |
| 		{
 | |
| 			if(sendState)
 | |
| 			{
 | |
| 				local pIntVec = sq_GetGlobalIntVector();
 | |
| 				sq_IntVectorClear(pIntVec);
 | |
| 				sq_IntVectorPush(pIntVec, 0);
 | |
| 
 | |
| 				obj.addSetStatePacket(passiveState + 1, pIntVec, STATE_PRIORITY_AUTO, false, "");
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| 	
 | |
| }
 | |
| 
 | |
| function onChangeSkillEffect_po_ATIceManMagicCircle(obj, skillIndex, reciveData)
 | |
| {
 | |
| 
 | |
| 	if(!obj) return;
 | |
| 
 | |
| }
 | |
| 
 | |
| function onDestroyObject_po_ATIceManMagicCircle(obj, object)
 | |
| {
 | |
| 
 | |
| 	if(!obj) return;
 | |
| 
 | |
| }
 | |
| 
 | |
| function onKeyFrameFlag_po_ATIceManMagicCircle(obj, flagIndex)
 | |
| {
 | |
| 
 | |
| }
 | |
| 
 | |
| function onEndCurrentAni_po_ATIceManMagicCircle(obj)
 | |
| {
 | |
| 	if(!obj) return;
 | |
| 	
 | |
| 	if(!obj.isMyControlObject())
 | |
| 		return;
 | |
| 
 | |
| 	local passiveState = obj.getVar("state").get_vector(0);
 | |
| 	
 | |
| 	if(passiveState == PASSIVEOBJ_SUB_STATE_0)
 | |
| 	{
 | |
| 		local pIntVec = sq_GetGlobalIntVector();
 | |
| 		sq_IntVectorClear(pIntVec);
 | |
| 		sq_IntVectorPush(pIntVec, 0);
 | |
| 
 | |
| 		obj.addSetStatePacket(PASSIVEOBJ_SUB_STATE_1, pIntVec, STATE_PRIORITY_AUTO, false, "");
 | |
| 	}
 | |
| 	else if(passiveState == PASSIVEOBJ_SUB_STATE_1)
 | |
| 	{
 | |
| 	}
 | |
| 	else if(passiveState == PASSIVEOBJ_SUB_STATE_2)
 | |
| 	{
 | |
| 	}
 | |
| 	else if(passiveState == PASSIVEOBJ_SUB_STATE_3)
 | |
| 	{
 | |
| 	}
 | |
| 	else if(passiveState == PASSIVEOBJ_SUB_STATE_4)
 | |
| 	{
 | |
| 	}
 | |
| 	else if(passiveState == PASSIVEOBJ_SUB_STATE_6)
 | |
| 	{ // 饷薯
 | |
| 		print(" passiveState == PASSIVEOBJ_SUB_STATE_6 destroy");
 | |
| 		sq_SendDestroyPacketPassiveObject(obj);
 | |
| 	}
 | |
| 	
 | |
| }
 | |
| 
 | |
| function onAttack_po_ATIceManMagicCircle(obj, damager, boundingBox, isStuck)
 | |
| {
 | |
| 	if(!obj)
 | |
| 		return 0;
 | |
| 		
 | |
| 	local pChr = obj.getTopCharacter();
 | |
| 	
 | |
| 	if(!pChr)
 | |
| 		return 0;
 | |
| 	
 | |
| 	local active_damager = sq_GetCNRDObjectToActiveObject(damager);
 | |
| 	
 | |
| 	if(!active_damager)
 | |
| 		return 0;
 | |
| 
 | |
| 	
 | |
| 	local passiveState = obj.getVar("state").get_vector(0);
 | |
| 	
 | |
| 	if(passiveState == PASSIVEOBJ_SUB_STATE_1)
 | |
| 	{
 | |
| 		local rand = sq_getRandom(0, 100); 
 | |
| 		
 | |
| 		local rate = obj.getVar("freezeRate").get_vector(0);
 | |
| 		print(" rate:" + rate + " rand" + rand);
 | |
| 		
 | |
| 		// 桧楼?徽桧 剩横陛捡 桧楼马模 横?蛤虽蒂 勘横鄹栖棻..
 | |
| 		if(rand <= obj.getVar("freezeRate").get_vector(0))
 | |
| 		{	
 | |
| 			CNSquirrelAppendage.sq_AppendAppendage(damager, pChr, SKILL_ICEMAN, 
 | |
| 			true, "Character/ATMage/IceMan/ap_ATIceManMagicCircle.nut", true);
 | |
| 		}
 | |
| 	}
 | |
| 		
 | |
| 	return 0;
 | |
| }
 |