Skocz do zawartości

Plugin DeagleOnly + Headshot


Rekomendowane odpowiedzi

Opublikowano

Cześć,

Mam taki oto kod:

using System;
using CounterStrikeSharp.API;
using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Modules.Events;
using CounterStrikeSharp.API.Modules.Utils;

public class tDeagleOnly : BasePlugin
{
    public override string ModuleName => "tDeagleOnly";
    public override string ModuleVersion => "1.0.0";

    public override void Load(bool hotReload)
    {
        RegisterEventHandler<EventPlayerHurt>(OnPlayerHurt);
        RegisterEventHandler<EventPlayerSpawn>(OnPlayerSpawn);
    }

    private HookResult OnPlayerHurt(EventPlayerHurt @event, GameEventInfo info)
    {
        var victim = @event.Userid;
        if (victim == null || !victim.IsValid || victim.IsBot) 
            return HookResult.Continue;

        // If the hit is not a headshot, cancel damage
        if (@event.Hitgroup != 1) // Hitgroup 1 = headshot
        {
            @event.DmgHealth = 0;
            Server.PrintToConsole("[DEBUG] Non-headshot damage cancelled");
        }

        return HookResult.Continue;
    }

    private HookResult OnPlayerSpawn(EventPlayerSpawn @event, GameEventInfo info)
    {
        var player = @event.Userid;
        if (player == null || !player.IsValid)
            return HookResult.Continue;

        // Remove all weapons and give the Deagle
        player.RemoveWeapons();
        player.GiveNamedItem("weapon_deagle");

        Server.PrintToConsole("[DEBUG] Deagle given to player on spawn");

        return HookResult.Continue;
    }
}

Z założenia ma ograniczać broń tylko do deagla i headshotów, niestety, ale ani jedna z funkcji nie działa mimo, że kompiluje się normalnie.

 

Gdzie jest błąd gdybym mógł prosić o pomoc.

Opublikowano

Spróbuj tak 

using System;
using CounterStrikeSharp.API;
using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Modules.Events;
using CounterStrikeSharp.API.Modules.Utils;

public class tDeagleOnly : BasePlugin
{
    public override string ModuleName => "tDeagleOnly";
    public override string ModuleVersion => "1.0.0";

    public override void Load(bool hotReload)
    {
        RegisterEventHandler<EventPlayerHurt>(OnPlayerHurt);
        RegisterEventHandler<EventPlayerSpawn>(OnPlayerSpawn);
    }

    private HookResult OnPlayerHurt(EventPlayerHurt @event, GameEventInfo info)
    {
        var victim = @event.GetUser();
        if (victim == null || !victim.IsValid || victim.IsBot) 
            return HookResult.Continue;

        // Jeśli trafienie nie było w głowę, anulujemy obrażenia
        if (@event.Hitgroup != 1) // Hitgroup 1 = headshot
        {
            @event.Damage = 0; // Zmiana z @event.DmgHealth = 0;
            Server.PrintToConsole("[DEBUG] Non-headshot damage cancelled");
        }

        return HookResult.Continue;
    }

    private HookResult OnPlayerSpawn(EventPlayerSpawn @event, GameEventInfo info)
    {
        var player = @event.GetUser();
        if (player == null || !player.IsValid)
            return HookResult.Continue;

        // Usunięcie broni i dodanie Deagle'a
        player.StripWeapons();
        player.GiveWeapon("weapon_deagle");

        Server.PrintToConsole("[DEBUG] Deagle given to player on spawn");

        return HookResult.Continue;
    }
}

 

Opublikowano

Event nie zarządza mechanika gry, jest to tylko informacja.

Musicie oddać HP graczowi edytując player.playerpawn.value.Health

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.