Ошибки при компиляции плагина sayme

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
102
Реакции
16
Ошибка
Будет скриншотом
Компилятор
Локальный
Amx Mod X
1.10.0
Исходный код
#include <amxmodx>
#include <reapi>

// Настройка использования команды /me (отключена - доступна всем игрокам)
//#define NOT_ALIVE

// Настройка вывода информации /me и /hp после смерти
#define INFO_KILLER

new g_iPlayerData[MAX_PLAYERS+1][info];

#else
enum _:info
{
damage,
lasthit,
killerid,
killername[32]
}
new g_iPlayerData[MAX_PLAYERS+1][info];
new Float:g_fHpKiller[MAX_PLAYERS+1];
new Float:g_fApKiller[MAX_PLAYERS+1];
new Float:g_fDistance[MAX_PLAYERS+1];
#endif

new g_iVOrigin[3], g_iKOrigin[3];

new const g_szHitPlaces[][] = { "-", "в голову", "в грудь", "в живот", "в левую руку", "в правую руку", "в левую ногу", "в правую ногу" };

public plugin_init()
{
register_plugin("AES: Say ME & HP", "1.4", "neygomon");

register_event("Damage", "eventDamage", "b", "2!0");

register_event("HLTV", "eventRoundStart", "a", "1=0", "2=0");
#endif
RegisterHookChain(RG_CBasePlayer_Killed, "fwdPlayerKilled", true)

register_clcmd("say /me", "ClCmdSayMe");
register_clcmd("say_team /me", "ClCmdSayMe");
register_clcmd("say /hp", "ClCmdSayHp");
register_clcmd("say_team /hp", "ClCmdSayHp");
}

public client_putinserver(id)
{
arrayset(g_iPlayerData[id], 0, info);
}

public eventRoundStart()
{
for(new i = 1; i <= MAX_PLAYERS; i++)
{
arrayset(g_iPlayerData[i], 0, info);
}
}
#endif
public eventDamage(id)
{
static attacker, hit; attacker = get_user_attacker(id, 0, hit);
if(id != attacker && 1 <= attacker <= MAX_PLAYERS)
{
g_iPlayerData[attacker][damage] += read_data(2);
g_iPlayerData[attacker][lasthit] = hit;
}
}

public fwdPlayerKilled(pVictim, pKiller)
{
if(pVictim == pKiller || !is_user_connected(pKiller) || !is_user_connected(pVictim))
return;

get_user_origin(pVictim, g_iVOrigin);
get_user_origin(pKiller, g_iKOrigin);

g_fHpKiller[pVictim] = get_entvar(pKiller, var_health);
g_fApKiller[pVictim] = get_entvar(pKiller, var_armorvalue);
g_fDistance[pVictim] = get_distance(g_iKOrigin, g_iVOrigin) * 0.0254;
#endif
g_iPlayerData[pVictim][killerid] = pKiller;
get_user_name(pKiller, g_iPlayerData[pVictim][killername], charsmax(g_iPlayerData[][killername]));

#if defined INFO_KILLER
new pKilledByBomb = get_member(pVictim, m_bKilledByBomb);
if(g_iPlayerData[pVictim][killerid] != 0 && !pKilledByBomb)
ClCmdSayHp(pVictim);
if(g_iPlayerData[pVictim][damage] != 0)
ClCmdSayMe(pVictim);
#endif
}

public ClCmdSayMe(id)
{
#if defined NOT_ALIVE
if(is_user_alive(id))
{
client_print_color(id, 0, "^4* ^1Доступно только ^4для мертвых ^1игроков");
return PLUGIN_HANDLED;
}
#endif
switch(g_iPlayerData[id][damage])
{
case 0: client_print_color(id, 0, "^4* ^1Вы ни в кого ^3не попали");
default: client_print_color(id, 0, "^4* ^1Вы нанесли ^3%d урона^1. Последнее попадание в ^4%s", g_iPlayerData[id][damage], g_szHitPlaces[g_iPlayerData[id][lasthit]]);
}
return PLUGIN_HANDLED;
}

public ClCmdSayHp(id)
{
switch(g_iPlayerData[id][killerid])
{
case 0: client_print_color(id, 0, "^4* ^1Вас никто ^3не убивал");
default: client_print_color(id, 0, "^4* ^1Вас убил ^4%s ^1с расстояния ^3%.0f метров^1. У него осталось ^4%.0f HP ^1и ^4%.0f AP", g_iPlayerData[id][killername], g_fDistance[id], g_fHpKiller[id], g_fApKiller[id]);
}
return PLUGIN_HANDLED;
}
Всем привет, уважаемые форумчане! Нужна помощь, проблема в том, что вырезал из данного плагина поддержку AMXX 1.8.3, при компиляции пошли ошибки, а мозгов не хватает, может вы подскажите
 
В этой теме было размещено решение! Перейти к решению.

Вложения

Сообщения
39
Реакции
7
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
maksgolubovskiy, через телефон попробовал
Код:
#include <amxmodx>
#include <reapi>

// Настройка использования команды /me (отключена - доступна всем игрокам)
//#define NOT_ALIVE

// Настройка вывода информации /me и /hp после смерти
#define INFO_KILLER

new g_iPlayerData[MAX_PLAYERS+1][info];

enum _:info
{
    damage,
    lasthit,
    killerid,
    killername[32]
}
new g_iPlayerData[MAX_PLAYERS+1][info];
new Float:g_fHpKiller[MAX_PLAYERS+1];
new Float:g_fApKiller[MAX_PLAYERS+1];
new Float:g_fDistance[MAX_PLAYERS+1];

new g_iVOrigin[3], g_iKOrigin[3];

new const g_szHitPlaces[][] = { "-", "в голову", "в грудь", "в живот", "в левую руку", "в правую руку", "в левую ногу", "в правую ногу" };

public plugin_init()
{
    register_plugin("AES: Say ME & HP", "1.4", "neygomon");

    register_event("Damage", "eventDamage", "b", "2!0");

    register_event("HLTV", "eventRoundStart", "a", "1=0", "2=0");
    RegisterHookChain(RG_CBasePlayer_Killed, "fwdPlayerKilled", true)

    register_clcmd("say /me", "ClCmdSayMe");
    register_clcmd("say_team /me", "ClCmdSayMe");
    register_clcmd("say /hp", "ClCmdSayHp");
    register_clcmd("say_team /hp", "ClCmdSayHp");
}

public client_putinserver(id)
{
    arrayset(g_iPlayerData[id], 0, info);
}

public eventRoundStart()
{
    for(new i = 1; i <= MAX_PLAYERS; i++)
    {
        arrayset(g_iPlayerData[i], 0, info);
    }
}

public eventDamage(id)
{
    static attacker, hit; attacker = get_user_attacker(id, 0, hit);
    if(id != attacker && 1 <= attacker <= MAX_PLAYERS)
    {
        g_iPlayerData[attacker][damage] += read_data(2);
        g_iPlayerData[attacker][lasthit] = hit;
    }
}

public fwdPlayerKilled(pVictim, pKiller)
{
    if(pVictim == pKiller || !is_user_connected(pKiller) || !is_user_connected(pVictim))
        return;

    get_user_origin(pVictim, g_iVOrigin);
    get_user_origin(pKiller, g_iKOrigin);

    g_fHpKiller[pVictim] = get_entvar(pKiller, var_health);
    g_fApKiller[pVictim] = get_entvar(pKiller, var_armorvalue);
    g_fDistance[pVictim] = get_distance(g_iKOrigin, g_iVOrigin) * 0.0254;
    g_iPlayerData[pVictim][killerid] = pKiller;
    get_user_name(pKiller, g_iPlayerData[pVictim][killername], charsmax(g_iPlayerData[][killername]));
    
#if defined INFO_KILLER
    new pKilledByBomb = get_member(pVictim, m_bKilledByBomb);
    if(g_iPlayerData[pVictim][killerid] != 0 && !pKilledByBomb)
        ClCmdSayHp(pVictim);
    if(g_iPlayerData[pVictim][damage] != 0)
        ClCmdSayMe(pVictim);
#endif
}

public ClCmdSayMe(id)
{
#if defined NOT_ALIVE
    if(is_user_alive(id))
    {
        client_print_color(id, 0, "^4* ^1Доступно только ^4для мертвых ^1игроков");
        return PLUGIN_HANDLED;
    }
#endif
    switch(g_iPlayerData[id][damage])
    {
        case 0: client_print_color(id, 0, "^4* ^1Вы ни в кого ^3не попали");
        default: client_print_color(id, 0, "^4* ^1Вы нанесли ^3%d урона^1. Последнее попадание в ^4%s", g_iPlayerData[id][damage], g_szHitPlaces[g_iPlayerData[id][lasthit]]);
    }
    return PLUGIN_HANDLED;
}

public ClCmdSayHp(id)
{
    switch(g_iPlayerData[id][killerid])
    {
        case 0: client_print_color(id, 0, "^4* ^1Вас никто ^3не убивал");
        default: client_print_color(id, 0, "^4* ^1Вас убил ^4%s ^1с расстояния ^3%.0f метров^1. У него осталось ^4%.0f HP ^1и ^4%.0f AP", g_iPlayerData[id][killername], g_fDistance[id], g_fHpKiller[id], g_fApKiller[id]);
    }
    return PLUGIN_HANDLED;
}
 
Сообщения
365
Реакции
9
Помог
5 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
maksgolubovskiy, начни компилировать через локальный компилятор, закинь плагин в папку с компилятором и компилируй, вижу путь указан не правильный (возможно ошибаюсь)
 
Сообщения
374
Реакции
47
Помог
6 раз(а)
maksgolubovskiy, попробуй так
Код:
#include <amxmodx>
#include <reapi>

// Настройка использования команды /me (отключена - доступна всем игрокам)
//#define NOT_ALIVE

// Настройка вывода информации /me и /hp после смерти
#define INFO_KILLER

enum _:info
{
    damage,
    lasthit,
    killerid,
    killername[32]
}

new g_iPlayerData[MAX_PLAYERS+1][info];
new Float:g_fHpKiller[MAX_PLAYERS+1];
new Float:g_fApKiller[MAX_PLAYERS+1];
new Float:g_fDistance[MAX_PLAYERS+1];

new g_iVOrigin[3], g_iKOrigin[3];

new const g_szHitPlaces[][] = { "-", "в голову", "в грудь", "в живот", "в левую руку", "в правую руку", "в левую ногу", "в правую ногу" };

public plugin_init()
{
    register_plugin("AES: Say ME & HP", "1.4", "neygomon");

    register_event("Damage", "eventDamage", "b", "2!0");

    register_event("HLTV", "eventRoundStart", "a", "1=0", "2=0");

    RegisterHookChain(RG_CBasePlayer_Killed, "fwdPlayerKilled", true)

    register_clcmd("say /me", "ClCmdSayMe");
    register_clcmd("say_team /me", "ClCmdSayMe");
    register_clcmd("say /hp", "ClCmdSayHp");
    register_clcmd("say_team /hp", "ClCmdSayHp");
}


public client_putinserver(id)
{
    arrayset(g_iPlayerData[id], 0, info);
}

public eventRoundStart()
{
    for(new i = 1; i <= MAX_PLAYERS; i++)
    {
        arrayset(g_iPlayerData[i], 0, info);
    }
}
// #endif
public eventDamage(id)
{
    static attacker, hit; attacker = get_user_attacker(id, 0, hit);
    if(id != attacker && 1 <= attacker <= MAX_PLAYERS)
    {
        g_iPlayerData[attacker][damage] += read_data(2);
        g_iPlayerData[attacker][lasthit] = hit;
    }
}

public fwdPlayerKilled(pVictim, pKiller)
{
    if(pVictim == pKiller || !is_user_connected(pKiller) || !is_user_connected(pVictim))
        return;

    get_user_origin(pVictim, g_iVOrigin);
    get_user_origin(pKiller, g_iKOrigin);

    g_fHpKiller[pVictim] = get_entvar(pKiller, var_health);
    g_fApKiller[pVictim] = get_entvar(pKiller, var_armorvalue);
    g_fDistance[pVictim] = get_distance(g_iKOrigin, g_iVOrigin) * 0.0254;
// #endif
    g_iPlayerData[pVictim][killerid] = pKiller;
    get_user_name(pKiller, g_iPlayerData[pVictim][killername], charsmax(g_iPlayerData[][killername]));
    
#if defined INFO_KILLER
    new pKilledByBomb = get_member(pVictim, m_bKilledByBomb);
    if(g_iPlayerData[pVictim][killerid] != 0 && !pKilledByBomb)
        ClCmdSayHp(pVictim);
    if(g_iPlayerData[pVictim][damage] != 0)
        ClCmdSayMe(pVictim);
#endif
}

public ClCmdSayMe(id)
{
#if defined NOT_ALIVE
    if(is_user_alive(id))
    {
        client_print_color(id, 0, "^4* ^1Доступно только ^4для мертвых ^1игроков");
        return PLUGIN_HANDLED;
    }
#endif
    switch(g_iPlayerData[id][damage])
    {
        case 0: client_print_color(id, 0, "^4* ^1Вы ни в кого ^3не попали");
        default: client_print_color(id, 0, "^4* ^1Вы нанесли ^3%d урона^1. Последнее попадание в ^4%s", g_iPlayerData[id][damage], g_szHitPlaces[g_iPlayerData[id][lasthit]]);
    }
    return PLUGIN_HANDLED;
}

public ClCmdSayHp(id)
{
    switch(g_iPlayerData[id][killerid])
    {
        case 0: client_print_color(id, 0, "^4* ^1Вас никто ^3не убивал");
        default: client_print_color(id, 0, "^4* ^1Вас убил ^4%s ^1с расстояния ^3%.0f метров^1. У него осталось ^4%.0f HP ^1и ^4%.0f AP", g_iPlayerData[id][killername], g_fDistance[id], g_fHpKiller[id], g_fApKiller[id]);
    }
    return PLUGIN_HANDLED;
}
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу