Merge branch 'develop' of ssh://development.life-of-german.org:451/log-gtav/reallife-gamemode into develop
This commit is contained in:
134
ReallifeGamemode.Client/Jobs/FarmerFieldSelect.ts
Normal file
134
ReallifeGamemode.Client/Jobs/FarmerFieldSelect.ts
Normal file
@@ -0,0 +1,134 @@
|
||||
import * as NativeUI from '../libs/NativeUI';
|
||||
|
||||
var fieldSelectColShape = mp.colshapes.newCircle(2415.229, 4993.037, 46.230038);
|
||||
const Menu = NativeUI.Menu;
|
||||
var fieldMenu: NativeUI.Menu;
|
||||
const Point = NativeUI.Point;
|
||||
const UIMenuListItem = NativeUI.UIMenuListItem;
|
||||
const ItemsCollection = NativeUI.ItemsCollection;
|
||||
const UIMenuItem = NativeUI.UIMenuItem;
|
||||
const Color = NativeUI.Color;
|
||||
|
||||
let sendItem = new UIMenuItem("Starten", "Route starten");
|
||||
sendItem.BackColor = new Color(13, 71, 161);
|
||||
sendItem.HighlightedBackColor = new Color(25, 118, 210);
|
||||
|
||||
let cancelItem = new UIMenuItem("Abbrechen", "");
|
||||
cancelItem.BackColor = new Color(213, 0, 0);
|
||||
cancelItem.HighlightedBackColor = new Color(229, 57, 53);
|
||||
|
||||
let screenRes = mp.game.graphics.getScreenResolution(0, 0);
|
||||
var checkpoint = new mp.Vector3(2416.3723, 4993.94, 45);
|
||||
|
||||
export default function farmerFieldList(globalData: IGlobalData) {
|
||||
var skillSelect;
|
||||
var skill = 60;
|
||||
var fieldSelected = false;
|
||||
var fieldSelect;
|
||||
|
||||
mp.events.add(RageEnums.EventKey.PLAYER_EXIT_COLSHAPE, (colshape) => {
|
||||
if (colshape == fieldSelectColShape) {
|
||||
if (fieldMenu && fieldMenu.Visible) {
|
||||
fieldMenu.Close();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
mp.events.add('SERVER:selectField', () => {
|
||||
|
||||
skill = 100;
|
||||
|
||||
if (!globalData.InMenu) {
|
||||
globalData.InMenu = true;
|
||||
|
||||
skillSelect = ["Knecht (1)", "Hilfsarbeiter (2)", "Ackersmann (3)", "Landwirt (4)", "Ökonom (5)"];
|
||||
|
||||
fieldMenu = new Menu("Bus Job", "", new Point(0, screenRes.y / 3), null, null);
|
||||
fieldMenu.AddItem(new UIMenuListItem("Stufe wählen", "", new ItemsCollection(skillSelect)));
|
||||
fieldSelect = "Anfänger";
|
||||
fieldMenu.AddItem(sendItem);
|
||||
fieldMenu.AddItem(cancelItem);
|
||||
fieldMenu.Visible = true;
|
||||
|
||||
fieldMenu.ListChange.on((item, index) => {
|
||||
switch (item.Text) {
|
||||
case "Stufe wählen":
|
||||
fieldSelect = String(item.SelectedItem.DisplayText);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
fieldMenu.ItemSelect.on((item) => {
|
||||
if (item.Text === "Starten") {
|
||||
|
||||
if (fieldSelect == skillSelect[1] && skill < 5) {
|
||||
mp.game.audio.playSoundFrontend(1, "Hack_Failed", "DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS", true);
|
||||
}
|
||||
else if (fieldSelect == skillSelect[2] && skill < 10) {
|
||||
mp.game.audio.playSoundFrontend(1, "Hack_Failed", "DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS", true);
|
||||
}
|
||||
else if (fieldSelect == skillSelect[3] && skill < 25) {
|
||||
mp.game.audio.playSoundFrontend(1, "Hack_Failed", "DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS", true);
|
||||
}
|
||||
else if (fieldSelect == skillSelect[4] && skill < 50) {
|
||||
mp.game.audio.playSoundFrontend(1, "Hack_Failed", "DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS", true);
|
||||
}
|
||||
else {
|
||||
mp.events.callRemote("CLIENT:StartFieldSelected", fieldSelect);
|
||||
fieldSelected = true;
|
||||
fieldMenu.Close();
|
||||
globalData.InMenu = false;
|
||||
}
|
||||
|
||||
|
||||
} else if (item.Text === "Abbrechen") {
|
||||
fieldMenu.Close();
|
||||
}
|
||||
});
|
||||
|
||||
fieldMenu.MenuClose.on(() => {
|
||||
if (!fieldSelected) {
|
||||
//mp.events.callRemote("CLIENT:Job_StopJob");
|
||||
}
|
||||
fieldSelected = false;
|
||||
globalData.InMenu = false;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
var activeCheckpoint;
|
||||
var activeBlip = null;
|
||||
var myVar;
|
||||
var activeCheckpointId;
|
||||
|
||||
mp.events.add('farmerSetCheckpoint', (position, markerId, markerSize, cpId) => {
|
||||
activeCheckpointId = cpId;
|
||||
|
||||
activeCheckpoint = mp.markers.new(markerId, position, markerSize, {
|
||||
color: [255, 0, 0, 150],
|
||||
visible: true,
|
||||
dimension: 0
|
||||
});
|
||||
|
||||
activeBlip = mp.blips.new(1, position,
|
||||
{
|
||||
color: 33,
|
||||
alpha: 255,
|
||||
shortRange: false,
|
||||
});
|
||||
activeBlip.setRoute(true);
|
||||
activeBlip.setRouteColour(33);
|
||||
|
||||
clearInterval(myVar);
|
||||
myVar = setInterval(checkpointTimer, 50);
|
||||
});
|
||||
|
||||
function checkpointTimer() {
|
||||
let dist = mp.game.gameplay.getDistanceBetweenCoords(mp.players.local.position.x, mp.players.local.position.y, 0, checkpoint.x, checkpoint.y, 0, false);
|
||||
|
||||
if (dist <= 2) {
|
||||
clearInterval(myVar);
|
||||
activeCheckpoint.destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -57,7 +57,6 @@ const muellbaseVector2 = new mp.Vector3(454.88348, -2158.1938, 5.9788494);
|
||||
const muellbaseVector3 = new mp.Vector3(529.06635, -2088.4097, 8.303088);
|
||||
|
||||
const krankenhausVector1 = new mp.Vector3(-508.50705, -351.24368, 34);
|
||||
//const krankenhausVector2 = new mp.Vector3(-437.00146, -357.10526, 32.735916
|
||||
const krankenhausVector2 = new mp.Vector3(-442.62323, -356.99185, 33);
|
||||
const krankenhausVector3 = new mp.Vector3(-448.9346, -297.23972, 33.68);
|
||||
const krankenhausVector4 = new mp.Vector3(-504.952, -315.21698, 35.04881);
|
||||
|
||||
@@ -36,12 +36,12 @@ export default function tuning(globalData: IGlobalData) {
|
||||
{ Slot: 8, Name: "Extra 1", Price: 2000 },
|
||||
{ Slot: 9, Name: "Extra 2", Price: 2000 },
|
||||
{ Slot: 10, Name: "Dach", Price: 1500 },
|
||||
{ Slot: 11, Name: "Motor", BasePercentage: 20, PriceIncreasePerLevel: 7.5 },
|
||||
{ Slot: 12, Name: "Bremsen", BasePercentage: 5, PriceIncreasePerLevel: 2.5 },
|
||||
{ Slot: 13, Name: "Getriebe", BasePercentage: 10, PriceIncreasePerLevel: 2.5 },
|
||||
{ Slot: 11, Name: "Motor", BasePercentage: 6.25, PriceIncreasePerLevel: 6.25 },
|
||||
{ Slot: 12, Name: "Bremsen", BasePercentage: 2.5, PriceIncreasePerLevel: 2.5 },
|
||||
{ Slot: 13, Name: "Getriebe", BasePercentage: 3.75, PriceIncreasePerLevel: 3.75 },
|
||||
{ Slot: 14, Name: "Hupe", Price: 500 },
|
||||
{ Slot: 15, Name: "Federung", Price: 2000 },
|
||||
{ Slot: 18, Name: "Turbo", BasePercentage: 45, PriceIncreasePerLevel: 0 },
|
||||
{ Slot: 18, Name: "Turbo", BasePercentage: 25, PriceIncreasePerLevel: 0 },
|
||||
{ Slot: 22, Name: "Licht", Price: 500 },
|
||||
{ Slot: -2, Name: "Reifen", Price: 2500 },
|
||||
{ Slot: -1, Name: "Lackierung", Price: 1000 },
|
||||
|
||||
@@ -10,9 +10,7 @@ export default function () {
|
||||
});
|
||||
mp.events.addDataHandler("vehicleAdminSpeed2", (entity, newValue2) => {
|
||||
if (!entity.isAVehicle()) return;
|
||||
//entity.setEngineTorqueMultiplier(newValue2);
|
||||
TorqueEntity = entity;
|
||||
TorqueValue = newValue2;
|
||||
entity.setEngineTorqueMultiplier(newValue2);
|
||||
});
|
||||
/*mp.events.add('render', () => {
|
||||
let vehicle = mp.players.local.vehicle;
|
||||
|
||||
@@ -271,6 +271,9 @@ antiAfk(globalData);
|
||||
import ammunation from './Interaction/ammunation/ammunation';
|
||||
ammunation(globalData);
|
||||
|
||||
import farmerFieldList from './Jobs/FarmerFieldSelect';
|
||||
farmerFieldList(globalData);
|
||||
|
||||
import handsup from './Player/handsup';
|
||||
handsup();
|
||||
|
||||
|
||||
@@ -10,13 +10,17 @@ game.events.add('SERVER:Vehicle:UpdateData', (vehId, dataStr) => {
|
||||
setVehicleData(vehicle, data);
|
||||
});
|
||||
|
||||
game.events.add("SERVER:Vehicle:SetDefaultEngineBehavior", () => {
|
||||
mp.game.vehicle.defaultEngineBehaviour = false;
|
||||
});
|
||||
|
||||
game.events.onPlayerEnterVehicle((vehicle, seat) => {
|
||||
while (!game.players.local.inVehicle) {
|
||||
game.wait(0);
|
||||
}
|
||||
|
||||
if (vehicle) {
|
||||
var data: VehicleData = vehicle.getSharedData("VehicleData");
|
||||
var data: VehicleData = vehicle.getSharedData("VehicleData");
|
||||
setVehicleData(vehicle, data);
|
||||
if (vehicle.class == 16) mp.game.vehicle.defaultEngineBehaviour = true;
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ using ReallifeGamemode.Server.Core.Extensions;
|
||||
using System.Linq;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Common;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace ReallifeGamemode.Server.Core.Managers
|
||||
{
|
||||
@@ -451,6 +452,8 @@ namespace ReallifeGamemode.Server.Core.Managers
|
||||
return;
|
||||
}
|
||||
|
||||
Log.LogInformation("Player {0} did a withdraw of {1} dollars from house {2}", player.Name, amount, house.Id);
|
||||
|
||||
user.BankAccount.Balance += amount;
|
||||
house.BankAccount.Balance -= amount;
|
||||
|
||||
|
||||
@@ -6,12 +6,13 @@ using ReallifeGamemode.Server.Types;
|
||||
using ReallifeGamemode.Server.Core.Extensions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System.Linq;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace ReallifeGamemode.Server.Core.Menus
|
||||
{
|
||||
internal class PoliceDepartment : Script
|
||||
{
|
||||
|
||||
private const int WEAPONLICENSE_PRICE = 5000;
|
||||
|
||||
public PoliceDepartment()
|
||||
{
|
||||
@@ -40,13 +41,15 @@ namespace ReallifeGamemode.Server.Core.Menus
|
||||
|
||||
var account = user.BankAccount;
|
||||
|
||||
if (account.Balance < 5000)
|
||||
if (account.Balance < WEAPONLICENSE_PRICE)
|
||||
{
|
||||
player.SendMessage("Du hast nicht genug Geld auf der Bank (5.000$)!", ChatPrefix.Error);
|
||||
return;
|
||||
}
|
||||
|
||||
account.Balance -= 5000;
|
||||
Log.LogInformation("Player {0} bought a weapon license for {1} dollars", player.Name, WEAPONLICENSE_PRICE);
|
||||
|
||||
account.Balance -= WEAPONLICENSE_PRICE;
|
||||
|
||||
player.SendMessage("Du hast den Waffenschein erfolgreich erworben.", ChatPrefix.Info);
|
||||
|
||||
|
||||
@@ -4,18 +4,20 @@
|
||||
* @copyright (c) 2008 - 2021 Life of German
|
||||
*/
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Finance;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
using ReallifeGamemode.Services;
|
||||
using System;
|
||||
|
||||
|
||||
namespace ReallifeGamemode.Server.Bank
|
||||
{
|
||||
class bank : Script
|
||||
class Bank : Script
|
||||
{
|
||||
private static TextLabel informationLabel;
|
||||
private static TextLabel factionInformationLabel;
|
||||
@@ -25,6 +27,7 @@ namespace ReallifeGamemode.Server.Bank
|
||||
private static ColShape _factioncolShape;
|
||||
public static Vector3 Position { get; }
|
||||
|
||||
private static readonly ILogger logger = LogManager.GetLogger<Bank>();
|
||||
|
||||
public static void Setup()
|
||||
{
|
||||
@@ -58,7 +61,7 @@ namespace ReallifeGamemode.Server.Bank
|
||||
}
|
||||
|
||||
private static void EntityEnterFactionBankColShape(ColShape colShape, Player client)
|
||||
{
|
||||
{
|
||||
if (client.IsInVehicle || !client.IsLoggedIn() || client.GetUser().FactionId is null) return;
|
||||
|
||||
User user = client.GetUser();
|
||||
@@ -92,6 +95,7 @@ namespace ReallifeGamemode.Server.Bank
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.LogInformation("Player {0} did a deposit of {1} dollars at the bank", player.Name, amount);
|
||||
player.SendNotification($"~w~Du hast $~g~{amount} ~w~eingezahlt.");
|
||||
player.GetUser(dbContext).Handmoney -= amount;
|
||||
player.GetUser(dbContext).BankAccount.Balance += amount;
|
||||
@@ -115,6 +119,7 @@ namespace ReallifeGamemode.Server.Bank
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.LogInformation("Player {0} did a withdraw of {1} dollars at the bank", player.Name, amount);
|
||||
player.SendNotification($"~w~Du hast $~g~{amount} ~w~abgehoben.");
|
||||
player.GetUser(dbContext).Handmoney += amount;
|
||||
player.GetUser(dbContext).BankAccount.Balance -= amount;
|
||||
@@ -130,34 +135,40 @@ namespace ReallifeGamemode.Server.Bank
|
||||
int amount = Int32.Parse(stringAmount);
|
||||
Player target = PlayerService.GetPlayerByNameOrId(nameOrId);
|
||||
|
||||
if (!target.IsLoggedIn())
|
||||
{
|
||||
player.SendNotification($"~r~Dieser Spieler ist nicht Online.");
|
||||
return;
|
||||
}
|
||||
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
if (player.GetUser().PlayedMinutes < 180)
|
||||
User user = player.GetUser(dbContext);
|
||||
if (user.PlayedMinutes < 180)
|
||||
{
|
||||
player.SendNotification("~r~Du kannst Geld erst ab 3 Spielstunden vergeben");
|
||||
return;
|
||||
}
|
||||
if (player.GetUser(dbContext) == target.GetUser(dbContext))
|
||||
|
||||
User targetUser = target.GetUser(dbContext);
|
||||
|
||||
if (user == targetUser)
|
||||
{
|
||||
player.SendNotification($"~r~Du kannst dir selber kein Geld überweisen.");
|
||||
return;
|
||||
}
|
||||
else if (!target.IsLoggedIn())
|
||||
{
|
||||
player.SendNotification($"~r~Dieser Spieler ist nicht Online.");
|
||||
|
||||
}
|
||||
else if (amount <= 0 || (int)(amount * 1.05) > player.GetUser(dbContext).BankAccount.Balance)
|
||||
else if (amount <= 0 || (int)(amount * 1.05) > user.BankAccount.Balance)
|
||||
{
|
||||
player.SendNotification($"~r~Dieser Betrag kann nicht überwiesen werden.");
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.LogInformation("Player {0} did a transfer of {1} dollars to {2}", user.Name, amount, targetUser.Name);
|
||||
player.SendNotification($"~w~Du hast {target.Name} $~g~{amount} ~w~Überwiesen.");
|
||||
target.SendNotification($"~w~{player.Name} hat dir $~g~{amount} ~w~Überwiesen.");
|
||||
player.GetUser(dbContext).BankAccount.Balance -= (int)(amount * 1.05);
|
||||
target.GetUser(dbContext).otheramount += amount;
|
||||
user.BankAccount.Balance -= (int)(amount * 1.05);
|
||||
targetUser.otheramount += amount;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
@@ -170,17 +181,23 @@ namespace ReallifeGamemode.Server.Bank
|
||||
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
User user = player.GetUser(dbContext);
|
||||
if (user.FactionId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (amount <= 0 || amount > player.GetUser(dbContext).BankAccount.Balance)
|
||||
if (amount <= 0 || amount > user.BankAccount.Balance)
|
||||
{
|
||||
player.SendNotification($"~r~Dieser Betrag ist ungültig.");
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.LogInformation("Player {0} did a faction payin of {1} dollars to faction {2}", user.Name, amount, user.Faction.Id);
|
||||
player.SendNotification($"~w~Du hast $~g~{amount}~w~ in die Fraktionskasse eingezahlt.");
|
||||
player.GetUser(dbContext).BankAccount.Balance -= amount;
|
||||
player.GetUser(dbContext).Faction.BankAccount.Balance += amount;
|
||||
user.BankAccount.Balance -= amount;
|
||||
user.Faction.BankAccount.Balance += amount;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
@@ -193,23 +210,28 @@ namespace ReallifeGamemode.Server.Bank
|
||||
int amount = Int32.Parse(stringAmount);
|
||||
Player target = PlayerService.GetPlayerByNameOrId(nameOrId);
|
||||
|
||||
if (!target.IsLoggedIn())
|
||||
{
|
||||
player.SendNotification($"~r~Dieser Spieler ist nicht Online.");
|
||||
return;
|
||||
}
|
||||
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
if (!target.IsLoggedIn())
|
||||
{
|
||||
player.SendNotification($"~r~Dieser Spieler ist nicht Online.");
|
||||
|
||||
}
|
||||
else if (amount <= 0 || (int)(amount * 1.05) > player.GetUser(dbContext).Faction.BankAccount.Balance)
|
||||
User user = player.GetUser(dbContext);
|
||||
User targetUser = target.GetUser(dbContext);
|
||||
if (amount <= 0 || (int)(amount * 1.05) > user.Faction.BankAccount.Balance)
|
||||
{
|
||||
player.SendNotification($"~r~Dieser Betrag kann nicht überwiesen werden.");
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
player.SendNotification($"~w~Du hast {target.Name} $~g~{amount} ~w~Überwiesen.");
|
||||
player.GetUser(dbContext).Faction.BankAccount.Balance -= (int)(amount * 1.05);
|
||||
target.GetUser(dbContext).otheramount += amount;
|
||||
logger.LogInformation("Player {0} did a faction transfer of {1} dollars from faction {2} to {3}", user.Name, amount, user.Faction.Id, target);
|
||||
player.SendNotification($"Du hast ~g~{amount.ToMoneyString()}~s~ an ~y~{targetUser.Name}~s~ überwiesen");
|
||||
target.SendNotification($"Dir wurden ~g~{amount.ToMoneyString()}~s~ von ~y~{user.Name}~s~ überwiesen");
|
||||
user.Faction.BankAccount.Balance -= (int)(amount * 1.05);
|
||||
targetUser.otheramount += amount;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -532,25 +532,6 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
}
|
||||
|
||||
[Command("bitcoin", "~m~/bitcoin [ID]")]
|
||||
public void CmdAdminBitcoin(Player player, string name)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
return;
|
||||
}
|
||||
|
||||
Player target = PlayerService.GetPlayerByNameOrId(name);
|
||||
if (target == null || !target.IsLoggedIn())
|
||||
{
|
||||
ChatService.PlayerNotFound(player);
|
||||
return;
|
||||
}
|
||||
|
||||
target.TriggerEvent("CLIENT:PlaySound", "fun/bitcoinnect", "mp3", 50);
|
||||
}
|
||||
|
||||
#endregion Support
|
||||
|
||||
#region Admin
|
||||
@@ -567,7 +548,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("remspawnschutz", "~m~Benutzung: ~s~/rmss [Target]", Alias = "rmss")]
|
||||
public void CmdAdminRmss(Player player, String targetname)
|
||||
public void CmdAdminRemSpawnSchutz(Player player, String targetname)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
|
||||
{
|
||||
@@ -620,7 +601,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("ac", "~m~Benutzung: ~s~/ac [Nachricht]", GreedyArg = true)]
|
||||
public void CmdAdminA(Player player, string message)
|
||||
public void CmdAdminChat(Player player, string message)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
|
||||
{
|
||||
@@ -1062,110 +1043,8 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
}
|
||||
|
||||
[Command("destroyped", "~m~Benutzung: ~s~/destroyped [PedNr]")]
|
||||
public void CmdAdminAddPPed(Player player, int PedNr)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
return;
|
||||
}
|
||||
player.TriggerEvent("CLIENT:DestroyPed", PedNr);
|
||||
//NAPI.Ped.CreatePed(PedHash.Bankman, new Vector3(player.Position.X, player.Position.Y, player.Position.Z), player.Heading, dimension);
|
||||
}
|
||||
|
||||
[Command("addpped", "~m~Benutzung: ~s~/addpped [PedNr] [model] [dimension] [Dynamic] [Freezed] [Collision(0-3)] [Weapon] [AttackProof] [Fire/Explosion-Proof] [DrownProof]")]
|
||||
public void CmdAdminAddPPed(Player player, Array PedNr, string model, uint dimension = 0, bool dynamic = false, bool freeze = false, int collision = 0, string weapon = "none", bool attackproof = false, bool fireexplosionproof = false, bool drownproof = false)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
return;
|
||||
}
|
||||
player.TriggerEvent("CLIENT:AddPed", PedNr, model, player.Position.X, player.Position.Y, player.Position.Z, player.Heading, dimension, dynamic, freeze, collision, weapon, attackproof, fireexplosionproof, drownproof);
|
||||
//NAPI.Ped.CreatePed(PedHash.Bankman, new Vector3(player.Position.X, player.Position.Y, player.Position.Z), player.Heading, dimension);
|
||||
}
|
||||
|
||||
[Command("addmped", "~m~Benutzung: ~s~/addmped [model] [dimension]")]
|
||||
public void CmdAdminAddMPed(Player player, int model, uint dimension = 0)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
return;
|
||||
}
|
||||
player.TriggerEvent("CLIENT:AddPedModel", model, player.Position.X, player.Position.Y, player.Position.Z, player.Heading, dimension);
|
||||
//NAPI.Ped.CreatePed(PedHash.Bankman, new Vector3(player.Position.X, player.Position.Y, player.Position.Z), player.Heading, dimension);
|
||||
}
|
||||
|
||||
[Command("addgped", "~m~Benutzung: ~s~/addgped")]
|
||||
public void CmdAdminAddGPed(Player player, int model, uint dimension = 0)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
return;
|
||||
}
|
||||
//player.TriggerEvent("CLIENT:AddPed", model, player.Position.X, player.Position.Y, player.Position.Z, player.Heading, dimension);
|
||||
Ped Peter = NAPI.Ped.CreatePed(PedHash.Bankman, new Vector3(player.Position.X, player.Position.Y, player.Position.Z), player.Heading, dimension);
|
||||
|
||||
//Peter.freezePosition(true);
|
||||
}
|
||||
|
||||
[Command("addgpedmore", "~m~Benutzung: ~s~/addgpedMore")]
|
||||
public void CmdAdminAddGPedMore(Player player, int model, uint dimension = 0)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
return;
|
||||
}
|
||||
//player.TriggerEvent("CLIENT:AddPed", model, player.Position.X, player.Position.Y, player.Position.Z, player.Heading, dimension);
|
||||
Ped Peter = NAPI.Ped.CreatePed(PedHash.ChickenHawk, new Vector3(player.Position.X + 1, player.Position.Y, player.Position.Z + 2), player.Heading, dimension);
|
||||
Ped Peter2 = NAPI.Ped.CreatePed(PedHash.MovAlien01, new Vector3(player.Position.X + 2, player.Position.Y, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter3 = NAPI.Ped.CreatePed(PedHash.Chimp, new Vector3(player.Position.X + 3, player.Position.Y, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter4 = NAPI.Ped.CreatePed(PedHash.Boar, new Vector3(player.Position.X + 4, player.Position.Y, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter5 = NAPI.Ped.CreatePed(PedHash.BradCadaverCutscene, new Vector3(player.Position.X + 5, player.Position.Y, player.Position.Z + 2), player.Heading, dimension);
|
||||
Ped Peter6 = NAPI.Ped.CreatePed(PedHash.Cat, new Vector3(player.Position.X - 1, player.Position.Y, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter7 = NAPI.Ped.CreatePed(PedHash.Chop, new Vector3(player.Position.X - 2, player.Position.Y, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter8 = NAPI.Ped.CreatePed(PedHash.Cormorant, new Vector3(player.Position.X - 3, player.Position.Y, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter9 = NAPI.Ped.CreatePed(PedHash.Cow, new Vector3(player.Position.X - 4, player.Position.Y, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter10 = NAPI.Ped.CreatePed(PedHash.Deer, new Vector3(player.Position.X - 5, player.Position.Y, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter11 = NAPI.Ped.CreatePed(PedHash.Coyote, new Vector3(player.Position.X, player.Position.Y + 1, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter12 = NAPI.Ped.CreatePed(PedHash.Crow, new Vector3(player.Position.X, player.Position.Y + 2, player.Position.Z + 2), player.Heading, dimension);
|
||||
Ped Peter13 = NAPI.Ped.CreatePed(PedHash.Humpback, new Vector3(player.Position.X, player.Position.Y + 3, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter14 = NAPI.Ped.CreatePed(PedHash.Husky, new Vector3(player.Position.X, player.Position.Y + 4, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter15 = NAPI.Ped.CreatePed(PedHash.JohnnyKlebitz, new Vector3(player.Position.X, player.Position.Y + 5, player.Position.Z - 1), player.Heading, dimension);
|
||||
Ped Peter16 = NAPI.Ped.CreatePed(PedHash.Pig, new Vector3(player.Position.X, player.Position.Y - 1, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter17 = NAPI.Ped.CreatePed(PedHash.Pigeon, new Vector3(player.Position.X, player.Position.Y - 2, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter18 = NAPI.Ped.CreatePed(PedHash.Poodle, new Vector3(player.Position.X, player.Position.Y - 3, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter19 = NAPI.Ped.CreatePed(PedHash.Pug, new Vector3(player.Position.X, player.Position.Y - 4, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter20 = NAPI.Ped.CreatePed(PedHash.Rabbit, new Vector3(player.Position.X, player.Position.Y - 5, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter21 = NAPI.Ped.CreatePed(PedHash.Rat, new Vector3(player.Position.X + 1, player.Position.Y + 1, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter22 = NAPI.Ped.CreatePed(PedHash.Retriever, new Vector3(player.Position.X + 2, player.Position.Y + 2, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter23 = NAPI.Ped.CreatePed(PedHash.Rhesus, new Vector3(player.Position.X + 3, player.Position.Y + 3, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter24 = NAPI.Ped.CreatePed(PedHash.Rottweiler, new Vector3(player.Position.X + 4, player.Position.Y + 4, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter25 = NAPI.Ped.CreatePed(PedHash.Seagull, new Vector3(player.Position.X + 5, player.Position.Y + 5, player.Position.Z + 2), player.Heading, dimension);
|
||||
Ped Peter26 = NAPI.Ped.CreatePed(PedHash.Shepherd, new Vector3(player.Position.X - 1, player.Position.Y - 1, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter27 = NAPI.Ped.CreatePed(PedHash.Stingray, new Vector3(player.Position.X - 2, player.Position.Y - 2, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter28 = NAPI.Ped.CreatePed(PedHash.Westy, new Vector3(player.Position.X - 3, player.Position.Y - 3, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter29 = NAPI.Ped.CreatePed(PedHash.MountainLion, new Vector3(player.Position.X - 4, player.Position.Y - 4, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter30 = NAPI.Ped.CreatePed(PedHash.FatCult01AFM, new Vector3(player.Position.X - 5, player.Position.Y - 5, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter31 = NAPI.Ped.CreatePed(PedHash.FatCult01AFM, new Vector3(player.Position.X + 1, player.Position.Y - 3, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter32 = NAPI.Ped.CreatePed(PedHash.FatCult01AFM, new Vector3(player.Position.X + 3, player.Position.Y - 1, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter33 = NAPI.Ped.CreatePed(PedHash.FatCult01AFM, new Vector3(player.Position.X - 1, player.Position.Y + 3, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter34 = NAPI.Ped.CreatePed(PedHash.Acult01AMM, new Vector3(player.Position.X - 3, player.Position.Y + 1, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter35 = NAPI.Ped.CreatePed(PedHash.Acult01AMM, new Vector3(player.Position.X + 5, player.Position.Y + 1, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter36 = NAPI.Ped.CreatePed(PedHash.Acult01AMO, new Vector3(player.Position.X + 1, player.Position.Y - 5, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter37 = NAPI.Ped.CreatePed(PedHash.Acult01AMO, new Vector3(player.Position.X + 4, player.Position.Y - 2, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter38 = NAPI.Ped.CreatePed(PedHash.Acult01AMY, new Vector3(player.Position.X - 5, player.Position.Y + 2, player.Position.Z), player.Heading, dimension);
|
||||
Ped Peter39 = NAPI.Ped.CreatePed(PedHash.Acult01AMY, new Vector3(player.Position.X - 4, player.Position.Y - 1, player.Position.Z), player.Heading, dimension);
|
||||
|
||||
//Peter.freezePosition(true);
|
||||
}
|
||||
|
||||
[Command("gotox", "~m~Benutzung: ~s~/gotox [X] [Y] [Z]")]
|
||||
public void CmdAdminGotoxyz(Player player, float x, float y, float z)
|
||||
public void CmdAdminGotox(Player player, float x, float y, float z)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
|
||||
{
|
||||
@@ -1515,7 +1394,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("aclear", "~m~Benutzung: ~s~/aclear [Spieler] [Grund]", GreedyArg = true)]
|
||||
public void CmdFactionClear(Player player, string nameOrId, string reason)
|
||||
public void CmdAdminClear(Player player, string nameOrId, string reason)
|
||||
{
|
||||
User user = player.GetUser();
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
|
||||
@@ -1650,7 +1529,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("vcolor", "~m~Benutzung: ~s~/vcolor [Farb-ID1] [Farb-ID2]")]
|
||||
public void CmdAdminColor(Player player, int color1, int color2)
|
||||
public void CmdAdminVColor(Player player, int color1, int color2)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
|
||||
{
|
||||
@@ -1766,7 +1645,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
public void CmdAdminUnshow(Player player)
|
||||
{
|
||||
User user = player.GetUser();
|
||||
if (!user.IsAdmin(AdminLevel.HEADADMIN))
|
||||
if (!user.IsAdmin(AdminLevel.ADMIN))
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
return;
|
||||
@@ -1834,7 +1713,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("setsvar", "~m~Benutzung:~s~ /setsvar [ID] [WERT]")]
|
||||
public void CmdAdmSetSvar(Player player, int varId, int varValue)
|
||||
public void CmdAdminSetSvar(Player player, int varId, int varValue)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.PROJEKTLEITUNG) ?? true)
|
||||
{
|
||||
@@ -1845,7 +1724,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("createturf", "~m~Benutzung:~s~ /createturf [radius]")]
|
||||
public void CmdAdmCreateTurf(Player player, float option)
|
||||
public void CmdAdminCreateTurf(Player player, float option)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||
{
|
||||
@@ -1867,7 +1746,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("cancleturf", "~m~Benutzung:~s~ /cancleturf")]
|
||||
public void CmdAdmCancleTurf(Player player)
|
||||
public void CmdAdminCancleTurf(Player player)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||
{
|
||||
@@ -1878,7 +1757,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("reloadturfs", "~m~Benutzung:~s~ /ReloadTurfs")]
|
||||
public void CmdAdmReloadTurf(Player player)
|
||||
public void CmdAdminReloadTurf(Player player)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||
{
|
||||
@@ -1890,7 +1769,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("deleteturf", "~m~Benutzung:~s~ /DeleteTurfs")]
|
||||
public void CmdAdmDeleteTurf(Player player)
|
||||
public void CmdAdminDeleteTurf(Player player)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||
{
|
||||
@@ -1901,7 +1780,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("setturfpoint", "~m~Benutzung:~s~ /setturfpoint")]
|
||||
public void CmdAdmSetTurfPoint(Player player)
|
||||
public void CmdAdminSetTurfPoint(Player player)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||
{
|
||||
@@ -1943,7 +1822,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
ChatService.SendMessage(target, "~r~WARNINFO: ~w~Dir wurde von " + adminPlayername + " ein Warn entfernt: " + reason);
|
||||
|
||||
ChatService.Broadcast("~y~INFO: ~w~" + targetPlayername + " wurde von " + player.GetUser().AdminLevel.GetName() + " " + adminPlayername + " ein Warn entfernt: " + reason);
|
||||
ChatService.BroadcastAdmin("~y~INFO: ~w~" + targetPlayername + " wurde von " + player.GetUser().AdminLevel.GetName() + " " + adminPlayername + " ein Warn entfernt: " + reason, AdminLevel.ADMIN);
|
||||
}
|
||||
|
||||
[Command("setskill", "~m~Benutzung: ~s~/setskill [Playerid] [Bus/Pilot] [Menge]")]
|
||||
@@ -2124,7 +2003,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("setweather", "~m~Benutzung: ~s~/setweather [Wetter]")]
|
||||
public void CmdAdminSetweather(Player player, string weather)
|
||||
public void CmdAdminSetWeather(Player player, string weather)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||
{
|
||||
@@ -2174,7 +2053,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
|
||||
|
||||
[Command("showtuningmenu", "~m~Benutzung: ~s~/showtuningmenu", Alias = "stm")]
|
||||
public void CmdAdminShowtuningmenu(Player player)
|
||||
public void CmdAdminShowTuningMenu(Player player)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||
{
|
||||
@@ -2244,14 +2123,14 @@ namespace ReallifeGamemode.Server.Commands
|
||||
[Command("wepmod", "~m~Benutzung: ~s~/wepmod [Variable]")]
|
||||
public void CmdWeaponModifier(Player player, float modifier)
|
||||
{
|
||||
player.SendChatMessage("Modifier steht auf" + modifier);
|
||||
player.SendChatMessage("Modifier steht auf " + 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.SendChatMessage("MeeleModifier steht auf " + modifier);
|
||||
player.TriggerEvent("SERVER:WeaponModifier2", player, 1, modifier);
|
||||
}
|
||||
|
||||
@@ -2269,7 +2148,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("sethandmoney", "~m~Benutzung: ~s~/sethandmoney [Name/ID] [Menge]")]
|
||||
public void CmdAdminSetUserHandMoney(Player admin, string targetname, int amount)
|
||||
public void CmdAdminSetHandMoney(Player admin, string targetname, int amount)
|
||||
{
|
||||
if (!admin.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||
{
|
||||
@@ -2287,6 +2166,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
{
|
||||
var user = target.GetUser(context);
|
||||
user.Handmoney = amount;
|
||||
logger.LogInformation("Admin {0} set the handmoney of player {1} to {2} dollars", admin.Name, target.Name, amount);
|
||||
context.SaveChanges();
|
||||
//target.TriggerEvent("SERVER:SET_HANDMONEY", amount);
|
||||
}
|
||||
@@ -2295,7 +2175,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("givehandmoney", "~m~Benutzung: ~s~/givehandmoney [Name/ID] [Menge]")]
|
||||
public void CmdAdminGiveUserHandMoney(Player admin, string targetname, int amount)
|
||||
public void CmdAdminGiveHandMoney(Player admin, string targetname, int amount)
|
||||
{
|
||||
if (!admin.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||
{
|
||||
@@ -2313,6 +2193,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
{
|
||||
var user = target.GetUser(context);
|
||||
user.Handmoney += amount;
|
||||
logger.LogInformation("Admin {0} added {2} dollarsto the handmoney of player {1}", admin.Name, target.Name, amount);
|
||||
context.SaveChanges();
|
||||
//target.TriggerEvent("SERVER:SET_HANDMONEY", user.Handmoney);
|
||||
}
|
||||
@@ -2321,7 +2202,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("quicksavemode", "~m~Benutzung: ~s~/quicksavemode [Modus]: ~g~blip, ~g~atm")]
|
||||
public void CmdAdminSetQuickSaveMode(Player player, string mode)
|
||||
public void CmdAdminQuickSaveMode(Player player, string mode)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||
{
|
||||
@@ -2371,7 +2252,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("setshopitem", "~m~Benutzung: ~s~/setshopitem [Item ID]")]
|
||||
public void CmdAdminSetItemInShop(Player player, int itemId)
|
||||
public void CmdAdminSetShopItem(Player player, int itemId)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||
{
|
||||
@@ -2417,7 +2298,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("rmshopitem", "~m~Benutzung: ~s~/rmshopitem [Item ID]")]
|
||||
public void CmdAdminRemoveItemInShop(Player player, int itemId)
|
||||
public void CmdAdminRmShopItem(Player player, int itemId)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||
{
|
||||
@@ -3226,7 +3107,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
|
||||
//
|
||||
[Command("managefactionranks", "~m~Benutzung: ~s~/managefactionranks [Fraktions-ID]", Alias = "mfr")]
|
||||
public void CmdFactionManageFactionRanks(Player player, int factionID)
|
||||
public void CmdAdminManageFactionRanks(Player player, int factionID)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||
{
|
||||
@@ -3340,7 +3221,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("setmoney", "~m~Benutzung: ~s~/setmoney [Name] [Menge]")]
|
||||
public void SetPlayerMoney(Player player, string receiver, int amount)
|
||||
public void CmdAdminSetMoney(Player player, string receiver, int amount)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||
{
|
||||
@@ -3356,6 +3237,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
logger.LogInformation("Admin {0} set the bank account of {1} to {2} dollars", player.Name, target.Name, amount);
|
||||
target.GetUser(dbContext).BankAccount.Balance = amount;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
@@ -3364,7 +3246,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("givemoney", "~m~Benutzung: ~s~/givemoney [Name] [Menge]")]
|
||||
public void GivePlayerMoney(Player player, string receiver, int amount)
|
||||
public void GiveAdminGiveMoney(Player player, string receiver, int amount)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||
{
|
||||
@@ -3381,6 +3263,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
logger.LogInformation("Admin {0} added {1} dollars to the bank account of {2}", player.Name, amount, target.Name);
|
||||
target.GetUser(dbContext).BankAccount.Balance += amount;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
@@ -3389,7 +3272,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("setbusinessowner", "~m~Benutzung: ~s~/setbusinessowner [Name] [Business ID]")]
|
||||
public void CmdAdminSetbusinessowner(Player player, string name, int businessid)
|
||||
public void CmdAdminSetBusinessOwner(Player player, string name, int businessid)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||
{
|
||||
@@ -3470,7 +3353,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("setbusinessbankbalance", "~m~Benutzung: ~s~/setbusinessbankbalance [Business ID] [Menge]")]
|
||||
public void CmdAdminGivebusinessbankbalance(Player player, int businessid, int amount)
|
||||
public void CmdAdminSetBusinessBankBalance(Player player, int businessid, int amount)
|
||||
{
|
||||
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
|
||||
{
|
||||
@@ -4002,7 +3885,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
}
|
||||
|
||||
[Command("blind", "~m~Benutzung: ~s~/blind [Spieler] [Mode]")]
|
||||
public void CmdBlind(Player player, string name, int mode)
|
||||
public void CmdAdminBlind(Player player, string name, int mode)
|
||||
{
|
||||
if (!player.IsLoggedIn()) return;
|
||||
|
||||
@@ -4073,7 +3956,7 @@ namespace ReallifeGamemode.Server.Commands
|
||||
[RemoteEvent("Noclip")]
|
||||
public void Noclip(Player player)
|
||||
{
|
||||
if (!player.GetUser().IsAdmin(AdminLevel.HEADADMIN))
|
||||
if (!player.GetUser().IsAdmin(AdminLevel.ADMIN))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Entities.Logs.Chat;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
@@ -15,6 +16,7 @@ using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Services;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Faction Commands (Faction.cs)
|
||||
@@ -26,6 +28,8 @@ namespace ReallifeGamemode.Server.Commands
|
||||
{
|
||||
internal class FactionCommands : Script
|
||||
{
|
||||
private static readonly ILogger logger = LogManager.GetLogger<FactionCommands>();
|
||||
|
||||
#region Chat Commands
|
||||
|
||||
[Command("f", "~m~Benutzung: ~s~/f [Nachricht]", GreedyArg = true)]
|
||||
@@ -233,7 +237,20 @@ namespace ReallifeGamemode.Server.Commands
|
||||
[Command("giverank", "~m~Benutzung: ~s~/giverank [Name] [Rang]", GreedyArg = true)]
|
||||
public void CmdFactionGiverank(Player player, string name, string rank)
|
||||
{
|
||||
if (player.GetUser()?.FactionId == null || player.GetUser().FactionLeader == false)
|
||||
if (!player.IsLoggedIn())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
using var dbContext = new DatabaseContext();
|
||||
User user = player.GetUser(dbContext);
|
||||
|
||||
if (user == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (user.FactionId == null || !user.FactionLeader)
|
||||
{
|
||||
ChatService.NotAuthorized(player);
|
||||
return;
|
||||
@@ -246,28 +263,32 @@ namespace ReallifeGamemode.Server.Commands
|
||||
return;
|
||||
}
|
||||
|
||||
if (target.GetUser()?.FactionId != player.GetUser()?.FactionId)
|
||||
User targetUser = target.GetUser(dbContext);
|
||||
if (targetUser == null)
|
||||
{
|
||||
ChatService.PlayerNotFound(player);
|
||||
return;
|
||||
}
|
||||
|
||||
if (targetUser.FactionId != user.FactionId)
|
||||
{
|
||||
ChatService.ErrorMessage(player, "Dieser Spieler ist nicht in deiner Fraktion");
|
||||
return;
|
||||
}
|
||||
|
||||
using (var dbContext = new DatabaseContext())
|
||||
FactionRank fr = dbContext.FactionRanks.FirstOrDefault(r => r.Order == int.Parse(rank) && r.FactionId == user.FactionId);
|
||||
if (fr == null)
|
||||
{
|
||||
FactionRank fr = dbContext.FactionRanks.FirstOrDefault(r => r.Order == int.Parse(rank) && r.FactionId == player.GetUser(dbContext).FactionId);
|
||||
if (fr == null)
|
||||
{
|
||||
ChatService.ErrorMessage(player, "Dieser Rang existiert nicht");
|
||||
return;
|
||||
}
|
||||
|
||||
target.GetUser(dbContext).FactionRankId = fr.Id;
|
||||
|
||||
ChatService.SendMessage(player, "!{02FCFF}Du hast " + target.Name + " den Rang '" + fr.RankName + "' (" + fr.Order + ") gegeben.");
|
||||
ChatService.SendMessage(target, "!{02FCFF}Du hast von " + player.Name + " den Rang '" + fr.RankName + "' (" + fr.Order + ")' erhalten.");
|
||||
|
||||
dbContext.SaveChanges();
|
||||
ChatService.ErrorMessage(player, "Dieser Rang existiert nicht");
|
||||
return;
|
||||
}
|
||||
|
||||
targetUser.FactionRankId = fr.Id;
|
||||
|
||||
ChatService.SendMessage(player, "!{02FCFF}Du hast " + target.Name + " den Rang '" + fr.RankName + "' (" + fr.Order + ") gegeben.");
|
||||
ChatService.SendMessage(target, "!{02FCFF}Du hast von " + player.Name + " den Rang '" + fr.RankName + "' (" + fr.Order + ")' erhalten.");
|
||||
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
|
||||
[Command("lc", "~m~Benutzung: ~s~/lc [Nachricht]", GreedyArg = true)]
|
||||
@@ -413,17 +434,19 @@ namespace ReallifeGamemode.Server.Commands
|
||||
return;
|
||||
}
|
||||
|
||||
if (deadPlayerUser.Handmoney >= 100)
|
||||
if (deadPlayerUser.Handmoney >= Medic.ReviveIncome)
|
||||
{
|
||||
deadPlayerUser.Handmoney -= 100;
|
||||
deadPlayerUser.Handmoney -= Medic.ReviveIncome;
|
||||
}
|
||||
else
|
||||
{
|
||||
int bankMoney = 100 - deadPlayerUser.Handmoney;
|
||||
int bankMoney = Medic.ReviveIncome - deadPlayerUser.Handmoney;
|
||||
deadPlayerUser.Handmoney = 0;
|
||||
deadPlayerUser.BankAccount.Balance -= bankMoney;
|
||||
}
|
||||
|
||||
logger.LogInformation("Player {0} has been revived by {1} for {2} dollars", deadPlayer.Name, player.Name, Medic.ReviveIncome);
|
||||
|
||||
player.PlayAnimation("amb@medic@standing@kneel@enter", "enter", 0);
|
||||
|
||||
deadPlayer.TriggerEvent("onPlayerRevived");
|
||||
|
||||
@@ -3,6 +3,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
@@ -13,17 +14,22 @@ using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Services;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
|
||||
namespace ReallifeGamemode.Server.Commands
|
||||
{
|
||||
internal class UserCommands : Script
|
||||
{
|
||||
private static readonly ILogger logger = LogManager.GetLogger<UserCommands>();
|
||||
|
||||
private const int SMS_PRICE = 5;
|
||||
|
||||
[Command("rent", "~m~rent stop")]
|
||||
public void CmdUserStopRent(Player player, String option = "")
|
||||
{
|
||||
if (!player.IsLoggedIn()) return;
|
||||
|
||||
if (option != "stop")
|
||||
if (option.ToLower() != "stop")
|
||||
{
|
||||
player.SendChatMessage("Mit \"/rent stop\" kannst du die Miete kündigen");
|
||||
return;
|
||||
@@ -113,13 +119,15 @@ namespace ReallifeGamemode.Server.Commands
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
User user = player.GetUser(dbContext);
|
||||
if (user.BankAccount.Balance < 5)
|
||||
if (user.BankAccount.Balance < SMS_PRICE)
|
||||
{
|
||||
ChatService.ErrorMessage(player, "Dafür hast du nicht genug Geld auf deinem Bankkonto");
|
||||
return;
|
||||
}
|
||||
|
||||
user.BankAccount.Balance -= 5;
|
||||
logger.LogInformation("Player {0} sent a sms to {1} for {2} dollars", player.Name, target.Name, SMS_PRICE);
|
||||
|
||||
user.BankAccount.Balance -= SMS_PRICE;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
|
||||
|
||||
@@ -6,17 +6,24 @@ using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using System;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
|
||||
namespace ReallifeGamemode.Server.DrivingSchool
|
||||
{
|
||||
internal class DrivingSchool : Script
|
||||
{
|
||||
private static readonly ILogger logger = LogManager.GetLogger<DrivingSchool>();
|
||||
|
||||
private static TextLabel informationLabel;
|
||||
private static Marker marker;
|
||||
private static ColShape _colShape;
|
||||
public static Vector3 Position { get; }
|
||||
private const int FAILPOINTS = 2;
|
||||
|
||||
private const int CAR_LICENSE_PRICE = 2500;
|
||||
private const int BIKE_LICENSE_PRICE = 3500;
|
||||
|
||||
private readonly IReadOnlyCollection<Vector3> BikeRoute = new List<Vector3>
|
||||
{
|
||||
new Vector3(-741.98, -1283.46, 6.17),
|
||||
@@ -122,14 +129,14 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
public void StartDrivingSchool(Player client)
|
||||
{
|
||||
User user = client.GetUser();
|
||||
|
||||
|
||||
if (user.DriverLicenseVehicle || client.HasData("ActiveSchool"))
|
||||
{
|
||||
client.SendChatMessage("~b~[INFO]~s~ Du besitzt schon einen Führerschein.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (user.Handmoney < 2500)
|
||||
|
||||
if (user.Handmoney < CAR_LICENSE_PRICE)
|
||||
{
|
||||
client.SendNotification("~r~[FEHLER]~s~ Du hast nicht genug Geld auf der Hand($2.500)!", true);
|
||||
return;
|
||||
@@ -138,7 +145,8 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
User payer = client.GetUser(dbContext);
|
||||
payer.Handmoney -= 2500;
|
||||
payer.Handmoney -= CAR_LICENSE_PRICE;
|
||||
logger.LogInformation("Player {0} bought the driving school (car) for {1} dollars", client.Name, CAR_LICENSE_PRICE);
|
||||
// client.TriggerEvent("SERVER:SET_HANDMONEY", payer.Handmoney);
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
@@ -174,8 +182,8 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
[RemoteEvent("drivingSchoolEventEnd")]
|
||||
public void DrivingSchoolEventEnd(Player user, int checkpoint)
|
||||
{
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
User drivingUser = user.GetUser(dbContext);
|
||||
|
||||
if (drivingUser.failpoints > FAILPOINTS)
|
||||
@@ -186,13 +194,13 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
else
|
||||
{
|
||||
user.TriggerEvent("renderTextOnScreen", "Du hast den Führerschein bestanden. Glückwunsch!");
|
||||
user.ResetData("ActiveSchool");
|
||||
user.ResetData("ActiveSchool");
|
||||
drivingUser.DriverLicenseVehicle = true;
|
||||
drivingUser.failpoints = 0;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Vehicle veh = user.Vehicle;
|
||||
user.WarpOutOfVehicle();
|
||||
ServerVehicle sVeh = VehicleManager.GetServerVehicleFromVehicle(veh);
|
||||
@@ -208,31 +216,31 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
[RemoteEvent("drivingSchoolEvent")]
|
||||
public void DrivingSchoolEvent(Player user, int checkpoint)
|
||||
{
|
||||
/* for (int i = 0; i >= 33; i++)
|
||||
{
|
||||
if (checkpoint <= 24)
|
||||
{
|
||||
user.TriggerEvent("kmh100");
|
||||
}
|
||||
else if (checkpoint >= 25 && checkpoint <= 26)
|
||||
{
|
||||
user.TriggerEvent("kmh150");
|
||||
}
|
||||
else if (checkpoint >= 26 && checkpoint <= 28)
|
||||
{
|
||||
user.TriggerEvent("kmh100");
|
||||
}
|
||||
else if (checkpoint >= 29 && checkpoint <= 31)
|
||||
{
|
||||
user.TriggerEvent("kmh150");
|
||||
}
|
||||
else if (checkpoint >= 32 && checkpoint <= 33)
|
||||
{
|
||||
user.TriggerEvent("kmh100");
|
||||
}
|
||||
}
|
||||
*/
|
||||
switch(checkpoint)
|
||||
/* for (int i = 0; i >= 33; i++)
|
||||
{
|
||||
if (checkpoint <= 24)
|
||||
{
|
||||
user.TriggerEvent("kmh100");
|
||||
}
|
||||
else if (checkpoint >= 25 && checkpoint <= 26)
|
||||
{
|
||||
user.TriggerEvent("kmh150");
|
||||
}
|
||||
else if (checkpoint >= 26 && checkpoint <= 28)
|
||||
{
|
||||
user.TriggerEvent("kmh100");
|
||||
}
|
||||
else if (checkpoint >= 29 && checkpoint <= 31)
|
||||
{
|
||||
user.TriggerEvent("kmh150");
|
||||
}
|
||||
else if (checkpoint >= 32 && checkpoint <= 33)
|
||||
{
|
||||
user.TriggerEvent("kmh100");
|
||||
}
|
||||
}
|
||||
*/
|
||||
switch (checkpoint)
|
||||
{
|
||||
case 25:
|
||||
case 26:
|
||||
@@ -275,7 +283,7 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
client.SendChatMessage("~b~[INFO]~s~ Du besitzt schon einen Motorradschein.");
|
||||
return;
|
||||
}
|
||||
if (user.Handmoney < 3500)
|
||||
if (user.Handmoney < BIKE_LICENSE_PRICE)
|
||||
{
|
||||
client.SendNotification("~r~[FEHLER]~s~Du hast nicht genug Geld auf der Hand($3.500)!", true);
|
||||
return;
|
||||
@@ -284,7 +292,8 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
User payer = client.GetUser(dbContext);
|
||||
payer.Handmoney -= 3500;
|
||||
payer.Handmoney -= BIKE_LICENSE_PRICE;
|
||||
logger.LogInformation("Player {0} bought the driving school (bike) for {1} dollars", client.Name, BIKE_LICENSE_PRICE);
|
||||
// client.TriggerEvent("SERVER:SET_HANDMONEY", payer.Handmoney);
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
using System.Collections.Generic;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
|
||||
@@ -15,8 +17,12 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
private static ColShape _colShape1;
|
||||
public static Vector3 Position { get; }
|
||||
|
||||
private static readonly ILogger logger = LogManager.GetLogger<PlaneSchool>();
|
||||
|
||||
private const int CHECKPOINT_MARKER_ID = 6;
|
||||
|
||||
private const int PLANE_LICENSE_PRICE = 5000;
|
||||
|
||||
private readonly IReadOnlyCollection<Vector3> planeRoute = new List<Vector3>
|
||||
{
|
||||
new Vector3(-1114.39, -2333.09, 14.87),
|
||||
@@ -74,7 +80,7 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
client.SendChatMessage("~b~[INFO]~s~ Du besitzt schon einen Flugschein.");
|
||||
return;
|
||||
}
|
||||
if (user.Handmoney < 5000)
|
||||
if (user.Handmoney < PLANE_LICENSE_PRICE)
|
||||
{
|
||||
client.SendNotification("~r~Du brauchst ~g~$5.000~r~ auf der Hand, um die Prüfung starten zu können.", true);
|
||||
return;
|
||||
@@ -82,7 +88,8 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
User payer = client.GetUser(dbContext);
|
||||
payer.Handmoney -= 5000;
|
||||
payer.Handmoney -= PLANE_LICENSE_PRICE;
|
||||
logger.LogInformation("Player {0} bought the plane school for {1} dollars", client.Name, PLANE_LICENSE_PRICE);
|
||||
//client.TriggerEvent("SERVER:SET_HANDMONEY", payer.Handmoney);
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
@@ -171,7 +178,7 @@ namespace ReallifeGamemode.Server.DrivingSchool
|
||||
|
||||
case 14:
|
||||
user.TriggerEvent("renderTextOnScreen", "Setzen Sie zum Landeanflug an. Drücken Sie 'G', um das Fahrwerk auszufahren.");
|
||||
CheckPointHandle.StartCheckPointRoute(user, planeRouteEnd, 5000, CHECKPOINT_MARKER_ID, 12, 5, true, "planeSchoolEventEnd");
|
||||
CheckPointHandle.StartCheckPointRoute(user, planeRouteEnd, PLANE_LICENSE_PRICE, CHECKPOINT_MARKER_ID, 12, 5, true, "planeSchoolEventEnd");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
@@ -19,6 +20,7 @@ using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Server.WeaponDeal;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Event Key (Key.cs)
|
||||
@@ -30,6 +32,8 @@ namespace ReallifeGamemode.Server.Events
|
||||
{
|
||||
public class Key : Script
|
||||
{
|
||||
private static readonly ILogger logger = LogManager.GetLogger<Key>();
|
||||
|
||||
#region User Key
|
||||
|
||||
[RemoteEvent("keyPress:NUM2")]
|
||||
@@ -171,7 +175,7 @@ namespace ReallifeGamemode.Server.Events
|
||||
isActive = JobBase.GetPlayerInJob().Contains(player),
|
||||
};
|
||||
|
||||
var memberList = dbContext.Users.Where(f => f.FactionId == u.FactionId && u.FactionId != 0).OrderByDescending(f => f.FactionRank.Order).ThenBy(f => f.Name).Select(m => new
|
||||
var memberList = dbContext.Users.Where(f => f.FactionId == u.FactionId && u.FactionId != null && u.FactionId != 0).OrderByDescending(f => f.FactionRank.Order).ThenBy(f => f.Name).Select(m => new
|
||||
{
|
||||
username = m.Name,
|
||||
factionRank = m.FactionRank.Order,
|
||||
@@ -293,6 +297,8 @@ namespace ReallifeGamemode.Server.Events
|
||||
dbContext.VehicleItems.Remove(v);
|
||||
}
|
||||
|
||||
logger.LogInformation("Player {0} took the weapon deal item {1} (amount: {2}) out of weapon vehicle {3}", player.Name, v.VehicleId, itemToAdd, v.VehicleId);
|
||||
|
||||
InventoryManager.AddItemToInventory(player, v.ItemId, itemToAdd);
|
||||
nearestBehindVehiclePoint.usePoint(player);
|
||||
dbContext.SaveChanges();
|
||||
@@ -392,6 +398,8 @@ namespace ReallifeGamemode.Server.Events
|
||||
continue;
|
||||
}
|
||||
|
||||
logger.LogInformation("Player {0} put the weapon deal item \"{1}\" (amount: {2}) in weapon rack of faction {3}", player.Name, weapon.WeaponModel, item.Amount, user.FactionId);
|
||||
|
||||
weapon.Ammount += item.Amount;
|
||||
ChatService.SendMessage(player, $"~y~[WT] ~s~Du hast eine ~y~Kiste abgeladen ~s~(Inhalt: {item.Amount}x {iItem.Name}).");
|
||||
unloadedWeaponPackage = true;
|
||||
@@ -585,6 +593,43 @@ namespace ReallifeGamemode.Server.Events
|
||||
}
|
||||
}
|
||||
|
||||
if (player.Position.DistanceTo(FarmerJob.POSITION_SCHEUNE) <= 1.5)
|
||||
{
|
||||
if (JobManager.GetJob<FarmerJob>().GetUsersInJob().Contains(player))
|
||||
{
|
||||
player.TriggerEvent("SERVER:selectField");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (player.Position.DistanceTo(FarmerJob.POSITION_FAHRZEUGHALLE) <= 1.5)
|
||||
{
|
||||
if (FarmerJob.playersWaitingForVehicle.Contains(player) || true)
|
||||
{
|
||||
FarmerJob.spawnVehicle(player);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (CharacterCreator.surgeryPoint.DistanceTo(player.Position) <= 1.5)
|
||||
{
|
||||
if (user.GetData<bool>("duty"))
|
||||
{
|
||||
player.SendNotification("~r~Im Dienst kannst du nicht operiert werden", false);
|
||||
return;
|
||||
}
|
||||
if (JobBase.GetPlayerInJob().Contains(player))
|
||||
{
|
||||
player.SendNotification("~r~Im aktiven Job kannst du nicht operiert werden", false);
|
||||
return;
|
||||
}
|
||||
if (user.Wanteds > 0)
|
||||
{
|
||||
player.SendNotification("~r~Wenn du gesucht wirst kannst du nicht operiert werden", false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//if (CharacterCreator.surgeryPoint.DistanceTo(player.Position) <= 1.5)
|
||||
//{
|
||||
// if (user.GetData<bool>("duty"))
|
||||
@@ -963,7 +1008,7 @@ namespace ReallifeGamemode.Server.Events
|
||||
}
|
||||
|
||||
[RemoteEvent("keyPress:Z")]
|
||||
public void KeyPressX(Player player)
|
||||
public void KeyPressZ(Player player)
|
||||
{
|
||||
if (!player.IsLoggedIn() || player.GetData<bool>("isDead")) return;
|
||||
|
||||
|
||||
@@ -6,11 +6,15 @@ using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using System;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
|
||||
namespace ReallifeGamemode.Server.Events
|
||||
{
|
||||
public class UpdateCharacterCloth : Script
|
||||
{
|
||||
private static readonly ILogger logger = LogManager.GetLogger<UpdateCharacterCloth>();
|
||||
|
||||
[RemoteEvent("updateDutyProp")]
|
||||
public void UpdateDutyProp(Player player, int componentId, int componentVariation)
|
||||
{
|
||||
@@ -280,7 +284,8 @@ namespace ReallifeGamemode.Server.Events
|
||||
}
|
||||
}
|
||||
|
||||
if(data[0] == 2){
|
||||
if (data[0] == 2)
|
||||
{
|
||||
User payer = client.GetUser(dbContext);
|
||||
payer.GetCharacter(dbContext);
|
||||
payer.Character.Hair = Convert.ToByte(data[2]);
|
||||
@@ -288,13 +293,14 @@ namespace ReallifeGamemode.Server.Events
|
||||
}
|
||||
|
||||
client.GetUser(dbContext).Handmoney -= data[6];
|
||||
logger.LogInformation("Player {0} bought clothing for {1} dollars: slot = {2}, cloth = {3}, texture = {4}", client.Name, data[6], data[0], data[2], data[1]);
|
||||
dbContext.SaveChanges();
|
||||
//client.TriggerEvent("SERVER:SET_HANDMONEY", user.Handmoney);
|
||||
}
|
||||
client.TriggerEvent("clothesMenu:updateLast", data[2], data[1], data[4], data[5], data[3]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
[RemoteEvent("SERVER:BuyHairColor")]
|
||||
public void BuyHairColor(Player client, byte HairColor)
|
||||
@@ -332,7 +338,7 @@ namespace ReallifeGamemode.Server.Events
|
||||
User payer = client.GetUser(dbContext);
|
||||
payer.GetCharacter(dbContext);
|
||||
payer.Handmoney -= 50;
|
||||
payer.Character.HairHighlightColor = HairlightColor;
|
||||
payer.Character.HairHighlightColor = HairlightColor;
|
||||
// client.TriggerEvent("SERVER:SET_HANDMONEY", payer.Handmoney);
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
|
||||
@@ -140,14 +140,9 @@ namespace ReallifeGamemode.Server.Events
|
||||
{
|
||||
ServerVehicle carlocked = v.GetServerVehicle(dbContext);
|
||||
|
||||
if (state == true)
|
||||
if (carlocked != null)
|
||||
{
|
||||
carlocked.Locked = true;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
carlocked.Locked = false;
|
||||
carlocked.Locked = state;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
@@ -208,14 +203,9 @@ namespace ReallifeGamemode.Server.Events
|
||||
{
|
||||
ServerVehicle carlocked = vehicle.GetServerVehicle(dbContext);
|
||||
|
||||
if (state == true)
|
||||
if (carlocked != null)
|
||||
{
|
||||
carlocked.Locked = true;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
carlocked.Locked = false;
|
||||
carlocked.Locked = state;
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,7 +130,7 @@ namespace ReallifeGamemode.Server.Events
|
||||
player.SendNotification("Du hast nicht genügend Geld bei dir");
|
||||
return;
|
||||
}
|
||||
logger.LogInformation("Player {0} bought a {1} in ammunation", user.Name, weaponmodel);
|
||||
logger.LogInformation("Player {0} bought a weapon {1} in ammunation for {2} dollars", user.Name, weaponmodel, price);
|
||||
user.Handmoney -= price;
|
||||
dbContext.SaveChanges();
|
||||
player.GiveWeapon(NAPI.Util.WeaponNameToModel(weaponmodel), ammo);
|
||||
|
||||
@@ -3,10 +3,12 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Admin;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
@@ -22,6 +24,8 @@ namespace ReallifeGamemode.Server.Extensions
|
||||
{
|
||||
public static class PlayerExtension
|
||||
{
|
||||
private static ILogger Logger => LogManager.GetLogger(typeof(PlayerExtension));
|
||||
|
||||
/// <summary>
|
||||
/// Gibt das User-Objekt eines Player's zurück.
|
||||
/// Gibt nichts zurück, wenn der Player nicht eingeloggt ist
|
||||
@@ -108,6 +112,8 @@ namespace ReallifeGamemode.Server.Extensions
|
||||
faction.BankAccount.Balance += factionMoney;
|
||||
}
|
||||
|
||||
Logger.LogInformation("Player {0} was sent to jail for {1} seconds, executive factions got {2} dollars each", user.Name, time, factionMoney);
|
||||
|
||||
user.Wanteds = 0;
|
||||
user.JailTime = time;
|
||||
}
|
||||
@@ -216,12 +222,13 @@ namespace ReallifeGamemode.Server.Extensions
|
||||
|
||||
internal static void GiveWanteds(this User user, Player cop, int amount, string reason)
|
||||
{
|
||||
if (user.Wanteds + amount > 50)
|
||||
int newWanteds = user.Wanteds + amount;
|
||||
if (newWanteds > 50)
|
||||
{
|
||||
ChatService.ErrorMessage(cop, "Die Wanteds dürfen ein Limit von 50 nicht überschreiten");
|
||||
return;
|
||||
newWanteds = 50;
|
||||
}
|
||||
int newWanteds = user.Wanteds + amount;
|
||||
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
User dbUser = dbContext.Users.Where(u => u.Id == user.Id).FirstOrDefault();
|
||||
|
||||
@@ -9,6 +9,8 @@ using ReallifeGamemode.Database.Models;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Server Factions Medic Medic.cs
|
||||
@@ -20,6 +22,8 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
{
|
||||
public class Medic : Script
|
||||
{
|
||||
private static readonly ILogger logger = LogManager.GetLogger<Medic>();
|
||||
|
||||
public static List<MedicTask> ReviveTasks = new List<MedicTask>();
|
||||
public static List<MedicTask> HealTasks = new List<MedicTask>();
|
||||
public static List<MedicTask> FireTasks = new List<MedicTask>();
|
||||
@@ -34,7 +38,7 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
public Player dTarget;
|
||||
public int dPrice;
|
||||
}
|
||||
|
||||
|
||||
public static void AddTaskToList(MedicTask task)
|
||||
{
|
||||
if (task == null)
|
||||
@@ -84,7 +88,7 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
public static void UpdateReviveSperre()
|
||||
{
|
||||
var allRevivedPlayers = NAPI.Pools.GetAllPlayers().Where(c => c.HasData("reviveSperre"));
|
||||
foreach(var player in allRevivedPlayers)
|
||||
foreach (var player in allRevivedPlayers)
|
||||
{
|
||||
var timeLeft = player.GetData<int>("reviveSperre");
|
||||
|
||||
@@ -101,7 +105,7 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
|
||||
public static void CheckHealDecisionDistance()
|
||||
{
|
||||
foreach(var healAuftrag in HealDecisions.ToList())
|
||||
foreach (var healAuftrag in HealDecisions.ToList())
|
||||
{
|
||||
if (healAuftrag.dMedic.Position.DistanceTo(healAuftrag.dTarget.Position) > 5)
|
||||
{
|
||||
@@ -117,9 +121,9 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
public static void MakeHealDecision(Player target, bool decision)
|
||||
{
|
||||
var activeDecision = HealDecisions.FirstOrDefault(d => d.dTarget == target);
|
||||
if(decision == false)
|
||||
if (decision == false)
|
||||
{
|
||||
activeDecision.dMedic.SendNotification(activeDecision.dTarget.Name + " hat den Heal ~r~abgelehnt",false);
|
||||
activeDecision.dMedic.SendNotification(activeDecision.dTarget.Name + " hat den Heal ~r~abgelehnt", false);
|
||||
activeDecision.dTarget.SendNotification("Du hast den Heal ~r~abgelehnt", false);
|
||||
}
|
||||
else
|
||||
@@ -141,6 +145,8 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
targetUser.BankAccount.Balance -= bankMoney;
|
||||
}
|
||||
|
||||
logger.LogInformation("Player {0} accepted a heal for {1} dollars from medic {2}", target.Name, activeDecision.dPrice, activeDecision.dMedic.Name);
|
||||
|
||||
dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Id == 2).First().BankAccount.Balance += activeDecision.dPrice / 2;
|
||||
activeDecision.dMedic.GetUser(dbContext).Wage += activeDecision.dPrice / 2;
|
||||
|
||||
@@ -149,7 +155,7 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
activeDecision.dTarget.SafeSetHealth(100);
|
||||
activeDecision.dTarget.SendNotification($"Du wurdest von ~g~{activeDecision.dMedic.Name} ~s~ für ~g~{activeDecision.dPrice.ToMoneyString()} geheilt", false);
|
||||
activeDecision.dMedic.SendNotification($"Du hast ~g~{activeDecision.dTarget.Name} ~s~ für {activeDecision.dPrice.ToMoneyString()} geheilt", false);
|
||||
delHealTask(activeDecision.dTarget);
|
||||
delHealTask(activeDecision.dTarget);
|
||||
}
|
||||
HealDecisions.Remove(activeDecision);
|
||||
}
|
||||
@@ -166,7 +172,7 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
var taskTimeLeft = Math.Abs((int)(((DateTimeOffset)actualTime).ToUnixTimeSeconds() - ((DateTimeOffset)task.Time).ToUnixTimeSeconds() - reviveTaskTime));
|
||||
task.TimeLeft = taskTimeLeft;
|
||||
var medic = PlayerService.GetPlayerByNameOrId(task.MedicName);
|
||||
if(medic != null) medic.TriggerEvent("setTaskTimeLeft", taskTimeLeft);
|
||||
if (medic != null) medic.TriggerEvent("setTaskTimeLeft", taskTimeLeft);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -176,14 +182,14 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
{
|
||||
if (HealTasks.Count != 0)
|
||||
{
|
||||
foreach(var task in HealTasks)
|
||||
foreach (var task in HealTasks)
|
||||
{
|
||||
if(task.MedicName != "none")
|
||||
if (task.MedicName != "none")
|
||||
{
|
||||
var medic = PlayerService.GetPlayerByNameOrId(task.MedicName);
|
||||
var victim = PlayerService.GetPlayerByNameOrId(task.Victim);
|
||||
|
||||
if(medic == null || victim == null)
|
||||
if (medic == null || victim == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -241,11 +247,11 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
{
|
||||
reviveTask.MedicName = "none";
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
reviveTask.MedicName = player.Name;
|
||||
}
|
||||
|
||||
|
||||
ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " hat den Reviveauftrag von " + victim + " angenommen.", new List<int>() { 2 });
|
||||
target.SendNotification("~w~Sanitäter~g~ " + player.Name + "~w~ eilt zur Rettung.");
|
||||
break;
|
||||
@@ -261,7 +267,7 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
healTask.MedicName = player.Name;
|
||||
ChatService.BroadcastFaction("~y~[MEDIC] ~w~" + player.Name + " hat den Healauftrag von " + victim + " angenommen.", new List<int>() { 2 });
|
||||
target.SendNotification("~w~Sanitäter~g~ " + player.Name + "~w~ hat deinen Auftrag angenommen.");
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
@@ -275,7 +281,7 @@ namespace ReallifeGamemode.Server.Factions.Medic
|
||||
{
|
||||
MedicTask task = HealTasks.FirstOrDefault(t => t.Victim == player.Name);
|
||||
if (task != null)
|
||||
{
|
||||
{
|
||||
player.SetData("healauftrag", false);
|
||||
var medicPlayer = PlayerService.GetPlayerByNameOrId(task.MedicName);
|
||||
if (medicPlayer != null)
|
||||
|
||||
@@ -9,9 +9,11 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Wanted;
|
||||
|
||||
@@ -19,13 +21,15 @@ namespace ReallifeGamemode.Server.Finance
|
||||
{
|
||||
public class Economy
|
||||
{
|
||||
private static readonly ILogger logger = LogManager.GetLogger<Economy>();
|
||||
|
||||
public static Dictionary<int, Paycheck> Paychecks { get; set; } = new Dictionary<int, Paycheck>();
|
||||
|
||||
public static (int, float, float) GetEconomyClass(Player client, int wage)
|
||||
{
|
||||
int bankAccount = client.GetUser().BankAccount.Balance;
|
||||
float financialHelp = -(float)Math.Pow(1.0001, -(bankAccount + client.GetUser().Handmoney)) * -1000;
|
||||
float financialInterest = 1 - (float)Math.Pow(1.00006, -wage) * 1;
|
||||
float financialInterest = 1 - (float)Math.Pow(1.000041, -wage) * 1;
|
||||
if (financialInterest >= 0.7)
|
||||
financialInterest = 0.7f;
|
||||
|
||||
@@ -162,6 +166,15 @@ namespace ReallifeGamemode.Server.Finance
|
||||
}
|
||||
}
|
||||
|
||||
logger.LogInformation("Player {0} has a payday of {1} dollars. old balance: {2}, new balance: {3}, wage: {4}, interest: {5}, other: {6}",
|
||||
client.Name,
|
||||
paycheck.Amount,
|
||||
u.BankAccount.Balance,
|
||||
u.BankAccount.Balance + paycheck.Amount,
|
||||
paycheck.Wage,
|
||||
paycheck.FinancialInterest,
|
||||
paycheck.otheramount);
|
||||
|
||||
u.BankAccount.Balance += paycheck.Amount;
|
||||
u.Wage = 0;
|
||||
u.otheramount = 0;
|
||||
@@ -173,7 +186,7 @@ namespace ReallifeGamemode.Server.Finance
|
||||
.Where(hR => hR.UserId == u.Id);
|
||||
|
||||
dbContext.Factions.Include(f => f.BankAccount).Where(f => f.Id == 2).First().BankAccount.Balance += (int)(paycheck.HealthInsurance * 0.1);
|
||||
|
||||
logger.LogInformation("Medic faction got a health insurance payment of {0} dollars from player {1}", paycheck.HealthInsurance * 0.1, client.Name);
|
||||
if (rentals.Any())
|
||||
{
|
||||
foreach (var rental in rentals)
|
||||
@@ -181,6 +194,7 @@ namespace ReallifeGamemode.Server.Finance
|
||||
if (rental?.House?.BankAccount != null)
|
||||
{
|
||||
rental.House.BankAccount.Balance += (int)(rental.House.RentalFee * 0.7);
|
||||
logger.LogInformation("House {0} got a rentalfee of {1} from paycheck from user {2}", rental.House.Id, rental.House.RentalFee * 0.7, u.Name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,16 +5,20 @@ using System.Threading.Tasks;
|
||||
using System.Timers;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
|
||||
namespace ReallifeGamemode.Server.Gangwar
|
||||
{
|
||||
public class Turf
|
||||
{
|
||||
private static readonly ILogger logger = LogManager.GetLogger<Turf>();
|
||||
|
||||
public int TurfID { get; set; }
|
||||
public string TurfName { get; set; }
|
||||
public int Color { get; set; }
|
||||
@@ -203,7 +207,7 @@ namespace ReallifeGamemode.Server.Gangwar
|
||||
public void enter(Player client)
|
||||
{
|
||||
User user = client.GetUser();
|
||||
if(user == null || user.FactionId == null)
|
||||
if (user == null || user.FactionId == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -276,6 +280,7 @@ namespace ReallifeGamemode.Server.Gangwar
|
||||
a.TriggerEvent("CLIENT:loose");
|
||||
}
|
||||
ownerFaction.BankAccount.Balance += 15000;
|
||||
logger.LogInformation("Gang {0} successfully defended the turf {1} against gang {2} and gained {3} dollars", getOwner(), getName(), getAttacker(), 15000);
|
||||
}
|
||||
else if (getOwner() != FactionName)
|
||||
{
|
||||
@@ -292,6 +297,7 @@ namespace ReallifeGamemode.Server.Gangwar
|
||||
if (a != null)
|
||||
a.TriggerEvent("CLIENT:win");
|
||||
}
|
||||
logger.LogInformation("Gang {0} successfully took over the turf {1} from gang {2} and gained {3} dollars", getAttacker(), getName(), getOwner(), 10000);
|
||||
this.Owner = FactionName;
|
||||
attackerFaction.BankAccount.Balance += 10000;
|
||||
Turfs turf = dbContext.Turfs.Where(t => t.Id == getId()).FirstOrDefault();
|
||||
@@ -379,7 +385,7 @@ namespace ReallifeGamemode.Server.Gangwar
|
||||
{
|
||||
if (getOwner() == FactionName)
|
||||
{
|
||||
NAPI.Util.ConsoleOutput($"GangwarKill - Adding Point for Faction {getAttacker()}");
|
||||
NAPI.Util.ConsoleOutput($"GangwarKill - Adding Point for Faction {getAttacker()}");
|
||||
Att_Score += 1;
|
||||
}
|
||||
else if (getAttacker() == FactionName)
|
||||
|
||||
176
ReallifeGamemode.Server/Job/FarmerJob.cs
Normal file
176
ReallifeGamemode.Server/Job/FarmerJob.cs
Normal file
@@ -0,0 +1,176 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
|
||||
namespace ReallifeGamemode.Server.Job
|
||||
{
|
||||
public class FarmerJob : JobBase
|
||||
{
|
||||
public override int Id => 5;
|
||||
|
||||
public override string Name => "Farmer";
|
||||
|
||||
public override bool NeedVehicleToStart => false;
|
||||
|
||||
public override bool Deactivated => true;
|
||||
|
||||
private static FarmerJob _Instance;
|
||||
|
||||
public static Vector3 POSITION_JOB_START = new Vector3(2434.2983, 4976.952, 46.571423);
|
||||
public static Vector3 POSITION_SCHEUNE = new Vector3(2416.3723, 4993.94, 45);
|
||||
public static Vector3 POSITION_SCHEUNE_LABEL = new Vector3(2416.3723, 4993.94, 46);
|
||||
public static Vector3 POSITION_FAHRZEUGHALLE = new Vector3(2494.346, 4964.773, 43.5833);
|
||||
public static Vector3 POSITION_FAHRZEUGHALLE_LABEL = new Vector3(2494.346, 4964.773, 44.5833);
|
||||
|
||||
private static TextLabel labelScheune = null;
|
||||
private static TextLabel labelFahrzeughalle = null;
|
||||
|
||||
public static List<Player> playersWaitingForVehicle = new List<Player>();
|
||||
public static Dictionary<Player, String> playerHasField = new Dictionary<Player, String>();
|
||||
|
||||
private static readonly Dictionary<Vector3, float> VEHICLE_SPAWNS = new Dictionary<Vector3, float>
|
||||
{
|
||||
{ new Vector3(2500.026, 4982.7485, 44.50283), (float)-148.8139 },
|
||||
{ new Vector3(2511.2246, 4981.6924, 44.722702), (float)139.25208 },
|
||||
{ new Vector3(2518.3486, 4977.3125, 44.716434), (float)131.3338 },
|
||||
{ new Vector3(2522.8215, 4966.823, 44.53701), (float)118.17867 }
|
||||
};
|
||||
|
||||
private static int spawnIndex = 0;
|
||||
|
||||
public static readonly List<Vector3> CHECKPOINTS_FIELD1 = new List<Vector3>()
|
||||
{
|
||||
new Vector3(2335.83984375, 5114.8525390625, 47.83000183105469),
|
||||
new Vector3(2295.81201171875, 5153.26123046875, 54.64070129394531),
|
||||
new Vector3(2277.558837890625, 5139.4453125, 53.3763542175293),
|
||||
new Vector3(2318.217041015625, 5099.271484375, 46.98373031616211),
|
||||
new Vector3(2283.467041015625, 5066.1025390625, 45.97780227661133),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3(),
|
||||
new Vector3()
|
||||
};
|
||||
|
||||
public FarmerJob()
|
||||
{
|
||||
JobStart += FarmerDriverJobJobStart;
|
||||
JobStop += FarmerDriverJobJobStop;
|
||||
}
|
||||
|
||||
public static FarmerJob GetInstance()
|
||||
{
|
||||
if (_Instance == null)
|
||||
_Instance = new FarmerJob();
|
||||
return _Instance;
|
||||
}
|
||||
private void FarmerDriverJobJobStart(Player player)
|
||||
{
|
||||
labelScheune = NAPI.TextLabel.CreateTextLabel("Scheune - Drücke ~y~E ~w~um ein Feld auszuwählen", POSITION_SCHEUNE_LABEL, 15, 1, 0, new Color(255, 255, 255), false, 0);
|
||||
|
||||
player.SendChatMessage("~y~[JOB]~w~ Begebe dich zur Scheune um Felder zu pachten");
|
||||
player.TriggerEvent("farmerSetCheckpoint", POSITION_SCHEUNE, 1, 1, "scheune");
|
||||
}
|
||||
private void FarmerDriverJobJobStop(Player player)
|
||||
{
|
||||
player.SendChatMessage("Job stop");
|
||||
}
|
||||
|
||||
[RemoteEvent("CLIENT:StartFieldSelected")]
|
||||
public void startFieldSelected(Player player, String field)
|
||||
{
|
||||
labelScheune.Delete();
|
||||
labelFahrzeughalle = NAPI.TextLabel.CreateTextLabel("Fahrzeughalle - Drücke ~y~E ~w~um dir ein Fahrzeug zu holen", POSITION_FAHRZEUGHALLE_LABEL, 15, 1, 0, new Color(255, 255, 255), false, 0);
|
||||
player.SendChatMessage("~y~[JOB]~w~ Begebe dich zur nun zur Fahrzeughalle um dein Fahrzeug abzuholen");
|
||||
player.TriggerEvent("farmerSetCheckpoint", POSITION_FAHRZEUGHALLE, 1, 1, "fahrzeughalle");
|
||||
playersWaitingForVehicle.Add(player);
|
||||
playerHasField.Add(player, field);
|
||||
}
|
||||
|
||||
public static void spawnVehicle(Player player)
|
||||
{
|
||||
if (!playerHasField.ContainsKey(player))
|
||||
playerHasField.Add(player, "Landwirt (4)");
|
||||
|
||||
player.SendChatMessage("player " + player.Name + " with field " + playerHasField[player]);
|
||||
|
||||
//NEXT: verschiedene spawnpositionen für fahrzeuge in VEHICLE_SPAWNS
|
||||
|
||||
//Vector3 spawnPoint = VEHICLE_SPAWNS[spawnIndex++ % VEHICLE_SPAWNS.Count];
|
||||
Random rnd = new Random();
|
||||
spawnIndex = rnd.Next(VEHICLE_SPAWNS.Count);
|
||||
|
||||
Vector3 spawnPoint = VEHICLE_SPAWNS.ElementAt(spawnIndex).Key;
|
||||
float vehicleHeading = VEHICLE_SPAWNS[spawnPoint];
|
||||
Vehicle vehicle = null;
|
||||
|
||||
if (playerHasField[player] == "Knecht (1)")
|
||||
{
|
||||
vehicle = NAPI.Vehicle.CreateVehicle(0x61D6BA8C, spawnPoint, vehicleHeading, 111, 111, "JOB");
|
||||
} else if (playerHasField[player] == "Hilfsarbeiter (2)")
|
||||
{
|
||||
vehicle = NAPI.Vehicle.CreateVehicle(0x61D6BA8C, spawnPoint, vehicleHeading, 111, 111, "JOB");
|
||||
}
|
||||
else if (playerHasField[player] == "Ackersmann (3)")
|
||||
{
|
||||
vehicle = NAPI.Vehicle.CreateVehicle(0x843B73DE, spawnPoint, vehicleHeading, 111, 111, "JOB");
|
||||
}
|
||||
else if (playerHasField[player] == "Landwirt (4)")
|
||||
{
|
||||
vehicle = NAPI.Vehicle.CreateVehicle(0x843B73DE, spawnPoint, vehicleHeading, 111, 111, "JOB");
|
||||
}
|
||||
else if (playerHasField[player] == "Ökonom(5)")
|
||||
{
|
||||
vehicle = NAPI.Vehicle.CreateVehicle(0x843B73DE, spawnPoint, vehicleHeading, 111, 111, "JOB");
|
||||
}
|
||||
|
||||
vehicle.NumberPlate = "JOB-" + vehicle.Id;
|
||||
|
||||
_CHANGING_VEHICLE.Add(player);
|
||||
if (playerVehiclePair.ContainsKey(player))
|
||||
{
|
||||
Vehicle previousVehicle = null;
|
||||
if (playerVehiclePair[player] != null)
|
||||
previousVehicle = playerVehiclePair[player];
|
||||
playerVehiclePair.Remove(player);
|
||||
|
||||
previousVehicle?.Delete();
|
||||
}
|
||||
playerVehiclePair.Add(player, vehicle);
|
||||
|
||||
player.SetIntoVehicle(vehicle.Handle, 0);
|
||||
|
||||
}
|
||||
|
||||
public override void LastCheckpoint(Player player)
|
||||
{
|
||||
//nothing
|
||||
}
|
||||
|
||||
public override void StartJobEndTimer(Player player)
|
||||
{
|
||||
//nothing
|
||||
}
|
||||
|
||||
public override bool CheckVehicle(Player player, Vehicle vehicle)
|
||||
{
|
||||
//nothig, kack jobsystem
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -24,8 +24,8 @@ namespace ReallifeGamemode.Server.Job
|
||||
public const string INTERMEDIATE = "Fortgeschrittener";
|
||||
public const string PROFESSIONAL = "Profi";
|
||||
|
||||
public const int WAGE_BEGINNER = 350;
|
||||
public const int WAGE_INTERMEDIATE = 950;
|
||||
public const int WAGE_BEGINNER = 600;
|
||||
public const int WAGE_INTERMEDIATE = 1300;
|
||||
|
||||
public const uint VEHICLE_BEGINNER = (uint)VehicleHash.Cuban800;
|
||||
public const uint VEHICLE_INTERMEDIATE = (uint)VehicleHash.Velum2;
|
||||
@@ -152,6 +152,8 @@ namespace ReallifeGamemode.Server.Job
|
||||
|
||||
private void _JobStop(Player player)
|
||||
{
|
||||
player.TriggerEvent("SERVER:Vehicle:SetDefaultEngineBehavior");
|
||||
|
||||
if (!playerVehiclePair.ContainsKey(player))
|
||||
return;
|
||||
|
||||
|
||||
@@ -142,7 +142,7 @@ namespace ReallifeGamemode.Server
|
||||
DrivingSchool.DrivingSchool.Setup();
|
||||
PlaneSchool.Setup();
|
||||
Gangwar.Gangwar.loadTurfs();
|
||||
Bank.bank.Setup();
|
||||
Bank.Bank.Setup();
|
||||
Introduction.Setup();
|
||||
PositionManager.LoadPositionManager();
|
||||
LoadManager.LoadLoadManager();
|
||||
@@ -182,7 +182,7 @@ namespace ReallifeGamemode.Server
|
||||
}
|
||||
|
||||
Player player = PlayerService.GetPlayerByNameOrId(user);
|
||||
if(player == null)
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2,9 +2,11 @@
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Managers ATMManager (ATMManager.cs)
|
||||
@@ -18,6 +20,8 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
public static List<ColShape> ATMColShapes = new List<ColShape>();
|
||||
|
||||
private static readonly ILogger logger = LogManager.GetLogger<ATMManager>();
|
||||
|
||||
public static void InitATMs()
|
||||
{
|
||||
var addedATMs = 0;
|
||||
@@ -112,15 +116,16 @@ namespace ReallifeGamemode.Server.Managers
|
||||
//client.TriggerEvent("SERVER:WORLD_INTERACTION:ATM_ERROR", 0, checkATM.Balance);
|
||||
client.SendNotification("~r~Nicht genügend Geld auf der Hand!");
|
||||
}
|
||||
else if(inputField1 < 0)
|
||||
else if (inputField1 < 0)
|
||||
{
|
||||
client.SendNotification("~r~Ungültiger Betrag!");
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
var updateBankMoneyIn = user.BankAccount;
|
||||
var updateATMBalanceIn = dbContext.ATMs.FirstOrDefault(a => a.Id == nearATM);
|
||||
user.Handmoney -= inputField1;
|
||||
logger.LogInformation("Player {0} did a deposit of {1} dollars at atm {2}", client.Name, inputField1, nearATM);
|
||||
updateBankMoneyIn.Balance += inputField1;
|
||||
updateATMBalanceIn.Balance += inputField1;
|
||||
//client.TriggerEvent("SERVER:SET_HANDMONEY", user.Handmoney);
|
||||
@@ -149,6 +154,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
var updateATMBalanceOut = dbContext.ATMs.FirstOrDefault(a => a.Id == nearATM);
|
||||
updateHandMoneyOut.Handmoney += inputField1;
|
||||
user.BankAccount.Balance -= inputField1;
|
||||
logger.LogInformation("Player {0} did a withdraw of {1} dollars at atm {2}", client.Name, inputField1, nearATM);
|
||||
updateATMBalanceOut.Balance -= inputField1;
|
||||
//client.TriggerEvent("SERVER:SET_HANDMONEY", updateHandMoneyOut.Handmoney);
|
||||
}
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Events;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
|
||||
namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
@@ -14,6 +16,8 @@ namespace ReallifeGamemode.Server.Managers
|
||||
public static Vector3 surgeryPoint = new Vector3(342.30032, -1397.7542, 32.50923);
|
||||
public const int SURGERY_PRICE = 15000;
|
||||
|
||||
private static readonly ILogger logger = LogManager.GetLogger<CharacterCreator>();
|
||||
|
||||
public CharacterCreator()
|
||||
{
|
||||
//LoadSurgery();
|
||||
@@ -273,6 +277,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.LogInformation("Player {0} bought a surgery for {1} dollars", player.Name, SURGERY_PRICE);
|
||||
user.BankAccount.Balance -= SURGERY_PRICE;
|
||||
}
|
||||
saveCharacter.Remove(oldChar);
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
|
||||
@@ -11,8 +13,11 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
internal class CityHallManager : Script
|
||||
{
|
||||
private const int GROUP_PRICE = 50000;
|
||||
private static readonly Vector3 _cityHallPosition = new Vector3(273.22, -278.14, 53.9);
|
||||
|
||||
private static readonly ILogger logger = LogManager.GetLogger<CityHallManager>();
|
||||
|
||||
public static void LoadCityHall()
|
||||
{
|
||||
NAPI.Marker.CreateMarker(GTANetworkAPI.MarkerType.VerticalCylinder, _cityHallPosition.Subtract(new Vector3(0, 0, 1.7)), new Vector3(), new Vector3(), 1.0f, new Color(255, 255, 255));
|
||||
@@ -57,13 +62,14 @@ namespace ReallifeGamemode.Server.Managers
|
||||
u.Group = group;
|
||||
u.GroupRank = GroupRank.OWNER;
|
||||
|
||||
if (player.GetUser(dbContext).BankAccount.Balance < 50000)
|
||||
if (u.BankAccount.Balance < GROUP_PRICE)
|
||||
{
|
||||
ChatService.ErrorMessage(player, "Du hast nicht genug Geld");
|
||||
return;
|
||||
}
|
||||
|
||||
player.GetUser(dbContext).BankAccount.Balance -= 50000;
|
||||
logger.LogInformation("Player {0} created a group for {1} dollars", player.Name, GROUP_PRICE);
|
||||
u.BankAccount.Balance -= GROUP_PRICE;
|
||||
dbContext.SaveChanges();
|
||||
|
||||
ChatService.BroadcastGroup($"Die Gruppe \"{name}\" wurde erfolgreich erstellt.", group);
|
||||
|
||||
@@ -16,6 +16,8 @@ using ReallifeGamemode.Server.Events;
|
||||
using System;
|
||||
using ReallifeGamemode.Server.Core.API;
|
||||
using ReallifeGamemode.Server.Factions.Medic;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Managers Interaction (InteractionManager.cs)
|
||||
@@ -27,6 +29,8 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
public class InteractionManager : Script
|
||||
{
|
||||
private static readonly ILogger logger = LogManager.GetLogger<InteractionManager>();
|
||||
|
||||
#region Eigeninteraktionen Taste-M
|
||||
|
||||
[RemoteEvent("CLIENT:InteractionMenu_AcceptInvite")]
|
||||
@@ -51,7 +55,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
return;
|
||||
}
|
||||
|
||||
using (var dbContext = new DatabaseContext(true))
|
||||
using (var dbContext = new DatabaseContext())
|
||||
{
|
||||
User u = leader.GetUser(dbContext);
|
||||
User own = player.GetUser(dbContext);
|
||||
@@ -484,8 +488,8 @@ namespace ReallifeGamemode.Server.Managers
|
||||
using var dbContext = new DatabaseContext();
|
||||
var user = player.GetUser(dbContext);
|
||||
ServerVehicle serverVehicle = dbContext.ServerVehicles.FirstOrDefault(v => v.Id == id);
|
||||
|
||||
if(serverVehicle is UserVehicle)
|
||||
|
||||
if (serverVehicle is UserVehicle)
|
||||
{
|
||||
UserVehicle userVehicle = dbContext.UserVehicles.Where(v => v.Id == id && v.UserId == user.Id).FirstOrDefault();
|
||||
var vehPrice = userVehicle.Price;
|
||||
@@ -493,25 +497,29 @@ namespace ReallifeGamemode.Server.Managers
|
||||
GTANetworkAPI.Vehicle veh = VehicleManager.GetVehicleFromServerVehicle(userVehicle);
|
||||
user.BankAccount.Balance += backPrice;
|
||||
|
||||
ChatService.SendMessage(player, $"~b~[INFO]~s~ Du hast durch den Autoverkauf ~g~{backPrice.ToMoneyString()} ~s~erhalten.");
|
||||
logger.LogInformation("Player {0} sold his uservehicle {1} for {2} dollars", player.Name, userVehicle.Model.ToString(), backPrice);
|
||||
|
||||
ChatService.SendMessage(player, $"~b~[INFO]~s~ Du hast durch den Autoverkauf ~g~{backPrice.ToMoneyString()}~s~ erhalten.");
|
||||
|
||||
VehicleManager.DeleteVehicle(veh);
|
||||
dbContext.UserVehicles.Remove(userVehicle);
|
||||
player.SendNotification("~g~Du hast dein Fahrzeug verkauft");
|
||||
}
|
||||
else if(serverVehicle is FactionVehicle)
|
||||
else if (serverVehicle is FactionVehicle)
|
||||
{
|
||||
FactionVehicle factionVehicle = dbContext.FactionVehicles.FirstOrDefault(v => v.Id == id);
|
||||
var backPrice = (int)(factionVehicle.BuyPrice * 1.5 * 0.4);
|
||||
user.Faction.BankAccount.Balance += backPrice;
|
||||
|
||||
logger.LogInformation("Player {0} sold thr factionvehicle {1} of faction {2} for {3} dollars", player.Name, factionVehicle.Model.ToString(), user.Faction.Id, backPrice);
|
||||
|
||||
ChatService.SendMessage(player, $"~b~[INFO]~s~ Die Fraktionskasse hat ~g~{backPrice.ToMoneyString()}~s~ erhalten.");
|
||||
|
||||
VehicleManager.DeleteVehicle(VehicleManager.GetVehicleFromServerVehicle(factionVehicle));
|
||||
|
||||
dbContext.FactionVehicles.Remove(factionVehicle);
|
||||
player.SendNotification("~g~Du hast dein Fraktionsfahrzeug verkauft");
|
||||
}
|
||||
}
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
|
||||
@@ -564,13 +572,13 @@ namespace ReallifeGamemode.Server.Managers
|
||||
ChatService.ErrorMessage(player, "Das Fahrzeug konnte nicht verkauft werden. Bitte melde dich bei der Leaderverwaltung");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
var backPrice = (int)(price.Price * 1.5 * 0.4);
|
||||
|
||||
player.SetData<bool>("SellVehicleDecision", true);
|
||||
player.SetData<int>("VehicleToSell", id);
|
||||
ChatService.SendMessage(player, "~s~Möchtest du das Fahrzeug ~y~" + veh.DisplayName + " ~s~wirklich für ~g~" + backPrice.ToMoneyString() + " ~s~verkaufen? Drücke ~g~J~s~ zum Bestätigen oder ~r~N ~s~zum Abbrechen.");
|
||||
ChatService.SendMessage(player, "~s~Möchtest du das Fahrzeug ~y~" + veh.DisplayName + " ~s~wirklich für ~g~" + backPrice.ToMoneyString() + " ~s~verkaufen? Drücke ~g~J~s~ zum Bestätigen oder ~r~N ~s~zum Abbrechen.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -733,6 +741,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
fibBankAccount.Balance += (int)(ticket_amount / 100 * 60);
|
||||
lspdBankAccount.Balance += (int)(ticket_amount / 100 * 40);
|
||||
}
|
||||
logger.LogInformation("Player {0} accepted a ticket of {1} dollars", player.Name, ticket_amount);
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
target.ResetData("ticket_boolean");
|
||||
@@ -798,6 +807,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
if (amount > 0 && amount <= 5000)
|
||||
{
|
||||
logger.LogInformation("Player {0} did a local payment of {1} dollars to player {2}", player.Name, amount, target.Name);
|
||||
player.SendNotification($"~w~Du hast ~y~{targetname} ~w~{amount.ToMoneyString()} gegeben.");
|
||||
target.SendNotification($"~w~ Du hast von ~y~{playername} ~w~{amount.ToMoneyString()} erhalten.", true);
|
||||
|
||||
|
||||
@@ -14,6 +14,8 @@ using ReallifeGamemode.Server.Services;
|
||||
using ReallifeGamemode.Server.Util;
|
||||
using ReallifeGamemode.Services;
|
||||
using ReallifeGamemode.Server.Types;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Managers InventoryManager (InventoryManager.cs)
|
||||
@@ -25,6 +27,9 @@ namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
public class InventoryManager : Script
|
||||
{
|
||||
private const int MAX_USER_INVENTORY = 40000;
|
||||
private static readonly ILogger logger = LogManager.GetLogger<InventoryManager>();
|
||||
|
||||
public static List<IItem> itemList;
|
||||
|
||||
private static Dictionary<int, (int[], int[])> TradeItems { get; set; } = new Dictionary<int, (int[], int[])>();
|
||||
@@ -224,7 +229,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
using (var context = new DatabaseContext())
|
||||
{
|
||||
List<UserItem> userItems = context.UserItems.ToList().FindAll(i => i.UserId == user.Id);
|
||||
List<UserItem> userItems = context.UserItems.Where(i => i.UserId == user.Id).ToList();
|
||||
foreach (var item in userItems)
|
||||
{
|
||||
IItem iItem = GetItemById(item.ItemId);
|
||||
@@ -381,7 +386,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
int setAmount = 0;
|
||||
for (int i = 1; i <= amount; i++)
|
||||
{
|
||||
if (GetUserInventoryWeight(player) + (i * GetItemById(itemId).Gewicht) > 40000)
|
||||
if (GetUserInventoryWeight(player) + (i * GetItemById(itemId).Gewicht) > MAX_USER_INVENTORY)
|
||||
{
|
||||
break;
|
||||
}
|
||||
@@ -589,7 +594,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
break;
|
||||
}
|
||||
context.SaveChanges();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -608,6 +613,14 @@ namespace ReallifeGamemode.Server.Managers
|
||||
return;
|
||||
}
|
||||
|
||||
logger.LogInformation("Player {0} bought the item {1} for {2} dollars", client.Name, shopItem.Name, shopItem.Price);
|
||||
|
||||
if (GetUserInventoryWeight(client) + shopItem.Gewicht > MAX_USER_INVENTORY)
|
||||
{
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
UserItem item = dbContext.UserItems.Where(i => i.ItemId == shopItem.Id && i.UserId == user.Id).FirstOrDefault();
|
||||
if (item == null)
|
||||
{
|
||||
|
||||
@@ -9,6 +9,7 @@ using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Shop.Ammunation;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Job;
|
||||
|
||||
|
||||
namespace ReallifeGamemode.Server.Managers
|
||||
@@ -207,11 +208,18 @@ namespace ReallifeGamemode.Server.Managers
|
||||
jobId = 4,
|
||||
Skill = 0
|
||||
};
|
||||
JobPoint jobPointFarmer = new JobPoint()
|
||||
{
|
||||
Position = FarmerJob.POSITION_JOB_START,
|
||||
jobId = 5,
|
||||
Skill = 0
|
||||
};
|
||||
|
||||
JobPoints.Add(jobPointRefuseCollector);
|
||||
JobPoints.Add(jobPointPilot);
|
||||
JobPoints.Add(jobPointPilot2);
|
||||
JobPoints.Add(jobPointBusDriver);
|
||||
JobPoints.Add(jobPointFarmer);
|
||||
|
||||
foreach (JobPoint p in JobPoints)
|
||||
{
|
||||
@@ -240,6 +248,11 @@ namespace ReallifeGamemode.Server.Managers
|
||||
NAPI.TextLabel.CreateTextLabel("Busfahrer - Dr\u00fccke ~y~E~s~ um Job zu starten/beenden", p.Position, 15, 1, 0, new Color(255, 255, 255), false, 0);
|
||||
NAPI.Blip.CreateBlip(513, p.Position, 1f, 16, "Busfahrer", 255, 0, true);
|
||||
}
|
||||
if (p.jobId == 5)
|
||||
{
|
||||
NAPI.TextLabel.CreateTextLabel("Farmer - Dr\u00fccke ~y~E~s~ um Job zu starten/beenden", p.Position, 15, 1, 0, new Color(255, 255, 255), false, 0);
|
||||
NAPI.Blip.CreateBlip(369, p.Position, 1f, 16, "Farmer", 255, 0, true);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion JobPoints
|
||||
|
||||
@@ -2,14 +2,17 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
|
||||
namespace ReallifeGamemode.Server.Managers
|
||||
{
|
||||
internal class TuningManager : Script
|
||||
{
|
||||
private static readonly ILogger logger = LogManager.GetLogger<TuningManager>();
|
||||
private static List<ColShape> tuningGarages = new List<ColShape>();
|
||||
|
||||
public static void LoadTuningGarages()
|
||||
@@ -220,6 +223,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
ServerVehicle sV = player.Vehicle.GetServerVehicle(dbContext);
|
||||
if (sV == null) return;
|
||||
logger.LogInformation("Player {0} bought a tuning part for server vehicle {1}, slot: {2}, mod: {3} for {4} dollars", player.Name, sV.Id, slot, index, price);
|
||||
|
||||
VehicleMod vMod = dbContext.VehicleMods.FirstOrDefault(m => m.ServerVehicleId == sV.Id && m.Slot == slot);
|
||||
if (vMod == null && index != -1)
|
||||
@@ -265,7 +269,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
veh.SecondaryColor = color;
|
||||
}
|
||||
|
||||
using var dbContext = new DatabaseContext(true);
|
||||
using var dbContext = new DatabaseContext();
|
||||
ServerVehicle serverVeh = VehicleManager.GetServerVehicleFromVehicle(veh, dbContext);
|
||||
|
||||
if (serverVeh == null)
|
||||
@@ -311,6 +315,7 @@ namespace ReallifeGamemode.Server.Managers
|
||||
|
||||
if (serverVehicle != null)
|
||||
{
|
||||
logger.LogInformation("Player {0} bought wheels for server vehicle {1}, type: {2}, wheels: {3} for {4} dollars", player.Name, serverVehicle.Id, wheelType, wheelIndex, price);
|
||||
VehicleMod typeMod = dbContext.VehicleMods.Where(m => m.ServerVehicleId == serverVehicle.Id && m.Slot == -2).FirstOrDefault();
|
||||
if (typeMod == null)
|
||||
{
|
||||
|
||||
@@ -2,9 +2,11 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using ReallifeGamemode.Database.Entities;
|
||||
using ReallifeGamemode.Database.Models;
|
||||
using ReallifeGamemode.Server.Extensions;
|
||||
using ReallifeGamemode.Server.Log;
|
||||
using ReallifeGamemode.Server.Managers;
|
||||
using ReallifeGamemode.Server.Services;
|
||||
|
||||
@@ -12,6 +14,7 @@ namespace ReallifeGamemode.Server.Util
|
||||
{
|
||||
class Rentcar : Script
|
||||
{
|
||||
private static readonly ILogger logger = LogManager.GetLogger<Rentcar>();
|
||||
//In Sekunden
|
||||
public static int PAY_TIMER = 180;
|
||||
|
||||
@@ -49,18 +52,23 @@ namespace ReallifeGamemode.Server.Util
|
||||
{
|
||||
noobspawnVehicleProperties.Add(new RentcarProperty("bmx", 10));
|
||||
noobspawnVehicleProperties.Add(new RentcarProperty("faggio3", 50));
|
||||
noobspawnVehicleProperties.Add(new RentcarProperty("panto", 200));
|
||||
|
||||
stadthalleVehicleProperties.Add(new RentcarProperty("bmx", 10));
|
||||
stadthalleVehicleProperties.Add(new RentcarProperty("faggio3", 50));
|
||||
stadthalleVehicleProperties.Add(new RentcarProperty("panto", 200));
|
||||
|
||||
knastVehicleProperties.Add(new RentcarProperty("bmx", 10));
|
||||
knastVehicleProperties.Add(new RentcarProperty("faggio3", 50));
|
||||
knastVehicleProperties.Add(new RentcarProperty("panto", 200));
|
||||
|
||||
paletoVehicleProperties.Add(new RentcarProperty("bmx", 10));
|
||||
paletoVehicleProperties.Add(new RentcarProperty("faggio3", 50));
|
||||
paletoVehicleProperties.Add(new RentcarProperty("panto", 200));
|
||||
|
||||
lamesaVehicleProperties.Add(new RentcarProperty("bmx", 10));
|
||||
lamesaVehicleProperties.Add(new RentcarProperty("faggio3", 50));
|
||||
lamesaVehicleProperties.Add(new RentcarProperty("panto", 200));
|
||||
}
|
||||
|
||||
public static void cancelRent(Player player)
|
||||
@@ -69,6 +77,7 @@ namespace ReallifeGamemode.Server.Util
|
||||
{
|
||||
User user = player.GetUser(dbContext);
|
||||
user.BankAccount.Balance -= mapPlayerRentcarBill[player.Name].Item2;
|
||||
logger.LogInformation("Player {0} cancelled a rent and payed {1} dollars", player.Name, mapPlayerRentcarBill[player.Name].Item2);
|
||||
dbContext.SaveChanges();
|
||||
}
|
||||
|
||||
@@ -105,9 +114,9 @@ namespace ReallifeGamemode.Server.Util
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
player.TriggerEvent("BN_Show", "Fahrzeug seit ~b~" + (int)(time / 60) + "~w~ Minuten gemietet (Gesamtkosten: ~g~$~s~" + bill + ").");
|
||||
mapPlayerRentcarBill[player.Name] = (mapPlayerRentcarBill[player.Name].Item1, bill);
|
||||
mapPlayerRentcarBill[player.Name] = (mapPlayerRentcarBill[player.Name].Item1, bill);
|
||||
}
|
||||
|
||||
[RemoteEvent("SERVER:rentcarBooked")]
|
||||
|
||||
@@ -20,9 +20,15 @@ namespace ReallifeGamemode.Server.WeaponDeal
|
||||
public static readonly VehicleHash WEAPON_DEAL_GANG_VEHICLE_HASH = VehicleHash.Gburrito2;
|
||||
public static readonly VehicleHash WEAPON_DEAL_STAATSFRAK_VEHICLE_HASH = VehicleHash.Policet;
|
||||
|
||||
private const int WEAPON_AMOUNT_GANG = 2;
|
||||
private const int WEAPON_AMOUNT_COP = 4;
|
||||
private const int WEAPON_AMOUNT_COP_STUNGUN = 4;
|
||||
private const int WEAPON_AMOUNT_GANG = 1;
|
||||
private const int WEAPON_AMOUNT_GANG_PISTOL50 = 3;
|
||||
private const int WEAPON_AMOUNT_GANG_ARMOR = 2;
|
||||
|
||||
private const int WEAPON_AMOUNT_COP = 3;
|
||||
private const int WEAPON_AMOUNT_COP_ARMOR = 4;
|
||||
private const int WEAPON_AMOUNT_COP_PISTOLS = 5;
|
||||
private const int WEAPON_AMOUNT_COP_SNIPER = 1;
|
||||
|
||||
public static bool checkWeaponDbyVehicle(Vehicle vehicle)
|
||||
{
|
||||
if ((vehicle.HasData("WeaponDealLoad") && vehicle.GetData<bool>("WeaponDealLoad") == true) ||
|
||||
@@ -43,7 +49,7 @@ namespace ReallifeGamemode.Server.WeaponDeal
|
||||
return;
|
||||
}
|
||||
|
||||
using (var context = new DatabaseContext(true))
|
||||
using (var context = new DatabaseContext())
|
||||
{
|
||||
FactionVehicle factionVehicle = context.FactionVehicles.Where(f => f.Model == WEAPON_DEAL_GANG_VEHICLE_HASH || f.Model == WEAPON_DEAL_STAATSFRAK_VEHICLE_HASH)
|
||||
.ToList()
|
||||
@@ -129,11 +135,27 @@ namespace ReallifeGamemode.Server.WeaponDeal
|
||||
InventoryManager.RemoveAllItemsfromVehicleInventory(fVeh);
|
||||
Faction fac = context.Factions.Where(f => f.Id == user.FactionId).FirstOrDefault();
|
||||
|
||||
fac.WeaponDealTime = (fac.Id == 1 | fac.Id == 3) ? 180 : 60;
|
||||
context.SaveChanges();
|
||||
if (WEAPON_DEAL_STAATSFRAK_IDS.Contains(fac.Id))
|
||||
{
|
||||
fac.WeaponDealTime = 180;
|
||||
}
|
||||
else
|
||||
{
|
||||
fac.WeaponDealTime = 60;
|
||||
}
|
||||
context.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
public static void WeaponDealTimer()
|
||||
{
|
||||
System.Timers.Timer timer = new System.Timers.Timer(60000);
|
||||
timer.Start();
|
||||
timer.Elapsed += Timer_Elapsed;
|
||||
}
|
||||
*/
|
||||
|
||||
public static void Timer_Elapsed()
|
||||
{
|
||||
using (var context = new DatabaseContext())
|
||||
@@ -191,11 +213,11 @@ namespace ReallifeGamemode.Server.WeaponDeal
|
||||
|
||||
if (owners.Any(o => WEAPON_DEAL_GANG_IDS.Contains(o))) // Gang WT
|
||||
{
|
||||
VehicleItem item = new VehicleItem() { ItemId = 2, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_GANG * oMembers }; //pistol50
|
||||
VehicleItem item = new VehicleItem() { ItemId = 2, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_GANG_PISTOL50 * oMembers }; //pistol50
|
||||
InventoryManager.AddItemToVehicleInventory(fVeh, item.ItemId, item.Amount);
|
||||
VehicleItem item3 = new VehicleItem() { ItemId = 9, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_GANG * oMembers }; //PumpShotgun
|
||||
InventoryManager.AddItemToVehicleInventory(fVeh, item3.ItemId, item3.Amount);
|
||||
VehicleItem item2 = new VehicleItem() { ItemId = 10, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_GANG * oMembers }; //Schutzweste
|
||||
VehicleItem item2 = new VehicleItem() { ItemId = 10, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_GANG_ARMOR * oMembers }; //Schutzweste
|
||||
InventoryManager.AddItemToVehicleInventory(fVeh, item2.ItemId, item2.Amount);
|
||||
VehicleItem item4 = new VehicleItem() { ItemId = 7, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_GANG * oMembers }; //CompactRifle
|
||||
InventoryManager.AddItemToVehicleInventory(fVeh, item4.ItemId, item4.Amount);
|
||||
@@ -204,34 +226,34 @@ namespace ReallifeGamemode.Server.WeaponDeal
|
||||
}
|
||||
else if (owners.Contains(1)) // LSPD
|
||||
{
|
||||
VehicleItem item = new VehicleItem() { ItemId = 1, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP * oMembers }; //pistol
|
||||
VehicleItem item = new VehicleItem() { ItemId = 1, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP_PISTOLS * oMembers }; //pistol
|
||||
InventoryManager.AddItemToVehicleInventory(fVeh, item.ItemId, item.Amount);
|
||||
VehicleItem item2 = new VehicleItem() { ItemId = 2, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP * oMembers }; //Pistol50
|
||||
VehicleItem item2 = new VehicleItem() { ItemId = 2, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP_PISTOLS * oMembers }; //Pistol50
|
||||
InventoryManager.AddItemToVehicleInventory(fVeh, item2.ItemId, item2.Amount);
|
||||
VehicleItem item3 = new VehicleItem() { ItemId = 5, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP * oMembers }; //SMG
|
||||
InventoryManager.AddItemToVehicleInventory(fVeh, item3.ItemId, item3.Amount);
|
||||
VehicleItem item4 = new VehicleItem() { ItemId = 9, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP * oMembers }; //PumpShotgun
|
||||
InventoryManager.AddItemToVehicleInventory(fVeh, item4.ItemId, item4.Amount);
|
||||
VehicleItem item5 = new VehicleItem() { ItemId = 10, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP * oMembers }; //Schutzweste
|
||||
VehicleItem item5 = new VehicleItem() { ItemId = 10, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP_ARMOR * oMembers }; //Schutzweste
|
||||
InventoryManager.AddItemToVehicleInventory(fVeh, item5.ItemId, item5.Amount);
|
||||
VehicleItem item6 = new VehicleItem() { ItemId = 11, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP_STUNGUN * oMembers }; //Stungun
|
||||
VehicleItem item6 = new VehicleItem() { ItemId = 11, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP * oMembers }; //Stungun
|
||||
InventoryManager.AddItemToVehicleInventory(fVeh, item6.ItemId, item6.Amount);
|
||||
VehicleItem item7 = new VehicleItem() { ItemId = 14, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP_STUNGUN * oMembers }; // AssaultSmg
|
||||
VehicleItem item7 = new VehicleItem() { ItemId = 14, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP * oMembers }; // AssaultSmg
|
||||
InventoryManager.AddItemToVehicleInventory(fVeh, item7.ItemId, item7.Amount);
|
||||
}
|
||||
else if (owners.Contains(3)) // FIB
|
||||
{
|
||||
VehicleItem item = new VehicleItem() { ItemId = 3, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP * oMembers }; //pistol_mk2
|
||||
VehicleItem item = new VehicleItem() { ItemId = 3, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP_PISTOLS * oMembers }; //pistol_mk2
|
||||
InventoryManager.AddItemToVehicleInventory(fVeh, item.ItemId, item.Amount);
|
||||
VehicleItem item2 = new VehicleItem() { ItemId = 4, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP * oMembers }; //Combatpistol
|
||||
VehicleItem item2 = new VehicleItem() { ItemId = 4, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP_PISTOLS * oMembers }; //Combatpistol
|
||||
InventoryManager.AddItemToVehicleInventory(fVeh, item2.ItemId, item2.Amount);
|
||||
VehicleItem item3 = new VehicleItem() { ItemId = 6, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP * oMembers }; //Carbinrifle
|
||||
InventoryManager.AddItemToVehicleInventory(fVeh, item3.ItemId, item3.Amount);
|
||||
VehicleItem item4 = new VehicleItem() { ItemId = 8, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP * oMembers }; //Sniperrifle
|
||||
VehicleItem item4 = new VehicleItem() { ItemId = 8, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP_SNIPER * oMembers }; //Sniperrifle
|
||||
InventoryManager.AddItemToVehicleInventory(fVeh, item4.ItemId, item4.Amount);
|
||||
VehicleItem item5 = new VehicleItem() { ItemId = 10, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP * oMembers }; //Schutzweste
|
||||
VehicleItem item5 = new VehicleItem() { ItemId = 10, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP_ARMOR * oMembers }; //Schutzweste
|
||||
InventoryManager.AddItemToVehicleInventory(fVeh, item5.ItemId, item5.Amount);
|
||||
VehicleItem item6 = new VehicleItem() { ItemId = 11, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP_STUNGUN * oMembers }; //Stungun
|
||||
VehicleItem item6 = new VehicleItem() { ItemId = 11, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP * oMembers }; //Stungun
|
||||
InventoryManager.AddItemToVehicleInventory(fVeh, item6.ItemId, item6.Amount);
|
||||
VehicleItem item7 = new VehicleItem() { ItemId = 12, VehicleId = factionVehicle.Id, Amount = WEAPON_AMOUNT_COP * oMembers }; //CombatPDW
|
||||
InventoryManager.AddItemToVehicleInventory(fVeh, item7.ItemId, item7.Amount);
|
||||
|
||||
Reference in New Issue
Block a user