Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Color Chat.

Статус пользователя SeeeR
сообщение 13.12.2017, 23:12
Сообщение #1
Стаж: 8 лет 7 месяцев

Сообщений: 37
Благодарностей: 1
Полезность: 23

Hello friends, Can be added please print_team_red, That means the text is red for both teams. Where is ^ 3 to be red for all. Please.

Код
#include <amxmodx>
#include <engine>
#include <hamsandwich>

// #define NOT_ALIVE    // Использовать /me может только МЕРТВЫЙ игрок. Чтобы разрешить всем пользоваться, закомментируйте;)
#define INFO_KILLER    // Информация /me и /hp после смерти игрока
//#define NO_ROUND    // Поддержка бесконечного раунда.

#define msgSayText     76
#define maxPlayers    32

#if AMXX_VERSION_NUM == 183
enum _:info
{
    damage,
    lasthit,
    killerid,
    killername[32],
    Float:hpkiller,
    Float:apkiller,
    Float:distance
}
new g_iPlayerData[maxPlayers+1][info];
#else
enum _:info
{
    damage,
    lasthit,
    killerid,
    killername[32]
}
new g_iPlayerData[maxPlayers+1][info];
new Float:g_fHpKiller[maxPlayers+1];
new Float:g_fApKiller[maxPlayers+1];
new Float:g_fDistance[maxPlayers+1];
#endif
new const g_szHitPlaces[][] = { "-", "голову", "грудь", "живот", "левую руку", "правую руку", "левую ногу", "правую ногу" };

public plugin_init()
{
    register_plugin("Say me and Say hp", "1.4", "neygomon");    

    register_event("Damage", "eventDamage", "b", "2!0");    
#if defined NO_ROUND
    RegisterHam(Ham_Spawn, "player", "fwdPlayerSpawn", true);
#else
    register_event("HLTV",     "eventRoundStart", "a", "1=0", "2=0");
#endif
    RegisterHam(Ham_Killed, "player", "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);
    #if AMXX_VERSION_NUM < 183
    g_fHpKiller[id] = g_fApKiller[id] = g_fDistance[id] = 0.0;
    #endif    
}
#if defined NO_ROUND
public fwdPlayerSpawn(const id)
{
    arrayset(g_iPlayerData[id], 0, info);
    #if AMXX_VERSION_NUM < 183
    g_fHpKiller[id] = g_fApKiller[id] = g_fDistance[id] = 0.0;
    #endif
}
#else
public eventRoundStart()
{
    for(new i = 1; i <= maxPlayers; i++)
    {
        arrayset(g_iPlayerData[i], 0, info);
    #if AMXX_VERSION_NUM < 183    
        g_fHpKiller[i] = g_fApKiller[i] = g_fDistance[i] = 0.0;
    #endif    
    }
}
#endif
public eventDamage(id)
{
    static attacker, hit; attacker = get_user_attacker(id, 0, hit);
    if(id != attacker && 1 <= attacker <= maxPlayers)
    {
        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;
#if AMXX_VERSION_NUM == 183
    g_iPlayerData[pVictim][hpkiller] = entity_get_float(pKiller, EV_FL_health);
    g_iPlayerData[pVictim][apkiller] = entity_get_float(pKiller, EV_FL_armorvalue);
    g_iPlayerData[pVictim][distance] = entity_range(pKiller, pVictim) / 32.00;
#else
    g_fHpKiller[pVictim] = entity_get_float(pKiller, EV_FL_health);
    g_fApKiller[pVictim] = entity_get_float(pKiller, EV_FL_armorvalue);
    g_fDistance[pVictim] = entity_range(pKiller, pVictim) / 32.00;
#endif    
    g_iPlayerData[pVictim][killerid] = pKiller;
    get_user_name(pKiller, g_iPlayerData[pVictim][killername], charsmax(g_iPlayerData[][killername]));
#if defined INFO_KILLER
    ClCmdSayHp(pVictim);
    ClCmdSayMe(pVictim);
#endif
}

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

public ClCmdSayHp(id)
{
    switch(g_iPlayerData[id][killerid])
    {
        case 0: ChatColor(id, id, "^1[^3SayHp^1] ^4Вас ^3никто ^4не убивал.");
#if AMXX_VERSION_NUM == 183        
        default:ChatColor(id, g_iPlayerData[id][killerid], "^1[^3SayHp^1] ^4Вас убил: ^3%s^4 с расстояния ^3%.0f^4 метров. У него осталось: ^3%.0f^1HP ^4и ^3%.0f^1AP", g_iPlayerData[id][killername], g_iPlayerData[id][distance], g_iPlayerData[id][hpkiller], g_iPlayerData[id][apkiller]);
#else
        default:ChatColor(id, g_iPlayerData[id][killerid], "^1[^3SayHp^1] ^4Вас убил: ^3%s^4 с расстояния ^3%.0f^4 метров. У него осталось: ^3%.0f^1HP ^4и ^3%.0f^1AP", g_iPlayerData[id][killername], g_fDistance[id], g_fHpKiller[id], g_fApKiller[id]);
#endif        
    }
    return PLUGIN_HANDLED;
}

stock ChatColor(id, id2, const szMessage[], any:...)
{
    if(!is_user_connected(id))
        return;
        
    static szMsg[190]; vformat(szMsg, charsmax(szMsg), szMessage, 4);
    message_begin(MSG_ONE, msgSayText, .player = id);
    write_byte(id2);
    write_string(szMsg);
    message_end();    
}




Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя SeeeR
сообщение 15.12.2017, 13:51
Сообщение #2
Стаж: 8 лет 7 месяцев

Сообщений: 37
Благодарностей: 1
Полезность: 23

I've been able to insert the red color to ^ 3, but now the plugin does not work properly.

Код
#include <amxmodx>
#include <engine>
#include <hamsandwich>
#include <colorchat>

// #define NOT_ALIVE    // Использовать /me может только МЕРТВЫЙ игрок. Чтобы разрешить всем пользоваться, закомментируйте;)
#define INFO_KILLER    // Информация /me и /hp после смерти игрока
//#define NO_ROUND    // Поддержка бесконечного раунда.

#define msgSayText     76
#define maxPlayers    32

#if AMXX_VERSION_NUM == 183
enum _:info
{
    damage,
    lasthit,
    killerid,
    killername[32],
    Float:hpkiller,
    Float:apkiller,
    Float:distance
}
new g_iPlayerData[maxPlayers+1][info];
#else
enum _:info
{
    damage,
    lasthit,
    killerid,
    killername[32]
}
new g_iPlayerData[maxPlayers+1][info];
new Float:g_fHpKiller[maxPlayers+1];
new Float:g_fApKiller[maxPlayers+1];
new Float:g_fDistance[maxPlayers+1];
#endif
new const g_szHitPlaces[][] = { "-", "cap", "piept", "burta", "brat stang", "brat drept", "picior stang", "picior drept" };

public plugin_init()
{
    register_plugin("Say me and Say hp", "1.4", "neygomon");    

    register_event("Damage", "eventDamage", "b", "2!0");    
#if defined NO_ROUND
    RegisterHam(Ham_Spawn, "player", "fwdPlayerSpawn", true);
#else
    register_event("HLTV",     "eventRoundStart", "a", "1=0", "2=0");
#endif
    RegisterHam(Ham_Killed, "player", "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);
    #if AMXX_VERSION_NUM < 183
    g_fHpKiller[id] = g_fApKiller[id] = g_fDistance[id] = 0.0;
    #endif    
}
#if defined NO_ROUND
public fwdPlayerSpawn(const id)
{
    arrayset(g_iPlayerData[id], 0, info);
    #if AMXX_VERSION_NUM < 183
    g_fHpKiller[id] = g_fApKiller[id] = g_fDistance[id] = 0.0;
    #endif
}
#else
public eventRoundStart()
{
    for(new i = 1; i <= maxPlayers; i++)
    {
        arrayset(g_iPlayerData[i], 0, info);
    #if AMXX_VERSION_NUM < 183    
        g_fHpKiller[i] = g_fApKiller[i] = g_fDistance[i] = 0.0;
    #endif    
    }
}
#endif
public eventDamage(id)
{
    static attacker, hit; attacker = get_user_attacker(id, 0, hit);
    if(id != attacker && 1 <= attacker <= maxPlayers)
    {
        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;
#if AMXX_VERSION_NUM == 183
    g_iPlayerData[pVictim][hpkiller] = entity_get_float(pKiller, EV_FL_health);
    g_iPlayerData[pVictim][apkiller] = entity_get_float(pKiller, EV_FL_armorvalue);
    g_iPlayerData[pVictim][distance] = entity_range(pKiller, pVictim) / 32.00;
#else
    g_fHpKiller[pVictim] = entity_get_float(pKiller, EV_FL_health);
    g_fApKiller[pVictim] = entity_get_float(pKiller, EV_FL_armorvalue);
    g_fDistance[pVictim] = entity_range(pKiller, pVictim) / 32.00;
#endif    
    g_iPlayerData[pVictim][killerid] = pKiller;
    get_user_name(pKiller, g_iPlayerData[pVictim][killername], charsmax(g_iPlayerData[][killername]));
#if defined INFO_KILLER
    ClCmdSayHp(pVictim);
    ClCmdSayMe(pVictim);
#endif
}

public ClCmdSayMe(id)
{
#if defined NOT_ALIVE
    if(is_user_alive(id))
    {
        ColorChat(id, RED, "^3[SS] ^1Aceasta functie este disponibila numai jucatorilor morti.");
        return PLUGIN_HANDLED;
    }    
#endif
    switch(g_iPlayerData[id][damage])
    {
        case 0: ColorChat(id, RED, "^3[SS] ^1Nu sunt inregistrate lovituri.");
        default:ColorChat(id, RED, "^3[SS] ^1Ai facut daune de ^4%d^1 hp. Ultima lovitura fiind in ^4%s^1.", g_iPlayerData[id][damage], g_szHitPlaces[g_iPlayerData[id][lasthit]]);
    }    
    return PLUGIN_HANDLED;    
}

public ClCmdSayHp(id)
{
    switch(g_iPlayerData[id][killerid])
    {
        case 0: ColorChat(id, RED, "^3[SS] ^1Nu sunt inregistrate lovituri.");
#if AMXX_VERSION_NUM == 183        
        default:ColorChat(id, RED, "^3[SS] ^1Ai fost ucis de ^4%s^1. (%.0fhp, %.0fap)", g_iPlayerData[id][killerid], g_iPlayerData[id][killername], g_iPlayerData[id][hpkiller], g_iPlayerData[id][apkiller]);
#else
        default:ColorChat(id, RED, "^3[SS] ^1Ai fost ucis de ^4%s^1. (%.0fhp, %.0fap)", g_iPlayerData[id][killerid], g_iPlayerData[id][killername], g_fHpKiller[id], g_fApKiller[id]);
#endif        
    }
    return PLUGIN_HANDLED;
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: