Wersy z których dane wyciągnąłem:
set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
ShowSyncHudMsg(id, SyncHudObj, "Klasa : %s^nDoswiadczenie : %i / %i^nPoziom : %i^nPrzedmiot : %s", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], doswiadczenie_poziomu[poziom_gracza[target]], poziom_gracza[target], nazwy_przedmiotow[informacje_przedmiotu_gracza[target][0]]);
Standardowy kod, działający - wygląda tak: (lecz jest tutaj niestety tylko info o hp, armorze i bodajże nick)
#include <amxmodx>
#include <fakemeta>
new gSyncMsgHandler
new bool:gInfo[33]
new cvar_save_result
public plugin_init() {
register_plugin("Diablo Show Nick", "1.2", "Owner")
register_clcmd("amx_centerid", "cmdCenterId", _, "<num> - 1 centruje ID, 0 brak")
cvar_save_result = register_cvar("amx_save_center", "1")
register_forward(FM_PlayerPreThink, "fwdPreThink")
gSyncMsgHandler = CreateHudSyncObj()
}
public fwdPreThink(id)
{
new id2, body
get_user_aiming(id, id2, body)
if(id2 && is_user_alive(id) && is_user_connected(id2))
{
new name[32]
get_user_name(id2, name, 31)
set_hudmessage(get_user_team(id2) == 1 ? 255 : 0, 0, get_user_team(id2) == 2 ? 255 : 0, gInfo[id] ? -1.0 : 0.01, gInfo[id] ? -1.0 : 0.91, 1, 6.0, 0.1)
ShowSyncHudMsg(id, gSyncMsgHandler, "Nick: %s HP: %i Armor: %i", name, pev(id2, pev_health), pev(id2, pev_armorvalue))
}
}
public cmdCenterId(id)
{
new argv[10]
read_argv(1, argv, 9)
new key = str_to_num(argv)
client_cmd(id, "setinfo _hud %i", key)
}
public client_putinserver(id)
{
if(!get_pcvar_num(cvar_save_result))
return PLUGIN_CONTINUE
new info[10]
get_user_info(id, "_hud", info, 9)
new key = str_to_num(info)
if(key)
gInfo[id] = true
else
gInfo[id] = false
return PLUGIN_CONTINUE
}
A tutaj linijki, które sam konfigurowałem i robiłem:
public fwdPreThink(id)
{
new id2, body
get_user_aiming(id, id2, body)
new target = entity_get_int(id, EV_INT_iuser2);
if(id2 && is_user_alive(id) && is_user_connected(id2))
{
new name[32]
get_user_name(id2, name, 31)
set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
ShowSyncHudMsg(id, gSyncMsgHandler, "Nick: %s HP: %i Armor: %i^n %i Lv: %i^n Item: %s", name, pev(id2, pev_health), pev(id2, pev_armorvalue), nazwy_klas[klasa_gracza[target]], poziom_gracza[target], nazwy_przedmiotow[informacje_przedmiotu_gracza[target][0]])
}
}
public cmdCenterId(id)
{
new argv[10]
read_argv(1, argv, 9)
new key = str_to_num(argv)
client_cmd(id, "setinfo _hud %i", key)
}
public client_putinserver(id)
{
if(!get_pcvar_num(cvar_save_result))
return PLUGIN_CONTINUE
new info[10]
get_user_info(id, "_hud", info, 9)
new key = str_to_num(info)
if(key)
gInfo[id] = true
else
gInfo[id] = false
return PLUGIN_CONTINUE
}
I niestety, nie działa to jak powinno. Zamiast klasy wyskakuje liczba 66, zawsze pokazuje 1lvl i do tego w ogóle nie wykrywa itemu. Czuję, że przeróbka będzie tutaj dość niewielka, pewnie ,,nazwy_klas[klasa_gracza[target]], poziom_gracza[target], nazwy_przedmiotow[informacje_przedmiotu_gracza[target][0]]" jest źle.
PS. Wszystko w plugin_init oraz w define pododawałem.