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

[SoC] Ковыряемся в файлах


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

malandrinus,

Непонятно. Для того, чтобы посмотреть на NPC нужно знать его положение, а направление-то зачем?

А какой метод за это отвечает, если нужна позиция?

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

А это разве возможно? Как реализовать?

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

SkyLoader,

А какой метод за это отвечает, если нужна позиция?

local npc_pos = npc:position()

затем вычисляешь направление из своего положения в положение непися. Для этого можно использовать к примеру операции из класса vector.

 

А это разве возможно? Как реализовать?

Да, это возможно. На каждом апдейте меняешь понемногу угол поворота, приближая его к конечному.

 

Дополнение:

Удобнее использовать не апдейт актора (хотя и можно), а функцию level.add_call, которую я описывал здесь. Это даст возможность установить периодическое действие, которое должно закончиться по определённому условию - как раз то, что в данном случае нужно.

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

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

malandrinus, так что ли?

vector():set(npc:position())

Да, это возможно. На каждом апдейте меняешь понемногу угол поворота, приближая его к конечному.

vector():set(npc:position()) - и как увеличивать? Если бы было set_actor_direction(), то я знаю, как сделать, а с вектором не догоняю :(

-------------

Дополнение:

Спасибо за подсказку.

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

SkyLoader,

local start_dir = device().cam_pos:getH()
if start_dir > math.pi then start_dir = start_dir - 2*math.pi end
local end_dir = npc:position():sub(device().cam_pos):getH()
local delta_dir = (end_dir - start_dir)
local start_time = game.time()
local time_interval = 5000
function cond()
    local cur_time = game.time()
    local dt = cur_time - start_time
    local dir = start_dir + dt* delta_dir / time_interval
    db.actor:set_actor_direction(-dir)
    if dt > time_interval then return true end
end
level.add_call(cond, function()end)

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

malandrinus, спасибо за код. Но я все равно не догоняю, как использовать ее? Я, например, из меню ее должен запустить.

        if dik == DIK_keys.DIK_X then
local npc = alife():story_object(006)
--Ну что сюда запихнуть?
          end

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

Всем привет.

Делаю диалоги по статье Zeka1996Korneev

 

Создал скелет диалога в dialogs_escape:

 

</game_dialogs>

<dialog id="max_dialog_max">

<dont_has_info>max_pogovoril</dont_has_info>

<phrase_list>

<phrase id="0">

<text>max_dialog_0</text>

<next>1</next>

</phrase>

<phrase id="1">

<text>max_dialog_1</text>

<next>2</next>

</phrase>

<phrase id="2">

<text>max_dialog_2</text>

<next>3</next>

</phrase>

<phrase id="3">

<text>max_dialog_3</text>

<next>4</next>

</phrase>

<phrase id="4">

<text>max_dialog_4</text>

<next>5</next>

</phrase>

<phrase id="5">

<text>max_dialog_5</text>

<next>6</next>

</phrase>

<phrase id="6">

<text>max_dialog_6</text>

<give_info>max_pogovoril</give_info>

</phrase>

</phrase_list>

</dialog>

</game_dialogs>

 

Создал тексты диалога в stable_dialogs_bar:

 

<string id="max_dialog_0">

<text>Привет. А ты кто ? И что в забитом доме делаеш ???</text>

</string>

<string id="max_dialog_1">

<text>Я ? Я Ренегатыч ! Вот домик себе тут на "Кордоне" присмотрел, дверь забил, в окно залезаю. А то новички лазиют знаеш ли... Стоп !!! А ты как сюда попал ??? Доски чтоли вышиб ???</text>

</string>

<string id="max_dialog_2">

<text>Блин вышиб ! Ты извини я ж не знал что ты тут живеш.</text>

</string>

<string id="max_dialog_3">

<text>Да ладно чё уж там. Как я уже сказал я Ренегатыч, торговец я местный, если что приходи поторгуемся.</text>

</string>

<string id="max_dialog_4">

<text>Окей зайду как нибудь. А у тебя как с ассортиментом ? Да и заданьице какое-нибудь имеется ? А то деньжата нужны.</text>

</string>

<string id="max_dialog_5">

<text>Ну ассортимен не плохой, да и заданьице найдется.</text>

</string>

<string id="max_dialog_6">

<text>Окей посмотрим что у тебя интересного.</text>

</string>

 

 

Прописал исчезновение диалога после разговора в info_l01escape:

 

<info_portion id="max_pogovoril"></info_portion>

 

Прописал своему новому НПСу в профиль находящийся в character_desc_escape вот это:

 

<actor_dialog>max_dialog_max</actor_dialog>

 

 

 

 

Но при попытке с ним поговорить с ним получаю вот что:

 

FATAL ERROR

 

[error]Expression : no_assert

[error]Function : CXML_IdToIndex<class CPhraseDialog>::GetById

[error]File : e:\stalker\patch_1_0004\xr_3da\xrgame\xml_str_id_loader.h

[error]Line : 112

[error]Description : item not found, id

[error]Arguments : max_dialog_max

 

 

stack trace:

 

 

 

Что я сделал не так ?

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

гопыч Посмотри есть ли перед началом скелета диалога сточка </game_dialogs>

и если есть перенеси в конец.

<dialog id="max_dialog_max">

<phrase_list>

<phrase id="0">

хххххххххх

</phrase>

</phrase_list>

</dialog>

</game_dialogs>

 

 

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

Объясните нубу, мне нужно снять пару видяшек и для этого приходится пропускать определенное количество времени в игре, делаю это с помощью сна и собственно вопрос. Как убрать ограничение по времени при использовании спального мешка? Играю в чистый АМК 1.4.1

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

Vervolf116

Файл amk_mod.script. Там функция test_for_need_sleep_matras (примерно строка 409). Там во второй части есть такой фрагмент:

Код

else

if amk.load_variable("block_sleep_menu",0)==0 then

if amk.load_variable("gg_need_sleep",0)>20 then

local spwn=ui_cheat.cheat(get_hud())

level.start_stop_menu(spwn,true)

else

amk.send_tip(game.translate_string("not_need_sleep"),nil,nil,5)

end

else

amk.send_tip(game.translate_string("not_need_sleep_nrg"),nil,nil,5)

end

end

 

Это основные проверки, которые мешают заснуть, и собственно вызов диалога сна. Между else и end Надо закомментировать всё, кроме:

local spwn=ui_cheat.cheat(get_hud())

level.start_stop_menu(spwn,true)

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

 [pre_lager_guard_walk]
    points = p0
    p0:name = name00
    p0:flags = 0x1
    p0:position = -22.60,1.50,344.01
    p0:game_vertex_id = 3988
    p0:level_vertex_id = 908844

    [pre_lager_guard_look]
    points = p0
    p0:name = name00
    p0:flags = 0x1
    p0:position = -24.60,1.26,345.01
    p0:game_vertex_id = 3988
    p0:level_vertex_id = 905510

 

Может кто мне тупому разъяснить какие параметры за что отвечают?

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

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

P.S. Сообщение с сп удали, там и так все захламляется.

 

------------------------

 

Вопрос: Как принудительно вывести непися из оффлайна, если я сменил гулаг ему, и он стоит рядом со мной.

  local npc = alife():object("esc_wolf")
  local tbl = amk.read_stalker_params(npc)
  tbl.custom = "[smart_terrains]\nesc_stone_lager=true"
  amk.write_stalker_params(tbl, npc)

После этого он уходит в оффлайн, а как его оттуда вытащить?

 

// В шапке есть ссылка на stalker-wiki, там есть статья о уводе/вводе непися в оффлайн. Министр.

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

SkyLoader

это в данном случае точка движения

имеется в виду точка куда он идёт или где он стоит?

Спасибо.

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

Скажите пожалуйста как можно сделать чтобы сталкеры при встрече здоровались с ГГ. Недавно играл в мод Р.М.А. по моему, там при приближении сталкеры здороваются (голосом) ждут десять секунд и идут дальше. Я теоретически понимаю , что срабатывает логика такая же как например если ГГ подойдет с оружием, но не могу найти где это прописано! xr_meet смотрел, sound_theme смотрел, все xr_* посмотрел файлы ничего подобного не нашел. Сравнивал в рма моде xr_**** и в чистом даже сталкере но там изменений немного и мне кажется они большой роли не играют. Помогите пожалуйста.

 

 

Ничто не вечно под луной.

Ссылка на комментарий
_And_, за это в ответе файл encyclopedia_item.xml, там внутри тега <encyclopedia_wnd> все настройки текста. Изменено пользователем Министр
Ссылка на комментарий

Народ привет! В Сталкере подхожу к блокопосту на Кордоне, как только убиваю солдата - безголовый вылет. Проверил оружия и другие вещи - всё вроде нормально. Что это может быть?

 

// Бабки Ванги на форуме нет, ровно как и других предсказателей/ясновидцев, так что увы, причины вылета мы не узнаем. Хотя бы лог выложите и название мода с которым играете. Министр.

Изменено пользователем Министр

Всё,что есть в ЗОНЕ, должно быть УЧТЕНО, ПРИПОРЯДКОВАНО и СХОВАНО! (с)

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

KitkaT.Net, Все что касается поведения НПС -в файлах xr_logic и xr_motivation ,все остальное секции логики которые вызываются из этих файлов.То что при встрече нпс останавливаются это и в обычной логике есть-добавлена только озвучка.

 

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

Я в АМК 1.4.1 добавил новый костюм, как мне к нему привязать худ маски и иконку костюма в полный рост? Заранее спс.

 

// По-первому вопросу юзайте поиск, ибо уже было. А для привязки худа маски к какому-то костюму впишите его в таблицу hud_tbl (файл amk_mod.script) по аналогии с существующими. Министр.

Изменено пользователем Министр

VODKA connected people...

aa074e181fba.jpg

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

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

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

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

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

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

Войти

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

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

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