128 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			128 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function sq_AddFunctionName(appendage)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									appendage.sq_AddFunctionName("proc", "proc_appendage_IceCrash")
							 | 
						|||
| 
								 | 
							
									appendage.sq_AddFunctionName("onStart", "onStart_appendage_IceCrash")
							 | 
						|||
| 
								 | 
							
									appendage.sq_AddFunctionName("onEnd", "onEnd_appendage_IceCrash")
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function sq_AddEffect(appendage)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function proc_appendage_IceCrash(appendage)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if(!appendage) {
							 | 
						|||
| 
								 | 
							
										return;		
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									local parentObj = appendage.getParent();
							 | 
						|||
| 
								 | 
							
									local sourceObj = appendage.getSource();
							 | 
						|||
| 
								 | 
							
												
							 | 
						|||
| 
								 | 
							
									if(!sourceObj || !parentObj) {
							 | 
						|||
| 
								 | 
							
										appendage.setValid(false);
							 | 
						|||
| 
								 | 
							
										return;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
												
							 | 
						|||
| 
								 | 
							
									local x = sq_GetDistancePos(sourceObj.getXPos(), sourceObj.getDirection(), 155);
							 | 
						|||
| 
								 | 
							
									local t = sq_GetShuttleValue(0, 10,sq_GetObjectTime(parentObj),50)-5;
							 | 
						|||
| 
								 | 
							
									x = x + (t >= 0 ? 3 : -3);
							 | 
						|||
| 
								 | 
							
									local z = sourceObj.getZPos() + 50 - parentObj.getObjectHeight()/2;	
							 | 
						|||
| 
								 | 
							
												
							 | 
						|||
| 
								 | 
							
									if(z < 0)
							 | 
						|||
| 
								 | 
							
										z = 0;
							 | 
						|||
| 
								 | 
							
									sq_SetCurrentPos(parentObj, x, sourceObj.getYPos()-1,z);
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function onStart_appendage_IceCrash(appendage)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if(!appendage) {
							 | 
						|||
| 
								 | 
							
										return;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local parentObj = appendage.getParent();
							 | 
						|||
| 
								 | 
							
									local sourceObj = appendage.getSource();
							 | 
						|||
| 
								 | 
							
												
							 | 
						|||
| 
								 | 
							
									if(!sourceObj || !parentObj) {
							 | 
						|||
| 
								 | 
							
										appendage.setValid(false);
							 | 
						|||
| 
								 | 
							
										return;
							 | 
						|||
| 
								 | 
							
									}	
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function onEnd_appendage_IceCrash(appendage)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if(!appendage) {
							 | 
						|||
| 
								 | 
							
										return;
							 | 
						|||
| 
								 | 
							
									}	
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local obj = appendage.getParent();
							 | 
						|||
| 
								 | 
							
									local sourceObj = appendage.getSource();
							 | 
						|||
| 
								 | 
							
									if(obj && sq_IsMyControlObject(obj) ) {
							 | 
						|||
| 
								 | 
							
										local xPos = obj.getXPos();
							 | 
						|||
| 
								 | 
							
										local yPos = obj.getYPos();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										// 霜摹鼻 桧翕 陛栋? 谢?蒂 琼朝棻
							 | 
						|||
| 
								 | 
							
										if (moveDamagerLinerMovablepos(obj, sourceObj.getDirection(), 50) == false)
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
											// 霜摹鼻 陛栋? 谢?蒂 跤琼擎 唳办 卫瞪濠暧 嫔纂陛 姜鼻瞳樯 唳办 卫瞪濠暧 嫔纂煎 桧翕
							 | 
						|||
| 
								 | 
							
											if (obj.isMovablePos(sourceObj.getXPos(), sourceObj.getYPos()) == true)
							 | 
						|||
| 
								 | 
							
											{
							 | 
						|||
| 
								 | 
							
												sq_SetCurrentPos(obj, sourceObj.getXPos(), sourceObj.getYPos(), obj.getZPos());
							 | 
						|||
| 
								 | 
							
											}
							 | 
						|||
| 
								 | 
							
											// 卫瞪濠暧 嫔纂紫 桧鼻? 唳办 舆渗暧 瞳渡? 嫔纂 摹姜
							 | 
						|||
| 
								 | 
							
											else
							 | 
						|||
| 
								 | 
							
											{
							 | 
						|||
| 
								 | 
							
												sq_SimpleMoveToNearMovablePos(obj,200);
							 | 
						|||
| 
								 | 
							
											}
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
									}		
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function moveDamagerLinerMovablepos(damager, dir, movableRange)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									local xPos = damager.getXPos();
							 | 
						|||
| 
								 | 
							
									local yPos = damager.getYPos();
							 | 
						|||
| 
								 | 
							
									local toXPos = xPos
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									if (dir == ENUM_DIRECTION_LEFT)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										toXPos = xPos - movableRange;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									else
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										toXPos = xPos + movableRange;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									toXPos = damager.sq_findNearLinearMovableXPos(xPos, yPos, toXPos, yPos, 10);
							 | 
						|||
| 
								 | 
							
									if (damager.isMovablePos(toXPos, yPos) == true)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										sq_SetCurrentPos(damager, toXPos, yPos, damager.getZPos());
							 | 
						|||
| 
								 | 
							
										return true;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									else
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										if (dir == ENUM_DIRECTION_LEFT)
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
											toXPos = xPos + movableRange;
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
										else
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
											toXPos = xPos - movableRange;
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										toXPos = damager.sq_findNearLinearMovableXPos(xPos, yPos, toXPos, yPos, 10);
							 | 
						|||
| 
								 | 
							
										if (damager.isMovablePos(toXPos, yPos) == true)
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
											sq_SetCurrentPos(damager, toXPos, yPos, damager.getZPos());
							 | 
						|||
| 
								 | 
							
											return true;
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									return false;
							 | 
						|||
| 
								 | 
							
								} |