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

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

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

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

Блокировать смену ника

Gig142
сообщение 4.9.2013, 15:24
Сообщение #1
Стаж: 12 лет

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

Нужна помощь, надо чтобы ник можно было менять только 1 раз за карту или менять ник в течении определенного времени после входа на сервер + иммунитет для вип, amx one name не предлагать, слишком много функций в нем, если только вырезать лишнее из него(


Вот то что я пытался сделать, он работает, но в логах ошибки(

Исходник
#include <amxmodx>
#include <amxmisc>

public plugin_init() {
register_plugin("Block name change","1.0","hzkto")
set_task(5.0, "message", 1)
}

public message()
{
new arg[32]
get_msg_arg_string(3, arg, 15)
if(containi(arg,"name")!=-1)
{
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}

public client_infochanged(id)
{
new newname[32],oldname[32]
get_user_info(id, "name", newname,31)
get_user_name(id,oldname,31)
if(!is_user_connected(id) || is_user_bot(id)) return PLUGIN_CONTINUE
if(!equali(newname, oldname))
{
set_user_info(id,"name",oldname)
client_print(id , print_chat , "** Запрещено менять ник во время игры!")
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}


Вот лог
L 09/04/2013 - 20:26:52: Start of error session.
L 09/04/2013 - 20:26:52: Info (map "de_dust2_2x2") (file "addons/amxmodx/logs/error_20130904.log")
L 09/04/2013 - 20:26:52: Invalid message argument 3
L 09/04/2013 - 20:26:52: [AMXX] Run time error 10 (plugin "bbgo.amxx") (native "get_msg_arg_string") - debug not enabled!
L 09/04/2013 - 20:26:52: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).


Отредактировал: Gig142, - 4.9.2013, 15:25
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
eckoecko
сообщение 4.9.2013, 15:31
Сообщение #2
Стаж: 14 лет

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

debug поставь после плагина
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя winzh1
сообщение 4.9.2013, 15:32
Сообщение #3


Стаж: 14 лет

Сообщений: 1414
Благодарностей: 600
Полезность: 838

Пробуйте.
Код:
#include <amxmodx>
#include <amxmisc>

public plugin_init() {
register_plugin("Block name change","1.0","grankee")
register_message(get_user_msgid("SayText"), "message")
}
public message()
{
new arg[32]
get_msg_arg_string(2, arg, 31)
if(containi(arg,"name")!=-1)
{
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public client_infochanged(id)
{
new newname[32],oldname[32]
get_user_info(id, "name", newname,31)
get_user_name(id,oldname,31)
if(!is_user_connected(id) || is_user_bot(id)) return PLUGIN_CONTINUE
if(!equali(newname, oldname))
{
set_user_info(id,"name",oldname)
client_print(id , print_chat , "** Запрещено менять ник во время игры!")
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}


Установлю и настрою FreshBans, DopBan.
Писать в ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Gig142
сообщение 4.9.2013, 15:42
Сообщение #4
Стаж: 12 лет

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

Цитата(winzh1 @ 4.9.2013, 17:32) *
Пробуйте.
Код:
#include <amxmodx>
#include <amxmisc>

public plugin_init() {
register_plugin("Block name change","1.0","grankee")
register_message(get_user_msgid("SayText"), "message")
}
public message()
{
new arg[32]
get_msg_arg_string(2, arg, 31)
if(containi(arg,"name")!=-1)
{
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public client_infochanged(id)
{
new newname[32],oldname[32]
get_user_info(id, "name", newname,31)
get_user_name(id,oldname,31)
if(!is_user_connected(id) || is_user_bot(id)) return PLUGIN_CONTINUE
if(!equali(newname, oldname))
{
set_user_info(id,"name",oldname)
client_print(id , print_chat , "** Запрещено менять ник во время игры!")
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}

Прочитай внимательнее первый пост.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя winzh1
сообщение 4.9.2013, 16:14
Сообщение #5


Стаж: 14 лет

Сообщений: 1414
Благодарностей: 600
Полезность: 838

Цитата(Gig142 @ 4.9.2013, 20:42) *
Прочитай внимательнее первый пост.

Вы предложили вариант, он с ошибками, в том коде, что я дал ошибок быть не должно.


Установлю и настрою FreshBans, DopBan.
Писать в ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 4.9.2013, 17:16
Сообщение #6
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Gig142,
используя client_infochanged(id) глупо, вы можете поменять ник игрока на предыдущий, но в чате будет сообщение "change name...."
как правило, код Gig142, 1 из вариантов вашего решения.
а лого которое вы дали, нам ничего не говорит... попробуйте перевести переводчиком текст в лого.

Цитата
....get_msg_arg_string") - debug not enabled!


вы не включили debug ошибок, и причина ошибки попрежнему нам неизвестна.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Gig142
сообщение 5.9.2013, 11:30
Сообщение #7
Стаж: 12 лет

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

Цитата(Orty_Hart @ 4.9.2013, 18:16) *
Gig142,
используя client_infochanged(id) глупо, вы можете поменять ник игрока на предыдущий, но в чате будет сообщение "change name...."
как правило, код Gig142, 1 из вариантов вашего решения.
а лого которое вы дали, нам ничего не говорит... попробуйте перевести переводчиком текст в лого.



вы не включили debug ошибок, и причина ошибки попрежнему нам неизвестна.


Логи в дебаг
Код:
L 09/05/2013 - 16:34:38: Start of error session.
L 09/05/2013 - 16:34:38: Info (map "de_dust2_2x2") (file "addons/amxmodx/logs/error_20130905.log")
L 09/05/2013 - 16:34:38: Invalid message argument 3
L 09/05/2013 - 16:34:38: [AMXX] Displaying debug trace (plugin "bbgo.amxx")
L 09/05/2013 - 16:34:38: [AMXX] Run time error 10: native error (native "get_msg_arg_string")
L 09/05/2013 - 16:34:38: [AMXX] [0] bbgo.txt::message (line 12)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Gig142
сообщение 6.9.2013, 11:08
Сообщение #8
Стаж: 12 лет

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

Никто не может помочь ?(
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя winzh1
сообщение 6.9.2013, 11:18
Сообщение #9


Стаж: 14 лет

Сообщений: 1414
Благодарностей: 600
Полезность: 838

Цитата(Gig142 @ 6.9.2013, 16:08) *
Никто не может помочь ?(

Вам нужно исправить ошибку в плагине?Так я дал исправленный вариант выше.


Установлю и настрою FreshBans, DopBan.
Писать в ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 6.9.2013, 14:34
Сообщение #10
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Gig142,
Код
new arg[32]
get_msg_arg_string(3, arg, 15)


посмотрите внимательно.
1. Invalid message argument 3 - говорит что аргумен сообщения большой...
2. массив расчитан на 31 бит и используется только 15

подумайте где ошибка
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Gig142
сообщение 6.9.2013, 14:38
Сообщение #11
Стаж: 12 лет

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

Цитата(Orty_Hart @ 6.9.2013, 16:34) *
Gig142,
Код
new arg[32]
get_msg_arg_string(3, arg, 15)


посмотрите внимательно.
1. Invalid message argument 3 - говорит что аргумен сообщения большой...
2. массив расчитан на 31 бит и используется только 15

подумайте где ошибка

Правильно ?

Код:
public message()
{
new arg[31]
get_msg_arg_string(3, arg, 31)
if(containi(arg,"name")!=-1)
{
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 6.9.2013, 15:38
Сообщение #12
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Gig142,
да. но теперь у вас код такой-же, который вам дал winzh1
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Gig142
сообщение 7.9.2013, 9:35
Сообщение #13
Стаж: 12 лет

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

Цитата(Orty_Hart @ 6.9.2013, 17:38) *
Gig142,
да. но теперь у вас код такой-же, который вам дал winzh1

Ну почему такое же то когда у меня стоит set_task в plugin_init
Просто мне надо отсрочить работу функции блокировки секунд на 10 после входа игрока, как это сделать ?

Отредактировал: Gig142, - 7.9.2013, 9:35
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 7.9.2013, 13:05
Сообщение #14
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Gig142,
а какой в этом смысл??
если игроку запретили менять ник, так запретили
зачем эти 10сек. и т.д.?

знаете, мне вас не понять...

Скрытый текст
Код
#include <amxmodx>

new gAct[33]

public plugin_init()
{
    register_plugin("Block name change","1.0","grankee")
    register_message(get_user_msgid("SayText"), "message")
}

public client_putinserver(id)
    set_task(10.0, "changename", id)

public client_disconnect(id)
    gAct[id] = 0

public changename(id)
    gAct[id] = 1

public message()
{
    new arg[32], name[32]
    get_msg_arg_string(2, arg, 31)
    get_msg_arg_string(3, name, 31)
    
    new id = find_player("a", name)
    
    if(is_user_connected(id) && gAct[id] == 1 && containi(arg, "name")!= -1)
        return PLUGIN_HANDLED
    return PLUGIN_CONTINUE
}

public client_infochanged(id)
{
    if(is_user_connected(id) && !is_user_bot(id) && gAct[id] == 1)
    {
        new newname[32],oldname[32]
        
        get_user_info(id, "name", newname,31)
        get_user_name(id,oldname,31)
        
        if(!equali(newname, oldname))
        {
            set_user_info(id,"name",oldname)
            client_print(id , print_chat , "** Запрещено менять ник во время игры!")
            return PLUGIN_HANDLED
        }
    }
    return PLUGIN_CONTINUE
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Gig142
сообщение 8.9.2013, 6:19
Сообщение #15
Стаж: 12 лет

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

Цитата(Orty_Hart @ 7.9.2013, 15:05) *
Gig142,
а какой в этом смысл??
если игроку запретили менять ник, так запретили
зачем эти 10сек. и т.д.?

знаете, мне вас не понять...

Скрытый текст
Код
#include <amxmodx>

new gAct[33]

public plugin_init()
{
    register_plugin("Block name change","1.0","grankee")
    register_message(get_user_msgid("SayText"), "message")
}

public client_putinserver(id)
    set_task(10.0, "changename", id)

public client_disconnect(id)
    gAct[id] = 0

public changename(id)
    gAct[id] = 1

public message()
{
    new arg[32], name[32]
    get_msg_arg_string(2, arg, 31)
    get_msg_arg_string(3, name, 31)
    
    new id = find_player("a", name)
    
    if(is_user_connected(id) && gAct[id] == 1 && containi(arg, "name")!= -1)
        return PLUGIN_HANDLED
    return PLUGIN_CONTINUE
}

public client_infochanged(id)
{
    if(is_user_connected(id) && !is_user_bot(id) && gAct[id] == 1)
    {
        new newname[32],oldname[32]
        
        get_user_info(id, "name", newname,31)
        get_user_name(id,oldname,31)
        
        if(!equali(newname, oldname))
        {
            set_user_info(id,"name",oldname)
            client_print(id , print_chat , "** Запрещено менять ник во время игры!")
            return PLUGIN_HANDLED
        }
    }
    return PLUGIN_CONTINUE
}

Спасибо за помощь:*
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Gig142
сообщение 8.9.2013, 7:01
Сообщение #16
Стаж: 12 лет

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

Цитата(Orty_Hart @ 7.9.2013, 15:05) *
Gig142,
а какой в этом смысл??
если игроку запретили менять ник, так запретили
зачем эти 10сек. и т.д.?

знаете, мне вас не понять...

Скрытый текст
Код
#include <amxmodx>

new gAct[33]

public plugin_init()
{
    register_plugin("Block name change","1.0","grankee")
    register_message(get_user_msgid("SayText"), "message")
}

public client_putinserver(id)
    set_task(10.0, "changename", id)

public client_disconnect(id)
    gAct[id] = 0

public changename(id)
    gAct[id] = 1

public message()
{
    new arg[32], name[32]
    get_msg_arg_string(2, arg, 31)
    get_msg_arg_string(3, name, 31)
    
    new id = find_player("a", name)
    
    if(is_user_connected(id) && gAct[id] == 1 && containi(arg, "name")!= -1)
        return PLUGIN_HANDLED
    return PLUGIN_CONTINUE
}

public client_infochanged(id)
{
    if(is_user_connected(id) && !is_user_bot(id) && gAct[id] == 1)
    {
        new newname[32],oldname[32]
        
        get_user_info(id, "name", newname,31)
        get_user_name(id,oldname,31)
        
        if(!equali(newname, oldname))
        {
            set_user_info(id,"name",oldname)
            client_print(id , print_chat , "** Запрещено менять ник во время игры!")
            return PLUGIN_HANDLED
        }
    }
    return PLUGIN_CONTINUE
}

Блин немного не так( можно сделать так чтобы блокировало после 10 секунд после входа игрока на сервер, именно игрока, а не после 10 секунд после смены карты или включения сервера )

Отредактировал: Gig142, - 8.9.2013, 7:04
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 8.9.2013, 13:01
Сообщение #17
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Gig142,
По суте, если идет смена карты, игрок "перезаходит" на сервер. Также массивы при смене карты сбрасываются.
То что вы пытаетесь сделать просто невозможно.

а плагин, блокирует "Именно игрока" после его входа.
попросите друга помочь себе в тесте.

зайдите на сервер, попробуйте поменять ник... Меняет? Ждем ~10сек. и пробуем снова? Нет?? Не меняет?? пусть зайдет ваш друг.... У него можно будет менять а у вас уже нет...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: