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

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

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

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

> Информационная доска

Данный раздел предназначен для обсуждения, а также решения технических проблем связанных с серверной частью. Обсуждения касательно игровых клиентов ведутся здесь.

1. Во время создания новой темы аккуратно оформляйте её, не допускайте грамматических ошибок.
2. Описывая проблему старайтесь, как можно больше рассказать о ней, а так же о действиях с сервером после которых она возникла, по возможности подкрепите информацию логами.
3. Если вопрос касается проблемы в работе сервера, то обязательно прикрепляйте список плагинов (введите в консоли сервера: meta list и amxx plugins), настройки server.cfg, логи. Так же указывайте операционную систему, версию HLDS (введите к консоли сервера: version) и где хостится сервер.

Длинную информацию скрывайте под спойлер.

Amx_gagip прикрутить к Amxmodmenu

, Реально ли?! Возможно ли?! Как сделать?!)))))
Статус пользователя ziumer
сообщение 17.3.2009, 19:38
Сообщение #1


Стаж: 18 лет

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

Ребят, а можно как-нить, чтоб плагин amx_gagip работал через amxmodmenu или хотяб через отдельную менюшку, что-то типа amx_gagmenu.
Подскажите, как осуществить?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Makzz
сообщение 17.3.2009, 19:46
Сообщение #2


Стаж: 18 лет

Сообщений: 2198
Благодарностей: 1365
Полезность: 1080

Давай исходник amx_gagip, посмотрим что сможем сделать....
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
MastaMan
сообщение 17.3.2009, 19:47
Сообщение #3
Стаж: 17 лет

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

Можно сделать в файле clcmds.ini, прописать к примеру так

Код
"Заткнуть рот"             "amx_gag #%userid% abc 5"        "bd"    "u"


#%userid% - айдишка игрока.
Я не разбирался как работает плагин, попробуешь сам, уже вписать настройки гага, главное что бы ты уловил принцип...


Эта команда будут отображаться в amxmodmenu---Клиентские команды

Отредактировал: MastaMan, - 17.3.2009, 19:51
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ziumer
сообщение 18.3.2009, 9:57
Сообщение #4


Стаж: 18 лет

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

Прикрепил исходник плагина.



Цитата(MastaMan @ 17.3.2009, 20:47) *
Можно сделать в файле clcmds.ini

Пробовал, не очень получилось, этот плагин гагит игроков не по юзер ID, а именно по по ИП, т.е. amx_gagip 127.0.0.1
И насколько я могу понять, там нету времени гага, т.е. если гаг, то сразу перманентный.
Можт по другому как прописать?
Прикрепленные файлы:
Прикрепленный файл  gagip.zip ( 1,24 килобайт ) Кол-во скачиваний: 20
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя aqua
сообщение 18.3.2009, 10:01
Сообщение #5


Стаж: 17 лет

Сообщений: 487
Благодарностей: 121
Полезность: 141

Код
"Заткнуть рот"             "amx_gagip #%userip%"        "bd"    "u"


попробуй так...


!
Запрет на ответ в темах: навсегда
Аккаунт пользователя заблокирован до: 6.4.2739916, 20:40
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ziumer
сообщение 18.3.2009, 13:01
Сообщение #6


Стаж: 18 лет

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

Цитата(aqua @ 18.3.2009, 11:01) *
Код
"Заткнуть рот"             "amx_gagip #%userip%"        "bd"    "u"


попробуй так...


Пробовал, пишет, что Ип добавился, но в чате всё равно могут писать..
А в уонфиге загагеных отображается не Ип, как должно быть, а
Код
#%userip%


Отредактировал: ziumer, - 18.3.2009, 13:02
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Makzz
сообщение 19.3.2009, 21:25
Сообщение #7


Стаж: 18 лет

Сообщений: 2198
Благодарностей: 1365
Полезность: 1080

Вот попробуйте:
Код
Удалено


Ток я не тестировал!
у меня проблемы с дровишками на видео и я не могу запустить КС :\

Отредактировал: Makzz, - 10.5.2009, 19:44
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ziumer
сообщение 19.3.2009, 23:10
Сообщение #8


Стаж: 18 лет

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

Не работает менюшка к сожалению sad.gif Ниче не пишет, типа неизвестная команда и т.д. такого нету, просто не выводит меню. И при компиляции ошибки пишет..
Прикрепленные файлы:
Прикрепленное изображение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Makzz
сообщение 20.3.2009, 15:43
Сообщение #9


Стаж: 18 лет

Сообщений: 2198
Благодарностей: 1365
Полезность: 1080

А так:
Код
Удалено


Отредактировал: Makzz, - 10.5.2009, 19:45
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя aqua
сообщение 20.3.2009, 15:45
Сообщение #10


Стаж: 17 лет

Сообщений: 487
Благодарностей: 121
Полезность: 141

Цитата
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team

Header size: 656 bytes
Code size: 9880 bytes
Data size: 72080 bytes
Stack/heap size: 16384 bytes; max. usage is unknown, due to recursion
Total requirements: 99000 bytes
Done.


норм все, тестируйте


!
Запрет на ответ в темах: навсегда
Аккаунт пользователя заблокирован до: 6.4.2739916, 20:40
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ziumer
сообщение 21.3.2009, 0:08
Сообщение #11


Стаж: 18 лет

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

Makzz Не работает опять, к сожалению sad.gif Компилится нормально, но потом когда меню гага запрашиваю, грит, что мол неизвестная команда..
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Makzz
сообщение 21.3.2009, 14:10
Сообщение #12


Стаж: 18 лет

Сообщений: 2198
Благодарностей: 1365
Полезность: 1080

Я блин совершенно не могу понять принцип работы плагина....
он чёт записывает и ...... х3......

amx_gagmenu не известная команда?
БЫТЬ НЕ МОЖЕТ ТАКОГО!

Ща дрова починю и буду тестить :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Makzz
сообщение 22.3.2009, 18:49
Сообщение #13


Стаж: 18 лет

Сообщений: 2198
Благодарностей: 1365
Полезность: 1080

ну вроде так:

Код
#include <amxmodx>
#include <amxmisc>

new IPs[50][32]
new ipgaged[64] = "addons/amxmodx/configs/ipgaged.cfg"
new logs[200][70]
new log_file[64] = "addons/amxmodx/logs/ipgaged.log"

new g_menuPosition[33]
new g_menuPlayers[33][32]
new g_menuPlayersNum[33]
new g_menuOption[33]

public plugin_init()
{
    register_plugin("IP gag","0.2","Mak-Di")
    register_concmd("amx_gagip","cmdgag",ADMIN_LEVEL_A,"<IP address> - Gag this IP")
    register_concmd("amx_gaglist","cmdgagl",ADMIN_LEVEL_A," - Show gaged IP addresses")
    register_concmd("amx_ungagip","cmdungagip",ADMIN_LEVEL_A,"<IP address>  - Ungaged IP address")
    register_concmd("amx_gaglog","cmdgaglog",ADMIN_LEVEL_A," - Show log file")
    register_clcmd("say","chek")
    register_clcmd("say_team","chek")
    
    register_clcmd("amx_gagmenu", "cmdGagMenu", ADMIN_KICK, "- displays gag menu")
    register_menucmd(register_menuid("Gag Menu"), 1023, "actionGagMenu")
    
    read_list()
}

public cmdgaglog(id)
{
    if (!(get_user_flags(id)&ADMIN_LEVEL_A)) return PLUGIN_CONTINUE
    read_logfile()
    client_print( id , print_notify , "------------- Log file -------------" )
    for(new i=0;i<200;i++)
    if(!equal(logs[i],"",0))
    {
        client_print( id , print_notify ,logs[i])
    }
    return PLUGIN_HANDLED    
}


public cmdgag(id)
{
    if (!(get_user_flags(id)&ADMIN_LEVEL_A)) return PLUGIN_CONTINUE  
    new arg[32]
    read_argv(1, arg, 31)
    if(equal(arg,"",0))
    {
        client_print(id,print_notify,"Enter IP address, please")
        return PLUGIN_HANDLED
    }
    for(new i=0;i<50;i++)
    if(equal(IPs[i],arg,0))
    {
        client_print(id,print_notify,"This IP already gaged")
        return PLUGIN_HANDLED
    }
    for(new i=0;i<50;i++)
    if(equal(IPs[i],"",0))
    {
        IPs[i]=arg
        client_print(id,print_notify,"IP: %s was gaged",arg)
        add_log(id,arg)
        delete_file(ipgaged)
        for(new j=0;j<50;j++)
        if(!equal(IPs[j],"",0))
        {
            write_file(ipgaged,IPs[j],-1)
        }
        return PLUGIN_HANDLED
    }
    return PLUGIN_HANDLED
}

public cmdgagl(id)
{
    if (!(get_user_flags(id)&ADMIN_LEVEL_A)) return PLUGIN_CONTINUE
    client_print( id , print_notify , "------------- Gaged IP addresses -------------" )
    for(new i=0;i<50;i++)
    if(!equal(IPs[i],"",0))
    {
        client_print( id , print_notify ,IPs[i])
    }
    return PLUGIN_HANDLED    
}

public cmdungagip(id)
{
    if (!(get_user_flags(id)&ADMIN_LEVEL_A)) return PLUGIN_CONTINUE
    new arg[32]
    read_argv(1, arg, 31)
    if(equal(arg,"",0))
    {
        client_print(id,print_notify,"Enter IP address, please")
        return PLUGIN_HANDLED
    }
    for(new i=0;i<50;i++)
    if(equal(IPs[i],arg,0))
    {
        client_print( id , print_notify ,"IP: %s was removed",arg)
        IPs[i]=""
        rm_log(id,arg)
        delete_file(ipgaged)
        for(new j=0;j<50;j++)
        if(!equal(IPs[j],"",0))
        {
            write_file(ipgaged,IPs[j],-1)
        }
        return PLUGIN_HANDLED
    }
    client_print( id , print_notify ,"IP: %s not found",arg)
    return PLUGIN_HANDLED    
}

public chek(id)
{
    new userip[32]
    get_user_ip(id,userip,31,-1)
    for(new i=0;i<50;i++)
    if(containi(userip,IPs[i])!=-1)
    {
        client_print( id , print_chat ,"Sorry, you gaged. RespecT")
        return PLUGIN_HANDLED
    }    

    return PLUGIN_CONTINUE

}

public read_list()
{
    new index=0, line[32]
    if (file_exists(ipgaged))
    {
        new length
        new i
        while(read_file(ipgaged,index,line,32,length))
        {
            for(i = 0; line[i]; i++) if(line[i] == '^r' || line[i] =='^n') line[i] = 0
            if(line[0]) IPs[index++] = line
        }
    }
    else log_message("[AMX] ipgaged file not found")
    return PLUGIN_CONTINUE
}

stock add_log(id,const ip[])
{
    new uname[31],Info[70],Time[25]
    get_user_name(id,uname,31)
    get_time("%m/%d/%Y - %H:%M",Time,25)
    format(Info,70,"Admin %s added IP: %s %s",uname,ip,Time)
    write_file(log_file,Info,-1)
    return PLUGIN_CONTINUE
}

stock rm_log(id,const ip[])
{
    new uname[31],Info[70],Time[25]
    get_user_name(id,uname,31)
    get_time("%m/%d/%Y - %H:%M",Time,25)
    format(Info,70,"Admin %s removed IP: %s %s",uname,ip,Time)
    write_file(log_file,Info,-1)
    return PLUGIN_CONTINUE
}

public read_logfile()
{
    new index=0, line[70]
    if (file_exists(log_file))
    {
        new length
        new i
        while(read_file(log_file,index,line,70,length))
        {
            for(i = 0; line[i]; i++) if(line[i] == '^r' || line[i] =='^n') line[i] = 0
            if(line[0]) logs[index++] = line
        }
    }
    else log_message("[AMX] log file not found")
    return PLUGIN_CONTINUE
}

public cmdGagMenu(id, level, cid)
{
    if (!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED

    g_menuOption[id] = 0
    
    displayGagMenu(id, g_menuPosition[id] = 0)

    return PLUGIN_HANDLED
}

displayGagMenu(id, pos)
{
    if (pos < 0)
        return

    get_players(g_menuPlayers[id], g_menuPlayersNum[id])

    new menuBody[512]
    new b = 0
    new i
    new name[32]
    new start = pos * 8

    if (start >= g_menuPlayersNum[id])
        start = pos = g_menuPosition[id] = 0

    new len = format(menuBody, 511, "\yPlayers Menu:\R%d/%d^n\w^n", (pos+1), (g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0)))
    new end = start + 8
    new keys = MENU_KEY_0

    if (end > g_menuPlayersNum[id])
        end = g_menuPlayersNum[id]

    for (new a = start; a < end; ++a)
    {
        i = g_menuPlayers[id][a]
        get_user_name(i, name, 31)

        if (access(i, ADMIN_IMMUNITY) && i != id)
        {
            ++b
            len += format(menuBody[len], 511-len, "#. %s^n", name)
        } else {
            keys |= (1<<b)
            len += format(menuBody[len], 511-len, "%d. %s^n", ++b, name)
        }
    }

    if (end != g_menuPlayersNum[id])
    {
        format(menuBody[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
        keys |= MENU_KEY_9
    }
    else
        format(menuBody[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT")

    show_menu(id, keys, menuBody, -1, "Gag Menu")
}

public actionGagMenu(id, key)
{
    switch (key)
    {
        case 8: displayGagMenu(id, ++g_menuPosition[id])
        case 9: displayGagMenu(id, --g_menuPosition[id])
        default:
        {
            new player = g_menuPlayers[id][g_menuPosition[id] * 8 + key]
            new authid[32], authid2[32], name[32], name2[32]
            
            get_user_authid(id, authid, 31)
            get_user_authid(player, authid2, 31)
            get_user_name(id, name, 31)
            get_user_name(player, name2, 31)
            
            new userid2 = get_user_userid(player)
            log_amx("Gag: ^"%s<%d><%s><>^" gaged ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, name2, userid2, authid2)
            
            switch (get_cvar_num("amx_show_activity"))
            {
                case 2: client_print(0, print_chat, "ADMIN %s: gag %s", name, name2)
                case 1: client_print(0, print_chat, "ADMIN: gag %s", name2)
            }
            
            server_cmd("amx_gag #%d", userid2)
            server_exec()
            displayGagMenu(id, g_menuPosition[id])
        }
    }
    return PLUGIN_HANDLED
}


Отредактировал: Makzz, - 2.5.2009, 12:48
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ziumer
сообщение 23.3.2009, 19:54
Сообщение #14


Стаж: 18 лет

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

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