mirror of
https://github.com/Nereziel/cs2-WeaponPaints.git
synced 2026-02-19 02:51:50 +00:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b99f30deb2 | ||
|
|
44c59e6bac | ||
|
|
845a40c189 | ||
|
|
f93bed46f1 | ||
|
|
ccee3e52c9 | ||
|
|
7d33693930 | ||
|
|
7b868611e5 | ||
|
|
b7289dd1e8 | ||
|
|
5808255780 | ||
|
|
7724102d7c | ||
|
|
a6b9982367 | ||
|
|
bff8a726ce |
@@ -682,6 +682,8 @@ public partial class WeaponPaints
|
||||
playerMusic[team] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
GivePlayerMusicKit(player);
|
||||
|
||||
if (!string.IsNullOrEmpty(Localizer["wp_music_menu_select"]))
|
||||
{
|
||||
@@ -712,6 +714,8 @@ public partial class WeaponPaints
|
||||
{
|
||||
playerMusic[team] = 0;
|
||||
}
|
||||
|
||||
GivePlayerMusicKit(player);
|
||||
|
||||
if (!string.IsNullOrEmpty(Localizer["wp_music_menu_select"]))
|
||||
{
|
||||
|
||||
79
Events.cs
79
Events.cs
@@ -9,6 +9,8 @@ namespace WeaponPaints
|
||||
{
|
||||
public partial class WeaponPaints
|
||||
{
|
||||
private bool _mvpPlayed;
|
||||
|
||||
[GameEventHandler]
|
||||
public HookResult OnClientFullConnect(EventPlayerConnectFull @event, GameEventInfo info)
|
||||
{
|
||||
@@ -111,35 +113,6 @@ namespace WeaponPaints
|
||||
return HookResult.Continue;
|
||||
}
|
||||
|
||||
[GameEventHandler(HookMode.Pre)]
|
||||
public HookResult OnPlayerMvp(EventRoundMvp @event, GameEventInfo info)
|
||||
{
|
||||
var player = @event.Userid;
|
||||
if (player == null || !player.IsValid || player.IsBot)
|
||||
return HookResult.Continue;
|
||||
|
||||
if (!(GPlayersMusic.TryGetValue(player.Slot, out var musicInfo)
|
||||
&& musicInfo.TryGetValue(player.Team, out var musicId)
|
||||
&& musicId != 0))
|
||||
return HookResult.Continue;
|
||||
|
||||
@event.Musickitid = musicId;
|
||||
@event.Nomusic = 0;
|
||||
@event.Musickitmvps = 1;
|
||||
@event.Value = 1;
|
||||
|
||||
var newEvent = new EventRoundMvp(true)
|
||||
{
|
||||
Musickitid = musicId,
|
||||
Nomusic = 0,
|
||||
Musickitmvps = 1,
|
||||
Value = 1
|
||||
};
|
||||
|
||||
newEvent.FireEvent(false);
|
||||
return HookResult.Continue;
|
||||
}
|
||||
|
||||
private void OnMapStart(string mapName)
|
||||
{
|
||||
if (Config.Additional is { KnifeEnabled: false, SkinEnabled: false, GloveEnabled: false }) return;
|
||||
@@ -171,13 +144,45 @@ namespace WeaponPaints
|
||||
private HookResult OnRoundEnd(EventRoundEnd @event, GameEventInfo info)
|
||||
{
|
||||
_gBCommandsAllowed = false;
|
||||
|
||||
return HookResult.Continue;
|
||||
}
|
||||
|
||||
private HookResult OnRoundStart(EventRoundStart @event, GameEventInfo info)
|
||||
{
|
||||
_gBCommandsAllowed = true;
|
||||
_mvpPlayed = false;
|
||||
return HookResult.Continue;
|
||||
}
|
||||
|
||||
private HookResult OnRoundMvp(EventRoundMvp @event, GameEventInfo info)
|
||||
{
|
||||
if (_mvpPlayed)
|
||||
return HookResult.Continue;
|
||||
|
||||
var player = @event.Userid;
|
||||
|
||||
if (player == null || !player.IsValid || player.IsBot)
|
||||
return HookResult.Continue;
|
||||
|
||||
if (!(GPlayersMusic.TryGetValue(player.Slot, out var musicInfo)
|
||||
&& musicInfo.TryGetValue(player.Team, out var musicId)
|
||||
&& musicId != 0))
|
||||
return HookResult.Continue;
|
||||
|
||||
@event.Musickitid = musicId;
|
||||
@event.Nomusic = 0;
|
||||
info.DontBroadcast = true;
|
||||
|
||||
var newEvent = new EventRoundMvp(true)
|
||||
{
|
||||
Userid = player,
|
||||
Musickitid = musicId,
|
||||
Nomusic = 0,
|
||||
};
|
||||
|
||||
_mvpPlayed = true;
|
||||
|
||||
newEvent.FireEvent(false);
|
||||
return HookResult.Continue;
|
||||
}
|
||||
|
||||
@@ -249,9 +254,8 @@ namespace WeaponPaints
|
||||
if (!Config.Additional.ShowSkinImage) return;
|
||||
|
||||
foreach (var player in Utilities.GetPlayers().Where(p =>
|
||||
p is { IsValid: true, PlayerPawn.IsValid: true } &&
|
||||
(LifeState_t)p.LifeState == LifeState_t.LIFE_ALIVE
|
||||
&& !p.IsBot && p is { Connected: PlayerConnectedState.PlayerConnected }
|
||||
p is { IsValid: true, PlayerPawn.IsValid: true, IsBot: false } and
|
||||
{ Connected: PlayerConnectedState.PlayerConnected }
|
||||
)
|
||||
)
|
||||
{
|
||||
@@ -284,10 +288,12 @@ namespace WeaponPaints
|
||||
if (player is null || !player.IsValid)
|
||||
return HookResult.Continue;
|
||||
|
||||
if (victim == null || victim == player)
|
||||
if (victim == null || !victim.IsValid || victim == player)
|
||||
return HookResult.Continue;
|
||||
|
||||
if (!GPlayerWeaponsInfo.TryGetValue(player.Slot, out _)) return HookResult.Continue;
|
||||
if (!GPlayerWeaponsInfo.TryGetValue(player.Slot, out var teamInfo) ||
|
||||
!teamInfo.TryGetValue(player.Team, out var teamWeapons) )
|
||||
return HookResult.Continue;
|
||||
|
||||
CBasePlayerWeapon? weapon = player.PlayerPawn.Value?.WeaponServices?.ActiveWeapon.Value;
|
||||
|
||||
@@ -295,7 +301,7 @@ namespace WeaponPaints
|
||||
|
||||
int weaponDefIndex = weapon.AttributeManager.Item.ItemDefinitionIndex;
|
||||
|
||||
if (!GPlayerWeaponsInfo[player.Slot][player.Team].TryGetValue(weaponDefIndex, out var weaponInfo) || weaponInfo.Paint == 0)
|
||||
if (!teamWeapons.TryGetValue(weaponDefIndex, out var weaponInfo) || weaponInfo.Paint == 0)
|
||||
return HookResult.Continue;
|
||||
|
||||
if (!weaponInfo.StatTrak) return HookResult.Continue;
|
||||
@@ -318,6 +324,7 @@ namespace WeaponPaints
|
||||
RegisterEventHandler<EventPlayerSpawn>(OnPlayerSpawn);
|
||||
RegisterEventHandler<EventRoundStart>(OnRoundStart);
|
||||
RegisterEventHandler<EventRoundEnd>(OnRoundEnd);
|
||||
RegisterEventHandler<EventRoundMvp>(OnRoundMvp);
|
||||
RegisterListener<Listeners.OnEntityCreated>(OnEntityCreated);
|
||||
RegisterEventHandler<EventPlayerDeath>(OnPlayerDeath);
|
||||
|
||||
|
||||
@@ -172,10 +172,10 @@ namespace WeaponPaints
|
||||
// $"sticker slot {stickerSlot} schema", stickerSlot);
|
||||
// if (stickerSlot == 5)
|
||||
// {
|
||||
// // CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle,
|
||||
// // $"sticker slot {stickerSlot} offset x", 0.05f);
|
||||
// // CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle,
|
||||
// // $"sticker slot {stickerSlot} offset y", 0.02f);
|
||||
CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle,
|
||||
$"sticker slot {stickerSlot} offset x", sticker.OffsetX);
|
||||
CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle,
|
||||
$"sticker slot {stickerSlot} offset y", sticker.OffsetY);
|
||||
// }
|
||||
CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle,
|
||||
$"sticker slot {stickerSlot} wear", sticker.Wear);
|
||||
@@ -473,17 +473,20 @@ namespace WeaponPaints
|
||||
|
||||
private static void GivePlayerMusicKit(CCSPlayerController player)
|
||||
{
|
||||
if (GPlayersMusic.TryGetValue(player.Slot, out var musicInfo) || musicInfo == null ||
|
||||
if (player.IsBot) return;
|
||||
if (!GPlayersMusic.TryGetValue(player.Slot, out var musicInfo) ||
|
||||
!musicInfo.TryGetValue(player.Team, out var musicId) || musicId == 0) return;
|
||||
|
||||
if (player.InventoryServices == null) return;
|
||||
|
||||
player.InventoryServices.MusicID = musicId;
|
||||
Utilities.SetStateChanged(player, "CCSPlayerController", "m_pInventoryServices");
|
||||
|
||||
player.MusicKitID = musicId;
|
||||
// player.MvpNoMusic = false;
|
||||
player.InventoryServices.MusicID = musicId;
|
||||
Utilities.SetStateChanged(player, "CCSPlayerController", "m_iMusicKitID");
|
||||
player.MusicKitMVPs = musicId;
|
||||
Utilities.SetStateChanged(player, "CCSPlayerController", "m_iMusicKitMVPs");
|
||||
// Utilities.SetStateChanged(player, "CCSPlayerController", "m_bMvpNoMusic");
|
||||
Utilities.SetStateChanged(player, "CCSPlayerController", "m_pInventoryServices");
|
||||
// player.MusicKitMVPs = musicId;
|
||||
// Utilities.SetStateChanged(player, "CCSPlayerController", "m_iMusicKitMVPs");
|
||||
}
|
||||
|
||||
private static void GivePlayerPin(CCSPlayerController player)
|
||||
|
||||
@@ -16,7 +16,7 @@ public partial class WeaponPaints : BasePlugin, IPluginConfig<WeaponPaintsConfig
|
||||
public override string ModuleAuthor => "Nereziel & daffyy";
|
||||
public override string ModuleDescription => "Skin, gloves, agents and knife selector, standalone and web-based";
|
||||
public override string ModuleName => "WeaponPaints";
|
||||
public override string ModuleVersion => "2.9b";
|
||||
public override string ModuleVersion => "2.9c";
|
||||
|
||||
public override void Load(bool hotReload)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user