Stuff
This commit is contained in:
@ -50,6 +50,8 @@ namespace CoopClient
|
||||
public int VehicleModelHash { get; set; }
|
||||
private int[] LastVehicleColors = new int[] { 0, 0 };
|
||||
public int[] VehicleColors { get; set; }
|
||||
private Dictionary<int, int> LastVehicleMods = new Dictionary<int, int>();
|
||||
public Dictionary<int, int> VehicleMods { get; set; }
|
||||
public bool VehicleDead { get; set; }
|
||||
public float VehicleEngineHealth { get; set; }
|
||||
public int VehicleSeatIndex { get; set; }
|
||||
@ -281,13 +283,6 @@ namespace CoopClient
|
||||
}
|
||||
|
||||
#region -- VEHICLE SYNC --
|
||||
if (VehicleColors != null && VehicleColors != LastVehicleColors)
|
||||
{
|
||||
Function.Call(Hash.SET_VEHICLE_COLOURS, MainVehicle, VehicleColors[0], VehicleColors[1]);
|
||||
|
||||
LastVehicleColors = VehicleColors;
|
||||
}
|
||||
|
||||
if (Character.IsOnBike && MainVehicle.ClassType == VehicleClass.Cycles)
|
||||
{
|
||||
bool isFastPedaling = Function.Call<bool>(Hash.IS_ENTITY_PLAYING_ANIM, Character.Handle, PedalingAnimDict(), "fast_pedal_char", 3);
|
||||
@ -311,6 +306,23 @@ namespace CoopClient
|
||||
return;
|
||||
}
|
||||
|
||||
if (VehicleColors != null && VehicleColors != LastVehicleColors)
|
||||
{
|
||||
Function.Call(Hash.SET_VEHICLE_COLOURS, MainVehicle, VehicleColors[0], VehicleColors[1]);
|
||||
|
||||
LastVehicleColors = VehicleColors;
|
||||
}
|
||||
|
||||
if (VehicleMods != null && VehicleMods != LastVehicleMods)
|
||||
{
|
||||
Function.Call(Hash.SET_VEHICLE_MOD_KIT, MainVehicle, 0);
|
||||
|
||||
foreach (KeyValuePair<int, int> mod in VehicleMods)
|
||||
{
|
||||
MainVehicle.Mods[(VehicleModType)mod.Key].Index = mod.Value;
|
||||
}
|
||||
}
|
||||
|
||||
MainVehicle.EngineHealth = VehicleEngineHealth;
|
||||
|
||||
if (VehicleDead && !MainVehicle.IsDead)
|
||||
@ -606,7 +618,6 @@ namespace CoopClient
|
||||
Character.CanRagdoll = false;
|
||||
Character.IsInvincible = true;
|
||||
Character.Health = Health;
|
||||
Character.CanBeTargetted = true;
|
||||
|
||||
if (username != null)
|
||||
{
|
||||
@ -625,6 +636,8 @@ namespace CoopClient
|
||||
Function.Call(Hash.SET_PED_COMPONENT_VARIATION, Character.Handle, prop.Key, prop.Value, 0, 0);
|
||||
}
|
||||
|
||||
Function.Call(Hash.SET_PED_CAN_BE_TARGETTED, Character, Game.Player, true);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -18,10 +18,10 @@ namespace CoopClient
|
||||
|
||||
private bool GameLoaded = false;
|
||||
|
||||
public static readonly string CurrentModVersion = "V0_5_1";
|
||||
public static readonly string CurrentModVersion = "V0_6_0";
|
||||
|
||||
public static bool ShareNpcsWithPlayers = false;
|
||||
public static bool DeactivateTraffic = false;
|
||||
public static bool DisableTraffic = false;
|
||||
public static bool NpcsAllowed = false;
|
||||
private static bool IsGoingToCar = false;
|
||||
|
||||
@ -204,6 +204,7 @@ namespace CoopClient
|
||||
}
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
private int ArtificialLagCounter;
|
||||
public static EntitiesPlayer DebugSyncPed;
|
||||
public static int LastFullDebugSync = 0;
|
||||
@ -283,6 +284,7 @@ namespace CoopClient
|
||||
DebugSyncPed.VehicleSpeed = veh.Speed;
|
||||
DebugSyncPed.VehicleSteeringAngle = veh.SteeringAngle;
|
||||
DebugSyncPed.VehicleColors = new int[] { primaryColor, secondaryColor };
|
||||
DebugSyncPed.VehicleMods = Util.GetVehicleMods(veh);
|
||||
DebugSyncPed.VehDoors = Util.GetVehicleDoors(veh.Doors);
|
||||
DebugSyncPed.LastSyncWasFull = (flags.Value & (byte)VehicleDataFlags.LastSyncWasFull) > 0;
|
||||
DebugSyncPed.IsInVehicle = (flags.Value & (byte)VehicleDataFlags.IsInVehicle) > 0;
|
||||
@ -312,5 +314,6 @@ namespace CoopClient
|
||||
LastFullDebugSync = currentTimestamp;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
@ -10,16 +10,18 @@ namespace CoopClient.Menus.Sub
|
||||
Alignment = Main.MainSettings.FlipMenu ? GTA.UI.Alignment.Right : GTA.UI.Alignment.Left
|
||||
};
|
||||
|
||||
private readonly NativeCheckboxItem DeactivateTraffic = new NativeCheckboxItem("Deactivate Traffic", Main.DeactivateTraffic);
|
||||
private readonly NativeCheckboxItem DisableTraffic = new NativeCheckboxItem("Disable Traffic", Main.DisableTraffic);
|
||||
private readonly NativeCheckboxItem ShareNpcsItem = new NativeCheckboxItem("Share Npcs", Main.ShareNpcsWithPlayers) { Enabled = false };
|
||||
private readonly NativeSliderItem StreamedNpcsItem = new NativeSliderItem(string.Format("Streamed Npcs ({0})", Main.MainSettings.StreamedNpc), 20, Main.MainSettings.StreamedNpc);
|
||||
private readonly NativeSliderItem StreamedNpcsItem = new NativeSliderItem(string.Format("Streamed Npcs ({0})", Main.MainSettings.StreamedNpc), 20, Main.MainSettings.StreamedNpc > 20 ? 20 : Main.MainSettings.StreamedNpc);
|
||||
private readonly NativeCheckboxItem FlipMenuItem = new NativeCheckboxItem("Flip menu", Main.MainSettings.FlipMenu);
|
||||
#if DEBUG
|
||||
private readonly NativeCheckboxItem UseDebugItem = new NativeCheckboxItem("Debug", Main.UseDebug);
|
||||
private readonly NativeCheckboxItem ShowNetworkInfo = new NativeCheckboxItem("Show Network Info", Main.MainNetworking.ShowNetworkInfo);
|
||||
#endif
|
||||
|
||||
public Settings()
|
||||
{
|
||||
DeactivateTraffic.CheckboxChanged += DisableTrafficCheckboxChanged;
|
||||
DisableTraffic.CheckboxChanged += DisableTrafficCheckboxChanged;
|
||||
ShareNpcsItem.CheckboxChanged += (item, check) => { Main.ShareNpcsWithPlayers = ShareNpcsItem.Checked; };
|
||||
StreamedNpcsItem.ValueChanged += StreamedNpcsValueChanged;
|
||||
FlipMenuItem.CheckboxChanged += FlipMenuCheckboxChanged;
|
||||
@ -28,7 +30,7 @@ namespace CoopClient.Menus.Sub
|
||||
ShowNetworkInfo.CheckboxChanged += ShowNetworkInfoCheckboxChanged;
|
||||
#endif
|
||||
|
||||
MainMenu.Add(DeactivateTraffic);
|
||||
MainMenu.Add(DisableTraffic);
|
||||
MainMenu.Add(ShareNpcsItem);
|
||||
MainMenu.Add(StreamedNpcsItem);
|
||||
MainMenu.Add(FlipMenuItem);
|
||||
@ -38,6 +40,25 @@ namespace CoopClient.Menus.Sub
|
||||
#endif
|
||||
}
|
||||
|
||||
public void DisableTrafficCheckboxChanged(object a, System.EventArgs b)
|
||||
{
|
||||
Main.DisableTraffic = DisableTraffic.Checked;
|
||||
|
||||
if (DisableTraffic.Checked)
|
||||
{
|
||||
if (ShareNpcsItem.Checked)
|
||||
{
|
||||
ShareNpcsItem.Checked = false;
|
||||
}
|
||||
|
||||
ShareNpcsItem.Enabled = false;
|
||||
}
|
||||
else if (Main.NpcsAllowed && !ShareNpcsItem.Enabled)
|
||||
{
|
||||
ShareNpcsItem.Enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
public void StreamedNpcsValueChanged(object a, System.EventArgs b)
|
||||
{
|
||||
Main.MainSettings.StreamedNpc = StreamedNpcsItem.Value;
|
||||
@ -54,6 +75,7 @@ namespace CoopClient.Menus.Sub
|
||||
Util.SaveSettings();
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
public void UseDebugCheckboxChanged(object a, System.EventArgs b)
|
||||
{
|
||||
Main.UseDebug = UseDebugItem.Checked;
|
||||
@ -82,24 +104,6 @@ namespace CoopClient.Menus.Sub
|
||||
Main.MainNetworking.BytesSend = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public void DisableTrafficCheckboxChanged(object a, System.EventArgs b)
|
||||
{
|
||||
Main.DeactivateTraffic = DeactivateTraffic.Checked;
|
||||
|
||||
if (DeactivateTraffic.Checked)
|
||||
{
|
||||
if (ShareNpcsItem.Checked)
|
||||
{
|
||||
ShareNpcsItem.Checked = false;
|
||||
}
|
||||
|
||||
ShareNpcsItem.Enabled = false;
|
||||
}
|
||||
else if (Main.NpcsAllowed && !ShareNpcsItem.Enabled)
|
||||
{
|
||||
ShareNpcsItem.Enabled = true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
@ -133,7 +133,7 @@ namespace CoopClient
|
||||
|
||||
Main.MainMenu.MainMenu.Items[2].Enabled = true;
|
||||
Main.MainMenu.MainMenu.Items[2].Title = "Disconnect";
|
||||
Main.MainMenu.SubSettings.MainMenu.Items[1].Enabled = !Main.DeactivateTraffic && Main.NpcsAllowed;
|
||||
Main.MainMenu.SubSettings.MainMenu.Items[1].Enabled = !Main.DisableTraffic && Main.NpcsAllowed;
|
||||
|
||||
Main.MainMenu.MainMenu.Visible = false;
|
||||
Main.MainMenu.MenuPool.RefreshAll();
|
||||
@ -323,6 +323,7 @@ namespace CoopClient
|
||||
player.VehicleSpeed = packet.VehSpeed;
|
||||
player.VehicleSteeringAngle = packet.VehSteeringAngle;
|
||||
player.VehicleColors = packet.VehColors;
|
||||
player.VehicleMods = packet.VehMods;
|
||||
player.VehDoors = packet.VehDoors;
|
||||
player.LastSyncWasFull = (packet.Flag.Value & (byte)VehicleDataFlags.LastSyncWasFull) > 0;
|
||||
player.IsInVehicle = (packet.Flag.Value & (byte)VehicleDataFlags.IsInVehicle) > 0;
|
||||
@ -592,13 +593,18 @@ namespace CoopClient
|
||||
}
|
||||
else
|
||||
{
|
||||
int secondaryColor;
|
||||
int primaryColor;
|
||||
bool isDriver = Util.GetResponsiblePedHandle(player.CurrentVehicle) == player.Handle;
|
||||
|
||||
int secondaryColor = 0;
|
||||
int primaryColor = 0;
|
||||
|
||||
if (isDriver)
|
||||
{
|
||||
unsafe
|
||||
{
|
||||
Function.Call<int>(Hash.GET_VEHICLE_COLOURS, player.CurrentVehicle, &primaryColor, &secondaryColor);
|
||||
}
|
||||
}
|
||||
|
||||
new FullSyncPlayerVehPacket()
|
||||
{
|
||||
@ -612,14 +618,15 @@ namespace CoopClient
|
||||
Props = Util.GetPedProps(player),
|
||||
VehModelHash = player.CurrentVehicle.Model.Hash,
|
||||
VehSeatIndex = (int)player.SeatIndex,
|
||||
VehPosition = player.CurrentVehicle.Position.ToLVector(),
|
||||
VehRotation = player.CurrentVehicle.Quaternion.ToLQuaternion(),
|
||||
VehEngineHealth = player.CurrentVehicle.EngineHealth,
|
||||
VehVelocity = player.CurrentVehicle.Velocity.ToLVector(),
|
||||
VehSpeed = player.CurrentVehicle.Speed,
|
||||
VehSteeringAngle = player.CurrentVehicle.SteeringAngle,
|
||||
VehColors = new int[] { primaryColor, secondaryColor },
|
||||
VehDoors = Util.GetVehicleDoors(player.CurrentVehicle.Doors),
|
||||
VehPosition = isDriver ? player.CurrentVehicle.Position.ToLVector() : new LVector3(),
|
||||
VehRotation = isDriver ? player.CurrentVehicle.Quaternion.ToLQuaternion() : new LQuaternion(),
|
||||
VehEngineHealth = isDriver ? player.CurrentVehicle.EngineHealth : 0f,
|
||||
VehVelocity = isDriver ? player.CurrentVehicle.Velocity.ToLVector() : new LVector3(),
|
||||
VehSpeed = isDriver ? player.CurrentVehicle.Speed : 0f,
|
||||
VehSteeringAngle = isDriver ? player.CurrentVehicle.SteeringAngle : 0f,
|
||||
VehColors = isDriver ? new int[] { primaryColor, secondaryColor } : new int[0],
|
||||
VehMods = isDriver ? Util.GetVehicleMods(player.CurrentVehicle) : null,
|
||||
VehDoors = isDriver ? Util.GetVehicleDoors(player.CurrentVehicle.Doors) : null,
|
||||
Flag = Util.GetVehicleFlags(player, player.CurrentVehicle, true)
|
||||
}.PacketToNetOutGoingMessage(outgoingMessage);
|
||||
}
|
||||
@ -650,6 +657,8 @@ namespace CoopClient
|
||||
}
|
||||
else
|
||||
{
|
||||
bool isDriver = Util.GetResponsiblePedHandle(player.CurrentVehicle) == player.Handle;
|
||||
|
||||
new LightSyncPlayerVehPacket()
|
||||
{
|
||||
Extra = new PlayerPacket()
|
||||
@ -660,11 +669,11 @@ namespace CoopClient
|
||||
},
|
||||
VehModelHash = player.CurrentVehicle.Model.Hash,
|
||||
VehSeatIndex = (int)player.SeatIndex,
|
||||
VehPosition = player.CurrentVehicle.Position.ToLVector(),
|
||||
VehRotation = player.CurrentVehicle.Quaternion.ToLQuaternion(),
|
||||
VehVelocity = player.CurrentVehicle.Velocity.ToLVector(),
|
||||
VehSpeed = player.CurrentVehicle.Speed,
|
||||
VehSteeringAngle = player.CurrentVehicle.SteeringAngle,
|
||||
VehPosition = isDriver ? player.CurrentVehicle.Position.ToLVector() : new LVector3(),
|
||||
VehRotation = isDriver ? player.CurrentVehicle.Quaternion.ToLQuaternion() : new LQuaternion(),
|
||||
VehVelocity = isDriver ? player.CurrentVehicle.Velocity.ToLVector() : new LVector3(),
|
||||
VehSpeed = isDriver ? player.CurrentVehicle.Speed : 0f,
|
||||
VehSteeringAngle = isDriver ? player.CurrentVehicle.SteeringAngle : 0f,
|
||||
Flag = Util.GetVehicleFlags(player, player.CurrentVehicle, false)
|
||||
}.PacketToNetOutGoingMessage(outgoingMessage);
|
||||
}
|
||||
@ -704,13 +713,18 @@ namespace CoopClient
|
||||
}
|
||||
else
|
||||
{
|
||||
int secondaryColor;
|
||||
int primaryColor;
|
||||
bool isDriver = Util.GetResponsiblePedHandle(npc.CurrentVehicle) == npc.Handle;
|
||||
|
||||
int secondaryColor = 0;
|
||||
int primaryColor = 0;
|
||||
|
||||
if (isDriver)
|
||||
{
|
||||
unsafe
|
||||
{
|
||||
Function.Call<int>(Hash.GET_VEHICLE_COLOURS, npc.CurrentVehicle, &primaryColor, &secondaryColor);
|
||||
}
|
||||
}
|
||||
|
||||
new FullSyncNpcVehPacket()
|
||||
{
|
||||
@ -721,14 +735,15 @@ namespace CoopClient
|
||||
Position = npc.Position.ToLVector(),
|
||||
VehModelHash = npc.CurrentVehicle.Model.Hash,
|
||||
VehSeatIndex = (int)npc.SeatIndex,
|
||||
VehPosition = npc.CurrentVehicle.Position.ToLVector(),
|
||||
VehRotation = npc.CurrentVehicle.Quaternion.ToLQuaternion(),
|
||||
VehEngineHealth = npc.CurrentVehicle.EngineHealth,
|
||||
VehVelocity = npc.CurrentVehicle.Velocity.ToLVector(),
|
||||
VehSpeed = npc.CurrentVehicle.Speed,
|
||||
VehSteeringAngle = npc.CurrentVehicle.SteeringAngle,
|
||||
VehColors = new int[] { primaryColor, secondaryColor },
|
||||
VehDoors = Util.GetVehicleDoors(npc.CurrentVehicle.Doors),
|
||||
VehPosition = isDriver ? npc.CurrentVehicle.Position.ToLVector() : new LVector3(),
|
||||
VehRotation = isDriver ? npc.CurrentVehicle.Quaternion.ToLQuaternion() : new LQuaternion(),
|
||||
VehEngineHealth = isDriver ? npc.CurrentVehicle.EngineHealth : 0f,
|
||||
VehVelocity = isDriver ? npc.CurrentVehicle.Velocity.ToLVector() : new LVector3(),
|
||||
VehSpeed = isDriver ? npc.CurrentVehicle.Speed : 0f,
|
||||
VehSteeringAngle = isDriver ? npc.CurrentVehicle.SteeringAngle : 0f,
|
||||
VehColors = isDriver ? new int[] { primaryColor, secondaryColor } : new int[0],
|
||||
VehMods = isDriver ? Util.GetVehicleMods(npc.CurrentVehicle) : null,
|
||||
VehDoors = isDriver ? Util.GetVehicleDoors(npc.CurrentVehicle.Doors) : null,
|
||||
Flag = Util.GetVehicleFlags(npc, npc.CurrentVehicle, true)
|
||||
}.PacketToNetOutGoingMessage(outgoingMessage);
|
||||
}
|
||||
|
@ -412,9 +412,12 @@ namespace CoopClient
|
||||
public int[] VehColors { get; set; }
|
||||
|
||||
[ProtoMember(13)]
|
||||
public VehicleDoors[] VehDoors { get; set; }
|
||||
public Dictionary<int, int> VehMods { get; set; }
|
||||
|
||||
[ProtoMember(14)]
|
||||
public VehicleDoors[] VehDoors { get; set; }
|
||||
|
||||
[ProtoMember(15)]
|
||||
public byte? Flag { get; set; } = 0;
|
||||
|
||||
public override void PacketToNetOutGoingMessage(NetOutgoingMessage message)
|
||||
@ -445,6 +448,7 @@ namespace CoopClient
|
||||
VehSpeed = data.VehSpeed;
|
||||
VehSteeringAngle = data.VehSteeringAngle;
|
||||
VehColors = data.VehColors;
|
||||
VehMods = data.VehMods;
|
||||
VehDoors = data.VehDoors;
|
||||
Flag = data.Flag;
|
||||
}
|
||||
@ -777,9 +781,12 @@ namespace CoopClient
|
||||
public int[] VehColors { get; set; }
|
||||
|
||||
[ProtoMember(15)]
|
||||
public VehicleDoors[] VehDoors { get; set; }
|
||||
public Dictionary<int, int> VehMods { get; set; }
|
||||
|
||||
[ProtoMember(16)]
|
||||
public VehicleDoors[] VehDoors { get; set; }
|
||||
|
||||
[ProtoMember(17)]
|
||||
public byte? Flag { get; set; } = 0;
|
||||
|
||||
public override void PacketToNetOutGoingMessage(NetOutgoingMessage message)
|
||||
@ -812,6 +819,7 @@ namespace CoopClient
|
||||
VehSpeed = data.VehSpeed;
|
||||
VehSteeringAngle = data.VehSteeringAngle;
|
||||
VehColors = data.VehColors;
|
||||
VehMods = data.VehMods;
|
||||
VehDoors = data.VehDoors;
|
||||
Flag = data.Flag;
|
||||
}
|
||||
|
@ -33,9 +33,8 @@ namespace CoopClient
|
||||
Function.Call((Hash)0xB96B00E976BE977F, 0.0f); // _SET_WAVES_INTENSITY
|
||||
|
||||
Function.Call(Hash.SET_CAN_ATTACK_FRIENDLY, Game.Player.Character.Handle, true, false);
|
||||
Function.Call(Hash.SET_PED_CAN_BE_TARGETTED, Game.Player.Character.Handle, true);
|
||||
|
||||
if (Main.DeactivateTraffic)
|
||||
if (Main.DisableTraffic)
|
||||
{
|
||||
if (!LastDisableTraffic)
|
||||
{
|
||||
@ -55,7 +54,7 @@ namespace CoopClient
|
||||
Traffic(true);
|
||||
}
|
||||
|
||||
LastDisableTraffic = Main.DeactivateTraffic;
|
||||
LastDisableTraffic = Main.DisableTraffic;
|
||||
}
|
||||
|
||||
private static void Traffic(bool enable)
|
||||
|
@ -33,9 +33,9 @@ namespace FirstGameMode
|
||||
API.SendChatMessageToPlayer(ctx.Player.Username, "Server has been running for: " + RunningSince + " seconds!");
|
||||
}
|
||||
|
||||
public static void OnPlayerConnected(EntitiesPlayer client)
|
||||
public static void OnPlayerConnected(EntitiesPlayer player)
|
||||
{
|
||||
API.SendChatMessageToAll("Player " + client.Username + " connected!");
|
||||
API.SendChatMessageToAll("Player " + player.Username + " connected!");
|
||||
}
|
||||
|
||||
public static void OnPlayerDisconnected(EntitiesPlayer player)
|
||||
|
@ -345,9 +345,12 @@ namespace CoopServer
|
||||
public int[] VehColors { get; set; }
|
||||
|
||||
[ProtoMember(13)]
|
||||
public VehicleDoors[] VehDoors { get; set; }
|
||||
public Dictionary<int, int> VehMods { get; set; }
|
||||
|
||||
[ProtoMember(14)]
|
||||
public VehicleDoors[] VehDoors { get; set; }
|
||||
|
||||
[ProtoMember(15)]
|
||||
public byte? Flag { get; set; } = 0;
|
||||
|
||||
public override void PacketToNetOutGoingMessage(NetOutgoingMessage message)
|
||||
@ -378,6 +381,7 @@ namespace CoopServer
|
||||
VehSpeed = data.VehSpeed;
|
||||
VehSteeringAngle = data.VehSteeringAngle;
|
||||
VehColors = data.VehColors;
|
||||
VehMods = data.VehMods;
|
||||
VehDoors = data.VehDoors;
|
||||
Flag = data.Flag;
|
||||
}
|
||||
@ -710,9 +714,12 @@ namespace CoopServer
|
||||
public int[] VehColors { get; set; }
|
||||
|
||||
[ProtoMember(15)]
|
||||
public VehicleDoors[] VehDoors { get; set; }
|
||||
public Dictionary<int, int> VehMods { get; set; }
|
||||
|
||||
[ProtoMember(16)]
|
||||
public VehicleDoors[] VehDoors { get; set; }
|
||||
|
||||
[ProtoMember(17)]
|
||||
public byte? Flag { get; set; } = 0;
|
||||
|
||||
public override void PacketToNetOutGoingMessage(NetOutgoingMessage message)
|
||||
@ -745,6 +752,7 @@ namespace CoopServer
|
||||
VehSpeed = data.VehSpeed;
|
||||
VehSteeringAngle = data.VehSteeringAngle;
|
||||
VehColors = data.VehColors;
|
||||
VehMods = data.VehMods;
|
||||
VehDoors = data.VehDoors;
|
||||
Flag = data.Flag;
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ namespace CoopServer
|
||||
|
||||
class Server
|
||||
{
|
||||
public static readonly string CurrentModVersion = "V0_5_1";
|
||||
public static readonly string CurrentModVersion = "V0_6_0";
|
||||
|
||||
public static readonly Settings MainSettings = Util.Read<Settings>("CoopSettings.xml");
|
||||
private readonly Blocklist MainBlocklist = Util.Read<Blocklist>("Blocklist.xml");
|
||||
@ -690,15 +690,11 @@ namespace CoopServer
|
||||
|
||||
private static void FullSyncNpcVeh(NetConnection local, FullSyncNpcVehPacket packet)
|
||||
{
|
||||
List<NetConnection> playerList = Util.GetAllInRange(packet.Position, 300f, local);
|
||||
if (playerList.Count == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
NetOutgoingMessage outgoingMessage = MainNetServer.CreateMessage();
|
||||
packet.PacketToNetOutGoingMessage(outgoingMessage);
|
||||
MainNetServer.SendMessage(outgoingMessage, playerList, NetDeliveryMethod.UnreliableSequenced, 0);
|
||||
MainNetServer.SendMessage(outgoingMessage, MainNetServer.Connections, NetDeliveryMethod.UnreliableSequenced, 0);
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
|
||||
using Lidgren.Network;
|
||||
|
||||
@ -124,6 +125,11 @@ namespace CoopServer
|
||||
return Server.Players;
|
||||
}
|
||||
|
||||
public static Entities.EntitiesPlayer GetPlayerByUsername(string username)
|
||||
{
|
||||
return Server.Players.FirstOrDefault(x => x.Value.Username == username).Value;
|
||||
}
|
||||
|
||||
public static void KickPlayerByUsername(string username, string[] reason)
|
||||
{
|
||||
NetConnection userConnection = Util.GetConnectionByUsername(username);
|
||||
|
Reference in New Issue
Block a user