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

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

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

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

Плагин инфо

Статус пользователя diablofox
сообщение 26.1.2012, 14:43
Сообщение #1


Стаж: 15 лет

Сообщений: 36
Благодарностей: 1
Полезность: 23

Проблема в плагине
Плагин показывает скоко админов онлайн не коректно ((
Показывает всё время что админ онлайн 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
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Kolian
сообщение 26.1.2012, 17:59
Сообщение #2


Стаж: 15 лет

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

А зачем? Пусть будет липа - читеров больше сдерживать будет. Прежде чем спросить, оцените все ЗА и ПРОТИВ! angel_not.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
umprex
сообщение 26.1.2012, 18:19
Сообщение #3


Иконка группы

Стаж: 16 лет
Город: Киев

Сообщений: 2909
Благодарностей: 4781
Полезность: 2197

Kolian,
рано или поздно игроки выпалят =)


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Kolian
сообщение 26.1.2012, 18:24
Сообщение #4


Стаж: 15 лет

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

Вот, заскринил на серве автора:



Плагин показывает админов 0, а не 1, как автор написал. Игроки сказали, что есть админы онлайн - кто им верит.... Может автор просто с админкой заходит всегда и поэтому 1 админ?

Вариант БЭ: только у авторра полная админка (все флаги), а у др. игроков неполные админки.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя basket
сообщение 26.1.2012, 21:09
Сообщение #5


Стаж: 15 лет

Сообщений: 165
Благодарностей: 43
Полезность: 72

тоже вопрос, как его переделать что бы инфа отображалась только мёртвым?

Отредактировал: basket, - 26.1.2012, 21:09
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя diablofox
сообщение 26.1.2012, 23:30
Сообщение #6


Стаж: 15 лет

Сообщений: 36
Благодарностей: 1
Полезность: 23

Цитата(Kolian @ 26.1.2012, 18:24) *
Вот, заскринил на серве автора:



Плагин показывает админов 0, а не 1, как автор написал. Игроки сказали, что есть админы онлайн - кто им верит.... Может автор просто с админкой заходит всегда и поэтому 1 админ?

Вариант БЭ: только у авторра полная админка (все флаги), а у др. игроков неполные админки.



Вы меня не поняли
когда нет админов пишет 0,когда заходят админы хоть 1 хоть 5 всеравно пишет 1
админки у всех полные
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Rejiser
сообщение 27.1.2012, 3:37
Сообщение #7


Стаж: 15 лет

Сообщений: 2261
Благодарностей: 1068
Полезность: 870

Видимо автора делать циклы не учили .. хотя в оригинальной версии цикли присутствуют.

Попробуй это:

Код
            new admins = 0;
            if(is_user_admin(id))
            admins++;

заменить на это:

Код
            new admins
            for(new i = 1; i <= get_maxplayers(); i++)
            {
                if(!is_user_connected(i))
                {
                    continue
                }
                else if(is_user_admin(i))
                {
                    admins++
                }
            }


Отредактировал: Rejiser, - 27.1.2012, 3:38
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Новый Ник
сообщение 27.1.2012, 9:48
Сообщение #8
Стаж: 14 лет

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

Rejiser, а кто тебя научил get_maxplayers( ) 33 раза вызывать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя diablofox
сообщение 27.1.2012, 10:03
Сообщение #9


Стаж: 15 лет

Сообщений: 36
Благодарностей: 1
Полезность: 23

Цитата(Rejiser @ 27.1.2012, 3:37) *
Видимо автора делать циклы не учили .. хотя в оригинальной версии цикли присутствуют.

Попробуй это:

Код
            new admins = 0;
            if(is_user_admin(id))
            admins++;

заменить на это:

Код
            new admins
            for(new i = 1; i <= get_maxplayers(); i++)
            {
                if(!is_user_connected(i))
                {
                    continue
                }
                else if(is_user_admin(i))
                {
                    admins++
                }
            }





Спасибо,всё работает )
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: