Beispiel #1
0
 private void RCMenu_OnItemSelect(UIMenu sender, UIMenuItem selectedItem, int index)
 {
     if (selectedItem == Deloreans)
     {
         if (TrySelectCar(_selectedIndex, false))
         {
             Function.Call(Hash.CLEAR_FOCUS);
             RCManager.RemoteControl(_currentTimeMachine);
             Main.MenuPool.CloseAllMenus();
         }
     }
 }
Beispiel #2
0
 private void Start()
 {
     ChangeQuality.setCurrentQuality();
     name = "MultiplayerManager";
     DontDestroyOnLoad(this);
     HeroCostume.Init();
     CharacterMaterials.Init();
     RCManager.ClearAll();
     heroes = new List <HERO>();
     titans = new List <TITAN>();
     hooks  = new List <Bullet>();
     AnarchyManager.DestroyMainScene();
 }
Beispiel #3
0
    public void OnMasterClientSwitched(AOTEventArgs args)
    {
        print("OnMasterClientSwitched");
        if (gameTimesUp)
        {
            return;
        }

        if (PhotonNetwork.IsMasterClient)
        {
            GameModes.Load();
            GameModes.ForceChange();
            GameModes.oldHash["motd"] = null;
            RCManager.ClearAll();
            RestartGame(true, false);
        }
    }
        private void TimeMachineMenu_OnCheckboxChange(UIMenu sender, UIMenuCheckboxItem checkboxItem, bool Checked)
        {
            if (DeloreanHandler.CurrentTimeMachine == null)
            {
                return;
            }

            TimeTravelHandler timeTravelHandler = DeloreanHandler.CurrentTimeMachine.Circuits.GetHandler <TimeTravelHandler>();

            if (checkboxItem == TimeCircuitsOn)
            {
                DeloreanHandler.CurrentTimeMachine.Circuits.SetTimeCircuitsOn(Checked);
            }
            else if (checkboxItem == CutsceneMode)
            {
                timeTravelHandler.SetCutsceneMode(Checked);
            }
            else if (checkboxItem == RemoteControl)
            {
                RCManager.StopRemoteControl();
            }

            if (DeloreanHandler.CurrentTimeMachine.DeloreanType != DeloreanType.BTTF2)
            {
                return;
            }

            FlyingHandler flyingHandler = DeloreanHandler.CurrentTimeMachine.Circuits.GetHandler <FlyingHandler>();

            if (checkboxItem == FlyMode)
            {
                flyingHandler.SetFlyMode(Checked);
            }
            else if (checkboxItem == HoverMode)
            {
                flyingHandler.SetHoverMode(Checked);
            }
        }
Beispiel #5
0
    public void RestartGame(bool masterclientSwitched, bool restartManually)
    {
        if (gameTimesUp || logic.Restarting)
        {
            return;
        }

        GameModes.OnRestart();
        checkpoint          = null;
        logic.Restarting    = true;
        logic.RoundTime     = 0f;
        logic.MyRespawnTime = 0f;
        foreach (var info in killInfoList)
        {
            info.destroy();
        }

        killInfoList.Clear();
        racingResult = new ArrayList();
        RCManager.ClearVariables();
        ShowHUDInfoCenter(string.Empty);
        DestroyAllExistingCloths();
        GameModes.SendRpc();
        PhotonNetwork.DestroyAll();
        BasePV.RPC("RPCLoadLevel", PhotonTargets.All);
        if (masterclientSwitched)
        {
            SendChatContentInfo(User.MasterClientSwitch);
        }
        else
        {
            if (!restartManually && User.MsgRestart.Length > 0)
            {
                SendChatContentInfo(User.MsgRestart);
            }
        }
    }
Beispiel #6
0
    private void Initialize()
    {
        Vector3   v         = new Vector3(0.5f, 0.5f);
        Texture2D texture2D = (Texture2D)RCManager.Load("icon");
        Rect      rect      = new Rect(0f, 0f, (float)texture2D.width, (float)texture2D.height);

        Minimap.whiteIconSprite = UnityEngine.Sprite.Create(texture2D, rect, v);
        texture2D             = (Texture2D)RCManager.Load("iconpointer");
        rect                  = new Rect(0f, 0f, (float)texture2D.width, (float)texture2D.height);
        Minimap.pointerSprite = UnityEngine.Sprite.Create(texture2D, rect, v);
        texture2D             = (Texture2D)RCManager.Load("supplyicon");
        rect                  = new Rect(0f, 0f, (float)texture2D.width, (float)texture2D.height);
        Minimap.supplySprite  = UnityEngine.Sprite.Create(texture2D, rect, v);
        texture2D             = (Texture2D)RCManager.Load("mapborder");
        rect                  = new Rect(0f, 0f, (float)texture2D.width, (float)texture2D.height);
        Vector4 border = new Vector4(5f, 5f, 5f, 5f);

        Minimap.borderSprite      = UnityEngine.Sprite.Create(texture2D, rect, v, 100f, 1u, SpriteMeshType.FullRect, border);
        this.MINIMAP_ICON_SIZE    = new Vector2((float)Minimap.whiteIconSprite.texture.width, (float)Minimap.whiteIconSprite.texture.height);
        this.MINIMAP_POINTER_SIZE = (float)(Minimap.pointerSprite.texture.width + Minimap.pointerSprite.texture.height) / 2f;
        this.MINIMAP_POINTER_DIST = (this.MINIMAP_ICON_SIZE.x + this.MINIMAP_ICON_SIZE.y) * 0.25f;
        this.MINIMAP_SUPPLY_SIZE  = new Vector2((float)Minimap.supplySprite.texture.width, (float)Minimap.supplySprite.texture.height);
        this.assetsInitialized    = true;
    }
Beispiel #7
0
    public void SetSize(string settings, PhotonMessageInfo info)
    {
        bool isMasterClient = info.Sender.IsMasterClient;

        if (isMasterClient)
        {
            string[] array = settings.Split(new char[]
            {
                ','
            });
            bool flag = array.Length > 15;
            if (flag)
            {
                float      a          = 1f;
                GameObject gameObject = base.gameObject;
                bool       flag2      = array[2] != "default";
                if (flag2)
                {
                    bool flag3 = array[2].StartsWith("transparent");
                    if (flag3)
                    {
                        float num;
                        bool  flag4 = float.TryParse(array[2].Substring(11), out num);
                        if (flag4)
                        {
                            a = num;
                        }
                        foreach (Renderer renderer in gameObject.GetComponentsInChildren <Renderer>())
                        {
                            renderer.material = (Material)RCManager.Load("transparent");
                            bool flag5 = Convert.ToSingle(array[10]) != 1f || Convert.ToSingle(array[11]) != 1f;
                            if (flag5)
                            {
                                renderer.material.mainTextureScale = new Vector2(renderer.material.mainTextureScale.x * Convert.ToSingle(array[10]), renderer.material.mainTextureScale.y * Convert.ToSingle(array[11]));
                            }
                        }
                    }
                    else
                    {
                        foreach (Renderer renderer2 in gameObject.GetComponentsInChildren <Renderer>())
                        {
                            bool flag6 = !renderer2.name.Contains("Line Renderer");
                            if (flag6)
                            {
                                renderer2.material = (Material)RCManager.Load(array[2]);
                                bool flag7 = Convert.ToSingle(array[10]) != 1f || Convert.ToSingle(array[11]) != 1f;
                                if (flag7)
                                {
                                    renderer2.material.mainTextureScale = new Vector2(renderer2.material.mainTextureScale.x * Convert.ToSingle(array[10]), renderer2.material.mainTextureScale.y * Convert.ToSingle(array[11]));
                                }
                            }
                        }
                    }
                }
                float num2 = gameObject.transform.localScale.x * Convert.ToSingle(array[3]);
                num2 -= 0.001f;
                float y = gameObject.transform.localScale.y * Convert.ToSingle(array[4]);
                float z = gameObject.transform.localScale.z * Convert.ToSingle(array[5]);
                gameObject.transform.localScale = new Vector3(num2, y, z);
                bool flag8 = array[6] != "0";
                if (flag8)
                {
                    Color color = new Color(Convert.ToSingle(array[7]), Convert.ToSingle(array[8]), Convert.ToSingle(array[9]), a);
                    foreach (MeshFilter meshFilter in gameObject.GetComponentsInChildren <MeshFilter>())
                    {
                        Mesh    mesh   = meshFilter.mesh;
                        Color[] array2 = new Color[mesh.vertexCount];
                        for (int l = 0; l < mesh.vertexCount; l++)
                        {
                            array2[l] = color;
                        }
                        mesh.colors = array2;
                    }
                }
            }
        }
    }
Beispiel #8
0
        public override void Process()
        {
            if (!IsRemoteControlled)
            {
                return;
            }

            if (Main.IsManualPlayerSwitchInProgress)
            {
                return;
            }

            if (OriginalPed == null)
            {
                return;
            }

            if (OriginalPed.HasCollided)
            {
                RCManager.StopRemoteControl();
                return;
            }

            if (Game.IsControlJustPressed(GTA.Control.VehicleExit))
            {
                RCManager.StopRemoteControl();
            }

            rcHandbrake.Process();

            //// When u go too far from clone ped, game removes collision under him and
            ////  he falls through the ground, so if player is 50 we freeze clone
            //var isCloneFreezed = Main.PlayerPed.Position.DistanceToSquared(OriginalPed.Position) >= 50*50;
            //Function.Call(Hash.FREEZE_ENTITY_POSITION, OriginalPed, isCloneFreezed);

            var origPos = OriginalPed.Position;
            var carPos  = Vehicle.Position;

            Function.Call(Hash.REQUEST_COLLISION_AT_COORD, origPos.X, origPos.Y, origPos.Z);
            Function.Call(Hash.REQUEST_COLLISION_AT_COORD, carPos.X, carPos.Y, carPos.Z);

            Function.Call(Hash.STOP_CURRENT_PLAYING_AMBIENT_SPEECH, Main.PlayerPed);
            Function.Call(Hash.STOP_CURRENT_PLAYING_SPEECH, Main.PlayerPed);
            Function.Call(Hash.STOP_CURRENT_PLAYING_AMBIENT_SPEECH, OriginalPed);
            Function.Call(Hash.STOP_CURRENT_PLAYING_SPEECH, OriginalPed);

            if (Game.IsControlJustPressed(GTA.Control.VehicleAccelerate))
            {
                rcAcceleration.Play();
            }

            if (Game.IsControlJustPressed(GTA.Control.NextCamera))
            {
                if (CurrentMode == RcModes.FromPlayerCamera)
                {
                    CurrentMode = RcModes.FromCarCamera;

                    Function.Call(Hash.CLEAR_FOCUS);

                    _camera?.Delete();
                    _camera = null;
                    World.RenderingCamera = null;

                    Function.Call(Hash.SET_FOLLOW_VEHICLE_CAM_VIEW_MODE, 0);
                }
                else if (Function.Call <int>(Hash.GET_FOLLOW_VEHICLE_CAM_VIEW_MODE) == 1)
                {
                    CurrentMode = RcModes.FromPlayerCamera;

                    Function.Call(Hash.SET_FOCUS_ENTITY, OriginalPed);

                    _camera = World.CreateCamera(GameplayCamera.Position, GameplayCamera.Rotation, GameplayCamera.FieldOfView);
                    _camera.PointAt(Vehicle);
                    World.RenderingCamera = _camera;
                }
            }

            if (CurrentMode == RcModes.FromPlayerCamera && _camera != null && _camera.Exists())
            {
                _camera.Position = OriginalPed.Bones[Bone.SkelHead].GetOffsetPosition(new Vector3(0, 0.1f, 0));
            }
        }