Fix resource loading, add player died notification

This commit is contained in:
Sardelka
2022-07-21 08:41:05 +08:00
parent 2ba3e33d39
commit ecfc77e57a
7 changed files with 20 additions and 6 deletions

View File

@ -102,6 +102,7 @@ namespace RageCoop.Client
#endif
public static Ped P;
public static float FPS;
private bool _lastDead;
private void OnTick(object sender, EventArgs e)
{
P= Game.Player.Character;
@ -171,6 +172,7 @@ namespace RageCoop.Client
P.Health=1;
Game.Player.WantedLevel=0;
Main.Logger.Debug("Player died.");
Scripting.API.Events.InvokePlayerDied();
}
GTA.UI.Screen.StopEffects();
}
@ -181,7 +183,11 @@ namespace RageCoop.Client
}
}
else if (P.IsDead && !_lastDead)
{
Scripting.API.Events.InvokePlayerDied();
}
_lastDead=P.IsDead;
Ticked++;
}

View File

@ -122,7 +122,7 @@ namespace RageCoop.Client
PedID = packet.PedID,
Username= packet.Username,
};
GTA.UI.Notification.Show($"{p.Username} connected.");
GTA.UI.Notification.Show($"~h~{p.Username}~h~ connected.");
PlayerList.SetPlayer(packet.PedID, packet.Username);
Main.Logger.Debug($"player connected:{p.Username}");
@ -130,7 +130,7 @@ namespace RageCoop.Client
private static void PlayerDisconnect(Packets.PlayerDisconnect packet)
{
var name = PlayerList.GetPlayer(packet.PedID).Username;
GTA.UI.Notification.Show($"{name} left.");
GTA.UI.Notification.Show($"~h~{name}~h~ left.");
PlayerList.RemovePlayer(packet.PedID);
EntityPool.RemoveAllFromPlayer(packet.PedID);

View File

@ -16,6 +16,7 @@ namespace RageCoop.Client.Scripting
{
API.Events.OnPedDeleted+=(s, p) => { API.SendCustomEvent(CustomEvents.OnPedDeleted, p.ID); };
API.Events.OnVehicleDeleted+=(s, p) => { API.SendCustomEvent(CustomEvents.OnVehicleDeleted, p.ID); };
API.Events.OnPlayerDied+=() => { API.SendCustomEvent(CustomEvents.OnPlayerDied); };
API.RegisterCustomEventHandler(CustomEvents.SetAutoRespawn, SetAutoRespawn);
API.RegisterCustomEventHandler(CustomEvents.SetDisplayNameTag, SetDisplayNameTag);
@ -30,6 +31,7 @@ namespace RageCoop.Client.Scripting
API.RegisterCustomEventHandler(CustomEvents.UpdatePedBlip, UpdatePedBlip);
API.RegisterCustomEventHandler(CustomEvents.IsHost, (e) => { _isHost=(bool)e.Args[0]; });
API.RegisterCustomEventHandler(CustomEvents.WeatherTimeSync, WeatherTimeSync);
API.RegisterCustomEventHandler(CustomEvents.OnPlayerDied, (e) => { GTA.UI.Notification.Show($"~h~{e.Args[0]}~h~ died."); });
Task.Run(() =>
{
while (true)

View File

@ -125,12 +125,13 @@ namespace RageCoop.Client
}
}
// Skip update if no new sync message has arrived.
if (!NeedUpdate) {
if (!NeedUpdate)
{
if (Velocity.Length()<3)
{
DisplayVehicle();
}
return;
return;
}
#endregion
#region -- SYNC CRITICAL --

View File

@ -12,6 +12,7 @@ namespace RageCoop.Core.Scripting
{
static MD5 Hasher = MD5.Create();
static Dictionary<int,string> Hashed=new Dictionary<int,string>();
internal static readonly int OnPlayerDied = Hash("RageCoop.OnPlayerDied");
internal static readonly int SetWeather = Hash("RageCoop.SetWeather");
internal static readonly int OnPedDeleted = Hash("RageCoop.OnPedDeleted");
internal static readonly int OnVehicleDeleted = Hash("RageCoop.OnVehicleDeleted");

View File

@ -37,6 +37,10 @@ namespace RageCoop.Server.Scripting
}
}
});
API.RegisterCustomEventHandler(CustomEvents.OnPlayerDied, (e) =>
{
API.SendCustomEventQueued(API.GetAllClients().Values.Where(x=>x!=e.Sender).ToList(),CustomEvents.OnPlayerDied,e.Sender.Username);
});
}
public override void OnStop()
{

View File

@ -64,7 +64,7 @@ namespace RageCoop.Server.Scripting
IsDirectory=false,
Name=relativeName
};
if (file.EndsWith(".dll") && !file.Contains('/') && IsManagedAssembly(file))
if (file.EndsWith(".dll") && !relativeName.Contains('/') && IsManagedAssembly(file))
{
try
{