Merge branch 'develop' of ssh://development.life-of-german.org:451/log-gtav/reallife-gamemode into develop
This commit is contained in:
@@ -249,6 +249,13 @@ class RageVehicle extends RageEntity implements IVehicle {
|
|||||||
|
|
||||||
this.vehicle.setDoorShut(door, instantly);
|
this.vehicle.setDoorShut(door, instantly);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get class(): number {
|
||||||
|
if (mp.vehicles.exists(this.vehicle)) {
|
||||||
|
return this.vehicle.getClass();
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ interface IVehicle extends IEntity {
|
|||||||
setDoorsLocked(state: boolean);
|
setDoorsLocked(state: boolean);
|
||||||
setDoorShut(door: number, instantly: boolean);
|
setDoorShut(door: number, instantly: boolean);
|
||||||
setDoorOpen(door: number, loose: boolean, instantly: boolean);
|
setDoorOpen(door: number, loose: boolean, instantly: boolean);
|
||||||
|
class: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface IEntityPool<TEntity> {
|
interface IEntityPool<TEntity> {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
export default function smoothThrottle() {
|
export default function smoothThrottle() {
|
||||||
let GlobalDisable = false;
|
let GlobalDisable = false;
|
||||||
let DisableAntiReverse = true;
|
let DisableAntiReverse = false;
|
||||||
let DisableSmoothThrottle = false;
|
let DisableSmoothThrottle = false;
|
||||||
|
|
||||||
let BrakeSystem = false;
|
let BrakeSystem = false;
|
||||||
@@ -47,7 +47,7 @@ export default function smoothThrottle() {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (BrakeSystem) {
|
if (BrakeSystem) {
|
||||||
if (mp.players.local.vehicle !== null) {
|
if (mp.players.local.vehicle && mp.vehicles.exists(mp.players.local.vehicle)) {
|
||||||
if (!mp.players.local.vehicle.isSeatFree(-1)) //only do this if the vehicle has a driver (doesn't have to be the player who is rendering this)
|
if (!mp.players.local.vehicle.isSeatFree(-1)) //only do this if the vehicle has a driver (doesn't have to be the player who is rendering this)
|
||||||
{
|
{
|
||||||
//Optimize function calls to variables (probably doesn't make a difference)
|
//Optimize function calls to variables (probably doesn't make a difference)
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ game.events.onPlayerEnterVehicle(async (vehicle, seat) => {
|
|||||||
|
|
||||||
if (vehicle) {
|
if (vehicle) {
|
||||||
var data: VehicleData = vehicle.getSharedData("VehicleData");
|
var data: VehicleData = vehicle.getSharedData("VehicleData");
|
||||||
|
|
||||||
setVehicleData(vehicle, data);
|
setVehicleData(vehicle, data);
|
||||||
|
if (vehicle.class == 16) mp.game.vehicle.defaultEngineBehaviour = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -31,8 +31,8 @@ game.events.onPlayerExitVehicle(async () => {
|
|||||||
|
|
||||||
if (veh) {
|
if (veh) {
|
||||||
var data: VehicleData = veh.getSharedData("VehicleData");
|
var data: VehicleData = veh.getSharedData("VehicleData");
|
||||||
|
|
||||||
setVehicleData(veh, data);
|
setVehicleData(veh, data);
|
||||||
|
if (veh.class == 16) mp.game.vehicle.defaultEngineBehaviour = false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
1885
ReallifeGamemode.Database/Migrations/20210405190220_UserNameUniqueIndex.Designer.cs
generated
Normal file
1885
ReallifeGamemode.Database/Migrations/20210405190220_UserNameUniqueIndex.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,23 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
namespace ReallifeGamemode.Database.Migrations
|
||||||
|
{
|
||||||
|
public partial class UserNameUniqueIndex : Migration
|
||||||
|
{
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_Users_Name",
|
||||||
|
table: "Users",
|
||||||
|
column: "Name",
|
||||||
|
unique: true);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropIndex(
|
||||||
|
name: "IX_Users_Name",
|
||||||
|
table: "Users");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1463,6 +1463,9 @@ namespace ReallifeGamemode.Database.Migrations
|
|||||||
|
|
||||||
b.HasIndex("HouseId");
|
b.HasIndex("HouseId");
|
||||||
|
|
||||||
|
b.HasIndex("Name")
|
||||||
|
.IsUnique();
|
||||||
|
|
||||||
b.ToTable("Users");
|
b.ToTable("Users");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
using Microsoft.EntityFrameworkCore;
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.EntityFrameworkCore.Design;
|
using Microsoft.EntityFrameworkCore.Design;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
@@ -43,10 +45,16 @@ namespace ReallifeGamemode.Database.Models
|
|||||||
.HasIndex(b => b.BusinessId)
|
.HasIndex(b => b.BusinessId)
|
||||||
.IsUnique(true);
|
.IsUnique(true);
|
||||||
|
|
||||||
modelBuilder.Entity<Entities.User>()
|
modelBuilder.Entity<Entities.User>(e =>
|
||||||
.HasIndex(u => u.BusinessId)
|
{
|
||||||
|
e.HasIndex(u => u.BusinessId)
|
||||||
.IsUnique(true);
|
.IsUnique(true);
|
||||||
|
|
||||||
|
e.HasIndex(u => u.Name)
|
||||||
|
.IsUnique(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
modelBuilder.Entity<Entities.ServerVehicle>()
|
modelBuilder.Entity<Entities.ServerVehicle>()
|
||||||
.Property(sv => sv.Active)
|
.Property(sv => sv.Active)
|
||||||
.HasDefaultValue(true);
|
.HasDefaultValue(true);
|
||||||
|
|||||||
@@ -226,7 +226,7 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
NAPI.Pools.GetAllPlayers().ForEach(p =>
|
NAPI.Pools.GetAllPlayers().ForEach(p =>
|
||||||
{
|
{
|
||||||
User pUser = p.GetUser();
|
User pUser = p.GetUser();
|
||||||
if (pUser.FactionLeader || pUser.IsAdmin(AdminLevel.ADMIN))
|
if ((pUser?.FactionLeader ?? false) || pUser.IsAdmin(AdminLevel.ADMIN))
|
||||||
{
|
{
|
||||||
ChatService.SendMessage(p, broadcastMsg);
|
ChatService.SendMessage(p, broadcastMsg);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -108,6 +108,7 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
{
|
{
|
||||||
player.StopAnimation();
|
player.StopAnimation();
|
||||||
player.PlayAnimation("mp_am_hold_up", "handsup_base", (int)(AnimationFlags.Loop | AnimationFlags.OnlyAnimateUpperBody | AnimationFlags.AllowPlayerControl | AnimationFlags.Cancellable));
|
player.PlayAnimation("mp_am_hold_up", "handsup_base", (int)(AnimationFlags.Loop | AnimationFlags.OnlyAnimateUpperBody | AnimationFlags.AllowPlayerControl | AnimationFlags.Cancellable));
|
||||||
|
ChatService.SendInRange(player.Position, 20, $"~m~{player.Name} stellt sich...");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Command("event", "~m~Benutzung: ~s~/event [Nachricht]", GreedyArg = true)]
|
[Command("event", "~m~Benutzung: ~s~/event [Nachricht]", GreedyArg = true)]
|
||||||
|
|||||||
@@ -129,6 +129,11 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
[ServerEvent(Event.PlayerEnterVehicle)]
|
[ServerEvent(Event.PlayerEnterVehicle)]
|
||||||
public void CarDealerBusiness_PlayerEnterVehicle(Player player, Vehicle veh, int seat)
|
public void CarDealerBusiness_PlayerEnterVehicle(Player player, Vehicle veh, int seat)
|
||||||
{
|
{
|
||||||
|
if(player.IsAdminDuty())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ServerVehicle sVeh = veh.GetServerVehicle();
|
ServerVehicle sVeh = veh.GetServerVehicle();
|
||||||
if (sVeh == null) return;
|
if (sVeh == null) return;
|
||||||
if (!(sVeh is ShopVehicle)) return;
|
if (!(sVeh is ShopVehicle)) return;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using System.Collections.Generic;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using GTANetworkAPI;
|
using GTANetworkAPI;
|
||||||
using ReallifeGamemode.Database.Entities;
|
using ReallifeGamemode.Database.Entities;
|
||||||
@@ -115,6 +116,17 @@ namespace ReallifeGamemode.Server.Services
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static void SendInRange(Vector3 position, int range, string message)
|
||||||
|
{
|
||||||
|
foreach(Player player in NAPI.Pools.GetAllPlayers())
|
||||||
|
{
|
||||||
|
if(player.Position.DistanceTo(position) <= range)
|
||||||
|
{
|
||||||
|
SendMessage(player, message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void BroadcastGroup(string message, Group group)
|
public static void BroadcastGroup(string message, Group group)
|
||||||
{
|
{
|
||||||
message = $"!{{FF8080}}** Gruppe: {message}";
|
message = $"!{{FF8080}}** Gruppe: {message}";
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ Set-Variable resourcesDir -option Constant -value "dotnet\resources"
|
|||||||
Set-Variable gamemodeDir -option Constant -value "reallife-gamemode"
|
Set-Variable gamemodeDir -option Constant -value "reallife-gamemode"
|
||||||
Set-Variable assetsDir -option Constant -value "client_packages\assets"
|
Set-Variable assetsDir -option Constant -value "client_packages\assets"
|
||||||
Set-Variable indexJsDir -option Constant -value "client_packages"
|
Set-Variable indexJsDir -option Constant -value "client_packages"
|
||||||
Set-Variable dlcPacksDir -option Constant -value "source_dlcpacks"
|
Set-Variable dlcPacksDir -option Constant -value "client_packages\game_resources\dlcpacks"
|
||||||
Set-Variable fullBuildDir -option Constant -value "$serverProjectPath\$buildDirectory"
|
Set-Variable fullBuildDir -option Constant -value "$serverProjectPath\$buildDirectory"
|
||||||
|
|
||||||
# create default config file if not exist
|
# create default config file if not exist
|
||||||
|
|||||||
Reference in New Issue
Block a user