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

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

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

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

Admin Player Name - Смена ника игрока by Sutar

, Смена ника игрока
Статус пользователя Orty_Hart
сообщение 14.8.2013, 11:24
Сообщение #1
Стаж: 14 лет

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

Здравствуйте, я вот решил убрать с сервера свой плагин, но чтоб скрипт просто так не пропадал, возможно кому-то понадобиться такой скрипт
Данный скрипт позволяет Администраторам менять ник игрока
Скрипт написан без ошибок и с полной фиксацией...

Использование плагина:
Цитата
Для вызова меню используйте amx_namemenu
После выбираем игрока который нам необходим
Потом у нас появляется строчка чтоб писать вверху (как say)
туда пишем ник игрока и Enter ник игрока меняется)))


Настройки плагина:
Цитата
Можно изменить уровень доступа Администратора
найдите строчку в 2х местах

Код
if(!(get_user_flags(id) & ADMIN_SLAY))


и замените ADMIN_SLAY на свой уровень доступа

Стандартные уровни доступа
Код
#define ADMIN_ALL        0    //Everyone
#define ADMIN_IMMUNITY        1    //Flag "a", immunity
#define ADMIN_RESERVATION    2    //Flag "b", reservation
#define ADMIN_KICK        4    //Flag "c", kick
#define ADMIN_BAN        8    //Flag "d", ban
#define ADMIN_SLAY        16    //Flag "e", slay
#define ADMIN_MAP        32    //Flag "f", map change
#define ADMIN_CVAR        64    //Flag "g", cvar change
#define ADMIN_CFG        128    //Flag "h", config execution
#define ADMIN_CHAT        256    //Flag "i", chat
#define ADMIN_VOTE        512    //Flag "j", vote
#define ADMIN_PASSWORD        1024    //Flag "k", sv_password
#define ADMIN_RCON        2048    //Flag "l", rcon access
#define ADMIN_LEVEL_A        4096    //Flag "m", custom
#define ADMIN_LEVEL_B        8192    //Flag "n", custom
#define ADMIN_LEVEL_C        16384    //Flag "o", custom
#define ADMIN_LEVEL_D        32768    //Flag "p", custom
#define ADMIN_LEVEL_E        65536    //Flag "q", custom
#define ADMIN_LEVEL_F        131072    //Flag "r", custom
#define ADMIN_LEVEL_G        262144    //Flag "s", custom
#define ADMIN_LEVEL_H        524288    //Flag "t", custom
#define ADMIN_MENU        1048576    //Flag "u", menus
#define ADMIN_ADMIN        16777216    //Flag "y", default admin
#define ADMIN_USER        33554432    //Flag "z", default user


Установка плагина:
Цитата
1. Создайте текстовый документ в папке ...\cstrike\addons\amxmodx\scripting в формате .sma
2. Скопируйте исходник кода в файл и сохраните в кодировке UTF-8 без BOM
3. Перенесите файл который вы создали на файл compile.exe
4. После компиляции скопируйте новый, вами скомпилированный файл с ...\cstrike\addons\amxmodx\scripting\compiled в ...\cstrike\addons\amxmodx\plugins
5. После подключите плагин в ...\cstrike\addons\amxmodx\configs\plugins.ini


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

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

public plugin_init()
{
    register_plugin("Admin Player Name", "1.5", "Sutar")
    
    register_clcmd("amx_namemenu", "cmdNameMenu")
    register_clcmd("plname", "cmdNameChange")
    
    register_menucmd(register_menuid("Player Name Menu"), 1023, "actionPlayerNameMenu")
}

public cmdNameMenu(id)
{
    if(!(get_user_flags(id) & ADMIN_SLAY))
    {
        client_print(id, print_chat, "* Команда доступна только для Админов!")
        return PLUGIN_HANDLED
    }
    
    displayNameMenu(id, g_menuPosition[id] = 0)
    return PLUGIN_HANDLED
}

public displayNameMenu(id, pos)
{
    if(pos < 0)
        return PLUGIN_HANDLED
    
    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, "\yМеню смены ника игрока\Rст. %d из %d\w^n^n", pos + 1, (g_menuPlayersNum[id] / 8 + ((g_menuPlayersNum[id] % 8) ? 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(get_user_flags(i) & ADMIN_IMMUNITY)
            len += format(menuBody[len], 511-len, "\d%d. %s *^n", ++b, name)
        else
        {
            keys |= (1<<b)
            
            if(is_user_admin(i))
                len += format(menuBody[len], 511-len, "%d. %s *^n", ++b, name)
            else
                len += format(menuBody[len], 511-len, "%d. %s^n", ++b, name)
        }
    }

    if(end != g_menuPlayersNum[id])
    {
        keys |= MENU_KEY_9
        format(menuBody[len], 511-len, "^n9. Дальше...^n0. %s", pos ? "Назад" : "Выход")
    }
    else
        format(menuBody[len], 511-len, "^n0. %s", pos ? "Назад" : "Выход")
    show_menu(id, keys, menuBody, -1, "Player Name Menu")
}

public actionPlayerNameMenu(id, key)
{
    switch(key)
    {
        case 8: displayNameMenu(id, ++g_menuPosition[id])
        case 9: displayNameMenu(id, --g_menuPosition[id])
        default:
        {
            g_idPlayer[id] = g_menuPlayers[id][g_menuPosition[id] * 8 + key]
            client_cmd(id, "messagemode plname")
        }
    }
    return PLUGIN_HANDLED
}

public cmdNameChange(id)
{
    if(!(get_user_flags(id) & ADMIN_SLAY))
    {
        client_print(id, print_chat, "* Команда доступна только для Админов!")
        return PLUGIN_HANDLED
    }
    
    if(!g_idPlayer[id])
    {
        client_print(id, print_chat, "* Функцию необходимы использовать через меню.")
        return PLUGIN_HANDLED
    }
    
    new g_adminname[15], g_plname[32], g_plnewname[32]
    
    get_user_name(id, g_adminname, 31)
    get_user_name(g_idPlayer[id], g_plname, 31)
    read_argv(1, g_plnewname, 31)
    
    if(equal(g_plname, g_plnewname))
    {
        client_print(id, print_chat, "* Вам необходимо указать другой ник.")
        client_cmd(id, "messagemode plname")
        return PLUGIN_HANDLED
    }
    
    client_cmd(g_idPlayer[id], "name ^"%s^"", g_plnewname)
    g_idPlayer[id] = 0
    
    client_print(0, print_chat, "Администратор %s сменил ник игрока %s на %s", g_adminname, g_plname, g_plnewname)
    return PLUGIN_HANDLED
}


Отредактировал: Orty_Hart, - 18.9.2013, 20:30
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 6 раз
   Цитировать сообщение
Статус пользователя panikajo
сообщение 22.8.2013, 10:11
Сообщение #2
Стаж: 12 лет

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

а зачем тогда надо amx_nick??
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 22.8.2013, 10:38
Сообщение #3
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

amx_nick - команда, а плагин предоставляет меню) Другой способ, кому-то будет удобнее.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 24.8.2013, 19:27
Сообщение #4
Стаж: 14 лет

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

panikajo,
тут по команде amx_namemenu открывается меню где есть все игроки
после выбора игрока вводим имя на которое меняем ник (как писать в say) после Entar ник меняется на который мы написал)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
urpok
сообщение 15.10.2013, 10:43
Сообщение #5
Стаж: 13 лет

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

Сори за поднятую тему...
Этот же плаг, так же не сможет поменять ник игроку, если у него стоит только чтение на config.cfg, правильно ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Serj
сообщение 15.10.2013, 10:52
Сообщение #6


Стаж: 15 лет

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

HeBuguMka, сможет, но если игрок перезапустит клиент или подгрузит конфиг, то ник восстановится из конфига.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Tr1sT
сообщение 15.10.2013, 10:52
Сообщение #7
Стаж: 16 лет
Город: localhost

Сообщений: 1299
Благодарностей: 683
Полезность: 1021

Цитата(HeBuguMka @ 15.10.2013, 11:43) *
Сори за поднятую тему...
Этот же плаг, так же не сможет поменять ник игроку, если у него стоит только чтение на config.cfg, правильно ?

Ник игрока поменяется, но когда игрок заново зайдет в свою кс, ник будет старый.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
urpok
сообщение 15.10.2013, 12:28
Сообщение #8
Стаж: 13 лет

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

Проверил, не меняет. =(
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
serfreeman1337
сообщение 28.3.2014, 18:35
Сообщение #9
Стаж: 13 лет

Сообщений: 912
Благодарности: выкл.

Меняем:
Код:
client_cmd(g_idPlayer[id], "name ^"%s^"", g_plnewname)

на:
Код:
set_user_info(g_idPlayer[id],"name",g_plnewname)

И всё прекрасно меняется.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Castiel
сообщение 25.12.2014, 13:21
Сообщение #10


Стаж: 12 лет
Город: Херсон

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

Пытался компелировать пишет ошибку:
Скрытый текст
Ошибка компиляции плагина! (использовался компилятор "AMX Mod X 1.8.2")

Проверьте ошибки ниже:


Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2013 ITB CompuPhase, AMX Mod X Team

Admin_Player_Name.sma(27) : error 010: invalid function or declaration
Admin_Player_Name.sma(36) : error 010: invalid function or declaration
amxx-1.8.2/include/amxconst.inc(19) : warning 201: redefinition of constant/macro (symbol "ADMIN_IMMUNITY")
amxx-1.8.2/include/amxconst.inc(20) : warning 201: redefinition of constant/macro (symbol "ADMIN_RESERVATION")
amxx-1.8.2/include/amxconst.inc(21) : warning 201: redefinition of constant/macro (symbol "ADMIN_KICK")
amxx-1.8.2/include/amxconst.inc(22) : warning 201: redefinition of constant/macro (symbol "ADMIN_BAN")
amxx-1.8.2/include/amxconst.inc(23) : warning 201: redefinition of constant/macro (symbol "ADMIN_SLAY")
amxx-1.8.2/include/amxconst.inc(24) : warning 201: redefinition of constant/macro (symbol "ADMIN_MAP")
amxx-1.8.2/include/amxconst.inc(25) : warning 201: redefinition of constant/macro (symbol "ADMIN_CVAR")
amxx-1.8.2/include/amxconst.inc(26) : warning 201: redefinition of constant/macro (symbol "ADMIN_CFG")
amxx-1.8.2/include/amxconst.inc(27) : warning 201: redefinition of constant/macro (symbol "ADMIN_CHAT")
amxx-1.8.2/include/amxconst.inc(28) : warning 201: redefinition of constant/macro (symbol "ADMIN_VOTE")
amxx-1.8.2/include/amxconst.inc(29) : warning 201: redefinition of constant/macro (symbol "ADMIN_PASSWORD")
amxx-1.8.2/include/amxconst.inc(30) : warning 201: redefinition of constant/macro (symbol "ADMIN_RCON")
amxx-1.8.2/include/amxconst.inc(31) : warning 201: redefinition of constant/macro (symbol "ADMIN_LEVEL_A")
amxx-1.8.2/include/amxconst.inc(32) : warning 201: redefinition of constant/macro (symbol "ADMIN_LEVEL_B")
amxx-1.8.2/include/amxconst.inc(33) : warning 201: redefinition of constant/macro (symbol "ADMIN_LEVEL_C")
amxx-1.8.2/include/amxconst.inc(34) : warning 201: redefinition of constant/macro (symbol "ADMIN_LEVEL_D")
amxx-1.8.2/include/amxconst.inc(35) : warning 201: redefinition of constant/macro (symbol "ADMIN_LEVEL_E")
amxx-1.8.2/include/amxconst.inc(36) : warning 201: redefinition of constant/macro (symbol "ADMIN_LEVEL_F")
amxx-1.8.2/include/amxconst.inc(37) : warning 201: redefinition of constant/macro (symbol "ADMIN_LEVEL_G")
amxx-1.8.2/include/amxconst.inc(38) : warning 201: redefinition of constant/macro (symbol "ADMIN_LEVEL_H")
amxx-1.8.2/include/amxconst.inc(39) : warning 201: redefinition of constant/macro (symbol "ADMIN_MENU")
amxx-1.8.2/include/amxconst.inc(40) : warning 201: redefinition of constant/macro (symbol "ADMIN_ADMIN")
amxx-1.8.2/include/amxconst.inc(41) : warning 201: redefinition of constant/macro (symbol "ADMIN_USER")
Admin_Player_Name.sma(60) : warning 217: loose indentation
Admin_Player_Name.sma(116) : warning 209: function "displayNameMenu" should return a value
Admin_Player_Name.sma(164) : error 001: expected token: "}", but found "-end of file-"

3 Errors.
Could not locate output file Admin_Player_Name.amx (compile failed).


ОШИБКА: плагин не был скомпилирован, см. выше
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Evgen22
сообщение 18.2.2015, 19:55
Сообщение #11
Стаж: 13 лет

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

Было бы вообще отлично, если выложили сюда типо такого меню, но только на amx_gag для colored translit
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Swidi
сообщение 18.10.2017, 14:58
Сообщение #12
Стаж: 11 лет

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

На сервере вообще не работает команда amx_nick. Пишет что имя игрока изменено, но на самом деле ник остается такой какой и был ранее. Помогите решить проблему.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя slender8918
сообщение 27.11.2019, 7:00
Сообщение #13


Стаж: 12 лет
Город: Москва

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

Цитата(Swidi @ 18.10.2017, 14:58) *
На сервере вообще не работает команда amx_nick. Пишет что имя игрока изменено, но на самом деле ник остается такой какой и был ранее. Помогите решить проблему.

защита клиентских файлов, аля только для чтения.


Не гоняйте пацаны - вы ещё в CS нужны..
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя s1ngle
сообщение 27.11.2019, 11:54
Сообщение #14
Стаж: 7 лет 8 месяцев

Сообщений: 1591
Благодарностей: 430
Полезность: 342

Как убрать иммунитет в этом плагине , чтобы я мог всем ники менять?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fullserver
сообщение 27.11.2019, 12:19
Сообщение #15


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

Стаж: 11 лет

Сообщений: 5122
Благодарностей: 2100
Полезность: 1394

Не стоит использовать этот устаревший метод смены ника.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя s1ngle
сообщение 27.11.2019, 12:31
Сообщение #16
Стаж: 7 лет 8 месяцев

Сообщений: 1591
Благодарностей: 430
Полезность: 342

Цитата(Fullserver @ 27.11.2019, 13:19) *
Не стоит использовать этот устаревший метод смены ника.

дак плагин рабочий почему нет?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fullserver
сообщение 27.11.2019, 12:45
Сообщение #17


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

Стаж: 11 лет

Сообщений: 5122
Благодарностей: 2100
Полезность: 1394

s1ngle, client_cmd name блокируется современными протекторами.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя energydance
сообщение 28.11.2019, 10:35
Сообщение #18


Стаж: 10 лет

Сообщений: 2809
Благодарностей: 740
Полезность: 213

s1ngle, используй лучше
set_user_info


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