SA-MP Forums Archive
YSI и диалог - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: YSI и диалог (/showthread.php?tid=544541)



YSI и диалог - terrance - 02.11.2014

Всем привет! Возникла проблема, думаю вы сможете помочь.
Нужно извлечь список из БД и вывести его в диалоге. Делаю я это так:
Код:
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 символов).
Как можно это исправить?


Re: YSI и диалог - Stepashka - 02.11.2014

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


Re: YSI и диалог - terrance - 02.11.2014

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


Re: YSI и диалог - Stepashka - 02.11.2014

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


Re: YSI и диалог - terrance - 02.11.2014

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


Re: YSI и диалог - Stepashka - 02.11.2014

Для начала попробуем избавиться от лишних функций:
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;
}



Re: YSI и диалог - OKStyle - 02.11.2014

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


Re: YSI и диалог - eakwarp - 02.11.2014

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


Re: YSI и диалог - terrance - 02.11.2014

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


Re: YSI и диалог - OKStyle - 03.11.2014

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