YSI и диалог
#1

Всем привет! Возникла проблема, думаю вы сможете помочь.
Нужно извлечь список из БД и вывести его в диалоге. Делаю я это так:
Код:
mysql_format(mysqlHandle, query, sizeof(query), "SELECT id, name, price FROM samp_part WHERE idparttype = %d", partTypeId);
result = mysql_query(mysqlHandle, query);
    
new partsList[2048];
for (new i=0; i < cache_get_row_count(); i++) {
    new item[128], part[128];
    new id = cache_get_field_content_int(i, "id");
    new price = cache_get_field_content_int(i, "price");
    cache_get_field_content(i, "name", part);

    format(item, sizeof(item), "%s (%d score)\n", part, price);
    strcat(partsList, item, sizeof(partsList));
    PartsID[playerid][i] = id;
}
cache_delete(result);

Text_ListBox(playerid, using inline OnPartsDialog, $DIALOG_PARTS_CAPTION, $DIALOG_LIST, $DIALOGS_OK, $DIALOGS_CANCEL, partsList);
В файле настроек языка:
Код:
DIALOG_LIST = %s
В итоге список получается обрезанным:


Думаю, что это связано с ограничением файла настроек языка (строки не более 128 символов).
Как можно это исправить?
Reply
#2

Использовать стандартные средства, а не надстройки.
Reply
#3

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Использовать стандартные средства, а не надстройки.
Не подходит, мод требует мультиязычности
Reply
#4

Quote:
Originally Posted by terrance
Посмотреть сообщение
Не подходит, мод требует мультиязычности
Тут где-то целая тема с вариантами мультиязычности есть.
Reply
#5

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Тут где-то целая тема с вариантами мультиязычности есть.
Конечно варианты есть, но уже во всем моде реализован способ с y_languages. Да и вопрос не об этом.
Reply
#6

Для начала попробуем избавиться от лишних функций:
pawn Код:
new partsList[2048];
for (new i, part[128], id, price; i < cache_get_row_count(); i++) {
    cache_get_field_content_int(i, "id"),
    cache_get_field_content_int(i, "price");
    cache_get_field_content(i, "name", part);

    format(partsList, sizeof(partsList), "%s%s (%d score)\n", partsList, part, price);
    PartsID[playerid][i] = id;
}
Reply
#7

Ставить YSI ради мультиязычности - это стрелять из базуки по мухам.
Reply
#8

Quote:
Originally Posted by OKStyle
Посмотреть сообщение
Ставить YSI ради мультиязычности - это стрелять из базуки по мухам.
Почему из базуки? Это сброс ядерной бомбы, ради убийства комара.
Reply
#9

Quote:
Originally Posted by OKStyle
Посмотреть сообщение
Ставить YSI ради мультиязычности - это стрелять из базуки по мухам.
Не весь YSI, только y_languages
Reply
#10

Зачем, если всё решается массивом (как в моих старых модах), либо чтением из файлов (как в Premium A/D)?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)