Перейти к содержанию

Создание квеста "Дом вверх дном"


Рекомендуемые сообщения

Данный квест берет свое начало из Wizard's Islands, однако разработчиками он был благополучно забыт и недоделан.

 

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

Побродив немного вокруг да около, мы находим мага, кастующего сие безобразие на магазин. Он соглашается все вернуть как было за определенную плату. Соглашается на эту плату и торговец. Мебель в комнате возвращается на отведенное ей место, все счастливы, включая и игрока.

 

Подскажите, что необходимо для создания этого квеста, разумеется кроме самого конструктора CS?

 

Я так понимаю, это два интерьера - 1) мебель на потолке 2) нормальная мебель, возможно скрипт, может что то еще? И главное, как запустить в игру ячейку с нормальной мебелью?

Изменено пользователем dddssss
Ссылка на комментарий
Поделиться на другие сайты

Подскажите, что необходимо для создания этого квеста, разумеется кроме самого конструктора CS?

 

Я так понимаю, это два интерьера - 1) мебель на потолке 2) нормальная мебель, возможно скрипт, может что то еще? И главное, как запустить в игру ячейку с нормальной мебелью?

Собсна, одним конструктором можно и обойтись. Для реализации сойдет и одна ячейка, только на каждой мебели скрипт.

Ссылка на комментарий
Поделиться на другие сайты

Можно сделать рядом два интерьера в одной ячейке, и после "восстановления" просто переместить индоор маркер к нужной двери. Избежим скриптов на каждой вещи) Можно устроить такую вакханалию... Изменено пользователем Boeny
Ссылка на комментарий
Поделиться на другие сайты

Собсна, одним конструктором можно и обойтись. Для реализации сойдет и одна ячейка, только на каждой мебели скрипт.

 

А можете привести пример скрипта? Хотелось бы взглянуть на какой нибудь образец, использовавшийся в плагинах или самой игре.

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

 

Можно сделать рядом два интерьера в одной ячейке, и после "восстановления" просто переместить индоор маркер к нужной двери. Избежим скриптов на каждой вещи) Можно устроить такую вакханалию...

 

Можно и так, но не может ли возникнуть каких либо проблем от дублирования NPC? И кстате, как прописать в квесте перемещение indoor-маркера? Мне бы на пример взглянуть.

Изменено пользователем dddssss
Ссылка на комментарий
Поделиться на другие сайты

А можете привести пример скрипта? Хотелось бы взглянуть на какой нибудь образец, использовавшийся в плагинах или самой игре.

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

Скрипты на крепостях великих домов (постройки появляются при определенной записи в журнале), на Форте Лунной Бабочки (при определенной записи в журнале одни постройки заменяются другими), на хижине в деревне Скаалов, которая переходит к игроку (при записи в журнале один интерьер подменяется другим, вернее, дверь, ведящая в один интерьер заменяется другой).

 

И кстате, как прописать в квесте перемещение indoor-маркера?
В самом деле, не припомню способов для этого. Однако можно двери заменить, см. выше.
Ссылка на комментарий
Поделиться на другие сайты

А можете привести пример скрипта? Хотелось бы взглянуть на какой нибудь образец, использовавшийся в плагинах или самой игре.

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

Хотя я немного загнул с перемещением и вращением объектов, это долго и нудно)) Можно еще заюзать функции отключения и включения, тобишь при достижении определенных условий (в нашем случае когда ГГ уломал мага вернуть все на место) происходит отключение вещей на потолке и включение тех, что стоят на полу.

 

Вот скрипт на примере вращения:

 

 

 

begin floatAboveStartHeight

float 	timer
float	swingTime
float	startAngle
float	startHeight
float	currangle
float	xvalue
float	zvalue
float 	zoffset
float 	tmpoffset
float	weightoffset
float	waterlevel

short 	reset
short initialized

if ( initialized == 0 ); Эта секция сохраняет стартовую высоту и положение направление объекта
set startAngle to GetAngle, X
set startHeight to GetPos, Z
set swingTime to 1
set initialized to 1
endif

if ( MenuMode == 0 )
set waterlevel to GetWaterLevel
if ( waterlevel > startHeight )
	if ( timer == 0 )
		if ( reset == 0 )
			set timer to Random 100
			set timer to timer / 4
		endif
	endif

	set timer to ( timer + GetSecondsPassed )
	set currangle to GetAngle X
	; Здесь устанавливается значение для движения и вращения, в зависимости от частоты кадров:
	set xvalue to 10 * GetSecondsPassed
	set zvalue to 5 * GetSecondsPassed
	; ящик движется по своей оси x:
	; вращается вверх
	if ( timer < swingTime )
		set currangle to currangle + xvalue 
		SetAngle X currangle
		set zoffset to zoffset + zvalue 
	; вращается вниз
	elseif ( timer < (swingTime * 3) )
		set currangle to currangle - xvalue 
		SetAngle X currangle
		set zoffset to zoffset - zvalue 
	; снова вверх
	elseif (timer < (swingTime * 4 ) )
		set currangle to currangle + xvalue 
		SetAngle X currangle
		set zoffset to zoffset + zvalue 
	; сброс timer в 0
	else
		set timer to 0
		set reset to 1
		set zoffset to 0
		SetAngle, x, startangle
	endif

	set tmpoffset to waterlevel
	set tmpoffset to tmpoffset + zoffset
	; Ящик качается вверх и вниз
	SetPos Z tmpoffset
Else ; уровень воды нормальный
	SetAngle, X, startAngle
	SetPos Z startHeight
endif
endif

end

 

 

 

Маленький скрипт убирающий вещи с потолка и включающий на полу:

 

 

 

Start ggg_beleberda_off_divan

short proverka

If ( MenuMode == 1 )
Return
Endif

if ( proverka == 0 )
  if ( GetJournalIndex "quest_updown" = 50 ) ; запись появица, когда ГГ уговорит мага и тот согласитца.
     Disable ; вещь исчезает, та что на потолке.
     set proverka == 1
  endif
endif

End

 

Start ggg_beleberda_onn_divan

short proverka

If ( MenuMode == 1 )
Return
Endif

if ( proverka == 0 )
  if ( GetJournalIndex "quest_updown" = 50 ) ; запись появица, когда ГГ уговорит мага и тот согласитца.
     Enable ; вещь включаеца, та что стоит на полу.
     set proverka == 1
  endif
endif

End

 

 

 

Вот еще:

 

 

 

Begin Colony_E_4_F

if ( GetDisabled == 0 )
if ( ColonyState < 30 )
	Disable
endif
endif

if ( GetDisabled == 1 )
if ( ColonyState >= 30 )
	Enable
endif
endif

End

 

 

 

Можно сделать рядом два интерьера в одной ячейке, и после "восстановления" просто переместить индоор маркер к нужной двери. Избежим скриптов на каждой вещи) Можно устроить такую вакханалию...

 

 

И кстате, как прописать в квесте перемещение indoor-маркера?

:what:

Ссылка на комментарий
Поделиться на другие сайты

Хотя я немного загнул с перемещением и вращением объектов, это долго и нудно)) Можно еще заюзать функции отключения и включения, тобишь при достижении определенных условий (в нашем случае когда ГГ уломал мага вернуть все на место) происходит отключение вещей на потолке и включение тех, что стоят на полу.

 

Вот скрипт на примере вращения:

 

Маленький скрипт убирающий вещи с потолка и включающий на полу:

И шо, на каждую вещь этот скрипт делать не долго и нудно? :) Напоминает китайский (индийский?) код :)

Когда гораздо проще сделать дубликат ячейки.

Ссылка на комментарий
Поделиться на другие сайты

И шо, на каждую вещь этот скрипт делать не долго и нудно? :) Напоминает китайский (индийский?) код :)

Нифига не долго)) ненужно для каждой мебели писать этот скрипт, тех двух скриптов хватит на все провсе. Думаю не будет лень привязать их к мебелям. http://s52.radikal.ru/i137/1004/41/3812575edcb1.gif

Да и небудем спорить, свои предложения вынесли, дело за автором темы. http://s40.radikal.ru/i087/1004/fa/e760a36a2f37.gif

Изменено пользователем ИерихоN
Ссылка на комментарий
Поделиться на другие сайты

Да, пожалуй идея со скриптом мне больше нравится, чем копирование интерьера. Если я правильно понимаю, вы имели в ввиду что в комнате создаются две вещи - на вещь на потолке вешается скрипт "off", на вещь на полу вешается скрипт "on" и нижняя вещь невидна до тех пор пока не исчезнет верхняя по появлении записи в журнале? Кстати, конструктор на ваш скрипт что то ругается, не хочет воспринимать "start" (видимо имелось ввиду begin) и находит ошибку синтаксиса на строке "set proverka == 1", когда я его пытаюсь в плагин добавить.
Ссылка на комментарий
Поделиться на другие сайты

За косяки извиняюсь, привычка. :-D Ибо написал наотмяш.

Да и еще, к тому же в скрипт, который будет висеть на напольной мебели, добавить проверку на Enable. Тобишь чтобы они были выключены до тех пор, пока не появица нужное событие (данная запись в квесте.)

Щас скину в личку рабочий скрипт.

Ссылка на комментарий
Поделиться на другие сайты

  • 10 месяцев спустя...

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

Чтобы перевернуть всё назад, нужно всего лишь сделать чтобы игрок прошёл через дверь с нормальным, традиционно ориентированным маркером.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...