mirror of
https://github.com/Nereziel/cs2-WeaponPaints.git
synced 2026-03-11 00:44:27 +00:00
Some fixes
This commit is contained in:
23
Commands.cs
23
Commands.cs
@@ -32,13 +32,30 @@ namespace WeaponPaints
|
|||||||
|
|
||||||
if (weaponSync != null)
|
if (weaponSync != null)
|
||||||
{
|
{
|
||||||
Task.Run(async () => await weaponSync.GetWeaponPaintsFromDatabase(playerInfo));
|
var weaponTasks = new List<Task>();
|
||||||
|
|
||||||
|
weaponTasks.Add(Task.Run(async () =>
|
||||||
|
{
|
||||||
|
await weaponSync.GetWeaponPaintsFromDatabase(playerInfo);
|
||||||
|
}));
|
||||||
|
|
||||||
if (Config.Additional.GloveEnabled)
|
if (Config.Additional.GloveEnabled)
|
||||||
Task.Run(async () => await weaponSync.GetGloveFromDatabase(playerInfo));
|
{
|
||||||
|
weaponTasks.Add(Task.Run(async () =>
|
||||||
|
{
|
||||||
|
await weaponSync.GetGloveFromDatabase(playerInfo);
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
if (Config.Additional.KnifeEnabled)
|
if (Config.Additional.KnifeEnabled)
|
||||||
Task.Run(async () => await weaponSync.GetKnifeFromDatabase(playerInfo));
|
{
|
||||||
|
weaponTasks.Add(Task.Run(async () =>
|
||||||
|
{
|
||||||
|
await weaponSync.GetKnifeFromDatabase(playerInfo);
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
Task.WaitAll(weaponTasks.ToArray());
|
||||||
|
|
||||||
RefreshGloves(player);
|
RefreshGloves(player);
|
||||||
RefreshWeapons(player);
|
RefreshWeapons(player);
|
||||||
|
|||||||
33
Events.cs
33
Events.cs
@@ -71,21 +71,21 @@ namespace WeaponPaints
|
|||||||
Task.Run(async () =>
|
Task.Run(async () =>
|
||||||
{
|
{
|
||||||
await weaponSync.SyncWeaponPaintsToDatabase(playerInfo);
|
await weaponSync.SyncWeaponPaintsToDatabase(playerInfo);
|
||||||
|
|
||||||
// Remove player data
|
|
||||||
if (Config.Additional.SkinEnabled)
|
|
||||||
{
|
|
||||||
gPlayerWeaponsInfo.TryRemove(player.Slot, out _);
|
|
||||||
}
|
|
||||||
if (Config.Additional.KnifeEnabled)
|
|
||||||
{
|
|
||||||
g_playersKnife.TryRemove(player.Slot, out _);
|
|
||||||
}
|
|
||||||
if (Config.Additional.GloveEnabled)
|
|
||||||
{
|
|
||||||
g_playersGlove.TryRemove(player.Slot, out _);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Remove player data
|
||||||
|
if (Config.Additional.SkinEnabled)
|
||||||
|
{
|
||||||
|
gPlayerWeaponsInfo.TryRemove(player.Slot, out _);
|
||||||
|
}
|
||||||
|
if (Config.Additional.KnifeEnabled)
|
||||||
|
{
|
||||||
|
g_playersKnife.TryRemove(player.Slot, out _);
|
||||||
|
}
|
||||||
|
if (Config.Additional.GloveEnabled)
|
||||||
|
{
|
||||||
|
g_playersGlove.TryRemove(player.Slot, out _);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove player's command cooldown
|
// Remove player's command cooldown
|
||||||
@@ -187,12 +187,11 @@ namespace WeaponPaints
|
|||||||
{
|
{
|
||||||
CCSPlayerController? player = @event.Userid;
|
CCSPlayerController? player = @event.Userid;
|
||||||
|
|
||||||
if (player is null || !player.IsValid || player.PlayerPawn == null ||
|
if (player is null || !player.IsValid || !Config.Additional.KnifeEnabled && !Config.Additional.GloveEnabled)
|
||||||
!player.PlayerPawn.IsValid || player.IsHLTV
|
|
||||||
|| !Config.Additional.KnifeEnabled && !Config.Additional.GloveEnabled)
|
|
||||||
return HookResult.Continue;
|
return HookResult.Continue;
|
||||||
|
|
||||||
g_knifePickupCount[player.Slot] = 0;
|
g_knifePickupCount[player.Slot] = 0;
|
||||||
|
|
||||||
if (!PlayerHasKnife(player))
|
if (!PlayerHasKnife(player))
|
||||||
GiveKnifeToPlayer(player);
|
GiveKnifeToPlayer(player);
|
||||||
|
|
||||||
|
|||||||
@@ -142,38 +142,41 @@ namespace WeaponPaints
|
|||||||
{
|
{
|
||||||
if (!_config.Additional.KnifeEnabled || player == null || !player.IsValid) return;
|
if (!_config.Additional.KnifeEnabled || player == null || !player.IsValid) return;
|
||||||
|
|
||||||
string knifeToGive;
|
WeaponPaints.Instance.AddTimer(1.0f, () =>
|
||||||
if (g_playersKnife.TryGetValue(player.Slot, out var knife))
|
|
||||||
{
|
{
|
||||||
knifeToGive = knife;
|
string knifeToGive;
|
||||||
}
|
if (g_playersKnife.TryGetValue(player.Slot, out var knife))
|
||||||
else if (_config.Additional.GiveRandomKnife)
|
|
||||||
{
|
|
||||||
var knifeTypes = weaponList.Where(pair => pair.Key.StartsWith("weapon_knife") || pair.Key.StartsWith("weapon_bayonet")).ToList();
|
|
||||||
|
|
||||||
if (knifeTypes.Count == 0)
|
|
||||||
{
|
{
|
||||||
Utility.Log("No valid knife types found.");
|
knifeToGive = knife;
|
||||||
return;
|
}
|
||||||
|
else if (_config.Additional.GiveRandomKnife)
|
||||||
|
{
|
||||||
|
var knifeTypes = weaponList.Where(pair => pair.Key.StartsWith("weapon_knife") || pair.Key.StartsWith("weapon_bayonet")).ToList();
|
||||||
|
|
||||||
|
if (knifeTypes.Count == 0)
|
||||||
|
{
|
||||||
|
Utility.Log("No valid knife types found.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Random random = new();
|
||||||
|
int index = random.Next(knifeTypes.Count);
|
||||||
|
knifeToGive = knifeTypes[index].Key;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
knifeToGive = (CsTeam)player.TeamNum == CsTeam.Terrorist ? "weapon_knife_t" : "weapon_knife";
|
||||||
}
|
}
|
||||||
|
|
||||||
Random random = new();
|
player.GiveNamedItem(knifeToGive);
|
||||||
int index = random.Next(knifeTypes.Count);
|
});
|
||||||
knifeToGive = knifeTypes[index].Key;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
knifeToGive = (CsTeam)player.TeamNum == CsTeam.Terrorist ? "weapon_knife_t" : "weapon_knife";
|
|
||||||
}
|
|
||||||
|
|
||||||
player.GiveNamedItem(knifeToGive);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static bool PlayerHasKnife(CCSPlayerController? player)
|
internal static bool PlayerHasKnife(CCSPlayerController? player)
|
||||||
{
|
{
|
||||||
if (!_config.Additional.KnifeEnabled) return false;
|
if (!_config.Additional.KnifeEnabled) return false;
|
||||||
|
|
||||||
if (player == null || !player.IsValid || player.PlayerPawn == null || !player.PlayerPawn.IsValid || !player.PawnIsAlive)
|
if (player == null || !player.IsValid || player.PlayerPawn == null || !player.PlayerPawn.IsValid)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -273,6 +276,8 @@ namespace WeaponPaints
|
|||||||
var weapon = player.PlayerPawn.Value.WeaponServices.ActiveWeapon.Value;
|
var weapon = player.PlayerPawn.Value.WeaponServices.ActiveWeapon.Value;
|
||||||
CCSWeaponBaseGun? gun = weapon?.As<CCSWeaponBaseGun>();
|
CCSWeaponBaseGun? gun = weapon?.As<CCSWeaponBaseGun>();
|
||||||
|
|
||||||
|
if (gun == null || gun.VData == null) return;
|
||||||
|
|
||||||
if (gun?.VData?.GearSlot == gear_slot_t.GEAR_SLOT_C4 || gun?.VData?.GearSlot == gear_slot_t.GEAR_SLOT_GRENADES) return;
|
if (gun?.VData?.GearSlot == gear_slot_t.GEAR_SLOT_C4 || gun?.VData?.GearSlot == gear_slot_t.GEAR_SLOT_GRENADES) return;
|
||||||
|
|
||||||
player.DropActiveWeapon();
|
player.DropActiveWeapon();
|
||||||
@@ -318,10 +323,10 @@ namespace WeaponPaints
|
|||||||
|
|
||||||
internal void RefreshKnife(CCSPlayerController? player)
|
internal void RefreshKnife(CCSPlayerController? player)
|
||||||
{
|
{
|
||||||
if (player == null || !player.IsValid || player.PlayerPawn?.Value == null || (LifeState_t)player.LifeState != LifeState_t.LIFE_ALIVE)
|
if (player == null || !player.IsValid || player.PlayerPawn?.Value == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (player.PlayerPawn.Value.WeaponServices == null || player.PlayerPawn.Value.ItemServices == null)
|
if (player.PlayerPawn.Value.WeaponServices == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var weapons = player.PlayerPawn.Value.WeaponServices.MyWeapons;
|
var weapons = player.PlayerPawn.Value.WeaponServices.MyWeapons;
|
||||||
@@ -337,8 +342,10 @@ namespace WeaponPaints
|
|||||||
|
|
||||||
if (weapon.Value.DesignerName.Contains("knife") || weaponData?.GearSlot == gear_slot_t.GEAR_SLOT_KNIFE)
|
if (weapon.Value.DesignerName.Contains("knife") || weaponData?.GearSlot == gear_slot_t.GEAR_SLOT_KNIFE)
|
||||||
{
|
{
|
||||||
RefreshWeapons(player);
|
player.ExecuteClientCommand("slot 3");
|
||||||
break;
|
|
||||||
|
weapon.Value.Remove();
|
||||||
|
GiveKnifeToPlayer(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
|||||||
Reference in New Issue
Block a user