Доступность игр для незрячих

  1. ‹ Older
  2. last week

    peter

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

    Может быть твой модуль звуковой не может повторно инициализироваться?
    Просто _done -- вызовет обработчик .done а _init -> .init твоего расширения звука. Посмотри, может там проблема?

  3. alastochkin

    Jan 11 User since 2016

    Посмотрю. Сейчас проблема решается если запустить другую игру, а потом снова первую.

  4. alastochkin

    Jan 11 User since 2016

    У меня init и done пустые. Нашел в чем косяк, поправлю :)

  5. alastochkin

    Jan 11 User since 2016
    Edited last week by alastochkin

    А кто ответсвенный за ресурс instead-games.ru ? Сейчас список игр получается через выполнение php-скрипта: http://instead-games.ru/xml.php , а список игр основного репозитория через обращение напрямую к http://instead.sf.net/pool/game_list.xml . Можно сделать чтобы список instead-games.ru тоже был в виде прямой xml-ки (ну там обновлялся периодически)?

  6. alastochkin

    Jan 11 User since 2016

    peter можешь сказать, что сделать, чтобы диалоговый модуль завёлся? Я уже добавил обработку xact, и убрал тэги из космических рейнджеров.
    Вот такое не обрабатывается - нет ссылок:

    cap_dlg = dlg {
    	nam = 'Разговор с капитаном';
    	pic = 'gfx/c0.gif';
    	enter = '-- Хм, Морзе, мы же в гиперпространстве? Насколько я помню курс пространствоведения, то для физической вселенной мы в данный момент практически не существуем, -- глубокомысленно нахмурил брови капитан.';
    	phr = {
    		{'Капитан! -- руки Морзе просто летали над пультом, -- я как раз и пытаюсь выяснить что случилось, и думаю философские рассуждения можно оставить на потом.', '-- Вы правы, старпом. Есть уже какая-то информация?', [[pon 'info';]]};
    		{tag = 'info', false, 'Соединить вас со старшим механиком?', 'На экране появился усатый старший механик.^ -- Кэп, потеря мощности на четвертом гипердвигателе, ничего не понимаю. Туда отправился сержант Дюшенков и ремонтная бригада.'};
    		{tag = 'info', false, 'Соединить вас с сержантом Дюшенковым?', 'На главном экране появилось окно видеосвязи, в котором в свою очередь появилось встревоженное лицо сержанта Дюшенкова, одетого в скафандр.^-- Капитан, докладываю. Четвертый гипердвигатель отсутствует. -- Морзе пошевелился и издал какой-то неопределенный звук, но тут Дюшенков повернул камеру и все вопросы сразу отпали. Массивная балка, часть крепежа двигателя, была выгнута дугой, а в корпусе напротив была пробита дыра, примерно соответствующая по размерам пропавшему двигателю. В отверстие мрачно светило серополосатое гиперпространство.', [[pon 'dvig'; poff 'info';]]};
    		{tag = 'dvig', false, 'Капитан? Что будем делать?', '-- Приготовиться к переходу в нормальное пространство, Морзе. Обратный отсчет. Три. -- Капитан Киркунов при необходимости реагировал просто молниеносно.', [[pon 'three']]};
    		{tag = 'three', false, 'Но, капитан..', 'Два.', [[pon 'two']]};
    		{tag = 'two', false, '..мы ведь можем..', 'Один.', [[pon 'one']]};
    		{tag = 'one', false, '..появиться прямо..', '-- Переход! -- Киркунов рванул рычаг и "Созвездие" вывалилось обратно в нормальный физический космос, главный экран потемнел и мириады звезд постепенно начали проявляться на нем.', [[pon 'jump']]};
    		{tag = 'jump', false, '.. внутри планеты, например. -- несколько мрачно закончил фразу Морзе.', '-- Спокойствие, Морзе, я посмотрел проложенный курс и там не было никаких крупных тел по пути, так что мы почти не рисковали, -- заметил капитан.^Впрочем на экране кроме звезд вдруг нарисовалась схематичная сфера и предполагаемый спиральный путь корабля к её центру.', [[pon 'hole'; (cap_dlg).pic = 'gfx/c01.gif'; (bridge).pic = 'gfx/c01.gif';]]};
    		{tag = 'hole', false, 'Или в чёрной дыре, -- еще мрачнее сказал старпом.', '-- Хм, непростая задача. Нам нужно достать где-то гипердвигатель, при этом находясь у чёрта на куличках в неисследованной зоне космоса. Есть идеи, Морзе?', [[pon 'idea']]};
    		{tag = 'idea', false, 'Как насчет кофе, капитан?', '-- Отличная мысль, старпом!', [[walk(bridge);]]};
    	};
    };
  7. peter

    Jan 11 Administrator Земля(Москва) User since 2014
    Edited last week by peter

    Не совсем понял, не работают диалоги?
    Ты можешь дать законченный мелкий пример (в виде готового небольшого main.lua файла), и я попробую понять. А так, сложно сказать. Нужен просто тест == хотя бы с 1 фразой, но законченный и готовый к запуску.

  8. alastochkin

    Jan 11 User since 2016

    А, нет всё нормально. В консольном посмотрел, работает диалог. Смотрим дальше...

  9. Irremann

    Jan 11 Постоялец User since 2014

    alastochkin взялся за Созвездие =).
    Из последнего еще Конан должен зайти хорошо на твоем движке, если разберешься с компасом конечно.

  10. alastochkin

    Jan 11 User since 2016

    Ну а чего, неплохая игруля, всё по ГОСТу. До конана еще пока не дошел. Скоро начнется большая проверка "Космических рейнджеров".

  11. skiminok1986

    Jan 11 Постоялец Курган User since 2014

    alastochkin А кто ответсвенный за ресурс instead-games.ru ?

    Я им занимаюсь.

    alastochkin Сейчас список игр получается через выполнение php-скрипта: http://instead-games.ru/xml.php , а список игр основного репозитория через обращение напрямую к http://instead.sf.net/pool/game_list.xml . Можно сделать чтобы список instead-games.ru тоже был в виде прямой xml-ки (ну там обновлялся периодически)?

    А какая разница? Хоть wget, хоть curl спокойно получают xml-ку, которая прямо вот сразу генерируется с базы. Зачем именно прямой линк на несуществующий файл (xml на сервере не лежит совсем).

    И да. Давай лучше в тему с вопросами по работе репозитория перейдём.

  12. alastochkin

    Jan 12 User since 2016

    peter в игре "Одна старая история" есть локация лифт. Когда туда заходишь, то вот такая выдача:

    [Лифт]

    Вы в лифте.

    Напротив вас висит [a]зеркало#1[/a]. В лифте 7 кнопок. По числу этажей. Какую кн
    опку нажмете?: [a](1)#1[/a], [a](2)#2[/a], [a](3)#3[/a], [a](4)#4[/a], [a](5)#5[
    /a], [a](6)#6[/a], [a](7)#7[/a], [a]Кнопка хода#9[/a].
    >> [a]Проходная#10[/a]
    ** [a]карточка#11[/a],[a]кружка#12[/a],[a]спички#13[/a],[a]трубка#14[/a]
    1
    * * *
    Вы осторожно нажали кнопку... Послышался звуковой сигнал...

    Получается что зеркало и кнопка первого этажа с одним и тем же кодом. Как такое получилось и как можно исправить? Сохранение прикрепил

  13. alastochkin

    Jan 12 User since 2016
    Edited last week by alastochkin

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

    [z-fan-zvukovik]

    Вы стали лазить по ГайдНету. Особенно вас привлекли вот эти сайты:
    http:/www.pelengessa.peleng/photo
    http:/wap.fei.photo.com/
    http:/www.gogaal.gaal/
    http:/malocrh.maloc/index.php/

    — [a]http:/www.pelengessa.peleng/photo/#2[/a]
    — [a]Спать#4[/a]
    — [a]http:/gogaal.gaal/#3[/a]
    — [a]http:/malocrh.maloc/index.php#5[/a]

    ** [a]Деньги: 5000#0[/a]
    load 123.sav
    * * *
    Error calling:iface:cmd
    Error: games/bank.lua:13: attempt to index a nil value (global 'happyend')
    stack traceback:
    games/bank.lua:13: in main chunk
    [C]: in function 'dofile'
    ./stead/stead.lua:2072: in field 'gamereset'
    123.sav:2: in local 'f'
    ./stead/stead.lua:2166: in method 'load'
    ./stead/stead.lua:2368: in function <./stead/stead.lua:2320>
    (...tail calls...)

    Если открываешь сохранение из начального экрана, то всё в порядке.

  14. alastochkin

    Jan 12 User since 2016

    Еще кое-что. Но не знаю с чем связано. В диалоге игры Созвездие вот такая конструкция phr:

    dzuba_dlg = dlg {
    nam = 'Разговор с борткосмологом';
    pic = 'gfx/c8.png';
    enter = function()
    question = {
    [1] = 'Дзюба, с вами все в порядке?',
    [2] = 'Борткосмолог! Возьмите себя в руки!',
    [3] = 'Дзюба, может вам воды принести?',
    [4] = 'Космолог, может вам доктора позвать?',
    };
    ...
    end;
    phr = {
    {always = true, code[[local r = rnd(4); p(question[r])]], 'Но космолог даже не посмотрел на старпома и продолжил свое занятие. Кажется все-таки он не в порядке.', [[back();]]};
    };
    };

    При обновлении экрана вылазит ошибка:

    Error calling:iface:cmd
    Error: [string "local r = rnd(4); p(question[r])"]:1: attempt to index a nil val
    ue (global 'question')
    stack traceback:
    [string "local r = rnd(4); p(question[r])"]:1: in field '?'
    ./stead/stead.lua:952: in field 'call'
    ./stead/stead.lua:1313: in method 'look'
    D:/Projects/PlainInstead/build/./stead/dlg.lua:165: in method 'look'
    ./stead/stead.lua:2410: in function <./stead/stead.lua:2320>
    (...tail calls...)
    ** [a]Отвертка#2[/a]

    Когда я убрал рандом, всё заработало:

    dzuba_dlg = dlg {
    nam = 'Разговор с борткосмологом';
    ...
    phr = {
    {always = true, 'Дзюба, с вами все в порядке?', 'Но космолог даже не посмотрел на старпома и продолжил свое занятие. Кажется все-таки он не в порядке.', [[back();]]};
    };
    };

  15. peter

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

    По поводу первого, это известный архитектурный косяк инстеда (исправлено будет в новом).
    Суть в том, что есть id и есть nam и они взаимозаменяемы.
    В коде у тебя в tiny.lua сейчас так:

    local n = stead.tonum(stead.nameof(o))
    --      Новое отображение ссылок, для меню сдвиг на 1000
    if (isMenu(o)) then.
        return ("[a]"..(str or '').."#"..stead.tostr((n or o.id)+1000).."[/a]");.
    end
    return ("[a]"..(str or '').."#"..stead.tostr(n or o.id).."[/a]");

    Можно пойти следующим способом. Всегда использовать только o.id и дописывать 0 перед ним, чтобы не спутать его с именем. Вот так:

    --      Новое отображение ссылок, для меню сдвиг на 1000
    if (isMenu(o)) then.
        return ("[a]"..(str or '').."#0"..stead.tostr(o.id+1000).."[/a]");.
    end
    return ("[a]"..(str or '').."#0"..stead.tostr(o.id).."[/a]");

    По остальному пока нет времени, гляну позже. rnd() работает вообще? выведи где то в тесте

  16. peter

    Jan 12 Administrator Земля(Москва) User since 2014
    Edited last week by peter

    С рейнджерами следующее.

    Подсистема save/load тоже сейчас переделывается. :) Есть два варианта, чтобы исправить в текущей версии plaininstead:

    1) давать load ДО того как ты сделаешь 'look'. Грубо говоря -- в старом инстеде load не всегда работает по существующей игре. Конкретно сейчас, он пытается ресетить игру к первичному состоянию и ресетит в том числе объекты модуля rangers. Если же загрузку сделать как: instead_done/ instead_init / и потом сразу load (без look), то сработает. в 3.0 это на новом стеке исправлено (но когда он еще будет) :(

    2) можно исправить rangers и во всех объектах, которые создаются в rangers.lua -- всписать system_type = true

    Но более универсальный это 1й способ. Будет работать всегда. Так как не смотря на то, что это ошибка модуля rangers, такие ошибки могут быть где то еще. Но с system_type в принципе правильный путь. А 1-й -- лучше с тз совместимости. rangers я исправлю сам - но позже.

  17. peter

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

    Насчет игры - думаю там баг:

    enter = function()
    question = {
    [1] = 'Дзюба, с вами все в порядке?',
    [2] = 'Борткосмолог! Возьмите себя в руки!',
    [3] = 'Дзюба, может вам воды принести?',
    [4] = 'Космолог, может вам доктора позвать?',
    };

    Видно, что создается глобальный question где то -- и только в момент входа в диалог. Если входа не было -- объекта нет. Видимо описка, скорее всего. Надо спрашивать автора. :) В 3.0 такие ошибки будут автоматом детектиться сразу при загрузке игры.

  18. peter

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

    alastochkin вроде все

  19. alastochkin

    Jan 12 User since 2016

    peter, спасибо буду разбираться. rnd еще не смотрел, попробую. Созвездие работает корректно в классическом плеере, в plain тоже заходит и отрабатывает enter.
    По поводу рейнджеров и других игр - я их больше править не буду, так как внедрил менеджер закачек, аналог instead-launcher, народ будет всё грузить из официальных репозиториев. 2-й вариант меня не устроит. Просто добавлю информацию про загрузку игры из основного экрана. Ничего страшного, разберутся. Потом может и новый стек подойдет :)
    Скрин загрузчика:
    -image-

  20. peter

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

    А что значит обновление экрана? Что это за команда инстеду?

  21. alastochkin

    Jan 12 User since 2016

    Это пустая строка - ""

  22. Newer ›

or Sign Up to reply!