예제 #1
0
 static void Postfix(RequestStartOfficerOrderPacket currentRequestPacket)
 {
     if (officerOrderDelegate == null)
     {
         return;
     }
     officerOrderDelegate(true, currentRequestPacket);
 }
예제 #2
0
            static void Postfix(ActiveOfficerOrderInfo orderToRemove)
            {
                if (officerOrderDelegate == null)
                {
                    return;
                }
                RequestStartOfficerOrderPacket packet = new RequestStartOfficerOrderPacket();

                packet.officerNetworkPlayer = orderToRemove.officerPlayer.NetworkPlayer;
                packet.officerOrderType     = orderToRemove.officerOrderType;
                packet.orderPosition        = orderToRemove.spawnedPosition;
                packet.orderRotationY       = orderToRemove.spawnedRotationY;
                officerOrderDelegate(false, packet);
            }
예제 #3
0
        private static void Framework_officerOrderDelegate(bool isStart, RequestStartOfficerOrderPacket currentRequestPacket)
        {
            if (!isStart)
            {
                return;
            }
            int officerId = currentRequestPacket.officerNetworkPlayer.id;

            logger.Log(currentRequestPacket.officerOrderType.ToString());
            playerToBot[officerId].ForEach((int id) => {
                switch (currentRequestPacket.officerOrderType)
                {
                case OfficerOrderType.FormLine:
                    Vector3 target = new Vector3();
                    target.x       = 0;
                    target.z       = 0;
                    target.y       = currentRequestPacket.orderRotationY - 180;
                    if (rotationCache.ContainsKey(id))
                    {
                        rotationCache[id] = target;
                    }
                    else
                    {
                        rotationCache.Add(id, target);
                    }
                    Framework.getCarbonPlayer(id).activeAction(PlayerActions.None, target, MeleeStrikeType.None);
                    break;

                case OfficerOrderType.MakeReady:
                    Framework.getCarbonPlayer(id).activeAction(PlayerActions.StartAimingFirearm, rotationCache[id], MeleeStrikeType.None);
                    break;

                case OfficerOrderType.Fire:
                    Framework.getCarbonPlayer(id).activeAction(PlayerActions.FireFirearm, rotationCache[id], MeleeStrikeType.None);
                    break;
                }
            });
        }