Вопросы и ответы

  1. 3 weeks ago

    peter

    Jun 3 Administrator Земля(Москва) User since 2014
    Edited 3 weeks ago by peter

    Старый раздел стал приносить больше вреда, чем пользы. Начинаем все с нуля. Раздел будет модерироваться. "Вредные советы" или заведомо ошибочные вещи будут удаляться.
    Все вопросы и ответы будут относиться только к STEAD3, если у вас вопрос по STEAD2 -- вам сюда: https://instead.syscall.ru/talk/index.php/518-stead2

  2. peter

    Jun 3 Administrator Земля(Москва) User since 2014
    Edited 3 weeks ago by peter

    Hitryi-Pryanik ты не читаешь документацию совсем, такие вопросы только засоряют тему. Удаляю. Твой вопрос не относится к stead3. Ты пишешь на stead2.
    INSTEAD поддерживает 2 стека. Старый stead2 и новый stead3. Как работать с 3м стеком описано в вводных главах документации по STEAD3.

    https://github.com/instead-hub/instead/blob/master/doc/stead3.md

    Главный файл игр должен называться main3.lua, а не main.lua, как раньше.

    Документация на INSTEAD 3.0.0 совершенно новая, ее придется читать даже если вы писали до этого на 2.x.x

  3. Спасибо за ответ. Я потому и не постил в баги, подозревая, что мой косяк.

    ты не читаешь документацию совсем

    Утверждение не верно про «совсем». Читаю. И по Lua тоже. Потому и не задал ещё полтора десятка вопросов. Но пропустил вводную часть (в pdf про main3 тоже есть). Буду теперь читать всё-всё.

    Ты пишешь на stead2

    Для меня это было не очевидно втройне:
    а) интерпретатор ничего не сказал, типа «эй, тебя Stead2, а версия указана 3.0», хотя и не должен.
    б) сработали функции и load и loadstring (из разных версий Lua) и я счёл, что интерпретатор работает в «самом современном» режиме, так как заявлен вообще Lua 5.1 а load заменил loadstring только в 5.2
    в) не наткнулся на какой-нибудь урок для новичка в духе «ща напишем хэлловорд».
    Такие вот недопонятки, в которых никого не обвиняю.

    Как освоюсь, постараюсь написать расширенный урок для стартующих по stead3:
    ведь появились новые удобные фишечки, которые и новичок может использовать легко.

  4. peter

    Jun 3 Administrator Земля(Москва) User since 2014

    Вместо loadstring и load лучше используй std.eval (в stead3), или stead.eval (в stead2)

  5. Спасибо. Понял, покурю что это, посмотрю что там написано.

  6. peter

    Jun 3 Administrator Земля(Москва) User since 2014

    Это просто обертка над loadstring/load -- но переносимая, работает не зависимо от версии lua5.1/5.2.

  7. Тогда и впрямь лучше, на будущее. В доках не нашёл (надо бы добавить строчку), а вот переопределение в stead.lua увидел.

  8. Призываю людей, с опытом обработки строк на кириллице.
    Вычитал, что Lua с оной не дружит.
    Нашёл пока лишь библиотеку 2009 года с заменой функций, на которую многие ссылаются:
    https://github.com/Zariel/oUF_Grid/tree/master/lib/UTF8
    Пробовал кто? Всё норм? Багов нет?

    Вопросы следующие: есть ли в Инстеде (или у вас в запасе) обработка строк, например замена первой буквы на строчную/прописную? Есть ли сопутствующие функции, типа счёта символов в строке и корректно работающих регулярных выражений или иные обработчики строк?

  9. Vtroll

    Jun 4 User since 2016

    Хитрый Пряник, может что-то из этой процедурки вам поможет найти кириллицу в строке

    if string.byte(w, n) > 191 then 
    		s = string.sub(w, n, n)..string.sub(w, n+1, n+1)
    		n=n+1
    	else
    		s = string.sub(w, n, n)
    	end

    w - текст строки
    n - порядковый номер символа
    s - символ либо кириллица (два байта) либо латиница (один байт)

  10. 2 weeks ago

    peter

    Jun 4 Administrator Земля(Москва) User since 2014
    Edited 2 weeks ago by peter

    В инстеде 3 в модуле dbg есть работа с utf.
    Но зачем это в игре не знаю. Замена символов работает и так. Нужно только при организации полностью своего ввода/вывода.

    поиск по utf:
    https://github.com/instead-hub/instead/blob/master/stead/stead3/dbg.lua

  11. peter

    Jun 4 Administrator Земля(Москва) User since 2014

    То есть обычная замена: s:gsub("привет мир!", { ["п"] = "П" }) -- работает и так

  12. Edited 2 weeks ago by Hitryi-Pryanik

    Vtroll, спасибо, разберу.

    peter, спасибо, понял, поковыряю.
    Но это же прямая замена, а не замена на прописную.

    Но зачем это в игре не знаю.

    Например.
    p "Я пошарил в кармане и обнаружил, что у меня qnt(патрон)"
    «Я пошарил в кармане и обнаружил, что у меня остался всего один патрон.»
    «…есть шесть патронов»
    «…аж 24 патрона» (большие числа лучше указывать цифрами)
    Функция сама найдёт сколько их, если не указано напрямую, решит какое окончание, писать ли цифрой или словом, сделает из слова ссылку и т.д.

    Стандартная форма вывода (статическая часть + список объектов) хороша для навигации, но не для художественности. Буду думать, как поудобнее сделать.

  13. Vtroll

    Jun 4 User since 2016

    Hitryi-Pryanik
    Vtroll, спасибо, разберу.

    Пётр прав, мой пример для собственного ввода/вывода текста с помощью спрайтов и вам он не подойдёт.

  14. peter

    Jun 4 Administrator Земля(Москва) User since 2014

    Hitryi-Pryanik Но это же прямая замена, а не замена на прописную.

    Задача заменить первую букву на прописную? Это тоже решается заменой.

  15. Vtroll

    Jun 4 User since 2016

    Кажется уму нужен алгоритм пристыковки строки к другой строке, которая меняется в зависимости от количества патронов.

  16. peter

    Jun 4 Administrator Земля(Москва) User since 2014
    Edited 2 weeks ago by peter

    Для этого не нужна работа на уровне utf. Но, вероятно, пригодится словарь. Как в метапарсере... Чтобы генерировать склонения.

  17. Vtroll, lа не, пристыковывать строки можно конкатенацией.
    peter, да, видимо будут дополнительные списки/словари

  18. Так. Ещё вопрос. Есть задача: вывести предметы (obj сцены) в столбик, как менюшку. То есть с переводом строки. Но перевод строк работает только внутри единичного dsc или p/pn. А между объектами они игнорируются. Как сделать?

  19. Deleted 2 weeks ago by peter
  20. peter

    Jun 4 Administrator Земля(Москва) User since 2014

    Hitryi-Pryanik http://club.syscall.ru/q/QV3PP7JKESPHRWCF74RA

  21. Newer ›

or Sign Up to reply!