Skocz do zawartości
deshayier

[Brak rozwiązania] Problem z OnTakeDamage

Rekomendowane odpowiedzi

Napisano (edytowane)

Witam, mam problem z SDKHooks a dokładniej OnTakeDamage.

Spoiler

public Action OnTakeDamage(int client, int &attacker, int &inflictor, float &damage, int &damagetype)
{
    if (!IsValidClient(client) || !IsValidClient(attacker))
        return Plugin_Continue;
    
    char sWeapon[64];
    GetClientWeapon(attacker, sWeapon, sizeof(sWeapon));
    if(StrContains(sWeapon, "weapon_knife") != -1 || StrContains(sWeapon, "bayonet") != -1)
    {
        damage *= 0.1;
        return Plugin_Changed;
    }
    return Plugin_Continue;
}

Czemu nie mnoży damage z noża o 0.1? Dodam, że wcześniej ten sam kod działał. Z góry dzięki za pomoc 🙂

 

bool IsValidClient:

Spoiler

bool IsValidClient(int client) 
{
    if (client <= 0)return false;
    if (client > MaxClients)return false;
    if (!IsClientConnected(client))return false;
    if (IsFakeClient(client))return false;
    if (IsClientSourceTV(client))return false;
    return IsClientInGame(client);
} 

 

po usunięciu Boola wyskakuje taki błąd w linijce z GetClientWeapon: Client index -1 is invalid

Edytowane przez deshayier

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

 

Brak rozwiązania problemu

Jeżeli się z tym nie zgadzasz, raportuj ten post

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×
×
  • Dodaj nową pozycję...