This commit is contained in:
VegaZ
2020-04-21 20:01:39 +02:00
14 changed files with 253 additions and 11 deletions

View File

@@ -194,6 +194,9 @@ PilotRouteList(globalData);
import gangwarHandle from './util/Gangwar'; import gangwarHandle from './util/Gangwar';
gangwarHandle(globalData); gangwarHandle(globalData);
import weapondamageUtil from './util/weapondamage';
weapondamageUtil();
import clotheShopList from './Interaction/clothes/ClotheShop'; import clotheShopList from './Interaction/clothes/ClotheShop';
clotheShopList(globalData); clotheShopList(globalData);

View File

@@ -0,0 +1,91 @@
export default function weapondamageUtil() {
mp.events.add('SERVER:WeaponModifier', (player) => {
//mp.gui.chat.push("Modifier steht jetzt auf" + modifier);
//mp.players.local.setWeaponDamageModifier(modifier);
let modifier = 1;
let meelemodifier = 1;
switch (player.weapon) {
case 0x1B06D571: //Pistol
modifier = 0.4;
meelemodifier = 1;
mp.gui.chat.push("PistolModifier: " + modifier);
break;
case 0xBFE256D4: //Pistol_MK2
modifier = 0.4;
meelemodifier = 1;
break;
case 0x5EF9FEC4: //Combatpistol
modifier = 0.5;
meelemodifier = 1;
break;
case 0x99AEEB3B: //Pistol50
modifier = 0.35;
meelemodifier = 1;
break;
case 0x2BE6766B: //SMG
modifier = 0.25;
meelemodifier = 1;
break;
case 0x1D073A89: //Pumpshotgun
modifier = 0.2;
meelemodifier = 1;
break;
case 0x83BF0278: //Cabinerifle
modifier = 0.25;
meelemodifier = 1;
break;
case 0x624FE830: //Compactrifle
modifier = 0.2;
meelemodifier = 1;
break;
case 0x05FC3C11: //Sniperrifle
modifier = 0.5;
meelemodifier = 1;
break;
case 0xA2719263: //Meele Umarmed Fist
meelemodifier = 0.1;
modifier = 1;
mp.gui.chat.push("FistModifier: " + meelemodifier);
break;
case 0x958A4A8F: //Meele Baseball Bat
meelemodifier = 0.15;
modifier = 1;
break;
case 0x8BB05FD7: //Meele Flashlight
meelemodifier = 0.1;
modifier = 1;
break;
case 0xD8DF3C3C: //Meele Knuckle
meelemodifier = 0.1;
modifier = 1;
mp.gui.chat.push("KnuckleModifier: " + meelemodifier);
break;
case 0x678B81B1: //Meele Nightstick
meelemodifier = 0.1;
modifier = 1;
break;
default:
modifier = 1;
meelemodifier = 1;
break;
}
mp.game.invoke("0xCE07B9F7817AADA3", player, modifier);
mp.game.invoke("0x4A3DC7ECCC321032", player, meelemodifier);
mp.gui.chat.push("Modifier: " + modifier + "MeeleModifier: " +meelemodifier);
});
mp.events.add('SERVER:WeaponModifier2', (player, modifier, meelemodifier) => {
//mp.gui.chat.push("Modifier steht jetzt auf" + modifier);
//mp.players.local.setWeaponDamageModifier(modifier);
mp.game.invoke("0xCE07B9F7817AADA3", player, modifier);
mp.game.invoke("0x4A3DC7ECCC321032", player, meelemodifier);
mp.gui.chat.push("Modifier: " + modifier + "MeeleModifier: " + meelemodifier);
});
/*mp.events.add('playerWeaponShot', (targetPosition, targetEntity) => {
for (var x in this.weaponAmmo) {
if (this.weaponAmmo[x].id != this.currentWeapon) {
continue;
}
this.weaponAmmo[x].ammo = this.weaponAmmo[x].ammo - 1;
}*/
}

View File

@@ -0,0 +1,7 @@
namespace ReallifeGamemode.Database.Entities
{
public partial class NoobVehicle : ServerVehicle
{
//public int SchoolId { get; set; }
}
}

View File

@@ -21,6 +21,12 @@ namespace ReallifeGamemode.Database.Entities
[NotMapped] [NotMapped]
private int _wanteds; private int _wanteds;
[NotMapped]
private int _handMoney;
public delegate void UserHandMoneyChangedEvent(User account);
public static event UserHandMoneyChangedEvent HandMoneyChanged;
[Key] [Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; } public int Id { get; set; }
@@ -40,7 +46,16 @@ namespace ReallifeGamemode.Database.Entities
public AdminLevel AdminLevel { get; set; } public AdminLevel AdminLevel { get; set; }
public bool Dead { get; set; } public bool Dead { get; set; }
public int Handmoney { get; set; } public int Handmoney
{
get => _handMoney;
set
{
_handMoney = value;
}
}
public float PositionX { get; set; } public float PositionX { get; set; }
public float PositionY { get; set; } public float PositionY { get; set; }
@@ -80,7 +95,7 @@ namespace ReallifeGamemode.Database.Entities
set set
{ {
this._wanteds = value; this._wanteds = value;
Player.TriggerEvent("SERVER:SetWanteds", value); HandMoneyChanged?.Invoke(this);
} }
} }
@@ -90,6 +105,8 @@ namespace ReallifeGamemode.Database.Entities
public int PaydayTimer { get; set; } = 60; public int PaydayTimer { get; set; } = 60;
public int PlayedMinutes { get; set; } = 1;
public bool DriverLicenseVehicle { get; set; } = false; public bool DriverLicenseVehicle { get; set; } = false;
public bool FlyingLicensePlane { get; set; } = false; public bool FlyingLicensePlane { get; set; } = false;

View File

@@ -136,6 +136,9 @@ namespace ReallifeGamemode.Database.Models
//Driving/Bike/Flight School //Driving/Bike/Flight School
public DbSet<Entities.SchoolVehicle> SchoolVehicles { get; set; } public DbSet<Entities.SchoolVehicle> SchoolVehicles { get; set; }
//Noob Vehicles
public DbSet<Entities.NoobVehicle> NoobVehicles { get; set; }
//Gangwar //Gangwar
public DbSet<Entities.Turfs> Turfs { get; set; } public DbSet<Entities.Turfs> Turfs { get; set; }

View File

@@ -147,21 +147,36 @@ namespace ReallifeGamemode.Server.Commands
ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position"); ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position");
break; break;
case AdminLevel.SUPPORTER: case AdminLevel.SUPPORTER:
ChatService.SendMessage(player, "~b~ " + "/tsupport, /showtickets, /rc, /rc quit, /o, /pm, /dimension, /to, /gh, /clearchat, /skick"); ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position, /tsupport, /showtickets, /rc, /rc quit, /o, /pm, /dimension, /to, /gh, /clearchat, /skick");
break; break;
case AdminLevel.ADMIN: case AdminLevel.ADMIN:
ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position, /tsupport, /showtickets, /rc, /rc quit, /o, /pm, /dimension, /to, /gh, /clearchat, /skick");
ChatService.SendMessage(player, "~b~ " + "/a, /countdown, /freeze, /unfreeze, /mark, /gotmark, /gotox, /up, /setdimension, /spec, /warn, /ip, /kick, /ban /unban, /slap, /takeweapon, /tov, /ghv, /factionlist, /businesslist, /joblist"); ChatService.SendMessage(player, "~b~ " + "/a, /countdown, /freeze, /unfreeze, /mark, /gotmark, /gotox, /up, /setdimension, /spec, /warn, /ip, /kick, /ban /unban, /slap, /takeweapon, /tov, /ghv, /factionlist, /businesslist, /joblist");
break; break;
case AdminLevel.ADMIN2: case AdminLevel.ADMIN2:
ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position, /tsupport, /showtickets, /rc, /rc quit, /o, /pm, /dimension, /to, /gh, /clearchat, /skick");
ChatService.SendMessage(player, "~b~ " + "/a, /countdown, /freeze, /unfreeze, /mark, /gotmark, /gotox, /up, /setdimension, /spec, /warn, /ip, /kick, /ban /unban, /slap, /takeweapon, /tov, /ghv, /factionlist, /businesslist, /joblist");
ChatService.SendMessage(player, "~b~ " + "/sethp, /setarmor, /arevive, /aunjail, /aclear, /clothes, /props"); ChatService.SendMessage(player, "~b~ " + "/sethp, /setarmor, /arevive, /aunjail, /aclear, /clothes, /props");
break; break;
case AdminLevel.ADMIN3: case AdminLevel.ADMIN3:
ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position, /tsupport, /showtickets, /rc, /rc quit, /o, /pm, /dimension, /to, /gh, /clearchat, /skick");
ChatService.SendMessage(player, "~b~ " + "/a, /countdown, /freeze, /unfreeze, /mark, /gotmark, /gotox, /up, /setdimension, /spec, /warn, /ip, /kick, /ban /unban, /slap, /takeweapon, /tov, /ghv, /factionlist, /businesslist, /joblist");
ChatService.SendMessage(player, "~b~ " + "/sethp, /setarmor, /arevive, /aunjail, /aclear, /clothes, /props");
ChatService.SendMessage(player, "~b~ " + "/adice, /settime, /setweather, /rsetarmor, /rgiveweapon, /giveweapon, /veh, /fv, /vfix, /vdestroy, /vlivery, /vcolor, /vehsmoke, /aneon, /mod, /showtuningmenu, /rvdestroy, /vsethp"); ChatService.SendMessage(player, "~b~ " + "/adice, /settime, /setweather, /rsetarmor, /rgiveweapon, /giveweapon, /veh, /fv, /vfix, /vdestroy, /vlivery, /vcolor, /vehsmoke, /aneon, /mod, /showtuningmenu, /rvdestroy, /vsethp");
break; break;
case AdminLevel.HEADADMIN: case AdminLevel.HEADADMIN:
ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position, /tsupport, /showtickets, /rc, /rc quit, /o, /pm, /dimension, /to, /gh, /clearchat, /skick");
ChatService.SendMessage(player, "~b~ " + "/a, /countdown, /freeze, /unfreeze, /mark, /gotmark, /gotox, /up, /setdimension, /spec, /warn, /ip, /kick, /ban /unban, /slap, /takeweapon, /tov, /ghv, /factionlist, /businesslist, /joblist");
ChatService.SendMessage(player, "~b~ " + "/sethp, /setarmor, /arevive, /aunjail, /aclear, /clothes, /props");
ChatService.SendMessage(player, "~b~ " + "/adice, /settime, /setweather, /rsetarmor, /rgiveweapon, /giveweapon, /veh, /fv, /vfix, /vdestroy, /vlivery, /vcolor, /vehsmoke, /aneon, /mod, /showtuningmenu, /rvdestroy, /vsethp");
ChatService.SendMessage(player, "~b~ " + "/aspeed, /set, /setmoney, /givemoney, /sethandmoney, /givehandmoney, /paydaydrop, /setwage, /freekh, /ainvite, /makeleader, /managefactionranks, /setweaponrack, /rmweaponrack, /setweaponrank, /giveitem, /inventory, /save, /remove, /house, /setbusinessbankbalance, /reloaddors, /interior, /editmode, /setbliptemplate, /ipl, /load, /quicksavemode, /createturf, /setturf, /cancleturf, /reloadturfs, /deleteturfs, /setturfpoint"); ChatService.SendMessage(player, "~b~ " + "/aspeed, /set, /setmoney, /givemoney, /sethandmoney, /givehandmoney, /paydaydrop, /setwage, /freekh, /ainvite, /makeleader, /managefactionranks, /setweaponrack, /rmweaponrack, /setweaponrank, /giveitem, /inventory, /save, /remove, /house, /setbusinessbankbalance, /reloaddors, /interior, /editmode, /setbliptemplate, /ipl, /load, /quicksavemode, /createturf, /setturf, /cancleturf, /reloadturfs, /deleteturfs, /setturfpoint");
break; break;
case AdminLevel.PROJEKTLEITUNG: case AdminLevel.PROJEKTLEITUNG:
ChatService.SendMessage(player, "~b~ " + "/team, /tc, /position, /tsupport, /showtickets, /rc, /rc quit, /o, /pm, /dimension, /to, /gh, /clearchat, /skick");
ChatService.SendMessage(player, "~b~ " + "/a, /countdown, /freeze, /unfreeze, /mark, /gotmark, /gotox, /up, /setdimension, /spec, /warn, /ip, /kick, /ban /unban, /slap, /takeweapon, /tov, /ghv, /factionlist, /businesslist, /joblist");
ChatService.SendMessage(player, "~b~ " + "/sethp, /setarmor, /arevive, /aunjail, /aclear, /clothes, /props");
ChatService.SendMessage(player, "~b~ " + "/adice, /settime, /setweather, /rsetarmor, /rgiveweapon, /giveweapon, /veh, /fv, /vfix, /vdestroy, /vlivery, /vcolor, /vehsmoke, /aneon, /mod, /showtuningmenu, /rvdestroy, /vsethp");
ChatService.SendMessage(player, "~b~ " + "/aspeed, /set, /setmoney, /givemoney, /sethandmoney, /givehandmoney, /paydaydrop, /setwage, /freekh, /ainvite, /makeleader, /managefactionranks, /setweaponrack, /rmweaponrack, /setweaponrank, /giveitem, /inventory, /save, /remove, /house, /setbusinessbankbalance, /reloaddors, /interior, /editmode, /setbliptemplate, /ipl, /load, /quicksavemode, /createturf, /setturf, /cancleturf, /reloadturfs, /deleteturfs, /setturfpoint");
ChatService.SendMessage(player, "~b~ " + "/makeadmin, /whitelist, /blind"); ChatService.SendMessage(player, "~b~ " + "/makeadmin, /whitelist, /blind");
break; break;
} }
@@ -230,15 +245,23 @@ namespace ReallifeGamemode.Server.Commands
ChatService.NotAuthorized(player); ChatService.NotAuthorized(player);
return; return;
} }
if(!player.IsAdminDuty())
{
ChatService.SendMessage(player, "~r~ Du bist nicht im Admin-Duty-Modus!");
ChatService.SendMessage(player, "1"+player.GetData<bool>("Adminduty"));
return;
}
if (!GlobalHelper.tsupAdmins.Contains(player)) if (!GlobalHelper.tsupAdmins.Contains(player))
{ {
ChatService.SendMessage(player, "2"+player.GetData<bool>("Adminduty"));
GlobalHelper.tsupAdmins.Add(player); GlobalHelper.tsupAdmins.Add(player);
player.SetSharedData("blipColor", 30); player.SetSharedData("blipColor", 30);
ChatService.SendMessage(player, "~g~ ** " + "Du befindest dich im T-Support"); ChatService.SendMessage(player, "~g~ ** " + "Du befindest dich im T-Support");
} }
else else
{ {
ChatService.SendMessage(player, "3"+player.GetData<bool>("Adminduty"));
GlobalHelper.tsupAdmins.Remove(player); GlobalHelper.tsupAdmins.Remove(player);
ChatService.SendMessage(player, "!{#ee4d2e}** " + "Du befindest dich nicht mehr im T-Support"); ChatService.SendMessage(player, "!{#ee4d2e}** " + "Du befindest dich nicht mehr im T-Support");
@@ -265,7 +288,6 @@ namespace ReallifeGamemode.Server.Commands
} }
} }
} }
[Command("aduty", "~m~Benutzung: ~s~/aduty")] [Command("aduty", "~m~Benutzung: ~s~/aduty")]
public void CmdAduty(Player player) public void CmdAduty(Player player)
{ {
@@ -275,18 +297,17 @@ namespace ReallifeGamemode.Server.Commands
return; return;
} }
if (!GlobalHelper.DutyAdmins.Contains(player)) if (player.GetData<bool>("Adminduty") == false)
{ {
GlobalHelper.DutyAdmins.Add(player); player.SetData("Adminduty", true);
ChatService.Broadcast("~g~[SUPPORT] " + player.Name + " hat sich zum Support angemeldet"); ChatService.Broadcast("~g~[SUPPORT] " + player.Name + " hat sich zum Support angemeldet");
player.TriggerEvent("toggleADutyMode", true); player.TriggerEvent("toggleADutyMode", true);
} }
else else
{ {
GlobalHelper.DutyAdmins.Remove(player); player.SetData("Adminduty", false);
ChatService.Broadcast("!{#ee4d2e}[SUPPORT] " + player.Name + " hat sich vom Support abgemeldet"); ChatService.Broadcast("!{#ee4d2e}[SUPPORT] " + player.Name + " hat sich vom Support abgemeldet");
player.TriggerEvent("toggleADutyMode", false); player.TriggerEvent("toggleADutyMode", false);
@@ -1602,6 +1623,18 @@ namespace ReallifeGamemode.Server.Commands
#endregion #endregion
#region ALevel1337 #region ALevel1337
[Command("wepmod", "~m~Benutzung: ~s~/wepmod [Variable]")]
public void CmdWeaponModifier(Player player, float 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.TriggerEvent("SERVER:WeaponModifier2", player, 1, modifier);
}
[Command("gotocp", "~m~Benutzung: ~s~/gotocp")] [Command("gotocp", "~m~Benutzung: ~s~/gotocp")]
public void CmdAdminGotocp(Player admin) public void CmdAdminGotocp(Player admin)
{ {
@@ -1973,7 +2006,7 @@ namespace ReallifeGamemode.Server.Commands
} }
} }
[Command("save", "~m~Benutzung: ~s~/save [Typ = ~g~Blip~s~, ~g~Goto (X)~s~, ~r~Marker~s~, ~r~Ped~s~, ~r~Pickup~s~, ~r~TextLabel~s~, ~g~Vehicle~s~, ~g~FVehicle~s~, ~g~SVehicle (X)~s~, ~g~JVehicle (X)~s~, ~g~Location~s~] (Weitere Angaben) = (X)", GreedyArg = true)] [Command("save", "~m~Benutzung: ~s~/save [Typ = ~g~Blip~s~, ~g~Goto (X)~s~, ~r~Marker~s~, ~r~Ped~s~, ~r~Pickup~s~, ~r~TextLabel~s~, ~g~Vehicle~s~, ~g~FVehicle~s~, ~g~SVehicle (X)~s~, ~g~JVehicle (X)~s~, ~g~SchoolVehicle (X)~s~, ~g~NoobVehicle~s~, ~g~Location~s~] (Weitere Angaben) = (X)", GreedyArg = true)]
public void CmdAdminSave(Player player, string typ, string option1 = null, string option2 = null) public void CmdAdminSave(Player player, string typ, string option1 = null, string option2 = null)
{ {
if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true) if (!player.GetUser()?.IsAdmin(AdminLevel.HEADADMIN) ?? true)
@@ -2152,6 +2185,16 @@ namespace ReallifeGamemode.Server.Commands
player.SetIntoVehicle(vehicle, 0); player.SetIntoVehicle(vehicle, 0);
} }
break; break;
case "noobvehicle":
if (player.IsInVehicle)
{
Vehicle vehicle = player.Vehicle;
vehicle = SaveManager.SaveNoobVehicleData(vehicle, (VehicleHash)vehicle.Model, vehicle.Position, vehicle.Heading, vehicle.NumberPlate,
vehicle.PrimaryColor, vehicle.SecondaryColor, vehicle.Locked, vehicle.EngineStatus);
player.SendNotification("Noobfahrzeug ~g~" + vehicle.DisplayName + "~s~ gespeichert.", true);
player.SetIntoVehicle(vehicle, 0);
}
break;
case "location": case "location":
if (option1 == null || option1.Length < 0) if (option1 == null || option1.Length < 0)

View File

@@ -39,6 +39,7 @@ namespace ReallifeGamemode.Server.Events
player.SendNotification("~r~Du darfst dieses Fahrzeug nicht benutzen!", true); player.SendNotification("~r~Du darfst dieses Fahrzeug nicht benutzen!", true);
return; return;
} }
} }
if (vehicle.GetServerVehicle() is SchoolVehicle sVeh) if (vehicle.GetServerVehicle() is SchoolVehicle sVeh)
{ {
@@ -55,6 +56,22 @@ namespace ReallifeGamemode.Server.Events
return; return;
} }
} }
if (vehicle.GetServerVehicle() is NoobVehicle nVeh)
{
if (!player.IsAdminDuty())
{
if (player.GetUser().PlayedMinutes > 1800)
{
player.StopAnimation();
player.SendNotification("~r~Du hast schon über 30 Spielstunden!", true);
return;
}
}
else if (player.IsAdminDuty())
{
player.SendNotification("~g~Freie Fahrt!", true);
}
}
} }
} }
} }

View File

@@ -70,6 +70,10 @@ namespace ReallifeGamemode.Server.Extensions
var user = player.GetUser(); var user = player.GetUser();
return user.GetData("duty", false); return user.GetData("duty", false);
} }
public static bool IsAdminDuty(this Player player)
{
return player.HasData("Adminduty") ? player.GetData<bool>("Adminduty") : false;
}
public static Vector3 GetPositionFromPlayer(Player player, float distance, int offset = 0) public static Vector3 GetPositionFromPlayer(Player player, float distance, int offset = 0)
{ {
var pos = player.Position; var pos = player.Position;

View File

@@ -66,6 +66,14 @@ namespace ReallifeGamemode.Server.Extensions
{ {
numberplate = $"J{jV.JobId} " + numberplate; numberplate = $"J{jV.JobId} " + numberplate;
} }
if (veh is SchoolVehicle)
{
numberplate = "FS" + numberplate;
}
if (veh is NoobVehicle)
{
numberplate = "NV" + numberplate;
}
NAPI.Vehicle.SetVehicleNumberPlate(newVeh, numberplate); NAPI.Vehicle.SetVehicleNumberPlate(newVeh, numberplate);
veh.NumberPlate = numberplate; veh.NumberPlate = numberplate;

View File

@@ -166,6 +166,7 @@ namespace ReallifeGamemode.Server.Finance
User user = player.GetUser(dbContext); User user = player.GetUser(dbContext);
if (player.IsLoggedIn()) if (player.IsLoggedIn())
{ {
user.PlayedMinutes += 1;
if (user.PaydayTimer <= 0) if (user.PaydayTimer <= 0)
{ {
Economy.SetPaycheck(player); Economy.SetPaycheck(player);

View File

@@ -130,6 +130,11 @@ namespace ReallifeGamemode.Server
PlayerService.GetPlayerByNameOrId(user).TriggerEvent("updateMoney", account.Balance); PlayerService.GetPlayerByNameOrId(user).TriggerEvent("updateMoney", account.Balance);
} }
}; };
User.HandMoneyChanged += (user) =>
{
user.Player.TriggerEvent("SERVER:SET_HANDMONEY", user.Handmoney);
};
} }
[RemoteEvent("CLIENT:Event")] [RemoteEvent("CLIENT:Event")]

View File

@@ -131,6 +131,31 @@ namespace ReallifeGamemode.Server.Managers
} }
} }
public static Vehicle SaveNoobVehicleData(Vehicle veh, VehicleHash vehicleModel, Vector3 vehiclePosition, float vehicleHeading,
string vehicleNumberPlate, int vehiclePrimaryColor, int vehicleSecondaryColor, bool vehicleLocked, bool vehicleEngine)
{
using (var saveData = new DatabaseContext())
{
var dataSet = new NoobVehicle
{
Model = vehicleModel,
PositionX = vehiclePosition.X,
PositionY = vehiclePosition.Y,
PositionZ = vehiclePosition.Z,
Heading = vehicleHeading,
NumberPlate = vehicleNumberPlate,
PrimaryColor = vehiclePrimaryColor,
SecondaryColor = vehicleSecondaryColor,
Locked = vehicleLocked,
Active = true
};
saveData.NoobVehicles.Add(dataSet);
saveData.SaveChanges();
return dataSet.Spawn(veh);
}
}
public static Vehicle SaveFactionVehicleData(Vehicle veh, VehicleHash vehicleModel, Vector3 vehiclePosition, float vehicleHeading, public static Vehicle SaveFactionVehicleData(Vehicle veh, VehicleHash vehicleModel, Vector3 vehiclePosition, float vehicleHeading,
@@ -210,8 +235,13 @@ namespace ReallifeGamemode.Server.Managers
//Alle Spieler //Alle Spieler
foreach (Player player in NAPI.Pools.GetAllPlayers()) foreach (Player player in NAPI.Pools.GetAllPlayers())
{ {
Vector3 pos = player.Position;
User user = player.GetUser(saveAll); User user = player.GetUser(saveAll);
if (user == null)
{
continue;
}
Vector3 pos = player.Position;
user.PositionX = pos.X; user.PositionX = pos.X;
user.PositionY = pos.Y; user.PositionY = pos.Y;
user.PositionZ = pos.Z; user.PositionZ = pos.Z;

View File

@@ -43,7 +43,7 @@ namespace ReallifeGamemode.Server.Util
CharacterCreator.ApplyCharacter(player); CharacterCreator.ApplyCharacter(player);
Events.UpdateCharacterCloth.LoadCharacterDefaults(player); Events.UpdateCharacterCloth.LoadCharacterDefaults(player);
player.TriggerEvent("toggleDutyMode", true); player.TriggerEvent("toggleDutyMode", false);
int medicCount = 0; int medicCount = 0;
foreach (Player c in NAPI.Pools.GetAllPlayers()) foreach (Player c in NAPI.Pools.GetAllPlayers())
{ {

View File

@@ -0,0 +1,13 @@
using GTANetworkAPI;
namespace ReallifeGamemode.Server.Util
{
class WeaponDamage : Script
{
[ServerEvent(Event.PlayerWeaponSwitch)]
public void OnPlayerWeaponSwitch(Player player, WeaponHash oldWeapon, WeaponHash newWeapon)
{
NAPI.ClientEvent.TriggerClientEvent(player, "SERVER:WeaponModifier", player);
}
}
}