public static void ShowLobbyMenu() { HideMenu(); var menu = new Menu(); UiMenu = menu.Create("Lobby", "~b~Vote", true, true); var listCam = new List <dynamic> { "First person", "Third person" }; menu.AddMenuItemList(UiMenu, "Camera", listCam, "Press enter if u wanna vote").OnListSelected += (uimenu, idx) => { Sync.Data.Set(User.GetServerId(), "CameraType", idx); }; menu.AddMenuItem(UiMenu, "~y~Exit to main menu").Activated += (uimenu, item) => { HideMenu(); User.SetStatusType(StatusTypes.MainMenu); }; MenuPool.Add(UiMenu); }
private static async Task Sec60Timer() { await Delay(1000 * 60); if (User.IsAdmin()) { foreach (var player in new PlayerList()) { if (player.ServerId == User.GetServerId()) { continue; } var entity = new MyEntity(GetPlayerPed(player.Handle)); if (!PlayerBlips.ContainsKey(player.ServerId)) { var b = AddBlipForEntity(entity.Handle); var blip = new Blip(b) { Sprite = (BlipSprite)1, Name = "Игрок", IsShortRange = true }; PlayerBlips.Add(player.ServerId, blip); } } } }
public static async void StartGame(int traitor1, int traitor2, int traitor3, int traitor4, int detective1, int detective2, int gameTimer, int camType) { User.SetStatusType(StatusTypes.InGame); await Delay(500); User.GameInfo.Active = true; User.GameInfo.CamType = camType; User.GameInfo.Timer = gameTimer; User.GameInfo.Traitor1 = traitor1; User.GameInfo.Traitor2 = traitor2; User.GameInfo.Traitor3 = traitor3; User.GameInfo.Traitor4 = traitor4; User.GameInfo.Detective1 = detective1; User.GameInfo.Detective2 = detective2; var playerId = User.GetServerId(); if (playerId == User.GameInfo.Traitor1) { User.GameInfo.PlayerType = PlayerTypes.Traitor; } else if (playerId == User.GameInfo.Traitor2) { User.GameInfo.PlayerType = PlayerTypes.Traitor; } else if (playerId == User.GameInfo.Traitor3) { User.GameInfo.PlayerType = PlayerTypes.Traitor; } else if (playerId == User.GameInfo.Traitor4) { User.GameInfo.PlayerType = PlayerTypes.Traitor; } else if (playerId == User.GameInfo.Detective1) { User.GameInfo.PlayerType = PlayerTypes.Detective; } else if (playerId == User.GameInfo.Detective2) { User.GameInfo.PlayerType = PlayerTypes.Detective; } else { User.GameInfo.PlayerType = PlayerTypes.Innocent; } if (User.GameInfo.PlayerType == PlayerTypes.Traitor) { MenuList.ShowWeaponShopMenu("Special"); } Sync.Data.Set(User.GetServerId(), "playerType", User.GameInfo.PlayerType); }
public static void ShowVoteMapMenu() { HideMenu(); if (User.MapList == null) { return; } var menu = new Menu(); UiMenu = menu.Create("Lobby", "~b~Vote map", true, true); foreach (var item in (IList <Object>)User.MapList) { menu.AddMenuItem(UiMenu, item.ToString()).Activated += (uimenu, idx) => { Sync.Data.Set(User.GetServerId(), "voteMap", item.ToString()); Notification.Send($"You are vote ~g~{item}"); }; } MenuPool.Add(UiMenu); }
public static async void ShowShopMenu() { HideMenu(); var menu = new Menu(); UiMenu = menu.Create("Shop", "~b~Skin Shop", true, true); RequestCollisionAtCoord(9.653649f, 528.3086f, 169.635f); await Delay(1000); User.Teleport(new Vector3(9.653649f, 528.3086f, 169.635f)); NetworkResurrectLocalPlayer(9.653649f, 528.3086f, 169.635f, 120.0613f, true, true); User.PedRotation(120.0613f); User.Freeze(true); Camera = new CitizenFX.Core.Camera(CreateCam("DEFAULT_SCRIPTED_CAMERA", true)); Camera.IsActive = true; Camera.Position = new Vector3(8.243752f, 527.4373f, 171.6173f); Camera.PointAt(new Vector3(9.653649f, 528.3086f, 171.335f)); RenderScriptCams(true, false, Camera.Handle, false, false); var skinList = Main.GetAllSkinList(); var listSkin = new List <dynamic>(); for (int i = 0; i < skinList.Length / 2; i++) { listSkin.Add("$" + skinList[i, 1].ToString()); } var skinListMenu = menu.AddMenuItemList(UiMenu, "Skin List", listSkin, "Press enter if u wanna buy"); skinListMenu.OnListSelected += async(uimenu, idx) => { int sum = (int)skinList[idx, 1]; if (await User.GetCashMoney() < sum) { Notification.Send("~r~You dont have money"); return; } User.RemoveCashMoney(sum); Sync.Data.Set(User.GetServerId(), "skin", (string)skinList[idx, 0]); User.Data.skin = (string)skinList[idx, 0]; User.SetSkin((string)skinList[idx, 0]); Notification.Send($"~g~You are buy new skin. Price: ${sum:#,#}"); }; skinListMenu.OnListChanged += (uimenu, idx) => { User.SetSkin((string)skinList[idx, 0]); }; menu.AddMenuItem(UiMenu, "~y~Exit to main menu").Activated += (uimenu, item) => { HideMenu(); User.Freeze(false); Camera.Delete(); Camera = null; RenderScriptCams(false, true, 500, true, true); User.SetSkin(User.Data.skin); User.SetStatusType(StatusTypes.MainMenu); }; MenuPool.Add(UiMenu); }
public static CitizenFX.Core.Player GetPlayerOnRadius(Vector3 pos, float radius) { return(new PlayerList().Where(player => player.ServerId != User.GetServerId()).FirstOrDefault(player => GetDistance(pos, GetEntityCoords(GetPlayerPed(player.Handle), true)) < radius)); }
private static async Task SetTick() { var player = PlayerId(); if (NetworkIsPlayerActive(player)) { var ped = PlayerPedId(); if (IsPedFatallyInjured(ped) && !_isDead) { _isDead = true; if (!_isDead) { _diedAt = GetGameTimer(); } var killer = NetworkGetEntityKillerOfPlayer(player, ref KillerWeapon); var killerEntityType = GetEntityType(killer); var killerType = -1; var killerVehicleName = ""; var killerId = GetPlayerByEntityId(killer); if (killerEntityType == 1) { killerType = GetPedType(killer); if (IsPedInAnyVehicle(killer, false)) { killerVehicleName = GetDisplayNameFromVehicleModel((uint)GetEntityModel(GetVehiclePedIsUsing(killer))); } } if (killer != ped && killerId != -1 && NetworkIsPlayerActive(killerId)) { killerId = GetPlayerServerId(killerId); } if (killer == ped || killer == -1 || killerId == -1 || killerType == -1) { /*var pos = GetEntityCoords(ped, true); * TriggerEvent("ARP:OnPlayerDeath", killerType, pos.X, pos.Y, pos.Z);*/ _hasBeenDead = true; } else { var pos = GetEntityCoords(ped, true); var killerPos = GetEntityCoords(GetPlayerPed(killerId), true); TriggerEvent("ARP:OnPlayerKiller", killerType, killerId, KillerWeapon, killerVehicleName, pos.X, pos.Y, pos.Z, killerPos.X, killerPos.Y, killerPos.Z); if (User.GetStatusType() == StatusTypes.Briefing) { if (User.MapInfo.Briefing > 15) { TriggerServerEvent("TTT:KickByPlayer", killerId, "RDM"); User.SetStatusType(StatusTypes.Briefing); } } if (User.GetStatusType() == StatusTypes.InGame) { if ((int)await Sync.Data.Get(User.GetServerId(), "playerType") == (int)await Sync.Data.Get(killerId, "playerType")) { if (await Sync.Data.Has(killerId, "playerWarning")) { int count = (int)await Sync.Data.Get(killerId, "playerType") + 1; Sync.Data.Set(killerId, "playerWarning", count); if (count > 3) { TriggerServerEvent("TTT:KickByPlayer", killerId, "RDM"); } } else { Sync.Data.Set(killerId, "playerWarning", 1); } } } Client.Sync.Data.Set(User.GetServerId(), "deathReason", KillerWeapon); _hasBeenDead = true; } } else if (IsPedFatallyInjured(ped)) { _isDead = false; _diedAt = -1; } if (!_hasBeenDead && _diedAt > 0) { /*var pos = GetEntityCoords(ped, true); * TriggerEvent("ARP:OnPlayerWasted", pos.X, pos.Y, pos.Z);*/ _hasBeenDead = true; } else if (_hasBeenDead && _diedAt <= 0) { _hasBeenDead = false; } } }
private static async Task SecTimer() { await Delay(1000); UI.CurrentOnline = new PlayerList().Count(); SetWeatherTypePersist(User.MapInfo.Weather); SetWeatherTypeNowPersist(User.MapInfo.Weather); SetWeatherTypeNow(User.MapInfo.Weather); SetOverrideWeather(User.MapInfo.Weather); if (User.GameInfo.Active) { if (User.GameInfo.CamType == 0) { if (GetFollowPedCamViewMode() != 4) { SetFollowPedCamViewMode(4); } } else { if (GetFollowPedCamViewMode() != 1) { SetFollowPedCamViewMode(1); } } } if (User.GetStatusType() == StatusTypes.InGame || User.GetStatusType() == StatusTypes.Briefing) { var playerPos = GetEntityCoords(GetPlayerPed(-1), true); if (Main.GetDistance(playerPos, new Vector3((float)User.MapInfo.CenterX, (float)User.MapInfo.CenterY, (float)User.MapInfo.CenterZ)) > (float)User.MapInfo.MaxRadius || !User.MapInfo.CanSwim && (IsPedSwimming(GetPlayerPed(-1)) || IsPedSwimmingUnderWater(GetPlayerPed(-1)))) { float spawnX = (float)await Sync.Data.Get(User.GetServerId(), "spawnPosX"); float spawnY = (float)await Sync.Data.Get(User.GetServerId(), "spawnPosY"); float spawnZ = (float)await Sync.Data.Get(User.GetServerId(), "spawnPosZ"); User.Teleport(new Vector3(spawnX, spawnY, spawnZ)); } if (IsEntityDead(GetPlayerPed(-1))) { NetworkSetVoiceChannel(1); Sync.Data.Set(User.GetServerId(), "isDead", true); if (!NetworkIsInSpectatorMode()) { User.SetStatusType(StatusTypes.Spectator); } } } if (User.GetStatusType() == StatusTypes.Lobby) { if (await Sync.Data.Has(-1, "GameTimer")) { var t = TimeSpan.FromSeconds((int)await Sync.Data.Get(-1, "GameTimer")); Screen.LoadingPrompt.Show($"Wait new game: {t.Minutes}:{t.Seconds:d2}"); await Delay(4000); } else if (await Sync.Data.Has(-1, "BriefingTimer")) { Screen.LoadingPrompt.Show("Wait new game..."); await Delay(4000); } else { Sync.Data.Set(User.GetServerId(), "Lobby", true); if (User.LobbyInfo.CountPlayers < 2) { Screen.LoadingPrompt.Show($"Wait more players... {User.LobbyInfo.CountPlayers}/2"); Sync.Data.Set(-1, "StartTimer", 121); } else if (Screen.LoadingPrompt.IsActive) { Screen.LoadingPrompt.Hide(); } } } if (User.GetStatusType() == StatusTypes.Spectator) { if (IsEntityDead(GetPlayerPed(User.GetSpecLast()))) { User.SetStatusType(StatusTypes.Spectator); await Delay(5000); } } }