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

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

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

24 минуты назад, Norman Eisenherz сказал:

в конфиге прописана метка только для глобальной карты

 

Я же правильно понимаю, что вы о моде Eye of Chernobyl? Если да, то я не знаю как мне это поможет, потому как  с установленным АМК при моих навыках я их вряд ли подружу. Приоритетней бы саму миникарту в АМК подправить для отображения искомого.

Ссылка на комментарий
36 минут назад, none сказал:

Если же пытаюсь ставить мод поверх АМК, то игра не запускается.

Такого не бывает.

Игра всегда запускается, в любых каких угодно условиях.

Запускается, начинает загружать свои файлы. Если ей что-то не нравится, то она пишет это в логе. А ковыряльщик-мододел читает лог, и правит то что игре не понравилось. Утрированно и в общих чертах, адаптации одних модов к другим, так и делаются.

Изменено пользователем Zander_driver
  • Нравится 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

Всем привет! Ребята кто нибудь знает как можно реализовать свечение мушки прицела на оружие в тч.

Добавлено  HellRatz,

2.1.2. Запрещено оставлять повторные сообщения (или дублировать их) в одной или нескольких темах.

Устное предупреждение.

 

Знаем. Назначь на мушку шейдер самосвечения selflight.

1_Draken_1.gif

AMD FX (tm)-6300 Six-Core (6 X 3.50GHz); RAM 16Gb; GeForce GTX 750 Ti (2Gb).
Windows -10 Home (х64)

Ссылка на комментарий
9 минут назад, Zander_driver сказал:

всегда запускается, в любых каких угодно условиях.

Прошу прощения, я изначально не утрированно и сказал что мой уровень познаний в данной области почти нулевой, потому прошу отнестись с снисхождением к некоторым неточностям формулировок. Но собственно и не ставилось целью подружить сборку с модом. Поэтому же нет и лога. Как несведущий я и испрошал совета у корифеев касаемо возможности или отсутствии оной в настройке уже имеющейся миникарты по необходимым потребностям при уже установленном АМК, т.к. гипотетически предположил что для этого достаточно изменить несколько (увы мне неведомых) строк.

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

@none, Из дендро-фекального набора, слепил костыль - буквально на коленке, так что косяки скорее всего вылезут :crazy2:

 

Скрытый текст

	<enemy_location hint="enemy" no_offline="1">
		<level_map spot="enemy_mini_spot"    pointer="quest_pointer"/>
		<mini_map spot="enemy_mini_spot"     pointer="quest_pointer"/>
	</enemy_location>

	<neutral_location hint="neutral" no_offline="1">
		<level_map spot="neutral_mini_spot"  pointer="quest_pointer"/>
		<mini_map spot="neutral_mini_spot"   pointer="quest_pointer"/>
	</neutral_location>

	<friend_location hint="friend" no_offline="1">
		<level_map spot="friend_mini_spot"   pointer="quest_pointer"/>
		<mini_map spot="friend_mini_spot"    pointer="quest_pointer"/>
	</friend_location>

	<deadbody_location hint="deadbody" no_offline="1">
		<level_map spot="deadbody_mini_spot" pointer="quest_pointer"/>
		<mini_map spot="deadbody_mini_spot"  pointer="quest_pointer"/>
	</deadbody_location>

	<enemy_mini_spot width="4" height="4" stretch="1" alignment="c">
		<texture r="255" g="0" b="0">ui_minimap_point</texture>
	</enemy_mini_spot>
	
	<neutral_mini_spot width="4" height="4" stretch="1" alignment="c"> 
		<texture r="255" g="200" b="0">ui_minimap_point</texture>
	</neutral_mini_spot>

	<friend_mini_spot width="4" height="4" stretch="1" alignment="c"> 
		<texture r="50" g="255" b="0">ui_minimap_point</texture>
	</friend_mini_spot>
	
	<deadbody_mini_spot width="4" height="4" stretch="1" alignment="c"> 
		<texture r="168" g="168" b="168">ui_minimap_point</texture>
	</deadbody_mini_spot>

 

 

 

Скрытый текст

--| в самый конец файла

marked = {}

 

 

Скрытый текст

function ScanMap()
    for k,v in pairs(db.storage) do
        local npc = alife():object(k)
        if npc and IsStalker(npc) and k~=0 then
            if npc:alive() then
                if level.object_by_id(k):relation(db.actor) == game_object.enemy and marked[k] ~= true then
                    level.map_add_object_spot_ser(npc.id, "enemy_location", "Враг")
                    marked[k] = true
                elseif level.object_by_id(k):relation(db.actor) == game_object.friend and marked[k] ~= true then
                    level.map_add_object_spot_ser(npc.id, "friend_location", "Союзник")
                    marked[k] = true
                elseif level.object_by_id(k):relation(db.actor) == game_object.neutral and marked[k] ~= true then
                    level.map_add_object_spot_ser(npc.id, "neutral_location", "Нейтрал")
                    marked[k] = true
                end
            else
                level.map_remove_object_spot(npc.id, "neutral_location")
                level.map_remove_object_spot(npc.id, "enemy_location")
                level.map_remove_object_spot(npc.id, "friend_location")
                level.map_add_object_spot_ser(npc.id, "deadbody_location", "Труп")
                marked[k] = nil
            end
        end
    end
end

 

 

 

Скрытый текст

--| в самый конец функции "function actor_binder:update(delta)" перед последним "end"

	if map_dot then map_dot.ScanMap() end

 

 

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

@none, Чутка доработал скрипт

 

Скрытый текст

function ScanMap()
    for k,v in pairs(db.storage) do
        local npc = alife():object(k)
        if npc and IsStalker(npc) and k ~= 0 then
            if npc:alive() then
                local Comm = game.translate_string(level.object_by_id(k):character_community())
                if  level.object_by_id(k):relation(db.actor) == game_object.enemy and marked[k] ~= true then
                    level.map_add_object_spot_ser(npc.id, "enemy_location", Comm)
                    marked[k] = true
             elseif level.object_by_id(k):relation(db.actor) == game_object.friend and marked[k] ~= true then
                    level.map_add_object_spot_ser(npc.id, "friend_location", Comm)
                    marked[k] = true
             elseif level.object_by_id(k):relation(db.actor) == game_object.neutral and marked[k] ~= true then
                    level.map_add_object_spot_ser(npc.id, "neutral_location", Comm)
                    marked[k] = true
                end
                if marked[k] == true then
                    if level.map_has_object_spot(npc.id, "neutral_location") then
                        if  level.object_by_id(k):relation(db.actor) == game_object.enemy then
                            level.map_remove_object_spot(npc.id, "neutral_location")
                            level.map_add_object_spot_ser(npc.id, "enemy_location", Comm)
                     elseif level.object_by_id(k):relation(db.actor) == game_object.friend then
                            level.map_remove_object_spot(npc.id, "neutral_location")
                            level.map_add_object_spot_ser(npc.id, "friend_location", Comm)
                        end
                    elseif  level.map_has_object_spot(npc.id, "friend_location") then
                        if  level.object_by_id(k):relation(db.actor) == game_object.enemy then
                            level.map_remove_object_spot(npc.id, "friend_location")
                            level.map_add_object_spot_ser(npc.id, "enemy_location", Comm)
                     elseif level.object_by_id(k):relation(db.actor) == game_object.neutral then
                            level.map_remove_object_spot(npc.id, "friend_location")
                            level.map_add_object_spot_ser(npc.id, "neutral_location", Comm)
                        end
                    elseif  level.map_has_object_spot(npc.id, "enemy_location") then
                        if  level.object_by_id(k):relation(db.actor) == game_object.friend then
                            level.map_remove_object_spot(npc.id, "enemy_location")
                            level.map_add_object_spot_ser(npc.id, "friend_location", Comm)
                     elseif level.object_by_id(k):relation(db.actor) == game_object.neutral then
                            level.map_remove_object_spot(npc.id, "enemy_location")
                            level.map_add_object_spot_ser(npc.id, "neutral_location", Comm)
                        end
                    end
                end
            else
            local Name = "Труп - "..level.object_by_id(k):character_name()
                if  level.map_has_object_spot(npc.id, "enemy_location") then
                    level.map_remove_object_spot(npc.id, "enemy_location")
                    level.map_add_object_spot_ser(npc.id, "deadbody_location", Name)
                    marked[k] = nil
             elseif level.map_has_object_spot(npc.id, "neutral_location") then
                    level.map_remove_object_spot(npc.id, "neutral_location")
                    level.map_add_object_spot_ser(npc.id, "deadbody_location", Name)
                    marked[k] = nil
             elseif level.map_has_object_spot(npc.id, "friend_location") then
                    level.map_remove_object_spot(npc.id, "friend_location")
                    level.map_add_object_spot_ser(npc.id, "deadbody_location", Name)
                    marked[k] = nil
                end
            end
        end
    end
end

 

 

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

@ted.80, Доброго времени суток. Протестировал только что. При использовании скрипта "map_dot" из вашего первого сообщения, враждебных нпс отображает корректно - аналогично нейтралам, как при старте НИ, так и при загрузке имеющегося сохранения, но после 10-15ти минут игры, всё повисало настолько намертво, что завершал дисперчером, лога у меня при этом не образовывало.

Доработаный же "map_dot" тестирую без старта НИ уже более часа и ни одного вылета покамест не было. Можете смело оформлять мануал на благо форумчан.

За сим позвольте еще раз вас поблагодарить за альтруизм и потраченное на хотелки всяких рукожопов время:thank_you:

  • Нравится 4
Ссылка на комментарий
26 минут назад, коля котов сказал:

Подскажите как увеличить FOV 

Задайте свой вопрос вот в этой теме - https://www.amk-team.ru/forum/topic/13904-kovyryaemsya-v-faylah-op-21/page/28/#comments

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

Доброго времени суток.

Подскажите пожалуйста - как оформлять метод из lua_helper для спавна предмета в инвентарь ГГ?

local oActor = db.actor
	Spawn_ItemInInv("guitar_f", oActor)

Почему-то не работает, вылетает с таким логом

Скрытый текст

FATAL ERROR
 
[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: ....r Тень Чернобыля\gamedata\scripts\lua_helper.script:920: attempt to index upvalue 'sim' (a nil value)
 

stack trace:

 

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

Ссылка на комментарий
6 минут назад, UriZzz сказал:

как оформлять метод из lua_helper для спавна предмета в инвентарь ГГ?

Я не знаю что это за шаманство такое

Самый простой и правильный способ спавна итемов в ГГ

alife():create("Секция", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())

Да и зачем велосипед изобретать?

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

На счёт велосипедов согласен, по тому и юзаю lua_helper, что бы не городить лишних скриптов выполняющих одну и ту же функцию:beach:

 

  • Смешно 1

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

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

@UriZzz, а для actor'а оно здесь точно надо?

local oActor = db.actor, тра-та-та...

Ну сюдя по этому в lua_helper:

Скрытый текст

function fSpawn_ItemInv(sSection, Box, idBox)
    if not idBox then
        if not Box then Box = db.actor end
        idBox = (type(Box.id) == 'number' and Box.id) or Box:id()
    end
    if type(sSection) == 'string' and sini:section_exist(sSection) then
        return sim:create(sSection, vector(), 0, 0, idBox) --/>
    end
end

 

Spawn_ItemInInv("guitar_f") ?

Изменено пользователем Купер
  • Нравится 1
Ссылка на комментарий

@Купер, вы не внимательны, товарищ, посмотрите  https://www.amk-team.ru/forum/topic/5525-soc-kovyryaemsya-v-faylah/?do=findComment&comment=1328793 внимательнее.

  • Сомнительно 1

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

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

@UriZzz, ну я в замешательстве:

Скрытый текст

 

function actor_binder:update(delta)

...

    if self.bCheckStart then

...

Spawn_ItemInInv("medkit")

...

end

 

3.jpg

 

  • Нравится 1
Ссылка на комментарий
45 минут назад, UriZzz сказал:

вы не внимательны, товарищ

А может, все-таки вы?

https://www.amk-team.ru/forum/topic/5525-soc-kovyryaemsya-v-faylah/?do=findComment&comment=1328832

Откройте спойлер, и посмотрите внимательно.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

@Купер, я тоже, сделал по твоему примеру, только в 

Скрытый текст

function actor_binder:net_spawn(data)
    printf("actor net spawn")

    level.show_indicators()

    self.bCheckStart = true
    self.weapon_hide = false -- спрятано или нет оружие при разговоре.
    weapon_hide = false -- устанавливаем глобальный дефолтовый флаг.

    if object_binder.net_spawn(self,data) == false then
        return false
    end

    db.add_actor(self.object)

    if self.st.disable_input_time == nil then
        level.enable_input()
    end

    self.weather_manager:reset()
--    game_stats.initialize ()

    if(actor_stats.add_to_ranking~=nil)then
        actor_stats.add_to_ranking(self.object:id())
    end

    --' Загружаем настройки дропа
    death_manager.init_drop_settings()

    --_Addon.test()
    Spawn_ItemInInv("bread") -- Злополучная функция
    if rx_ai then rx_ai.actor_net_spawn() end

    return true
end

 

При старте игры получил

Скрытый текст

FATAL ERROR
 
[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: ....r Тень Чернобыля\gamedata\scripts\lua_helper.script:920: attempt to index upvalue 'sim' (a nil value)
 

stack trace:

 

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

Ссылка на комментарий
Только что, UriZzz сказал:

lua_helper.script:920: attempt to index upvalue 'sim' (a nil value)
 

А инициализовать переменную не надо?)

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

Подскажите, есть ли изменяемый параметр количества записей в истории сообщений в PDA (Журнал/История)? Сейчас их вроде как 50. А хотелось бы больше. 
 

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

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