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

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


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

@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 ядер, 32 потока, 5.75 ГГц); 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 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

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

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

@Zander_driver@Купер@ted.80, я извиняюсь если успел подвынести вам мозги, проблема оказалась в некорректном подключении lua_helperа, всем спасибо за терпение.

Всему виной с перебоем работающая голова, в следствии усталости. 

 

П.С Прошу админов почистить тему от моего очередного приступа тупости:facepalm:

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

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

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

UriZzz.gif

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

Подскажите, отчего в логе время от времени может появляться подобная шляпа:
 

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

Executing config-script "c:\stalker_fin_up\gamedata\config\default_controls.ltx"...
! cant convert dik_name for dik[16], prop=[
! cant convert dik_name for dik[17], prop=[
! cant convert dik_name for dik[18], prop=[
! cant convert dik_name for dik[19], prop=[
! cant convert dik_name for dik[20], prop=[
! cant convert dik_name for dik[21], prop=[
! cant convert dik_name for dik[22], prop=[
! cant convert dik_name for dik[23], prop=[
! cant convert dik_name for dik[24], prop=[
! cant convert dik_name for dik[25], prop=[
! cant convert dik_name for dik[26], prop=[
! cant convert dik_name for dik[27], prop=[
! cant convert dik_name for dik[30], prop=[
! cant convert dik_name for dik[31], prop=[
! cant convert dik_name for dik[32], prop=[
! cant convert dik_name for dik[33], prop=[
! cant convert dik_name for dik[34], prop=[
! cant convert dik_name for dik[35], prop=[
! cant convert dik_name for dik[36], prop=[
! cant convert dik_name for dik[37], prop=[
! cant convert dik_name for dik[38], prop=[
! cant convert dik_name for dik[39], prop=[
! cant convert dik_name for dik[40], prop=[
! cant convert dik_name for dik[41], prop=[
! cant convert dik_name for dik[44], prop=[
! cant convert dik_name for dik[45], prop=[
! cant convert dik_name for dik[46], prop=[
! cant convert dik_name for dik[47], prop=[
! cant convert dik_name for dik[48], prop=[
! cant convert dik_name for dik[49], prop=[
! cant convert dik_name for dik[50], prop=[
! cant convert dik_name for dik[51], prop=[
! cant convert dik_name for dik[52], prop=[
! cant convert dik_name for dik[144], prop=[
[c:\stalker_fin_up\gamedata\config\default_controls.ltx] successfully loaded.
 

Сбрасывал настройки управления и заново биндил - не помогает.

Изменено пользователем Space.Marine
Ссылка на комментарий
3 hours ago, phalcor said:

есть ли изменяемый параметр количества записей в истории сообщений в PDA (Журнал/История)?

В оригинальном движке нет. В OGSR есть.

Ссылка на комментарий
4 часа назад, naxac сказал:

не может понять некоторые клавиши твоей клавиатуры

Я это и понял по логу. Но почему это вылезает не всегда и куда копать ? default_controls.ltx - нативный из игровых архивов. 
 

30384897.jpg

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

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

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

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

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

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

Войти

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

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

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