323 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			323 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// state蒂 撮??坚 籀挤戏煎 菟横螃啪 腌栖棻. 陕谦 葬模蝶蒂 撮??栖棻. 
							 | 
						||
| 
								 | 
							
								function onSetState_Attack(obj, state, datas, isResetTimer)
							 | 
						||
| 
								 | 
							
								{	
							 | 
						||
| 
								 | 
							
									if (!obj)
							 | 
						||
| 
								 | 
							
										return;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									local skillLevel = obj.sq_GetSkillLevel(SKILL_ICE_ELEMENTAL_ATTACK);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									// 热樯羹蒂 寡锡挤.
							 | 
						||
| 
								 | 
							
									if (skillLevel > 0)
							 | 
						||
| 
								 | 
							
									{
							 | 
						||
| 
								 | 
							
										// 橾奁 奢问卫, 擅戏煎 瞪霞 籀葬
							 | 
						||
| 
								 | 
							
										obj.setAttackXVelocity(250);
							 | 
						||
| 
								 | 
							
										obj.setAttackXAccel(-1000);
							 | 
						||
| 
								 | 
							
										obj.setAttackXVelocityFast(400);
							 | 
						||
| 
								 | 
							
										obj.setAttackXAccelFast(-1000);
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										// 晦狱晦 熨湿 瞳辨	
							 | 
						||
| 
								 | 
							
										obj.applyBasicAttackUp(sq_GetCurrentAttackInfo(obj),obj.getState());		
							 | 
						||
| 
								 | 
							
										sq_SetCurrentAttackInfo(obj, sq_GetCurrentAttackInfo(obj));
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									else
							 | 
						||
| 
								 | 
							
									{
							 | 
						||
| 
								 | 
							
										// 热樯羹蒂 寡办虽 强懊棻贼 薯濠葬缣怃 葆彻掘 卫瞪
							 | 
						||
| 
								 | 
							
										obj.setAttackXVelocity(0);
							 | 
						||
| 
								 | 
							
										obj.setAttackXAccel(0);
							 | 
						||
| 
								 | 
							
										obj.setAttackXVelocityFast(0);
							 | 
						||
| 
								 | 
							
										obj.setAttackXAccelFast(0);
							 | 
						||
| 
								 | 
							
										local element = obj.getThrowElement();
							 | 
						||
| 
								 | 
							
										local attackIndex = obj.getAttackIndex();
							 | 
						||
| 
								 | 
							
										playSoundForAtmageAttack(obj, element, attackIndex);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function onAfterSetState_Attack(obj, state, datas, isResetTimer)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									if (!obj) return;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									// 热樯羹 蝶鉴击 寡锡棻贼, ?颤 缣栖诡桧暮桧 夥莘
							 | 
						||
| 
								 | 
							
									// 葆彻掘紫 嫦饵肾虽 强挤.
							 | 
						||
| 
								 | 
							
									local iceElementalAttackSkillLevel = obj.sq_GetSkillLevel(SKILL_ICE_ELEMENTAL_ATTACK);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									if (state == STATE_ATTACK && iceElementalAttackSkillLevel <= 0)
							 | 
						||
| 
								 | 
							
									{
							 | 
						||
| 
								 | 
							
										// ?颤 桧??蒂 称樯棻.
							 | 
						||
| 
								 | 
							
										// 勘溥毡朝 帼? 蝶鉴 樯策蝶 塽 怃粽 蝶才桧?缣 评塭怃 尔罹虽朝 桧??陛 棻荤 (楼撩缣评塭怃 称朝 桧??陛 棻荤)
							 | 
						||
| 
								 | 
							
										local element = obj.getThrowElement();
							 | 
						||
| 
								 | 
							
										local attackIndex = obj.getAttackIndex();
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										// 楼撩嫦翕 appendage缣 勘溥毡朝虽 羹觼?.
							 | 
						||
| 
								 | 
							
										// 楼撩嫦翕缣 勘溥毡虽 强棻贼 鼠楼撩 ?颤陛 嫦饵脾
							 | 
						||
| 
								 | 
							
										local appendage = obj.GetSquirrelAppendage("Character/ATMage/ElementalChange/ap_ATMage_Elemental_Change.nut");
							 | 
						||
| 
								 | 
							
										if (!appendage || !appendage.isValid())
							 | 
						||
| 
								 | 
							
											element = ENUM_ELEMENT_NONE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										if (attackIndex == 0)
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											if (element == ENUM_ELEMENT_FIRE)
							 | 
						||
| 
								 | 
							
											{	// ?楼撩
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(1, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/fire/attack1_fire_normal.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(2, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/fire/attack1_fire_dodge.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											else if (element == ENUM_ELEMENT_WATER)
							 | 
						||
| 
								 | 
							
											{	// 热楼撩
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(1, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/water/attack1_water_normal.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(2, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/water/attack1_water_dodge.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											else if (element == ENUM_ELEMENT_DARK)
							 | 
						||
| 
								 | 
							
											{	// 檩楼撩
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(1, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/dark/attack1_dark_normal.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(2, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/dark/attack1_dark_dodge.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											else if (element == ENUM_ELEMENT_LIGHT)
							 | 
						||
| 
								 | 
							
											{	// 赀楼撩
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(1, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/light/attack1_light_normal.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(2, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/light/attack1_light_dodge.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											else if (element == ENUM_ELEMENT_NONE)
							 | 
						||
| 
								 | 
							
											{	// 鼠楼撩
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(1, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/attack1_none_normal.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(2, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/attack1_none_dodge.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										else if (attackIndex == 1)
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											if (element == ENUM_ELEMENT_FIRE)
							 | 
						||
| 
								 | 
							
											{	// ?楼撩
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(1, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/fire/attack2_fire_normal.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(2, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/fire/attack2_fire_dodge.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											else if (element == ENUM_ELEMENT_WATER)
							 | 
						||
| 
								 | 
							
											{	// 热楼撩
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(1, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/water/attack2_water_normal.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(2, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/water/attack2_water_dodge.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											else if (element == ENUM_ELEMENT_DARK)
							 | 
						||
| 
								 | 
							
											{	// 檩楼撩
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(1, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/dark/attack2_dark_normal.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(2, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/dark/attack2_dark_dodge.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											else if (element == ENUM_ELEMENT_LIGHT)
							 | 
						||
| 
								 | 
							
											{	// 赀楼撩
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(1, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/light/attack2_light_normal.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(2, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/light/attack2_light_dodge.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											else if (element == ENUM_ELEMENT_NONE)
							 | 
						||
| 
								 | 
							
											{	// 鼠楼撩
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(1, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/attack2_none_normal.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(2, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/attack2_none_dodge.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										else if (attackIndex == 2)
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											if (element == ENUM_ELEMENT_FIRE)
							 | 
						||
| 
								 | 
							
											{	// ?楼撩
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(1, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/fire/attack3_fire_normal.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(2, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/fire/attack3_fire_dodge.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											else if (element == ENUM_ELEMENT_WATER)
							 | 
						||
| 
								 | 
							
											{	// 热楼撩
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(1, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/water/attack3_water_normal.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(2, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/water/attack3_water_dodge.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											else if (element == ENUM_ELEMENT_DARK)
							 | 
						||
| 
								 | 
							
											{	// 檩楼撩
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(1, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/dark/attack3_dark_normal.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(2, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/dark/attack3_dark_dodge.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											else if (element == ENUM_ELEMENT_LIGHT)
							 | 
						||
| 
								 | 
							
											{	// 赀楼撩
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(1, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/light/attack3_light_normal.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(2, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/light/attack3_light_dodge.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											else if (element == ENUM_ELEMENT_NONE)
							 | 
						||
| 
								 | 
							
											{	// 鼠楼撩
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(1, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/attack3_none_normal.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(2, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/attack3_none_dodge.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										else if (attackIndex == 3)
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											if (element == ENUM_ELEMENT_FIRE)
							 | 
						||
| 
								 | 
							
											{	// ?楼撩
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(1, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/fire/attack4_fire_normal.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(2, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/fire/attack4_fire_dodge.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											else if (element == ENUM_ELEMENT_WATER)
							 | 
						||
| 
								 | 
							
											{	// 热楼撩
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(1, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/water/attack4_water_normal.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(2, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/water/attack4_water_dodge.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											else if (element == ENUM_ELEMENT_DARK)
							 | 
						||
| 
								 | 
							
											{	// 檩楼撩
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(1, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/dark/attack4_dark_normal.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(2, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/dark/attack4_dark_dodge.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											else if (element == ENUM_ELEMENT_LIGHT)
							 | 
						||
| 
								 | 
							
											{	// 赀楼撩
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(1, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/light/attack4_light_normal.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(2, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/light/attack4_light_dodge.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											else if (element == ENUM_ELEMENT_NONE)
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(1, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/attack4_none_normal.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
												obj.sq_AddStateLayerAnimation(2, obj.sq_CreateCNRDAnimation("Effect/Animation/ATAttack/attack4_none_dodge.ani"), 0, 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}	
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function createMiniMagicCircle(obj, xPos, zPos, shotDirection, bonusDamage) // direction 0:姜贼  1:渠陕摹  2:?钦)
							 | 
						||
| 
								 | 
							
								{	
							 | 
						||
| 
								 | 
							
									if(!obj)
							 | 
						||
| 
								 | 
							
										return;
							 | 
						||
| 
								 | 
							
									if (obj.sq_IsMyControlObject()) {
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
										// 葆彻掘羹 当撩嫔纂
							 | 
						||
| 
								 | 
							
										local direction = sq_GetDirection(obj);
							 | 
						||
| 
								 | 
							
										local x = sq_GetDistancePos(obj.getXPos(), direction, xPos);
							 | 
						||
| 
								 | 
							
										local y = sq_GetDistancePos(obj.getYPos(), ENUM_DIRECTION_DOWN, 1);
							 | 
						||
| 
								 | 
							
										local z = sq_GetDistancePos(obj.getZPos(), ENUM_DIRECTION_UP, zPos);
							 | 
						||
| 
								 | 
							
										// 擒除暧 嵘紫晦栋桧 毡挤.
							 | 
						||
| 
								 | 
							
										// 奢问濠
							 | 
						||
| 
								 | 
							
										// 嫦饵 嫔纂(x,y,z)
							 | 
						||
| 
								 | 
							
										// 陛煎 嫦饵陕 (0桧贼 擅戏煎 嫦饵, 30桧贼 螃艇薹 30紫煎 嫦饵)
							 | 
						||
| 
								 | 
							
										// 撮煎 嫦饵陕 (0桧贼 擅戏煎 嫦饵, -30桧贼 嬴楚薹 30紫煎 嫦饵)
							 | 
						||
| 
								 | 
							
										// 陛煎 譆渠 尔姜陕 (?薹 寞?)
							 | 
						||
| 
								 | 
							
										// 撮煎 譆渠 尔姜陕 (?薹 寞?)
							 | 
						||
| 
								 | 
							
										// 瞳娄暧 譆渠 剪葬. -1桧贼 薯? 桡挤
							 | 
						||
| 
								 | 
							
										// x蹴 譆渠 饵姜剪葬
							 | 
						||
| 
								 | 
							
										// 奢问 梦蝶暧 x蹴 觼晦
							 | 
						||
| 
								 | 
							
										// 奢问 梦蝶暧 y蹴 觼晦
							 | 
						||
| 
								 | 
							
										// 奢问 梦蝶暧 z蹴 觼晦
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										local activeObject;
							 | 
						||
| 
								 | 
							
										local searchAngleH = 0;
							 | 
						||
| 
								 | 
							
										local searchAngleV = 0;
							 | 
						||
| 
								 | 
							
										local passiveObjectIndex = 0;		
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										if(shotDirection == 0)
							 | 
						||
| 
								 | 
							
										{	// 姜贼
							 | 
						||
| 
								 | 
							
											//activeObject = sq_FindShootingTarget(obj, x, y, z, 0, 0, 10, 10, -1, 1000, 1000, 250, 100);	
							 | 
						||
| 
								 | 
							
											local distance = 1000;
							 | 
						||
| 
								 | 
							
											local angle = 20;
							 | 
						||
| 
								 | 
							
											activeObject = findAngleTarget(obj, distance, angle, 100); // 睡瓣笛 赅晔暧 瞳 匐仪			
							 | 
						||
| 
								 | 
							
											searchAngleH = 30;
							 | 
						||
| 
								 | 
							
											searchAngleV = 15;
							 | 
						||
| 
								 | 
							
											passiveObjectIndex = 24202;
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
											// 翱楼嫦饵朝 当梯亿朝 伪虽虏, 棻艇 螃粽薛?陛 嫦饵脾 (钟帼瞪暧 舱?击 嫡晦阳侥)
							 | 
						||
| 
								 | 
							
											if (obj.getState() == STATE_MULTI_SHOT)
							 | 
						||
| 
								 | 
							
												passiveObjectIndex = 24266;
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										else if(shotDirection == 1) {// 渠陕摹
							 | 
						||
| 
								 | 
							
											activeObject = sq_FindShootingTarget(obj, x, y, z, 0, 0, 4, 4, -1, 300, 100, 50, 100);
							 | 
						||
| 
								 | 
							
											searchAngleH = 5;
							 | 
						||
| 
								 | 
							
											searchAngleV = 5;			
							 | 
						||
| 
								 | 
							
											passiveObjectIndex = 24207;
							 | 
						||
| 
								 | 
							
											
							 | 
						||
| 
								 | 
							
											// 翱楼嫦饵朝 当梯亿朝 伪虽虏, 棻艇 螃粽薛?陛 嫦饵脾 (钟帼瞪暧 舱?击 嫡晦阳侥)
							 | 
						||
| 
								 | 
							
											if (obj.getState() == STATE_MULTI_SHOT)
							 | 
						||
| 
								 | 
							
												passiveObjectIndex = 24271;
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										else if(shotDirection == 2) { // ?钦
							 | 
						||
| 
								 | 
							
											activeObject = sq_FindShootingTarget(obj, x, y, z, 0, 0, 4, 4, -1, 300, 100, 50, 100);			
							 | 
						||
| 
								 | 
							
											searchAngleH = 5;
							 | 
						||
| 
								 | 
							
											searchAngleV = 5;	
							 | 
						||
| 
								 | 
							
											passiveObjectIndex = 24228;
							 | 
						||
| 
								 | 
							
											
							 | 
						||
| 
								 | 
							
											// 翱楼嫦饵朝 当梯亿朝 伪虽虏, 棻艇 螃粽薛?陛 嫦饵脾 (钟帼瞪暧 舱?击 嫡晦阳侥)
							 | 
						||
| 
								 | 
							
											if (obj.getState() == STATE_MULTI_SHOT)
							 | 
						||
| 
								 | 
							
												passiveObjectIndex = 24276;
							 | 
						||
| 
								 | 
							
										}				
							 | 
						||
| 
								 | 
							
										else {
							 | 
						||
| 
								 | 
							
											printc("error! magic ball create shotDirection error");
							 | 
						||
| 
								 | 
							
											return;
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										// 楼撩嫦翕 appendage缣 勘溥毡朝虽 羹觼?.
							 | 
						||
| 
								 | 
							
										// 楼撩嫦翕缣 勘溥毡虽 强棻贼 鼠楼撩 ?颤陛 嫦饵脾
							 | 
						||
| 
								 | 
							
										local horizonAngle = 0.0;
							 | 
						||
| 
								 | 
							
										local verticalAngle = 0.0;	
							 | 
						||
| 
								 | 
							
										if (activeObject != NULL) {		
							 | 
						||
| 
								 | 
							
											local maxDistance = abs(activeObject.getXPos() - x);
							 | 
						||
| 
								 | 
							
											horizonAngle = sq_GetShootingHorizonAngle(activeObject, y, 0, searchAngleH, maxDistance);
							 | 
						||
| 
								 | 
							
											verticalAngle = sq_GetShootingVerticalAngle(activeObject, z, 0, searchAngleV, maxDistance, 300);
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
											
							 | 
						||
| 
								 | 
							
										local appendage = obj.GetSquirrelAppendage("Character/ATMage/ElementalChange/ap_ATMage_Elemental_Change.nut");
							 | 
						||
| 
								 | 
							
										if (appendage && appendage.isValid()) {	
							 | 
						||
| 
								 | 
							
											local element = obj.getThrowElement();
							 | 
						||
| 
								 | 
							
											passiveObjectIndex = passiveObjectIndex + 1 + element;
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
										obj.sq_StartWrite();
							 | 
						||
| 
								 | 
							
										obj.sq_WriteFloat(horizonAngle);
							 | 
						||
| 
								 | 
							
										obj.sq_WriteFloat(verticalAngle);
							 | 
						||
| 
								 | 
							
										obj.sq_WriteDword(bonusDamage);		
							 | 
						||
| 
								 | 
							
										obj.sq_SendCreatePassiveObjectPacket(passiveObjectIndex, 0, xPos, 1, zPos);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// 奢问卫 葆彻 掘羹蒂 当撩?棻.
							 | 
						||
| 
								 | 
							
								function onKeyFrameFlag_Attack(obj, flagIndex)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									if(!obj)
							 | 
						||
| 
								 | 
							
										return false;
							 | 
						||
| 
								 | 
							
									local isMyControlObject = obj.sq_IsMyControlObject();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									// 奢问?阳葆棻 葆彻 掘羹蒂 当撩?棻.
							 | 
						||
| 
								 | 
							
									// 勘溥毡朝 帼?缣 评塭怃 当撩 肾横螳捡 ? ?卫粽 螃粽薛?陛 棻荤(楼撩)
							 | 
						||
| 
								 | 
							
									// 
							 | 
						||
| 
								 | 
							
									local xPos = 0, zPos = 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									local attackIndex = obj.getAttackIndex();
							 | 
						||
| 
								 | 
							
									if (attackIndex == 0)
							 | 
						||
| 
								 | 
							
									{
							 | 
						||
| 
								 | 
							
										xPos = 65, zPos = 59;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									else if (attackIndex == 1)
							 | 
						||
| 
								 | 
							
									{
							 | 
						||
| 
								 | 
							
										xPos = 60, zPos = 71;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									else if (attackIndex == 2)
							 | 
						||
| 
								 | 
							
									{
							 | 
						||
| 
								 | 
							
										xPos = 55, zPos = 58;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									else if (attackIndex == 3)
							 | 
						||
| 
								 | 
							
									{
							 | 
						||
| 
								 | 
							
										xPos = 65, zPos = 36;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									if (flagIndex == 1)
							 | 
						||
| 
								 | 
							
									{
							 | 
						||
| 
								 | 
							
										// 葆彻掘羹蒂 当撩?棻.
							 | 
						||
| 
								 | 
							
										createMiniMagicCircle(obj, xPos, zPos, 0, 0); // direction 0:姜贼  1:渠陕摹  2:?钦
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									return true;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function playSoundForAtmageAttack(obj, elementalType, attackCount)
							 | 
						||
| 
								 | 
							
								{	
							 | 
						||
| 
								 | 
							
									if(!obj)
							 | 
						||
| 
								 | 
							
										return;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									local elementalName = "MWSHOT_0";
							 | 
						||
| 
								 | 
							
									if (elementalType == ENUM_ELEMENT_FIRE)
							 | 
						||
| 
								 | 
							
										elementalName = "FIRESHOT_0";
							 | 
						||
| 
								 | 
							
									else if (elementalType == ENUM_ELEMENT_WATER)
							 | 
						||
| 
								 | 
							
										elementalName = "ICESHOT_0";
							 | 
						||
| 
								 | 
							
									else if (elementalType == ENUM_ELEMENT_DARK)
							 | 
						||
| 
								 | 
							
										elementalName = "DARKSHOT_0";
							 | 
						||
| 
								 | 
							
									else if (elementalType == ENUM_ELEMENT_LIGHT)
							 | 
						||
| 
								 | 
							
										elementalName = "LIGHTSHOT_0";
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									obj.sq_PlaySound(elementalName + (attackCount+1));
							 | 
						||
| 
								 | 
							
								}
							 |