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

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


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

Люди поправьте что нетак? :mellow:

 

Надо в эту функцию поставить либо задержку либо коректное постоянное выполнение

function body_gone()

local obj = alife() : object( "mehanik" )

if obj then

alife():release(obj , true)

else

body_gone()

end

end

 

Задержка от Monnoroch

 

local a

 

function a()

if a and a >= time_global()

then

return

end

a = time_global() + 10000

alife():release(alife():object("mehanik"))

a()

end

 

Что то я запутался совсем.

Помогите разобраться.

 

 

 

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

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

while true do
................
...............
..............
end

Выход из цикла осуществляется по break В теле цикла - любые действия и проверки.

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

НЛС-6: У каждого своя зона

_______________________________________________________________

Не ищи легких путей и не возвращайся той же дорогой

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

Vergas

Если не трудно напиши где его лучше ставить этот "while true do",

в этой функции:

function body_gone()

local obj = alife() : object( "mehanik" )

if obj then

alife():release(obj , true)

end

end

 

А то что то я непонял, что имеется ввиду и реально ли такое реализовать. :rolleyes:

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

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

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

Изменено пользователем 8push5
Возможно всё, ну или почти всё.
Ссылка на комментарий

8push5

Выше я уже писал как именно должен работать уюоршик трупа но ничего повторусь.

Скажим появился esc_wolf его убили труп исчез появился снова esc_wolf его убили труп снова исчез и так всевремя.

Труп должен исчезать именно перед глазами ГГ.

Проверка на жив-мертв у меня идет через фаил "xr_motivator" вот так:

в функцию

function motivator_binder:death_callback(victim, who)

 

добавил:

if victim and victim.name and string.find(victim:name(), "esc_wolf ")

then

deth_out.body_gone()

 

выполнение удаления трупа происходит один раз и реализовано вот так

 

function body_gone()

local obj = alife() : object( "esc_wolf" )

if obj then

alife():release(obj , true)

end

end

Мне необходимо что бы труп исчезал сразу после того как esc_wolf был убит, а как я уже говорил первый труп исчезает, а при убийстве второй раз тело остается лежать, при убийстве в 3-й раз еще одно тело остается лижать и т.д.

 

Помогите решить проблему если она конечно решаема. :rolleyes:

 

 

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

karavan, во первых это:

local obj = alife() : object( "esc_wolf" )

абсолютно лишняя запись, зачем получать объект если он у нас уже получен вот здесь:

if victim and victim.name and string.find(victim:name(), "esc_wolf ")

достаточно просто передать victim в функцию body_gone(), да и вообще я не вижу смысла этой функции, не проще вместо deth_out.body_gone() написать alife():release(victim , true), дальше цикл здесь только нагрузит машину, а толку от него будет чють, скажу так, то что не удаляются последующии трупы возможно вызвано повисанием death_callback, я очень часто сталкивался с такой проблеммой, проверить просто: добавить одну строку сюда

if victim and victim.name and string.find(victim:name(), "esc_wolf ") then

get_console():execute(">>пытаемся_удалить>>"..victim:name()) --просто выводим текст в консоль

deth_out.body_gone()

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

Сделай это и отпишись о результатах.

Изменено пользователем 8push5
Возможно всё, ну или почти всё.
Ссылка на комментарий

8push5

Чего то у меня совсем ничего из того что ты написал не сработало. Ну да ладно.

Наверное эта задача не решаема. :wacko2:

 

Есть еще кое что что хотелось бы узнать как делать. Это скажем включение звука в голове ГГ доходя до точки или Спавн НПС доходя до точки. Другими словами создание события на точку на карте. Как например вылет вертолета на кордоне с проигрыванием звука "Там **** какой-то шляется..."

Вы спросите "зачем это нужно?" для придания квестам остроты и создания живости восприятия игры. Т.е. скажем идет ГГ к блокпосту под мостом на кордоне, доходит до точки, и в голове играется звук "Да, тут так просто не пройти." и ГГ из искуственной мореанетки в руках геймера превращается в одушевленный предмет со своими мыслями.

 

Как реализовать включение событий на точку на карте?

 

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

Значит всем доброго времени суток.

Я вот по какому вопросу:

После разговора с Бесом и Серым они куда-то уходят и в лучшем случае приходят все вместе на Милитари.

Так вот.Почему они уходят?Логику не ковырял,изменял только оружие,иконку и визуал.

 

Вопрос 2:

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

Спрашиваю чтобы потом знать что делать.

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

Я ВЕРНУСЬ И НАДЕРУ ВСЕМ ЗАДНИЦЫ (С) УИЛЛИС

Ссылка на комментарий
karavan, а что конкретно не сработало, вылетело, или что, запись то в логе была которая через get_console():execute вывестись должна была?
Возможно всё, ну или почти всё.
Ссылка на комментарий

8push5

С "get_console():execute" игра не запустилась

 

Поставил вместо deth_out.body_gone() написал alife():release(victim , true) убора трупа не произошло даже в первый раз.

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

karavan, покажи весь код целиком.

И что значит не запустилась, если вылетела, то где лог.

Изменено пользователем 8push5
Возможно всё, ну или почти всё.
Ссылка на комментарий

8push5

Вот так я переделал:

if victim and victim.name and string.find(victim:name(), "mehanik")

then

get_console():execute(">>пытаемся_удалить>>"..victim:name())

then

deth_spawn.body_gone()

end

 

Вот лог.

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: ...-\s.t.a.l.k.e.r\gamedata\scripts\bind_stalker.script:2: attempt to index global 'xr_motivator' (a nil value)

 

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

karavan, а вот это вообще что такое?

if victim and victim.name and string.find(victim:name(), "mehanik")

then

get_console():execute(">>пытаемся_удалить>>"..victim:name())

then

deth_spawn.body_gone()

end

А вылет обычный, сказал что в файле 'xr_motivator' синтаксическая ошибка, а чтоб не совершать таких ошибок, переведи слово then, и посмотри где оно ставится в других скриптах.

Изменено пользователем 8push5
Возможно всё, ну или почти всё.
Ссылка на комментарий

Stalker Hartman

 

После разговора с Бесом и Серым они куда-то уходят и в лучшем случае приходят все вместе на Милитари.

Так вот.Почему они уходят?Логику не ковырял,изменял только оружие,иконку и визуал.

 

После изменения визуала мог измениться ранг НПС (допустим с опытного на мастера)

а мастерам запрешенно находится на свалке вот они и валят на миллитари

 

Такое бывает при установленных аи пак (в них ранг зависит от визуала)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

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

Подскажите пожалуста как убрать визуальный эффект радиации (яркое освещение при повышении радиационного фона).

Насколько я понял, надо что-то где-то закомментировать.

Подскажите: что, в каком файле, и как закомментировать.

 

Если вопрос не в эту тему, то подскажите в какую.

Изменено пользователем Smily
Ссылка на комментарий
как убрать визуальный эффект радиации

файл gamedata\config\misc\zone_radioactive.ltx

искать строку postprocess перед ней поставить ;

Как создать функцию вызова звукового сигнала и проиграть его в голове ГГ?

function blablabla_mr_Freeman()

local pestetc = sound_object([[detectors\bomb_timer]])

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

end

118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105
Ссылка на комментарий

function metka(obj)

level.map_add_object_spot(obj.id, "red_location", "Моя метка")

end

obj - это объект на который вешаешь метку - непись/аномалия/рестриктор и т.д.

118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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