From c6c2affa8dfc536f3672b47c3750fa064a82c4f4 Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Sun, 19 Apr 2020 12:03:13 +0200 Subject: [PATCH 01/30] Versuch 1 WeaponDamage --- ReallifeGamemode.Client/Player/weaponlist.ts | 5 +++++ ReallifeGamemode.Server/Commands/AdminCommands.cs | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/ReallifeGamemode.Client/Player/weaponlist.ts b/ReallifeGamemode.Client/Player/weaponlist.ts index d9dbd111..f04db4d2 100644 --- a/ReallifeGamemode.Client/Player/weaponlist.ts +++ b/ReallifeGamemode.Client/Player/weaponlist.ts @@ -34,6 +34,11 @@ export default function weaponList(globalData: IGlobalData) { var specialWep = ""; var timer = ""; + mp.events.add('WeaponModifier', (modifier) => { + mp.gui.chat.push("Modifier steht jetzt auf" + modifier); + mp.players.local.setWeaponDamageModifier(modifier); + }); + //Weapon Menu mp.events.add('showWeaponMenu', (primariesArr, secondariesArr, meleesArr, specialsArr, jsonTime) => { diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index 5b2a975d..b5f77e8a 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -1602,6 +1602,12 @@ namespace ReallifeGamemode.Server.Commands #endregion #region ALevel1337 + [Command("wepmod", "~m~Benutzung: ~s~/wepmod [Variable]")] + public void CmdWeaponModifier(Player player, float modifier) + { + player.SendChatMessage("Modifier steht auf" + modifier); + player.TriggerEvent("WeaponModifier", modifier); + } [Command("gotocp", "~m~Benutzung: ~s~/gotocp")] public void CmdAdminGotocp(Player admin) { From 409108067bc583507f47ac730d08c49c102cbc86 Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Sun, 19 Apr 2020 12:10:44 +0200 Subject: [PATCH 02/30] Added MeeleWeaponModifier --- ReallifeGamemode.Client/Player/weaponlist.ts | 5 +++++ ReallifeGamemode.Server/Commands/AdminCommands.cs | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/ReallifeGamemode.Client/Player/weaponlist.ts b/ReallifeGamemode.Client/Player/weaponlist.ts index f04db4d2..4a8b6042 100644 --- a/ReallifeGamemode.Client/Player/weaponlist.ts +++ b/ReallifeGamemode.Client/Player/weaponlist.ts @@ -39,6 +39,11 @@ export default function weaponList(globalData: IGlobalData) { mp.players.local.setWeaponDamageModifier(modifier); }); + mp.events.add('WeaponMeeleModifier', (modifier) => { + mp.gui.chat.push("MeeleModifier steht jetzt auf" + modifier); + mp.players.local.setMeleeWeaponDamageModifier(modifier); + }); + //Weapon Menu mp.events.add('showWeaponMenu', (primariesArr, secondariesArr, meleesArr, specialsArr, jsonTime) => { diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index b5f77e8a..f93a7c37 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -1608,6 +1608,12 @@ namespace ReallifeGamemode.Server.Commands player.SendChatMessage("Modifier steht auf" + modifier); player.TriggerEvent("WeaponModifier", modifier); } + [Command("wepmmod", "~m~Benutzung: ~s~/wepmod [Variable]")] + public void CmdWeaponMeeleModifier(Player player, float modifier) + { + player.SendChatMessage("MeeleModifier steht auf" + modifier); + player.TriggerEvent("WeaponMeeleModifier", modifier); + } [Command("gotocp", "~m~Benutzung: ~s~/gotocp")] public void CmdAdminGotocp(Player admin) { From 983dd141998080c82827fe91279264251946136a Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Sun, 19 Apr 2020 12:14:22 +0200 Subject: [PATCH 03/30] =?UTF-8?q?Added=20OnPlayerShot=20Funktion=20f=C3=BC?= =?UTF-8?q?r=20vorl=C3=A4ufig?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Client/Player/weaponlist.ts | 21 ++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/ReallifeGamemode.Client/Player/weaponlist.ts b/ReallifeGamemode.Client/Player/weaponlist.ts index 4a8b6042..7da7cccb 100644 --- a/ReallifeGamemode.Client/Player/weaponlist.ts +++ b/ReallifeGamemode.Client/Player/weaponlist.ts @@ -43,6 +43,27 @@ export default function weaponList(globalData: IGlobalData) { mp.gui.chat.push("MeeleModifier steht jetzt auf" + modifier); mp.players.local.setMeleeWeaponDamageModifier(modifier); }); + /*mp.events.add('playerWeaponShot', (targetPosition, targetEntity) => { + for (var x in this.weaponAmmo) { + if (this.weaponAmmo[x].id != this.currentWeapon) { + continue; + } + this.weaponAmmo[x].ammo = this.weaponAmmo[x].ammo - 1; + } + let weaponDamage = 1; + switch (this.currentWeapon) { + case 0xBFEFFF6D: + weaponDamage = 30; + break; + case 0x7F229F94: + weaponDamage = 100; + break; + default: + weaponDamage = 1; + break; + } + mp.players.local.setWeaponDamageModifier(weaponDamage); + });*/ //Weapon Menu From 0db8d5f0f2d8c6d91056f0ea20495d4c054c3bec Mon Sep 17 00:00:00 2001 From: hydrant Date: Sun, 19 Apr 2020 15:05:01 +0200 Subject: [PATCH 04/30] duty text wech --- ReallifeGamemode.Server/Util/FactionHelper.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Util/FactionHelper.cs b/ReallifeGamemode.Server/Util/FactionHelper.cs index ff7c4550..2170afee 100644 --- a/ReallifeGamemode.Server/Util/FactionHelper.cs +++ b/ReallifeGamemode.Server/Util/FactionHelper.cs @@ -43,7 +43,7 @@ namespace ReallifeGamemode.Server.Util CharacterCreator.ApplyCharacter(player); Events.UpdateCharacterCloth.LoadCharacterDefaults(player); - player.TriggerEvent("toggleDutyMode", true); + player.TriggerEvent("toggleDutyMode", false); int medicCount = 0; foreach (Player c in NAPI.Pools.GetAllPlayers()) { From 05bf2ef2d1a2f30cccf42eddc10aeae302147759 Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Sun, 19 Apr 2020 17:22:25 +0200 Subject: [PATCH 05/30] WaffenSchaden Test 2.0 --- ReallifeGamemode.Client/Player/weaponlist.ts | 6 ++++-- ReallifeGamemode.Server/Commands/AdminCommands.cs | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ReallifeGamemode.Client/Player/weaponlist.ts b/ReallifeGamemode.Client/Player/weaponlist.ts index 7da7cccb..dcbe1f50 100644 --- a/ReallifeGamemode.Client/Player/weaponlist.ts +++ b/ReallifeGamemode.Client/Player/weaponlist.ts @@ -36,12 +36,14 @@ export default function weaponList(globalData: IGlobalData) { mp.events.add('WeaponModifier', (modifier) => { mp.gui.chat.push("Modifier steht jetzt auf" + modifier); - mp.players.local.setWeaponDamageModifier(modifier); + //mp.players.local.setWeaponDamageModifier(modifier); + mp.game.invoke("0xCE07B9F7817AADA3", mp.players.local, modifier); }); mp.events.add('WeaponMeeleModifier', (modifier) => { mp.gui.chat.push("MeeleModifier steht jetzt auf" + modifier); - mp.players.local.setMeleeWeaponDamageModifier(modifier); + //mp.players.local.setMeleeWeaponDamageModifier(modifier); + mp.game.invoke("0x4A3DC7ECCC321032", mp.players.local, modifier); }); /*mp.events.add('playerWeaponShot', (targetPosition, targetEntity) => { for (var x in this.weaponAmmo) { diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index f93a7c37..d0209f3d 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -1608,7 +1608,7 @@ namespace ReallifeGamemode.Server.Commands player.SendChatMessage("Modifier steht auf" + modifier); player.TriggerEvent("WeaponModifier", modifier); } - [Command("wepmmod", "~m~Benutzung: ~s~/wepmod [Variable]")] + [Command("wepmmod", "~m~Benutzung: ~s~/wepmmod [Variable]")] public void CmdWeaponMeeleModifier(Player player, float modifier) { player.SendChatMessage("MeeleModifier steht auf" + modifier); From a31ced32171fde2fd7ef56460a20f3c3150223b8 Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Sun, 19 Apr 2020 17:36:03 +0200 Subject: [PATCH 06/30] WaffenSchaden Test 3.0 --- ReallifeGamemode.Client/Player/weaponlist.ts | 8 ++++---- ReallifeGamemode.Server/Commands/AdminCommands.cs | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ReallifeGamemode.Client/Player/weaponlist.ts b/ReallifeGamemode.Client/Player/weaponlist.ts index dcbe1f50..09c0eb75 100644 --- a/ReallifeGamemode.Client/Player/weaponlist.ts +++ b/ReallifeGamemode.Client/Player/weaponlist.ts @@ -34,16 +34,16 @@ export default function weaponList(globalData: IGlobalData) { var specialWep = ""; var timer = ""; - mp.events.add('WeaponModifier', (modifier) => { + mp.events.add('WeaponModifier', (player, modifier) => { mp.gui.chat.push("Modifier steht jetzt auf" + modifier); //mp.players.local.setWeaponDamageModifier(modifier); - mp.game.invoke("0xCE07B9F7817AADA3", mp.players.local, modifier); + mp.game.invoke("0xCE07B9F7817AADA3", player, modifier); }); - mp.events.add('WeaponMeeleModifier', (modifier) => { + mp.events.add('WeaponMeeleModifier', (player, modifier) => { mp.gui.chat.push("MeeleModifier steht jetzt auf" + modifier); //mp.players.local.setMeleeWeaponDamageModifier(modifier); - mp.game.invoke("0x4A3DC7ECCC321032", mp.players.local, modifier); + mp.game.invoke("0x4A3DC7ECCC321032", player, modifier); }); /*mp.events.add('playerWeaponShot', (targetPosition, targetEntity) => { for (var x in this.weaponAmmo) { diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index d0209f3d..fec4cd0a 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -1606,13 +1606,13 @@ namespace ReallifeGamemode.Server.Commands public void CmdWeaponModifier(Player player, float modifier) { player.SendChatMessage("Modifier steht auf" + modifier); - player.TriggerEvent("WeaponModifier", modifier); + player.TriggerEvent("WeaponModifier", player, modifier); } [Command("wepmmod", "~m~Benutzung: ~s~/wepmmod [Variable]")] public void CmdWeaponMeeleModifier(Player player, float modifier) { player.SendChatMessage("MeeleModifier steht auf" + modifier); - player.TriggerEvent("WeaponMeeleModifier", modifier); + player.TriggerEvent("WeaponMeeleModifier", player, modifier); } [Command("gotocp", "~m~Benutzung: ~s~/gotocp")] public void CmdAdminGotocp(Player admin) From e6f3399910fa270e14a7935639fe51d5f86a6a98 Mon Sep 17 00:00:00 2001 From: hydrant Date: Sun, 19 Apr 2020 19:24:16 +0200 Subject: [PATCH 07/30] handmoney fix --- ReallifeGamemode.Database/Entities/User.cs | 14 +++++++++++++- ReallifeGamemode.Server/Managers/SaveManager.cs | 7 ++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Database/Entities/User.cs b/ReallifeGamemode.Database/Entities/User.cs index 043e32bd..b20b3f2b 100644 --- a/ReallifeGamemode.Database/Entities/User.cs +++ b/ReallifeGamemode.Database/Entities/User.cs @@ -21,6 +21,9 @@ namespace ReallifeGamemode.Database.Entities [NotMapped] private int _wanteds; + [NotMapped] + private int _handMoney; + [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; } @@ -40,7 +43,16 @@ namespace ReallifeGamemode.Database.Entities public AdminLevel AdminLevel { get; set; } public bool Dead { get; set; } - public int Handmoney { get; set; } + public int Handmoney + { + get => _handMoney; + + set + { + _handMoney = value; + Player.TriggerEvent("SERVER:SET_HANDMONEY", value); + } + } public float PositionX { get; set; } public float PositionY { get; set; } diff --git a/ReallifeGamemode.Server/Managers/SaveManager.cs b/ReallifeGamemode.Server/Managers/SaveManager.cs index 7025c1e8..db6f8216 100644 --- a/ReallifeGamemode.Server/Managers/SaveManager.cs +++ b/ReallifeGamemode.Server/Managers/SaveManager.cs @@ -210,8 +210,13 @@ namespace ReallifeGamemode.Server.Managers //Alle Spieler foreach (Player player in NAPI.Pools.GetAllPlayers()) { - Vector3 pos = player.Position; User user = player.GetUser(saveAll); + if (user == null) + { + continue; + } + + Vector3 pos = player.Position; user.PositionX = pos.X; user.PositionY = pos.Y; user.PositionZ = pos.Z; From e65bb5dcce582abbfaa960edcd95f511f08f8074 Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Sun, 19 Apr 2020 20:00:22 +0200 Subject: [PATCH 08/30] Waffenschaden implementiert Versuch 1 --- ReallifeGamemode.Client/Player/weaponlist.ts | 33 --------- ReallifeGamemode.Client/util/WeaponDamage.ts | 75 ++++++++++++++++++++ ReallifeGamemode.Server/Util/WeaponDamage.cs | 13 ++++ 3 files changed, 88 insertions(+), 33 deletions(-) create mode 100644 ReallifeGamemode.Client/util/WeaponDamage.ts create mode 100644 ReallifeGamemode.Server/Util/WeaponDamage.cs diff --git a/ReallifeGamemode.Client/Player/weaponlist.ts b/ReallifeGamemode.Client/Player/weaponlist.ts index 09c0eb75..d9dbd111 100644 --- a/ReallifeGamemode.Client/Player/weaponlist.ts +++ b/ReallifeGamemode.Client/Player/weaponlist.ts @@ -34,39 +34,6 @@ export default function weaponList(globalData: IGlobalData) { var specialWep = ""; var timer = ""; - mp.events.add('WeaponModifier', (player, modifier) => { - mp.gui.chat.push("Modifier steht jetzt auf" + modifier); - //mp.players.local.setWeaponDamageModifier(modifier); - mp.game.invoke("0xCE07B9F7817AADA3", player, modifier); - }); - - mp.events.add('WeaponMeeleModifier', (player, modifier) => { - mp.gui.chat.push("MeeleModifier steht jetzt auf" + modifier); - //mp.players.local.setMeleeWeaponDamageModifier(modifier); - mp.game.invoke("0x4A3DC7ECCC321032", player, modifier); - }); - /*mp.events.add('playerWeaponShot', (targetPosition, targetEntity) => { - for (var x in this.weaponAmmo) { - if (this.weaponAmmo[x].id != this.currentWeapon) { - continue; - } - this.weaponAmmo[x].ammo = this.weaponAmmo[x].ammo - 1; - } - let weaponDamage = 1; - switch (this.currentWeapon) { - case 0xBFEFFF6D: - weaponDamage = 30; - break; - case 0x7F229F94: - weaponDamage = 100; - break; - default: - weaponDamage = 1; - break; - } - mp.players.local.setWeaponDamageModifier(weaponDamage); - });*/ - //Weapon Menu mp.events.add('showWeaponMenu', (primariesArr, secondariesArr, meleesArr, specialsArr, jsonTime) => { diff --git a/ReallifeGamemode.Client/util/WeaponDamage.ts b/ReallifeGamemode.Client/util/WeaponDamage.ts new file mode 100644 index 00000000..dee90bea --- /dev/null +++ b/ReallifeGamemode.Client/util/WeaponDamage.ts @@ -0,0 +1,75 @@ +export default function weapondamageUtil() { + mp.events.add('SERVER:WeaponModifier', (player) => { + //mp.gui.chat.push("Modifier steht jetzt auf" + modifier); + //mp.players.local.setWeaponDamageModifier(modifier); + let modifier = 1; + let meelemodifier = 1; + switch (this.currentWeapon) { + case 0x1B06D571: //Pistol + modifier = 0.4; + meelemodifier = 1; + break; + case 0xBFE256D4: //Pistol_MK2 + modifier = 0.4; + meelemodifier = 1; + break; + case 0x5EF9FEC4: //Combatpistol + modifier = 0.5; + meelemodifier = 1; + break; + case 0x99AEEB3B: //Pistol50 + modifier = 0.35; + meelemodifier = 1; + break; + case 0x2BE6766B: //SMG + modifier = 0.25; + meelemodifier = 1; + break; + case 0x1D073A89: //Pumpshotgun + modifier = 0.2; + meelemodifier = 1; + break; + case 0x83BF0278: //Cabinerifle + modifier = 0.25; + meelemodifier = 1; + break; + case 0x624FE830: //Compactrifle + modifier = 0.2; + meelemodifier = 1; + break; + case 0xA2719263: //Meele Umarmed Fist + meelemodifier = 0.1; + modifier = 1; + break; + case 0x958A4A8F: //Meele Baseball Bat + meelemodifier = 0.15; + modifier = 1; + break; + case 0x8BB05FD7: //Meele Flashlight + meelemodifier = 0.1; + modifier = 1; + break; + case 0xD8DF3C3C: //Meele Knuckle + meelemodifier = 0.1; + modifier = 1; + break; + case 0x678B81B1: //Meele Nightstick + meelemodifier = 0.1; + modifier = 1; + break; + default: + modifier = 1; + meelemodifier = 1; + break; + } + mp.game.invoke("0xCE07B9F7817AADA3", player, modifier); + mp.game.invoke("0x4A3DC7ECCC321032", player, meelemodifier); + }); + /*mp.events.add('playerWeaponShot', (targetPosition, targetEntity) => { +for (var x in this.weaponAmmo) { + if (this.weaponAmmo[x].id != this.currentWeapon) { + continue; + } + this.weaponAmmo[x].ammo = this.weaponAmmo[x].ammo - 1; +}*/ +} \ No newline at end of file diff --git a/ReallifeGamemode.Server/Util/WeaponDamage.cs b/ReallifeGamemode.Server/Util/WeaponDamage.cs new file mode 100644 index 00000000..7f6f2145 --- /dev/null +++ b/ReallifeGamemode.Server/Util/WeaponDamage.cs @@ -0,0 +1,13 @@ +using GTANetworkAPI; + +namespace ReallifeGamemode.Server.Util +{ + class WeaponDamage : Script + { + [ServerEvent(Event.PlayerWeaponSwitch)] + public void OnPlayerWeaponSwitch(Player player, WeaponHash oldWeapon, WeaponHash newWeapon) + { + NAPI.ClientEvent.TriggerClientEvent(player, "SERVER:WeaponModifier", player); + } + } +} From 501f7c65eaae9aa9b8be0c6ef3844d438824afbf Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Sun, 19 Apr 2020 20:20:38 +0200 Subject: [PATCH 09/30] Waffenschaden Implementieren Versuch 2 --- ReallifeGamemode.Client/index.ts | 2 ++ ReallifeGamemode.Client/util/WeaponDamage.ts | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ReallifeGamemode.Client/index.ts b/ReallifeGamemode.Client/index.ts index ce111e3f..09a6aec4 100644 --- a/ReallifeGamemode.Client/index.ts +++ b/ReallifeGamemode.Client/index.ts @@ -208,6 +208,8 @@ refuseCollector(); require('./Gui/policedepartment'); +require('./Util/weapondamage'); + interface VehicleData { EngineState: boolean; Locked: boolean; diff --git a/ReallifeGamemode.Client/util/WeaponDamage.ts b/ReallifeGamemode.Client/util/WeaponDamage.ts index dee90bea..aff52327 100644 --- a/ReallifeGamemode.Client/util/WeaponDamage.ts +++ b/ReallifeGamemode.Client/util/WeaponDamage.ts @@ -1,4 +1,4 @@ -export default function weapondamageUtil() { +export default function weapondamage() { mp.events.add('SERVER:WeaponModifier', (player) => { //mp.gui.chat.push("Modifier steht jetzt auf" + modifier); //mp.players.local.setWeaponDamageModifier(modifier); From 91a70ec95edb8673a1e6ef68fe5efb8b1db8ae59 Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Sun, 19 Apr 2020 20:27:27 +0200 Subject: [PATCH 10/30] Waffenschaden Implementieren Versuch 3 --- ReallifeGamemode.Client/index.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Client/index.ts b/ReallifeGamemode.Client/index.ts index 09a6aec4..13655480 100644 --- a/ReallifeGamemode.Client/index.ts +++ b/ReallifeGamemode.Client/index.ts @@ -206,9 +206,10 @@ taximeterInput(globalData); import refuseCollector from './Jobs/RefuseCollector'; refuseCollector(); -require('./Gui/policedepartment'); +import weapondamage from './util/weapondamage'; +weapondamage(); -require('./Util/weapondamage'); +require('./Gui/policedepartment'); interface VehicleData { EngineState: boolean; From 6b2e1445f74705af24df6c196f0a565f42f39e2d Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Sun, 19 Apr 2020 20:30:13 +0200 Subject: [PATCH 11/30] Update WeaponDamage.ts --- ReallifeGamemode.Client/util/{WeaponDamage.ts => weapondamage.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename ReallifeGamemode.Client/util/{WeaponDamage.ts => weapondamage.ts} (100%) diff --git a/ReallifeGamemode.Client/util/WeaponDamage.ts b/ReallifeGamemode.Client/util/weapondamage.ts similarity index 100% rename from ReallifeGamemode.Client/util/WeaponDamage.ts rename to ReallifeGamemode.Client/util/weapondamage.ts From 12cbca1fca50d9d0b632878a58a44ab642548813 Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Sun, 19 Apr 2020 20:35:21 +0200 Subject: [PATCH 12/30] Versuch 4 --- ReallifeGamemode.Client/index.ts | 6 +++--- ReallifeGamemode.Client/util/weapondamage.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ReallifeGamemode.Client/index.ts b/ReallifeGamemode.Client/index.ts index 13655480..ad9d1d4a 100644 --- a/ReallifeGamemode.Client/index.ts +++ b/ReallifeGamemode.Client/index.ts @@ -194,6 +194,9 @@ PilotRouteList(globalData); import gangwarHandle from './util/Gangwar'; gangwarHandle(globalData); +import weapondamageUtil from './util/weapondamage'; +weapondamageUtil(); + import clotheShopList from './Interaction/clothes/ClotheShop'; clotheShopList(globalData); @@ -206,9 +209,6 @@ taximeterInput(globalData); import refuseCollector from './Jobs/RefuseCollector'; refuseCollector(); -import weapondamage from './util/weapondamage'; -weapondamage(); - require('./Gui/policedepartment'); interface VehicleData { diff --git a/ReallifeGamemode.Client/util/weapondamage.ts b/ReallifeGamemode.Client/util/weapondamage.ts index aff52327..dee90bea 100644 --- a/ReallifeGamemode.Client/util/weapondamage.ts +++ b/ReallifeGamemode.Client/util/weapondamage.ts @@ -1,4 +1,4 @@ -export default function weapondamage() { +export default function weapondamageUtil() { mp.events.add('SERVER:WeaponModifier', (player) => { //mp.gui.chat.push("Modifier steht jetzt auf" + modifier); //mp.players.local.setWeaponDamageModifier(modifier); From 65a83ed9f0be83c74af665694c5d70092006d298 Mon Sep 17 00:00:00 2001 From: hydrant Date: Sun, 19 Apr 2020 21:32:07 +0200 Subject: [PATCH 13/30] fix player money --- ReallifeGamemode.Database/Entities/User.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Database/Entities/User.cs b/ReallifeGamemode.Database/Entities/User.cs index b20b3f2b..86813200 100644 --- a/ReallifeGamemode.Database/Entities/User.cs +++ b/ReallifeGamemode.Database/Entities/User.cs @@ -50,7 +50,7 @@ namespace ReallifeGamemode.Database.Entities set { _handMoney = value; - Player.TriggerEvent("SERVER:SET_HANDMONEY", value); + Player?.TriggerEvent("SERVER:SET_HANDMONEY", value); } } From 3f748c7520e287f831fbe145277181e9918f4f9d Mon Sep 17 00:00:00 2001 From: hydrant Date: Sun, 19 Apr 2020 21:49:49 +0200 Subject: [PATCH 14/30] vlt fix --- ReallifeGamemode.Database/Entities/User.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Database/Entities/User.cs b/ReallifeGamemode.Database/Entities/User.cs index 86813200..c0ecb0bd 100644 --- a/ReallifeGamemode.Database/Entities/User.cs +++ b/ReallifeGamemode.Database/Entities/User.cs @@ -116,7 +116,7 @@ namespace ReallifeGamemode.Database.Entities [NotMapped] public Player Player { - get => NAPI.Pools.GetAllPlayers().Where(c => c.Name.ToLower() == this.Name.ToLower()).FirstOrDefault(); + get => NAPI.Pools.GetAllPlayers()?.Where(c => c?.Name?.ToLower() == this?.Name?.ToLower()).FirstOrDefault(); } [NotMapped] From 51ffbe768649d00e6b4c1da04f0d08b13f526927 Mon Sep 17 00:00:00 2001 From: hydrant Date: Sun, 19 Apr 2020 22:09:08 +0200 Subject: [PATCH 15/30] pre malone --- ReallifeGamemode.Database/Entities/User.cs | 9 ++++++--- ReallifeGamemode.Server/Main.cs | 5 +++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ReallifeGamemode.Database/Entities/User.cs b/ReallifeGamemode.Database/Entities/User.cs index c0ecb0bd..054d124e 100644 --- a/ReallifeGamemode.Database/Entities/User.cs +++ b/ReallifeGamemode.Database/Entities/User.cs @@ -24,6 +24,9 @@ namespace ReallifeGamemode.Database.Entities [NotMapped] private int _handMoney; + public delegate void UserHandMoneyChangedEvent(User account); + public static event UserHandMoneyChangedEvent HandMoneyChanged; + [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; } @@ -50,7 +53,7 @@ namespace ReallifeGamemode.Database.Entities set { _handMoney = value; - Player?.TriggerEvent("SERVER:SET_HANDMONEY", value); + } } @@ -92,7 +95,7 @@ namespace ReallifeGamemode.Database.Entities set { this._wanteds = value; - Player.TriggerEvent("SERVER:SetWanteds", value); + HandMoneyChanged?.Invoke(this); } } @@ -116,7 +119,7 @@ namespace ReallifeGamemode.Database.Entities [NotMapped] public Player Player { - get => NAPI.Pools.GetAllPlayers()?.Where(c => c?.Name?.ToLower() == this?.Name?.ToLower()).FirstOrDefault(); + get => NAPI.Pools.GetAllPlayers().Where(c => c.Name.ToLower() == this.Name.ToLower()).FirstOrDefault(); } [NotMapped] diff --git a/ReallifeGamemode.Server/Main.cs b/ReallifeGamemode.Server/Main.cs index c81678c9..c80f4ce0 100644 --- a/ReallifeGamemode.Server/Main.cs +++ b/ReallifeGamemode.Server/Main.cs @@ -130,6 +130,11 @@ namespace ReallifeGamemode.Server PlayerService.GetPlayerByNameOrId(user).TriggerEvent("updateMoney", account.Balance); } }; + + User.HandMoneyChanged += (user) => + { + user.Player.TriggerEvent("SERVER:SetWanteds", user.Handmoney); + } } [RemoteEvent("CLIENT:Event")] From a6c2efc1b040e4040a5d7f9a44153581b097e080 Mon Sep 17 00:00:00 2001 From: hydrant Date: Sun, 19 Apr 2020 22:10:06 +0200 Subject: [PATCH 16/30] =?UTF-8?q?k=C3=B6nig=20ludwig=20der=20dritte?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Server/Main.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Main.cs b/ReallifeGamemode.Server/Main.cs index c80f4ce0..989450b7 100644 --- a/ReallifeGamemode.Server/Main.cs +++ b/ReallifeGamemode.Server/Main.cs @@ -134,7 +134,7 @@ namespace ReallifeGamemode.Server User.HandMoneyChanged += (user) => { user.Player.TriggerEvent("SERVER:SetWanteds", user.Handmoney); - } + }; } [RemoteEvent("CLIENT:Event")] From 01ec5282613a4876306cb54f9bbaed82ce6ba348 Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Sun, 19 Apr 2020 22:12:48 +0200 Subject: [PATCH 17/30] =?UTF-8?q?=C3=84nderung=20WaffenSchaden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Client/util/weapondamage.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ReallifeGamemode.Client/util/weapondamage.ts b/ReallifeGamemode.Client/util/weapondamage.ts index dee90bea..6866c622 100644 --- a/ReallifeGamemode.Client/util/weapondamage.ts +++ b/ReallifeGamemode.Client/util/weapondamage.ts @@ -4,10 +4,12 @@ //mp.players.local.setWeaponDamageModifier(modifier); let modifier = 1; let meelemodifier = 1; - switch (this.currentWeapon) { + + switch (player.weapon) { case 0x1B06D571: //Pistol modifier = 0.4; meelemodifier = 1; + mp.gui.chat.push("PistolModifier: " + modifier); break; case 0xBFE256D4: //Pistol_MK2 modifier = 0.4; @@ -40,6 +42,7 @@ case 0xA2719263: //Meele Umarmed Fist meelemodifier = 0.1; modifier = 1; + mp.gui.chat.push("FistModifier: " + meelemodifier); break; case 0x958A4A8F: //Meele Baseball Bat meelemodifier = 0.15; @@ -52,6 +55,7 @@ case 0xD8DF3C3C: //Meele Knuckle meelemodifier = 0.1; modifier = 1; + mp.gui.chat.push("KnuckleModifier: " + meelemodifier); break; case 0x678B81B1: //Meele Nightstick meelemodifier = 0.1; @@ -64,6 +68,7 @@ } mp.game.invoke("0xCE07B9F7817AADA3", player, modifier); mp.game.invoke("0x4A3DC7ECCC321032", player, meelemodifier); + mp.gui.chat.push("Modifier: " + modifier, "MeeleModifier: "+meelemodifier); }); /*mp.events.add('playerWeaponShot', (targetPosition, targetEntity) => { for (var x in this.weaponAmmo) { From b312cefeace8bae8f5536a1728a950dda53c0031 Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Sun, 19 Apr 2020 22:16:12 +0200 Subject: [PATCH 18/30] =?UTF-8?q?Fehler=20=C3=BCbersehen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReallifeGamemode.Client/util/weapondamage.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Client/util/weapondamage.ts b/ReallifeGamemode.Client/util/weapondamage.ts index 6866c622..ef4f20c9 100644 --- a/ReallifeGamemode.Client/util/weapondamage.ts +++ b/ReallifeGamemode.Client/util/weapondamage.ts @@ -68,7 +68,7 @@ } mp.game.invoke("0xCE07B9F7817AADA3", player, modifier); mp.game.invoke("0x4A3DC7ECCC321032", player, meelemodifier); - mp.gui.chat.push("Modifier: " + modifier, "MeeleModifier: "+meelemodifier); + mp.gui.chat.push("Modifier: " + modifier + "MeeleModifier: " +meelemodifier); }); /*mp.events.add('playerWeaponShot', (targetPosition, targetEntity) => { for (var x in this.weaponAmmo) { From d54a85bd2af82366ebc0f406c27270ec0bd9f137 Mon Sep 17 00:00:00 2001 From: hydrant Date: Sun, 19 Apr 2020 22:26:02 +0200 Subject: [PATCH 19/30] fix handmoney --- ReallifeGamemode.Server/Main.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Main.cs b/ReallifeGamemode.Server/Main.cs index 989450b7..e103bc54 100644 --- a/ReallifeGamemode.Server/Main.cs +++ b/ReallifeGamemode.Server/Main.cs @@ -133,7 +133,7 @@ namespace ReallifeGamemode.Server User.HandMoneyChanged += (user) => { - user.Player.TriggerEvent("SERVER:SetWanteds", user.Handmoney); + user.Player.TriggerEvent("SERVER:SET_HANDMONEY", user.Handmoney); }; } From 1514d3ce925df10178b4925a8dfa9e5db98f7edf Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Sun, 19 Apr 2020 22:44:22 +0200 Subject: [PATCH 20/30] Waffenschaden Versuch 2 --- ReallifeGamemode.Client/util/weapondamage.ts | 15 +++++++++++++-- ReallifeGamemode.Server/Commands/AdminCommands.cs | 4 ++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/ReallifeGamemode.Client/util/weapondamage.ts b/ReallifeGamemode.Client/util/weapondamage.ts index ef4f20c9..2968ed23 100644 --- a/ReallifeGamemode.Client/util/weapondamage.ts +++ b/ReallifeGamemode.Client/util/weapondamage.ts @@ -2,8 +2,8 @@ mp.events.add('SERVER:WeaponModifier', (player) => { //mp.gui.chat.push("Modifier steht jetzt auf" + modifier); //mp.players.local.setWeaponDamageModifier(modifier); - let modifier = 1; - let meelemodifier = 1; + modifier = 1; + meelemodifier = 1; switch (player.weapon) { case 0x1B06D571: //Pistol @@ -39,6 +39,10 @@ modifier = 0.2; meelemodifier = 1; break; + case 0x05FC3C11: //Sniperrifle + modifier = 0.5; + meelemodifier = 1; + break; case 0xA2719263: //Meele Umarmed Fist meelemodifier = 0.1; modifier = 1; @@ -70,6 +74,13 @@ mp.game.invoke("0x4A3DC7ECCC321032", player, meelemodifier); mp.gui.chat.push("Modifier: " + modifier + "MeeleModifier: " +meelemodifier); }); + mp.events.add('SERVER:WeaponModifier2', (player, modifier, meelemodifier) => { + //mp.gui.chat.push("Modifier steht jetzt auf" + modifier); + //mp.players.local.setWeaponDamageModifier(modifier); + mp.game.invoke("0xCE07B9F7817AADA3", player, modifier); + mp.game.invoke("0x4A3DC7ECCC321032", player, meelemodifier); + mp.gui.chat.push("Modifier: " + modifier + "MeeleModifier: " + meelemodifier); + }); /*mp.events.add('playerWeaponShot', (targetPosition, targetEntity) => { for (var x in this.weaponAmmo) { if (this.weaponAmmo[x].id != this.currentWeapon) { diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index fec4cd0a..839aec77 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -1606,13 +1606,13 @@ namespace ReallifeGamemode.Server.Commands public void CmdWeaponModifier(Player player, float modifier) { player.SendChatMessage("Modifier steht auf" + modifier); - player.TriggerEvent("WeaponModifier", player, modifier); + player.TriggerEvent("SERVER:WeaponModifier2", player, modifier, 1); } [Command("wepmmod", "~m~Benutzung: ~s~/wepmmod [Variable]")] public void CmdWeaponMeeleModifier(Player player, float modifier) { player.SendChatMessage("MeeleModifier steht auf" + modifier); - player.TriggerEvent("WeaponMeeleModifier", player, modifier); + player.TriggerEvent("SERVER:WeaponModifier2", player, 1, modifier); } [Command("gotocp", "~m~Benutzung: ~s~/gotocp")] public void CmdAdminGotocp(Player admin) From 92305ff74cc93142a86357919fbdcafd58e361f7 Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Sun, 19 Apr 2020 22:44:59 +0200 Subject: [PATCH 21/30] Waffenschaden Versuch 3 --- ReallifeGamemode.Client/util/weapondamage.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Client/util/weapondamage.ts b/ReallifeGamemode.Client/util/weapondamage.ts index 2968ed23..3eeddd5d 100644 --- a/ReallifeGamemode.Client/util/weapondamage.ts +++ b/ReallifeGamemode.Client/util/weapondamage.ts @@ -2,8 +2,8 @@ mp.events.add('SERVER:WeaponModifier', (player) => { //mp.gui.chat.push("Modifier steht jetzt auf" + modifier); //mp.players.local.setWeaponDamageModifier(modifier); - modifier = 1; - meelemodifier = 1; + let modifier = 1; + let meelemodifier = 1; switch (player.weapon) { case 0x1B06D571: //Pistol From d9d6d7c19e7696c2f8c93b536da747ba1ad7b51b Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Sun, 19 Apr 2020 22:47:03 +0200 Subject: [PATCH 22/30] Revert "Waffenschaden Versuch 3" This reverts commit 6036645e02c8aed9d6e4390026e461c77e516221. --- ReallifeGamemode.Client/util/weapondamage.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Client/util/weapondamage.ts b/ReallifeGamemode.Client/util/weapondamage.ts index 3eeddd5d..2968ed23 100644 --- a/ReallifeGamemode.Client/util/weapondamage.ts +++ b/ReallifeGamemode.Client/util/weapondamage.ts @@ -2,8 +2,8 @@ mp.events.add('SERVER:WeaponModifier', (player) => { //mp.gui.chat.push("Modifier steht jetzt auf" + modifier); //mp.players.local.setWeaponDamageModifier(modifier); - let modifier = 1; - let meelemodifier = 1; + modifier = 1; + meelemodifier = 1; switch (player.weapon) { case 0x1B06D571: //Pistol From 15e4cec8eee59681e3fa1fe657fcc28c03890f33 Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Sun, 19 Apr 2020 22:48:32 +0200 Subject: [PATCH 23/30] Test --- ReallifeGamemode.Client/util/weapondamage.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ReallifeGamemode.Client/util/weapondamage.ts b/ReallifeGamemode.Client/util/weapondamage.ts index 2968ed23..3eeddd5d 100644 --- a/ReallifeGamemode.Client/util/weapondamage.ts +++ b/ReallifeGamemode.Client/util/weapondamage.ts @@ -2,8 +2,8 @@ mp.events.add('SERVER:WeaponModifier', (player) => { //mp.gui.chat.push("Modifier steht jetzt auf" + modifier); //mp.players.local.setWeaponDamageModifier(modifier); - modifier = 1; - meelemodifier = 1; + let modifier = 1; + let meelemodifier = 1; switch (player.weapon) { case 0x1B06D571: //Pistol From a2fb8c531e5fa5d7b277da1f17b21fa2e8e9e523 Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Tue, 21 Apr 2020 13:27:59 +0200 Subject: [PATCH 24/30] UserRollerSystem --- ReallifeGamemode.Database/Entities/User.cs | 2 ++ ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs | 8 ++++++++ ReallifeGamemode.Server/Finance/Economy.cs | 1 + 3 files changed, 11 insertions(+) diff --git a/ReallifeGamemode.Database/Entities/User.cs b/ReallifeGamemode.Database/Entities/User.cs index 054d124e..01f206ba 100644 --- a/ReallifeGamemode.Database/Entities/User.cs +++ b/ReallifeGamemode.Database/Entities/User.cs @@ -105,6 +105,8 @@ namespace ReallifeGamemode.Database.Entities public int PaydayTimer { get; set; } = 60; + public int PlayedMinutes { get; set; } = 1; + public bool DriverLicenseVehicle { get; set; } = false; public bool FlyingLicensePlane { get; set; } = false; diff --git a/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs b/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs index d8e78c7d..f0c98f87 100644 --- a/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs +++ b/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs @@ -39,6 +39,14 @@ namespace ReallifeGamemode.Server.Events player.SendNotification("~r~Du darfst dieses Fahrzeug nicht benutzen!", true); return; } + else if (player.GetUser().FactionId == 0) + { + if(player.GetUser().PlayedMinutes > 1800) + { + player.SendNotification("~r~Du hast mehr als 30 Spielstunde, kaufe dir ein eigenes Fahrzeug!", true); + } + } + } if (vehicle.GetServerVehicle() is SchoolVehicle sVeh) { diff --git a/ReallifeGamemode.Server/Finance/Economy.cs b/ReallifeGamemode.Server/Finance/Economy.cs index 676c21e8..5b8f2b9f 100644 --- a/ReallifeGamemode.Server/Finance/Economy.cs +++ b/ReallifeGamemode.Server/Finance/Economy.cs @@ -166,6 +166,7 @@ namespace ReallifeGamemode.Server.Finance User user = player.GetUser(dbContext); if (player.IsLoggedIn()) { + user.PlayedMinutes += 1; if (user.PaydayTimer <= 0) { Economy.SetPaycheck(player); From e98150e4c46834939f7fb118e1fa20b4897cb822 Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Tue, 21 Apr 2020 14:20:53 +0200 Subject: [PATCH 25/30] Test NoobVehicles --- .../Entities/NoobVehicle.cs | 7 ++++++ .../Models/DatabaseContext.cs | 3 +++ .../Commands/AdminCommands.cs | 12 ++++++++- .../Events/EnterVehicleAttempt.cs | 16 ++++++------ .../Extensions/ServerVehicleExtensions.cs | 8 ++++++ .../Managers/SaveManager.cs | 25 +++++++++++++++++++ 6 files changed, 63 insertions(+), 8 deletions(-) create mode 100644 ReallifeGamemode.Database/Entities/NoobVehicle.cs diff --git a/ReallifeGamemode.Database/Entities/NoobVehicle.cs b/ReallifeGamemode.Database/Entities/NoobVehicle.cs new file mode 100644 index 00000000..70735419 --- /dev/null +++ b/ReallifeGamemode.Database/Entities/NoobVehicle.cs @@ -0,0 +1,7 @@ +namespace ReallifeGamemode.Database.Entities +{ + public partial class NoobVehicle : ServerVehicle + { + //public int SchoolId { get; set; } + } +} diff --git a/ReallifeGamemode.Database/Models/DatabaseContext.cs b/ReallifeGamemode.Database/Models/DatabaseContext.cs index 16b07774..0bf0ee48 100644 --- a/ReallifeGamemode.Database/Models/DatabaseContext.cs +++ b/ReallifeGamemode.Database/Models/DatabaseContext.cs @@ -136,6 +136,9 @@ namespace ReallifeGamemode.Database.Models //Driving/Bike/Flight School public DbSet SchoolVehicles { get; set; } + //Noob Vehicles + public DbSet NoobVehicles { get; set; } + //Gangwar public DbSet Turfs { get; set; } diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index 839aec77..150b04a7 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -1985,7 +1985,7 @@ namespace ReallifeGamemode.Server.Commands } } - [Command("save", "~m~Benutzung: ~s~/save [Typ = ~g~Blip~s~, ~g~Goto (X)~s~, ~r~Marker~s~, ~r~Ped~s~, ~r~Pickup~s~, ~r~TextLabel~s~, ~g~Vehicle~s~, ~g~FVehicle~s~, ~g~SVehicle (X)~s~, ~g~JVehicle (X)~s~, ~g~Location~s~] (Weitere Angaben) = (X)", GreedyArg = true)] + [Command("save", "~m~Benutzung: ~s~/save [Typ = ~g~Blip~s~, ~g~Goto (X)~s~, ~r~Marker~s~, ~r~Ped~s~, ~r~Pickup~s~, ~r~TextLabel~s~, ~g~Vehicle~s~, ~g~FVehicle~s~, ~g~SVehicle (X)~s~, ~g~JVehicle (X)~s~, ~g~ShoolVehicle (X)~s~, ~g~NoobVehicle~s~, ~g~Location~s~] (Weitere Angaben) = (X)", GreedyArg = true)] public void CmdAdminSave(Player player, string typ, string option1 = null, string option2 = null) { if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) @@ -2164,6 +2164,16 @@ namespace ReallifeGamemode.Server.Commands player.SetIntoVehicle(vehicle, 0); } break; + case "noobvehicle": + if (player.IsInVehicle) + { + Vehicle vehicle = player.Vehicle; + vehicle = SaveManager.SaveNoobVehicleData(vehicle, (VehicleHash)vehicle.Model, vehicle.Position, vehicle.Heading, vehicle.NumberPlate, + vehicle.PrimaryColor, vehicle.SecondaryColor, vehicle.Locked, vehicle.EngineStatus); + player.SendNotification("Noobfahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true); + player.SetIntoVehicle(vehicle, 0); + } + break; case "location": if (option1 == null || option1.Length < 0) diff --git a/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs b/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs index f0c98f87..90929ebf 100644 --- a/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs +++ b/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs @@ -39,13 +39,6 @@ namespace ReallifeGamemode.Server.Events player.SendNotification("~r~Du darfst dieses Fahrzeug nicht benutzen!", true); return; } - else if (player.GetUser().FactionId == 0) - { - if(player.GetUser().PlayedMinutes > 1800) - { - player.SendNotification("~r~Du hast mehr als 30 Spielstunde, kaufe dir ein eigenes Fahrzeug!", true); - } - } } if (vehicle.GetServerVehicle() is SchoolVehicle sVeh) @@ -63,6 +56,15 @@ namespace ReallifeGamemode.Server.Events return; } } + if (vehicle.GetServerVehicle() is NoobVehicle nVeh) + { + if (player.GetUser().PlayedMinutes > 1800) + { + player.StopAnimation(); + player.SendNotification("~r~Du hast schon über 30 Spielstunden!", true); + return; + } + } } } } diff --git a/ReallifeGamemode.Server/Extensions/ServerVehicleExtensions.cs b/ReallifeGamemode.Server/Extensions/ServerVehicleExtensions.cs index 666f7402..7d8568aa 100644 --- a/ReallifeGamemode.Server/Extensions/ServerVehicleExtensions.cs +++ b/ReallifeGamemode.Server/Extensions/ServerVehicleExtensions.cs @@ -66,6 +66,14 @@ namespace ReallifeGamemode.Server.Extensions { numberplate = $"J{jV.JobId} " + numberplate; } + if (veh is SchoolVehicle) + { + numberplate = "FS" + numberplate; + } + if (veh is NoobVehicle) + { + numberplate = "NV" + numberplate; + } NAPI.Vehicle.SetVehicleNumberPlate(newVeh, numberplate); veh.NumberPlate = numberplate; diff --git a/ReallifeGamemode.Server/Managers/SaveManager.cs b/ReallifeGamemode.Server/Managers/SaveManager.cs index db6f8216..3059e607 100644 --- a/ReallifeGamemode.Server/Managers/SaveManager.cs +++ b/ReallifeGamemode.Server/Managers/SaveManager.cs @@ -131,6 +131,31 @@ namespace ReallifeGamemode.Server.Managers } } + public static Vehicle SaveNoobVehicleData(Vehicle veh, VehicleHash vehicleModel, Vector3 vehiclePosition, float vehicleHeading, + string vehicleNumberPlate, int vehiclePrimaryColor, int vehicleSecondaryColor, bool vehicleLocked, bool vehicleEngine) + { + using (var saveData = new DatabaseContext()) + { + var dataSet = new NoobVehicle + { + Model = vehicleModel, + PositionX = vehiclePosition.X, + PositionY = vehiclePosition.Y, + PositionZ = vehiclePosition.Z, + Heading = vehicleHeading, + NumberPlate = vehicleNumberPlate, + PrimaryColor = vehiclePrimaryColor, + SecondaryColor = vehicleSecondaryColor, + Locked = vehicleLocked, + Active = true + }; + saveData.NoobVehicles.Add(dataSet); + saveData.SaveChanges(); + + return dataSet.Spawn(veh); + } + } + public static Vehicle SaveFactionVehicleData(Vehicle veh, VehicleHash vehicleModel, Vector3 vehiclePosition, float vehicleHeading, From f5a40c67b5277bd6c7a651dcabd515744813fc29 Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Tue, 21 Apr 2020 14:59:49 +0200 Subject: [PATCH 26/30] AdminDuty Try --- .../Commands/AdminCommands.cs | 35 ++++++++++++++----- .../Events/EnterVehicleAttempt.cs | 2 +- .../Extensions/ClientExtension.cs | 5 +++ 3 files changed, 32 insertions(+), 10 deletions(-) diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index 150b04a7..5fe7f63e 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -147,21 +147,36 @@ namespace ReallifeGamemode.Server.Commands ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position"); break; case AdminLevel.SUPPORTER: - ChatService.SendMessage(player, "~b~ " + "/tsupport, /showtickets, /rc, /rc quit, /o, /pm, /dimension, /to, /gh, /clearchat, /skick"); + ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position, /tsupport, /showtickets, /rc, /rc quit, /o, /pm, /dimension, /to, /gh, /clearchat, /skick"); break; case AdminLevel.ADMIN: + ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position, /tsupport, /showtickets, /rc, /rc quit, /o, /pm, /dimension, /to, /gh, /clearchat, /skick"); ChatService.SendMessage(player, "~b~ " + "/a, /countdown, /freeze, /unfreeze, /mark, /gotmark, /gotox, /up, /setdimension, /spec, /warn, /ip, /kick, /ban /unban, /slap, /takeweapon, /tov, /ghv, /factionlist, /businesslist, /joblist"); break; case AdminLevel.ADMIN2: + ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position, /tsupport, /showtickets, /rc, /rc quit, /o, /pm, /dimension, /to, /gh, /clearchat, /skick"); + ChatService.SendMessage(player, "~b~ " + "/a, /countdown, /freeze, /unfreeze, /mark, /gotmark, /gotox, /up, /setdimension, /spec, /warn, /ip, /kick, /ban /unban, /slap, /takeweapon, /tov, /ghv, /factionlist, /businesslist, /joblist"); ChatService.SendMessage(player, "~b~ " + "/sethp, /setarmor, /arevive, /aunjail, /aclear, /clothes, /props"); break; case AdminLevel.ADMIN3: + ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position, /tsupport, /showtickets, /rc, /rc quit, /o, /pm, /dimension, /to, /gh, /clearchat, /skick"); + ChatService.SendMessage(player, "~b~ " + "/a, /countdown, /freeze, /unfreeze, /mark, /gotmark, /gotox, /up, /setdimension, /spec, /warn, /ip, /kick, /ban /unban, /slap, /takeweapon, /tov, /ghv, /factionlist, /businesslist, /joblist"); + ChatService.SendMessage(player, "~b~ " + "/sethp, /setarmor, /arevive, /aunjail, /aclear, /clothes, /props"); ChatService.SendMessage(player, "~b~ " + "/adice, /settime, /setweather, /rsetarmor, /rgiveweapon, /giveweapon, /veh, /fv, /vfix, /vdestroy, /vlivery, /vcolor, /vehsmoke, /aneon, /mod, /showtuningmenu, /rvdestroy, /vsethp"); break; case AdminLevel.HEADADMIN: + ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position, /tsupport, /showtickets, /rc, /rc quit, /o, /pm, /dimension, /to, /gh, /clearchat, /skick"); + ChatService.SendMessage(player, "~b~ " + "/a, /countdown, /freeze, /unfreeze, /mark, /gotmark, /gotox, /up, /setdimension, /spec, /warn, /ip, /kick, /ban /unban, /slap, /takeweapon, /tov, /ghv, /factionlist, /businesslist, /joblist"); + ChatService.SendMessage(player, "~b~ " + "/sethp, /setarmor, /arevive, /aunjail, /aclear, /clothes, /props"); + ChatService.SendMessage(player, "~b~ " + "/adice, /settime, /setweather, /rsetarmor, /rgiveweapon, /giveweapon, /veh, /fv, /vfix, /vdestroy, /vlivery, /vcolor, /vehsmoke, /aneon, /mod, /showtuningmenu, /rvdestroy, /vsethp"); ChatService.SendMessage(player, "~b~ " + "/aspeed, /set, /setmoney, /givemoney, /sethandmoney, /givehandmoney, /paydaydrop, /setwage, /freekh, /ainvite, /makeleader, /managefactionranks, /setweaponrack, /rmweaponrack, /setweaponrank, /giveitem, /inventory, /save, /remove, /house, /setbusinessbankbalance, /reloaddors, /interior, /editmode, /setbliptemplate, /ipl, /load, /quicksavemode, /createturf, /setturf, /cancleturf, /reloadturfs, /deleteturfs, /setturfpoint"); break; case AdminLevel.PROJEKTLEITUNG: + ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position, /tsupport, /showtickets, /rc, /rc quit, /o, /pm, /dimension, /to, /gh, /clearchat, /skick"); + ChatService.SendMessage(player, "~b~ " + "/a, /countdown, /freeze, /unfreeze, /mark, /gotmark, /gotox, /up, /setdimension, /spec, /warn, /ip, /kick, /ban /unban, /slap, /takeweapon, /tov, /ghv, /factionlist, /businesslist, /joblist"); + ChatService.SendMessage(player, "~b~ " + "/sethp, /setarmor, /arevive, /aunjail, /aclear, /clothes, /props"); + ChatService.SendMessage(player, "~b~ " + "/adice, /settime, /setweather, /rsetarmor, /rgiveweapon, /giveweapon, /veh, /fv, /vfix, /vdestroy, /vlivery, /vcolor, /vehsmoke, /aneon, /mod, /showtuningmenu, /rvdestroy, /vsethp"); + ChatService.SendMessage(player, "~b~ " + "/aspeed, /set, /setmoney, /givemoney, /sethandmoney, /givehandmoney, /paydaydrop, /setwage, /freekh, /ainvite, /makeleader, /managefactionranks, /setweaponrack, /rmweaponrack, /setweaponrank, /giveitem, /inventory, /save, /remove, /house, /setbusinessbankbalance, /reloaddors, /interior, /editmode, /setbliptemplate, /ipl, /load, /quicksavemode, /createturf, /setturf, /cancleturf, /reloadturfs, /deleteturfs, /setturfpoint"); ChatService.SendMessage(player, "~b~ " + "/makeadmin, /whitelist, /blind"); break; } @@ -230,7 +245,10 @@ namespace ReallifeGamemode.Server.Commands ChatService.NotAuthorized(player); return; } - + if(!player.IsAdminDuty()) + { + ChatService.SendMessage(player, "~r~ Du bist nicht im Admin-Duty-Modus!"); + } if (!GlobalHelper.tsupAdmins.Contains(player)) { GlobalHelper.tsupAdmins.Add(player); @@ -265,7 +283,6 @@ namespace ReallifeGamemode.Server.Commands } } } - [Command("aduty", "~m~Benutzung: ~s~/aduty")] public void CmdAduty(Player player) { @@ -275,18 +292,18 @@ namespace ReallifeGamemode.Server.Commands return; } - if (!GlobalHelper.DutyAdmins.Contains(player)) - { - GlobalHelper.DutyAdmins.Add(player); + if (player.GetData("Adminduty") == false) + { + + player.SetData("Adminduty", true); ChatService.Broadcast("~g~[SUPPORT] " + player.Name + " hat sich zum Support angemeldet"); player.TriggerEvent("toggleADutyMode", true); - } else { - GlobalHelper.DutyAdmins.Remove(player); + player.SetData("Adminduty", false); ChatService.Broadcast("!{#ee4d2e}[SUPPORT] " + player.Name + " hat sich vom Support abgemeldet"); player.TriggerEvent("toggleADutyMode", false); @@ -1985,7 +2002,7 @@ namespace ReallifeGamemode.Server.Commands } } - [Command("save", "~m~Benutzung: ~s~/save [Typ = ~g~Blip~s~, ~g~Goto (X)~s~, ~r~Marker~s~, ~r~Ped~s~, ~r~Pickup~s~, ~r~TextLabel~s~, ~g~Vehicle~s~, ~g~FVehicle~s~, ~g~SVehicle (X)~s~, ~g~JVehicle (X)~s~, ~g~ShoolVehicle (X)~s~, ~g~NoobVehicle~s~, ~g~Location~s~] (Weitere Angaben) = (X)", GreedyArg = true)] + [Command("save", "~m~Benutzung: ~s~/save [Typ = ~g~Blip~s~, ~g~Goto (X)~s~, ~r~Marker~s~, ~r~Ped~s~, ~r~Pickup~s~, ~r~TextLabel~s~, ~g~Vehicle~s~, ~g~FVehicle~s~, ~g~SVehicle (X)~s~, ~g~JVehicle (X)~s~, ~g~SchoolVehicle (X)~s~, ~g~NoobVehicle~s~, ~g~Location~s~] (Weitere Angaben) = (X)", GreedyArg = true)] public void CmdAdminSave(Player player, string typ, string option1 = null, string option2 = null) { if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) diff --git a/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs b/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs index 90929ebf..6a191b8e 100644 --- a/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs +++ b/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs @@ -58,7 +58,7 @@ namespace ReallifeGamemode.Server.Events } if (vehicle.GetServerVehicle() is NoobVehicle nVeh) { - if (player.GetUser().PlayedMinutes > 1800) + if (player.GetUser().PlayedMinutes > 1800 && !player.IsAdminDuty()) { player.StopAnimation(); player.SendNotification("~r~Du hast schon über 30 Spielstunden!", true); diff --git a/ReallifeGamemode.Server/Extensions/ClientExtension.cs b/ReallifeGamemode.Server/Extensions/ClientExtension.cs index c723d4f4..a2eb36c0 100644 --- a/ReallifeGamemode.Server/Extensions/ClientExtension.cs +++ b/ReallifeGamemode.Server/Extensions/ClientExtension.cs @@ -70,6 +70,11 @@ namespace ReallifeGamemode.Server.Extensions var user = player.GetUser(); return user.GetData("duty", false); } + public static bool IsAdminDuty(this Player player) + { + var user = player.GetUser(); + return user.GetData("Adminduty", false); + } public static Vector3 GetPositionFromPlayer(Player player, float distance, int offset = 0) { var pos = player.Position; From 034bc51a10287efc28d1590d85fa701c03e5b10a Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Tue, 21 Apr 2020 15:17:34 +0200 Subject: [PATCH 27/30] Refresh ADutySystem --- ReallifeGamemode.Server/Commands/AdminCommands.cs | 1 + .../Events/EnterVehicleAttempt.cs | 15 +++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index 5fe7f63e..ca625ad6 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -248,6 +248,7 @@ namespace ReallifeGamemode.Server.Commands if(!player.IsAdminDuty()) { ChatService.SendMessage(player, "~r~ Du bist nicht im Admin-Duty-Modus!"); + return; } if (!GlobalHelper.tsupAdmins.Contains(player)) { diff --git a/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs b/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs index 6a191b8e..eeeba2b5 100644 --- a/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs +++ b/ReallifeGamemode.Server/Events/EnterVehicleAttempt.cs @@ -58,11 +58,18 @@ namespace ReallifeGamemode.Server.Events } if (vehicle.GetServerVehicle() is NoobVehicle nVeh) { - if (player.GetUser().PlayedMinutes > 1800 && !player.IsAdminDuty()) + if (!player.IsAdminDuty()) { - player.StopAnimation(); - player.SendNotification("~r~Du hast schon über 30 Spielstunden!", true); - return; + if (player.GetUser().PlayedMinutes > 1800) + { + player.StopAnimation(); + player.SendNotification("~r~Du hast schon über 30 Spielstunden!", true); + return; + } + } + else if (player.IsAdminDuty()) + { + player.SendNotification("~g~Freie Fahrt!", true); } } } From b488eb3fedad5908d8e9cffb1125423d3dad8042 Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Tue, 21 Apr 2020 15:30:31 +0200 Subject: [PATCH 28/30] Try AdminDuty2 --- ReallifeGamemode.Server/Commands/AdminCommands.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/ReallifeGamemode.Server/Commands/AdminCommands.cs b/ReallifeGamemode.Server/Commands/AdminCommands.cs index ca625ad6..91e443a2 100644 --- a/ReallifeGamemode.Server/Commands/AdminCommands.cs +++ b/ReallifeGamemode.Server/Commands/AdminCommands.cs @@ -248,16 +248,20 @@ namespace ReallifeGamemode.Server.Commands if(!player.IsAdminDuty()) { ChatService.SendMessage(player, "~r~ Du bist nicht im Admin-Duty-Modus!"); + ChatService.SendMessage(player, "1"+player.GetData("Adminduty")); + return; } if (!GlobalHelper.tsupAdmins.Contains(player)) { + ChatService.SendMessage(player, "2"+player.GetData("Adminduty")); GlobalHelper.tsupAdmins.Add(player); player.SetSharedData("blipColor", 30); ChatService.SendMessage(player, "~g~ ** " + "Du befindest dich im T-Support"); } else { + ChatService.SendMessage(player, "3"+player.GetData("Adminduty")); GlobalHelper.tsupAdmins.Remove(player); ChatService.SendMessage(player, "!{#ee4d2e}** " + "Du befindest dich nicht mehr im T-Support"); @@ -293,9 +297,8 @@ namespace ReallifeGamemode.Server.Commands return; } - if (player.GetData("Adminduty") == false) - { - + if (player.GetData("Adminduty") == false) + { player.SetData("Adminduty", true); ChatService.Broadcast("~g~[SUPPORT] " + player.Name + " hat sich zum Support angemeldet"); From 8c2415217a44f2255de82e0cb2eea7f3da93d894 Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Tue, 21 Apr 2020 15:38:40 +0200 Subject: [PATCH 29/30] Try AdminDuty3 --- ReallifeGamemode.Server/Extensions/ClientExtension.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReallifeGamemode.Server/Extensions/ClientExtension.cs b/ReallifeGamemode.Server/Extensions/ClientExtension.cs index a2eb36c0..1fcebb91 100644 --- a/ReallifeGamemode.Server/Extensions/ClientExtension.cs +++ b/ReallifeGamemode.Server/Extensions/ClientExtension.cs @@ -73,7 +73,7 @@ namespace ReallifeGamemode.Server.Extensions public static bool IsAdminDuty(this Player player) { var user = player.GetUser(); - return user.GetData("Adminduty", false); + return user.GetData("duty"); } public static Vector3 GetPositionFromPlayer(Player player, float distance, int offset = 0) { From ac085ff27cfa9c2b04973ada78729025e2ccf0bf Mon Sep 17 00:00:00 2001 From: Mac_Slash Date: Tue, 21 Apr 2020 15:42:26 +0200 Subject: [PATCH 30/30] Try AdminDuty 4 --- ReallifeGamemode.Server/Extensions/ClientExtension.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ReallifeGamemode.Server/Extensions/ClientExtension.cs b/ReallifeGamemode.Server/Extensions/ClientExtension.cs index 1fcebb91..9f3a5927 100644 --- a/ReallifeGamemode.Server/Extensions/ClientExtension.cs +++ b/ReallifeGamemode.Server/Extensions/ClientExtension.cs @@ -72,8 +72,7 @@ namespace ReallifeGamemode.Server.Extensions } public static bool IsAdminDuty(this Player player) { - var user = player.GetUser(); - return user.GetData("duty"); + return player.HasData("Adminduty") ? player.GetData("Adminduty") : false; } public static Vector3 GetPositionFromPlayer(Player player, float distance, int offset = 0) {