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

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

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

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

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

Статус пользователя s0u1^
сообщение 13.2.2009, 6:51
Сообщение #1
Стаж: 17 лет

Сообщений: 112
Благодарностей: 11
Полезность: 10

всем привет!
я переделал плагин GHW_connect под свой сервак, но не могу сделать чтобы ip видели толькоадмины с определенным флагом(например b) ubeysya.gif
вот код:
Код
#include <amxmodx>
#include <amxmisc>
#include <geoip>

#define SHOW_COLOR        1
#define SHOW_CONNECT        2
#define SHOW_DISCONNECT        4
#define PLAY_SOUND_CONNECT    8
#define PLAY_SOUND_DISCONNECT    16

new display_type_pcvar

new name[33][32]
new authid[33][32]
new country[33][46]
new ip[33][32]

new connect_soundfile[64]
new disconnect_soundfile[64]

new saytext_msgid

public plugin_init()
{
    register_plugin("GHW Connect Messages","1.0","GHW_Chronic")
    display_type_pcvar = register_cvar("cm_flags","31")
    register_cvar("cm_connect_string","[AMXX] %name [%ip] has connected (%country).")
    register_cvar("cm_disconnect_string","[AMXX] %name [%ip] has disconnected (%country).")

    saytext_msgid = get_user_msgid("SayText")
}

public client_putinserver(id)
{
    if(!is_user_bot(id))
    {
        get_client_info(id)

        new display_type = get_pcvar_num(display_type_pcvar)
        if(display_type & SHOW_CONNECT)
        {
            new string[200]
            get_cvar_string("cm_connect_string",string,199)
            format(string,199,"^x01%s",string)

            if(display_type & SHOW_COLOR)
            {
                new holder[46]

                format(holder,45,"^x04%s^x01",name[id])
                replace(string,199,"%name",holder)

                format(holder,45,"^x04%s^x01",authid[id])
                replace(string,199,"%steamid",holder)

                format(holder,45,"^x04%s^x01",country[id])
                replace(string,199,"%country",holder)

                format(holder,45,"^x04%s^x01",ip[id])
                replace(string,199,"%ip",holder)
            }
            else
            {
                replace(string,199,"%name",name[id])
                replace(string,199,"%steamid",authid[id])
                replace(string,199,"%country",country[id])
                replace(string,199,"%ip",ip[id])
            }

            new num, players[32], player
            get_players(players,num,"ch")
            for(new i=0;i<num;i++)
            {
                player = players[i]

                message_begin(MSG_ONE,saytext_msgid,{0,0,0},player)
                write_byte(player)
                write_string(string)
                message_end()

                if(display_type & PLAY_SOUND_CONNECT)
                {
                    client_cmd(player,"spk %s",connect_soundfile)
                }
            }
        }
    }
}

public get_client_info(id)
{
    get_user_name(id,name[id],31)
    get_user_authid(id,authid[id],31)

    get_user_ip(id,ip[id],31,1)
    geoip_country(ip[id],country[id])
    if(equal(country[id],"error"))
    {
        if(contain(ip[id],"192.168.")==0)
        {
            country[id] = "AllianceTelecom"
        }
        if(contain(ip[id],"172.16.")==0)
        {
            country[id] = "AllianceTelecom"
        }
        if(contain(ip[id],"172.13.")==0)
        {
            country[id] = "AllianceTelecom"
        }
        if(contain(ip[id],"172.25.")==0)
        {
            country[id] = "AllianceTelecom"
        }
        if(contain(ip[id],"172.26.")==0)
        {
            country[id] = "AllianceTelecom"
        }
        if(contain(ip[id],"172.27.")==0)
        {
            country[id] = "AllianceTelecom"
        }
        if(contain(ip[id],"172.23.")==0)
        {
            country[id] = "AllianceTelecom"
        }
        if(contain(ip[id],"172.24.")==0)
        {
            country[id] = "AllianceTelecom"
        }
        if(contain(ip[id],"172.15.")==0)
        {
            country[id] = "AllianceTelecom"
        }
        if(contain(ip[id],"172.17.")==0)
        {
            country[id] = "VladLink"
        }
        if(contain(ip[id],"172.31.")==0)
        {
            country[id] = "VladLink"
        }
    }
}

public client_infochanged(id)
{
    if(!is_user_bot(id))
    {
        get_user_info(id,"name",name[id],31)
    }
}

public client_disconnect(id)
{
    if(!is_user_bot(id))
    {
        new display_type = get_pcvar_num(display_type_pcvar)
        if(display_type & SHOW_DISCONNECT)
        {
            new string[200]
            get_cvar_string("cm_disconnect_string",string,199)
            format(string,199,"^x01%s",string)

            if(display_type & SHOW_COLOR)
            {
                new holder[46]

                format(holder,45,"^x04%s^x01",name[id])
                replace(string,199,"%name",holder)

                format(holder,45,"^x04%s^x01",authid[id])
                replace(string,199,"%steamid",holder)

                format(holder,45,"^x04%s^x01",country[id])
                replace(string,199,"%country",holder)

                format(holder,45,"^x04%s^x01",ip[id])
                replace(string,199,"%ip",holder)
            }
            else
            {
                replace(string,199,"%name",name[id])
                replace(string,199,"%steamid",authid[id])
                replace(string,199,"%country",country[id])
                replace(string,199,"%ip",ip[id])
            }

            new num, players[32], player
            get_players(players,num,"ch")
            for(new i=0;i<num;i++)
            {
                player = players[i]

                message_begin(MSG_ONE,saytext_msgid,{0,0,0},player)
                write_byte(player)
                write_string(string)
                message_end()

                if(display_type & PLAY_SOUND_DISCONNECT)
                {
                    client_cmd(player,"spk %s",disconnect_soundfile)
                }
            }
        }
    }
}

с меня + dirol.gif

Отредактировал: s0u1^, - 13.2.2009, 6:56
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя jas0n
сообщение 13.2.2009, 11:01
Сообщение #2


Стаж: 19 лет

Сообщений: 878
Благодарностей: 385
Полезность: 688

В функциях client_disconnect ( id ) и client_putinserver ( id )
После
Код
player = players[i]

добавь
Код
if ( !access ( player, ADMIN_RESERVATION ) ) return;

и попробуй, но это будет показывать сообщение только админам с флагом "b". Или тебе нужно скрыть от простых пользователей только ip?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя s0u1^
сообщение 13.2.2009, 11:14
Сообщение #3
Стаж: 17 лет

Сообщений: 112
Благодарностей: 11
Полезность: 10

нужно скрыть только ip
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя jas0n
сообщение 13.2.2009, 12:23
Сообщение #4


Стаж: 19 лет

Сообщений: 878
Благодарностей: 385
Полезность: 688

Попробуй так, устроит или нет и не будет ли ошибок вообще. Это по-моему самый простой способ, чтоб не переписывать много кода.
Ссылка
з.ы.: мне форум говорит "Использовано места 8.72 мегабайт из 4.88 мегабайт" (: поэтому ссылка на файлообменник.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя s0u1^
сообщение 13.2.2009, 12:44
Сообщение #5
Стаж: 17 лет

Сообщений: 112
Благодарностей: 11
Полезность: 10

спс, только теперь он пишет вместо ip [hidden], нельзя сделать чтобы он просто не показывался?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя jas0n
сообщение 13.2.2009, 12:55
Сообщение #6


Стаж: 19 лет

Сообщений: 878
Благодарностей: 385
Полезность: 688

Переделочка...
Тут только если ты используеш цветные сообщения, если одноцветные, то ip будет показывать всем. Я этот момент не трогал, т.к. думаю, что ты используеш только кольоровi сообщения.
Проверяй, там с цветами ничего не напортачилось?

Переместите тему в подходящий для нее раздел!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя s0u1^
сообщение 14.2.2009, 3:35
Сообщение #7
Стаж: 17 лет

Сообщений: 112
Благодарностей: 11
Полезность: 10

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