236 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			236 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								ENUM_PO_ICE_CHAKRAM_TIMER_LARGE_MULTI_HIT <- 0;
							 | 
						|||
| 
								 | 
							
								ENUM_PO_ICE_CHAKRAM_TIMER_LARGE_MOVE_END  <- 1;
							 | 
						|||
| 
								 | 
							
								ENUM_PO_ICE_CHAKRAM_TIMER_LARGE_SPIN      <- 2;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								ENUM_PIC_SUB_STATE_FLYING		<-10; //PIC == PO_ICE_CHAKRAM
							 | 
						|||
| 
								 | 
							
								ENUM_PIC_SUB_STATE_SPIN			<-11;	
							 | 
						|||
| 
								 | 
							
								ENUM_PIC_SUB_STATE_READY_EXPLOSION	<-12; // ?嫦遽绿 : ?拥飓
							 | 
						|||
| 
								 | 
							
								ENUM_PIC_SUB_STATE_EXPLOSION		<-13; // 夥煎 ?嫦卫
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								ENUM_PIC_CUSTOM_ATTACK_INFO_DEFAULT <- -1;
							 | 
						|||
| 
								 | 
							
								ENUM_PIC_CUSTOM_ATTACK_INFO_SPIN	<- 0;
							 | 
						|||
| 
								 | 
							
								ENUM_PIC_CUSTOM_ATTACK_INFO_EXPLOSION	<- 1;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								ENUM_PIC_CUSTOM_ANI_READY		<- 0;
							 | 
						|||
| 
								 | 
							
								ENUM_PIC_CUSTOM_ANI_EXPLOSION	<- 1;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function setAttackInfo_po_ATIceChakramLarge(obj, attackInfoIndex)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if(attackInfoIndex != ENUM_PIC_CUSTOM_ATTACK_INFO_DEFAULT)
							 | 
						|||
| 
								 | 
							
										sq_SetCurrentAttackInfoFromCustomIndex(obj, attackInfoIndex);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
									local parentObj = obj.getTopCharacter();
							 | 
						|||
| 
								 | 
							
									if(parentObj) { // 棻钦??蒂 嫔? 颤桧该.		
							 | 
						|||
| 
								 | 
							
										// 赎坚葬 棻钦 ?? 奢问溘 扑姜
							 | 
						|||
| 
								 | 
							
										local sqrParent = sq_ObjectToSQRCharacter(parentObj);
							 | 
						|||
| 
								 | 
							
										if(sqrParent) {
							 | 
						|||
| 
								 | 
							
											local power = sqrParent.sq_GetBonusRateWithPassive(SKILL_ICECHAKRAM , STATE_ICECHAKRAM, 1, 1.0);		
							 | 
						|||
| 
								 | 
							
											local attackInfo = sq_GetCurrentAttackInfo(obj);
							 | 
						|||
| 
								 | 
							
											sq_SetCurrentAttackBonusRate(attackInfo, power);
							 | 
						|||
| 
								 | 
							
											sq_SetCurrentAttackeHitStunTime(attackInfo, 0); // 奢问 唳霜卫除 桡拥晦.
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function setCustomData_po_ATIceChakramLarge(obj, reciveData)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if(!obj) return;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local parentObj = obj.getTopCharacter();
							 | 
						|||
| 
								 | 
							
									if(parentObj) { // 棻钦??蒂 嫔? 颤桧该.
							 | 
						|||
| 
								 | 
							
										local multiHitTimeGab = sq_GetLevelData(parentObj,	SKILL_ICECHAKRAM, 5, sq_GetSkillLevel(parentObj, SKILL_ICECHAKRAM));
							 | 
						|||
| 
								 | 
							
										obj.setTimeEvent(ENUM_PO_ICE_CHAKRAM_TIMER_LARGE_MULTI_HIT, multiHitTimeGab, 0, true); // 0桧贼 鼠?渠
							 | 
						|||
| 
								 | 
							
											
							 | 
						|||
| 
								 | 
							
										// 赎坚葬 棻钦 ?? 奢问溘 扑姜
							 | 
						|||
| 
								 | 
							
										setAttackInfo_po_ATIceChakramLarge(obj, ENUM_PIC_CUSTOM_ATTACK_INFO_DEFAULT);
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local horizonAngle  = reciveData.readFloat();
							 | 
						|||
| 
								 | 
							
									local verticalAngle = reciveData.readFloat();	
							 | 
						|||
| 
								 | 
							
									local moveSpeed		= reciveData.readDword();
							 | 
						|||
| 
								 | 
							
									local maxDistance	= reciveData.readDword();
							 | 
						|||
| 
								 | 
							
									local group			= reciveData.readDword(); // 颤啃 斜瑜
							 | 
						|||
| 
								 | 
							
									local uid			= reciveData.readDword(); // 颤啃 Uid	
							 | 
						|||
| 
								 | 
							
									local target		= sq_GetObject(obj, group, uid);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local var = obj.getVar();
							 | 
						|||
| 
								 | 
							
									var.setObject(0,target);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									obj.sq_SetMoveParticle("Particle/ATIceChakramLarge.ptl", horizonAngle, verticalAngle);
							 | 
						|||
| 
								 | 
							
									sq_SetSpeedToMoveParticle(obj,0,moveSpeed);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									//卫除 = 剪葬/楼紫
							 | 
						|||
| 
								 | 
							
									local flyTiime = maxDistance.tofloat()/moveSpeed.tofloat() * 1000.0;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									// 桧翕 姜卫? 卫除.
							 | 
						|||
| 
								 | 
							
									obj.setTimeEvent(ENUM_PO_ICE_CHAKRAM_TIMER_LARGE_MOVE_END, flyTiime.tointeger(), 1, false); // 0桧贼 鼠?渠
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									obj.sendStateOnlyPacket(ENUM_PIC_SUB_STATE_FLYING); // 晦狱 蝶才桧?朝 陈嬴陛朝 鼻鹧.
							 | 
						|||
| 
								 | 
							
									sq_CreateParticle("PassiveObject/Character/Mage/Particle/ATIceChakramDust.ptl",obj,0,0,-40,true,50,flyTiime.tointeger(),100);
							 | 
						|||
| 
								 | 
							
									obj.sq_PlaySound("RAGEBLAST_THROW_LOOP",2711);	
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function destroy_po_ATIceChakramLarge(obj)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									sq_RemoveParticle("PassiveObject/Character/Mage/Particle/ATIceChakramDust.ptl", obj);	
							 | 
						|||
| 
								 | 
							
									obj.stopSound(2711);
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function onTimeEvent_po_ATIceChakramLarge(obj, timeEventIndex, timeEventCount)
							 | 
						|||
| 
								 | 
							
								{	
							 | 
						|||
| 
								 | 
							
									if(!obj)
							 | 
						|||
| 
								 | 
							
										return true;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									if(timeEventIndex == ENUM_PO_ICE_CHAKRAM_TIMER_LARGE_MULTI_HIT)
							 | 
						|||
| 
								 | 
							
									{			
							 | 
						|||
| 
								 | 
							
										obj.resetHitObjectList(); //棻钦??蒂嫔? ??螃粽薛? 葬蝶?蒂 葬掸.				
							 | 
						|||
| 
								 | 
							
										return false; // false贼 啗楼 属寥 (timeEventCount苹遴?陛 嵘?桧塭贼 timeEventCount 虏踯 属寥)
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									else if(timeEventIndex == ENUM_PO_ICE_CHAKRAM_TIMER_LARGE_MOVE_END)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										//桧翕 部桧贼 薯濠葬 ?瞪.		
							 | 
						|||
| 
								 | 
							
										obj.sendStateOnlyPacket(ENUM_PIC_SUB_STATE_SPIN);
							 | 
						|||
| 
								 | 
							
										printc("ENUM_PIC_SUB_STATE_SPIN");
							 | 
						|||
| 
								 | 
							
										return true;		
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									else if(timeEventIndex ==  ENUM_PO_ICE_CHAKRAM_TIMER_LARGE_SPIN)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										// ?嫦
							 | 
						|||
| 
								 | 
							
										obj.sendStateOnlyPacket(ENUM_PIC_SUB_STATE_READY_EXPLOSION);		
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									return true;
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function setState_po_ATIceChakramLarge(obj, state, datas)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if(!obj) return;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									if(state == ENUM_PIC_SUB_STATE_SPIN)
							 | 
						|||
| 
								 | 
							
									{		
							 | 
						|||
| 
								 | 
							
										// 试虽 ??赝 薯剪.
							 | 
						|||
| 
								 | 
							
										sq_RemoveParticle("PassiveObject/Character/Mage/Particle/ATIceChakramDust.ptl", obj);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										setAttackInfo_po_ATIceChakramLarge(obj, ENUM_PIC_CUSTOM_ATTACK_INFO_SPIN);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										// 薯濠葬缣怃 蝶?. 颤啃桧 桡棻贼 夥煎 ?嫦				
							 | 
						|||
| 
								 | 
							
										obj.sq_RemoveMoveParticle();
							 | 
						|||
| 
								 | 
							
										local var = obj.getVar();
							 | 
						|||
| 
								 | 
							
										local target = var.getObject(0);	
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
										if (target) {							
							 | 
						|||
| 
								 | 
							
											obj.setTimeEvent(ENUM_PO_ICE_CHAKRAM_TIMER_LARGE_SPIN, 500, 1, false); // 0桧贼 鼠?渠				
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
										else {
							 | 
						|||
| 
								 | 
							
											obj.sendStateOnlyPacket(ENUM_PIC_SUB_STATE_EXPLOSION);		
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
									}		
							 | 
						|||
| 
								 | 
							
									else if(state == ENUM_PIC_SUB_STATE_READY_EXPLOSION)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										setCurrentAnimationFromCutomIndex(obj, ENUM_PIC_CUSTOM_ANI_READY);		
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									else if(state == ENUM_PIC_SUB_STATE_EXPLOSION)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										obj.stopSound(2711);
							 | 
						|||
| 
								 | 
							
										// 棻钦??暧 颤桧该蒂 酝钦.
							 | 
						|||
| 
								 | 
							
										obj.stopTimeEvent(ENUM_PO_ICE_CHAKRAM_TIMER_LARGE_MULTI_HIT);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										setCurrentAnimationFromCutomIndex(obj, ENUM_PIC_CUSTOM_ANI_EXPLOSION);	
							 | 
						|||
| 
								 | 
							
										sq_SetCurrentAttackInfoFromCustomIndex(obj, ENUM_PIC_CUSTOM_ATTACK_INFO_EXPLOSION);
							 | 
						|||
| 
								 | 
							
											
							 | 
						|||
| 
								 | 
							
										local parentObj = obj.getTopCharacter();
							 | 
						|||
| 
								 | 
							
										if(parentObj) {
							 | 
						|||
| 
								 | 
							
											// ?嫦 ?? 奢问溘 扑姜
							 | 
						|||
| 
								 | 
							
											local sqrParent = sq_ObjectToSQRCharacter(parentObj);
							 | 
						|||
| 
								 | 
							
											if(sqrParent) {
							 | 
						|||
| 
								 | 
							
												local power = sqrParent.sq_GetBonusRateWithPassive(SKILL_ICECHAKRAM , STATE_ICECHAKRAM, 2, 1.0);		
							 | 
						|||
| 
								 | 
							
												local attackInfo = sq_GetCurrentAttackInfo(obj);
							 | 
						|||
| 
								 | 
							
												sq_SetCurrentAttackBonusRate(attackInfo, power);
							 | 
						|||
| 
								 | 
							
												sq_SetCurrentAttackeHitStunTime(attackInfo, 0); // 奢问 唳霜卫除 桡拥晦.
							 | 
						|||
| 
								 | 
							
											}
							 | 
						|||
| 
								 | 
							
										}		
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										local flashScreen = sq_flashScreen(obj, 0, 80, 0, 120, sq_RGB(255,255,255), GRAPHICEFFECT_NONE, ENUM_DRAWLAYER_BOTTOM);
							 | 
						|||
| 
								 | 
							
										sq_addFlashScreen(flashScreen, 0, 960, 320, 120, sq_RGB(0,0,0), GRAPHICEFFECT_NONE, ENUM_DRAWLAYER_BOTTOM);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										sq_SetMyShake(obj,4,340);
							 | 
						|||
| 
								 | 
							
									}		
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function onAttack_po_ATIceChakramLarge(obj, damager, boundingBox, isStuck)
							 | 
						|||
| 
								 | 
							
								{	// ?颤 鼠楼撩
							 | 
						|||
| 
								 | 
							
									if (!obj)
							 | 
						|||
| 
								 | 
							
										return 0;
							 | 
						|||
| 
								 | 
							
									if (isStuck)
							 | 
						|||
| 
								 | 
							
										return 0;
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
									local var = obj.getVar();
							 | 
						|||
| 
								 | 
							
									var.push_obj_vector(damager);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local target = var.getObject(0);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									if(target && isSameObject(target,damager))//颤啃击 奢问?棻贼.
							 | 
						|||
| 
								 | 
							
									{	
							 | 
						|||
| 
								 | 
							
										// 颤啃桧 桧翕陛栋? 偌羹塭贼 鬼薯煎 桧翕.	//蜃晦 桧雌 嫔纂煎.		
							 | 
						|||
| 
								 | 
							
										if(!sq_IsFixture(damager) && sq_IsGrabable(obj,target)) {		
							 | 
						|||
| 
								 | 
							
											sq_SetCurrentPos(damager, sq_GetDistancePos(obj.getXPos(), obj.getDirection(), 100), obj.getYPos(), damager.getZPos());
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									return 0;
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function getCustomHitEffectFileName_po_ATIceChakramLarge(obj, isAttachOnDamager)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									// 伞鼠 号戏贼 滓 嵘嫦. 奢问?朝 偎热陛 号击 热烟 瞳啪 ?卫
							 | 
						|||
| 
								 | 
							
									local var = obj.getVar();
							 | 
						|||
| 
								 | 
							
									local maxN = var.get_obj_vector_size();
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									if(maxN > 3)
							 | 
						|||
| 
								 | 
							
										maxN = 3;
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
									if(sq_getRandom(0,maxN) == 0)
							 | 
						|||
| 
								 | 
							
										return "PassiveObject/Character/Mage/Animation/ATIceChakram/fire/08_chakrahit_dodge.ani";
							 | 
						|||
| 
								 | 
							
									else
							 | 
						|||
| 
								 | 
							
										return "";
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function procAppend_po_ATIceChakramLarge(obj)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									//obj.sendDestroyPacket(true);
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function onKeyFrameFlag_po_ATIceChakramLarge(obj, flagIndex)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if(!obj) return true;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									if(flagIndex == 1) {
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									return true;
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function onEndCurrentAni_po_ATIceChakramLarge(obj)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if(!obj) return;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									if(obj.getState() == ENUM_PIC_SUB_STATE_READY_EXPLOSION) 
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										obj.sendStateOnlyPacket(ENUM_PIC_SUB_STATE_EXPLOSION);		
							 | 
						|||
| 
								 | 
							
									}	
							 | 
						|||
| 
								 | 
							
									else if(obj.getState() == ENUM_PIC_SUB_STATE_EXPLOSION)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										obj.sendDestroyPacket(true);		
							 | 
						|||
| 
								 | 
							
									}	
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								 |