Esempio n. 1
0
 private void CpSizeDialog_Response(object sender, SampSharp.GameMode.Events.DialogResponseEventArgs e)
 {
     if (e.Player.Equals(player))
     {
         if (e.DialogButton == DialogButton.Left)
         {
             if (e.InputText.Length > 0)
             {
                 try
                 {
                     editingRace.checkpoints[checkpointIndex].Size = (float)Convert.ToDouble(e.InputText);
                     UpdatePlayerCheckpoint();
                     player.Notificate("Updated");
                 }
                 catch (Exception ex)
                 {
                     player.SendClientMessage(Color.Red, "There was an error trying to set this value.");
                     player.Notificate("Error");
                 }
             }
             ShowCheckpointDialog();
         }
         else
         {
             ShowCheckpointDialog();
         }
     }
 }
Esempio n. 2
0
 private void CpEventDialog_Response(object sender, SampSharp.GameMode.Events.DialogResponseEventArgs e)
 {
     if (e.Player.Equals(player))
     {
         if (e.DialogButton == DialogButton.Left)
         {
             Checkpoint cp = editingRace.checkpoints[checkpointIndex];
             switch (e.ListItem)
             {
             case 0:     // Vehicle event
             {
                 InputDialog cpEventCarNameDialog = new InputDialog("Vehicle name", "Enter the vehicle name:", false, "Find", "Cancel");
                 cpEventCarNameDialog.Show(player);
                 cpEventCarNameDialog.Response += (sender, eventArgs) =>
                 {
                     if (eventArgs.DialogButton == DialogButton.Left)
                     {
                         editingRace.checkpoints[checkpointIndex].NextVehicle = Utils.GetVehicleModelType(eventArgs.InputText);
                         player.Notificate("Updated");
                         ShowCheckpointEventDialog();
                     }
                     else
                     {
                         player.Notificate("Cancelled");
                         ShowCheckpointEventDialog();
                     }
                 };
                 break;
             }
             }
         }
         else
         {
             ShowCheckpointDialog();
         }
     }
 }
Esempio n. 3
0
        private void CpDialog_Response(object sender, SampSharp.GameMode.Events.DialogResponseEventArgs e)
        {
            if (e.Player.Equals(player))
            {
                if (e.DialogButton == DialogButton.Left)
                {
                    Checkpoint cp = editingRace.checkpoints[checkpointIndex];
                    switch (e.ListItem)
                    {
                    case 0:     // Edit checkpoint position
                    {
                        if (moverObject == null)
                        {
                            moverObject = new PlayerObject(
                                player,
                                moverObjectModelID,
                                cp.Position + moverObjectOffset,
                                new Vector3(0.0, 0.0, 0.0));

                            moverObject.Edit();
                            moverObject.Edited += moverObject_Edited;
                        }
                        else
                        {
                            moverObject.Position = cp.Position;
                            moverObject.Edit();
                        }
                        break;
                    }

                    case 1:     // Edit checkpoint size
                    {
                        InputDialog cpSizeDialog = new InputDialog("Checkpoint size", "Current size: " + cp.Size.ToString(), false, "Set", "Cancel");
                        cpSizeDialog.Show(player);
                        cpSizeDialog.Response += CpSizeDialog_Response;
                        break;
                    }

                    case 2:                  // Change checkpoint type
                    {                        // TODO: A corriger, ne fonctionne pas
                        if (e.ListItem == 0) // To Air
                        {
                            if (cp.Type == CheckpointType.Normal)
                            {
                                editingRace.checkpoints[checkpointIndex].Type = CheckpointType.Air;
                            }
                            else if (cp.Type == CheckpointType.Finish)
                            {
                                editingRace.checkpoints[checkpointIndex].Type = CheckpointType.AirFinish;
                            }
                            UpdatePlayerCheckpoint();
                            player.Notificate("Updated");
                            ShowCheckpointDialog();
                            break;
                        }
                        if (e.ListItem == 1)         // To Normal
                        {
                            if (cp.Type == CheckpointType.Air)
                            {
                                cp.Type = CheckpointType.Normal;
                            }
                            else if (cp.Type == CheckpointType.AirFinish)
                            {
                                cp.Type = CheckpointType.Finish;
                            }
                            UpdatePlayerCheckpoint();
                            player.Notificate("Updated");
                            ShowCheckpointDialog();
                            break;
                        }
                        break;
                    }

                    case 3:     // Edit events
                    {
                        ShowCheckpointEventDialog();
                        break;
                    }
                    }
                }
            }
        }
Esempio n. 4
0
        private void RaceDialog_Response(object sender, SampSharp.GameMode.Events.DialogResponseEventArgs e)
        {
            if (e.Player.Equals(player))
            {
                if (e.DialogButton == DialogButton.Left)
                {
                    Checkpoint cp = editingRace.checkpoints[checkpointIndex];
                    switch (e.ListItem)
                    {
                    case 0:     // Select starting vehicle
                    {
                        InputDialog cpStartCarNameDialog = new InputDialog("Vehicle name", "Enter the vehicle name:", false, "Find", "Cancel");
                        cpStartCarNameDialog.Show(player);
                        cpStartCarNameDialog.Response += (sender, eventArgs) =>
                        {
                            if (eventArgs.DialogButton == DialogButton.Left)
                            {
                                editingRace.StartingVehicle = Utils.GetVehicleModelType(eventArgs.InputText);
                                player.Notificate("Updated");
                                ShowRaceDialog();
                            }
                            else
                            {
                                player.Notificate("Cancelled");
                                ShowRaceDialog();
                            }
                        };
                        break;
                    }

                    case 1:     // Edit race name
                    {
                        InputDialog cpRaceNameDialog = new InputDialog("Race name", "Enter the race name:", false, "Edit", "Cancel");
                        cpRaceNameDialog.Show(player);
                        cpRaceNameDialog.Response += (sender, eventArgs) =>
                        {
                            if (eventArgs.DialogButton == DialogButton.Left)
                            {
                                editingRace.Name = eventArgs.InputText;
                                player.Notificate("Updated");
                                ShowRaceDialog();
                            }
                            else
                            {
                                player.Notificate("Cancelled");
                                ShowRaceDialog();
                            }
                        };
                        break;
                    }

                    case 2:     // Set/Edit spawn position
                    {
                        checkpointIndex = 0;
                        UpdatePlayerCheckpoint();
                        editingMode = EditingMode.SpawnPos;
                        hud.SetEditingMode(editingMode);

                        player.DisableRemoteVehicleCollisions(true);
                        foreach (BaseVehicle veh in spawnVehicles)
                        {
                            if (veh != null)
                            {
                                veh.Dispose();
                            }
                        }
                        if (editingRace.startingSpawn[0].Position == Vector3.Zero)
                        {
                            spawnVehicles[0] = BaseVehicle.Create(editingRace.StartingVehicle.GetValueOrDefault(VehicleModelType.Infernus), editingRace.checkpoints[editingRace.checkpoints.Count - 1].Position, 0.0f, 0, 0);
                        }
                        else
                        {
                            int idx = 0;
                            foreach (Vector3R spawn in editingRace.startingSpawn)
                            {
                                if (spawn.Position != Vector3.Zero)
                                {
                                    spawnVehicles[idx++] = BaseVehicle.Create(editingRace.StartingVehicle.GetValueOrDefault(VehicleModelType.Infernus), spawn.Position, spawn.Rotation, 0, 0);
                                }
                            }
                        }
                        //TODO: canceledit
                        UpdatePlayerSpawnMover();
                        moverObject.Edit();
                        break;
                    }

                    case 3:     // Laps
                    {
                        InputDialog cpRaceLapsDialog = new InputDialog("Race laps", "Enter the number of laps the race have:", false, "Set", "Cancel");
                        cpRaceLapsDialog.Show(player);
                        cpRaceLapsDialog.Response += (sender, eventArgs) =>
                        {
                            if (eventArgs.DialogButton == DialogButton.Left)
                            {
                                try
                                {
                                    editingRace.Laps = Convert.ToInt32(eventArgs.InputText);
                                    player.Notificate("Updated");
                                }
                                catch (Exception e)
                                {
                                    player.SendClientMessage(Color.Red, "There was an error trying to set this value.");
                                    player.Notificate("Error");
                                }
                                ShowRaceDialog();
                            }
                            else
                            {
                                player.Notificate("Cancelled");
                                ShowRaceDialog();
                            }
                        };
                        break;
                    }
                    }
                }
            }
        }