ColR_iT если можно, то я бы хотел через алл.спавн дверь заспавнить. Можно поподробнее как это сделать? Переход я подвину, мне нужно чтобы до опрелеленного момента, гг не мог выйтм на свалку.
ColR_iT Леонид, вроде как должно получиться, если дверь вставить в средний проём. Для НПС вроде как и не нужно, а ГГ, должна оградить от перехода. На дальний проём думаю нет смысла ставить, т.к. там барьер по карте. Радиус перехода там вроде небольшой. Я конечно переход убирал, и позже спавнил его скриптом.
Dmitriy_Dark_Stalker, дык, спавнишь как и любой предмет.
Вот на примере двери Сидора: [spoil**50016c9725ff35736f77**rties
physic_type = 0x3
mass = 10
fixed_bones = link[/code]
Изменить нужно лишь параметры position, direction и путь до файла с логикой. Координаты и направление подбираешь свои, чтобы дверь подошла по размерам, кстати саму модель двери тоже можешь поменять на какую-нибудь деревянную.
Пишешь вот такую логику:
Вместо your_infoportion пишешь название инфопорции, до получения которой дверь будет заперта, как только получишь, дверь будет просто закрыта. dimak, да ты прав, там и в прям стоит "невидимая" стенка и вероятно лучше будет заспавнить дверь не в последнем проёме, а в среднем, таким образом вообще не придётся трогать переход.
отредактировал(а) ColR_iT: 19-05-2012 13:33 GMT3 час.
Народ, нужна помощь. Никак не могу разобраться в файлах мода NLC. Попытался оттуда вытащить худ. В скриптах его прописал, все необходимые файлы в config\ui менял. Все бестолку.
Должно получиться:
Кто знает Dynamic_Campfire_Mod_1.32 by kstn? Как добавить костер в таблицу исключений? Нужно один костер с новой локации добавить, с простыми кострами разобрался.
strelokOG78 это движковая правка от SkyLoader'a. Называется коллизия тел вроде. Качаешь правки, в архивах есть описание и как вставлять их в игру. Гугл в помощь.
function transfer_on_dialog (first_speaker, second_speaker)
local victim = db.actor
if first_speaker:id() == 0 then
victim = second_speaker
else
victim = first_speaker
end
transfer_items_from_npc (victim, "new_psy_helmet")
end
Вызываешь transfer_on_dialog .И вместо "new_psy_helmet" ,свой предмет.
я не понял, нужно другое название что ли поставить, и вообще это функция какаята не та (грубо говоря)
Ааа, понял, только вот функция странная, первый раз вижу.
-- Проверяет есть ли у нас ящик с динамитом
function volk_dinamit_test()
return db.actor:object("quest_case_krab") ~= nil
end
-- Создает в заданном месте ящик с динамитом
function dinamit_create()
local a = vector() -- db.actor:position()
a.x = -68,5023
a.y = -32,85337
a.z = -349,5871
alife():create("quest_case_krab",a,33447,47,65535)
end
-- Заберем ящик с динамитом
function transfer_dinamit ( actor,trader)
dialogs.relocate_item_section(trader, "quest_case_krab", "out")
end
-- Выдадим награду
function transfer_vodka (trader, actor)
dialogs.relocate_item_section(trader, "wpn_toz34", "in")
end
-- Выдадим флешку Тополя
function transfer_fleshka_topol(trader, actor)
dialogs.relocate_item_section(trader, "mil_topol_flash", "in")
end
-- Заберем флешку Топаля
function transfer_fleshka_topol_1(trader, actor)
dialogs.relocate_item_section(trader, "mil_topol_flash", "out")
end
-- Заберем приемник
function transfer_priemnik(trader, actor)
dialogs.relocate_item_section(trader, "priemnik", "out")
end
-- Выдадим приемник
function transfer_priemnik_otdadim(trader, actor)
dialogs.relocate_item_section(trader, "priemnik", "in")
end
-- Выдадим противогаз
function transfer_protivogaz_otdadim(trader, actor)
dialogs.relocate_item_section(trader, "antigas", "in")
end
-- Заберем противогаз
function transfer_antigas_otdaem(trader, actor)
dialogs.relocate_item_section(trader, "antigas", "out")
end
-- Проверяет есть ли у нас рюкзак Сотника
function rukzak_sotnika()
return db.actor:object("rukzak_sotnika") ~= nil
end
function has_money_for_kremen_barmen_fleshka_1(first_speaker, second_speaker)
return first_speaker:money() >= 2000
end
function has_money_for_barmen_plati(first_speaker, second_speaker)
return first_speaker:money() >= 1000
end
function smert_mamonta(actor,npc)
return has_alife_info("clearscy1")
end
-- Выдадим дискету Журналиста
function transfer_disceta_jurnalista(trader, actor)
dialogs.relocate_item_section(trader, "disceta_jurnalista", "in")
end
-- Создает в заданном месте арт Горгулия
function gorguliya_create()
local a = vector() -- db.actor:position()
a.x = -330.48068237305
a.y = -22.046113967896
a.z = 212.7776184082
alife():create("disceta_jurnalista",a,34947,97,65435)
end
-- Выдадим плату
function transfer_plata(trader, actor)
dialogs.relocate_item_section(trader, "plata", "in")
end
-- Заберем ящик с динамитом
function transfer_plata_out( actor,trader)
dialogs.relocate_item_section(trader, "plata", "out")
end
-- Выдадим чертежи
function transfer_servodok(trader, actor)
dialogs.relocate_item_section(trader, "servodok", "in")
end
-- Заберем чертежи
function transfer_servodok_out( actor,trader)
dialogs.relocate_item_section(trader, "servodok", "out")
end
-- Выдадим снарягу от Бивена только костюм XD)))
function transfer_biven_items_ourfit(trader, actor)
dialogs.relocate_item_section(trader, "svoboda_hevi_specops_outfit", "in")
end
function dolg_sidor_create()
local a = vector() -- Задаем тип переменной
local dir = db.actor:direction()
a.x = -243.61 -- координата X
a.y = -19.52 -- высота Y
a.z = -127.17 -- координата Z
obj = alife():create("bar_dolg_respawn_3", a, 13193, 8, 65535)
alife():create_ammo("ammo_9x18_fmj",
obj.position,
obj.m_level_vertex_id,
obj.m_game_vertex_id,
obj.id,
20) -- число патро
end
-- Выдадим снарягу от капитана Иваньки)) только АПС О_о)))
function transfer_ivancov_items_aps(trader, actor)
dialogs.relocate_item_section(trader, "wpn_aps_sk1", "in")
end
-- Выдадим снарягу от капитана Иваньки)) только калашXD)))
function transfer_ivancov_items_stvol(trader, actor)
dialogs.relocate_item_section(trader, "wpn_ak108", "in")
end
-- Выдадим флешку Петрянки ппффф - Киндера )) только калашXD)))
function transfer_petrenko_items_kinder(trader, actor)
dialogs.relocate_item_section(trader, "fleshka_kinder", "in")
end
-- Выдадим АК-47_у
function transfer_jurnalist_rpk(trader, actor)
dialogs.relocate_item_section(trader, "wpn_p90", "in")
end
-- Выдадим ammo
function transfer_jurnalist_rpk_ammo(trader, actor)
dialogs.relocate_item_section(trader, "wm_5.45x39a75", "in")
end
function dark_ekolog_prekondition(actor,npc)
return has_alife_info("dark_ecolog_mertv")
Мне нужно сделать смарт террейн на трех охотников на новой локации, но я точно не знаю как его сделать. Сейчас напишу как я понял из урока, а вы пожалуйста поправьте если я не прав...
Итак:
1) Делаю смарт в алл.спавне;
2) Добавляю логику для него, но файла нужного нет для этой локации (gulag_swamp.ltx), если я его создам, то где его зарегистрировать чтоб игра видела его?
3) Заскриптовать смарт в gulag_swamp.script, но этого файла тоже нет, содам, где его зарегистрировать?
4) Делаю точки path_look, path_walk в all.spawn для логики.
Dmitriy_Dark_Stalker Его не обязательно делать так gulag_swamp Можно в gulag_escape
Если хочешь сделать новый скрипт и конфиг, чтобы не путаться, тогда скрипт регишь в xr_gulag.script
В самом верху level_gulags = {,gulag_swamp} в конец, через запятую, добавляешь имя своего скрипта, а в конфигах
config/gulag_tasks.ltx впишешь инклуд нового файла
#include "gulag_swamp.ltx" и создашь такой файл для твоих конфигов, путей гулага.
Опоздал. Под спойлер выпиши всё, что ты сделал по пунктам. Гадать долго, т.к. гулаги - это не просто, и ошибку можно под носом долго искать.