Перейти к контенту

Создание квеста


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

riddik121, всё верно. В универсальном гулаге работа составляются исходя из названия точек путей. Все параметры берутся по умолчанию, обязательными, как правило, являются точки пути, но поскольку их мы и пишем, то с этим проблем не возникает. Чего не могу сказать о возможности работы снайпера, где обязательным условием является значение true для параметра sniper, а также организации лидера в схеме patrol.

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

Ссылка на комментарий

 

<dialog id="_am_trade_sidr_d1">

<phrase_list>

<phrase id="0">

<text>Здарова, эээ... Ты кто?</text>

<next>1</next>

</phrase>

<phrase id="1">

<text>Я торговец местный... Печальный вид у тебя</text>

<next>2</next>

</phrase>

<phrase id="2">

<text>Торговец? Местный? Где это я очутился?</text>

<next>3</next>

</phrase>

<phrase id="3">

<text>Лучше тебе пока отдохнуть перед предстоящим...</text>

<next>4</next>

</phrase>

<phrase id="4">

<text>Послушай, что за загадки?</text>

<next>5</next>

</phrase>

<phrase id="5">

<text>Никаких загадок. Каким-то загадочным образом ты очутился в аномалии под название Зона. Тебя зачем то ко мне Доктор приволок, со словами что из тебя что-то хорошее и получется... Ну да ладно.</text>

<next>6</next>

</phrase>

<phrase id="6">

<text>Что?</text>

<next>7</next>

</phrase>

<phrase id="7">

<text>Я тебе немножко помогу, раз Доктор попросил. </text>

<next>8</next>

</phrase>

<phrase id="8">

<text>Зачем?</text>

<next>9</next>

</phrase>

<phrase id="9">

<text>Повторяю, раз Доктор попросил. А зачем ты ещё живой, так об этом ты лучше у него поинтересуйся. Он мужик лысый и седой. У него волосы сначала поседели от увиденного в зоне, а потом и вовсе выпали. Да ладно, это я шуткую так... Не важно в общем. Вот тебе аптечка и пару бинтов на первое время... Может даже и на совсем короткое... От тебя зависит, сколько ты тут проживёшь ещё.</text>

<action>_am_dialogs_esc.get_medkit_and_bandages</action>

<next>10</next>

</phrase>

<phrase id="10">

<text>А что есть варианты?</text>

<next>11</next>

</phrase>

<phrase id="11">

<text>Загадай число от ста до тысячи</text>

<next>12</next>

</phrase>

<phrase id="12">

<text>Загадал</text>

<next>13</next>

</phrase>

<phrase id="13">

<text>Вот примерно столько и твоих вариантов на выживание в Зоне.</text>

<next>14</next>

</phrase>

<phrase id="14">

<text>В общем так, вот тебе и пестолетик с пульками, ты если что, то постреляй по собачкам не добрым, которые вдруг отнесутся к тебе и захотят с тобой поиграть... Вот тебе первое задание: выйдешь сейчас из бункера, повернёшь на лево, запомни, на лево, там где-то артефактик завалялся простенький. Принесёшь мне его в знак благодарности за помощь, так я тебе ещё и приплочу немножко за него...</text>

<action>_am_dialogs_esc.get_wpn_and_ammos</action>

<next>15</next>

</phrase>

<phrase id="15">

<text>Ну... Хорошо, я согласен.</text>

<next>16</next>

</phrase>

<phrase id="16">

<text>Тебе всё понятно, что тут всё не просто так?</text>

<next>17</next>

</phrase>

<phrase id="17">

<text>Да, спасибо, я пошел...</text>

<action>dialogs.break_dialog</action>

</phrase>

</phrase_list>

</dialog>

 

 

 

 

function get_medkit_and_bandages(first_speaker, second_speaker)

 

end

 

function get_wpn_and_ammos(first_speaker, second_speaker)

 

end

 

 

 

К сидору приписываю

<actor_dialog>_am_trade_sidr_d1</actor_dialog>

 

 

 

Диалог показывается, всё норм, но стабильные вылеты

 

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

Ссылка на комментарий

AutoGnom, безлоговый вылет происходит по причине того, что ты пишешь непосредственно сам текст в структуру диалога, вместо того, чтобы указывать id на нужный текст в файлах локализации. Сделай "правильно" и вылетов не будет, во всяком случае безлоговых.

Ссылка на комментарий

я вкурсе, но я хочу сделать что бы не однотипный

 

Много ошибок, в таком коротком предложении...

Устное предупреждение.

ColR_iT

Изменено пользователем ColR_iT
Ссылка на комментарий

Скажите пожалуйста в чём проблема с НС5 Тайные тропы 1, создал новые сложные сюжетные квесты, новых нпс, всё прописал и проверил, захожу в игру, нанинаю диалог, квест даёт новый нпс, все условия работают, но при попытке добавления новых скриптов в new_dialog или braad_test на выпелнение квеста(убил нужных нпс, принёс нужное кол-во предметов), скрипт перестаёт читаться и квест невозможно выполнить, более того, все скрипты в new_dialog и braad_test перестают читаться игрой вообще, сюжет пройти с новыми квестами невозможно, и старые квесты по сюжету перестают работать, так как невыполняются нужные скрипты в new_dialog и braad_test. Пробовал создать новые скрипт для новых квестов, прописал всё правильно, новый скрипт почему то тоже не читается. Помогите пожалуйста, может где-то что-то забыл указать, могу выложить текст с тем, что именно изменял в файлах. Я пробовал вставлять свои квесты в другие моды, там всё работает.

Изменено пользователем Жека Сталкер НС5
  • Нравится 1
Ссылка на комментарий
скрипт перестаёт читаться и квест невозможно выполнить

 

Здесь внимательно нужно смотреть последние правки в скрипте. В конце какой-нибудь функции, возможно поставил лишний end либо не дописал end и скрипт перестал работать.

Ссылка на комментарий

Здесь внимательно нужно смотреть последние правки в скрипте. В конце какой-нибудь функции, возможно поставил лишний end либо не дописал end и скрипт перестал работать.

Вот мои функции скрипта, можешь проверить правильность составления:

function 5x_krovosos_sar_spawn()
alife():create("bloodsucker_strong",vector():set(72.2404251098633,-0.0141735374927521,29.42),10537,2430)
alife():create("bloodsucker_strong",vector():set(73.2404251098633,-0.0141735374927521,32.42),10537,2430)
alife():create("bloodsucker_strong",vector():set(74.2404251098633,-0.0141735374927521,29.42),10537,2430)
alife():create("bloodsucker_strong",vector():set(73.2404251098633,-0.0141735374927521,32.42),10537,2430)
alife():create("bloodsucker_strong",vector():set(72.2404251098633,-0.0141735374927521,29.42),10537,2430)
end

function aes_bitva_stalkers()
alife():create("aes_mono_master_guard",vector():set(420.46102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_mono_master_guard",vector():set(422.46102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_mono_master_guard",vector():set(424.46102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_mono_master_guard",vector():set(426.46102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_mono_master_guard",vector():set(428.40102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_mono_master_guard",vector():set(430.46102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_mono_master_guard",vector():set(440.46102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_mono_master_guard",vector():set(442.46102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_voen_master_attak1",vector():set(444.46102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_voen_master_attak2",vector():set(450.46102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_voen_master_attak3",vector():set(452.46102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_voen_master_attak4",vector():set(454.46102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_voen_master_attak5",vector():set(456.46102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_voen_master_attak6",vector():set(458.40102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_voen_master_attak7",vector():set(460.46102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_voen_master_attak8",vector():set(462.46102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_voen_master_attak9",vector():set(464.46102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_voen_master_attak10",vector():set(466.46102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_voen_master_attak11",vector():set(468.46102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_voen_master_attak12",vector():set(470.46102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_voen_master_attak13",vector():set(472.46102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_voen_master_attak14",vector():set(474.46102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_voen_master_attak15",vector():set(476.40102905273,-0.10446,-32.680702209473),178213,2306)
alife():create("aes_voen_master_attak16",vector():set(480.46102905273,-0.10446,-32.680702209473),178213,2306)
end

function aes_bitva_have(task, info)
 if db.actor and db.actor:has_info("aes_voen_master_attak1_dead") and db.actor:has_info("aes_voen_master_attak2_dead") and db.actor:has_info("aes_voen_master_attak3_dead") and db.actor:has_info("aes_voen_master_attak4_dead") and db.actor:has_info("aes_voen_master_attak5_dead") and db.actor:has_info("aes_voen_master_attak6_dead") and db.actor:has_info("aes_voen_master_attak7_dead") and db.actor:has_info("aes_voen_master_attak8_dead") and db.actor:has_info("aes_voen_master_attak9_dead") and db.actor:has_info("aes_voen_master_attak10_dead") and db.actor:has_info("aes_voen_master_attak11_dead") and db.actor:has_info("aes_voen_master_attak12_dead") and db.actor:has_info("aes_voen_master_attak13_dead") and db.actor:has_info("aes_voen_master_attak14_dead") and db.actor:has_info("aes_voen_master_attak15_dead") and db.actor:has_info("aes_voen_master_attak16_dead") then
 return db.actor:give_info_portion("aes_bitva_have")  
end

function aes_bitva_done(first_speaker, second_speaker)
dialogs.relocate_money(first_speaker, 100000, "in")
end

function voen_pribaza_spawn()
alife():create("pri_baza_voen1",vector():set(-144.17024609375,-2.392861366272,48.028583526611),2530,2141)
alife():create("pri_baza_voen2",vector():set(-144.17024609375,-2.392861366272,48.028583526611),2530,2141)
alife():create("pri_baza_voen3",vector():set(-144.17024609375,-2.392861366272,48.028583526611),2530,2141)
alife():create("pri_baza_voen4",vector():set(-122.07585144043,-2.3936910629272,44.494312286377),6443,2253)
alife():create("pri_baza_voen5",vector():set(-122.07585144043,-2.3936910629272,44.494312286377),6443,2253)
alife():create("pri_baza_voen6",vector():set(-122.07585144043,-2.3936910629272,44.494312286377),6443,2253)
alife():create("pri_baza_voen7",vector():set(-108.30318460928,-2.4125785827637,39.1335105896),12158,2248)
alife():create("pri_baza_voen8",vector():set(-108.30318460928,-2.4125785827637,39.1335105896),12158,2248)
alife():create("pri_baza_voen9",vector():set(-108.30318460928,-2.4125785827637,39.1335105896),12158,2248)
alife():create("pri_baza_voen10",vector():set(-91.810256958008,-2.3960652351379,38.575912475586),21658,2139)
alife():create("pri_baza_voen11",vector():set(-91.810256958008,-2.3960652351379,38.575912475586),21658,2139)
alife():create("pri_baza_voen12",vector():set(-91.810256958008,-2.3960652351379,38.575912475586),21658,2139)
alife():create("pri_baza_voen13",vector():set(-88.584671020508,-2.2287626266479,12.929332733154),23219,2139)
alife():create("pri_baza_voen14",vector():set(-88.584671020508,-2.2287626266479,12.929332733154),23219,2139)
alife():create("pri_baza_voen15",vector():set(-88.584671020508,-2.2287626266479,12.929332733154),23219,2139)
end

function voenpri_baza_dead_have(task, info)
 if db.actor and db.actor:has_info("pri_baza_voen1_dead") and db.actor:has_info("pri_baza_voen2_dead") and db.actor:has_info("pri_baza_voen3_dead") and db.actor:has_info("pri_baza_voen4_dead") and db.actor:has_info("pri_baza_voen5_dead") and db.actor:has_info("pri_baza_voen6_dead") and db.actor:has_info("pri_baza_voen7_dead") and db.actor:has_info("pri_baza_voen8_dead") and db.actor:has_info("pri_baza_voen9_dead") and db.actor:has_info("pri_baza_voen10_dead") and db.actor:has_info("pri_baza_voen11_dead") and db.actor:has_info("pri_baza_voen12_dead") and db.actor:has_info("pri_baza_voen13_dead") and db.actor:has_info("pri_baza_voen14_dead") and db.actor:has_info("pri_baza_voen15_dead") then
 return db.actor:give_info_portion("aes_bitva_have")  
end

function voenpri_baza_dead_done(community1, community2)
relation_registry.set_community_goodwill ("monolith", "actor", 4000)
end

function bar_agents_spawn()
alife():create("chehov",vector():set(54.889999389648,-0.54392206668854,196.0470123291),25680,1242)
alife():create("kremen",vector():set(48.424068450928,-0.049947947263718,202.56573486328),23421,1242)
alife():create("sv_veter1",vector():set(50.424068450928,-0.049947947263718,202.56573486328),23421,1242)
alife():create("sv_veter2",vector():set(50.424068450928,-0.049947947263718,202.56573486328),23421,1242)
alife():create("sv_veter3",vector():set(50.424068450928,-0.049947947263718,202.56573486328),23421,1242)
alife():create("sv_exp1",vector():set(52.424068450928,-0.049947947263718,200.56573486328),23421,1242)
alife():create("sv_exp2",vector():set(52.424068450928,-0.049947947263718,200.56573486328),23421,1242)
alife():create("sv_exp3",vector():set(52.424068450928,-0.049947947263718,200.56573486328),23421,1242)
end

function nagrada1(first_speaker, second_speaker)
dialogs.relocate_money(first_speaker, 50000, "in")
end

function otdal_money(first_speaker, second_speaker)
dialogs.relocate_money(first_speaker, 15000, "out")
end

function friendsvoboda(community1, community2)
relation_registry.set_community_goodwill("freedom", "actor", 4000)
end

function create_plichko_restr()
local sr = alife():create("space_restrictor",vector():set(224.667,-5.448,125.996),56632,1198)
local custom = [[[logic]
active = sr_idle
[sr_idle]
on_npc_in_zone = 30176|]]..sr:name()..[[|nil %+plichko_mesto%]]
end

function create_attak7_restr()
local sr = alife():create("space_restrictor",vector():set(136.671,-4.825,21.034),36897,1237)
local custom = [[[logic]
active = sr_idle
[sr_idle]
on_npc_in_zone = 30177|]]..sr:name()..[[|nil %+dolg_attak7_mesto%]]
end

function create_attak8_restr()
local sr = alife():create("space_restrictor",vector():set(221.044,-0.011,-7.659),55112,1261)
local custom = [[[logic]
active = sr_idle
[sr_idle]
on_npc_in_zone = 30178|]]..sr:name()..[[|nil %+dolg_attak8_mesto%]]
end

function spawn_dolg_attak()
local obj=alife():create("dolg_attak1",vector():set(30.315,-0.001,237.997),23432,1244)
local obj=alife():create("dolg_attak2",vector():set(30.873,-0.001,241.597),23434,1244)
local obj=alife():create("dolg_attak3",vector():set(31.548,-0.001,244.481),23434,1244)
local obj=alife():create("dolg_attak4",vector():set(33.570,-0.026,248.539),22882,1244)
local obj=alife():create("dolg_attak5",vector():set(39.319,-0.060,248.262),22702,1244)
local obj=alife():create("dolg_attak6",vector():set(36.416,-0.040,248.317),22702,1244)
local obj=alife():create("dolg_attak9",vector():set(36.628,-0.001,244.252),23434,1244)
local obj=alife():create("dolg_attak10",vector():set(41.306,-0.001,240.706),22531,1244)
local obj=alife():create("bratok_attak1",vector():set(102.443,-0.001,123.137),32223,1219)
local obj=alife():create("bratok_attak2",vector():set(139.499,0.100,90.058),37531,1184)
local obj=alife():create("bratok_attak3",vector():set(131.289,0.097,54.954),36252,1227)
local obj=alife():create("bratok_attak4",vector():set(131.289,0.097,54.954),36252,1227)
local obj=alife():create("bratok_attak5",vector():set(102.443,-0.001,123.137),32223,1219)
local obj=alife():create("bratok_attak6",vector():set(131.289,0.097,54.954),36252,1227)
local obj=alife():create("bratok_attak7",vector():set(131.289,0.097,54.954),36252,1227)
end

function dolg_attak_dialog_have(task, info)
 if db.actor and db.actor:has_info("plichko_mesto") and db.actor:has_info("dolg_attak7_mesto") and db.actor:has_info("dolg_attak8_mesto") and db.actor:has_info("bratok_attak1_dead") and db.actor:has_info("bratok_attak2_dead") and db.actor:has_info("bratok_attak3_dead") and db.actor:has_info("bratok_attak4_dead") and db.actor:has_info("bratok_attak5_dead") and db.actor:has_info("bratok_attak6_dead") and db.actor:has_info("bratok_attak7_dead") then
 return db.actor:give_info_portion("dolg_attak_dialog_have")  
end

function spawn_voronin_bratki()
local obj=alife():create("bratok_voronin1",vector():set(250.656,0.594,-67.682),63848,1271)
local obj=alife():create("bratok_voronin2",vector():set(262.999,1.395,-82.928),66257,1273)
local obj=alife():create("bratok_voronin3",vector():set(238.250,2.213,-103.419),60916,1272)
local obj=alife():create("bratok_voronin4",vector():set(221.870,2.105,-95.975),55289,1275)
end

function spawn_borov()
local obj=alife():create("borov_leader",vector():set(131.289,0.097,54.954),36252,1227)
end

function voronin_bar_dialog_have(task, info)
 if db.actor and db.actor:has_info("borov_leader_dead") then
 return db.actor:give_info_portion("voronin_bar_dialog_have")  
end

function voronin_bar_dialog_done(first_speaker, second_speaker)
dialogs.relocate_item_section(second_speaker, "dolg_black_exoskeleton", "in", 1)
dialogs.relocate_item_section(second_speaker, "wpn_grozz", "in", 1)
end

 

 

Используй теги спойлер и код.

Cyclone

Ссылка на комментарий

Пожалуйста проверьте мои функции, скрипт не работает при записи новых функций, где-то у меня косяк. Я пробовал заменить скрипт на другой и новый создавал, не читается игрой и всё, что делать. Все остальные файлы стандартные(character_desc_new, dialogs_new, tasks_new, npc_new, info_way, stable_dialogs_new), функции копировал с сюжета НС5, делал под свои. Помогите кто нибудь, уже 2 месяца маюсь. Хотел создать сюжетное дополнение службы Стрелка групперовке Монолит.

Ссылка на комментарий

Может кто подскажет, почему происходит вылет, на первых страницах есть квест на части мутантов от dana вроде все сделал правильно, но при выдаче награды вылет .

FATAL ERROR

 

[error]Expression : fatal error

[error]Function : CScriptEngine::lua_error

[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp

[error]Line : 73

[error]Description : <no expression>

[error]Arguments : LUA error: f:\stalker amk\gamedata\scripts\flamethrower.script:409: 'for' limit must be a number

 

 

stack trace:

 

в чем причина, все сделано как написано, а вылет происходит.(

Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g.

Ссылка на комментарий

Хемуль36рус, причина возникновения такой ошибки в том, что неправильно передан параметр для оператора for. Например, если в качестве "верхней" границы передать не число, а что-то другое:

for i=1, "error" do
end

Изменено пользователем ColR_iT
Ссылка на комментарий

на первых страницах есть квест на части мутантов от dana

в чем причина, все сделано как написано, а вылет происходит

Если взят пример из этого поста, то там опечатка в функции otdal_hvost.

Вместо этого flamethrower.relocate_n_items_section(actor, item , "in", count), сделай так flamethrower.relocate_n_items_section(actor, item , "in", 3).

  • Нравится 2

Вообще-то я белая и пушистая...

Ссылка на комментарий

Тебе сюда: >>ClicK Me<<

ColR_iT

Изменено пользователем ColR_iT

АМК..1.4.1..+..Народная..Солянка..от..19.04.10..дополнение..14.08.10..+..патч..3.09.10..+..DMX..1.3.5..+..ADDON..BY..SARUMAN

Ссылка на комментарий

Извините за тупой вопрос...
А что значит community1 и community2 в этой функции:

 

function friendsvoboda(community1, community2)
relation_registry.set_community_goodwill("freedom", "actor", 4000)
end

 

Конкретно в этой - ничего. А вообще вероятнее всего должны были быть параметры определяющие между какими группировками нужно устанавливать отношения.

ColR_iT



Я понял что по идее эта функция со свободой дружбу налаживает, а можно ли не писать коммунити, просто оставить скобки пустыми вот так:

function friendsvoboda()
relation_registry.set_community_goodwill("freedom", "actor", 4000)
end



А можно например, вот так сделать: 
function friend_dolg_bandit()
           relation_registry.set_community_goodwill("bandit", "dolg", 4000)
           relation_registry.set_community_goodwill("dolg", "bandit", 4000)
end
типо помирить группировки между собой можно?

 

Да и да.

ColR_iT

Изменено пользователем ColR_iT
Ссылка на комментарий

Не могу понять в чем проблема, делаю рестиктор в алайф 01 ескейп, ставлю новую игру и ловлю безлоговый вылет. Точнее ЛОГ файл вообще пустой. Может быть этот рестиктор надо как то активировать?

[2145]

; cse_abstract properties

section_name = space_restrictor

name = baron_restr

position = -16.6759777069092,0.637295365333557,255.910079956055

direction = 0, 0, 0

id = 65535

version = 118

script_version = 6

spawn_id = 6402

 

; cse_alife_object properties

game_vertex_id = 184

level_vertex_id = 260559

object_flags = 0xffffff3e

custom_data = <[logic]

active = sr_idle

 

[sr_idle]

on_info = {+escape_kastet_find_case_done} sr_idle@time

single = true

 

[sr_idle@time]

on_timer = 5000 | sr_idle@time1 %=arhara_dialog.molniy_bar_sms%

single = true

 

[sr_idle@time1]

on_timer = 12000 | sr_idle@time2 %=arhara_dialog.molniy_bar_sms1%

single = true

 

[sr_idle@time2]

on_timer = 1000 | sr_idle@nil %+podval_sarkofag_nayti%

single = true

 

[sr_idle@nil]

END

 

; cse_shape properties

shapes = 1

shape_0:type = sphere

shape_0:offset = 0,0,0

shape_0:radius = 3.04899978637695

 

; cse_alife_space_restrictor properties

restrictor_type = 0

 

 

Все, все нормально. Я не подумав натворил фиг знает что.

 

custom_data правильно пропиши.

ColR_iT

Изменено пользователем ColR_iT

АМК..1.4.1..+..Народная..Солянка..от..19.04.10..дополнение..14.08.10..+..патч..3.09.10..+..DMX..1.3.5..+..ADDON..BY..SARUMAN

Ссылка на комментарий

Здравствуйте. У меня такая проблема: Я делаю линейку квестов, и после создания очередного диалога у меня перестали спавниться мои НПСы. Я думаю что я где то накосячил, а где найти не могу.

Неписей я спавнил через диалог со звездочетом. Причем после этого косяка перестали работать все функции в моем скриптовом файле.

Вот мои файлы:

--[[-----------------------------------------------------------------------------------------------


File : story_mod.script
Description : Служебные и квестовые функции
Copyright : Story MOD
Author : Снайпер56
--]]-----------------------------------------------------------------------------------------------

-- СПАВНИМ БОРЛАНДА

function borland_spawn()
local obj = alife():create("borland",vector():set(24.034,16.555,677.921),303261,208)
local tbl = amk.read_stalker_params(obj)
tbl.sid = 97125
amk.write_stalker_params(tbl, obj)
end

-- СПАВНИМ ОХРАНУ

function borland_komanda_spawn()
alife():create("vhod_ohrana",vector():set(25.997,16.053,672.042),305653,207)
alife():create("patrol_ohrana",vector():set(21.840,16.555,674.866),300832,207)
end

-- КВЕСТ БОРЛАНДА НА ПОИСК ТАЙНИКА

-- СПАВНИМ ТАЙНИК

function spawn_borland_taynik()
alife():create("box_borland",vector():set(-154.256,9.479,228.808),95429,167)
end

-- ПРОВЕРЯЕМ НАЛИЧИЕ АРТА В РЮКЗАКЕ

function borland_find_art_quest_have()
return sak.have_item_namber("af_kristal_new",1) ~= false
end

-- ОТДАЕМ АРТ

function give_borland_art(first_speaker, second_speaker)
sak.out_item_namber("af_kristal_new", 1)
end

-- ПОЛУЧАЕМ НАГРАДУ

function complete_borland_find_art_quest(first_speaker, second_speaker)
dialogs.relocate_item_section(second_speaker, "wpn_ak74u","in")
dialogs.relocate_item_section(second_speaker, "ammo_5.45x39_fmj","in")
dialogs.relocate_item_section(second_speaker, "ammo_5.45x39_fmj","in")
dialogs.relocate_item_section(second_speaker, "ammo_5.45x39_fmj","in")
dialogs.relocate_money(second_speaker, 5000, "in")
end

-- КВЕСТ БОРЛАНДА НА РАЗГОВОР С ИРЛАНДЦЕМ

-- ПОЛУЧАЕМ НАГРАДУ

function complete_volk_peredacha_quest(first_speaker, second_speaker)
dialogs.relocate_money(second_speaker, 15000, "in")
end

-- ОТДАЕМ ЗАПИСКУ

function otdaem_list(first_speaker, second_speaker)
sak.out_item_namber("borland_listok", 1)
end

-- ПРОВЕРЯЕМ ЗАПИСКУ В ИНВЕНТАРЕ

function proverim_list()
return sak.have_item_namber("borland_listok",1) ~= false
end

-- ДАЕМ ЗАПИСКУ

function daem_list_actoru(first_speaker, second_speaker)
dialogs.relocate_item_section(second_speaker, "borland_listok","in")
end

-- СПАВНИМ ИРЛАНДЦА

function spawn_irland()
local obj = alife():create("esc_irland",vector():set(-16.575,2.390,86.960),260343,86)
local tbl = amk.read_stalker_params(obj)
tbl.sid = 97126
amk.write_stalker_params(tbl, obj)
end

-- СПАВНИМ ГАРДА

function spawn_gard()
alife():create("esc_gard",vector():set(-154.256,9.479,228.808),95429,167)
end

-- ОБМЕН СМС С ГАРДОМ

function gard_sms()
news_manager.send_tip(db.actor, "%c[255,0,255,0]".."ГАРД:".."\\n".."%c[255,255,128,128]Сталкер, ты украл у меня мой артефакт, верни мне его и у тебя не будет никаких проблем, жду тебя около тайника.".."".."\n", nil, nil, 25000)
end

function gard_sms2()
news_manager.send_tip(db.actor, "%c[255,0,255,0]".."МЕЧЕНЫЙ:".."\\n".."%c[255,255,128,128]Какой еще артефакт? Ты вообще кто такой? Скоро прийду, жди.".."".."\n", nil, nil, 25000)
end

-- ДАЕМ АРТ

function daem_art_obratno(first_speaker, second_speaker)
dialogs.relocate_item_section(second_speaker, "af_kristal_new","in")
end

-- УДАЛЯЕМ ИРЛАНДЦА

function del_irland()
local se_obj = alife():object("esc_irland")
if se_obj then
alife():release(se_obj, true)
end

-- ОТДАЕМ АРТ ГАРДУ

function daem_art_gardu(first_speaker, second_speaker)
sak.out_item_namber("af_kristal_new", 1)
end

-- ПРОВЕРЯЕМ АРТ ГАРДА В ИНВЕНТАРЕ

function proverim_art_garda()
return sak.have_item_namber("af_kristal_new",1) ~= false
end

 

 

 

<?xml version="1.0" encoding="windows-1251" ?>
<game_dialogs>
 
<dialog id="proverka_q">
<dont_has_info>proverka_start1</dont_has_info>
<phrase_list>
<phrase id="0">
<text>proverka_q_0</text>
<next>1</next>
</phrase>
<phrase id="1">
<text>proverka_q_1</text>
<next>2</next>
</phrase>
<phrase id="2">
<text>proverka_q_2</text>
<next>3</next>
</phrase>
<phrase id="3">
<text>proverka_q_3</text>
<next>4</next>
</phrase>
<phrase id="4">
<text>proverka_q_4</text>
<next>5</next>
</phrase>
<phrase id="5">
<text>proverka_q_5</text>
<next>6</next>
</phrase>
<phrase id="6">
<text>proverka_q_6</text>                                                                                               
<give_info>proverka_start1</give_info>
</phrase>
</phrase_list>
</dialog>
 
<dialog id="borland_find_art_quest">
    <dont_has_info>borland_find_art_quest_start</dont_has_info>
    <phrase_list>
        <phrase id="0">
            <text>borland_find_art_quest_0</text>
            <next>1</next>
        </phrase>
        <phrase id="1">
            <text>borland_find_art_quest_1</text>
            <next>2</next>
            <next>3</next>
        </phrase>
        <phrase id="2">
            <text>borland_find_art_quest_2</text>
            <action>story_mod.spawn_borland_taynik</action>
            <give_info>borland_find_art_quest_start</give_info>
        </phrase>
        <phrase id="3">
            <text>borland_find_art_quest_3</text>
            <action>dialogs.break_dialog</action>
        </phrase>
    </phrase_list>
</dialog>
 
<dialog id="borland_find_art_quest_completed">
    <precondition>story_mod.borland_find_art_quest_have</precondition>
    <has_info>borland_find_art_quest_have</has_info>
    <dont_has_info>borland_find_art_quest_done</dont_has_info>
    <phrase_list>
        <phrase id="0">
            <text>borland_find_art_quest_completed_0</text>
            <next>1</next>
        </phrase>
        <phrase id="1">
            <text>borland_find_art_quest_completed_1</text>
            <next>2</next>
        </phrase>
        <phrase id="2">
            <text>borland_find_art_quest_completed_2</text>
            <give_info>borland_find_art_quest_done</give_info>
            <action>story_mod.give_borland_art</action>
            <next>3</next>
        </phrase>
        <phrase id="3">
            <text>borland_find_art_quest_completed_3</text>
            <action>story_mod.complete_borland_find_art_quest</action>
        </phrase>
    </phrase_list>
</dialog>
 
<dialog id="volk_peredacha_quest">
    <has_info>borland_find_art_quest_done</has_info>
    <dont_has_info>volk_peredacha_quest_start</dont_has_info>
    <phrase_list>
        <phrase id="0">
            <text>volk_peredacha_quest_0</text>
            <next>1</next>
        </phrase>
        <phrase id="1">
            <text>volk_peredacha_quest_1</text>
            <next>2</next>
            <next>3</next>
        </phrase>
        <phrase id="2">
            <text>volk_peredacha_quest_2</text>
            <action>story_mod.spawn_irland</action>
            <give_info>volk_peredacha_quest_start</give_info>
        </phrase>
        <phrase id="3">
            <text>volk_peredacha_quest_3</text>
            <action>dialogs.break_dialog</action>
        </phrase>
    </phrase_list>
</dialog>
 
<dialog id="volk_peredacha_quest_completed">
<precondition>story_mod.proverim_list</precondition>
    <has_info>volk_peredacha_quest_have</has_info>
    <dont_has_info>volk_peredacha_quest_done</dont_has_info>
    <phrase_list>
        <phrase id="0">
            <text>volk_peredacha_quest_completed_0</text>
            <next>1</next>
        </phrase>
        <phrase id="1">
            <text>volk_peredacha_quest_completed_1</text>
            <next>2</next>
        </phrase>
        <phrase id="2">
            <text>volk_peredacha_quest_completed_2</text>
            <give_info>volk_peredacha_quest_done</give_info>
            <action>story_mod.otdaem_list</action>
            <next>3</next>
        </phrase>
        <phrase id="3">
            <text>volk_peredacha_quest_completed_3</text>
            <action>story_mod.complete_volk_peredacha_quest</action>
            <action>story_mod.del_irland</action>
        </phrase>
    </phrase_list>
</dialog> 
 
<dialog id="proverka_r">
<dont_has_info>volk_peredacha_quest_have</dont_has_info>
<dont_has_info>proverka_start</dont_has_info>
<phrase_list>
<phrase id="0">
<text>proverka_r_0</text>
<next>1</next>
</phrase>
<phrase id="1">
<text>proverka_r_1</text>
<next>2</next>
</phrase>
<phrase id="2">
<text>proverka_r_2</text>
<next>3</next>
</phrase>
<phrase id="3">
<text>proverka_r_3</text>
<next>4</next>
</phrase>
<phrase id="4">
<text>proverka_r_4</text>
<action>story_mod.spawn_gard</action>
<action>story_mod.daem_list_actoru</action>
<give_info>volk_peredacha_quest_have</give_info>                                                                                               
<give_info>proverka_start</give_info>
</phrase>
</phrase_list>
</dialog>
 
<dialog id="borland_gnida">
<has_info>proverka_start1</has_info>
<dont_has_info>proverka_start2</dont_has_info>
<phrase_list>
<phrase id="0">
<text>borland_gnida_0</text>
<next>1</next>
</phrase>
<phrase id="1">
<text>borland_gnida_1</text>
<next>2</next>
</phrase>
<phrase id="2">
<text>borland_gnida_2</text>
<next>3</next>
</phrase>
<phrase id="3">
<text>borland_gnida_3</text>
<next>4</next>
</phrase>
<phrase id="4">
<text>borland_gnida_4</text>
<next>5</next>
</phrase>
<phrase id="5">
<text>borland_gnida_5</text>
<action>story_mod.daem_art_obratno</action>
<next>6</next>
</phrase>
<phrase id="6">
<text>borland_gnida_6</text>                                                                                               
<give_info>proverka_start2</give_info>
</phrase>
</phrase_list>
</dialog>
 
<dialog id="vernem_art">
<precondition>story_mod.proverim_art_garda</precondition>
<dont_has_info>proverka_start3</dont_has_info>
<phrase_list>
<phrase id="0">
<text>vernem_art_0</text>
<next>1</next>
</phrase>
<phrase id="1">
<text>vernem_art_1</text>
<next>2</next>
</phrase>
<phrase id="2">
<text>vernem_art_2</text>
<next>3</next>
</phrase>
<phrase id="3">
<text>vernem_art_3</text>
<next>4</next>
</phrase>
<phrase id="4">
<text>vernem_art_4</text>
<action>story_mod.daem_art_gardu</action>                                                                                             
<give_info>proverka_start3</give_info>
</phrase>
</phrase_list>
</dialog>            

 

 

 


<?xml version='1.0' encoding="windows-1251"?>
 
<game_information_portions>
 
<info_portion id="proverka_start"></info_portion>
<info_portion id="proverka_start1"></info_portion>
<info_portion id="proverka_start2"></info_portion>
<info_portion id="proverka_start3"></info_portion>
<info_portion id="borland_find_art_quest_start">
    <task>borland_find_art</task>
</info_portion>
<info_portion id="borland_find_art_quest_have"></info_portion>
<info_portion id="borland_find_art_quest_done"></info_portion>
<info_portion id="volk_peredacha_quest_start">
    <task>volk_peredacha_quest</task>
</info_portion>
<info_portion id="volk_peredacha_quest_have"></info_portion>
<info_portion id="volk_peredacha_quest_done"></info_portion>
 
</game_information_portions>
 

 

 

 

 

<?xml version='1.0' encoding="windows-1251"?>
 
<xml>
 
<!-------------------------------------Охранник у входа----------------------------------------->    
    <specific_character id="vhod_ohrana" team_default = "1">
        <name>Макс Кастет</name>
        <icon>ui_npc_vhod_ohrana</icon>
        <bio>esc_wolf_bio</bio>
 
        <class>vhod_ohrana</class>
        <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect>
        
        <rank>777</rank>
        <reputation>777</reputation>
        
        <snd_config>characters_voice\human_01\stalker\</snd_config>
        <crouch_type>0</crouch_type>
 
        <visual>actors\story_mod\ubcs1</visual>        
        <supplies>
            [spawn] \n
            wpn_ak74 \n
            ammo_5.45x39_ap = 1 \n
#include "gameplay\character_items.xml" \n
#include "gameplay\character_food.xml"
        </supplies>            
#include "gameplay\character_criticals_5.xml"
#include "gameplay\character_dialogs.xml"                    
        <start_dialog>hello_dialog</start_dialog>
        <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog>
    </specific_character>
 
<!-------------------------------------Патруль----------------------------------------->    
    <specific_character id="patrol_ohrana" team_default = "1">
        <name>Сережа Местный</name>
        <icon>ui_npc_patrol_ohrana</icon>
        <bio>esc_wolf_bio</bio>
 
        <class>patrol_ohrana</class>
        <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect>
        
        <rank>777</rank>
        <reputation>777</reputation>
        
        <snd_config>characters_voice\human_01\stalker\</snd_config>
        <crouch_type>0</crouch_type>
 
        <visual>actors\story_mod\ubcs2</visual>        
        <supplies>
            [spawn] \n
            wpn_ak74 \n
            ammo_5.45x39_ap = 1 \n
#include "gameplay\character_items.xml" \n
#include "gameplay\character_food.xml"
        </supplies>
            
#include "gameplay\character_criticals_5.xml"
#include "gameplay\character_dialogs.xml"                    
        <start_dialog>hello_dialog</start_dialog>
        <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog>
    </specific_character>
 
<!-------------------------------------Борланд----------------------------------------->    
    <specific_character id="borland" team_default = "1">
        <name>Борланд</name>
        <icon>ui_npc_borland</icon>
        <bio>esc_wolf_bio</bio>
 
        <class>borland</class>
        <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect>
        
        <rank>888</rank>
        <reputation>888</reputation>
        
        <snd_config>characters_voice\human_01\military\</snd_config>
        <crouch_type>0</crouch_type>
 
        <visual>actors\story_mod\ubcs3</visual>        
        <supplies>
            [spawn] \n
            wpn_ak74 \n
            ammo_5.45x39_ap = 1 \n
#include "gameplay\character_items.xml" \n
#include "gameplay\character_food.xml"
        </supplies>
<actor_dialog>borland_gnida</actor_dialog>
<actor_dialog>borland_find_art_quest</actor_dialog>
<actor_dialog>borland_find_art_quest_completed</actor_dialog>
<actor_dialog>volk_peredacha_quest</actor_dialog>
<actor_dialog>volk_peredacha_quest_completed</actor_dialog>            
#include "gameplay\character_criticals_5.xml"
#include "gameplay\character_dialogs.xml"
                                
        <start_dialog>hello_dialog</start_dialog>
        <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog>
    </specific_character>
 
<!-------------------------------------Гард----------------------------------------->    
    <specific_character id="esc_gard" team_default = "1">
        <name>Гард</name>
        <icon>ui_npc_borland</icon>
        <bio>esc_wolf_bio</bio>
 
        <class>esc_gard</class>
        <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect>
        
        <rank>888</rank>
        <reputation>888</reputation>
        
        <snd_config>characters_voice\human_01\military\</snd_config>
        <crouch_type>0</crouch_type>
 
        <visual>actors\story_mod\ubcs3</visual>        
        <supplies>
            [spawn] \n
            wpn_ak74 \n
            ammo_5.45x39_ap = 1 \n
#include "gameplay\character_items.xml" \n
#include "gameplay\character_food.xml"
        </supplies>
<actor_dialog>vernem_art</actor_dialog>    
<actor_dialog>proverka_q</actor_dialog>            
#include "gameplay\character_criticals_5.xml"
#include "gameplay\character_dialogs.xml"
                                
        <start_dialog>hello_dialog</start_dialog>
        <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog>
    </specific_character>
 
<!-------------------------------------Ирландец----------------------------------------->    
    <specific_character id="esc_irland" team_default = "1">
        <name>Ирландец</name>
        <icon>ui_npc_borland</icon>
        <bio>esc_wolf_bio</bio>
 
        <class>esc_irland</class>
        <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect>
        
        <rank>888</rank>
        <reputation>888</reputation>
        
        <snd_config>characters_voice\human_01\military\</snd_config>
        <crouch_type>0</crouch_type>
 
        <visual>actors\story_mod\ubcs3</visual>        
        <supplies>
            [spawn] \n
            wpn_ak74 \n
            ammo_5.45x39_ap = 1 \n
#include "gameplay\character_items.xml" \n
#include "gameplay\character_food.xml"
        </supplies>
<actor_dialog>proverka_r</actor_dialog>            
#include "gameplay\character_criticals_5.xml"
#include "gameplay\character_dialogs.xml"
                                
        <start_dialog>hello_dialog</start_dialog>
        <actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog>
    </specific_character>
 
 
</xml>
    

 

 

 

Помогите пожалуйста, а то я сам никак не могу найти ошибку.

Изменено пользователем Снайпер56

АМК..1.4.1..+..Народная..Солянка..от..19.04.10..дополнение..14.08.10..+..патч..3.09.10..+..DMX..1.3.5..+..ADDON..BY..SARUMAN

Ссылка на комментарий

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

Ссылка на комментарий

Спасибо за внимание, но мне уже Charsi помог. Ошибка была в файле со скриптами, я там ТЕГ end не дописал.

Изменено пользователем Снайпер56

АМК..1.4.1..+..Народная..Солянка..от..19.04.10..дополнение..14.08.10..+..патч..3.09.10..+..DMX..1.3.5..+..ADDON..BY..SARUMAN

Ссылка на комментарий

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

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

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

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