From 5e4d5b1ecedea42fa04fa4cfcc36cfd6622a1134 Mon Sep 17 00:00:00 2001 From: kookroach Date: Tue, 13 Apr 2021 20:30:02 +0200 Subject: [PATCH] Change Items , add Cooldown --- .../html/inventory/img/inventory/106.svg | 110 ++++++++++++++++++ .../dlcpacks/ballas_weaponrack/dlc.rpf | 3 + ReallifeGamemode.Server/Events/Login.cs | 6 +- .../Inventory/Items/Aal.cs | 1 - .../Inventory/Items/Apfel.cs | 4 +- .../Inventory/Items/AssaultRifle.cs | 17 ++- .../Inventory/Items/AssaultSmg.cs | 5 +- .../Inventory/Items/Baklava.cs | 4 +- .../Inventory/Items/Barsch.cs | 1 - .../Inventory/Items/Bier.cs | 6 +- .../Inventory/Items/Cannabis.cs | 34 ++++-- .../Inventory/Items/CarbineRifle.cs | 2 +- .../Inventory/Items/Cheeseburger.cs | 2 +- .../Inventory/Items/Chips.cs | 2 +- .../Inventory/Items/Cocain.cs | 4 +- .../Inventory/Items/CombatPDW.cs | 17 ++- .../Inventory/Items/Combatpstiol.cs | 4 +- .../Inventory/Items/ConsumableItem.cs | 32 ++++- .../Inventory/Items/DropItem.cs | 1 - .../Inventory/Items/Döner.cs | 39 +++++++ .../Inventory/Items/Flunder.cs | 1 - .../Inventory/Items/Holz.cs | 20 ++-- .../Inventory/Items/Lachs.cs | 1 - .../Inventory/Items/Thunfisch.cs | 1 - .../Inventory/Items/Zander.cs | 1 - ReallifeGamemode.Server/Job/BusDriverJob.cs | 2 +- ReallifeGamemode.Server/Job/PilotJob.cs | 3 +- .../Job/RefuseCollectorJob.cs | 4 +- ReallifeGamemode.Server/Util/PlayerTimer.cs | 11 +- 29 files changed, 263 insertions(+), 75 deletions(-) create mode 100644 ReallifeGamemode.Client/assets/html/inventory/img/inventory/106.svg create mode 100644 ReallifeGamemode.Client/dlcpacks/ballas_weaponrack/dlc.rpf create mode 100644 ReallifeGamemode.Server/Inventory/Items/Döner.cs diff --git a/ReallifeGamemode.Client/assets/html/inventory/img/inventory/106.svg b/ReallifeGamemode.Client/assets/html/inventory/img/inventory/106.svg new file mode 100644 index 00000000..2070c087 --- /dev/null +++ b/ReallifeGamemode.Client/assets/html/inventory/img/inventory/106.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ReallifeGamemode.Client/dlcpacks/ballas_weaponrack/dlc.rpf b/ReallifeGamemode.Client/dlcpacks/ballas_weaponrack/dlc.rpf new file mode 100644 index 00000000..64c9675b --- /dev/null +++ b/ReallifeGamemode.Client/dlcpacks/ballas_weaponrack/dlc.rpf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c1a845cfe60c75b75dd72add91c3bb7e6890c4df6cb10649be3740416b34d17 +size 3076608 diff --git a/ReallifeGamemode.Server/Events/Login.cs b/ReallifeGamemode.Server/Events/Login.cs index 2966c9d0..3ce33dad 100644 --- a/ReallifeGamemode.Server/Events/Login.cs +++ b/ReallifeGamemode.Server/Events/Login.cs @@ -105,11 +105,11 @@ namespace ReallifeGamemode.Server.Events string addInfoStr = " (IP: " + player.Address + ")"; - if(!string.IsNullOrEmpty(message)) + if (!string.IsNullOrEmpty(message)) { ChatService.BroadcastAdmin(message, AdminLevel.MAPPING, admin => { - if(admin.HasData("togip")) + if (admin.HasData("togip")) { return addInfoStr; } @@ -170,7 +170,7 @@ namespace ReallifeGamemode.Server.Events } }, delayTime: 1000); - if(GlobalHelper.CountdownUntil > DateTime.Now) + if (GlobalHelper.CountdownUntil > DateTime.Now) { player.TriggerEvent("countdown", (GlobalHelper.CountdownUntil - DateTime.Now).TotalSeconds, GlobalHelper.CountdownText); } diff --git a/ReallifeGamemode.Server/Inventory/Items/Aal.cs b/ReallifeGamemode.Server/Inventory/Items/Aal.cs index 40855cb9..bb628aa0 100644 --- a/ReallifeGamemode.Server/Inventory/Items/Aal.cs +++ b/ReallifeGamemode.Server/Inventory/Items/Aal.cs @@ -13,7 +13,6 @@ namespace ReallifeGamemode.Server.Inventory.Items public override string Description => "Ein Fisch"; public override int Gewicht => 3600; public override string Einheit => "g"; - public override int HpAmount => 20; public override uint Object => 786272259; public override int Price => 0; } diff --git a/ReallifeGamemode.Server/Inventory/Items/Apfel.cs b/ReallifeGamemode.Server/Inventory/Items/Apfel.cs index d02026c4..cf426569 100644 --- a/ReallifeGamemode.Server/Inventory/Items/Apfel.cs +++ b/ReallifeGamemode.Server/Inventory/Items/Apfel.cs @@ -17,8 +17,8 @@ namespace ReallifeGamemode.Server.Inventory.Items public override string Einheit => "g"; public override int HpAmount => 10; public override uint Object => 2240524752; - public override int Price => 20; - public override float Cooldown => 5000; + public override int Price => 200; + public override float Cooldown => 10000; public override void Consume(UserItem uItem) { diff --git a/ReallifeGamemode.Server/Inventory/Items/AssaultRifle.cs b/ReallifeGamemode.Server/Inventory/Items/AssaultRifle.cs index ba5ded6a..4c30ab54 100644 --- a/ReallifeGamemode.Server/Inventory/Items/AssaultRifle.cs +++ b/ReallifeGamemode.Server/Inventory/Items/AssaultRifle.cs @@ -4,15 +4,14 @@ using System.Text; namespace ReallifeGamemode.Server.Inventory.Items { - class AssaultRifle : WeaponDealItem + internal class AssaultRifle : WeaponDealItem { - public override int Id => 13; - public override string Name => "AssaultRifle"; - public override string Description => "Waffe"; - public override int Gewicht => 500; - public override string Einheit => "g"; - public override uint Object => 3666746839; //3061944032 - public override int Price => 0; + public override int Id => 13; + public override string Name => "AssaultRifle"; + public override string Description => "Waffe"; + public override int Gewicht => 4780; + public override string Einheit => "g"; + public override uint Object => 3666746839; //3061944032 + public override int Price => 0; } } - diff --git a/ReallifeGamemode.Server/Inventory/Items/AssaultSmg.cs b/ReallifeGamemode.Server/Inventory/Items/AssaultSmg.cs index 573b8349..bb68cc52 100644 --- a/ReallifeGamemode.Server/Inventory/Items/AssaultSmg.cs +++ b/ReallifeGamemode.Server/Inventory/Items/AssaultSmg.cs @@ -4,15 +4,14 @@ using System.Text; namespace ReallifeGamemode.Server.Inventory.Items { - class AssaultSmg : WeaponDealItem + internal class AssaultSmg : WeaponDealItem { public override int Id => 14; public override string Name => "AssaultSmg"; public override string Description => "Waffe"; - public override int Gewicht => 500; + public override int Gewicht => 2300; public override string Einheit => "g"; public override uint Object => 3666746839; //3061944032 public override int Price => 0; } } - diff --git a/ReallifeGamemode.Server/Inventory/Items/Baklava.cs b/ReallifeGamemode.Server/Inventory/Items/Baklava.cs index 67f3cd56..d680bac3 100644 --- a/ReallifeGamemode.Server/Inventory/Items/Baklava.cs +++ b/ReallifeGamemode.Server/Inventory/Items/Baklava.cs @@ -10,7 +10,7 @@ namespace ReallifeGamemode.Server.Inventory.Items { internal class Baklava : ConsumableItem { - public override int Id => 104; + public override int Id => 105; public override string Name => "Baklava"; public override string Description => "Dessert für dannach."; public override int Gewicht => 100; @@ -19,7 +19,7 @@ namespace ReallifeGamemode.Server.Inventory.Items public override uint Object => 2240524752; public override int Price => 300; - public override float Cooldown => 10000; + public override float Cooldown => 20000; public override void Consume(UserItem uItem) { diff --git a/ReallifeGamemode.Server/Inventory/Items/Barsch.cs b/ReallifeGamemode.Server/Inventory/Items/Barsch.cs index 2ba5ffc5..561a1700 100644 --- a/ReallifeGamemode.Server/Inventory/Items/Barsch.cs +++ b/ReallifeGamemode.Server/Inventory/Items/Barsch.cs @@ -13,7 +13,6 @@ namespace ReallifeGamemode.Server.Inventory.Items public override string Description => "Ein Fisch"; public override int Gewicht => 2600; public override string Einheit => "g"; - public override int HpAmount => 20; public override uint Object => 786272259; public override int Price => 0; } diff --git a/ReallifeGamemode.Server/Inventory/Items/Bier.cs b/ReallifeGamemode.Server/Inventory/Items/Bier.cs index efa3615f..99fc67a5 100644 --- a/ReallifeGamemode.Server/Inventory/Items/Bier.cs +++ b/ReallifeGamemode.Server/Inventory/Items/Bier.cs @@ -9,12 +9,12 @@ namespace ReallifeGamemode.Server.Inventory.Items { public override int Id => 102; public override string Name => "Bier"; - public override string Description => "Ein Bier"; - public override int Gewicht => 10; + public override string Description => "Ein Kolben"; + public override int Gewicht => 500; public override string Einheit => "g"; public override int HpAmount => 10; public override uint Object => 2240524752; - public override int Price => 20; + public override int Price => 50; public override float Cooldown => 1000; diff --git a/ReallifeGamemode.Server/Inventory/Items/Cannabis.cs b/ReallifeGamemode.Server/Inventory/Items/Cannabis.cs index 4ff04a7c..a0845bd6 100644 --- a/ReallifeGamemode.Server/Inventory/Items/Cannabis.cs +++ b/ReallifeGamemode.Server/Inventory/Items/Cannabis.cs @@ -1,4 +1,5 @@ -using ReallifeGamemode.Server.Inventory.Interfaces; +using ReallifeGamemode.Database.Entities; +using ReallifeGamemode.Server.Inventory.Interfaces; /** * @overview Life of German Reallife - Inventory Items Hamburger (Hamburger.cs) @@ -8,14 +9,29 @@ namespace ReallifeGamemode.Server.Inventory.Items { - public class Cannabis : IDroppableItem + public class Cannabis : ConsumableItem { - public int Id => 30; - public string Name => "Grünes Gift"; - public string Description => "puff puff and pass"; - public int Gewicht => 50; - public string Einheit => "g"; - public uint Object => 3076948544; - public int Price => 0; + public override int Id => 108; + + public override string Name => "Grünes Gift"; + + public override string Description => "puff puff and pass"; + + public override int Gewicht => 2; + + public override string Einheit => "g"; + + public override uint Object => 3076948544; + + public override int Price => 0; + + public override int HpAmount => -5; + + public override float Cooldown => 20000; + + public override void Consume(UserItem uItem) + { + //nothing + } } } diff --git a/ReallifeGamemode.Server/Inventory/Items/CarbineRifle.cs b/ReallifeGamemode.Server/Inventory/Items/CarbineRifle.cs index b37f581b..d12ba083 100644 --- a/ReallifeGamemode.Server/Inventory/Items/CarbineRifle.cs +++ b/ReallifeGamemode.Server/Inventory/Items/CarbineRifle.cs @@ -11,7 +11,7 @@ namespace ReallifeGamemode.Server.Inventory.Items public override int Id => 6; public override string Name => "CarbineRifle"; public override string Description => "Waffe"; - public override int Gewicht => 500; + public override int Gewicht => 3200; public override string Einheit => "g"; public override uint Object => 3666746839; //3061944032 public override int Price => 0; diff --git a/ReallifeGamemode.Server/Inventory/Items/Cheeseburger.cs b/ReallifeGamemode.Server/Inventory/Items/Cheeseburger.cs index bc14d8a5..925302c8 100644 --- a/ReallifeGamemode.Server/Inventory/Items/Cheeseburger.cs +++ b/ReallifeGamemode.Server/Inventory/Items/Cheeseburger.cs @@ -21,7 +21,7 @@ namespace ReallifeGamemode.Server.Inventory.Items public override int HpAmount => 20; public override uint Object => 2240524752; public override int Price => 150; - public override float Cooldown => 4000; + public override float Cooldown => 7000; public override void Consume(UserItem uItem) { diff --git a/ReallifeGamemode.Server/Inventory/Items/Chips.cs b/ReallifeGamemode.Server/Inventory/Items/Chips.cs index 81cb02de..00d86433 100644 --- a/ReallifeGamemode.Server/Inventory/Items/Chips.cs +++ b/ReallifeGamemode.Server/Inventory/Items/Chips.cs @@ -19,7 +19,7 @@ namespace ReallifeGamemode.Server.Inventory.Items public override uint Object => 2240524752; public override int Price => 5; - public override float Cooldown => 3500; + public override float Cooldown => 5500; public override void Consume(UserItem uItem) { diff --git a/ReallifeGamemode.Server/Inventory/Items/Cocain.cs b/ReallifeGamemode.Server/Inventory/Items/Cocain.cs index a396a079..60e5000c 100644 --- a/ReallifeGamemode.Server/Inventory/Items/Cocain.cs +++ b/ReallifeGamemode.Server/Inventory/Items/Cocain.cs @@ -10,7 +10,7 @@ namespace ReallifeGamemode.Server.Inventory.Items { public class Cocain : ConsumableItem { - public override int Id => 31; + public override int Id => 107; public override string Name => "Koks"; public override string Description => "Rave"; public override int Gewicht => 2; @@ -19,7 +19,7 @@ namespace ReallifeGamemode.Server.Inventory.Items public override uint Object => 2240524752; public override int Price => 0; - public override float Cooldown => throw new System.NotImplementedException(); + public override float Cooldown => 20000; public override void Consume(UserItem uItem) { diff --git a/ReallifeGamemode.Server/Inventory/Items/CombatPDW.cs b/ReallifeGamemode.Server/Inventory/Items/CombatPDW.cs index 7247cbcd..f41538ea 100644 --- a/ReallifeGamemode.Server/Inventory/Items/CombatPDW.cs +++ b/ReallifeGamemode.Server/Inventory/Items/CombatPDW.cs @@ -4,15 +4,14 @@ using System.Text; namespace ReallifeGamemode.Server.Inventory.Items { - class CombatPDW : WeaponDealItem + internal class CombatPDW : WeaponDealItem { - public override int Id => 12; - public override string Name => "CombatPDW"; - public override string Description => "Waffe"; - public override int Gewicht => 500; - public override string Einheit => "g"; - public override uint Object => 3666746839; //3061944032 - public override int Price => 0; + public override int Id => 12; + public override string Name => "CombatPDW"; + public override string Description => "Waffe"; + public override int Gewicht => 2300; + public override string Einheit => "g"; + public override uint Object => 3666746839; //3061944032 + public override int Price => 0; } } - diff --git a/ReallifeGamemode.Server/Inventory/Items/Combatpstiol.cs b/ReallifeGamemode.Server/Inventory/Items/Combatpstiol.cs index f2034664..f442a7d0 100644 --- a/ReallifeGamemode.Server/Inventory/Items/Combatpstiol.cs +++ b/ReallifeGamemode.Server/Inventory/Items/Combatpstiol.cs @@ -4,12 +4,12 @@ using System.Text; namespace ReallifeGamemode.Server.Inventory.Items { - class Combatpstiol : WeaponDealItem + internal class Combatpstiol : WeaponDealItem { public override int Id => 4; public override string Name => "Combatpistol"; public override string Description => "Waffe"; - public override int Gewicht => 500; + public override int Gewicht => 950; public override string Einheit => "g"; public override uint Object => 3666746839; //3061944032 public override int Price => 0; diff --git a/ReallifeGamemode.Server/Inventory/Items/ConsumableItem.cs b/ReallifeGamemode.Server/Inventory/Items/ConsumableItem.cs index 5c0d202b..26248d69 100644 --- a/ReallifeGamemode.Server/Inventory/Items/ConsumableItem.cs +++ b/ReallifeGamemode.Server/Inventory/Items/ConsumableItem.cs @@ -1,8 +1,10 @@ -using GTANetworkAPI; +using System; +using GTANetworkAPI; using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Server.Inventory.Interfaces; using ReallifeGamemode.Server.Managers; +using ReallifeGamemode.Server.Util; namespace ReallifeGamemode.Server.Inventory.Items { @@ -23,14 +25,36 @@ namespace ReallifeGamemode.Server.Inventory.Items public bool Use(UserItem uItem) { User user = uItem.GetUser(); - if (user.Player.IsLoggedIn() && InventoryManager.itemCooldown.ContainsKey(user.Player)) + if (user.Player == null || !user.Player.IsLoggedIn()) + return false; + + if (InventoryManager.itemCooldown.ContainsKey(user.Player)) { - uItem.GetUser().Player.TriggerEvent("Error", "Du kannst dieses Item nicht benutzen."); + PlayerTimer timer = InventoryManager.itemCooldown[user.Player]; + int timeToNextUse = (int)(timer.startTime - DateTime.Now).TotalSeconds; + uItem.GetUser().Player.TriggerEvent("Error", $"Versuche es nach {timeToNextUse} Sekunden erneut."); return false; } - + PlayerTimer playerTimer = new PlayerTimer(user.Player, this, Cooldown); + playerTimer.Elapsed += _CooldownElapse; + InventoryManager.itemCooldown.Add(user.Player, playerTimer); Consume(uItem); return true; } + + private void _CooldownElapse(Player player, dynamic usableItem) + { + NAPI.Task.Run(() => + { + if (player == null || !player.IsLoggedIn()) + return; + + if (!InventoryManager.itemCooldown.ContainsKey(player)) + return; + + InventoryManager.itemCooldown[player].Stop(); + InventoryManager.itemCooldown.Remove(player); + }); + } } } diff --git a/ReallifeGamemode.Server/Inventory/Items/DropItem.cs b/ReallifeGamemode.Server/Inventory/Items/DropItem.cs index f00121a0..52bf1fc2 100644 --- a/ReallifeGamemode.Server/Inventory/Items/DropItem.cs +++ b/ReallifeGamemode.Server/Inventory/Items/DropItem.cs @@ -8,7 +8,6 @@ namespace ReallifeGamemode.Server.Inventory.Items { public abstract class DropItem : IDroppableItem { - public abstract int HpAmount { get; } public abstract int Id { get; } public abstract string Name { get; } public abstract string Description { get; } diff --git a/ReallifeGamemode.Server/Inventory/Items/Döner.cs b/ReallifeGamemode.Server/Inventory/Items/Döner.cs new file mode 100644 index 00000000..599843d1 --- /dev/null +++ b/ReallifeGamemode.Server/Inventory/Items/Döner.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Text; +using GTANetworkAPI; +using ReallifeGamemode.Database.Entities; +using ReallifeGamemode.Server.Extensions; +using ReallifeGamemode.Server.Managers; + +namespace ReallifeGamemode.Server.Inventory.Items +{ + internal class Döner : ConsumableItem + { + public override int Id => 106; + public override string Name => "Döner"; + public override string Description => "Von Emre selbst gemacht."; + public override int Gewicht => 500; + public override string Einheit => "g"; + public override int HpAmount => 80; + public override uint Object => 2240524752; + public override int Price => 50000; + + public override float Cooldown => 15000; + + public override void Consume(UserItem uItem) + { + Player player = uItem.GetUser().Player; + + int amountToAdd = HpAmount; + if (player.Health + amountToAdd > 100) + { + amountToAdd = 100 - player.Health; + } + + player.SafeSetHealth(player.Health + amountToAdd); + player.SendNotification("Du hast ein ~y~" + Name + " ~s~gegessen.", false); + InventoryManager.RemoveUserItem(player.GetUser(), uItem, 1); + } + } +} diff --git a/ReallifeGamemode.Server/Inventory/Items/Flunder.cs b/ReallifeGamemode.Server/Inventory/Items/Flunder.cs index b708bef6..3059d217 100644 --- a/ReallifeGamemode.Server/Inventory/Items/Flunder.cs +++ b/ReallifeGamemode.Server/Inventory/Items/Flunder.cs @@ -13,7 +13,6 @@ namespace ReallifeGamemode.Server.Inventory.Items public override string Description => "Ein Fisch"; public override int Gewicht => 7700; public override string Einheit => "g"; - public override int HpAmount => 20; public override uint Object => 786272259; public override int Price => 0; } diff --git a/ReallifeGamemode.Server/Inventory/Items/Holz.cs b/ReallifeGamemode.Server/Inventory/Items/Holz.cs index a3fd3361..d5e87929 100644 --- a/ReallifeGamemode.Server/Inventory/Items/Holz.cs +++ b/ReallifeGamemode.Server/Inventory/Items/Holz.cs @@ -8,14 +8,18 @@ namespace ReallifeGamemode.Server.Inventory.Items { - public class Holz : IDroppableItem + public class Holz : DropItem { - public int Id => 32; - public string Name => "Holz"; - public string Description => "Ich und mein Holz."; - public int Gewicht => 650; - public string Einheit => "g"; - public uint Object => 1805779401; - public int Price => 0; + public override int Id => 20; + + public override string Name => "Holz"; + + public override string Description => "Ich und mein Holz."; + public override int Gewicht => 650; + public override string Einheit => "g"; + + public override uint Object => 1805779401; + + public override int Price => 0; } } diff --git a/ReallifeGamemode.Server/Inventory/Items/Lachs.cs b/ReallifeGamemode.Server/Inventory/Items/Lachs.cs index bb808651..eeed8533 100644 --- a/ReallifeGamemode.Server/Inventory/Items/Lachs.cs +++ b/ReallifeGamemode.Server/Inventory/Items/Lachs.cs @@ -13,7 +13,6 @@ namespace ReallifeGamemode.Server.Inventory.Items public override string Description => "Du Lachs"; public override int Gewicht => 4200; public override string Einheit => "g"; - public override int HpAmount => 20; public override uint Object => 786272259; public override int Price => 0; } diff --git a/ReallifeGamemode.Server/Inventory/Items/Thunfisch.cs b/ReallifeGamemode.Server/Inventory/Items/Thunfisch.cs index 229a46f1..f4628797 100644 --- a/ReallifeGamemode.Server/Inventory/Items/Thunfisch.cs +++ b/ReallifeGamemode.Server/Inventory/Items/Thunfisch.cs @@ -13,7 +13,6 @@ namespace ReallifeGamemode.Server.Inventory.Items public override string Description => "Ein Fisch"; public override int Gewicht => 11000; public override string Einheit => "g"; - public override int HpAmount => 20; public override uint Object => 786272259; public override int Price => 0; } diff --git a/ReallifeGamemode.Server/Inventory/Items/Zander.cs b/ReallifeGamemode.Server/Inventory/Items/Zander.cs index 2ed0ad82..72d92337 100644 --- a/ReallifeGamemode.Server/Inventory/Items/Zander.cs +++ b/ReallifeGamemode.Server/Inventory/Items/Zander.cs @@ -13,7 +13,6 @@ namespace ReallifeGamemode.Server.Inventory.Items public override string Description => "Ein Fisch"; public override int Gewicht => 5000; public override string Einheit => "g"; - public override int HpAmount => 20; public override uint Object => 786272259; public override int Price => 0; } diff --git a/ReallifeGamemode.Server/Job/BusDriverJob.cs b/ReallifeGamemode.Server/Job/BusDriverJob.cs index e8eee500..d944b8c3 100644 --- a/ReallifeGamemode.Server/Job/BusDriverJob.cs +++ b/ReallifeGamemode.Server/Job/BusDriverJob.cs @@ -582,7 +582,7 @@ namespace ReallifeGamemode.Server.Job player.SendChatMessage("~y~[JOB] ~w~Bist du nicht in 30 Sekunden zurück, ~r~wird der Job beendet!"); } - private void JobTimerElapsed(Player player, Vehicle vehicle) + private void JobTimerElapsed(Player player, dynamic vehicle) { NAPI.Task.Run(() => { diff --git a/ReallifeGamemode.Server/Job/PilotJob.cs b/ReallifeGamemode.Server/Job/PilotJob.cs index 32b8d941..66751a43 100644 --- a/ReallifeGamemode.Server/Job/PilotJob.cs +++ b/ReallifeGamemode.Server/Job/PilotJob.cs @@ -292,7 +292,6 @@ namespace ReallifeGamemode.Server.Job _CHANGING_VEHICLE.Remove(player); return; } - if (JobManager.playerTimersJobVehicleRespawn.ContainsKey(player)) { @@ -310,7 +309,7 @@ namespace ReallifeGamemode.Server.Job player.SendChatMessage("~y~[JOB] ~w~Bist du nicht in 30 Sekunden zurück, ~r~wird der Job beendet!"); } - private void JobTimerElapsed(Player player, Vehicle vehicle) + private void JobTimerElapsed(Player player, dynamic vehicle) { NAPI.Task.Run(() => { diff --git a/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs b/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs index b682e78e..7edf83be 100644 --- a/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs +++ b/ReallifeGamemode.Server/Job/RefuseCollectorJob.cs @@ -180,7 +180,7 @@ namespace ReallifeGamemode.Server.Job public void MuellmannJobBeenden(Player player) { - if(player == null || !player.IsLoggedIn()) + if (player == null || !player.IsLoggedIn()) { return; } @@ -440,7 +440,7 @@ namespace ReallifeGamemode.Server.Job JobManager.playerTimersJobVehicleRespawn[player] = playerTimer; } - private void JobTimerElapsed(Player player, Vehicle vehicle) + private void JobTimerElapsed(Player player, dynamic vehicle) { NAPI.Task.Run(() => { diff --git a/ReallifeGamemode.Server/Util/PlayerTimer.cs b/ReallifeGamemode.Server/Util/PlayerTimer.cs index b84c1526..3059cfee 100644 --- a/ReallifeGamemode.Server/Util/PlayerTimer.cs +++ b/ReallifeGamemode.Server/Util/PlayerTimer.cs @@ -15,7 +15,7 @@ namespace ReallifeGamemode.Server.Util private readonly Timer timer; public readonly DateTime startTime; - public delegate void PlayerTimerElapsed(Player player, Vehicle veh); + public delegate void PlayerTimerElapsed(Player player, dynamic dynamic); public event PlayerTimerElapsed Elapsed; @@ -29,11 +29,11 @@ namespace ReallifeGamemode.Server.Util this.timer.Start(); } - public PlayerTimer(Player player, IUsableItem usableItem, int milliseconds = 1000) + public PlayerTimer(Player player, IUsableItem usableItem, float milliseconds = 1000) { this.player = player; this.usableItem = usableItem; - this.startTime = DateTime.Now; + this.startTime = DateTime.Now.AddMilliseconds(milliseconds); this.timer = new Timer(milliseconds); this.timer.Elapsed += Timer_Elapsed; @@ -42,7 +42,10 @@ namespace ReallifeGamemode.Server.Util private void Timer_Elapsed(object sender, ElapsedEventArgs e) { - Elapsed?.Invoke(player, veh); + if (veh != null) + Elapsed?.Invoke(player, veh); + else + Elapsed?.Invoke(player, usableItem); } public void Stop()