Помощь с плагином

Статус
В этой теме нельзя размещать новые ответы.

ovsankin

Новичок
Сообщения
11
Реакции
0
Уважаемые, очень сильно прошу вас помогите пожалуйста

Можете вырезать из исходника FADE Screen

https://yadi.sk/d/LrMQxge2p2Nh6g

Нужен простой плагин вампир для CSDM FFA сервера

Без всяких подсвечиваний экрана и т.д

Чтобы функция плагина была 1, это выдача заданного кол-во HP при убийстве и все!

Не чего лишнего чтобы не было

Просто на сервере стоит Screen fading (Подсвечивание экрана, со звуком)

Дабы избежать конфликтов плагинов!

Имееться болея рания версия плагина
Вот код https://yadi.sk/d/Jhq1M8BobBkkFw

Может с ней будет проще проделать и допилить под мои требования, в ней вроде как нет подсвечивания экрана, ну есть доп функционал который не нужен
А нужен именно
Чтобы функция плагина была 1, это выдача заданного кол-во HP при убийстве и все!
 
Решение
C++:
#include <amxmodx>
#include <fun>

new pMaxHP, pAddHP, pHsAddHP, pOnlyAdmins;
new AddHP, HsAddHP, MaxHP, oAdmins;
new g_HudSyncMsg;
new killer_HP, killerID;
//new g_ScreenMsg;

new g_iAdmin[33];

public plugin_init()
{
#define Version "1.3"
    register_plugin("Lite Vampire + Fade", Version, "neygomon");
    register_cvar("lv_neygomon", Version, FCVAR_SERVER | FCVAR_SPONLY)
    
    register_event("DeathMsg", "eDeathMsg", "a", "1>0");
    //g_ScreenMsg = get_user_msgid("ScreenFade");
    
    pMaxHP         = register_cvar("lv_maxhp", "100");    // Максимум HP
    pAddHP         = register_cvar("lv_addhp", "10");    // Добавление за убийство в тело
    pHsAddHP    = register_cvar("lv_hsaddhp", "15");    // Добавление за убийство в...
C++:
#include <amxmodx>
#include <fun>

new pMaxHP, pAddHP, pHsAddHP, pOnlyAdmins;
new AddHP, HsAddHP, MaxHP, oAdmins;
new g_HudSyncMsg;
new killer_HP, killerID;
//new g_ScreenMsg;

new g_iAdmin[33];

public plugin_init()
{
#define Version "1.3"
    register_plugin("Lite Vampire + Fade", Version, "neygomon");
    register_cvar("lv_neygomon", Version, FCVAR_SERVER | FCVAR_SPONLY)
    
    register_event("DeathMsg", "eDeathMsg", "a", "1>0");
    //g_ScreenMsg = get_user_msgid("ScreenFade");
    
    pMaxHP         = register_cvar("lv_maxhp", "100");    // Максимум HP
    pAddHP         = register_cvar("lv_addhp", "10");    // Добавление за убийство в тело
    pHsAddHP    = register_cvar("lv_hsaddhp", "15");    // Добавление за убийство в лицо :D
    pOnlyAdmins    = register_cvar("lv_oadmins", "0");    // Все функции плагина только для админов
    
    g_HudSyncMsg = CreateHudSyncObj();
    //g_ScreenMsg = get_user_msgid("ScreenFade");
    
    set_task(1.5, "Load_Cfg");
}

public Load_Cfg()
{
    AddHP     = get_pcvar_num(pAddHP);
    HsAddHP = get_pcvar_num(pHsAddHP);
    MaxHP     = get_pcvar_num(pMaxHP);
    oAdmins    = get_pcvar_num(pOnlyAdmins);
}   

public client_putinserver(id)
{
    if(oAdmins)
    {
        if(get_user_flags(id) & ADMIN_MENU) g_iAdmin[id] = 1;
        else g_iAdmin[id] = 0;
    }
}
    
public eDeathMsg()
{
    if(((killerID = read_data(1)) == read_data(2)) || (oAdmins && !g_iAdmin[killerID]))
        return;
    killer_HP = get_user_health(killerID);
    static TempHP; TempHP = (read_data(3) == 1) ? HsAddHP : AddHP;
    set_user_health(killerID, ((killer_HP += TempHP) > MaxHP) ? MaxHP : killer_HP);
    set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1);
    ShowSyncHudMsg(killerID, g_HudSyncMsg, "Добавлено +%d HP", TempHP);
    
    /*static id;
    if((id = read_data(1)) == read_data(2))
        return;

    message_begin(MSG_ONE, g_ScreenMsg, {0, 0, 0}, id);
    write_short(1<<10);
    write_short(1<<10);
    write_short(0x0000);
    write_byte(0);
    write_byte(0);        // R
    write_byte(200);        // G
    write_byte(75);        // B
    message_end();    */
}
 
@SKAJIbnEJIb, Братишка, все прекрасно работает, плагины не конфликтуют
Но сообщение о + HP не по центру, немного раздражает, как сделать чтобы писалось по центру экрана?
Разрешение юзаю 1024х768
 

Вложения

  • 20200924205408_1.jpg
    20200924205408_1.jpg
    133.1 KB · Просмотры: 11
  • 20200924205350_1.jpg
    20200924205350_1.jpg
    229.3 KB · Просмотры: 10
@DIVIZION, Да это я понял)
Вы скинули уже правленый вариант?
Или как пример?
Я просто не особе в этих X Y куда в лево, куда в право, куда вниз, куда в верх не понятно
Методом тыка, каждый раз компилируя плагин мучительно
 
@ovsankin, это у вас глазомер сломался, координата -1.0 говорит что по оси X по центру будет
Сообщение автоматически объединено:

ShowSyncHudMsg(killerID, g_HudSyncMsg, "Добавлено +%d HP", TempHP);
просто вы скомпили скорее всего не ув кодировке utf8 без бом, вот он и не отобразил символы русские
 
это у вас глазомер сломался, координата -1.0 говорит что по оси X по центру будет
Так на скринах же видно, что не по центру)
Нужно создать sma в akelpad например, в кодировке uft8 и поставить галочку на bom?)
Сообщение автоматически объединено:

@ovsankin, это у вас глазомер сломался, координата -1.0 говорит что по оси X по центру будет
Сообщение автоматически объединено:


просто вы скомпили скорее всего не ув кодировке utf8 без бом, вот он и не отобразил символы русские
В uft8 с бом не компилирует
 

Вложения

  • Снимок.PNG
    Снимок.PNG
    17.6 KB · Просмотры: 6
Последнее редактирование:
Код:
/*
    neygomon created ^_^ | http://www.neugomon.ru
*/

#include <amxmodx>
#include <fun>

new pMaxHP, pAddHP, pHsAddHP, pOnlyAdmins;
new AddHP, HsAddHP, MaxHP, oAdmins;
new g_HudSyncMsg;
new killer_HP, killerID;

new g_iAdmin[33];

public plugin_init()
{
#define Version "1.2"
    register_plugin("Lite Vampire", Version, "neygomon");
    register_cvar("lv_neygomon", Version, FCVAR_SERVER | FCVAR_SPONLY)
    
    register_event("DeathMsg", "eDeathMsg", "a", "1>0");
    
    pMaxHP         = register_cvar("lv_maxhp", "100");    // Максимум HP
    pAddHP         = register_cvar("lv_addhp", "20");    // Добавление за убийство в тело
    pHsAddHP    = register_cvar("lv_hsaddhp", "50");    // Добавление за убийство в лицо :D
    pOnlyAdmins    = register_cvar("lv_oadmins", "0");    // Все функции плагина только для админов
    
    g_HudSyncMsg = CreateHudSyncObj();
    
    set_task(1.5, "Load_Cfg");
}

public Load_Cfg()
{
    AddHP     = get_pcvar_num(pAddHP);
    HsAddHP = get_pcvar_num(pHsAddHP);
    MaxHP     = get_pcvar_num(pMaxHP);
    oAdmins    = get_pcvar_num(pOnlyAdmins);
}   

public client_putinserver(id)
{
    if(oAdmins)
    {
        if(get_user_flags(id) & ADMIN_MENU) g_iAdmin[id] = 1;
        else g_iAdmin[id] = 0;
    }
}
    
public eDeathMsg()
{
    if(((killerID = read_data(1)) == read_data(2)) || (oAdmins && !g_iAdmin[killerID]))
        return;
    killer_HP = get_user_health(killerID);
    static TempHP; TempHP = (read_data(3) == 1) ? HsAddHP : AddHP;
    set_user_health(killerID, ((killer_HP += TempHP) > MaxHP) ? MaxHP : killer_HP);
    set_hudmessage(255, 0, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1);
    ShowSyncHudMsg(killerID, g_HudSyncMsg, "Добавлено +%d HP", TempHP);
}

Версия я так понял без Screen Fide?
Более раняя!
Может проще всего ставить ее?
Ведь по сути должна только ХП выдавать и все, или я ошибаюсь?(
Паша подправь пожалуйста этот код если в нем что то лишнее, если все ок и так, тогда ставлю эту версию
 
не знаю как вы компилите. Компилить нужно не онлайн компиляторами, а теми что в папке scripting
Понял, а по коду что чуть выше, что скажите?
Не логичнее поставить его?
 
Статус
В этой теме нельзя размещать новые ответы.

Похожие темы

Сверху
Назад