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 怃粽蝶才桧? 蒙机
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |