Merge dev to surgery

This commit is contained in:
VegaZ
2021-04-25 15:27:32 +02:00
29 changed files with 220 additions and 145 deletions

View File

@@ -1,4 +1,4 @@
/**
/**
* @overview Life of German Reallife - Gui Infobox infobox.js
* @author VegaZ
* @copyright (c) 2008 - 2018 Life of German
@@ -68,7 +68,7 @@ export default function deathScreen() {
var medicString;
if (dutyMedics > 0) {
medicString = "Das L.S.E.D. wurde benachrichtigt\nDerzeit";
medicString = "Das L.S.E.D. wurde benachrichtigt\nDerzeit ";
if (dutyMedics === 1) {
medicString += "befindet sich ~g~" + dutyMedics + " Mitglied";
} else {

View File

@@ -1,4 +1,4 @@
import game from "..";
import game from "..";
import { Key } from "../game";
var interiorId = -1;
@@ -14,7 +14,7 @@ game.events.add('SERVER:InteriorManager_ClearHelpText', () => {
game.events.add('SERVER:InteriorManager_ShowHelpText', (interior, intId, entEx) => {
//game.ui.setHelpText('Drücke ~INPUT_CONTEXT~, um ~b~' + interior + ' ~s~zu ' + (entEx === 0 ? 'betreten' : 'verlassen'));
helpText = "~s~Drücke ~g~E~s~ um ~b~" + interior + " ~s~zu " + (entEx === 0 ? "betreten" : "verlassen");
helpText = "~s~Drücke ~g~E~s~, um ~b~" + interior + " ~s~zu " + (entEx === 0 ? "betreten" : "verlassen");
mp.events.call("renderHelpTextOnScreen", helpText)
interiorId = intId;
enterExit = entEx;

View File

@@ -19,19 +19,28 @@ let cancelItem = new UIMenuItem("Abbrechen", "");
cancelItem.BackColor = new Color(213, 0, 0);
cancelItem.HighlightedBackColor = new Color(229, 57, 53);
var routeMenu: NativeUI.Menu;
var busRouteSelectColShape = mp.colshapes.newCircle(-535, -2144, 2.5);
export default function busRouteList(globalData: IGlobalData) {
var routeMenu: NativeUI.Menu;
var skillSelect;
var routeSelect;
var skill = 0;
var routeSelected = false;
mp.events.add(RageEnums.EventKey.PLAYER_EXIT_COLSHAPE, (colshape) => {
if (colshape == busRouteSelectColShape) {
if (routeMenu && routeMenu.Visible) {
routeMenu.Close();
}
}
});
mp.events.add('SERVER:StartBusJob', (jobskill) => {
skill = jobskill;
if (!globalData.InMenu) {
globalData.InMenu = true;
mp.gui.cursor.show(true, true);
skillSelect = ["Anfänger", "Fortgeschrittener", "Profi"];
routeMenu = new Menu("Bus Job", "", new Point(0, screenRes.y / 3), null, null);
@@ -69,9 +78,7 @@ export default function busRouteList(globalData: IGlobalData) {
} else if (item.Text === "Abbrechen") {
mp.events.callRemote("CLIENT:Job_StopJob");
routeMenu.Close();
globalData.InMenu = false;
}
});
@@ -80,7 +87,6 @@ export default function busRouteList(globalData: IGlobalData) {
mp.events.callRemote("CLIENT:Job_StopJob");
}
routeSelected = false;
mp.gui.cursor.show(true, true);
globalData.InMenu = false;
});

View File

@@ -17,7 +17,7 @@
let distance = mp.game.gameplay.getDistanceBetweenCoords(lp.x, lp.y, lp.z, np.x, np.y, np.z, false);
if (distance <= 3) {
if (distance <= 1.5) {
if (!afkStatus) {
afkCounter++;
}

View File

@@ -4,8 +4,6 @@
var isStopped = player.isStopped();
mp.gui.chat.push("isStopped = " + isStopped);
if (isStopped) {
mp.events.callRemote("CLIENT:Handsup_TogglePlayerHup");
}

View File

@@ -32,7 +32,7 @@
});
mp.events.add("client:checkInvincible", () => {
if (mp.players.local.dimension == 0) return
//if (mp.players.local.dimension == 0) return
if (!Behaviour.active) return
var healthBefore = Behaviour.health
mp.players.local.applyDamageTo(1, true);
@@ -49,9 +49,9 @@
}, 500);
})
setInterval(() => {
mp.events.call("client:checkInvincible")
}, 30000);
//setInterval(() => {
// mp.events.call("client:checkInvincible")
//}, 30000);
mp.events.add('SERVER:AntiCheat:weaponSwap', () => {
Behaviour.resetWeapon()
@@ -62,7 +62,7 @@
mp.events.callRemote("CLIENT:CheatDetection", "Unallowed Weapon", Behaviour.weapon)
}
if (Behaviour.reloadingWeapon) {
mp.events.callRemote("CLIENT:CheatDetection", "No Reload")
//mp.events.callRemote("CLIENT:CheatDetection", "No Reload")
Behaviour.resetWeapon()
}
Behaviour.updateMagSize()
@@ -182,9 +182,24 @@
var Behaviour = new PlayerBehaviour()
var loop = Behaviour.secs()
function isUsingController() {
return !mp.game.controls.isInputDisabled(0);
}
mp.events.add("render", () => {
mp.game.player.setHealthRechargeMultiplier(0);
if (isUsingController()) {
mp.game.controls.disableControlAction(32, 24, true);
mp.game.controls.disableControlAction(32, 25, true);
mp.game.controls.disableControlAction(32, 91, true);
mp.game.controls.disableControlAction(32, 92, true);
mp.game.controls.disableControlAction(32, 69, true);
mp.game.controls.disableControlAction(32, 70, true);
}
Behaviour.health = Number(mp.players.local.getHealth()) + Number(mp.players.local.getArmour())
if (loop < Behaviour.secs()) {
if (Behaviour.active) {

View File

@@ -19,8 +19,8 @@ html, body {
}
body {
margin: 15vh auto 0;
width: 32vw;
margin: 10vh auto 0;
width: 35vw;
color: white;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
font-size: 1em;
@@ -49,13 +49,23 @@ h2 {
-webkit-box-align: start;
-ms-flex-align: start;
align-items: flex-start;
margin-bottom: 1.5em;
margin-bottom: 1em;
padding: 1em 1em 0;
}
.factions {
position: -webkit-sticky;
position: sticky;
top: 0;
z-index: 3;
font-size: .9em;
background-color: black;
padding: 1em 0;
}
.wrapper {
min-height: 50vh;
max-height: 70vh;
min-height: 60vh;
max-height: 80vh;
overflow-y: scroll;
border-radius: .25em;
background-color: rgba(0, 0, 0, 0.75);
@@ -74,7 +84,7 @@ table {
table th {
position: -webkit-sticky;
position: sticky;
top: 0;
top: 3em;
text-align: left;
z-index: 2;
background-color: black;
@@ -203,18 +213,6 @@ ol.inline.stats {
justify-content: center;
}
ol.inline.stats:first-of-type {
margin-top: 1em !important;
}
ol.inline.stats:last-of-type {
margin-bottom: 1em;
}
ol.inline.stats:not(:last-of-type) {
margin-bottom: .125em;
}
ol.inline.stats abbr {
text-decoration: none;
}

View File

@@ -1,6 +1,6 @@
{
"version": 3,
"mappings": "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",
"mappings": "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",
"sources": [
"style.scss"
],

View File

@@ -9,9 +9,9 @@ html, body { margin: unset; }
*, *:before, *:after { box-sizing: inherit; }
body {
margin: 15vh auto 0;
margin: 10vh auto 0;
width: 32vw;
width: 35vw;
color: white;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
@@ -30,17 +30,28 @@ h2 { font-size: 1.125em; }
display: flex;
justify-content: space-between;
align-items: flex-start;
margin-bottom: 1.5em;
margin-bottom: 1em;
padding: 1em 1em 0;
}
.factions {
position: sticky;
top: 0;
z-index: 3;
font-size: .9em;
background-color: black;
padding: 1em 0;
}
.wrapper {
min-height: 50vh;
max-height: 70vh;
min-height: 60vh;
max-height: 80vh;
overflow-y: scroll;
border-radius: .25em;
background-color: rgba(0, 0, 0, .75);
background-color: rgba(black, .75);
&::-webkit-scrollbar { display: none; }
}
@@ -52,7 +63,7 @@ table {
th {
position: sticky;
top: 0;
top: 3em;
text-align: left;
z-index: 2;
@@ -130,9 +141,5 @@ ol.inline {
ol.inline.stats {
justify-content: center;
&:first-of-type { margin-top: 1em !important; }
&:last-of-type { margin-bottom: 1em; }
&:not(:last-of-type) { margin-bottom: .125em; }
abbr { text-decoration: none; }
}

View File

@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<title>Spielerliste</title>
<link rel="stylesheet" href="package://assets/css/onlinelist/style.css">
<link rel="stylesheet" href="../../css/onlinelist/style.css">
</head>
<body>
<div class="wrapper">
@@ -14,6 +14,21 @@
<h2>Spieler: <span id="player-count">0</span></h2>
</div>
<div class="factions">
<ol class="inline stats">
<li><span class="group group--1">LSPD</span>: <span id="1">0</span></li>
<li><span class="group group--3">FIB</span>: <span id="3">0</span></li>
<li><span class="group group--2">LSED</span>: <span id="2">0</span></li>
<li><span class="group group--7">GSF</span>: <span id="7">0</span></li>
<li><span class="group group--8">FYB</span>: <span id="8">0</span></li>
<li><span class="group group--5">LSV</span>: <span id="5">0</span></li>
<li><span class="group group--9">WZN</span>: <span id="9">0</span></li>
<li><span class="group group--0">ZIVI</span>: <span id="0">0</span></li>
</ol>
</div>
<table>
<thead>
<tr>
@@ -27,26 +42,8 @@
<tbody id="players">
</tbody>
</table>
<ol class="inline stats">
<li><span class="group group--1">LSPD</span>: <span id="1">0</span></li>
<li><span class="group group--3">FIB</span>: <span id="3">0</span></li>
<li><span class="group group--2">LSED</span>: <span id="2">0</span></li>
</ol>
<ol class="inline stats">
<li><span class="group group--7">GSF</span>: <span id="7">0</span></li>
<li><span class="group group--8">FYB</span>: <span id="8">0</span></li>
<li><span class="group group--5">LSV</span>: <span id="5">0</span></li>
</ol>
<ol class="inline stats">
<li><span class="group group--9">WZN</span>: <span id="9">0</span></li>
<li><span class="group group--0">Zivilisten</span>: <span id="0">0</span></li>
</ol>
</div>
<script src="package://assets/js/jquery-3.3.1.min.js"></script>
<script src="package://assets/js/onlinelist/script.js"></script>
<script src="../../js/onlinelist/script.js"></script>
</body>
</html>

View File

@@ -1,12 +1,9 @@
window.onbeforeunload = () => { window.scrollTo(0, 0); }
$(document).ready(function () {
mp.trigger('CEF:PlayerList_Loaded');
});
setPlayerCount = (factionId, value) => {
if (factionId == -1) {
document.getElementById('player-count').innerHTML = value;
addTableSorting();
} else if (factionId >= 0 && factionId <= 9) {
document.getElementById(factionId).innerHTML = value;
}
@@ -30,3 +27,34 @@ function addPlayerEntry(userId, userName, factionId, userPing) {
var factionName = getFactionNameByFactionId(factionId);
document.getElementById('players').innerHTML += `<tr><td>${userId}</td> <td>${userName}</td> <td class="group group--${factionId}">${factionName}</td> <td>${userPing}</td></tr>`;
}
// https://www.jstips.co/en/javascript/detect-document-ready-in-pure-js/
document.onreadystatechange = () => {
if (document.readyState === 'complete') { mp.trigger('CEF:PlayerList_Loaded'); }
};
// Sortierung von https://codepen.io/selbekk/pen/LNOZKL
function addTableSorting() {
const headers = Array.from(document.querySelectorAll('th'));
const rows = Array.from(document.querySelectorAll('tbody tr'));
function sort(e) {
const index = headers.indexOf(e.target);
const sortVal = e.target.classList.contains('is-asc') ? 1 : -1;
rows.sort((a, b) => {
const aValue = a.children[index].innerHTML;
const bValue = b.children[index].innerHTML;
if(aValue > bValue) { return sortVal; }
if(aValue < bValue) { return -sortVal; }
return 0;
})
e.target.classList.add('is-sorted');
e.target.classList.toggle('is-asc');
const body = document.querySelector('tbody');
body.innerHTML = '';
rows.forEach(row => body.appendChild(row));
}
headers.forEach(header => header.addEventListener('click', sort));
}

View File

@@ -268,6 +268,9 @@ antiAfk(globalData);
import ammunation from './Interaction/ammunation/ammunation';
ammunation(globalData);
import handsup from './Player/handsup';
handsup();
import charSurgery from './CharCreator/surgery';
charSurgery(globalData);

View File

@@ -1,4 +1,4 @@
import * as NativeUI from '../libs/NativeUI';
import * as NativeUI from '../libs/NativeUI';
const Menu = NativeUI.Menu;
const UIMenuItem = NativeUI.UIMenuItem;
const UIMenuListItem = NativeUI.UIMenuListItem;
@@ -25,9 +25,7 @@ export default function planeSchoolHandle(globalData: IGlobalData) {
var waitFinished = false;
mp.events.add('planeSchoolMenu', () => {
mp.game.ui.setTextComponentFormat('STRING');
mp.game.ui.addTextComponentSubstringPlayerName('Drücke ~INPUT_CONTEXT~, um das Flugschulmenü zu öffnen');
mp.game.ui.displayHelpTextFromStringLabel(0, true, true, -1);
mp.events.call("renderHelpTextOnScreen", "~s~Drücke ~g~E~s~, um die ~b~Flugprüfung ~s~zu beginnen");
mp.keys.bind(0x45, false, keyPressHandler);
keyBound = true;
});

View File

@@ -151,7 +151,7 @@ namespace ReallifeGamemode.Server.Bank
{
player.SendNotification($"~w~Du hast {target.Name} $~g~{amount} ~w~Überwiesen.");
player.GetUser(dbContext).BankAccount.Balance -= (int)(amount * 1.05);
target.GetUser(dbContext).otheramount = amount;
target.GetUser(dbContext).otheramount += amount;
dbContext.SaveChanges();
}
}
@@ -203,7 +203,7 @@ namespace ReallifeGamemode.Server.Bank
{
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;
target.GetUser(dbContext).otheramount += amount;
dbContext.SaveChanges();
}
}

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
@@ -165,12 +165,6 @@ namespace ReallifeGamemode.Server.Commands
[Command("position", "~m~Benutzung: ~s~/position")]
public void CmdAdminPosition(Player player)
{
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
ChatService.SendMessage(player, "Position: X Y Z: " + player.Position + " Richtung: " + player.Heading);
}
@@ -1358,7 +1352,7 @@ namespace ReallifeGamemode.Server.Commands
if (target.GetData<bool>("isDead") == true)
{
ChatService.ErrorMessage(player, "Dieser Spieler ist tot. Nutze /arevive.");
ChatService.ErrorMessage(player, "Dieser Spieler ist tot. Nutze /arevive");
return;
}

View File

@@ -120,7 +120,7 @@ namespace ReallifeGamemode.Server.Commands
}
[Command("help", "~m~Benutzung: ~s~/help")]
public void CmdHelp(Player player)
public void CmdUserHelp(Player player)
{
player.SendChatMessage("E - Interagieren (ATM, Türen, Shops, Friseur etc.");
player.SendChatMessage("M - Interaktionsmenü öffnen und schließen");
@@ -129,7 +129,7 @@ namespace ReallifeGamemode.Server.Commands
player.SendChatMessage("O - Onlineliste öffnen / schließen");
player.SendChatMessage("I - Inventar öffnen / schließen");
player.SendChatMessage("F4 - Mikrofon an/aus schalten");
player.SendChatMessage("/skill - Skillpunkte anzeigen");
player.SendChatMessage("/report - Support-Anfrage");
}
[Command("hup")]

View File

@@ -632,10 +632,9 @@ namespace ReallifeGamemode.Server.Events
if(player.GetData<bool>("SellVehicleDecision") == true && player.HasData("VehicleToSell"))
{
InteractionManager.SellPlayerVehicle(player, player.GetData<int>("VehicleToSell"));
InteractionManager.SellServerVehicle(player, player.GetData<int>("VehicleToSell"));
player.ResetData("SellVehicleDecision");
player.ResetData("VehicleToSell");
player.SendNotification("~g~Du hast dein Fahrzeug verkauft");
return;
}

View File

@@ -1,4 +1,4 @@
using System.Linq;
using System.Linq;
using GTANetworkAPI;
using Microsoft.EntityFrameworkCore;
using Newtonsoft.Json;
@@ -100,7 +100,7 @@ namespace ReallifeGamemode.Server.Events
if (user.Wanteds > 0)
{
ChatService.HQMessage("Der Straftäter" + user.Name + " hat sich mit " + user.Wanteds + " Wanteds eingeloggt.");
ChatService.HQMessage("Der Straftäter " + user.Name + " hat sich mit " + user.Wanteds + " Wanteds eingeloggt.");
}
if (user.Wanteds == 0)

View File

@@ -29,9 +29,9 @@ namespace ReallifeGamemode.Server.Events
player.TriggerEvent("SERVER:Login_Error", "Das Passwort muss aus mindestens 6 Zeichen bestehen.");
return;
}
if (dbContext.Users.Where(u => u.SocialClubName == player.SocialClubName).Count() >= 3)
if (dbContext.Users.Where(u => u.SocialClubName == player.SocialClubName).Count()!= 0)
{
player.TriggerEvent("SERVER:Login_Error", "Es sind schon 3 Konten mit dieser Socialclub-ID registriert.");
player.TriggerEvent("SERVER:Login_Error", "Es ist schon ein Konto mit dieser Socialclub-ID registriert.");
return;
}

View File

@@ -195,6 +195,21 @@ namespace ReallifeGamemode.Server.Factions.Medic
}
}
public static void RemoveOldHealTask()
{
if (HealTasks.Count != 0)
{
foreach (var task in HealTasks.ToList())
{
var taskActive = DateTime.Now - task.Time;
if (taskActive > TimeSpan.FromMinutes(10) && task.MedicName == "none")
{
delHealTask(PlayerService.GetPlayerByNameOrId(task.Victim));
}
}
}
}
[RemoteEvent("loadMedicTasks")]
public void LoadMedicTasks(Player player, int type)
{

View File

@@ -1,4 +1,4 @@
using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
using GTANetworkAPI;
using Newtonsoft.Json;
@@ -145,7 +145,7 @@ namespace ReallifeGamemode.Server.Gangwar
int id = JsonConvert.DeserializeObject<int>(jsonId);
if (id == -1)
{
ChatService.ErrorMessage(client, "Du befindest dich in keinem Gebiet!");
ChatService.ErrorMessage(client, "Du befindest dich in keinem Gebiet");
return;
}
using (var dbContext = new DatabaseContext())

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
@@ -217,8 +217,8 @@ namespace ReallifeGamemode.Server.Gangwar
{
using (var dbContext = new DatabaseContext())
{
ChatService.BroadcastFaction("~y~[GANGWAR] ~r~" + client.Name + "~w~ ist nicht im Gangwar beteiligt !", dbContext.Factions.Where(f => f.Name == getOwner()).FirstOrDefault());
ChatService.BroadcastFaction("~y~[GANGWAR] ~r~" + client.Name + "~w~ ist nicht im Gangwar beteiligt !", dbContext.Factions.Where(f => f.Name == getAttacker()).FirstOrDefault());
ChatService.BroadcastFaction("~y~[GANGWAR] ~r~" + client.Name + "~w~ ist nicht im Gangwar beteiligt!", dbContext.Factions.Where(f => f.Name == getOwner()).FirstOrDefault());
ChatService.BroadcastFaction("~y~[GANGWAR] ~r~" + client.Name + "~w~ ist nicht im Gangwar beteiligt!", dbContext.Factions.Where(f => f.Name == getAttacker()).FirstOrDefault());
}
return;
}
@@ -332,7 +332,7 @@ namespace ReallifeGamemode.Server.Gangwar
List<Player> leaders = context.Users.Include(u => u.Faction).Where(u => onlinePlayers.Contains(u.Name) && u.Faction.Name == attacker && u.FactionLeader).Select(u => u.Player).ToList();
foreach (var l in leaders)
{
ChatService.ErrorMessage(l, "Gangwarstart ist nicht möglich, da die beteiligten Fraktionen nicht genügend Mitglieder aufweisen.");
ChatService.ErrorMessage(l, "Du kannst keinen Gangwar starten, weil in der gegnerischen Fraktion zu wenig Spieler online sind");
}
return;

View File

@@ -30,14 +30,14 @@ namespace ReallifeGamemode.Server.Inventory.Items
if (!HasCooldownElapsed(user))
{
DateTime time = InventoryManager.itemCooldown[user];
DateTime time = InventoryManager.itemCooldown[user.Id];
int timeUntillNextUse = (int)(time - DateTime.Now).TotalSeconds;
uItem.GetUser().Player.TriggerEvent("Error", $"Versuche es nach {timeUntillNextUse} Sekunden erneut.");
return false;
}
DateTime cooldown = DateTime.Now.AddMilliseconds(Cooldown);
InventoryManager.itemCooldown.Add(user, cooldown);
InventoryManager.itemCooldown.Add(user.Id, cooldown);
Consume(uItem);
return true;
@@ -48,13 +48,13 @@ namespace ReallifeGamemode.Server.Inventory.Items
if (user.Player == null || !user.Player.IsLoggedIn())
return false;
if (!InventoryManager.itemCooldown.ContainsKey(user))
if (!InventoryManager.itemCooldown.ContainsKey(user.Id))
return true;
int timeRemaining = (int)(InventoryManager.itemCooldown[user] - DateTime.Now).TotalSeconds;
int timeRemaining = (int)(InventoryManager.itemCooldown[user.Id] - DateTime.Now).TotalSeconds;
if (timeRemaining <= 0)
InventoryManager.itemCooldown.Remove(user);
InventoryManager.itemCooldown.Remove(user.Id);
return timeRemaining <= 0;
}

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using GTANetworkAPI;
@@ -267,7 +267,7 @@ namespace ReallifeGamemode.Server.Job
else if (data.getTrashCount() > MAX_BAG)
{
data.setTrashCount(MAX_BAG);
ChatService.ErrorMessage((Player)player, "Der Müllwagen ist schon voll.");
ChatService.ErrorMessage((Player)player, "Der Müllwagen ist schon voll");
}
else
{

View File

@@ -1,4 +1,4 @@
using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
using GTANetworkAPI;
using Newtonsoft.Json;
@@ -479,21 +479,39 @@ namespace ReallifeGamemode.Server.Managers
}
}
public static void SellPlayerVehicle(Player player, int id)
public static void SellServerVehicle(Player player, int id)
{
using var dbContext = new DatabaseContext();
var user = player.GetUser(dbContext);
var userVehicle = dbContext.UserVehicles.Where(v => v.Id == id && v.UserId == user.Id).FirstOrDefault();
var vehPrice = userVehicle.Price;
var backPrice = (int)(vehPrice * 0.4);
GTANetworkAPI.Vehicle veh = VehicleManager.GetVehicleFromServerVehicle(userVehicle);
user.BankAccount.Balance += backPrice;
ServerVehicle serverVehicle = dbContext.ServerVehicles.FirstOrDefault(v => v.Id == id);
ChatService.SendMessage(player, $"~b~[INFO]~s~ Du hast durch den Autoverkauf ~g~{backPrice.ToMoneyString()}~s~ erhalten.");
if(serverVehicle is UserVehicle)
{
UserVehicle userVehicle = dbContext.UserVehicles.Where(v => v.Id == id && v.UserId == user.Id).FirstOrDefault();
var vehPrice = userVehicle.Price;
var backPrice = (int)(vehPrice * 0.4);
GTANetworkAPI.Vehicle veh = VehicleManager.GetVehicleFromServerVehicle(userVehicle);
user.BankAccount.Balance += backPrice;
VehicleManager.DeleteVehicle(veh);
ChatService.SendMessage(player, $"~b~[INFO]~s~ Du hast durch den Autoverkauf ~g~{backPrice.ToMoneyString()}~s~ erhalten.");
dbContext.UserVehicles.Remove(userVehicle);
VehicleManager.DeleteVehicle(veh);
dbContext.UserVehicles.Remove(userVehicle);
player.SendNotification("~g~Du hast dein Fahrzeug verkauft");
}
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;
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();
}
@@ -533,10 +551,10 @@ namespace ReallifeGamemode.Server.Managers
return;
}
var factionVehicleCount = dbContext.FactionVehicles.ToList().Where(v => v.Id == id && v.GetOwners().Contains(user.FactionId.Value)).Count();
var factionVehicleCount = dbContext.FactionVehicles.ToList().Where(v => v.GetOwners().Contains(user.FactionId.Value)).Count();
if (factionVehicleCount <= 6)
{
ChatService.ErrorMessage(player, "Die Fraktion braucht mindestens 6 Fahrzeuge");
ChatService.ErrorMessage(player, "Die Fraktion braucht mindestens sechs Fahrzeuge");
return;
}
@@ -546,16 +564,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);
user.Faction.BankAccount.Balance += backPrice;
ChatService.SendMessage(player, $"~b~[INFO]~s~ Die Fraktionskasse ~g~{backPrice.ToMoneyString()}~s~ erhalten.");
VehicleManager.DeleteVehicle(veh);
dbContext.FactionVehicles.Remove(factionVehicle);
dbContext.SaveChanges();
player.SetData<bool>("SellVehicleDecision", true);
player.SetData<int>("VehicleToSell", id);
ChatService.SendMessage(player, "~s~Möchtes du das Fahrzeug ~y~" + veh.DisplayName + " ~s~wirklich für ~g~$" + backPrice + " ~s~verkaufen? Drücke ~g~J~s~ zum Bestätigen oder ~r~N ~s~zum Abbrechen");
}
}

View File

@@ -34,7 +34,7 @@ namespace ReallifeGamemode.Server.Managers
public static Dictionary<Player, List<InventoryItem>> backpackItems { get; set; } = new Dictionary<Player, List<InventoryItem>>();
public static Dictionary<Player, List<InventoryItem>> vehicleItems { get; set; } = new Dictionary<Player, List<InventoryItem>>();
public static Dictionary<User, DateTime> itemCooldown = new Dictionary<User, DateTime>();
public static Dictionary<int, DateTime> itemCooldown = new Dictionary<int, DateTime>();
public class InventoryItem
{

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
@@ -66,7 +66,7 @@ namespace ReallifeGamemode.Server.Managers
if (u.JobId == null)
{
ChatService.ErrorMessage(player, "Du hast momentan keinen Job, den du kündigen könntest.");
ChatService.ErrorMessage(player, "Du bist bereits arbeitslos");
return;
}
@@ -89,20 +89,20 @@ namespace ReallifeGamemode.Server.Managers
if (u.JobId != null)
{
ChatService.ErrorMessage(player, "Du musst deinen alten Job kündigen, bevor du einen neuen ausüben kannst.");
ChatService.ErrorMessage(player, "Du musst deinen alten Job kündigen, bevor du einen Neuen ausüben kannst");
return;
}
//Pilotjob
if (jobId == 3 && u.FlyingLicensePlane == false)
{
ChatService.ErrorMessage(player, "Um diesen Job annehmen zu können, musst du einen Flugschein besitzen.");
ChatService.ErrorMessage(player, "Um diesen Job annehmen zu können, musst du einen Flugschein besitzen");
return;
}
if (u.DriverLicenseVehicle == false)
{
ChatService.ErrorMessage(player, "Um diesen Job annehmen zu können, musst du einen Führerschein besitzen.");
ChatService.ErrorMessage(player, "Um diesen Job annehmen zu können, musst du einen Führerschein besitzen");
return;
}
@@ -202,9 +202,9 @@ namespace ReallifeGamemode.Server.Managers
{
JobBase job = GetJob(player.GetUser().JobId ?? -1);
if (job != null && job.GetUsersInJob().Contains(player) && seat == 0)
if (job != null && job.GetUsersInJob().Contains(player))
{
if(job.CheckVehicle(player, veh))
if(job.CheckVehicle(player, veh) && seat == 0)
{
if (!playerTimersJobVehicleRespawn.ContainsKey(player))
return;

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using GTANetworkAPI;
using Newtonsoft.Json;
@@ -35,7 +35,7 @@ namespace ReallifeGamemode.Server.Report
if (listReports.FindAll(e => (e.isAssigned() == false)).Count == 0)
{
ChatService.ErrorMessage(client, "Im Moment gibt es keine Tickets.");
ChatService.ErrorMessage(client, "Aktuell gibt es keine Tickets");
return;
}
@@ -92,7 +92,8 @@ namespace ReallifeGamemode.Server.Report
}
}
ChatService.SendMessage(player, "!{#008fff}[REPORT]!{#FFFFFF} Admin " + admin.Name + " hat dein Ticket angenommen! (Benutze /rc zum Schreiben)");
ChatService.SendMessage(player, "!{#008fff}[REPORT]!{#FFFFFF} Admin " + admin.Name + " hat dein Ticket angenommen! Über /rc [Text] kannst du mit dem Admin schreiben.");
ChatService.SendMessage(admin, "!{#008fff}[REPORT]!{#FFFFFF} Du hast das Ticket von " + player.Name + " angenommen! Über /rc [Text] kannst du mit dem User schreiben.");
ChatService.BroadcastDutyAdmin("!{#008fff}[REPORT]!{#FFFFFF} " + admin.Name + " hat das Ticket von " + player.Name + " angenommen");
}

View File

@@ -74,6 +74,7 @@ namespace ReallifeGamemode.Server.Util
Economy.Timer_Elapsed();
WeaponDealManager.Timer_Elapsed();
Medic.UpdateReviveSperre();
Medic.RemoveOldHealTask();
});
}