S.T.A.L.K.E.R. 2: Новый трейлер <<<>>> S.T.A.L.K.E.R.: Global War <<<>>> Инструмент - теперь и для ТЧ!
-
Число публикаций
935 -
Регистрация
-
Последнее посещение
-
AMKoin
1,882 [Подарить AMKoin]
Весь контент пользователя Overfirst
-
[SoC] Ковыряемся в файлах
Overfirst ответил на тему форума автора Halford в Скрипты / конфиги / движок
@losiara ну и будет у тебя звук играться из головы ГГ, а не от непися. -
[SoC] Ковыряемся в файлах
Overfirst ответил на тему форума автора Halford в Скрипты / конфиги / движок
@BFG юзай всё тот же коллбек на дроп итема. Код такой: if obj:section() == "af_kamen_udachy" then alife():release(alife():object(obj:id())) end Вставлять во всё то же место - после function actor_binder:on_item_drop (obj). -
[SoC] Ковыряемся в файлах
Overfirst ответил на тему форума автора Halford в Скрипты / конфиги / движок
@BFG он используется компилятором, СДК его создаёт. Игрой он используется только на МП картах. -
[SoC] Ковыряемся в файлах
Overfirst ответил на тему форума автора Halford в Скрипты / конфиги / движок
Короче, предлагаю еще вариант, немного переделанный, очень удобно, если такие вещи за игру надо выполнить несколько раз с разными предметами и рестрикторами. Вставляем таблицу такого вида перед function actor_binder:on_item_drop (obj): local drop_tbl = { {zone = "restrictor_1", item_sect = "item_section_1", info = "infoportion_1"}, {zone = "restrictor_2", item_sect = "item_section_2", info = "infoportion_2"} } После function actor_binder:on_item_drop (obj) вставляем: for k,v in pairs(drop_tbl) do if utils.npc_in_zone(db.actor, db.zone_by_name[v.zone]) and obj:section() == v.item_sect and not has_alife_info(v.info) then db.actor:give_info_portion(v.info) end end Пояснения излишни. Для каждого нового предмета с нужным рестриктором через запятую дописываем в таблицу строки такого вида: {zone = "имя_рестриктора", item_sect = "секция_предмета", info = "инфопоршень"} И всё это сделано на оригинале, никаких солей у меня нету, поэтому предлагаю что могу. Работает. -
[SoC] Ковыряемся в файлах
Overfirst ответил на тему форума автора Halford в Скрипты / конфиги / движок
@BFG Петрович, могу предложить такой вариант - использование коллбека на выбрасывание предмета из инвентаря, там проверять наличие ГГ в нужном рестрикторе. Какая разница, кого проверям в зоне - ГГ или итем? Расстоянием в ~0,5 м можно пренебречь, согласись. Тогда в bind_stalker.script, после actor_binder:on_item_drop (obj) помещаем такой код: if xr_conditions.actor_in_zone(nil, nil, {"your_restr"}) and obj:section() == "medkit" and not has_alife_info("your_info") then db.actor:give_info_portion("your_info") end Расшифровываю: your_restr - имя рестриктора, в котором должен быть ГГ, medkit - секция нужного тебе предмета (в данном случае аптечка), your_info - выдаваемый инфопоршень при выполнении всех условий. -
[SoC] Ковыряемся в файлах
Overfirst ответил на тему форума автора Halford в Скрипты / конфиги / движок
удалено по просьбе юзера. bfg -
@Vlador поставь ему выкл через какое-то время: shutdown.exe -s -t 72000 В данном случае выключится через 20 часов.
-
[SoC] Ковыряемся в файлах
Overfirst ответил на тему форума автора Halford в Скрипты / конфиги / движок
@UriZzz скинь мне функцию proceed_spawn. Найди поиском: function proceed_spawn(). Мне уже человек сообщил. Вот в общем виде: function proceed_spawn(p_name, p_vector, p_lv, p_gv, p_count, p_portion, p_logic) p_count - количество, p_portion - инфопоршень (не очень понял принцип его использования, что-то там для учёта, где заспавнено), p_logic - кастом дата (необязательно, судя по всему), записывается как-то так: "[logic]\ncfg = scripts\file.ltx". -
[SoC] Ковыряемся в файлах
Overfirst ответил на тему форума автора Halford в Скрипты / конфиги / движок
@UriZzz level_vertex_id и game_vertex_id. -
[SoC] Ковыряемся в файлах
Overfirst ответил на тему форума автора Halford в Скрипты / конфиги / движок
@UriZzz я всегда оставлял три цифры после запятой (точки), остальными пренебрегал, это не столь важно. Можно даже целые писать. Система координат такая же. Что касается самих функций и передаваемых в них аргументов, то не скажу, мода нету, но с координатами вопрос закрыли. -
Платформа какая? В ютубе есть урок по созданию перехода на ЗП.
-
@sv6o6o9a рад за тебя. В ЗП никаких АМК меток нету. Так что дальше твой косяк.
-
@Kirgudu достаточно как раз вычистить этот самый simulation.ltx. Еще можно пройтись поиском и убрать из кастом даты смартов респавн сквадов неписей и мобов или же просто потереть эти смарты из спавна. В любом случае, simulation.ltx чистить нужно.
-
Редактирование движка X-Ray
Overfirst ответил на тему форума автора Rolan в Скрипты / конфиги / движок
Платформа-то какая? Вот код под 1.6: function spawn_object_with_direction(actor, obj, p) --' p[1] - секция кого спаунить --' p[2] - имя патрульного пути где спаунить. --' p[3] - direction_x в радианах --' p[4] - direction_y в радианах --' p[5] - direction_z в радианах if p then local spawn_sect = p[1] local path_name = p[2] if path_name == nil then abort("Wrong path_name for 'spawn_object_with_direction' function %s. For object %s", tostring( path_name ), obj:name() ) end if not level.patrol_path_exists( path_name ) then abort("Path %s doesnt exist. Function 'spawn_object_with_direction' for object %s ", tostring( path_name ), obj:name() ) end local ptr = patrol( path_name ) local direction_x = tonumber(p[3]) or 0 local direction_y = tonumber(p[4]) or 0 local direction_z = tonumber(p[5]) or 0 local se_obj = alife():create(spawn_sect, ptr:point(0), ptr:level_vertex_id(0), ptr:game_vertex_id(0)) se_obj.angle = vector():set( direction_x, direction_y, direction_z ) end end %=spawn_object_with_direction(ammo_7.62x54_7h1:ammo_pos_on_bunker:0:1.57:0)% -
Добавлен @StasssiK. Добавлен @Шжелезяка.
-
Редактирование движка X-Ray
Overfirst ответил на тему форума автора Rolan в Скрипты / конфиги / движок
Ты темой ошибся. Что касается вопроса, приблизительно так: function spawn_item_actor(item, count) if item then if count == nil then count = 1 end for i = 1, count do alife():create(item, db.actor:position(), 0, 0, 0) end end end local level_1 = { af_vyvert = 3, af_blood = 2, wpn_bm16 = 1, antirad = 2 } function give_reward() for k,v in pairs(level_1) do spawn_item_actor(k, v) end end -
У меня пока лежат 2-3 фото. Скоро добавлю, не сегодня точно, дел по горло. @Шжелезяка там есть, да.
-
На нем пока что оригинал ЗП с некоторыми трудностями работает. Не знаю как сейчас, но с месяц назад было так. Юзаю другой репо.
- 28 ответов
-
- 1
-
- new features
- fix
-
(и еще 3 )
Отмечено тегом:
-
[SoC] Ковыряемся в файлах
Overfirst ответил на тему форума автора Halford в Скрипты / конфиги / движок
Я извиняюсь за оффтоп, но что человек такого спросил, что ему три диза накинули на пост? Странный вы люд. -
Stalker OST - Dirge for the Planet (Gingertail Cover)
-
@Jurok есть у мну такая, вроде она. Держи.
-
[SoC] Ковыряемся в файлах
Overfirst ответил на тему форума автора Halford в Скрипты / конфиги / движок
Попробуй: function spawn_weapon_ammo_clear(weapon) local function set_ammo_clear(k, v, obj) if obj ~= nil then obj:set_ammo_elapsed(0) end end if weapon then local obj = alife():create(weapon, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) level.client_spawn_manager():add(obj.id, 0, set_ammo_clear, 0) end end Вызывать так: spawn_weapon_ammo_clear("wpn_ak74") -
Выдача инфопоршня в кастом дате: [logic] active = nil known_info = known_info [known_info] info_portion Как ты мне в скайпе говорил, у тебя труп спавнится из логики рестриктора (spawn_corpse). Так пропиши в секцию непися: custom_data = scripts\tatata\corpse.ltx Создавай этот файл и пиши вышепоказанное. При открытии окна обыска получишь свой инфо.