# еще вопросец (СТИД 2)
kolobod(syscall,30) — All
2020-01-31 21:17:02


Доброй ночи всем, кто не спит) Есть еще дурацкий вопрос.
БАЗА = room {
       pic = function(s)
             pr 'pic/ГОРЫ.jpg'  --общий фон картинки для этой локации
		
	         if СЛУЧИЛОСЬ_СОБЫТИЕ then 
                    pr ';pic/АЛАРМ.jpg@500,100' --показать поверх общей картинки локации табличку "у нас событие!"
		 end;
       end;
       
       click = function(s, x, y) 
	       if x > 500 and x < 700 and y > 200 and y < 30 and СЛУЧИЛОСЬ_СОБЫТИЕ and ГОТОВ_ДИАЛОГ then --клик на табличку отправляет в диалог
                  walk 'НУЖНЫЙ_ДИАЛОГ';	
	          return true;			   
    	       end;
       end;	
}
Собственно, такая штука. Есть комната. Для иллюстрации происходящего в ней - задана картинка. При срабатывании условия СЛУЧИЛОСЬ_СОБЫТИЕ = true; поверх этой картинки появляется другая (табличка с приглашением запустить некое событие). И если при этом включено условие ГОТОВ_ДИАЛОГ = true; то клик на табличку запускать диалог НУЖНЫЙ_ДИАЛОГ.
В заданной конструкции все работает прекрасно. Но вот диалог заканчивается и я выпускаю из него игрока, ставя при выходе [[ СЛУЧИЛОСЬ_СОБЫТИЕ = false; ГОТОВ_ДИАЛОГ = true; walkback(); return true; ]]
То есть, на выходе я полностью убираю все условия и для отображения таблички, и для перехода снова в этот диалог. Но табличка не убирается и висит на месте, а если кликнуть на нее - снова попадаешь в диалог из которого вышел. Не могу понять почему?

# Re: еще вопросец (СТИД 2)
kolobod(syscall,30) — kolobod
2020-02-01 08:50:09


Опечатался в своих путанных пояснениях) На выходе из диалога false ставлю везде. То есть и СЛУЧИЛОСЬ_СОБЫТИЕ = false; ГОТОВ_ДИАЛОГ = false;

# Re: еще вопросец (СТИД 2)
Peter(syscall,1) — kolobod
2020-02-01 09:52:30


Ты понимаешь, сложно из описаний понять что происходит. Нужен законченный демо-пример который можно запустить и исправлять. Сделай такой тест в виде запускаемого мейна тогда можно помочь. Если некуда залить, можно на форум http://instead-games.ru (сверху ссылка на форум)

# Re: еще вопросец (СТИД 2)
kolobod(syscall,30) — Peter
2020-02-01 10:14:33


Уже разобрался. Внезапно дошло, что я как обычно туплю и не вижу очевидного - на выходе из диалога я вывод дополнительной картинки действительно отключал!
Но при этом - условия для ее "включения" вывода таблички были выше по коду, и все еще оставались актуальными. То есть - они одновременно "включали" все обратно. Вроде совершенно простая вещь, но мне понадобилось несколько часов чтобы допереть.

Теперь заткнулся с другим моментом. Я из диалога выхожу через walkback(); и это создает мне в описании комнаты лишнюю пустую строчку - игра думает, что там должна быть какая-то фраза финализирующая диалог, а ее по задумке - нет. Вроде была еще одна команда возврата в предыдущую локацию, без вывода описания - но я ее вспомнить никак не могу, и не могу найти в старых файлах и доках примеры с ней.

# Re: еще вопросец (СТИД 2)
kolobod(syscall,30) — kolobod
2020-02-01 11:14:10


А, нет. Это была walkout(); но она не вызывает enter комнаты в которую возвращаешься, а его нужно вызвать - в нем важные условия прописаны.

# Re: еще вопросец (СТИД 2)
kolobod(syscall,30) — kolobod
2020-02-01 11:36:24


В общем на данный момент проблема только в одном. Как сделать - чтобы при выходе из диалога в комнату без каких-либо комментариев - в изначальном описании комнаты не добавлялась пустая строка? Пустая строчка - все равно сдвигает вниз описание комнаты, что рушит созданное оформление.

# Re: еще вопросец (СТИД 2)
Peter(syscall,1) — kolobod
2020-02-01 12:49:08


> В общем на данный момент проблема только в одном. Как сделать - чтобы при выходе из диалога в комнату без каких-либо комментариев - в изначальном описании комнаты не добавлялась пустая строка?

Вот и нужен от тебя пример. Вообще не понятно что там происходит. В стед3 никаких лишних строк быть не должно. В стед2, который я заюбыл, тоже можно их спрятать, но что именно у тебя происходит без кода примера понять невозможно.

# Re: еще вопросец (СТИД 2)
kolobod(syscall,30) — Peter
2020-02-01 14:00:13


http://instead-games.ru/forum/index.php?p=/discussion/706/glupye-voprosy-ot-kolobod#latest
Удалось прикрепить - только переименовав в main.txt. Как lua - почему-то не прикреплялся.

# Re: еще вопросец (СТИД 2)
Peter(syscall,1) — kolobod
2020-02-01 14:17:40


Ну там у тебя стоит [[ ]] - это и есть пустая реакция. Убери ее, а слудующую строку явно пометь как code =
		{ tag = 'ВЫЙТИ', 
		    'ВЫЙТИ', 
			code = [[ pon 'ВЫЙТИ'; walkback(); ]] --walkback(); walk 'groop_camp';	
		},					
P.S. Забыл я уже старое API. Переходи на новое потом. )

# Re: еще вопросец (СТИД 2)
kolobod(syscall,30) — Peter
2020-02-01 15:04:33


Ууииии! Это просто волшебная опция, буду знать теперь. Спасибо!

>"P.S. Забыл я уже старое API. Переходи на новое потом"
Осилить бы это))) Если добью наконец игру (стыдно сказать, 5 лет уже прошло - 5, КАРЛ! ПЯТЬ!!) попробую поразбираться в стид3.

# Re: еще вопросец (СТИД 2)
Peter(syscall,1) — kolobod
2020-02-01 15:39:12


> Осилить бы это))) Если добью наконец игру (стыдно сказать, 5 лет уже прошло - 5, КАРЛ! ПЯТЬ!!) попробую поразбираться в стид3.

Новый попроще. )