Пытаюсь сделать менюшку которая создается через конфиг. Так вот все работает кроме второго аргумента. массив gBufRound пустой, везде нули, не пойму где косяк. Второй аргумент нужен для того чтоб задать с какого раунда доступен пункт
С массивами я не очень хорошо знаком.
Вот как выглядит конфиг
- Код: Выделить всё
ad "\rone" "0"
ad "\ytwo" "1"
ad "\dthree" "2"
ad "four" "3"
а вот исходник
- Код: Выделить всё
#include <amxmodx>
#define PLUGIN "test"
#define VERSION "1.0"
#define AUTHOR "IIPU3PAK"
new gBufCount, gRound
new gBufName[32][32], gBufRound[32]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("HLTV", "StartRound", "a", "1=0", "2=0")
register_event("TextMsg", "RestartRound", "a", "2=#Game_will_restart_in","2=#Game_Commencing")
register_clcmd("say q","test")
}
public plugin_cfg()
{
static const iniPatch[] = "addons/amxmodx/configs/gen.ini"
new Buffer[33]
new FileID = fopen(iniPatch, "rt")
if(!file_exists(iniPatch))
set_fail_state("^"addons/amxmodx/configs/gen.ini^" Not Found!")
while(!feof(FileID))
{
fgets(FileID, Buffer, charsmax(Buffer))
trim(Buffer)
if(!Buffer[0] || Buffer[0] == ';' || Buffer[0] == '#' || Buffer[0] == '/' && Buffer[1] == '/')
continue
if(Buffer[0] == 'a' && Buffer[1] == 'd')
{
replace(Buffer, charsmax(Buffer), "ad", "")
parse(Buffer, gBufName[gBufCount], charsmax(gBufName), str_to_num(gBufRound[gBufCount]), charsmax(gBufRound))
gBufCount++
}
}
fclose(FileID)
}
public StartRound()
gRound++
public RestartRound()
gRound = -1
public test(id)
{
new menu = menu_create("\r[SWE] \yTEST", "menu_handler")
for(new i = 0; i < gBufCount; i++)
{
client_print(id, print_chat, "%d", gBufRound[i])
if(gRound < gBufRound[i] - 1)
menu_additem(menu, gBufName[i], "0")
else
menu_additem(menu, gBufName[i], "1")
}
menu_setprop(menu, MPROP_EXITNAME, "Выход")
menu_display(id, menu, 0)
return PLUGIN_HANDLED
}
public menu_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 0: client_print(id, print_chat, "Не доступно")
case 1: client_print(id, print_chat, "Доступно")
}
return PLUGIN_HANDLED
}
и вопрос такой. в двумерном массиве
new array[32][5]
32 это сколько строк/ячеек для данных
5 это длинна каждой строки/ячейки
Правильно понимаю?