RU 📌 Pinned

Как сделать?

Dark[Ol(U23)leneri] #34 18.04.2010 22:57 6408 comments 2437345 views

Martin Doriel,
вообще “захват текста” - порочная практика. Гораздо надежнее делать “текст по условию”, и в нужный момент делать перезаход на локацию. Пример есть в учебнике.

Nex,
Все верно говоришь.
Все действия в программе я делаю максимально скоростными по выполнению и стараюсь задействовать как можно меньше ресурсов. Действия с захватом текста более экономичны в моем случае. Первое появление текста на экране сопровождается серьезными вычислениями. Дальше лишь небольшие косметические изменения в нем происходят. А ради этих изменений те большие вычисления проводить не рационально.

Martin Doriel,
ну тут все просто - вычисления заключить в условный блок, и выполнять только при первом посещении.

Подскажите есть ли оператор похожий на wait, но не замораживающий работу выбора действий, окна инвентаря?
Примеры из хелпа, не очень хороши именно тем интерфейс “залипает” до окончания оператора wait

Как сделать показ анимации в игре (последовательно с паузой вывести картинки)?
1) В нужном месте локации введите:
view ’[картинка 1 (название файла)]’
wait 500
view ’[картинка 2]’
wait 500
view ’[картинка 3]’

2) С помощью цикла:
i=0
:loop
if i<10:
wait 500
view ‘pic<<i>>.jpg’
i=i+1
jump ‘loop’
end

Кстати если такого оператора нет, то было бы неплохо доработать wait так чтобы не залипал интерфейс, т.е. останавливал работу только кода из окна действий на локации.

HIman,
такая задача реализуется через COUNTER, но вообще реалтаймовыми фишками в текстовых играх пользоваться нежелательно, особенно если это какие-то попытки сделать “задачу на время”.

было бы неплохо доработать wait так чтобы не залипал интерфейс, т.е. останавливал работу только кода из окна действий на локации

Это принципиально невозможно технически.

HIman,
Попробуй сделать задержку анимации через сравнение MSECSCOUNT. Интерфейс залипать не будет.
А, хмм, все равно придется через COUNTER. Через сравнение MSECSCOUNT я двойной клик отслеживал. Ну, ничего, тоже может пригодиться))

Сделал через counter (была ошибка в игре End со звонком в Sony как раз там стояли wait)

код локации звонка в который попадает по gs
$copy_counter=$COUNTER
$copy_curloc=CURLOC & !запоминаем на какой локации позвонили в SoNy
SetTimer(9000)
ansver=0
$COUNTER=‘COUNTER’

код локации COUNTER
! проверяем поменялась ли локация с которой позвонили,
! если да то прерываем звонок и последовательность ожидания
if $copy_curloc=CURLOC:
!увеличиваем вариант на +1 при каждом заходе на локацию счетчик
ansver=ansver+1
If ansver=1: *pl ‘Прошло 40 минут.’
If ansver=2: *pl ‘Вы ещё подождали 27 минут.’
………
……..
…..

else
! если позвонили и пошли по локациям
! обрываем звонок в Sony и запускает счетчик который был до звонка если был
$COUNTER=‘’
SetTimer(1000)
$COUNTER=$copy_counter
end

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

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

Еще, проверь написание вложенных IF.

Странно первый if $copy_curloc=CURLOC: не работает получается внутри счетчика а точнее наполовину сработал.
То что стоит по после else если повесить на кнопку прекрасно обрывает счетчик и запускает тот что был.

Внутренние ифы также отлично работают показывая через каждые 9сек новое предложение.
В первое условие можно добавить ещё if $copy_curloc=CURLOC or ansver<15: для того чтобы дождавшись последней фразы счетчик сам выключался и переключался на тот что был.
Но суть в том что включение на локации происходит и начинают показываться ифы с предложениями т.е. как бы условие$copy_curloc=CURLOC сработало, но если перейти на другую локацию они продолжают показываться :(

HIman,
присылай код целиком, посмотрю.

##игра##
Куда смотреть:
Локация sony
Локация COUNTER
Номер телефона чтобы позвонить 421-965-001-105 (есть на локации реклама3)
После старта нужно донажимать кнопки выбежать на улицу чтобы включился счетчик обратного отсчета “время”,
станет видно как он останавливается и срабатывает счетчик предложений из COUNTER, если повесить трубку
включается обратно счетчик отсчета “время”.
Но на смена локации не срабатывает выключение COUNTER и включение время.

HIman,
я проверил - все работает.

ХМ… странно может версию поновее скачать,
да так и есть, на старой версии не работало.

Вспомнил про Инквизу, продолжил делать.
Так вот, или это я кривой или не поддерживается зачеркнутый шрифт. Как забомбить?

Log in or Register to post comments.