497 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			497 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| ENUM_ICE_CHAKRAM_TIMER_LARGE_MULTI_HIT <- 0;
 | |
| 
 | |
| SUB_STATE_ICECHAKRAM_0	<- 0
 | |
| SUB_STATE_ICECHAKRAM_1	<- 1
 | |
| SUB_STATE_ICECHAKRAM_2	<- 2
 | |
| SUB_STATE_ICECHAKRAM_3	<- 3
 | |
| SUB_STATE_ICECHAKRAM_4	<- 4 // 陈萼 离觼茔 赅戏晦.
 | |
| SUB_STATE_ICECHAKRAM_5	<- 5 // 赎 离觼茔 ?瞪
 | |
| SUB_STATE_ICECHAKRAM_6	<- 6 // 赎 离觼茔 湍虽晦
 | |
| 
 | |
| VAR_ICE_CHAKRAM_ATTRACT_APPENDAGE <- 0;
 | |
| 
 | |
| function checkExecutableSkill_IceChakram(obj)
 | |
| {
 | |
| 
 | |
| 	if(!obj) return false;
 | |
| 
 | |
| 	local b_useskill = obj.sq_IsUseSkill(SKILL_ICECHAKRAM);
 | |
| 
 | |
| 	if(b_useskill) {
 | |
| 		obj.sq_IntVectClear();
 | |
| 		obj.sq_IntVectPush(SUB_STATE_ICECHAKRAM_0); // substate撮?				
 | |
| 		//2离 奢问 才蝶?辨.
 | |
| 		//obj.sq_IntVectPush(SUB_STATE_ICECHAKRAM_4); // substate撮?
 | |
| 		
 | |
| 		obj.sq_AddSetStatePacket(STATE_ICECHAKRAM, STATE_PRIORITY_IGNORE_FORCE, true);
 | |
| 		return true;
 | |
| 	}	
 | |
| 	
 | |
| 	return false;
 | |
| 
 | |
| }
 | |
| 
 | |
| function checkCommandEnable_IceChakram(obj)
 | |
| {
 | |
| 
 | |
| 	if(!obj) return false;
 | |
| 
 | |
| 	local state = obj.sq_GetState();
 | |
| 
 | |
| 	if(state == STATE_ATTACK) {
 | |
| 		// 警蜗 蝶鉴 偃? 蒙机濠: 姜霞热 [2012.04.20]
 | |
| 		return obj.sq_IsCommandEnable(SKILL_ICECHAKRAM);
 | |
| 	}
 | |
| 	return true;
 | |
| 
 | |
| }
 | |
| 
 | |
| function onSetState_IceChakram(obj, state, datas, isResetTimer)
 | |
| {
 | |
| 
 | |
| 	if(!obj) return;
 | |
| 
 | |
| 	local substate = obj.sq_GetVectorData(datas, 0);
 | |
| 	obj.setSkillSubState(substate);
 | |
| 	
 | |
| 	obj.getVar().clear_vector();
 | |
| 	obj.getVar().push_vector(0);
 | |
| 	obj.getVar().push_vector(0);
 | |
| 	obj.getVar().push_vector(0);
 | |
| 	obj.getVar().push_vector(0);
 | |
| 	obj.getVar().push_vector(0);
 | |
| 	
 | |
| 	obj.getVar("state").clear_ct_vector();
 | |
| 	obj.getVar("state").push_ct_vector();	
 | |
| 	
 | |
| 	obj.getVar("ani").clear_vector();
 | |
| 	obj.getVar("ani").push_vector(0);
 | |
| 
 | |
| 	if(substate == SUB_STATE_ICECHAKRAM_0) {
 | |
| 		// SUB_STATE_ICECHAKRAM_0 怃粽蝶才桧? 蒙机
 | |
| 		obj.sq_SetCurrentAnimation(CUSTOM_ANI_ICECHAKRAM_1);
 | |
| 		
 | |
| 		
 | |
| 		// 议蝶? 桡挤.		
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_1) {
 | |
| 		// SUB_STATE_ICECHAKRAM_1 怃粽蝶才桧? 蒙机
 | |
| 		local t = obj.getVar("state").get_ct_vector(0);
 | |
| 		t.Reset();
 | |
| 		t.Start(10000,0);
 | |
| 		
 | |
| 		obj.sq_SetCurrentAnimation(CUSTOM_ANI_ICECHAKRAM_2);
 | |
| 		
 | |
| 		if(obj.isMyControlObject())
 | |
| 		{
 | |
| 			//5	 // 0. 当撩肾朝 橡挤坚葬 偎热
 | |
| 			//5   // 1. 蒙擎 橡挤 坚葬 棻钦?? ?热
 | |
| 			local createSmallRingNum = sq_GetLevelData(obj,	SKILL_ICECHAKRAM, 3, sq_GetSkillLevel(obj, SKILL_ICECHAKRAM)); // 3. 当撩肾朝 橡挤坚葬 偎热
 | |
| 			local multiHitNum = sq_GetLevelData(obj,	SKILL_ICECHAKRAM, 4, sq_GetSkillLevel(obj, SKILL_ICECHAKRAM)); // 4. 蒙擎 橡挤 坚葬 棻钦?? ?热		
 | |
| 			local power = obj.sq_GetBonusRateWithPassive(SKILL_ICECHAKRAM, STATE_ICECHAKRAM, 0,1.0);	 // 0.蒙擎 橡挤坚葬 棻钦?? 奢问溘(+)
 | |
| 		
 | |
| 			sq_BinaryStartWrite();
 | |
| 			sq_BinaryWriteDword(createSmallRingNum); // 
 | |
| 			sq_BinaryWriteDword(multiHitNum); // 
 | |
| 			sq_BinaryWriteDword(power); // 
 | |
| 			obj.sq_SendCreatePassiveObjectPacket(24257, 0, 0, 0, 0); // 24257	`Character/Mage/ATIceChakramSmallMgr.obj` // 陴彻饵 彩盟? 蒙擎彩念 衙栖螳 
 | |
| 		}
 | |
| 		
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_2) {
 | |
| 		// SUB_STATE_ICECHAKRAM_2 怃粽蝶才桧? 蒙机
 | |
| 		obj.sq_SetCurrentAnimation(CUSTOM_ANI_ICECHAKRAM_3);
 | |
| 		obj.sq_PlaySound("RAGEBLAST_SPIN_01", 7577);
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_3) {
 | |
| 		// SUB_STATE_ICECHAKRAM_3 怃粽蝶才桧? 蒙机
 | |
| 		local isFindChr = obj.sq_GetVectorData(datas, 1);
 | |
| 		obj.getVar("findchr").clear_vector();
 | |
| 		obj.getVar("findchr").push_vector(isFindChr);
 | |
| 		
 | |
| 		obj.sq_SetCurrentAnimation(CUSTOM_ANI_ICECHAKRAM_4);
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_4) {
 | |
| 		// SUB_STATE_ICECHAKRAM_4 怃粽蝶才桧? 蒙机
 | |
| 		obj.sq_SetCurrentAnimation(CUSTOM_ANI_ICECHAKRAM_4);
 | |
| 	}	
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_5) { // ?瞪
 | |
| 		obj.sq_SetCurrentAnimation(CUSTOM_ANI_ICECHAKRAM_5);
 | |
| 		sq_SetCurrentAttackInfoFromCustomIndex(obj,CUSTOM_ATTACK_INFO_ICE_CHAKRAM);
 | |
| 		
 | |
| 		sq_SetBodyEffect(obj, obj, true, sq_RGB(255,255,255), 0, 80, 0, sq_ALPHA(255)); // 跺缣 ?担 桧??
 | |
| 		
 | |
| 		sq_SetCurrentAttackeHitStunTime(sq_GetCurrentAttackInfo(obj), 0); // 奢问 唳霜卫除 桡拥晦.
 | |
| 				
 | |
| 		// 赎坚葬 棻钦 ?? 奢问溘 扑姜		
 | |
| 		local power = obj.sq_GetBonusRateWithPassive(SKILL_ICECHAKRAM , STATE_ICECHAKRAM, 1, 1.0);		
 | |
| 		obj.sq_SetCurrentAttackBonusRate(power);
 | |
| 		
 | |
| 		// 赎坚葬 棻钦 ?? 除问 属寥
 | |
| 		local multiHitTimeGab = sq_GetIntData(obj, SKILL_ICECHAKRAM, 4);
 | |
| 		obj.setTimeEvent(ENUM_ICE_CHAKRAM_TIMER_LARGE_MULTI_HIT, multiHitTimeGab , 0, false); // 0桧贼 鼠?渠
 | |
| 		
 | |
| 		obj.sq_PlaySound("MW_RAGEBLAST_READY");			
 | |
| 		
 | |
| 		local attractPower = sq_GetLevelData(obj, SKILL_ICECHAKRAM, 6, sq_GetSkillLevel(obj, SKILL_ICECHAKRAM));
 | |
| 		if(attractPower > 0)
 | |
| 		{						
 | |
| 			// 庄横渡啖韩 迹瞳虽 颤啃, 庄横菟桧朝 ?暧 剪葬 , 颤啃戏煎 睡搅暧 迹瞳虽 剪葬, 庄横渡望 楼紫
 | |
| 			local appendage = sq_AttractToMe(obj, 200, 100, attractPower);
 | |
| 			local var = obj.getVar();
 | |
| 			var.setAppendage(VAR_ICE_CHAKRAM_ATTRACT_APPENDAGE, appendage);
 | |
| 		}
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_6) {
 | |
| 		obj.sq_SetCurrentAnimation(CUSTOM_ANI_ICECHAKRAM_6);
 | |
| 	}
 | |
| 	
 | |
| 	
 | |
| 
 | |
| }
 | |
| 
 | |
| 
 | |
| function onTimeEvent_IceChakram(obj, timeEventIndex, timeEventCount)
 | |
| {	
 | |
| 	if(!obj)
 | |
| 		return false;
 | |
| 
 | |
| 	if(!obj.isMyControlObject())
 | |
| 		return false;
 | |
| 		
 | |
| 	if(timeEventIndex == ENUM_ICE_CHAKRAM_TIMER_LARGE_MULTI_HIT)
 | |
| 	{	
 | |
| 		obj.resetHitObjectList(); //棻钦??蒂嫔? ??螃粽薛? 葬蝶?蒂 葬掸.
 | |
| 		return false; // false贼 啗楼 属寥 (timeEventCount苹遴?陛 嵘?桧塭贼 timeEventCount 虏踯 属寥)
 | |
| 	}
 | |
| 	
 | |
| 	return true; // true贼 属寥 酝钦
 | |
| }
 | |
| 
 | |
| 
 | |
| function prepareDraw_IceChakram(obj)
 | |
| {
 | |
| 
 | |
| 	if(!obj) return;
 | |
| 
 | |
| 	local substate = obj.getSkillSubState();
 | |
| 
 | |
| 	if(substate == SUB_STATE_ICECHAKRAM_0) {
 | |
| 		// SUB_STATE_ICECHAKRAM_0 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_1) {
 | |
| 		// SUB_STATE_ICECHAKRAM_1 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_2) {
 | |
| 		// SUB_STATE_ICECHAKRAM_2 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_3) {
 | |
| 		// SUB_STATE_ICECHAKRAM_3 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_4) {
 | |
| 		// SUB_STATE_ICECHAKRAM_4 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	
 | |
| 
 | |
| }
 | |
| 
 | |
| function onProc_IceChakram(obj)
 | |
| {
 | |
| 
 | |
| 	if(!obj) return;
 | |
| 
 | |
| 	local substate = obj.getSkillSubState();
 | |
| 
 | |
| 	local pAni = obj.sq_GetCurrentAni();
 | |
| 	local frmIndex = obj.sq_GetCurrentFrameIndex(pAni);
 | |
| 	local currentT = sq_GetCurrentTime(pAni);
 | |
| 
 | |
| 	obj.sq_StopMove();
 | |
| 	if(substate == SUB_STATE_ICECHAKRAM_0) {
 | |
| 		// SUB_STATE_ICECHAKRAM_0 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_1) {
 | |
| 		// SUB_STATE_ICECHAKRAM_1 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_2) {
 | |
| 		// SUB_STATE_ICECHAKRAM_2 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_3) {
 | |
| 		// SUB_STATE_ICECHAKRAM_3 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_4) {
 | |
| 		// SUB_STATE_ICECHAKRAM_4 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	
 | |
| 
 | |
| }
 | |
| 
 | |
| function onProcCon_IceChakram(obj)
 | |
| {
 | |
| 
 | |
| 	if(!obj) return;
 | |
| 
 | |
| 	local substate = obj.getSkillSubState();
 | |
| 	
 | |
| 	local pAni = obj.sq_GetCurrentAni();
 | |
| 	local frmIndex = obj.sq_GetCurrentFrameIndex(pAni);
 | |
| 	
 | |
| 	
 | |
| 
 | |
| 	if(substate == SUB_STATE_ICECHAKRAM_0) {
 | |
| 		// SUB_STATE_ICECHAKRAM_0 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_1)
 | |
| 	{
 | |
| 		local loopTime = 400;
 | |
| 		
 | |
| 		local t = obj.getVar("state").get_ct_vector(0);
 | |
| 		local currentT = 0;
 | |
| 		
 | |
| 		currentT = t.Get();
 | |
| 		
 | |
| 		//print( " currentT:" + currentT + " loopTime:" + loopTime);
 | |
| 			
 | |
| 		if(currentT > loopTime)
 | |
| 		{		
 | |
| 			if(!obj.getVar().get_vector(0))
 | |
| 			{
 | |
| 				obj.sq_IntVectClear();
 | |
| 				obj.sq_IntVectPush(SUB_STATE_ICECHAKRAM_2); // substate撮?
 | |
| 				obj.sq_AddSetStatePacket(STATE_ICECHAKRAM, STATE_PRIORITY_IGNORE_FORCE, true);
 | |
| 				
 | |
| 				obj.getVar().set_vector(0, 1);
 | |
| 			}
 | |
| 		}		
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_2)
 | |
| 	{
 | |
| 		if(obj.isMyControlObject())
 | |
| 		{
 | |
| 			if(obj.getVar("ani").get_vector(0))
 | |
| 			{
 | |
| 				local smallRingObj = obj.sq_GetPassiveObject(24258); // po_ATIceChakramSmallIceRing.nut 24258
 | |
| 				
 | |
| 				if(smallRingObj)
 | |
| 				{
 | |
| 					local passiveState = smallRingObj.getState();
 | |
| 					
 | |
| 					if(passiveState == PASSIVEOBJ_SUB_STATE_2)
 | |
| 					{
 | |
| 						local isFindChr = smallRingObj.getVar("findchr").get_vector(0);
 | |
| 						obj.sq_IntVectClear();
 | |
| 						obj.sq_IntVectPush(SUB_STATE_ICECHAKRAM_3); // substate撮?
 | |
| 						obj.sq_IntVectPush(isFindChr); // substate撮?
 | |
| 						obj.sq_AddSetStatePacket(STATE_ICECHAKRAM, STATE_PRIORITY_IGNORE_FORCE, true);
 | |
| 					}
 | |
| 				}
 | |
| 				else
 | |
| 				{
 | |
| 					obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_3) {
 | |
| 		// SUB_STATE_ICECHAKRAM_3 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_4) {
 | |
| 		// SUB_STATE_ICECHAKRAM_4 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_6) {
 | |
| 		sq_RemoveParticle("Character/Mage/Effect/Particle/ATIceChakramDust.ptl", obj);	
 | |
| 	}
 | |
| 	
 | |
| 
 | |
| }
 | |
| 
 | |
| function onEndCurrentAni_IceChakram(obj)
 | |
| {
 | |
| 
 | |
| 	if(!obj) return;
 | |
| 
 | |
| 	local substate = obj.getSkillSubState();
 | |
| 
 | |
| 	if(substate == SUB_STATE_ICECHAKRAM_0) {
 | |
| 		// SUB_STATE_ICECHAKRAM_0 怃粽蝶才桧? 蒙机		
 | |
| 		if(obj.isMyControlObject())
 | |
| 		{
 | |
| 			obj.sq_IntVectClear();
 | |
| 			obj.sq_IntVectPush(SUB_STATE_ICECHAKRAM_1); // substate撮?
 | |
| 			obj.sq_AddSetStatePacket(STATE_ICECHAKRAM, STATE_PRIORITY_IGNORE_FORCE, true);
 | |
| 		}
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_1) {
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_2) {
 | |
| 		obj.getVar("ani").set_vector(0, 1);
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_3) {
 | |
| 		// SUB_STATE_ICECHAKRAM_3 怃粽蝶才桧? 蒙机
 | |
| 		if(obj.isMyControlObject())
 | |
| 		{
 | |
| 			if(obj.getVar("findchr").get_vector(0))
 | |
| 			{
 | |
| 				obj.sq_IntVectClear();
 | |
| 				obj.sq_IntVectPush(SUB_STATE_ICECHAKRAM_5); // substate撮?
 | |
| 				obj.sq_AddSetStatePacket(STATE_ICECHAKRAM, STATE_PRIORITY_IGNORE_FORCE, true);
 | |
| 			}
 | |
| 			else
 | |
| 				obj.sq_AddSetStatePacket(STATE_STAND, STATE_PRIORITY_USER, false);
 | |
| 		}
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_4) {
 | |
| 		// 陈嬴蚂 离觼茔击 赅戏朝 翕蒙
 | |
| 		obj.sendStatePacket(STATE_ICECHAKRAM, SUB_STATE_ICECHAKRAM_5);		
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_5) {
 | |
| 		// 赎 离觼茔 ?瞪 卫郦朝 翕蒙
 | |
| 		obj.sendStatePacket(STATE_ICECHAKRAM, SUB_STATE_ICECHAKRAM_6);		
 | |
| 
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_6) {
 | |
| 		// 赎 离觼茔 ?瞪 卫郦朝 翕蒙
 | |
| 		obj.sendStateOnlyPacket(STATE_STAND);
 | |
| 	}
 | |
| 
 | |
| }
 | |
| 
 | |
| function onKeyFrameFlag_IceChakram(obj, flagIndex)
 | |
| {
 | |
| 
 | |
| 	if(!obj) return true;
 | |
| 
 | |
| 	local substate = obj.getSkillSubState();
 | |
| 
 | |
| 	if(substate == SUB_STATE_ICECHAKRAM_0) {
 | |
| 		// SUB_STATE_ICECHAKRAM_0 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_1) {
 | |
| 		// SUB_STATE_ICECHAKRAM_1 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_2) {
 | |
| 		// SUB_STATE_ICECHAKRAM_2 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_3) {
 | |
| 		// SUB_STATE_ICECHAKRAM_3 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_4) {
 | |
| 		// SUB_STATE_ICECHAKRAM_4 怃粽蝶才桧? 蒙机
 | |
| 
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_5) {		
 | |
| 		if(flagIndex == 1)
 | |
| 		{
 | |
| 			obj.sq_PlaySound("RAGEBLAST_THROW_LOOP",3711);	
 | |
| 			
 | |
| 			sq_SetMyShake(obj,2,100);		
 | |
| 			sq_CreateParticle("Character/Mage/Effect/Particle/ATIceChakramDust.ptl",obj,60, -60,0,true,350,1000,100);			
 | |
| 			sq_CreateParticle("Character/Mage/Effect/Particle/ATIceChakramDust_1.ptl",obj,-10,-10,0,true,350,1000,100);
 | |
| 		}
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_6) {		
 | |
| 		if(flagIndex == 1)
 | |
| 		{
 | |
| 			local createXDis = 30;
 | |
| 			local createYDis = 1;
 | |
| 			local createZDis = 58;						
 | |
| 			local searchAngleH = 30;
 | |
| 			local searchAngleV = 15;
 | |
| 			local distance = 1000;
 | |
| 			local angle = 20;
 | |
| 			
 | |
| 			local x = sq_GetDistancePos(obj.getXPos(), sq_GetDirection(obj), createXDis);
 | |
| 			local y = sq_GetDistancePos(obj.getYPos(), ENUM_DIRECTION_DOWN, createYDis);
 | |
| 			local z = sq_GetDistancePos(obj.getZPos(), ENUM_DIRECTION_UP, createZDis);
 | |
| 			
 | |
| 			local x_range = obj.sq_GetIntData(SKILL_ICECHAKRAM , 3); // x蹴 譆渠 彰嫔
 | |
| 			local y_range = 200; //
 | |
| 			local z_range = 100; //
 | |
| 		
 | |
| 			printc("x_range " + x_range);
 | |
| 			local activeObject = getPriorityTarget(obj, 0, x_range, y_range, z_range, null, true);
 | |
| 			printc("activeObject " + activeObject);
 | |
| 						
 | |
| 			local maxDistance = activeObject ? abs(activeObject.getXPos() - x) : obj.sq_GetIntData(SKILL_ICECHAKRAM , 3);;
 | |
| 			local horizonAngle = activeObject ? sq_GetShootingHorizonAngle(activeObject, y, 0, searchAngleH, maxDistance) : 0.0 ;
 | |
| 			local verticalAngle = activeObject ? sq_GetShootingVerticalAngle(activeObject, z, 0, searchAngleV, maxDistance, 300) : 0.0;
 | |
| 			local moveSpeed = obj.sq_GetIntData(SKILL_ICECHAKRAM , 5);			
 | |
| 												
 | |
| 			sq_BinaryStartWrite();
 | |
| 			sq_BinaryWriteFloat(horizonAngle);  // 桧翕 陕紫 热?
 | |
| 			sq_BinaryWriteFloat(verticalAngle); // 桧翕 陕紫 热霜
 | |
| 			sq_BinaryWriteDword(moveSpeed);		// 桧翕 楼紫
 | |
| 			sq_BinaryWriteDword(maxDistance);	// 桧翕 剪葬
 | |
| 			sq_BinaryWriteDword(sq_GetGroup(activeObject));	// 颤啃 姜尔
 | |
| 			sq_BinaryWriteDword(sq_GetUniqueId(activeObject));	// 颤啃 姜尔
 | |
| 			
 | |
| 			obj.sq_SendCreatePassiveObjectPacket(24234, 0, createXDis, createYDis, createZDis);			
 | |
| 			
 | |
| 			local attractPower = sq_GetLevelData(obj, SKILL_ICECHAKRAM, 6, sq_GetSkillLevel(obj, SKILL_ICECHAKRAM));
 | |
| 			if(attractPower > 0)
 | |
| 			{				
 | |
| 				local var = obj.getVar();
 | |
| 				local appendage = var.getAppendage(VAR_ICE_CHAKRAM_ATTRACT_APPENDAGE);
 | |
| 				if(appendage)
 | |
| 					appendage.setValid(false);			
 | |
| 			}
 | |
| 			
 | |
| 			obj.stopSound(3711);
 | |
| 		}
 | |
| 	}
 | |
| 		
 | |
| 	return true;
 | |
| 
 | |
| }
 | |
| 
 | |
| function onEndState_IceChakram(obj, new_state)
 | |
| {
 | |
| 	if(!obj)
 | |
| 		return;
 | |
| 	
 | |
| 	obj.stopSound(7577);
 | |
| 	
 | |
| 	if (new_state != STATE_STAND)
 | |
| 	{
 | |
| 		local var = obj.getVar();
 | |
| 		local appendage = var.getAppendage(VAR_ICE_CHAKRAM_ATTRACT_APPENDAGE);
 | |
| 		if (appendage)
 | |
| 			appendage.setValid(false);
 | |
| 	}
 | |
| 	
 | |
| 	// 等嘐虽,鼻鹧桧鼻 蛔戏煎 嬴桧蝶 离觼茔桧 部陬棻.
 | |
| 	if(new_state != STATE_ICECHAKRAM)
 | |
| 	{
 | |
| 		obj.stopSound(3711);
 | |
| 		// ??赝 薯剪.
 | |
| 		sq_RemoveParticle("Character/Mage/Effect/Particle/ATIceChakramDust.ptl", obj);
 | |
| 		sq_RemoveParticle("Character/Mage/Effect/Particle/ATIceChakramDust_1.ptl", obj);
 | |
| 	}	
 | |
| }
 | |
| 
 | |
| function onAfterSetState_IceChakram(obj, state, datas, isResetTimer)
 | |
| {
 | |
| 
 | |
| 	if(!obj) return;
 | |
| 
 | |
| 	local substate = obj.getSkillSubState();
 | |
| 
 | |
| 	if(substate == SUB_STATE_ICECHAKRAM_0) {
 | |
| 		// SUB_STATE_ICECHAKRAM_0 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_1) {
 | |
| 		// SUB_STATE_ICECHAKRAM_1 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_2) {
 | |
| 		// SUB_STATE_ICECHAKRAM_2 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_3) {
 | |
| 		// SUB_STATE_ICECHAKRAM_3 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	else if(substate == SUB_STATE_ICECHAKRAM_4) {
 | |
| 		// SUB_STATE_ICECHAKRAM_4 怃粽蝶才桧? 蒙机
 | |
| 	}
 | |
| 	
 | |
| 
 | |
| }
 |