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

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

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

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

Ошибка при компилировании.

Статус пользователя Bologercs
сообщение 27.10.2014, 16:48
Сообщение #1


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

Сообщений: 110
Благодарностей: 125
Полезность: 1318

Плагин - обычное меню сервера. Вызывается по команде в чате.

Участок кода с проблемой
Код:
#define QNTY 10	// total entries
new gszArray[QNTY][][] = {
{ "\wОбнулить \yСчет", "say /0" },
{ "\wЗабанить \yИгрока", "say /ban" },
{ "\wЗаткнуть \yИгрока", "say /mute" },
{ "\wЛучшие \yИгроки Сервера", "say /top15" },
{ "\wПодробная \yстатистика", "say /rankstats" },
{ "\wIP \yСерверa \r[Смотреть в чате]\w", "say /IP" },
{ "\wГруппа \yVK", "say /vk" }
}


Выдает такую ошибку




Исходник .sma файла
Код:

/*
* Server Menu: https://c-s.net.ua/forum/topic46803.html
* last update 12/24/2012
* - легко конфигурируемое 'меню сервера'
* - постоянное HUD-сообщение о способе открытия меню (можно выключить cvar'ом show_hudmsg)
* - автоназначение игрокам кнопки открытия меню
* - идеально подходит для говнопабликов :P
*
* Внимание!
* - для успешного компилирования плагина необходимо наличие в папке include файла dhudmessage.inc
* его можно загрузить тут: https://forums.alliedmods.net/showthread.php?t=149210
* - пункты меню не являются рекомендуемыми! они тупо перенесены из прототипа
* - изменение show_hudmsg вступает в действие со следующей карты
*
* Credits:
* GopnikStyle for the prototype
*/

#include <amxmodx>
#include <dhudmessage>

#define PLUGIN "Server Menu"
#define VERSION "0.1"
#define AUTHOR "author"

new giMenu

#define ITMS 0 // menu items
#define CMDS 1 // client commands

#define QNTY 10 // total entries
new gszArray[QNTY][][] = {
{ "\wОбнулить \yСчет", "say /0" },
{ "\wЗабанить \yИгрока", "say /ban" },
{ "\wЗаткнуть \yИгрока", "say /mute" },
{ "\wЛучшие \yИгроки Сервера", "say /top15" },
{ "\wПодробная \yстатистика", "say /rankstats" },
{ "\wIP \yСерверa \r[Смотреть в чате]\w", "say /IP" },
{ "\wГруппа \yVK", "say /vk" }
}

public plugin_init() {
register_plugin( PLUGIN, VERSION, AUTHOR )
register_clcmd( "amx_menu", "ShowMenu", ADMIN_ALL )
register_clcmd( "say /menu", "ShowMenu", ADMIN_ALL )
register_clcmd( "say menu", "ShowMenu", ADMIN_ALL )
register_clcmd( "say_team menu", "ShowMenu", ADMIN_ALL )
register_clcmd( "say_team /menu", "ShowMenu", ADMIN_ALL )


giMenu = menu_create( "\yМеню Сервера", "MenuHandler", .ml = 0 /* Russian only, fucking 'UTF-8 inside SMA' style */ )
new szInfo[3]
for ( new i = 0; i < QNTY; i++ ) {
num_to_str( i, szInfo, charsmax(szInfo) )
menu_additem( giMenu, gszArray[i][ITMS], .info = szInfo )
}

menu_setprop( giMenu, MPROP_EXIT, MEXIT_ALL )
menu_setprop( giMenu, MPROP_NEXTNAME, "Дальше" )
menu_setprop( giMenu, MPROP_BACKNAME, "Назад" )
menu_setprop( giMenu, MPROP_EXITNAME, "Выход" )
}


public ShowMenu(id) {
menu_display( id, giMenu )

return PLUGIN_HANDLED
}

public MenuHandler( id, menu, item ) {
if ( item == MENU_EXIT )
return PLUGIN_HANDLED

new access, info[3], callback
menu_item_getinfo( menu, item, access, info, charsmax(info), .callback = callback )
client_cmd(id, gszArray[str_to_num(info)][CMDS] )

return PLUGIN_HANDLED
}

public plugin_end() {
menu_destroy(giMenu)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя mazdan
сообщение 27.10.2014, 17:08
Сообщение #2


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

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

как-то вы массив странно объявили gszArray[QNTY][][] что вы этим хотите объявить?


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bologercs
сообщение 27.10.2014, 17:11
Сообщение #3


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

Сообщений: 110
Благодарностей: 125
Полезность: 1318

Цитата(mazdan @ 27.10.2014, 17:08) *
как-то вы массив странно объявили gszArray[QNTY][][] что вы этим хотите объявить?


Изначально там было указано gszArray[QNTY][2][], я точно не знаю как правильнее, но раньше работало все.
Я просто вношу пеерменные в массив, чтобы отобразить их в меню, но почему-то при компиляции не работает.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 27.10.2014, 17:17
Сообщение #4


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

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

Bologercs, ну вы массив объявляетп как трехмерный, а задаете значения как двумерному
видимо нужно [][]


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Bologercs
сообщение 27.10.2014, 17:41
Сообщение #5


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

Сообщений: 110
Благодарностей: 125
Полезность: 1318

Проблема решена!

Надо вместо Код:
gszArray[QNTY][2][]
сделать Код:
gszArray[][][]
и все будет работать.

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