Сообщений: 35 • Страница 2 из 2 12
buttons
Сообщение отправлено: 08.07.2009 8:50:35
Blooddex
Белаз
Аватара
01.01.1930 0:00:00
medals
reputation
839
with us
Quote (kto)200?\'200px\':\'\'+(this.scrollHeight+5)+\'px\');\">Тут тебе прийдёться трудиться самому, подробных мануалов нет.
+1, мы с ktoже расковыряли сами как-то, хоть и вместе, вот и ты пробуй всковырнуть) Глядишь через полгодика ещё один квестер появиться)
01.01.1970 0:00:00
warnings
buttons
Сообщение отправлено: 08.07.2009 22:34:15
hunter
Белаз
12.08.1993 0:00:00
Йошкар-Ола
medals
reputation
525
with us
Да уж FenikS...Это \"расковырять\" не так-то просто сделать,поверь мне.
01.01.1970 0:00:00
warnings
buttons
Сообщение отправлено: 21.10.2009 17:38:42
Rock
Крейсер
Аватара
01.01.1990 0:00:00
medals
reputation
261
with us
Как я понял мало кто знает как делать квесты?(Почти риторический=) )
Ну если таковые все таки имеются было бы не плохо что бы они научили общественность, Я например карты могу а в квестах ваще не знаю как и че и хотел бы разобраться=) Может кто нито поднапряжеться над мануальчиками?=)
01.01.1970 0:00:00
warnings
buttons
Сообщение отправлено: 21.10.2009 18:00:56
Blooddex
Белаз
Аватара
01.01.1930 0:00:00
medals
reputation
839
with us
Rock, я квесты на средне-низком уровне знаю (2-3 сложных квеста сделать могу)
Но уроков по ним точно не будет.
01.01.1970 0:00:00
warnings
buttons
Сообщение отправлено: 21.10.2009 18:05:08
Rock
Крейсер
Аватара
01.01.1990 0:00:00
medals
reputation
261
with us
Жаль...еще кто нито знает?
01.01.1970 0:00:00
warnings
buttons
Сообщение отправлено: 21.05.2011 20:39:25
Семимахов
Молоковоз
01.01.1970 0:00:00
Самара
medals
reputation
137
with us
[list]Кратко о заданиях (они же квесты, они же миссии)[/list:u]

В игре задания включают в себя три большие группы:
[list][*]формальное описания заданий;[/*:m]
[*]диалоги между персонажами и игроком;[/*:m]
[*]сценарии реакций на игровые события, описываемые с помощью триггеров.[/*:m][/list:u]В качестве вспомогательных средств, повышающих качество заданий, используются видеоролики.
Все они хранятся в xml-файлах.

Формальные описания:
[list][*]data\gamedata\quests.xml - основные параметры заданий;[/*:m]
[*]data\if\diz\questinfoglobal.xml - дополнительные параметры как одиночных, так и динамических заданий.[/*:m][/list:u]Для их написания и редактирования используется программа ConversationEditor.exe из пакета SDK.

Диалоги:
[list][*]data\if\diz\dynamicdialogsglobal.xml - диалоги, используемые при получении динамических заданий;[/*:m]
[*]data\if\diz\dialogsglobal.xml - остальные диалоги.[/*:m][/list:u]Для их написания и редактирования используется программа ConversationEditor.exe из пакета SDK.

Триггеры:
[list][*]data\maps\<Имя_карты>\triggers.xml - основные триггеры;[/*:m]
[*]data\maps\<Имя_карты>\cinematriggers.xml - триггеры для проигрывания роликов.[/*:m][/list:u]
Для их редактирования хорошо использовать программу SciTE.exe из пакета SDK.

Поведение триггеров аналогично поведению пистолетного курка (в переводе с английского trigger - это курок).
Как и курок, игровой триггер может быть в двух состояниях - активном (взведённом) и неактивном (невзведённом).

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

В неактивном состоянии триггер игнорирует события, указанные в его описании.

[hr][/hr]
[list]Общие замечания[/list:u]

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

Игровое задание начинается с момента получения и заканчивается его выполнением или провалом.

Задания могут быть разной степени сложности от простых «сходи-принеси» до многоуровневых заданий,
состоящих из связанных друг с другом более простых заданий.

[hr][/hr]
Вообще, среднее руководство по заданиям может занять страниц пятнадцать в "офисе". И это без учёта описания функций для триггеров (страниц 50-70).
:D
01.01.1970 0:00:00
warnings
buttons
Сообщение отправлено: 22.05.2011 7:24:23
ScorpyX
Крейсер
Аватара
12.11.1986 0:00:00
Москва
medals
reputation
208
with us
-> Семимахов: спасибо за краткое описание
оно пойдет на пользу
01.01.1970 0:00:00
warnings
buttons
Сообщение отправлено: 04.07.2011 9:25:52
PEIN
Вен
01.01.1900 0:00:00
Боровичи
medals
reputation
41
with us
Плиз помогите я скачал SDK пакет прочитал инструкцию но не могу понять как делать квесты плиз кому не сложно помогите!!!
Спойлер

Спойлер

Спойлер
01.01.1970 0:00:00
warnings
buttons
Сообщение отправлено: 04.07.2011 20:03:01
Lertu
Белаз
Аватара
06.04.1991 0:00:00
Украина, Полтавская обл.
medals
reputation
709
with us
Семимахов мне иногда кажется что вы разработчик из Таргем :good:
kto буду ковырять твои квесты, отпишусь о результатах.
Жизнь одна, и не даётся дважды
01.01.1970 0:00:00
warnings
buttons
Сообщение отправлено: 04.07.2011 21:38:59
leangle
Урал
Аватара
01.01.1900 0:00:00
medals
reputation
326
with us
deus, что разработчик, это я сомневаюсь, человек, судя по всему, очень долго ковырял игру и во всем разобрался. А вообще, не стоит смотреть на квесты, созданные другими пользователями, они состоят из кусочков прочих квестов, поэтому лучше глядеть на уже существующие и разбираться по ходу, там ничего сложного нет. Если будет время и возможность, то напишу краткий мануал по созданию самого простого квеста.
01.01.1970 0:00:00
warnings
buttons
Сообщение отправлено: 28.05.2012 22:52:08
bat13
Ремонтник
Аватара
06.10.1974 0:00:00
Киев
medals
reputation
523
with us
Вот и я сюда добрался. :)

Значит так. Делаю задание. Игроку надо просто отогнать машину из одного города в другой, через три локации.
С точками разобрался, машину доставить можно:
Спойлер


Далее проблема. На добавленной карте, при появлении на ней, вокруг машины место на карте не "очищается".
(на втором скрине видно)
Кто знает как это решить?

Ну а теперь, что требуется.
1. Как выдать другую машину игроку. Хочу "заставить" игрока гнать именно определённую машину (например Урал).
2. Как, после диалога, открыть закрытый въезд на следующую локацию (сейчас они открыты через PassageActive="1")

Вот то, что у меня сейчас.
data\if\diz\dialogsglobal.xml
Спойлер
Код: Ctrl+A, Ctrl+C
      <!--Root/r1m1/Сюжетные/bat13-->

<Reply
name="bat13_01"
text="Здорово мужик! Ты кто, откуда?"
role="NPC"
scriptCondition="GetCurNpc():GetSpokenCount() == 0"
nextReplies="bat13_02" />

<Reply
name="bat13_02"
text="Меня зовут ????, я сын Петра из Глухого!"
role="PLAYER"
nextReplies="bat13_03" />

<Reply
name="bat13_03"
text="А, теперь понял откуда мне твоё лицо знакомо. Я хорошо знал твоего отца. Если ты такой же как и Айвен, то есть Пётр, то у меня есть для тебя работа. Нужно отогнать тачку на Техницию. Возьмёшся?"
role="NPC"
nextReplies="bat13_04 bat13_05" />

<Reply
name="bat13_04"
text="Извини, но я сейчас немного занят."
role="PLAYER"
scriptResult=" EndConversation()" />

<Reply
name="bat13_05"
text="Да, конечно."
role="PLAYER"
nextReplies="bat13_06" />

<Reply
name="bat13_06"
text="Ну и отлично, тачка во дворе. Твоя останется здесь. Так как ты сын моего старого друга Айвена... извини, Петра, то, так и быть, выделю тебе авансом пять сотен на дорожку. Счастливого пути и удачи."
role="NPC"
nextReplies="bat13_06 bat13_07" />

<Reply
name="bat13_07"
text="Уже выезжаю."
role="PLAYER"
scriptResult="GetCurNpc():SetSpokenCount( 1 ); TakeQuest('Bat1301_Quest'); AddPlayerMoney( 500 ); EndConversation()" />
data\if\diz\questinfoglobal.xml
Спойлер
Код: Ctrl+A, Ctrl+C
       <QuestInfo
questName="Bat1301_Quest"
briefDiz="Отогнать машину на Техницию."
fullDiz="Бэт Тринадцатый попросил отогнать машину на Техницию. По прибытии заплатят 10 штук."
isMainQuest="0">
<Map
name="r1m1"
targetObjName="ToR1M2" />
<Map
name="r1m2"
targetObjName="ToR1M5" />

<Map
name="r1m5"
targetObjName="minintown" />
</QuestInfo>
data\gamedata\quests.xml
Спойлер
Код: Ctrl+A, Ctrl+C
      <!--Root/r1m1/Опциональные/Bat13_1-->
<quest
Name="Bat1301_Quest"
Automatic="0"
SubQuestsCondition="and"
CheckAll="0"
ConditionToGive="all complete"
OnComplete="AddPlayerMoney(10000)"
OnTake='ShowCircleOnMinimapByName("minintown")' />

data\maps\r1m1\dynamicscene.xml
Спойлер
Код: Ctrl+A, Ctrl+C
       <Object
Flags="21"
Name="FromR1M2"
Belong="1100"
Prototype="genericLocation"
Pos="527.000 284.387 377.000"
Radius="10.000"
LookingTimeOut="10.000"
ExitLocation="ToR1M2" />

<Object
Flags="21"
Name="ToR1M2"
Belong="1100"
Prototype="genericLocation"
Pos="505.037 292.178 257.063"
Radius="100.000"
LookingTimeOut="100.000"
PassageAddress="r1m2 FromR1M1"
PassageActive="1" />

data\maps\r1m2\dynamicscene.xml
Спойлер
Код: Ctrl+A, Ctrl+C
       <Object
Flags="21"
Name="ToR1M5"
Belong="1100"
Prototype="genericLocation"
Pos="6551.054 70.770 434.103"
Radius="50.000"
LookingTimeOut="100.000"
PassageAddress="r1m5 FromR1M2"
PassageActive="1" />

<Object
Flags="21"
Name="FromR1M5"
Belong="1100"
Prototype="genericLocation"
Pos="6513.266 69.089 487.323"
Radius="10.000"
LookingTimeOut="10.000"
ExitLocation="ToR1M5" />

data\maps\r1m5\dynamicscene.xml
Спойлер
Код: Ctrl+A, Ctrl+C
       <Object
Flags="21"
Name="ToR1M2"
Belong="1100"
Prototype="genericLocation"
Pos="103.927 261.967 1375.683"
Radius="50.000"
LookingTimeOut="100.000"
PassageAddress="r1m2 FromR1M5"
PassageActive="1" />

<Object
Flags="21"
Name="FromR1M2"
Belong="1100"
Prototype="genericLocation"
Pos="168.278 261.967 1379.675"
Radius="10.000"
LookingTimeOut="10.000"
ExitLocation="ToR1M2" />



Подскажите, где, и как, и скаким бубном надо плясать :D , чтоб (при PassageActive="0") карты ("переезды") открывались, и как выдать игроку другую машину.
Третий Закон: Любая достаточно развитая технология неотличима от магии. (Кларк)
01.01.1970 0:00:00
warnings
buttons
Сообщение отправлено: 29.05.2012 15:03:33
Семимахов
Молоковоз
01.01.1970 0:00:00
Самара
medals
reputation
137
with us

"bat13" писал(а):

Далее проблема. На добавленной карте, при появлении на ней, вокруг машины место на карте не "очищается".
Кто знает как это решить?


Есть два случая:

1. Неверно указана ориентация карты в data/if/diz/levelinfo.xml.
Параметр "north" внутри тега <LevelInfo /> должен быть, как у всех прочих карт:
Код: Ctrl+A, Ctrl+C
      north="0 0 1"

2. Если глянуть dds-файл, то XnView выдаёт такую о нём информацию, как "Местположение". Правильно - "Верх-Слева".

"bat13" писал(а):

1. Как выдать другую машину игроку. Хочу "заставить" игрока гнать именно определённую машину (например Урал).


Самое простое - создать свой прототип(модель) в data/gamedata/gameobjects/vehicles.xml и накидать в него какое надо оружие и товары. Эту модель и выдавать.

В data/scripts/debug.lua есть функция AddPlayerVehicle(). Меняет машину игроку на указанную модель. Можно попробовать её использовать. Правда, выдаёт она машину в точке расположения камеры.

А вообще, алгоритм такой:
1. Создаётся команда, в которую передаётся машина у игрока.
Без проверки корректности создания команды: CreateTeam("TempTeam", "1100"):AddChild(GetPlayerVehicle()).
Если машина больше не нужна, то команда ликвидируется.

2. Создаётся команда с одной нужной машиной. Функция CreateVehicle() в data/scripts/server.lua.

3. Эта машина отдаётся игроку. Команда g_Player:AddChild(<созданная машина>).
Если кратенько, без проверки была ли создана машина, то команда такая:
g_Player:AddChild( CreateVehicle(<имя прототипа в кавычках>):GetVehicle(0) ).
К примеру, для "Урала":
Код: Ctrl+A, Ctrl+C
      g_Player:AddChild( CreateVehicle("Ural01"):GetVehicle(0) )

Команда, у которой забирается машина, ликвидируется автоматически. Для информации можно посмотреть в AddPlayerVehicle().

"bat13" писал(а):

2. Как, после диалога, открыть закрытый въезд на следующую локацию (сейчас они открыты через PassageActive="1")


С помощью метода SetProperty().
Локация может быть в двух состояниях: активном и неактивном. Переход будет только в случае активной локации. Поэтому если изначально сделать локацию неактивной (значение "0"), то после диалога её можно активировать.
К примеру, активация локации ToR1M5:
Код: Ctrl+A, Ctrl+C
      GetEntityByName("ToR1M5"):SetProperty("Active",1)

Дополнение от 02.06:
Можно обойтись без изменения активности локации, а менять только параметр PassageActive:
Код: Ctrl+A, Ctrl+C
      GetEntityByName("ToR1M5"):SetProperty("PassageActive",1)
01.01.1970 0:00:00
warnings
buttons
Сообщение отправлено: 24.01.2015 12:09:52
Роман Атаман
Вен
19.04.1993 0:00:00
medals
reputation
37
with us
Ребят, я в миссиях не бум бум, но хочется разобраться, например каким образом при исследовании знаков в восточном игрок подписывается на то что бы отвести их в мидрагд?
Будь весел)), всех ждёт один конец)), но как он придёт решай сам)
01.01.1970 0:00:00
warnings
buttons
Сообщение отправлено: 24.01.2015 12:19:40
kto
Официально сумасшедший
Аватара
10.01.1990 0:00:00
Киев
medals
reputation
2523
with us
Он заежает в область (локейшн), которая есть на карте (локации), на которую подписано событие (тригер), который меняет флаг квеста на выполнено и выдаёт новый.
__________!///_ _____
_________( @@ )_____
_______ooO-(_)-o o____
Пришёл, увидел, забанил. Ещё вопросы?


Если у Вас нет бана - это не Ваша заслуга - это наше упущение.
"Уровень профиля от John"
01.01.1970 0:00:00
warnings
buttons
Сообщение отправлено: 24.01.2015 13:31:46
Роман Атаман
Вен
19.04.1993 0:00:00
medals
reputation
37
with us
Получается именно триггер подписывает принуждённо после выпонения миссии "осмотреть поле" на миссию "рассказать об этом в мидрагде" так да? А триггер находится в папке maps/r1m2 да?

Добавлено:
А где указывается содержание кузова например у двух клопов которые в начале после сценки с первым клопом нападают?
Будь весел)), всех ждёт один конец)), но как он придёт решай сам)
01.01.1970 0:00:00
warnings
Сообщений: 35 • Страница 2 из 2 12