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

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

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

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

Помогите с плагином

Статус пользователя ACbKA
сообщение 25.3.2014, 15:40
Сообщение #1


Стаж: 13 лет

Сообщений: 144
Благодарностей: 20
Полезность: < 0

Всем привет. Помогите с плагином!
Мне нужно сделать чтобы cvar "sa_online_color" каждую секунду мигал разным цветом.

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

#define PLUGIN "Show Admins Online"
#define VERSION "1.1"
#define AUTHOR "vato loco [GE-S] & Alka"

new bool:g_bAdminNick
new bool:is_admin_connected[33]
new g_msg[512]

new g_admin_enable
new g_online_color
new g_offline_color
new g_msg_xypos

new g_SyncAdmin
new g_iAdminCount
new g_iMaxPlayers

new g_ClassName[] = "admin_msg"

public plugin_init()
{
register_plugin( PLUGIN, VERSION, AUTHOR )

register_think(g_ClassName,"ForwardThink")

g_admin_enable = register_cvar("sa_plugin_on","1")
g_online_color = register_cvar("sa_online_color","0 255 255")
g_offline_color = register_cvar("sa_offline_color","255 0 0")
g_msg_xypos = register_cvar("sa_msg_xypos","0.02 0.2")

g_SyncAdmin = CreateHudSyncObj()
g_iMaxPlayers = get_maxplayers()

new iEnt = create_entity("info_target")
entity_set_string(iEnt, EV_SZ_classname, g_ClassName)
entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 2.0)
}

public client_putinserver(id)
{
if(get_user_flags(id) & ADMIN_KICK)
{
is_admin_connected[id] = true
g_iAdminCount++
set_admin_msg()
}
if(g_iAdminCount == 0)
set_admin_msg()
}

public client_disconnect(id)
{
if(is_admin_connected[id])
{
is_admin_connected[id] = false
g_iAdminCount--
set_admin_msg()
}
}

public client_infochanged(id)
{
if(is_admin_connected[id])
{
static NewName[32], OldName[32]
get_user_info(id, "name", NewName, 31)
get_user_name(id, OldName, 31)

if(!equal(OldName, NewName))
{
g_bAdminNick = true
}
}
}

public set_admin_msg()
{
static g_iAdminName[32], pos, i
pos = 0
pos += formatex(g_msg[pos], 511-pos, "Admins Online: %d", g_iAdminCount)

for(i = 1 ; i <= g_iMaxPlayers ; i++)
{
if(is_admin_connected[i])
{
get_user_name(i, g_iAdminName, 31)
pos += formatex(g_msg[pos], 511-pos, "^n%s", g_iAdminName)
}
}
}

public admins_online()
{
if(get_pcvar_num(g_admin_enable))
{
static r, g, b, Float:x,Float:y
HudMsgPos(x,y)

if (g_iAdminCount > 0)
{
HudMsgColor(g_online_color, r, g, b)
set_hudmessage(r, g, b, x, y, _, _, 4.0, _, _, 4)
ShowSyncHudMsg(0, g_SyncAdmin, "%s", g_msg)
}
else
{
HudMsgColor(g_offline_color, r, g, b)
set_hudmessage(r, g, b, x, y, _, _, 4.0, _, _, 4)
ShowSyncHudMsg(0, g_SyncAdmin, "%s", g_msg)
}
}
return PLUGIN_HANDLED
}

public ForwardThink(iEnt)
{
admins_online()

if(g_bAdminNick)
{
set_admin_msg()
g_bAdminNick = false
}
entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 2.0)
}

public HudMsgColor(cvar, &r, &g, &b)
{
static color[16], piece[5]
get_pcvar_string(cvar, color, 15)

strbreak( color, piece, 4, color, 15)
r = str_to_num(piece)

strbreak( color, piece, 4, color, 15)
g = str_to_num(piece)
b = str_to_num(color)
}

public HudMsgPos(&Float:x, &Float:y)
{
static coords[16], piece[10]
get_pcvar_string(g_msg_xypos, coords, 15)

strbreak(coords, piece, 9, coords, 15)
x = str_to_float(piece)
y = str_to_float(coords)
}


Отредактировал: ACbKA, - 25.3.2014, 15:44
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
serfreeman1337
сообщение 26.3.2014, 5:26
Сообщение #2
Стаж: 13 лет

Сообщений: 912
Благодарности: выкл.

Код:
public HudMsgColor(cvar, &r, &g, &b)
{
r = random(255)
g = random(255)
b = random(255)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: