Как да заменим HUD с DHUD съобщение

В този раздел можете да намерите полезни кодове и уроци свързани с PAWN скриптинга.
Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Как да заменим HUD с DHUD съобщение

Мнение от OciXCrom » 18 Апр 2017, 21:11

Разликата между HUD и DHUD [ ПОКАЖИ ]

Заместването на HUD съобщение с DHUD (Director HUD) става много лесно и ще го обясня в няколко прости стъпки. За пример ще ползваме следния код:

Код за потвърждение: Избери целия код

#include <amxmodx>

#define VIP_FLAG ADMIN_RESERVATION
#define TASK_HEALTH 666666

new g_iObject

public plugin_init()
{
    register_plugin("VIP Join Message + HUD Health", "1.0", "OciXCrom @ amxx-bg.info/forum")
    g_iObject = CreateHudSyncObj()
}

public client_putinserver(id)
{
    if(get_user_flags(id) & VIP_FLAG)
    {
        new szName[32]
        get_user_name(id, szName, charsmax(szName))
        
        set_hudmessage(0, 255, 25, -1.0, 0.35, 0, 6.0, 12.0, 0.1, 0.2, -1)
        show_hudmessage(0, "VIP user %s has joined the game", szName)
    }
    
    set_task(1.0, "ShowHealth", id + TASK_HEALTH, .flags = "b")
}

public ShowHealth(id)
{
    id -= TASK_HEALTH
    
    if(is_user_alive(id))
    {
        set_hudmessage(120, 66, 33, -1.0, 0.8, 0, 1.0, 1.0, 0.1, 0.2)
        ShowSyncHudMsg(id, g_iObject, "Your health: %i", get_user_health(id))
    }
} 

#1.1 Теглите файла dhudmessage.inc и го добавяте в addons/amxmodx/scripting/include.

#2.1 В началото на кода добавяте библиотеката "dhudmessage" по следния начин:

Код за потвърждение: Избери целия код

#if AMXX_VERSION_NUM < 183
    #include <dhudmessage>
#endif 
Въпросната проверка се добавя тъй като в AMXX 1.8.3, библиотеката е вградена и няма да можете да компилирате плъгина под тази версия ако не добавите проверката.

#3.1 Намирате съобщението, което искате да замените. HUD съобщенията се задават с функцията set_hudmessage, а се изпращат с show_hudmessage или ShowSyncHudMsg, съответно търсете тези редове. В нашия пример има две различни съобщения, съответно трябва да заменим 4 функции.

#3.2 Това е първото съобщение:

Код за потвърждение: Избери целия код

set_hudmessage(0, 255, 25, -1.0, 0.35, 0, 6.0, 12.0, 0.1, 0.2, -1)
show_hudmessage(0, "VIP user %s has joined the game", szName) 
За да стане DHUD, в първия ред заменяте set_hudmessage със set_dhudmessage. Също така, погледнете последния параметър във функцията. Ако той е число от -1 до 9, премахвате го. Ако е плаващо число (0.1, 0.2, 0.3...), не го пипате. В нашия случай числото е -1, съответно трябва да се премахне, както и запетаята пред него.

Във втория ред заменяте show_hudmessage със show_dhudmessage.

Двата реда трябва да изглеждат така:

Код за потвърждение: Избери целия код

set_dhudmessage(0, 255, 25, -1.0, 0.35, 0, 6.0, 12.0, 0.1, 0.2)
show_dhudmessage(0, "VIP user %s has joined the game", szName) 
#3.3 Това е второто съобщение:

Код за потвърждение: Избери целия код

set_hudmessage(120, 66, 33, -1.0, 0.8, 0, 1.0, 1.0, 0.1, 0.2)
ShowSyncHudMsg(id, g_iObject, "Your health: %i", get_user_health(id)) 
В първия ред правите същото като по-горе, а във втория заменяте ShowSyncHudMsg със show_dhudmessage и премахвате втория параметър от функцията (в случая g_iObject).

Двата реда трябва да изглеждат така:

Код за потвърждение: Избери целия код

set_dhudmessage(120, 66, 33, -1.0, 0.8, 0, 1.0, 1.0, 0.1, 0.2)
show_dhudmessage(id, "Your health: %i", get_user_health(id)) 
4.1 Компилирате плъгина локално, замествате го и сте готови. Целият код трябва да изглежда така:

Код за потвърждение: Избери целия код

#include <amxmodx>

#if AMXX_VERSION_NUM < 183
    #include <dhudmessage>
#endif

#define VIP_FLAG ADMIN_RESERVATION
#define TASK_HEALTH 666666

//new g_iObject -- можете да махнете това, тъй като вече не е нужно

public plugin_init()
{
    register_plugin("VIP Join Message + HUD Health", "1.0", "OciXCrom @ amxx-bg.info/forum")
    //g_iObject = CreateHudSyncObj() -- можете да махнете това, тъй като вече не е нужно
}

public client_putinserver(id)
{
    if(get_user_flags(id) & VIP_FLAG)
    {
        new szName[32]
        get_user_name(id, szName, charsmax(szName))
        
        set_dhudmessage(0, 255, 25, -1.0, 0.35, 0, 6.0, 12.0, 0.1, 0.2)
        show_dhudmessage(0, "VIP user %s has joined the game", szName)
    }
    
    set_task(1.0, "ShowHealth", id + TASK_HEALTH, .flags = "b")
}

public ShowHealth(id)
{
    id -= TASK_HEALTH
    
    if(is_user_alive(id))
    {
        set_dhudmessage(120, 66, 33, -1.0, 0.8, 0, 1.0, 1.0, 0.1, 0.2)
        show_dhudmessage(id, "Your health: %i", get_user_health(id))
    }
} 

  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Полезни кодове/уроци”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 8 госта