FlyApple
7 августа 2017 в 11:57
Отправлено: 07.08.2017 11:57:10
Столкнулся с очередной проблемой. Пытаюсь создать квест. Где то допускаю ошибку , так как не все работает.
И так сам квест. В неком баре сидит дядя и просит привезти ему табак( табак здесь не как товар , а как квестовый предмет).
Персонаж сидит в баре с несколькими репликами. Первая что выдает квест имеет такие скрипты.
- Спойлер
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.... не срабатвает.
Может правда что то забыл ? Надеюсь на помощь.