Add BankBalance to Infobox; Iprove Player Feedback; Add /gotolist

This commit is contained in:
VegaZ
2018-10-17 22:00:01 +02:00
parent 8ad58346e2
commit 57acebf241
7 changed files with 120 additions and 25 deletions

View File

@@ -34,6 +34,7 @@ var nSecond;
var playerName; var playerName;
var playerId; var playerId;
var playerMoney;
mp.events.add("draw", (pName, pId) => { mp.events.add("draw", (pName, pId) => {
playerName = pName; playerName = pName;
@@ -42,6 +43,10 @@ mp.events.add("draw", (pName, pId) => {
}); });
//function currencyFormatDE(num) {
// return ('$' + num.toFixed(2).replace('.', ',').replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1.'));
//}
mp.events.add("render", () => { mp.events.add("render", () => {
if (draw === true) { if (draw === true) {
@@ -114,6 +119,8 @@ mp.events.add("render", () => {
dateString = nDay + ". " + nMonth + " " + year; dateString = nDay + ". " + nMonth + " " + year;
timeString = nHour + ":" + nMinute + ":" + nSecond + " Uhr"; timeString = nHour + ":" + nMinute + ":" + nSecond + " Uhr";
playerMoney = mp.players.local.getVariable("money");
mp.game.graphics.requestStreamedTextureDict("digitaloverlay", true); mp.game.graphics.requestStreamedTextureDict("digitaloverlay", true);
//static //static
mp.game.graphics.drawSprite("digitaloverlay", "static1", posX, posY, width, height, 0, 0, 255, 0, 88); mp.game.graphics.drawSprite("digitaloverlay", "static1", posX, posY, width, height, 0, 0, 255, 0, 88);
@@ -133,6 +140,14 @@ mp.events.add("render", () => {
scale: [0.5, 0.5], scale: [0.5, 0.5],
outline: true outline: true
}) })
mp.game.graphics.drawText("~g~$~s~" + playerMoney, [0.938, 0.441],
{
font: 4,
color: [255, 255, 255, 255],
scale: [0.5, 0.5],
outline: true
})
mp.game.graphics.drawText("~r~Datum: ", [0.89, 0.381], mp.game.graphics.drawText("~r~Datum: ", [0.89, 0.381],
{ {
font: 4, font: 4,
@@ -147,5 +162,12 @@ mp.events.add("render", () => {
scale: [0.5, 0.5], scale: [0.5, 0.5],
outline: true outline: true
}) })
mp.game.graphics.drawText("~y~Bank: ", [0.887, 0.441],
{
font: 4,
color: [255, 255, 255, 255],
scale: [0.5, 0.5],
outline: true
})
} }
}); });

View File

@@ -687,10 +687,11 @@ namespace reallife_gamemode.Server.Commands
{ {
using (var dbContext = new DatabaseContext()) using (var dbContext = new DatabaseContext())
{ {
Entities.GotoPoint p = dbContext.GotoPoints.FirstOrDefault(x => x.Description == description); GotoPoint p = dbContext.GotoPoints.FirstOrDefault(x => x.Description == description);
if(p == null) if(p == null)
{ {
SaveManager.SaveGotoPoint(player, description); SaveManager.SaveGotoPoint(player, description);
player.SendNotification("Goto-Punkt ~g~" + description + "~s~ gespeichert.", true);
} }
else else
{ {
@@ -707,6 +708,7 @@ namespace reallife_gamemode.Server.Commands
Vehicle vehicle = player.Vehicle; Vehicle vehicle = player.Vehicle;
SaveManager.SaveVehicleData((VehicleHash)vehicle.Model, vehicle.Position, vehicle.Heading, vehicle.NumberPlate, SaveManager.SaveVehicleData((VehicleHash)vehicle.Model, vehicle.Position, vehicle.Heading, vehicle.NumberPlate,
Convert.ToByte(vehicle.PrimaryColor), Convert.ToByte(vehicle.SecondaryColor), vehicle.Locked, vehicle.EngineStatus, Convert.ToByte(vehicle.Dimension)); Convert.ToByte(vehicle.PrimaryColor), Convert.ToByte(vehicle.SecondaryColor), vehicle.Locked, vehicle.EngineStatus, Convert.ToByte(vehicle.Dimension));
player.SendNotification("Fahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true);
} }
else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!"); else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!");
@@ -726,6 +728,7 @@ namespace reallife_gamemode.Server.Commands
Convert.ToByte(vehicle.PrimaryColor), Convert.ToByte(vehicle.SecondaryColor), vehicle.Locked, vehicle.EngineStatus, Convert.ToByte(vehicle.Dimension), player.GetUser().FactionId); Convert.ToByte(vehicle.PrimaryColor), Convert.ToByte(vehicle.SecondaryColor), vehicle.Locked, vehicle.EngineStatus, Convert.ToByte(vehicle.Dimension), player.GetUser().FactionId);
vehicle.SetData("factionId", player.GetUser().FactionId); vehicle.SetData("factionId", player.GetUser().FactionId);
LoadManager.FactionVehicleList.Add(vehicle); LoadManager.FactionVehicleList.Add(vehicle);
player.SendNotification("Fraktionsfahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true);
} }
} }
else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!"); else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!");
@@ -737,6 +740,7 @@ namespace reallife_gamemode.Server.Commands
SaveManager.SaveShopVehicleData((VehicleHash)vehicle.Model, vehicle.DisplayName, vehicle.Position, vehicle.Heading, vehicle.NumberPlate, SaveManager.SaveShopVehicleData((VehicleHash)vehicle.Model, vehicle.DisplayName, vehicle.Position, vehicle.Heading, vehicle.NumberPlate,
Convert.ToByte(vehicle.PrimaryColor), Convert.ToByte(vehicle.SecondaryColor), Convert.ToByte(vehicle.Dimension), player.GetUser().FactionId); Convert.ToByte(vehicle.PrimaryColor), Convert.ToByte(vehicle.SecondaryColor), Convert.ToByte(vehicle.Dimension), player.GetUser().FactionId);
LoadManager.ShopVehicleList.Add(vehicle); LoadManager.ShopVehicleList.Add(vehicle);
player.SendNotification("Shopfahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true);
} }
else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!"); else player.SendChatMessage("~m~Du sitzt in keinem Fahrzeug!");
break; break;
@@ -1228,6 +1232,17 @@ namespace reallife_gamemode.Server.Commands
} }
} }
} }
[Command("setmoney")]
public void SetPlayerMoney(Client player, string receiver, float amount)
{
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
Client target = ClientService.GetClientByName(receiver);
target.SetSharedData("money", amount);
}
//TODO //TODO
[Command("fpay")] [Command("fpay")]
public void FPay(Client player, string receiver, float amount) public void FPay(Client player, string receiver, float amount)
@@ -1272,6 +1287,25 @@ namespace reallife_gamemode.Server.Commands
} }
} }
} }
//TODO Als Browser anzeigeN??
[Command("gotolist")]
public void CmdAdminGotoList(Client player)
{
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
{
ChatService.NotAuthorized(player);
return;
}
var gotoString = "";
foreach(GotoPoint point in LoadManager.GotoPointList)
{
if(point.Active)
{
gotoString += point.Description + ", ";
}
}
player.SendChatMessage(gotoString);
}
[Command("saveall")] [Command("saveall")]
public void SaveAll(Client player) public void SaveAll(Client player)
{ {

View File

@@ -32,7 +32,7 @@ namespace reallife_gamemode.Server.Events
if (user.SocialClubName != player.SocialClubName && user.Password == NAPI.Util.GetHashSha256(password)) if (user.SocialClubName != player.SocialClubName && user.Password == NAPI.Util.GetHashSha256(password))
{ {
player.TriggerEvent("loginDeny", "Dieser Benutzer gehört dir nicht!"); player.TriggerEvent("loginDeny", "Dieser Benutzer gehört dir nicht!");
//Log einbauen für den bösen Bub. //TODO ?? Log einbauen für den bösen Bub.
player.Kick(); player.Kick();
} }
if (user.Password != NAPI.Util.GetHashSha256(password)) if (user.Password != NAPI.Util.GetHashSha256(password))
@@ -47,7 +47,8 @@ namespace reallife_gamemode.Server.Events
player.SetData("isLoggedIn", true); player.SetData("isLoggedIn", true);
player.SetData("spec", true); player.SetData("spec", true);
player.TriggerEvent("draw", player.Name, player.Handle.Value); player.TriggerEvent("draw", player.Name, player.Handle.Value);
//player.Position = new Vector3(user.PositionX, user.PositionY, user.PositionZ); var userBankAccount = loginUser.UserBankAccounts.SingleOrDefault(u => u.UserId == user.Id);
player.SetSharedData("money", userBankAccount.Balance); //Lädt den aktuellen Kontostand des Users aus der DB
} }
} }
} }

View File

@@ -24,13 +24,27 @@ namespace reallife_gamemode.Server.Events
{ {
using (var registerUser = new Model.DatabaseContext()) using (var registerUser = new Model.DatabaseContext())
{ {
var user = new Entities.User { Name = player.Name, SocialClubName = player.SocialClubName, Password = NAPI.Util.GetHashSha256(password) }; var user = new Entities.User
{
Name = player.Name,
SocialClubName = player.SocialClubName,
Password = NAPI.Util.GetHashSha256(password)
};
registerUser.Users.Add(user); registerUser.Users.Add(user);
registerUser.SaveChanges(); registerUser.SaveChanges();
var userBankAccount = new Entities.UserBankAccount
{
UserId = user.Id,
Balance = 5000,
Active = true
};
registerUser.UserBankAccounts.Add(userBankAccount);
registerUser.SaveChanges();
} }
player.TriggerEvent("registerSuccess"); player.TriggerEvent("registerSuccess");
NAPI.Player.SpawnPlayer(player, Main.DEFAULT_SPAWN_POSITION, Main.DEFAULT_SPAWN_HEADING); NAPI.Player.SpawnPlayer(player, Main.DEFAULT_SPAWN_POSITION, Main.DEFAULT_SPAWN_HEADING);
player.SetData("isLoggedIn", true); player.SetData("isLoggedIn", true);
player.TriggerEvent("draw", player.Name, player.Handle.Value);
} }
else if (player.SocialClubName == checkedUser.SocialClubName) else if (player.SocialClubName == checkedUser.SocialClubName)
{ {

22
Server/Events/Update.cs Normal file
View File

@@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Text;
using GTANetworkAPI;
/**
* @overview Life of German Reallife - Event Update (Update.cs)
* @author VegaZ
* @copyright (c) 2008 - 2018 Life of German
*/
namespace reallife_gamemode.Server.Events
{
public class Update : Script
{
[ServerEvent(Event.Update)]
public void OnUpdate()
{
}
}
}

View File

@@ -34,7 +34,7 @@ namespace reallife_gamemode.Server.Managers
b.Color, b.Name, b.Alpha, b.DrawDistance, b.ShortRange, (short) b.Rotation, b.Dimension); b.Color, b.Name, b.Alpha, b.DrawDistance, b.ShortRange, (short) b.Rotation, b.Dimension);
} }
} }
foreach (Entities.GotoPoint g in loadData.GotoPoints) foreach (GotoPoint g in loadData.GotoPoints)
{ {
if (g.Active == true) if (g.Active == true)
{ {
@@ -66,9 +66,10 @@ namespace reallife_gamemode.Server.Managers
Vehicle current = NAPI.Vehicle.CreateVehicle((uint)v.Model, new Vector3(v.PositionX, v.PositionY, v.PositionZ), v.Heading, (v.PrimaryColor), Vehicle current = NAPI.Vehicle.CreateVehicle((uint)v.Model, new Vector3(v.PositionX, v.PositionY, v.PositionZ), v.Heading, (v.PrimaryColor),
v.SecondaryColor, v.NumberPlate, v.Alpha, false, false, v.Dimension); v.SecondaryColor, v.NumberPlate, v.Alpha, false, false, v.Dimension);
ShopVehicleList.Add(current); ShopVehicleList.Add(current);
current.Health = -4000; NAPI.Vehicle.SetVehicleEngineHealth(current, 0);
var tLabel = NAPI.TextLabel.CreateTextLabel(v.ModelName + " | " + v.Price + "~g~$", new Vector3(v.PositionX, v.PositionY, v.PositionZ + 1.5), 10, 1, 0, new Color(255, 255, 255), false, v.Dimension); var tLabel = NAPI.TextLabel.CreateTextLabel(v.ModelName + " | " + v.Price + "~g~$", new Vector3(v.PositionX, v.PositionY, v.PositionZ + 1.5), 10, 1, 0, new Color(255, 255, 255), false, v.Dimension);
current.SetData("shopVehicleId", v.Id); current.SetData("shopVehicleId", v.Id);
tLabel.AttachTo(current, "SKEL_ROOT", new Vector3(v.PositionX, v.PositionY, v.PositionZ + 1.5), new Vector3(0, 0, 0));
} }
} }
foreach (UserVehicle v in loadData.UserVehicles) foreach (UserVehicle v in loadData.UserVehicles)

View File

@@ -139,6 +139,7 @@ namespace reallife_gamemode.Server.Events
}; };
saveData.GotoPoints.Add(dataSet); saveData.GotoPoints.Add(dataSet);
saveData.SaveChanges(); saveData.SaveChanges();
LoadManager.GotoPointList.Add(dataSet);
} }
} }
public static void SaveAllOnSave() public static void SaveAllOnSave()