public static void ShowInGameMenu() { if (User.GetStatusType() != StatusTypes.InGame) { return; } HideMenu(); var menu = new Menu(); UiMenu = menu.Create("Menu", "~b~Main menu"); menu.AddMenuItem(UiMenu, "~y~Drop Current Weapon").Activated += (uimenu, item) => { HideMenu(); SetPedDropsWeapon(GetPlayerPed(-1)); }; menu.AddMenuItem(UiMenu, "~r~Close").Activated += (uimenu, item) => { HideMenu(); }; MenuPool.Add(UiMenu); }
private static async Task TimeSync() { if (IsHudPreferenceSwitchedOn() || Screen.Hud.IsVisible) { TimerBarPool.Draw(); if (User.Data.money < 0) { DrawText("$" + User.Data.money.ToString("#,#"), 15, 50, 0.6f, 244, 67, 54, 255, 7, 2, false, true, 0, 0, 2); } else { DrawText("$" + User.Data.money.ToString("#,#"), 15, 50, 0.6f, 115, 186, 131, 255, 7, 2, false, true, 0, 0, 2); } DrawText($"Players: {CurrentOnline}", 130, 8, 0.3f, 255, 255, 255, 150, 0, 2, false, false, 0, 0, 2); if (User.GetStatusType() == StatusTypes.InGame) { DrawText($"M - Game Menu | Players: {CurrentOnline}", 130, 8, 0.3f, 255, 255, 255, 150, 0, 2, false, false, 0, 0, 2); } if (User.GetStatusType() == StatusTypes.Spectator) { DrawText($"Arrow LEFT and RIGHT switch player | Players: {CurrentOnline}", 130, 8, 0.3f, 255, 255, 255, 150, 0, 2, false, false, 0, 0, 2); } } }
private static async Task ProcessMenuPool() { MenuPool.ProcessMenus(); if (MenuPool.ToList().Count == 0 && Camera != null) { Camera = null; ShowShopMenu(); } if (Game.IsControlJustPressed(0, (Control)244) || Game.IsDisabledControlJustPressed(0, (Control)244)) //M { ShowInGameMenu(); } if (Game.IsControlJustPressed(0, (Control)174) || Game.IsDisabledControlJustPressed(0, (Control)174)) // left { if (User.GetStatusType() != StatusTypes.Spectator) { return; } var list = new NavigationList <Player>(); list.AddRange(new PlayerList().Where(p => !p.IsDead).Where(p => !p.IsInvincible)); try { User.StartSpec(list.MovePrevious); } catch (Exception e) { Debug.WriteLine($"{list.Count} | {e}"); User.StartSpec(list.First()); } } else if (Game.IsControlJustPressed(0, (Control)175) || Game.IsDisabledControlJustPressed(0, (Control)175)) // right { if (User.GetStatusType() != StatusTypes.Spectator) { return; } var list = new NavigationList <Player>(); list.AddRange(new PlayerList().Where(p => !p.IsDead).Where(p => !p.IsInvincible)); try { User.StartSpec(list.MoveNext); } catch (Exception e) { Debug.WriteLine($"{list.Count} | {e}"); User.StartSpec(list.Last()); } } }
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); } } }