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); } }