Compare commits

...

4 Commits

Author SHA1 Message Date
Nereziel
5a5b120674 change knife give handling 2023-11-14 19:54:22 +01:00
Nereziel
5a24f3b9fa bots had no knife 2023-11-14 19:08:17 +01:00
Nereziel
1527eea686 Update README.md 2023-11-14 16:56:18 +01:00
Nereziel
953788c327 Update README.md 2023-11-14 16:52:00 +01:00
2 changed files with 24 additions and 9 deletions

View File

@@ -8,11 +8,13 @@
Unfinished, unoptimized and not fully functional ugly demo weapon paints plugin for [CSSharp](https://docs.cssharp.dev/).
### Features
- changes only paint, seed, wear on weapons
- changes only paint, seed and wear on weapons and knives
- mysql based
- data sync on player connect or playe
- data sync on player connect
- Added command `!wp` to refresh skins (with cooldown in second can be configured)
- Added command `!ws` to show website
- Added command `!knife` to show menu with knives
- Knife change is now limited to have these cvars empty `mp_t_default_melee ""` and `mp_ct_default_melee ""`
### CS2 server:
- compile and copy plugin to plugins. Info here [https://docs.cssharp.dev/guides/hello-world-plugin/](https://docs.cssharp.dev/guides/hello-world-plugin/)
@@ -20,6 +22,7 @@ Unfinished, unoptimized and not fully functional ugly demo weapon paints plugin
- in `addons/counterstrikesharp/configs/core.json` set **FollowCS2ServerGuidelines** to **false**
### Web install:
- requires PHP (tested on php ver `8.2.3` and nginx webserver)
- copy website to web server
- import `database.sql` to mysql
- get steam api key [https://steamcommunity.com/dev/apikey](https://steamcommunity.com/dev/apikey)

View File

@@ -131,11 +131,27 @@ public class WeaponPaints : BasePlugin, IPluginConfig<WeaponPaintsConfig>
private HookResult OnPlayerSpawn(EventPlayerSpawn @event, GameEventInfo info)
{
var player = @event.Userid;
if (!player.IsValid || !player.PlayerPawn.IsValid || player.IsBot)
if (!player.IsValid || !player.PlayerPawn.IsValid)
{
return HookResult.Continue;
}
if (!PlayerHasKnife(player)) player.GiveNamedItem(g_playersKife[(int)player.EntityIndex!.Value.Value]);
if (player.IsBot)
{
player.GiveNamedItem("weapon_knife");
return HookResult.Continue;
}
if (!PlayerHasKnife(player))
{
if (g_playersKife.ContainsKey((int)player.EntityIndex!.Value.Value))
{
player.GiveNamedItem(g_playersKife[(int)player.EntityIndex!.Value.Value]);
}
else
{
player.GiveNamedItem("weapon_knife");
}
}
return HookResult.Continue;
}
@@ -187,6 +203,7 @@ public class WeaponPaints : BasePlugin, IPluginConfig<WeaponPaintsConfig>
public void RemoveKnifeFromPlayer(CCSPlayerController player)
{
if (!player.PawnIsAlive) return;
if (!g_playersKife.ContainsKey((int)player.EntityIndex!.Value.Value)) return;
var weapons = player.PlayerPawn.Value.WeaponServices!.MyWeapons;
foreach (var weapon in weapons)
{
@@ -325,10 +342,6 @@ public class WeaponPaints : BasePlugin, IPluginConfig<WeaponPaintsConfig>
{
g_playersKife[playerIndex] = knife;
}
else
{
g_playersKife[playerIndex] = "weapon_knife";
}
//Log($"{player.PlayerName} has this knife -> {g_playersKife[playerIndex]}");
}
catch (Exception e)
@@ -352,7 +365,6 @@ public class WeaponPaints : BasePlugin, IPluginConfig<WeaponPaintsConfig>
return;
}
}
private static void Log(string message)
{
Console.BackgroundColor = ConsoleColor.DarkGray;