RU 📌 Pinned

Как сделать?

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

Nikus,
GS ‘имя_локации_с_изначальными_данными_кармы’

Aaaspavel,
https://qsp.org/forum/516-quest-navigator-dla-windows

Nikus,
Да нет же. вот у вас получилось добавить строку “$usercom = ‘USERCOM’” в стартовую локацию, вот также добавьте туда же строку - “Белая_карма = 5”.
И все! Она будет равна пяти покуда не последует команда к ее изменению.

Nex,
Спасибо. Сработало !!!!!!

Всем привет. Сделал действие по условию:
Условие:
флаг_1=1
*NL ‘<font>Вы послали предложение о встрече 1</font>’
В диалоге:
флаг_входящий_вызов1=1
Действие:
if флаг_1=1 and флаг_входящий_вызов1<>1:act’<font color=red><center>Входящий вызов</center></font>’: gs’Диалог_1_Т’
Необходимо чтобы активация произошла через день после выполнения условия по игровому времени. Что сюда надо вписать?

И ещё проблемка: почему то отображаются картинки только в формате gif. png и jpg не открывает.

Сергей:

И ещё проблемка: почему то отображаются картинки только в формате gif. png и jpg не открывает.

Проблема оказалась в базовом paint: если редактировать изображения через него - ничего не открывается. Воспользовался paint.net - всё отображается как положено.

Aleks Versus Moderator 29.10.2016 06:32 (9 years ago)

Сергей,
объясни не в виде кода, а логику событий. Я правильно понимаю: где-то ты как бы “отправил письмо” (флаг_1=1), а через сутки должно появиться действие “входящий вызов”?
По-идее, необходимо вычислить пороговое время (время, когда произойдёт событие) и записать в переменные. А уже потом, по аналогии, как делали раньше.

флаг_1=1
year['флаг_1']=year
month['флаг_1']=month
day['флаг_1']=day+1
hour['флаг_1_низ']=hour
hour['флаг_1_верх']=hour+1

Событие:

if year=year['флаг_1'] and month=month['флаг_1'] and day=day['флаг_1'] and hour>=hour['флаг_1_низ'] and  hour<=hour['флаг_1_верх'] and флаг_входящий_вызов1<>1 and флаг_1=1: 
     act'<font color=red><center>Входящий вызов</center></font>': gs'Диалог_1_Т' 
     флаг_входящий_вызов1=1 
end

Для размещения кода пользуйся, пожалуйста, кнопкой “код”

И старайся впредь избегать однострочных if и act. Это неизбежно приведёт тебя к путанице и ошибкам.

Aleks Versus,
Спасибо. Получилось

Доброго времени суток. Требуется помощь по навигатору. Создаю игру без шаблона. Т.е. использую только стандартный game.js.
css и html - с нуля.
Собственно вопрос: как создать блок вывода действий? Что именно прописать в CSS?

Macmep,
смотри в существующий шаблон, и бери оттуда.

Nex,
Дело в том, что я с js на Вы и по отчеству. Просто создание слоя с ид qsp-acts не дает результата.
В нем отображается все, что угодно, кроме “act” ов.

Всем привет, не подскажите ли ответ на вопрос по поводу боевки (заранее сорри если этот вопрос уже был и я случайно его пропустил). Как сделать чтобы при переходе через локацию была случайная вероятность что на игрока нападет какой-нибудь монстр например:
Игрок переходит на другую локацию. Вероятность что: Ничего не произойдет - 70 %, что на игрока нападет волк - 20 %, что на игрока нападет медведь - 10 %. (локации для боя я уже сделал) И если кто-то нападает происходит переход в локацию (Волк бой, Медведь бой и тд.), а затем если игрок побеждает происходит переход обратно на локацию где был игрок. Ситуация осложняется тем что локаций для каждого боя у меня несколько. Пример: Волк бой 1 (здесь описывается сам волк, его внешность, характеристики, и мысли игрока), потом Волк бой 2 (здесь сам бой) затем если игрок побеждает то открывается локация Волк бой победа (где описывается состояние игрока, его эмоции, а также игрок получает опыт за убийство монстра) и отсюда надо будет вернуться в ту локацию откуда стартовал это эвент, но я хочу сделать так чтобы игра не привязывала это эвент к какой-то конкретной локации, чтобы я мог его размещать где угодно и в конце боя игра возвращала туда откуда стартовал этот эвент.
P.S. Сорри если вопрос тупой просто я ничего не понимаю в разработке текстовых игр, но полон решимости и энтузиазма делать.

Prizrak_07,
“при переходе через локацию была случайная вероятность”
Есть такая функция в QSP - Rand. Например, Rand (1,6) выдаст случайное число от 1 до 6. Ближайшая аналогия - бросок игральной кости. Вообще-то это есть в документации. А по поводу того чтобы не было привязки к определенной локации - запуск ивента надо сделать в служебной локации $ONNEWLOC. Но надо задавать условия так чтобы этот ивент не выскакивал там где не надо. Если прям везде и всегда можно, то тогда проблем нет.
Набросал один из упрощенных вариантов, без боевки, лишь с определенной вероятностью победы. Может, кто-то тебе и поизящнее предложит :) Fight_1.qsp

St-john,
Спасибо я попробовал сделать и отчасти помогло, но как я уже говорил у меня несколько локаций для одного боя т.е команда goto $curloc,1 не работает и не переносит на локацию старта. + доп вопрос можно ли сделать какую нибудь команду чтобы этот ивент действовал лишь в определенных локациях, например: Перекресток,Темный лес 1, Темный лес 2.

И еще вопрос по диалогам я делал по вот этому образцу (http://qsp.su/index.php?option=com_content&view=article&id=72:-11&catid=36:2009-02-19-06-11-21&Itemid=76). Проблема в том что по идее при выборе одного варианта второй должен исчезнуть но он не исчезает. Вот пример одного из моих диалогов:

Spoiler

cla
if args[0]=0:
if Скретч=0:
‘<font color=green>(Белка) — Эй ты какого х*я ты лезешь в мой дом !?</font>’
act’Ты говорящая белка ?!’:
‘<font color=blue>(<<$Имя>>) — <<$selact>></font>’
delact $selact
‘<font color=green>(Белка) — (Вздох)Слушай этот мир полон гномов, эльфов, драконов, магов, а тебя волнует говорящая белка !?</font>’
wait 1000
if $Пол = ‘Мужчина’:
‘<font color=green>(Белка) — Да я умею говорить и мне не нравиться что какой-то урод лезет прямо ко мне в дом без приглашения !</font>’
end
if $Пол = ‘Женщина’:
‘<font color=green>(Белка) — Да я умею говорить и мне не нравиться что какая-то дура лезет прямо ко мне в дом без приглашения !</font>’
end
gs ‘Скретч диалог’,1
end
act ‘Это ты кидал шишки в меня !’:
‘<font color=blue>(<<$Имя>>) — <<$selact>></font>’
delact $selact
if $Пол = ‘Мужчина’:
‘<font color=green>(Белка) — А ты как хотел? ты же самым наглым образом полез прямо в мой дом!</font>’
wait 1000
end
if $Пол = ‘Женщина’:
‘<font color=green>(Белка) — А ты как хотела? ты же самым наглым образом полезла прямо в мой дом!</font>’
wait 1000
end
‘<font color=green>(Белка) — Вот я и кинул и кину еще если не прекратишь ибо нехуй !</font>’
gs ‘Скретч диалог’,1
end
end
end

if args[0]=1:
if Скретч=0 and Пакет_орехов = 1:
act’Попытаться успокоить белку дав ей орехи’:
‘<font color=blue>(<<$Имя>>) - Слушай прости за вторжение, я не знал что тут кто-то живет, и в качестве извинения позволь угостить тебя орехами.’
delact $selact
set Пакет_орехов = 3
DELOBJ ‘Пакет орехов’
wait 1000
‘<font color=green>(Белка) — О орешки, мои любимые !, ну ладно прощаю.</font>’
wait 500
‘<font color=green>(Белка) — Тебя как звать то ?</font>’
‘<font color=blue>(<<$Имя>>) — <<$Имя>>’
wait 500
‘<font color=green>(Белка) — А меня Скретч очень приятно. ?</font>’
wait 500
‘<font color=green>(Скретч) — Ну, ты обращайся, если что нужно будет, где меня найти – уже знаешь.</font>’
set Скретч = 1
gs ‘Скретч диалог’,2
end
end
end
if Скретч=0:
act ’Попытаться успокоить белку (Харизма)’:
delact $selact
if Харизма => 8:
’<font color=blue>(<<$Имя>>)(Харизма УСПЕХ) (Вы прилагаете все усилия, чтобы убедить белку, что вы не враг и не хотели ее обворовать или съесть.)’
‘<font color=green>(Белка) — Да в красноречии тебе не откажешь, ну ладно верю.</font>’
wait 500
‘<font color=green>(Белка) — Тебя как звать то ?</font>’
‘<font color=blue>(<<$Имя>>) — <<$Имя>>’
wait 500
‘<font color=green>(Белка) — А меня Скретч очень приятно. ?</font>’
wait 500
‘<font color=green>(Скретч) — Ну, ты обращайся, если что нужно будет, где меня найти – уже знаешь.</font>’
set Скретч = 1
gs ‘Скретч диалог’,2
end
if Харизма < 8:
’<font color=blue>(<<$Имя>>) (Харизма НЕУДАЧА) (Вы прилагаете все усилия, чтобы убедить белку, что вы не враг и не хотели ее обворовать или съесть, Но она вам не верит, вам явно недостает харизмы.)’
‘<font color=green>(Белка) - Че-то не убедил, валика ты отсюда, а то я ребят позову, и тебе мало не покажется.</font>’
set Скретч = 2
gs ‘Скретч диалог’,2
act ‘Да что эта белка может мне сделать ?’: gt “Лесная братва”
act ‘Уйти’: gt “Темный лес опушка”
end
end
end

При выборе варианта убеждения белки при помощью харизмы, должен отпасть вариант с орехами и наоборот, но он не исчезает. Но зато там где не надо реплики исчезают например при выборе варианта “Ты говорящая белка ?!” исчезает вариант “Это ты кидал шишки в меня !”. Что я делаю не так ?

Prizrak_07:

команда goto $curloc,1 не работает и не переносит на локацию старта

Везде где можно используй gosub-переход, а не goto. Для того что ты перечислял, как раз gosub отлично и подойдет. Из собственного опыта знаю, что это основная проблема у новичков - когда они в коде всюду пихают goto. Я пару страниц назад что-то уже писал про это.

Prizrak_07:

можно ли сделать какую нибудь команду чтобы этот ивент действовал лишь в определенных локациях

Можно. Я же написал в коде про дополнительные условия. Назначь маркеры для локаций и исключай или наоборот назначай их при запуске ивента.
В твоих актах не разобрался - просто-напросто нечитаемо. У меня глаза разбежались и продираться неохота. Буквально на прошлой странице писали про оформление кода - есть же специальная команда для вставки. Но насколько я понял, тебе поможет элементарная команда cla вместо delact $selact. Ну и еще не помешало бы все упорядочить. Ты сам-то понимаешь свой код? Пропадает скорее всего из-за твоих перескоков по аргументам. Скорее всего надо не gs ‘Скретч диалог’,1 писать, а заменить на вот это:

act '...':
cla
gs 'Скретч диалог',1
end

Да, и еще. Глянул все же немного код. Я не понял, а почему у тебя вот в этом месте:

end 
if Скретч=0: 
act 'Попытаться успокоить белку (Харизма)':

именно так? Получается, что ты заканчиваешь if args[0]=1 и дальше у тебя идет просто общий код. Так и задумывалось?

Log in or Register to post comments.