358 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			358 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								BrokenArrow_START_X <- 0
							 | 
						|||
| 
								 | 
							
								BrokenArrow_START_Y <- 1
							 | 
						|||
| 
								 | 
							
								BrokenArrow_START_Z <- 2
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								BrokenArrow_MOV_X <- 3
							 | 
						|||
| 
								 | 
							
								BrokenArrow_MOV_Y <- 4
							 | 
						|||
| 
								 | 
							
								BrokenArrow_MOV_Z <- 5
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function setCustomData_po_ATBrokenArrow(obj, reciveData)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if(!obj) return;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local xLen = reciveData.readDword();
							 | 
						|||
| 
								 | 
							
									local yLen = reciveData.readDword();
							 | 
						|||
| 
								 | 
							
									local zLen = reciveData.readDword();
							 | 
						|||
| 
								 | 
							
									local attackRate = reciveData.readDword();
							 | 
						|||
| 
								 | 
							
									local expTime = reciveData.readDword();
							 | 
						|||
| 
								 | 
							
									local stunTime = reciveData.readDword();
							 | 
						|||
| 
								 | 
							
									local angle = reciveData.readFloat() * 100;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local x = sq_GetXPos(obj);
							 | 
						|||
| 
								 | 
							
									local y = sq_GetYPos(obj);
							 | 
						|||
| 
								 | 
							
									local z = sq_GetZPos(obj);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
									obj.getVar("dis").clear_vector();
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									obj.getVar("dis").push_vector(x);
							 | 
						|||
| 
								 | 
							
									obj.getVar("dis").push_vector(y);
							 | 
						|||
| 
								 | 
							
									obj.getVar("dis").push_vector(z);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									obj.getVar("dis").push_vector(xLen);
							 | 
						|||
| 
								 | 
							
									obj.getVar("dis").push_vector(yLen);
							 | 
						|||
| 
								 | 
							
									obj.getVar("dis").push_vector(zLen);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									obj.getVar("state").clear_vector(); // state vector
							 | 
						|||
| 
								 | 
							
									obj.getVar("state").push_vector(BrokenArrow_state_0);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									local expT = expTime; // 唳霜卫除
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									obj.getVar("fire").clear_vector(); // state vector
							 | 
						|||
| 
								 | 
							
									obj.getVar("fire").push_vector(expT);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local current100Angle = angle.tointeger();
							 | 
						|||
| 
								 | 
							
									obj.getVar("angle").clear_vector();
							 | 
						|||
| 
								 | 
							
									obj.getVar("angle").push_vector(current100Angle);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local pIntVec = sq_GetGlobalIntVector();
							 | 
						|||
| 
								 | 
							
									sq_IntVectorClear(pIntVec);
							 | 
						|||
| 
								 | 
							
									sq_IntVectorPush(pIntVec, 0);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									//sq_SetAttackInfoForceHitStunTime(
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local atk = sq_GetCurrentAttackInfo(obj);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									if(atk)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										sq_SetCurrentAttackBonusRate(atk, attackRate);
							 | 
						|||
| 
								 | 
							
										sq_SetAttackInfoForceHitStunTime(atk, stunTime);
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									if(obj.isMyControlObject())
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										obj.addSetStatePacket(BrokenArrow_state_0, pIntVec, STATE_PRIORITY_AUTO, false, "");
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function setState_po_ATBrokenArrow(obj, state, datas)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if(!obj) return;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local passiveState = state;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									obj.getVar("state").set_vector(0, passiveState);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									if(passiveState == BrokenArrow_state_0)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										obj.sq_PlaySound("BARROW_SHOT");
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									else if(passiveState == BrokenArrow_state_1)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										local ani = obj.getCustomAnimation(0);
							 | 
						|||
| 
								 | 
							
										obj.setCurrentAnimation(ani);
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									else if(passiveState == BrokenArrow_state_2)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										local ani = obj.getCustomAnimation(1);
							 | 
						|||
| 
								 | 
							
										obj.setCurrentAnimation(ani);
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local current100Angle = obj.getVar("angle").get_vector(0);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									if(current100Angle != -100)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										local pAni = obj.getCurrentAnimation();
							 | 
						|||
| 
								 | 
							
										local angle = current100Angle.tofloat() / 100.0;
							 | 
						|||
| 
								 | 
							
										print(" set angle:" + angle);
							 | 
						|||
| 
								 | 
							
										//sq_SetfRotateAngle(pAni, angle);
							 | 
						|||
| 
								 | 
							
										//sq_SetfRotateAngle(pAni, 5.0);
							 | 
						|||
| 
								 | 
							
										//obj.void CNRDObject::setCustomRotate(bool isApply, float rotateAnlge)
							 | 
						|||
| 
								 | 
							
										obj.setCustomRotate(true, angle);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function procAppend_po_ATBrokenArrow(obj)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									if(!obj) return;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
								//BrokenArrow_START_X <- 0
							 | 
						|||
| 
								 | 
							
								//BrokenArrow_START_Y <- 1
							 | 
						|||
| 
								 | 
							
								//BrokenArrow_START_Z <- 2
							 | 
						|||
| 
								 | 
							
								//
							 | 
						|||
| 
								 | 
							
								//BrokenArrow_MOV_X <- 3
							 | 
						|||
| 
								 | 
							
								//BrokenArrow_MOV_Y <- 4
							 | 
						|||
| 
								 | 
							
								//BrokenArrow_MOV_Z <- 5
							 | 
						|||
| 
								 | 
							
									local passiveState = obj.getVar("state").get_vector(0);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
								//BrokenArrow_state_0 <- 10
							 | 
						|||
| 
								 | 
							
								//BrokenArrow_state_1 <- 11
							 | 
						|||
| 
								 | 
							
									local pAni = obj.getCurrentAnimation();
							 | 
						|||
| 
								 | 
							
									local currentT = sq_GetCurrentTime(pAni);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									if(passiveState == 0)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										return;
							 | 
						|||
| 
								 | 
							
									}	
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									if(passiveState == BrokenArrow_state_0)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										local fireT = 200;
							 | 
						|||
| 
								 | 
							
										local srcX = obj.getVar("dis").get_vector(BrokenArrow_START_X); // 卫蒙x
							 | 
						|||
| 
								 | 
							
										local srcY = obj.getVar("dis").get_vector(BrokenArrow_START_Y); // 卫蒙y
							 | 
						|||
| 
								 | 
							
										local srcZ = obj.getVar("dis").get_vector(BrokenArrow_START_Z); // 卫蒙z
							 | 
						|||
| 
								 | 
							
										    	
							 | 
						|||
| 
								 | 
							
										local dis_x_len = obj.getVar("dis").get_vector(BrokenArrow_MOV_X); // 识 桧翕剪葬
							 | 
						|||
| 
								 | 
							
										local dis_y_len = obj.getVar("dis").get_vector(BrokenArrow_MOV_Y); // y蹴 桧翕剪葬
							 | 
						|||
| 
								 | 
							
										local endZ = obj.getVar("dis").get_vector(BrokenArrow_MOV_Z); // z蹴 桧翕剪葬
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										local v = sq_GetUniformVelocity(0, dis_x_len, currentT, fireT);
							 | 
						|||
| 
								 | 
							
										local my = sq_GetUniformVelocity(0, dis_y_len, currentT, fireT);
							 | 
						|||
| 
								 | 
							
										local mz = sq_GetUniformVelocity(srcZ, endZ, currentT, fireT);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										local dstX = sq_GetDistancePos(srcX, obj.getDirection(), v);
							 | 
						|||
| 
								 | 
							
										local dstY = srcY + my;
							 | 
						|||
| 
								 | 
							
										 
							 | 
						|||
| 
								 | 
							
										sq_setCurrentAxisPos(obj, 0, dstX);
							 | 
						|||
| 
								 | 
							
										sq_setCurrentAxisPos(obj, 1, dstY);
							 | 
						|||
| 
								 | 
							
										sq_setCurrentAxisPos(obj, 2, mz);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										if(currentT >= fireT)
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
											if(obj.isMyControlObject())
							 | 
						|||
| 
								 | 
							
											{
							 | 
						|||
| 
								 | 
							
												sq_SendDestroyPacketPassiveObject(obj);
							 | 
						|||
| 
								 | 
							
											}
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									else if(passiveState == BrokenArrow_state_1)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										local fireT = obj.getVar("fire").get_vector(0);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										if(obj.isMyControlObject())
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
												
							 | 
						|||
| 
								 | 
							
											local moveParent = sq_GetMoveParent(obj);
							 | 
						|||
| 
								 | 
							
											
							 | 
						|||
| 
								 | 
							
											local changeState = false;
							 | 
						|||
| 
								 | 
							
											
							 | 
						|||
| 
								 | 
							
											if(!moveParent)
							 | 
						|||
| 
								 | 
							
												changeState = true;
							 | 
						|||
| 
								 | 
							
												
							 | 
						|||
| 
								 | 
							
											if(moveParent)
							 | 
						|||
| 
								 | 
							
											{
							 | 
						|||
| 
								 | 
							
												local isSmashing = false; // ?溥纂朝 挡暮樯虽
							 | 
						|||
| 
								 | 
							
												local parentState = obj.sq_GetParentState();
							 | 
						|||
| 
								 | 
							
												local subState = obj.sq_GetParentSkillSubState();
							 | 
						|||
| 
								 | 
							
												
							 | 
						|||
| 
								 | 
							
												if(parentState == STATE_BROKENARROW && subState >= SUB_STATE_BROKENARROW_3)
							 | 
						|||
| 
								 | 
							
													isSmashing = true;
							 | 
						|||
| 
								 | 
							
													
							 | 
						|||
| 
								 | 
							
												if(moveParent.getState() == STATE_DOWN && isSmashing == true)
							 | 
						|||
| 
								 | 
							
												{
							 | 
						|||
| 
								 | 
							
													changeState = true;
							 | 
						|||
| 
								 | 
							
												}
							 | 
						|||
| 
								 | 
							
											}
							 | 
						|||
| 
								 | 
							
											
							 | 
						|||
| 
								 | 
							
											if(currentT >= fireT)
							 | 
						|||
| 
								 | 
							
												changeState = true;
							 | 
						|||
| 
								 | 
							
											
							 | 
						|||
| 
								 | 
							
											if(changeState == true)
							 | 
						|||
| 
								 | 
							
											{
							 | 
						|||
| 
								 | 
							
												if(obj.isMyControlObject())
							 | 
						|||
| 
								 | 
							
												{
							 | 
						|||
| 
								 | 
							
													local pIntVec = sq_GetGlobalIntVector();
							 | 
						|||
| 
								 | 
							
												
							 | 
						|||
| 
								 | 
							
													sq_IntVectorClear(pIntVec);
							 | 
						|||
| 
								 | 
							
													sq_IntVectorPush(pIntVec, 0);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
													obj.addSetStatePacket(BrokenArrow_state_2, pIntVec, STATE_PRIORITY_AUTO, false, "");
							 | 
						|||
| 
								 | 
							
												}
							 | 
						|||
| 
								 | 
							
											}
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									else if(passiveState == BrokenArrow_state_2)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										local isEnd = sq_IsEnd(pAni);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										if(isEnd == true)
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
											if(obj.isMyControlObject())
							 | 
						|||
| 
								 | 
							
											{
							 | 
						|||
| 
								 | 
							
												sq_SendDestroyPacketPassiveObject(obj);
							 | 
						|||
| 
								 | 
							
											}
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function onChangeSkillEffect_po_ATBrokenArrow(obj, skillIndex, reciveData)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									if(!obj) return;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function onDestroyObject_po_ATBrokenArrow(obj, object)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if(!obj) return;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function onKeyFrameFlag_po_ATBrokenArrow(obj, flagIndex)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function onEndCurrentAni_po_ATBrokenArrow(obj)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									if(!obj) return;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function onAttack_po_ATBrokenArrow(obj, damager, boundingBox, isStuck)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if(!obj)
							 | 
						|||
| 
								 | 
							
										return 0;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local pChr = obj.getTopCharacter();
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									if(!pChr)
							 | 
						|||
| 
								 | 
							
										return 0;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									// ?髦缣 蜃懊击 阳 ?髦 ?瞳		
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local x = sq_GetXPos(pChr);
							 | 
						|||
| 
								 | 
							
									local y = sq_GetYPos(pChr);
							 | 
						|||
| 
								 | 
							
									local z = sq_GetZPos(pChr);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local damagerX = sq_GetXPos(damager);
							 | 
						|||
| 
								 | 
							
									local damagerY = sq_GetYPos(damager);
							 | 
						|||
| 
								 | 
							
									local damagerZ = sq_GetZPos(damager);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local direction = ENUM_DIRECTION_LEFT;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									if(x < damagerX)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										direction = ENUM_DIRECTION_RIGHT;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									//local appendage = CNSquirrelAppendage.sq_AppendAppendage(obj, obj, 
							 | 
						|||
| 
								 | 
							
									//SKILL_BROKENARROW, true, "Character/ATMage/BrokenArrow/ap_ATBrokenArrow.nut", true);
							 | 
						|||
| 
								 | 
							
									//
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									//local ani = sq_CreateAnimation("", "PassiveObject/Character/Mage/Animation/ATBrokenArrow/hiteffect/00_arrow_normal.ani");	
							 | 
						|||
| 
								 | 
							
									//local arrowObj = sq_CreatePooledObject(ani,true);
							 | 
						|||
| 
								 | 
							
									//sq_AddObjectTarget(obj, arrowObj, damager, OBJECTTYPE_DRAWONLY, BROKENARROW_UNIQUE_ID);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									//arrowObj.setCurrentDirection(direction);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									//local hitX = (sq_GetCenterXPos(boundingBox) - 5);// + sq_getRandom(0, 2);
							 | 
						|||
| 
								 | 
							
									local hitX = sq_GetXPos(damager) + sq_getRandom(0, 2);
							 | 
						|||
| 
								 | 
							
									local hitY = sq_GetYPos(damager) + 1;
							 | 
						|||
| 
								 | 
							
									local hitZ = (sq_GetCenterZPos(boundingBox) - 5) + sq_getRandom(0, 5);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									//arrowObj.setCurrentPos(hitX,hitY,hitZ);
							 | 
						|||
| 
								 | 
							
									//sq_moveWithParent(damager, arrowObj);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									obj.setCurrentPos(hitX,hitY,hitZ);
							 | 
						|||
| 
								 | 
							
									sq_moveWithParent(damager, obj);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									local appendage = CNSquirrelAppendage.sq_AppendAppendage(damager, damager, SKILL_BROKENARROW, 
							 | 
						|||
| 
								 | 
							
									true, "Appendage/Character/ap_atmage_effect.nut", true);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									print(" onattack");
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									if(obj.isMyControlObject())
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										local passiveState = obj.getVar("state").get_vector(0);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										print(" onattack:" + passiveState);
							 | 
						|||
| 
								 | 
							
										if(passiveState == BrokenArrow_state_0)
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
											local pIntVec = sq_GetGlobalIntVector();
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
											sq_IntVectorClear(pIntVec);
							 | 
						|||
| 
								 | 
							
											sq_IntVectorPush(pIntVec, 0);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
											obj.addSetStatePacket(BrokenArrow_state_1, pIntVec, STATE_PRIORITY_AUTO, false, "");
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
										else if(passiveState == BrokenArrow_state_1)
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
											local pIntVec = sq_GetGlobalIntVector();
							 | 
						|||
| 
								 | 
							
											
							 | 
						|||
| 
								 | 
							
											sq_IntVectorClear(pIntVec);
							 | 
						|||
| 
								 | 
							
											sq_IntVectorPush(pIntVec, 0);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
											obj.addSetStatePacket(BrokenArrow_state_2, pIntVec, STATE_PRIORITY_AUTO, false, "");
							 | 
						|||
| 
								 | 
							
											//sq_SendDestroyPacketPassiveObject(obj);
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										//local group = sq_GetGroup(damager);
							 | 
						|||
| 
								 | 
							
										//local uniqueId = sq_GetUniqueId(damager);
							 | 
						|||
| 
								 | 
							
										//
							 | 
						|||
| 
								 | 
							
										//sq_BinaryStartWrite();
							 | 
						|||
| 
								 | 
							
										//sq_BinaryWriteWord(group);
							 | 
						|||
| 
								 | 
							
										//sq_BinaryWriteWord(uniqueId);
							 | 
						|||
| 
								 | 
							
										//
							 | 
						|||
| 
								 | 
							
										//sq_SendChangeSkillEffectPacket(pChr, SKILL_BROKENARROW);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
										//sq_SendDestroyPacketPassiveObject(obj);
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									return 0;
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function getCustomHitEffectFileName_po_ATBrokenArrow(obj, isAttachOnDamager)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									return "PassiveObject/Character/Mage/Animation/ATBrokenArrow/02_arrowboom_dodge.ani";
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								 |