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

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

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

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

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

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

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

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

DaysExample

, Сыпит ошибку и перестает работать [РЕШЕНО]
marik
сообщение 2.5.2015, 16:45
Сообщение #1
Стаж: 12 лет

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

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

#define PLUGIN "AdminMenuExample"
#define VERSION "1.0"
#define AUTHOR "SLIMSHADY"

new day[32]

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_clcmd("say /deyleft","main_menu")
    register_clcmd("say /adstatus","daychat")
    
}


public client_authorized(id)
{
        if(is_user_admin(id))
    {
        new admin[32], pass[32], flags[32], x_access[32], x_days[32],bufferd[128],name[32], st[33]
        
        new iFiled = fopen("/addons/amxmodx/configs/users.ini","r");
        
        
        get_user_name(id, name, 31)
        get_user_authid(id, st, 32)
        
        while(!feof(iFiled))
{

        fgets(iFiled,bufferd,255)
        trim(bufferd)
        if(bufferd[0]=='"')
{        
    
        parse(bufferd, admin, 31, pass, 31, flags, 31, x_access, 31, x_days, 31)
        
        // Проверяем игрока через Name или Steam (проверку через IP сделаете сами если нужно)
        if(equal(admin, name) || equal(admin, st))
        {
        day[id]=str_to_num(x_days)
        return PLUGIN_HANDLED
        }
        
}
}
        fclose(iFiled)
        
    }
        return PLUGIN_HANDLED
}
        

public daychat(id)
if(is_user_admin(id))
client_print_color(id, RED, "^4[^3Help CSDM^4] ^4Ваши привилегии закончатся через ^3%d дней.", day[id])

public main_menu(id)
{
if(is_user_admin(id))
{
// Формируем заголовок меню для админа
new szArgs[256]
formatex(szArgs, charsmax(szArgs), "\yАдмин меню\w \d[\rProStrike\d]\w^n\yОсталось\w \d[\r%d\d]\w \yдней", day[id])

new i_Menu = menu_create(szArgs, "main_opt")
menu_additem(i_Menu, "\yКикнуть", "1", 0)
menu_additem(i_Menu, "\yЗабанить", "2", 0)
menu_additem(i_Menu, "\yУдарить/Убить", "3", 0)
menu_additem(i_Menu, "\yСменить команду", "4", 0)
menu_additem(i_Menu, "\yСменить карту", "5", 0)
menu_additem(i_Menu, "\yГолосование за карту", "6", 0)
menu_additem(i_Menu, "\yБесплатная оружейка", "7", 0)
menu_setprop(i_Menu, MPROP_EXITNAME, "\yВыход")
menu_display(id, i_Menu, 0)
}
return PLUGIN_HANDLED
}

public main_opt(id, menu, item)
{  
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Key = str_to_num(s_Data)
switch(i_Key)
{
case 1:
{
console_cmd(id, "amx_kickmenu")
}
case 2:
{
console_cmd(id, "amx_banmenu")
}
case 3:
{
console_cmd(id, "amx_slapmenu")
}
case 4:
{
console_cmd(id, "amx_teammenu")
}
case 5:
{
console_cmd(id, "amx_mapmenu")
}
case 6:
{
console_cmd(id, "amx_votemapmenu")
}
case 7:
{
console_cmd(id, "say /weaponmenu")
}
}
return PLUGIN_HANDLED
}
stock client_printcolor(const id, const input[], any:...)
{
        new count = 1, players[32]
        static msg[191]
        vformat(msg, 190, input, 3)
        
        replace_all(msg, 190, "!g", "^4") // Green Color
        replace_all(msg, 190, "!y", "^1") // Default Color
        replace_all(msg, 190, "!team", "^3") // Team Color
        
        if (id) players[0] = id; else get_players(players, count, "ch")
        {
                for (new i = 0; i < count; i++)
                {
                        if (is_user_connected(players[i]))
                        {
                                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
                                write_byte(players[i]);
                                write_string(msg);
                                message_end();
                        }
                }
        }
}



error
Код
L 05/02/2015 - 16:28:59: Start of error session.
L 05/02/2015 - 16:28:59: Info (map "cs_office") (file "addons/amxmodx/logs/error_20150502.log")
L 05/02/2015 - 16:28:59: [AMXX] Displaying debug trace (plugin "DaysExample.amxx")
L 05/02/2015 - 16:28:59: [AMXX] Run time error 4: index out of bounds
L 05/02/2015 - 16:28:59: [AMXX]    [0] DaysExample.sma::client_authorized (line 44)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя stardock
сообщение 2.5.2015, 17:01
Сообщение #2


Стаж: 13 лет

Сообщений: 222
Благодарностей: 94
Полезность: 78

пользуюсь этим http://amx-x.ru/viewtopic.php?f=8&t=31550&start=20
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Dukkhaz0r
сообщение 2.5.2015, 17:03
Сообщение #3


Стаж: 12 лет

Сообщений: 343
Благодарностей: 294
Полезность: 812

marik, ужасный плагин. Гонять файл при каждом заходе игрока...
Лучше считывать один раз в plugin_cfg и записывать в Trie. Потом просто сравнивать типа if(TrieKeyExists(name))


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
marik
сообщение 2.5.2015, 17:11
Сообщение #4
Стаж: 12 лет

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

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