91 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			91 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								SUBSTATE_PO_ELEMENTAL_CREATOR_STAY	<- 2; // 渠晦 鼻鹧 // ?卫粽暧 怃粽 蝶才桧?朝  2 睡搅 卫蒙?棻.
							 | 
						|||
| 
								 | 
							
								SUBSTATE_PO_ELEMENTAL_CREATOR_FIRE	<- 3; // 嫦饵 
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								VAR_PO_ELEMENTAL_CREATOR_TYPE	<- 0;	// 锰模 颤殓
							 | 
						|||
| 
								 | 
							
								VAR_PO_POS_MIN					<- 1;	// 菅菅 集毡朝 嫔纂 譆模高
							 | 
						|||
| 
								 | 
							
								VAR_PO_POS_MAX					<- 2;	// 菅菅 集毡朝 嫔纂 譆渠高
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function setCustomData_po_ATElementalCreator(obj, receiveData)
							 | 
						|||
| 
								 | 
							
								{		
							 | 
						|||
| 
								 | 
							
									if (!obj) return;	
							 | 
						|||
| 
								 | 
							
									//elemental type 扑姜.  桧 颤殓戏煎 釭酝缣 葆彻掘 当撩
							 | 
						|||
| 
								 | 
							
									local elementalType = receiveData.readWord();	
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local var = obj.getVar();
							 | 
						|||
| 
								 | 
							
									var.setInt(VAR_PO_ELEMENTAL_CREATOR_TYPE, elementalType);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local rand = sq_getRandom(0, 1);
							 | 
						|||
| 
								 | 
							
									local upHeight = 8;
							 | 
						|||
| 
								 | 
							
									if (rand == 0)
							 | 
						|||
| 
								 | 
							
										upHeight = -8;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									var.setInt(VAR_PO_POS_MIN, obj.getZPos());
							 | 
						|||
| 
								 | 
							
									var.setInt(VAR_PO_POS_MAX, obj.getZPos() + upHeight);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									if (elementalType != ENUM_ELEMENT_NONE)
							 | 
						|||
| 
								 | 
							
										setCurrentAnimationFromCutomIndex(obj, elementalType);
							 | 
						|||
| 
								 | 
							
									obj.sendStateOnlyPacket(SUBSTATE_PO_ELEMENTAL_CREATOR_STAY);	
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function onAttack_po_ATElementalCreator(obj, damager, boundingBox, isStuck)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if (!obj) return 0;
							 | 
						|||
| 
								 | 
							
									return 0;
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function procAppend_po_ATElementalCreator(obj)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if (!obj) return;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local var = obj.getVar();
							 | 
						|||
| 
								 | 
							
									local min = var.getInt(VAR_PO_POS_MIN);
							 | 
						|||
| 
								 | 
							
									local max = var.getInt(VAR_PO_POS_MAX);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local zPos = sq_GetShuttleValue(min, max, sq_GetObjectTime(obj), 400);
							 | 
						|||
| 
								 | 
							
									sq_SetCurrentPos(obj, obj.getXPos(), obj.getYPos(), zPos);	
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								function setState_po_ATElementalCreator(obj, state, datas)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if (!obj) return;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									if (state == SUBSTATE_PO_ELEMENTAL_CREATOR_FIRE) 
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										local var = obj.getVar();
							 | 
						|||
| 
								 | 
							
										local elementalType = var.getInt(VAR_PO_ELEMENTAL_CREATOR_TYPE);	
							 | 
						|||
| 
								 | 
							
										playSoundForAtmageAttack(obj, elementalType, 0);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										if (!obj.isMyControlObject()) // 顶陛 妇葬?朝 拥陛 嬴栖贼 饵遴萄虏 营当
							 | 
						|||
| 
								 | 
							
											return;		
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										local direction = sq_GetDirection(obj);
							 | 
						|||
| 
								 | 
							
										local parentObj = obj.getTopCharacter();
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										// 擒除暧 嵘紫晦栋桧 毡挤.		
							 | 
						|||
| 
								 | 
							
										local activeObject = sq_FindShootingTarget(parentObj, 0, 0, 0, 0, 0, 4, 4, -1, 300, 100, 50, 100);
							 | 
						|||
| 
								 | 
							
										local horizonAngle = 0.0;
							 | 
						|||
| 
								 | 
							
										local verticalAngle = 0.0;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										if (activeObject != NULL)
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
											local maxDistance = abs(activeObject.getXPos());
							 | 
						|||
| 
								 | 
							
											horizonAngle = sq_GetShootingHorizonAngle(activeObject, 0, 0, 5, maxDistance);
							 | 
						|||
| 
								 | 
							
											verticalAngle = sq_GetShootingVerticalAngle(activeObject, 0, 0, 5, maxDistance, 300);
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										sq_BinaryStartWrite()
							 | 
						|||
| 
								 | 
							
										sq_BinaryWriteFloat(horizonAngle);			// ?嫦暧 觼晦
							 | 
						|||
| 
								 | 
							
										sq_BinaryWriteFloat(verticalAngle);
							 | 
						|||
| 
								 | 
							
										sq_BinaryWriteDword(0);
							 | 
						|||
| 
								 | 
							
										sq_BinaryWriteDword(1);						// 县溯诠骁 溯樯暧 ?卫粽 螃粽薛? 樯陛?
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										// ?卫粽 螃粽薛? 樯策蝶 扑姜
							 | 
						|||
| 
								 | 
							
										local passiveObjectIndex = (elementalType == ENUM_ELEMENT_NONE ? 24207 : 24208 + elementalType);
							 | 
						|||
| 
								 | 
							
										sq_SendCreatePassiveObjectPacket(obj, passiveObjectIndex, 0, 0, 0, 0, obj.getDirection());	
							 | 
						|||
| 
								 | 
							
										sq_SendDestroyPacketPassiveObject(obj);	
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								 |