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

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


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

Что ж, жаль что так. Выходит что способа кроме как в моде ARC и нет вовсе? 

------------

А вот есть ли возможность хитонуть НПС когда он компаньон главному герою? Это же не любой НПС уже а совершенно определенный.

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

Что ж, жаль что так. Выходит что способа кроме как в моде ARC и нет вовсе?

В ARS моде идёт перебор аномалий для каждого сталкера в определённом радиусе. Потом для каждой, проверяется, а не попал ли он в неё, и если попал, наносится hit. Можно сделать через рестрикторы, у которых срабатывают колбэки на входи и выход. Т.е. для каждой аномалии по её же координатам спавнить спейс рестриктор, у которого в колбэке прописать хит по угодившему в него НПС. Так будет менее ресурсоёмко, т.к. просчётов и переборов никаких не будет.

А вот есть ли возможность хитонуть НПС когда он компаньон главному герою? Это же не любой НПС уже а совершенно определенный.

Написал бы конкретнее, что хочешь сделать.
Ссылка на комментарий

Пока всё просто:
Есть смарт:

 

[smart_terrain]
squad_id = 81
max_population = 5
respawn_only_smart = true

[exclusive]
stalker_companion1 = test\exclusive\stalker_companion.ltx
stalker_companion2 = test\exclusive\stalker_companion.ltx
stalker_companion3 = test\exclusive\stalker_companion.ltx
stalker_companion4 = test\exclusive\stalker_companion.ltx
stalker_companion5 = test\exclusive\stalker_companion.ltx

И логика для эксклюзива:

[logic@stalker_companion3]
active = companion@go
prior = 22
suitable = {=check_npc_name(stalker_green_neutral)}

[companion@go] 
meet = meet
in_restr = asd_03
wounded = wounded
use_camp = false
combat_ignore_cond = {!actor_enemy} true, false
dist_stop = 3
danger = danger_condition@go

[wounded]
hp_state = 0|wounded_heavy@help_heavy
hp_state_see = 0|wounded_heavy@help_heavy
hp_victim = 0|nil
hp_fight = 0|false
hp_cover = 0|false

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[danger_condition@go]
ignore_distance = 0
ignore_distance_grenade = 0
ignore_distance_corpse = 0
ignore_distance_hit = 0
ignore_distance_sound = 0 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[meet]
close_anim = nil
close_victim = nil
far_anim = nil
far_victim = nil
close_distance = 0
far_distance = 0
use = {=actor_enemy} false, {=dist_to_actor_le(3)} true, false
snd_on_use = {!dist_to_actor_le(3)} nil
meet_on_talking = false

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

 

 


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

 

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

Cyclone



Cyclone Вы правы, это моя не доработка. Поторопился. 



Кстати сравнивал, секции аномалий из ЧН и ЗП. Аномалии только дополняются, а вот хотя бы понять какой параметр урезан, не получается. Жаль что я не умею ковырять движок.  :dash2:

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

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

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

Shredder К сожалению как корректно перенести скрипы из ARS мода я пока не могу понять. Видать плохой из меня скриптер. Поэтому прошу помощи у более опытных товарищей. 

Пробовал просто перенести свою тестовую локацию в ARS мод, но запускаться мод отзывается ругаясь на фаил logic.script

 

Поэтому кто может сделайте доброе дело, помогите пожалуйста вырезать "нормальную работу аномалий" из ARC!!!  :cray5:

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

Кто может объяснить как правильно задать параметры при использовании телепорта сквада (teleport_squad)? Не могу понять, можно ли переместить сквад в другой смарт в аним_поинт или только на путь?

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

 karavan

используй в логике %=teleport_squad(имя_сквада:точка)%

можно переместить в другой смарт в аним_поинт, но надо чтобы был он свободен

  • Нравится 1
Ссылка на комментарий

karavan%=teleport_squad(story_id:путь:индекс_точки_на_пути)%, последний параметр не обязательный, будет ставить в начало пути. Переместить можно только на путь.

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

Buck81, он? Если да, то не отвечай: не флуди  ;) .

 



-----------------------------------------------------------------------------------
-- Sidor etc binding
-----------------------------------------------------------------------------------

function bind(obj)
    local new_binder = trader_object_binder(obj)
    obj:bind_object(new_binder)
end

------------------------------------------------------------------------------------
class "trader_object_binder" (object_binder)

function trader_object_binder:__init(obj) super(obj)
    self.loaded = false
end


function trader_object_binder:reload(section)
    object_binder.reload(self, section)
end

function trader_object_binder:reinit()
    object_binder.reinit(self)

    db.storage[self.object:id()] = { }

    self.st = db.storage[self.object:id()]
end

function trader_object_binder:update(delta)
    object_binder.update(self, delta)

    -- Апдейт торговли
    if self.object:clsid() == clsid.script_trader then
        trade_manager.update(self.object)
    end

    local st = db.storage[self.object:id()]
    if st ~= nil and st.active_scheme ~= nil then
        xr_logic.try_switch_to_another_section(self.object, st[st.active_scheme], db.actor)
    end
    
    if self.st.active_section ~= nil then
        xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "update", delta)
    end
end

function trader_object_binder:net_spawn(sobject)
    if not object_binder.net_spawn(self, sobject) then
        return false
    end

    local on_offline_condlist = db.storage[self.object:id()] and db.storage[self.object:id()].overrides and db.storage[self.object:id()].overrides.on_offline_condlist
    if on_offline_condlist ~= nil then
        xr_logic.pick_section_from_condlist(db.actor, self.object, on_offline_condlist)
    end

    if not self.object:alive() then
        return true
    end
    
    if alife():object(self.object:id()) == nil then
        return false
    end

    db.add_obj(self.object)
    if self.object:clsid() == clsid.script_trader then
        self.object:set_trader_global_anim("idle_spinka")
        smart_terrain.setup_gulag_and_logic_on_spawn( self.object, self.st, sobject, modules.stype_trader, self.loaded)
    end
    
    return true
end

function trader_object_binder:net_destroy()
    xr_sound.stop_sounds_by_id(self.object:id())

    local st = db.storage[self.object:id()]
    if st and st.active_scheme then
        xr_logic.issue_event(self.object, st[st.active_scheme], "net_destroy")
    end

    if db.offline_objects[self.object:id()] then
        db.offline_objects[self.object:id()].level_vertex_id = self.object:level_vertex_id()
        db.offline_objects[self.object:id()].active_section = db.storage[self.object:id()].active_section
    end

    db.del_obj(self.object)
    db.storage[self.object:id()] = nil
    object_binder.net_destroy(self)
end

function trader_object_binder:net_save_relevant()
    return true
end

function trader_object_binder:save(packet)
    set_save_marker(packet, "save", false, "trader_object_binder")
    object_binder.save(self, packet)
    xr_logic.save_obj(self.object, packet)
    if self.object:clsid() == clsid.script_trader then
        trade_manager.save(self.object, packet)
    end
    set_save_marker(packet, "save", true, "trader_object_binder")
end

function trader_object_binder:load(reader)
    self.loaded = true
    set_save_marker(reader, "load", false, "trader_object_binder")
    object_binder.load(self, reader)
    xr_logic.load_obj(self.object, reader)
    if self.object:clsid() == clsid.script_trader then
        trade_manager.load(self.object, reader)
    end
    set_save_marker(reader, "load", true, "trader_object_binder")
end

 

 

Изменено пользователем Сталкер Лом

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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

нет, вроде не этот. В общем я хочу Сидоровича на кордоне заспавнить, ничего не выходит, кто бы помог. Вижу какой то пак nukila сделал, там почти всё готово, но ссылки все устарели.

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

Подскажите пожалуйста где, в каких файлах искать настройки показа метки ГГ на миникарте? Перерыл весь Нет ничего найти не могу.

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

Здравствуйте, уважаемые форумчане! Недавно появилась такая проблема -- сталкер вылетает совершенно в случайных местах (в том числе в главном меню и во время проигрывания intro-заставок). Лог таков:

stack trace:

0023:60007904 d3d11.dll
0023:6000753C d3d11.dll
0023:5FFB3E5A d3d11.dll
0023:07DDB8FA xrRender_R3.dll
 
[error][      18]    : Больше файлов не осталось.

На другом форуме мне сказали, что проблема с обновлением для Windows 7 (его номер не сказали, не знают), мол, оно глючное, его надо удалить. Может, вы знаете, что за обновление? Заранее спасибо.

ЗЫ. Прошу прощения за возможный оффтоп, не знаю, куда еще обратиться

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

Есть ли метод с помощью скрипта вывода дополнительного предмета на визуал ГГ от третьего лица? Поясню, есть класс TORCH_S, с помощью которого цепляется фонарик на голову ГГ. Так вот есть ли способ (может кто сталкивался) вывести на голову ГГ два таких класса-фонарика, один будет по модели фонарик, другой например прибор ночного виденья или противогаз.

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

Столкнулся с проблемой: изменяю описания в файлах st_items_equipment.xml и st_items_weapons.xml, но в игре изменения не отображаются, причём отображается, то что было до изменения (не из resources и не из patches). Может что-то где кешируется ? Пробовал начинать новую игру - эффект тот же.

"Сюжет в игре — как сюжет в порнофильме. Он должен быть, но он не так важен." ©

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

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

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

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

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

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

Войти

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

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

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