Сообщений: 37 • Страница 2 из 2 12
buttons
Сообщение отправлено: 06.08.2017 18:45:19
Семимахов
Молоковоз
01.01.1970 0:00:00
Самара
medals
reputation
137
with us
Забавный баг. Проявляется только по отношению к оружию, которое было установлено, а потом снято в инвентарь. Пушка остаётся на месте, где была установлена на машине и просто висит, никак не мешая, сквозь неё спокойно можно проехать. Исчезает при сохранении-загрузке или переходе на другую карту. Можно удалить по ID, подсмотрев его в сохранке, когда пушка была установлена в слоте.
01.01.1753 0:00:00
warnings
buttons
Сообщение отправлено: 06.08.2017 20:58:02
FlyApple
Вен
01.01.0001 0:00:00
medals
reputation
28
with us
И да, еще такое дело. Создал персонажа, посадил в бар. Все ок. НО теперь хочу что бы этот персонаж не в баре был а в своей собственной локации. То есть просто въезжаю в нужную локацию и появляется диалог. Локацию создал. Теперь надо его туда вписать через триггер. Смотрел как сделаны такие персонажи , например ботаник в Крае, там триггер активирует квест , но нет ни слова об открытии диалогового окна. А так как мой нпс не квестовый и разговор с ним никаких задач новых не ставит,я не знаю какой скрипт нужен что бы он реагировал на въезд в локацию.
01.01.1753 0:00:00
warnings
buttons
Сообщение отправлено: 07.08.2017 11:57:10
FlyApple
Вен
01.01.0001 0:00:00
medals
reputation
28
with us
Столкнулся с очередной проблемой. Пытаюсь создать квест. Где то допускаю ошибку , так как не все работает.
И так сам квест. В неком баре сидит дядя и просит привезти ему табак( табак здесь не как товар , а как квестовый предмет).
Персонаж сидит в баре с несколькими репликами. Первая что выдает квест имеет такие скрипты.
Спойлер

TActivate('TABAKCREATE') - триггер что создает табак в нужном месте на карте
TakeQuest("r1m1_find_tabak") - сам квест
GetCurNpc():SetSpokenCount( 1 );
EndConversation()


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

Квестовый предмет не появляется в нужном месте. Уж не знаю это результат кривого триггера, или я неправильно создал сам пердмет.

Триггер создающий предмет выглядит так
Спойлер

<trigger Name="TABAKCREATE" active="0">
<event timeout="0" eventid="GE_TIME_PERIOD" />
<script>
CreateNewDummyObject( "tabak_quest_item", "tabak_quest_item", -1, -1, CVector(2454.126 320.620 1987.958), Quaternion(0.0000, 0.0000, 0.0000, 1.0000), 0)
trigger:Deactivate()
</script>
</trigger>


Сам квестовый предмет
Спойлер

Файл model_names.xml - <Item id="tabak_quest_item" locForm="0" value="Табак"/>
Файл modelicons.xml - <Item id="tabak_quest_item" file="data\if\ico\InventoryDlg\goods\tobacco.dds" file1="data\if\ico\InventoryDlg\goods\tobacco.dds"/>
Файл Servers.xml - <Item
id="tabak_quest_item"
file="data\models\AnimModels.xml"/> (здесь примечание, эту запись нужно добавить в servers всех карт или достаточно нужой мне области?)
Файл questitems.xml - <Prototype
Class = "QuestItem"
Name = "tabak_quest_item"
ModelFile = "tobacco"
ResourceType = "TABAK_QUEST" />
Файл resoursetypes.xml - <Type Name="TABAK_QUEST" />
Файл animomodels.xml - <model
id="tabak_quest_item"
shadow="0"
shadowVolume="0"
windwavy="0"
file="data\models\Goods\tobacco.gam" />
Вроде ничего не забыл , не считая файлов где описание предмета в игре . Краткое и полное , пока не делал. это вроде не критично. просто без описания будет .


Вот сам триггер на поднятие предмета
Спойлер

<trigger Name="TABAK" active="1">
<event eventid="GE_OBJECT_ENTERS_LOCATION" ObjName="Tabak_Loc" />
<script>
AddFadingMsgByStrIdFormatted( "fm_player_add_thing", "tabak_quest_item ")

local rtr = GetEntityByName ("tabak_quest_item ")
if rtr then rtr:Remove() end

CompleteQuestIfTaken( 'r1m1_find_tabak' )

AddQuestItem("tabak_quest_item")
TakeQuest('r1m1_give_tabak')
trigger:Deactivate()
</script>
</trigger>


Сначала грешил на локацию, думал что она не создается , так как создавал ее через файлы, а не в редакторе . Но на второй копии игры с СДК проделал тоже самое с созданием локации, и проверил появилась ли она , найдя ее на карте в СДК. Все появилось , значит локация создается, и Проблема в чем то другом.
Дальше идет квест на возвращение с табаком , но до него еще не дошел, из-за проблем с первой частью. Поэтому не знаю ждут ли меня там подводные камни или нет.
И кстати метка на карте не появляется, в нужном месте. Функция showcircleonminimap.... не срабатвает.

Может правда что то забыл ? Надеюсь на помощь.
01.01.1753 0:00:00
warnings
buttons
Сообщение отправлено: 07.08.2017 19:46:44
Семимахов
Молоковоз
01.01.1970 0:00:00
Самара
medals
reputation
137
with us
Ботаник привязан к локации "BotanicHouse" и диалог с ним запускается если игрок входит в локацию и при этом выполняются условия для показа реплик Botanik_hellodlg0 и Botanik_hellodlg1. Belong должен быть как у игрока 1100. Всё это задаётся в файле dynamicscene.xml:
Спойлер
Код: Ctrl+A, Ctrl+C
       <Object
Flags="21"
Name="BotanicHouse"
...
<Object
Name="Botanik"
...
SpokenCount="0" />
</Object>
Надо просто персонажа из бара пересадить в свою локацию.

Добавлять в animomodels.xml модель "tabak_quest_item" - лишнее, так как для tobacco.gam уже есть модель "tobacco". Поэтому добавлять в animomodels.xml и Servers.xml ничего не нужно, разве что собираешься добавить свой gam-файл.
В CVector координаты разделяются запятыми. Поэтому:
Спойлер
Код: Ctrl+A, Ctrl+C
      CreateNewDummyObject( "tobacco", "tabak_quest_item", -1, -1, CVector(2454.126, 320.620, 1987.958), Quaternion(0.0000, 0.0000, 0.0000, 1.0000), 0)

В триггере TABAK вместо rtr:Remove() лучше использовать RemoveObject(rtr), так как удаление более корректное.
01.01.1753 0:00:00
warnings
buttons
Сообщение отправлено: 07.08.2017 22:32:29
FlyApple
Вен
01.01.0001 0:00:00
medals
reputation
28
with us
Да , предмет не спавнился из-за запятых которые я не поставил.

Но все равно не все гладко. В обоих квестах что пока сделал не появляется метка , показывающая куда ехать , хотя функция выставлена в обоих случаях.
Код: Ctrl+A, Ctrl+C
      
ShowCircleOnMinimapByName("...")


А с квестом на табак при подъезде к предмету триггер не срабатывает. Хотя вроде в нем ошибок не заметил
Спойлер

<trigger Name="TABAK" active="1">
<event eventid="GE_OBJECT_ENTERS_LOCATION" ObjName="Tabak_Loc" />
<script>
AddFadingMsgByStrIdFormatted( "fm_player_add_thing", "tabak_quest_item")

local rtr = GetEntityByName ("tabak_quest_item")
if rtr then RemoveObject(rtr) end

CompleteQuestIfTaken( 'r1m1_find_tabak' )

AddQuestItem("tabak_quest_item")
TakeQuest('r1m1_give_tabak')
trigger:Deactivate()
</script>
</trigger>

Были сомнения насчет кавычек и апострофов , но попробовал и с одними и с другими. Ничего не изменилось.


И да , насчет персонажа что в своей локации сидит ,по прежнему при въезде в локацию , персонаж не откликается , диалоги прописаны, белонг 1100 .

Спойлер

<Object
Flags="21"
Name="Krafter_location"
Belong="1100"
Prototype="genericLocation"
Pos="950.8252 72.000 4172.267"
Radius="15.000"
LookingTimeOut="20.000" />
<Object
Name="Krafter_Ridzin"
Belong="1100"
Prototype="NPC"
ModelName="r1_man"
skin="2"
cfg="78"
helloReplyNames="Dlg_krafter"
SpokenCount="0" />


И вообще с этими квестами проблем столько , сделать бы один без ошибок , остальные как по маслу пойдут. Но нет, подводные камни))
01.01.1753 0:00:00
warnings
buttons
Сообщение отправлено: 08.08.2017 21:44:12
Traygen
Админ группы в VK
Аватара
01.01.1900 0:00:00
Санкт-Петербург
medals
reputation
559
with us
Отметка карты ставится вручную в questinfoglobal.
"Уровень профиля"
01.01.1753 0:00:00
warnings
buttons
Сообщение отправлено: 08.08.2017 22:22:07
FlyApple
Вен
01.01.0001 0:00:00
medals
reputation
28
with us
Я вообще не понимаю логику этой игры.
Полез ставить отметки "вручную", там само собой все понятно. Поставил. Проверяю. Нет отметок. Смотрю снова что может быть не так.Сравниваю записи моих квестов и оригинальных . Нахожу расхождение. Почему то Редактор квестов в questinfo нет отделяет одну запись от другой.

Вот как записан оригинальный квест.
Код: Ctrl+A, Ctrl+C
      
<QuestInfo
questName="r1m1_Hospital_Quest"
briefDiz="Обыскать заброшенную больницу"
fullDiz="Мне рассказали, что неподалеку есть заброшенная больница. Думаю, там можно найти что-нибудь интересное."
isMainQuest="0">
<Map
name="r1m1"
targetObjName="Hospital_Loc" />
</QuestInfo>

А вот так записаны квесты которые я делал через СДК
Код: Ctrl+A, Ctrl+C
      
<QuestInfo
questName="r1m1_find_tabak"
briefDiz="Найти табак для Бруто"
fullDiz="Бруто сказал искать в районе заброшеной больницы."
isMainQuest="0" />
<Map
name="r1m1"
targetObjName="Hospital_Loc" />


Отсюда видно что СДК не "закрывает" новые квесты с помощью "</Questinfo>"

Закрыл вручную. Думаете помогло? Ага,размечтался, называется. При проверке заметил что исчезли из игры вообще все отметки, будь то побочные квесты, будь то оригинальный сюжет. Исчез список заданий. Нет, их по прежнему можно выполнять, поговорить с Серго например. Выйдя из города на экране отобразиться что задание выполнено, что получен новый квест, но ничего во вкладке заданий , и никаких обозначений)
У меня уже мозг кипит от этого всего)
01.01.1753 0:00:00
warnings
buttons
Сообщение отправлено: 08.08.2017 22:47:14
FlyApple
Вен
01.01.0001 0:00:00
medals
reputation
28
with us
Все, нащел проблему . Опять таки в синтаксисе.
Оффтоп:

На форуме уже не появится функции редактирования сообщений?
01.01.1753 0:00:00
warnings
buttons
Сообщение отправлено: 12.08.2017 11:32:16
Семимахов
Молоковоз
01.01.1970 0:00:00
Самара
medals
reputation
137
with us
Как понимаю, кроме срабатывания триггера всё работает как надо. Триггер TABAK активен с самого начала и если заехать в локацию до того, как появится предмет, то триггер деактивируется и больше не сработает.
Поэтому надо либо активировать его после получения задания, либо помещать квестовый предмет в нужное место в начале игры, как это сделано с "medicine_box".
01.01.1753 0:00:00
warnings
buttons
Сообщение отправлено: 12.08.2017 17:27:59
FlyApple
Вен
01.01.0001 0:00:00
medals
reputation
28
with us
Да , все решил кроме этого триггера. Пока отказался от этой идеи . Но в будущем вернусь к нему. Делал как ты сказал, на примере medcine_box , создавал табак в начале игры. Но тогда триггеры вообще ломались , и игра шла без сюжета, без радара, в общем весь фаил с триггерами переставал работать. С другими функциями все нормально. Научился спавнить авто, команды авто , заставлять их двигаться куда нужно. В общем за помощь спасибо) Еще не раз сюда напишу с распросами, но пока вроде мне ясно)
01.01.1753 0:00:00
warnings
buttons
Сообщение отправлено: 12.08.2017 20:18:54
FlyApple
Вен
01.01.0001 0:00:00
medals
reputation
28
with us
Ах да , совсем забыл. Можно ли как то сделать что бы с противников падали только товары? То есть убрать все оружие из дропа.
01.01.1753 0:00:00
warnings
buttons
Сообщение отправлено: 03.09.2017 10:11:17
Семимахов
Молоковоз
01.01.1970 0:00:00
Самара
medals
reputation
137
with us
В data\gamedata\globalproperties.xml есть параметр ProbabilityToDropGunsFromDeadVehicles - вероятность выпадения оружия из подбитых машин. Попробуй поставить ноль.
01.01.1753 0:00:00
warnings
buttons
Сообщение отправлено: 04.01.2018 0:09:52
exmachina_76
Молоковоз
01.01.0001 0:00:00
medals
reputation
178
with us
Семимахов,

Цитата:

поскольку желающие предложить свой квест отсутствуют, начнём с малого и для начала оживим разбойника Жельванто из Рощи друидов.


Этот персонаж у меня вообще не появляется. Всё сделал точно по инструкции.
FlyApple,

Цитата:

Научился спавнить авто, команды авто , заставлять их двигаться куда нужно.


Как? Можете пожалуйста написать туториал, как это можно сделать?
01.01.1753 0:00:00
warnings
buttons
Сообщение отправлено: 04.01.2018 23:55:14
exmachina_76
Молоковоз
01.01.0001 0:00:00
medals
reputation
178
with us
С Жельванто всё получилось.
01.01.1753 0:00:00
warnings
buttons
Сообщение отправлено: 09.01.2018 18:56:05
exmachina_76
Молоковоз
01.01.0001 0:00:00
medals
reputation
178
with us
Как делать караваны я разобрался, не без посторонней помощи. Если кому интересно - расскажу как, я не жадный. Будет время - напишу туториал.
01.01.1753 0:00:00
warnings
buttons
Сообщение отправлено: 27.09.2018 11:53:33
KoYoT
Молоковоз
Аватара
01.12.1987 0:00:00
medals
reputation
153
with us
Ы где туториал?))
Моя база знаний по МОДДИНГУ и СТРУКТУРЕ движка Ex Machine Meridian113.
/viewtopic.php?p=53905#p53905
Спасибо ScorpyX, Myx, Wooffallo, Kto и другим, кто помогал мне тогда.
01.01.1753 0:00:00
warnings
buttons
Сообщение отправлено: 27.09.2018 16:02:10
exmachina_76
Молоковоз
01.01.0001 0:00:00
medals
reputation
178
with us
Некогда писать. Там принцип такой же как у революционеров в Крае, ничего сложного. Просто найдите в triggers.xml соответствующие строчки и делайте также.
01.01.1753 0:00:00
warnings
Сообщений: 37 • Страница 2 из 2 12