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

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


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

Сейчас счетчик инициализируется на 30 минут, когда ГГ заходит на ЧАЭС, прерывается если он уходит с нее , в том числе в реактор, или спит, и возобновляется при повторном посещении с того же момента.Если ГГ уходит после начала выброса в Припять,то там никакого выброса нет.

Хочу пофиксить его,чтобы счетчик тикал все время и выброс был глобальный.

Нужна помощь.Имеется распакованные файлы и редактор all.spawn.

Найдено:

config\scripts\aes\aes_space_timer.ltx - файл счетчика.

[logic]

active = sr_idle

 

[sr_idle]

--инициализируется когда ГГ получает инфо aes_actor_road

on_info = {+aes_actor_road} sr_timer1

--отменяется,когда strelok_pda_have (что это за переменная?)

on_info2 = {+strelok_pda_have} nil

 

[sr_timer1]

type = dec

--начальное значение 30 минут

start_value = 1800000

argb = 255,255,255,255

-- когда достигает 0 или описанного ниже , то что будет?

on_value = 0 | %+aes_activate_zone% | 180000 | %+aes_timer_180000% | 120000 | %+aes_timer_120000% | 60000 | %aes_timer_60000% | 20000 | %+aes_timer_20000 +aes_activate_zone% | 5000 | %+aes_timer_5000%

--где это искать?

string = st_time_till_surge

 

scripts\sak.script

function switch_timer_stancia() - работает с вышеописанным,больше ссылок на нее нет.

--я не нашел данного объекта в all.spawn

if (obj and obj.name and obj:name() == "aes_space_restrictor_timer") then

--активировать скрипт таймера выше

params.custom="[logic]\ncfg = scripts\\aes\\aes_space_timer.ltx"

 

Прошел Солянку, иду в NLC

Включил себе спаун артефактов.Вопрос к знатокам:как отключить его на локации Бар?Проваливаются,...... :russian_ru: в "серый туман" под локацией,заставляя систему плеваться:

[error]Description   : Invalid vertex for object

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

Gonarh, да,но получается около 25 раз...

на более мощных машинах это м.б. и 40 и 50 и 100 раз ;)

118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Gonarh,

не может =) Период апдейта от 40 мс до 1 с. Это зависит от растояния. Чем дальше от актора, тем реже. Поскольку актор сам от себя близко, то его апдейт вызывается чаще всего, а именно с периодом 40 мс. Могут быть задержки в том числе и от слабого компа, но чаще не будет. Если надо чаще, то есть коллбек fastcall. Но там тоже частота не выше определённой.

Разве что ты знаешь, где можно подкрутить частоту апдейтов. Я вполне допускаю, что это возможно.

 

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

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

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

 

Помогите найти распаковщик all.spawn для Солянки.acdc.pl пишет "unknown zone_ameba", xr делает ГПФ или плохо распаковывает.

Сообщение от модератора n6260
Спроси у Архары - тяжело додуматься?

Прошел Солянку, иду в NLC

какую логику надо сделать что-бы при смерти НПС давался инфопоршень?

[logic]

on_death = death

 

[death]

on_info = %+you_infoproschen%

 

 

118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

malandrinus, понимаю что вспоминать может уже не к месту, но только увидел, и не могу не ответить на ваш пост 3877.

Возможно вы хотели сказать что такой способ не эстетичен? Но так делать можно! Не мне же вам объяснять, что апдейт будет "обрезать" секцию

if not has_alife_info("storyline_actor_start")

...

end

после получения вышеупомянутой infoportion.

И раз уж такая запись существует, то почему не воспользоваться ею и не поставить тот же одноразовый спавн в начале игры на неё?

И раз уж такая запись существует, то почему не воспользоваться ею и не поставить тот же одноразовый спавн в начале игры на неё?

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

В силу этого желательно указать на возможную проблему сразу, чем потом переписывать весь код ;)

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

О какой проверке идет речь? Вызов ставить внутри уже упомянутого блока if ... еnd.

упомянутого блока if ... еnd.

а он не является проверкой?

118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105
а он не является проверкой?

Эта проверка изначально поставлена туда разрабами, ничего нового, кроме вызова спавна внутри этого блока, не добавляется. Этот блок срабатывает один раз при старте игры, а далее, при следующих апдейтах, он просто игнорируется, т.к. не проходит оригинальная проверка if NOT ... InfoPortion уже оказывается выдан после первого апдейта.

db.actor:give_info_portion(<инфопоршень>)

Изменено пользователем LithOS
Ничто не истина. Все дозволено.
ЭЭтот блок срабатывает один раз при старте игры, а далее, при следующих апдейтах, он просто игнорируется,....

Да все это так, НО... Прочти внимательно то что я написал, апдейт игрока крайне нежелательно трогать без видимой причины, и если есть возможность выполнить код вне его, то этот участок скрипта переносят в процедуру net_spawn или более подходящее место, можешь спросить скриптёров НЛС, как они относятся к добавлению кода в апдейтер ;)

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

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

Если ты знаешь, что сможешь чего-то добиться, то ты прав. Нет границ для самосовершенства.

Объясните,как работает таймер выброса на ЧАЭС.all.spawn я распаковал,но из Оригинала.

alife_l12_stancia.ltx ,есть секция:

[7256]

; cse_abstract properties

section_name = space_restrictor

name = aes_space_restrictor_timer

position = 1010.24639892578,-0.097564697265625,-201.021408081055

direction = 0,0,0

 

; cse_alife_object properties

game_vertex_id = 2273

distance = 0

level_vertex_id = 405033

object_flags = 0xffffff3e

custom_data = <<END

[logic]

active = sr_idle

 

[sr_idle]

on_info = {+aes_actor_road} sr_timer1

 

[sr_timer1]

type = dec

start_value = 360000

argb = 255,255,255,255

on_value = 0 | %+aes_activate_zone% | 180000 | %+aes_timer_180000% | 120000 | %+aes_timer_120000% | 60000 | %aes_timer_60000% | 20000 | %+aes_timer_20000 +aes_activate_zone% | 5000 | %+aes_timer_5000%

string = st_time_till_surge

END

 

 

 

В Солянке добавлено ,судя по всему, добавлено

on_info2 = {+strelok_pda_have} nil,

то есть отключение секции ,когда приходит сообщение strelok_pda_have.

Вопрос,что есть aes_activate_zone, и откуда видно,что секция - это таймер.

 

Далее, в sr_timer.script (в распакованной gamedata),есть class "action_timer".Как он связан с данной секцией?

 

 

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

Прошел Солянку, иду в NLC

Lebedev

Функция спавна выглядит так:

function spawn()

alife():create("объект",vector():set(x, y, z), level_vertex, game_vertex)

end

 

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

Спасибо, а как приписать к функции инфопорщень, и сделать так, чтобы нпс стоял на месте?

Если ты знаешь, что сможешь чего-то добиться, то ты прав. Нет границ для самосовершенства.

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

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

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

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

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

Войти

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

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

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