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';
gangwarHandle(globalData);
import weapondamageUtil from './util/weapondamage';
weapondamageUtil();
import clotheShopList from './Interaction/clothes/ClotheShop';
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]
private int _wanteds;
[NotMapped]
private int _handMoney;
public delegate void UserHandMoneyChangedEvent(User account);
public static event UserHandMoneyChangedEvent HandMoneyChanged;
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
@@ -40,7 +46,16 @@ namespace ReallifeGamemode.Database.Entities
public AdminLevel AdminLevel { get; set; }
public bool Dead { get; set; }
public int Handmoney { get; set; }
public int Handmoney
{
get => _handMoney;
set
{
_handMoney = value;
}
}
public float PositionX { get; set; }
public float PositionY { get; set; }
@@ -80,7 +95,7 @@ namespace ReallifeGamemode.Database.Entities
set
{
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 PlayedMinutes { get; set; } = 1;
public bool DriverLicenseVehicle { get; set; } = false;
public bool FlyingLicensePlane { get; set; } = false;

View File

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

View File

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

View File

@@ -39,6 +39,7 @@ namespace ReallifeGamemode.Server.Events
player.SendNotification("~r~Du darfst dieses Fahrzeug nicht benutzen!", true);
return;
}
}
if (vehicle.GetServerVehicle() is SchoolVehicle sVeh)
{
@@ -55,6 +56,22 @@ namespace ReallifeGamemode.Server.Events
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();
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)
{
var pos = player.Position;

View File

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

View File

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

View File

@@ -130,6 +130,11 @@ namespace ReallifeGamemode.Server
PlayerService.GetPlayerByNameOrId(user).TriggerEvent("updateMoney", account.Balance);
}
};
User.HandMoneyChanged += (user) =>
{
user.Player.TriggerEvent("SERVER:SET_HANDMONEY", user.Handmoney);
};
}
[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,
@@ -210,8 +235,13 @@ namespace ReallifeGamemode.Server.Managers
//Alle Spieler
foreach (Player player in NAPI.Pools.GetAllPlayers())
{
Vector3 pos = player.Position;
User user = player.GetUser(saveAll);
if (user == null)
{
continue;
}
Vector3 pos = player.Position;
user.PositionX = pos.X;
user.PositionY = pos.Y;
user.PositionZ = pos.Z;

View File

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

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);
}
}
}