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

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

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

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

> Правила форума

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

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Change Name

Статус пользователя narkk3
сообщение 19.10.2016, 16:26
Сообщение #1
Стаж: 10 лет

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

Доброго времени суток!
Не могу сделать, чтобы писало 'Администратор N изменил ник игрока N на N'.
Т.е, основная причина этой темы - добавить имя администратора, который меняет ник игрока.
Помогите о добрейшие люди)
Код

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


#pragma semicolon     1
#define VERSION        "1"


new g_iTarget[33];


public plugin_init()
{
    register_plugin("Change Name Menu", VERSION, "Eazy*");
                                    
    register_clcmd("amx_namemenu", "CmdNameMenu", ADMIN_MENU);
    register_clcmd("_change_name", "CmdChangeName");
}


public CmdNameMenu(id, iLvl, iCid)
{
    if(!cmd_access(id, iLvl, iCid, 1))
        return PLUGIN_HANDLED;
        
    new iPlayers[32], iNum, iPlayer,
        iMenu, szName[32], szPlayer[3];
        
    get_players(iPlayers, iNum);
    iMenu = menu_create("Change Name Menu", "HandleNameMenu");
    
    for(new i = 0; i < iNum; i++)
    {
        iPlayer = iPlayers[i];
        
        get_user_name(iPlayer, szName, charsmax(szName));
        num_to_str(iPlayer, szPlayer, charsmax(szPlayer));
        
        menu_additem(iMenu, szName, szPlayer);
    }
    
    menu_display(id, iMenu);
    return PLUGIN_HANDLED;
}


public HandleNameMenu(id, iMenu, iItem)
{
    if(iItem == MENU_EXIT)
    {
        menu_destroy(iMenu);
        return PLUGIN_HANDLED;
    }

    new szData[6], szName[64];
    new iAccess, iCallback;
    menu_item_getinfo(iMenu, iItem, iAccess, szData, charsmax(szData), szName, charsmax(szName), iCallback);

    g_iTarget[id] = str_to_num(szData);

    client_cmd(id, "messagemode _change_name");
    
    return PLUGIN_HANDLED;
}


public CmdChangeName(id)
{
    if(!g_iTarget[id])
        return PLUGIN_HANDLED;
        
    new szArg[32];
    read_args(szArg, charsmax(szArg));
    remove_quotes(szArg);
    
    if(szArg[0])
    {
         new iPlayer = g_iTarget[id],    
         szOldName[32];
         get_user_name(iPlayer, szOldName, charsmax(szOldName));
         set_user_info(iPlayer, "name", szArg);
         g_iTarget[id] = 0;
         ColorChat(id,NORMAL,"^4*^1 Администратор изменил имя игроку ^3%s^1 на ^4%s^1.", szOldName, szArg);      
    }                                                      
    
    return PLUGIN_HANDLED;
}

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя r0no^
сообщение 19.10.2016, 17:48
Сообщение #2


Стаж: 14 лет
Город: Vilnius

Сообщений: 359
Благодарностей: 162
Полезность: 626

narkk3, попробуйте
Cкрытый текст
Код
#include <amxmodx>  
#include <amxmisc>
#include <colorchat>


#pragma semicolon     1
#define VERSION        "1"


new g_iTarget[33];


public plugin_init()
{
    register_plugin("Change Name Menu", VERSION, "Eazy*");
                                    
    register_clcmd("amx_namemenu", "CmdNameMenu", ADMIN_MENU);
    register_clcmd("_change_name", "CmdChangeName");
}


public CmdNameMenu(id, iLvl, iCid)
{
    if(!cmd_access(id, iLvl, iCid, 1))
        return PLUGIN_HANDLED;
        
    new iPlayers[32], iNum, iPlayer,
        iMenu, szName[32], szPlayer[3];
        
    get_players(iPlayers, iNum);
    iMenu = menu_create("Change Name Menu", "HandleNameMenu");
    
    for(new i = 0; i < iNum; i++)
    {
        iPlayer = iPlayers[i];
        
        get_user_name(iPlayer, szName, charsmax(szName));
        num_to_str(iPlayer, szPlayer, charsmax(szPlayer));
        
        menu_additem(iMenu, szName, szPlayer);
    }
    
    menu_display(id, iMenu);
    return PLUGIN_HANDLED;
}


public HandleNameMenu(id, iMenu, iItem)
{
    if(iItem == MENU_EXIT)
    {
        menu_destroy(iMenu);
        return PLUGIN_HANDLED;
    }

    new szData[6], szName[64];
    new iAccess, iCallback;
    menu_item_getinfo(iMenu, iItem, iAccess, szData, charsmax(szData), szName, charsmax(szName), iCallback);

    g_iTarget[id] = str_to_num(szData);

    client_cmd(id, "messagemode _change_name");
    
    return PLUGIN_HANDLED;
}


public CmdChangeName(id)
{
    if(!g_iTarget[id])
        return PLUGIN_HANDLED;
        
    new szArg[32];
    read_args(szArg, charsmax(szArg));
    remove_quotes(szArg);
    
    if(szArg[0])
    {
         new szAdmin[32];
         get_user_name( id, szAdmin, 31 );
         new iPlayer = g_iTarget[id],    
         szOldName[32];
         get_user_name(iPlayer, szOldName, charsmax(szOldName));
         set_user_info(iPlayer, "name", szArg);
         g_iTarget[id] = 0;
         ColorChat(id, BLUE,"^3Администратор ^4%s^1 изменил имя игроку ^3%s^1 на ^4%s^1.", szAdmin, szOldName, szArg);      
    }                                                      
    
    return PLUGIN_HANDLED;
}


Лишь утратив всё до конца, человек обретает свободу!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя narkk3
сообщение 20.10.2016, 15:15
Сообщение #3
Стаж: 10 лет

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

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

/hlds/web/www/amxxpc/bin/user_include/amxmisc.inc(629) : warning 207: unknown #pragma
/hlds/web/www/amxxpc/bin/user_include/amxmisc.inc(629) : error 038: extra characters on line

1 Error.
Could not locate output file /hlds/web/www/amxxpc/work/plugins/changename.amx (compile failed).
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя r0no^
сообщение 20.10.2016, 15:23
Сообщение #4


Стаж: 14 лет
Город: Vilnius

Сообщений: 359
Благодарностей: 162
Полезность: 626

narkk3,
Cкрытый текст


Лишь утратив всё до конца, человек обретает свободу!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя narkk3
сообщение 20.10.2016, 20:00
Сообщение #5
Стаж: 10 лет

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

r0no^,
Всё, сделал.
Можно ли как-нибудь сделать, чтобы этот плагин не конфликтировал с плагином kill assist?
А то когда два игрока убивают одого (к примеру Test+Test1) в чат пишет мол Test сменил ник на Test1, а потом сразу же Test1 сменил ник на Test.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: