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

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


Halford

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

Доброго времени суток.

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

Такие дела. - Курт Воннегут.

Поделиться этим сообщением


Ссылка на сообщение

Дак у меня чистая 1.0004, без каких-либо модов сверху.

Такие дела. - Курт Воннегут.

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Здравствуйте. У меня вопрос.

Начну издалека - у меня стоит мод Complete 1.4.1 2009 и поверх него я уже своими ручками кое-что добавляю. Сегодня возникла проблема -

Я хотел создать space_restrictor с радиусом 6 метров, чтобы при входе в него у NPC вызывался диалог. Ниже - код рестриктора и код скрипта.

 

[1233]

; cse_abstract properties

section_name = space_restrictor

name = swolf_govorit

position = -210.632614135742,-20.050708770752,-142.461120605469

direction = 0,0,0

; cse_alife_object properties

game_vertex_id = 61

distance = 0

level_vertex_id = 42599

object_flags = 0xffffff3e

custom_data = <<END

[logic]

active = sr_idle

[sr_idle]

on_actor_inside = %+esc_on_talk%

END

; cse_shape properties

shapes = shape0

shape0:type = sphere

shape0:offset = 0,0,0

shape0:radius = 6.6438484191895

; cse_alife_space_restrictor properties

restrictor_type = 3

 

 

function on_talk()

local npc = level_object_by_sid(006)

db.actor:run_talk_dialog(npc)

end

 

 

А проблема вот в чём.

Когда я подхожу на эти 6 метров к Волку ничего не происходит.

Но когда я пытаюсь заговорить с ним (F), то пропадает из рук оружие и ГГ, как бы, "зависает на месте" - не может отойти, совершить какое-то действие и т.д. можно только смотреть по сторонам.

То же самое происходит и когда я пытаюсь заговорить с кем-то из сталкеров, находящихся близко к Волку.

Помогите, пожалуйста.

 

P.S. Иногда такое же было, когда я пытался заговорить с Волком в Simbion Mod. Но у меня, увы, постоянно :С

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

Такие дела. - Курт Воннегут.

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Блин,

я нубоват в скриптах.

Эту функцию, что ты скинул, нужно вживить в мой mar_quests.script

function on_talk()

local npc = level_object_by_sid(006)

if npc:position():distance_to_sqr(db.actor:position()) < 6 then

db.actor:run_talk_dialog(npc)

end

 

 

Чтобы вышло вот так, да?

 

Так, только end для структуры if забыл.

ColR_iT

 

P.S. Снизил радиус рестриктора (не прописывая if npc:position():distance_to_sqr(db.actor:position()) < 6 then) до 2 м (как в туториале указано) - оружие пропадает всё равно.

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

Такие дела. - Курт Воннегут.

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Помогите пожалуйста, парни.

По статье, которая ниже, пытался привязать скрипт на юзание предмета (сухого пайка).

Все коллбеки прописал, все как надо, в main_sleep (решил не переименовывать) вписал лишь верхнюю часть и изменил, получилось вот так

function sleep(obj)
    if obj ~= nil then
        if obj:section() == "paek" then 
            messages.messaga
        end
    end
end
А вот требуемая функция:
function messaga(first_speaker, second_speaker)news_manager.send_tip(db.actor, "%c[255,255,128,128]111:\n%c[default]222", nil, nil, 30000) 
end
Сухой паек, собсно, тоже скопировал с предложенного в статье слипбэга. При юзании ловлю вылет:
Arguments : LUA error: ...ow of chernobyl\gamedata\scripts\bind_stalker.script:206: attempt to index global 'main_sleep' (a nil value)
Вот строка, на которую он ругается:
function actor_binder:use_obj(obj)
main_sleep.sleep(obj) 
end
В чем дело? =/

 

 

 

Статья - http://stalkerin.gameru.net/wiki/index.php?title=SoC._Спальный_мешок

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

Такие дела. - Курт Воннегут.

Поделиться этим сообщением


Ссылка на сообщение
ColR_iT

 

Добавил скобки. Не работает как ни крути. Поменял функцию на спавн предмета - тот же результат.

Такие дела. - Курт Воннегут.

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Ребят, очень надо, ни у кого нигде не завалялось функции спавна предмета прямо в инвентарь эктору?
В скриптах я не особо силен, добавлял по статье со спавном "Медузы":


alife():create("af_medusa", db.actor():position(), 1, db.actor:game_vertex_id(), db.actor:id())

В рез-те ловлю вылет


Arguments     : LUA error: No such operator defined

Так что, если у кого-то эта функция есть - скиньте, пожалуйста.
 
После db.actor круглые скобки не нужны.
ColR_iT
 
И это единственная проблема? Ах да, вот моя функция :

function spawn_polovina()        
    alife():create("paek2", db.actor():position(), 1, db.actor:game_vertex_id(), db.actor:id())
end

Ещё раз - после db.actor круглые скобки НЕ нужны.

Возникает один, наверное, идиотский вопрос (скорее всего, последний).
Если я хочу привязать скрипты на юзание нескольких предметов, мне нужно в bind_stalker.script прописывать каждый раз вызов функции?
Или запускать их единой связкой?

Как тебе будет удобно.
ColR_iT



Всё бы ничего, но когда я после этой функции в bind_stalker пытаюсь добавить аналогичные ей, но завязанные на другие предметы, работает лишь последняя функция. Например 


function actor_binder:on_item_drop (obj)
level_tasks.proceed(self.object)
--game_stats.update_drop_item (obj, self.object)
if obj then
inv_volume.update_corpse(obj)
end
end
----------------------------------------------------------------------------------------
function actor_binder:use_obj(obj)
object_parts.sjel_paek(obj)
end
----------------------------------------------------------------------------------------
function actor_binder:use_obj(obj)
object_parts.sjel_paek2(obj)
end
----------------------------------------------------------------------------------------
function actor_binder:use_obj(obj)
object_parts.sjel_banku(obj)
end
----------------------------------------------------------------------------------------        
Тут работает лишь последняя. 

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

Такие дела. - Курт Воннегут.

Поделиться этим сообщением


Ссылка на сообщение

Если я хочу удалить полоски с характеристиками оружия, мне нужно попросту удалить их в inventory_item.xml?

Такие дела. - Курт Воннегут.

Поделиться этим сообщением


Ссылка на сообщение

Saruman, и вовсе никакого вылета. Проверил на 1280х768, завтра гляну на широкоформатнике. Но спасибо за совет, учту, если что.

Такие дела. - Курт Воннегут.

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Ребят, дикая проблема. Вылет с _g.script'ом при переходе NPC с одной схемы на другую. Вот сама логика :

[logic]

active = walker@1

on_death = death

 

[death]

on_info = %+jar_death%

 

[walker@1]

path_walk = val_atack_1

on_info = {+m_kill_bandits} remark@jar

 

[remark@jar]

snd = characters_voice\scenario\escape\assault_attack

on_signal = sound_end | walker@2

 

[walker@2]

path_walk = val_atack_2

def_state_moving1 = sneak

def_state_moving2 = sneak

def_state_moving3 = sneak

combat_ignore = combat_ignore

 

[combat_ignore]

fighting_dist_ge_20

END

Вылет при переходе на ремарк.

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

Такие дела. - Курт Воннегут.

Поделиться этим сообщением


Ссылка на сообщение

ColR_iT

 

> Когда конкретно происходит вылет, до звука или после?

До звука.

 

> Где ты прописал данную логику и как?

В all.spawn, в секции персонажа. 

 

> Пути.

 

[val_atack_1]


points = p0,p1
p0:name = name00
p0:position = -45.142692565918,0.431318998336792,-487.816375732422
p0:game_vertex_id = 825
p0:level_vertex_id = 121788

p1:name = name01
p1:position = -44.5511093139648,0.436177045106888,-494.977294921875
p1:game_vertex_id = 825
p1:level_vertex_id = 121778


[val_atack_2]
points = p0,p1,p2,p3
p0:name = name00
p0:position = -56.4030075073242,0.289295345544815,-482.208435058594
p0:game_vertex_id = 825
p0:level_vertex_id = 107386

p1:name = name01
p1:position = -76.0202178955078,0.182733684778214,-471.158172607422
p1:game_vertex_id = 830
p1:level_vertex_id = 84643

p2:name = name02
p2:position = -84.5404968261719,0.236373871564865,-470.106903076172
p2:game_vertex_id = 830
p2:level_vertex_id = 75342

p3:name = name03
p3:position = -112.293670654297,0.670565128326416,-487.396423339844
p3:game_vertex_id = 830
p3:level_vertex_id = 45909

 

Такие дела. - Курт Воннегут.

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

La'Rento, в смысле? Не понял, поясни.
P.S. Walker работает нормально, по точкам ходит.

 

Не правда, у тебя нет связки точек посредством параметра links, поэтому у тебя в первой схеме walker@1 НПС просто не может никуда ходить, ибо он не знает куда.

ColR_iT

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

Такие дела. - Курт Воннегут.

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

stalkerok007, спасибо, просто я до этого момента думал, что они юзаются лишь в том случае, если нужно задать переход на первую точку (т.е. зациклить путь), т.к. в статье с примером было лишь две точки.

 

Мне интересно, а если у меня два звуковых файла с одним названием, произойдет вылет?

 

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

ColR_iT

 

 

Т.е. так?

snd = assault_attack
Но и в таком случае - вылет.

 

Вылет потому, что такой темы нет. Загляни в файл sound_theme.script и посмотри какие темы вообще существуют.

ColR_iT

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

Такие дела. - Курт Воннегут.

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Надеюсь, вписать её туда можно?

 

Кого и куда?

ColR_iT

 

Тему assault_attack в sound_theme.script

 

Конечно, а почему нет?

ColR_iT

 

Хм, облазил весь sound_theme, так и не разобрался, как подключать новые звуковые темы.

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

Такие дела. - Курт Воннегут.

Поделиться этим сообщением


Ссылка на сообщение

ColR_iT, я не понял, где конкретно вставлять свои звуки в sound_theme.script. Т.к. я нигде не нашёл в блоке "Звуки сталкеров" хоть одной ссылки на звуковой файл. Пробовал писать по аналогии с другими -

esc_wolf_say_thanks = {min_snd = 3, max_snd = 5, rnd = 100, prior = 5, rnd_id = id(), into_id = id(), max_ids = {}}, - это прототип;



assault_attack = {min_snd = 3, max_snd = 5, rnd = 100, prior = 5, rnd_id = id(), into_id = id(), max_ids = {}}, - а это уже моё.


 

 

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

Такие дела. - Курт Воннегут.

Поделиться этим сообщением


Ссылка на сообщение

Gun12, спасибо за ответ, но я не совсем разобрался со script_sound.ltx.
 

1. Что дает "seq" или "rnd" в конце названия? И что нужно ставить в моем примере? 

2. Что за единица (или ноль) перед путем звука? Тут я уже никакой аналогии проследить не смог.

Такие дела. - Курт Воннегут.

Поделиться этим сообщением


Ссылка на сообщение

Параллельно у меня возник довольно интересный вопрос.

 

Возможно ли реализовать вызов экрана PDA через инвентарь? Например, как это было сделано со спальным мешком. Есть PDA - меню открывается. Нету (продал, потерял) - меню не открывается.

Такие дела. - Курт Воннегут.

Поделиться этим сообщением


Ссылка на сообщение

Gun12, нет. Пробовал все делать по аналогии (теперь уж точно) - т.е., правил и sound_theme, и script_sound - результат тот же. NPC просто молчит, ремарковая схема не кончается (я ставил sound_end).

Такие дела. - Курт Воннегут.

Поделиться этим сообщением


Ссылка на сообщение

Всем добрый вечер, запрашиваю помощь в работе со space_restrictor.
Заспавнил рестриктор в Темной Долине (на входе в здание, где в подвале вход в X-18), прописал ему логику на проигрывание саунда в голове эктора - но звук проигрывается сразу же при входе в игру, а на месте, где должен быть рестриктор, нет ничего. 

[3418]

; cse_abstract properties
section_name = space_restrictor
name = restrictor_dv
position = 106.9077911377,0.12151649594307,-255.52502441406
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 955
distance = 0
level_vertex_id = 302952
object_flags = 0xffffff3e
custom_data = <[logic]
active = sr_sound_act

[sr_sound_act]
snd = monsters\zombie\zombie_take_damage_6
END

; cse_shape properties
shapes = shape0
shape0:type = box
shape0:axis_x = 10.2478466033936,0,0
shape0:axis_y = 0,6.01838636398315,0
shape0:axis_z = 0,0,43.5110778808594
shape0:offset = 0,0,0
; cse_alife_space_restrictor properties
restrictor_type = 3


Такие дела. - Курт Воннегут.

Поделиться этим сообщением


Ссылка на сообщение

Stalker_AleX333, если честно, я уже свыше недели мучаюсь с регистрацией звука в sound_theme (так ничего и не вышло у меня, лол). Но все равно спасибо.



Кстати, решил пойти по другому пути. Никто не знает, как скриптом воспроизвести звук в голове эктора?

Такие дела. - Курт Воннегут.

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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

AMK-Team.ru

×
×
  • Создать...