Изменить дамаг

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
@R1KO, так и есть
до этого делал if (client == Attacker) return Plugin_Continue;, но потом передумал и сделал чтобы дамаг по себе тоже уменьшался
перенёс вниз (где проверяется кто наносит урон) эту проверку и забыл поменять условие
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #42
@Ровный Кент, нет. могут быть эрроры.
PHP:
if (bAdmin[Attacker] && client != Attacker)
лучше заменить на
PHP:
if (Attacker > 0 && Attacker <= MaxClients && client != Attacker && bAdmin[Attacker])
 

Черная вдова

Участник
Сообщения
2,795
Реакции
670
C-подобный:
//// admin_damage.sp
//
// admin_damage.sp(11) : error 017: undefined symbol "Attacker"
// admin_damage.sp(20) : error 017: undefined symbol "Attacker"
//
// 2 Errors.
//
// Compilation Time: 0,14 sec
// ----------------------------------------

Вот так вот, правильно ? :

C-подобный:
#include <sdkhooks>

public void OnClientPutInServer(int client)
{
    SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}

public Action OnTakeDamage(int client, int &attacker, int &Inflictor, float &damage, int &DamageType)
{
    int VFlags = GetUserFlagBits(client);
    int AFlags = GetUserFlagBits(attacker);
 
 
    if (VFlags & ADMFLAG_ROOT && IsPlayerAlive(client))        // Получает урон.
    {
        damage /= 1.5;
        return Plugin_Changed;
    }
 
    if (AFlags & ADMFLAG_ROOT && client != attacker)        // Наносит урон.
    {
        damage *= 1.5;
        return Plugin_Changed;
    }
    return Plugin_Continue;
}
По мне так в коде есть логическая ошибка,
Ведь после return Plugin_Changed; дальнейший код не читается, так ?
Значит при атаке админом другого админа = урон будет снижаться но последующего увеличения не будет
 
Сверху Снизу