Проблема в плагине
Плагин показывает скоко админов онлайн не коректно ((
Показывает всё время что админ онлайн 1
хоть играет хоть 5 админов хоть 1
подскажите что подправить
CODE
/* //
* AMX Mod X Script //
*=====================================================//
* //
* Плагин: Server Informer //
* Автор: Sho0ter edit by .csF Group //
* Версия: 1.2 Public //
* Официальный сайт: csf.info.tm(Test) //
* //
* ///////////////////////////////////////////////
*
* Убирать копирайты запрещено!
* Для вас и так плагин сделан бесплатно, и с исходником!
* Переделка плагина "deathrun_info" скриптера Sho0ter'a, командой .csF
* Плагин предназначен для отображения информации игрокам:
* 1. Мод.
* 2. Время.
* 3. Время до конца карты, когда время истекает, пишет, что последний раунд.
* 4. Следующая карта.
* 5. Количество игроков на сервере.
* 6. Связь с администрацией.
* 7. Количество администраторов онлайн.
* 8. Количество сыгранных раундов.
* 9. IP адресс сервера.
*
*
* Квары:
* csf_info - Выключить/Включить информер, стандартно 1.
* csf_server_mode - ОБЯЗАТЕЛЬНО с больших букв, "Мод" сервера, добавить свой или переименовать можно в lang файле, стандартно PUBLIC.
* csf_admin_icq - Ваш ICQ, можно сделать и скайп, для этого нужно поменять в server_info.txt "ICQ Админа" на "Skype Админа".
* csf_info_mod - Показывать "Мод", стандартно 1
* csf_info_ct - Показывать "Текущее время", стандартно 1
* csf_info_nm - Показывать "Следующая карта", стандартно 1
* csf_info_ap - Показывать "Всего игроков", стандартно 1
* csf_info_ai - Показывать "ICQ Админа", стандартно 1
* csf_info_ao - Показывать "Админов онлайн", стандартно 1
* csf_info_rds - Показывать "Сыграно раундов", стандартно 1
* csf_info_si - Показывать "IP сервера", стандартно 1
* csf_hud_rgb - Настройка цвета информера, стандартно 100 100 100
* csf_hud_x - Расположение по оси Х, стандартно 0.01
* csf_hud_y - Расположение по оси Y, стандартно 0.18
* csf_hud_efct - Эффект 0(Обычный), 1(Мерцание), 2(Печатная машинка), стандартно 0.
*
*
* ----------------------------------------------------------------------------------------------------------------------------------------------------------
*
* Changelog:
*
* 1.0 » Релиз
*
* 1.1 » Оптимизирован код
* Удален квар csf_server_ip - теперь ip сервера выставляется автоматически. (Спасибо пользователю amx-x.ru l0pa, а так же спасибо Bl0ck'у)
* Добавлено:
* "Админов онлайн"
* "Сыграно раундов"
*
* 1.2 » Оптимизирован код
* Добавлены квары:
* csf_info_mod - Показывать "Мод"
* csf_info_ct - Показывать "Текущее время"
* csf_info_nm - Показывать "Следующая карта"
* csf_info_ap - Показывать "Всего игроков"
* csf_info_ai - Показывать "ICQ Админа"
* csf_info_ao - Показывать "Админов онлайн"
* csf_info_rds - Показывать "Сыграно раундов"
* csf_info_si - Показывать "IP сервера"
* csf_hud_rgb - Настройка цвета информера.
* csf_hud_x - Расположение по оси Х.
* csf_hud_y - Расположение по оси Y.
* csf_hud_efct - Эффекты.
* С помощью этих кваров можно настроить на свой вкус и цвет :)
* Отдельное спасибо xakintosh.
*
* 1.3 » Coming soon
*
* ----------------------------------------------------------------------------------------------------------------------------------------------------------
*/
#include <amxmodx>
#include <amxmisc>
#include <engine>
#define PLUGIN_NAME "Server Informer"
#define PLUGIN_AUTHOR "Sho0ter edit by .csF Group"
#define PLUGIN_VERSION "1.2 Public"
#define INFORMERTID 100503
new g_MaxClients
new g_HudText
new hud_rgb
new hud_x
new hud_y
new hud_efct
new g_round = 0
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_dictionary("server_info.txt")
set_task(1.0, "Informer", INFORMERTID, "", 0, "b")
register_cvar("csf_server_mode", "PUBLIC")
register_cvar("csf_admin_icq", "623238176")
register_cvar("csf_info", "1")
register_cvar("csf_info_mod", "1")
register_cvar("csf_info_mod", "1")
register_cvar("csf_info_ct", "1")
register_cvar("csf_info_nm", "1")
register_cvar("csf_info_ap", "1")
register_cvar("csf_info_ai", "1")
register_cvar("csf_info_ao", "1")
register_cvar("csf_info_rds", "1")
register_cvar("csf_info_si", "1")
hud_rgb = register_cvar( "csf_hud_rgb", "0 255 0" )
hud_x = register_cvar( "csf_hud_x", "0.01" )
hud_y = register_cvar( "csf_hud_y", "0.18" )
hud_efct = register_cvar( "csf_hud_efct", "0" )
g_HudText = CreateHudSyncObj()
register_event("HLTV", "event_newround", "a", "1=0", "2=0");
g_MaxClients = get_global_int(GL_maxClients)
}
public event_newround() {
g_round++
}
public Informer()
{
if(!get_cvar_num("csf_info"))
{
remove_task(INFORMERTID)
return PLUGIN_HANDLED
}
new id, all, CurrentTime[32], NextMap[32], Message[512]
for(id = 1; id <= g_MaxClients; id++)
{
if(!is_user_connected(id))
{
continue
}
else
{
all++
}
}
for(id = 1; id <= g_MaxClients; id++)
{
new Len, ServerMod[32], AdminIcq[32], ServerIp[33]
if(get_cvar_num("csf_info_mod"))
{
get_cvar_string("csf_server_mode", ServerMod, 31)
Len = format(Message, 511, "%L: %L", LANG_PLAYER, "SERVERMOD", LANG_PLAYER, ServerMod)
}
if(get_cvar_num("csf_info_ct"))
{
get_time("%H:%M:%S", CurrentTime, 31)
Len += format(Message[Len], 511 - Len, "^n%L: %s", LANG_PLAYER, "CURRENTTIME", CurrentTime)
if(get_cvar_float("mp_timelimit"))
{
new a = get_timeleft()
Len += format(Message[Len], 511 - Len, "^n%L: %d:%02d", LANG_PLAYER, "TLEFT", (a / 60), (a % 60))
}
else
{
Len += format(Message[Len], 511 - Len, "^n%L: %L", LANG_PLAYER, "TLEFT", LANG_PLAYER, "LASTR")
}
}
if(get_cvar_num("csf_info_nm"))
{
get_cvar_string("amx_nextmap", NextMap, 31)
Len += format(Message[Len], 511 - Len, "^n%L: %s", LANG_PLAYER, "NMAP", NextMap)
}
if(get_cvar_num("csf_info_ap"))
{
Len += format(Message[Len], 511 - Len, "^n%L: %d|%d", LANG_PLAYER, "APLAYERS", all, g_MaxClients)
}
if(get_cvar_num("csf_info_ai"))
{
get_cvar_string("csf_admin_icq", AdminIcq, 31)
Len += format(Message[Len], 511 - Len, "^n%L: %s", LANG_PLAYER, "ADMINICQ", AdminIcq)
}
if(get_cvar_num("csf_info_ao"))
{
new admins = 0;
if(is_user_admin(id))
admins++;
Len += format(Message[Len], 511 - Len, "^n%L: %i", LANG_PLAYER, "ADMINS", admins)
}
if(get_cvar_num("csf_info_rds"))
{
Len += format(Message[Len], 511 - Len, "^n%L: %i", LANG_PLAYER, "ROUNDS", g_round)
}
if(get_cvar_num("csf_info_si"))
{
get_user_ip(0, ServerIp, 32)
Len += format(Message[Len], 511 - Len, "^n%L: %s", LANG_PLAYER, "SERVERIP", ServerIp)
}
if(all)
{
new red, green, blue
get_hud_color(red, green, blue)
set_hudmessage(red,green,blue,get_pcvar_float(hud_x),get_pcvar_float(hud_y), get_pcvar_num(hud_efct), 1.0, 1.0)
ShowSyncHudMsg(id, g_HudText, "%s", Message)
}
}
return PLUGIN_CONTINUE
}
get_hud_color(&r, &g, &b) {
new color[20]
static red[5], green[5], blue[5]
get_pcvar_string(hud_rgb, color, charsmax(color))
parse(color, red, charsmax(red), green, charsmax(green), blue, charsmax(blue))
r = str_to_num(red)
g = str_to_num(green)
b = str_to_num(blue)
}
Отредактировал: Flash, - 27.1.2012, 20:09