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

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

KD87, да, он на той странице, просто я функцию переименовал, сейчас он выглядит так, в конце дописал ещё 2 end`aи вылета теперь нет:

local outfits={

"stalker_gas_outfit",

"military_stalker_commander_outfit"

}

 

local snd = sound_object([[alexmx\helicopter]])

 

function sound_update()

if db.actor and db.actor:alive() then

local outfit = db.actor:item_in_slot(6)

if outfit and outfit:section() and outfits[outfit:section()] then

if not snd:playing() then

snd:play_at_pos(db.actor, vector ():set (0, 0, 0), 0, sound_object.s2d)

end

end

end

end

 

Вызываю так, как написал ранее. Но он так и не работает...

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

ZeeK, не обязательно. Ошибка в скрипте может быть от отсутствия/присутствия запятой вплоть до неправильного написания кода.

Ulman, ЛС.

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

Помогите пожалуйста с такой задачкой:

Мне нужно из монстра сделать манекена. То есть чтобы тот все игнорировал и стоял на одном месте.

gruber ты говорил в ТТ2 глянуть. Не подскажите имя той зверюшки? Под каким именем она заспавнена?

Мой архив

Сталкером не занимаюсь.

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

amik, Напиши ему такую логику:

[logic]

active = mob_remark@hold

 

[mob_remark@hold]

anim = stand_idle_0

time = 50000

on_signal = action_end | mob_remark@hold

 

 

Добавлено через 3 мин.:

Можно взять из ТТ2

Смоти логику: doc_pseudodog, doc_bloodsucker, dog_cat...

Создаю глобальный мод с новыми локациямЭ

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

Ребята, с огромной помощью, всё таки мой скрипт заработал, но со звуком появился глюк. Вот ссылка, которая демонстрирует собственно проблему. Кто то с таким сталкивался?

 

P.S. Сам по себе звук нормальный, в звуковом файли один цикл дыхания.

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

Такое чувство, что звук у тебя запускается каждый апдейт, независимо от того, доиграл он предыдущий цикл или нет...

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

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

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

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

Я знаю, что я надоел, извините. Я вот хочу попробовать написать скрипт для ТЧ, что бы когда ГГ был голоден, проигрывался звук, желательно рандомный, я примерно что то написал, но вот незнаю как сделать, что бы функция вызывалась каждые 2-3 минуты нормального времени, то есть что бы звук проигрывался при условии голода через определённый промежуток времени. Можете пожалуйсто рассказать на примере. Заранее спасибо. :)

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

Ulman, отслеживать голод ГГ вроде бы нельзя... Так что никак...

Хотя можно попробовать сделать по статику на экране (иконка голода)... Если только она именно статиком сделана, а не движком...

 

По звуку:

function sound_update()

if db.actor and db.actor:alive() then

local outfit = db.actor:item_in_slot(6)

if outfit and outfit:section() and outfits[outfit:section()] then

if not snd:playing() then

snd:play_at_pos(db.actor, vector ():set (0, 0, 0), 0, sound_object.s2d)

else

if snd:playing() then snd:stop() end

end

end

end

end

 

То что жирным выделено добавь. Не будет на каждом апдейте включатся.

То что подчеркнуто вообще не нужно.

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

Shadows, да со скриптом мне уже помогли, но спасибо и за такой способ, буду теперь знать.

А вот на счёт голода, вроде бы в моём случае надо ковырять от _g.script да и какая то более чем странная функция там есть:

function on_actor_satiety()

end

Что то мне кажется, что она и была задумана для чего то подобного.

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

Здравствуйте)

Как в Сталкере с io в скриптах?

    local fl = assert(io.open(".\\test.txt", "a+"))  
    fl:write("test")  
    fl:close()

Получится?

Или разработчики отрубили все расширения?

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

Подскажите, пожалуйста, как можно скриптом вывести текстуру на экран, которая записана в maingame.xml? Например, если здоровье гг меньше такого-то значения, то вывести такую текстуру. Я просто в скриптах не силен, а поиск мне не помог.

Жду ли я Сталкер 2? Хм...
Ссылка на комментарий

Ребята, я был прав, функция:

function on_actor_satiety()
end

отвечает за голод. Я переделал её вот так:

snd = sound_object([[ambient\underground\rnd_giant]])
function on_actor_satiety()
        if not snd:playing() then 
            snd:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d)
        end
end

И звук проигрывался, но к сожалению только один раз за всю игру. Можно ли как то исправить это недоразумение?

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

К сожалению больше ни в каком скритпе функция "on_actor_satiety" нигде не вызывается и нигде больше даже такое название не встречается, получается движком вызывается... А вообще с этим что то можно сделать?

Хотя я тут наткнулся на скрипт game_stats.script и он как раз ссылается на "satiety".

Собственно вот такие функции:

function shutdown ()

printf ("GAME STATS START AT LEVEL [%s]", level.name ())

local l_name = level.name ()

for a = 1, table.getn (stats), 1 do

if stats[a].id == actor_position then

printf ("[stats][%s][%s][%d][%f,%f,%f][%f, %f, %f]", l_name, stats[a].time, stats[a].id, stats[a].position.x, stats[a].position.y, stats[a].position.z, stats[a].health, stats[a].radiation, stats[a].satiety)

elseif stats[a].id == actor_item_take then

printf ("[stats][%s][%s][%d][%f,%f,%f][%s]", l_name, stats[a].time, stats[a].id, stats[a].position.x, stats[a].position.y, stats[a].position.z, stats[a].item_name)

elseif stats[a].id == actor_item_drop then

printf ("[stats][%s][%s][%d][%f,%f,%f][%s]", l_name, stats[a].time, stats[a].id, stats[a].position.x, stats[a].position.y, stats[a].position.z, stats[a].item_name)

elseif stats[a].id == actor_money_trade or stats[a].id == actor_money_quest or stats[a].id == actor_money_total then

printf ("[stats][%s][%s][%d][%f,%f,%f][%d]", l_name, stats[a].time, stats[a].id, stats[a].position.x, stats[a].position.y, stats[a].position.z, stats[a].money)

end

end

stats = {}

end

 

и такая:

function update (delta, actor)

additional_time = additional_time + delta

if additional_time < filter_time then

return

end

additional_time = 0

local t = {

time = game.get_game_time ():timeToString (game.CTime.TimeToSeconds),

id = actor_position,

position = actor:position (),

health = actor.health,

radiation = actor.radiation,

satiety = actor.satiety

}

table.insert (stats, t)

end

 

Может это как то использовать можно?

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

Я когда-то просто отключил движковый голод, и написал скриптовой. Но того кода, к сожалению, уже нету. Впрочем, написать его не тяжело.

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

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

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

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

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

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

Войти

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

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

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