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

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

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

 

 

Неужто есть такие секции, которые нельзя удалять под страхом вылета?

Выяви те секции, удаление которых вызывает вылет - и давай их в студию...

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

А можно спавнить предмет по условию? Спавн скриптом - не предлагать, ибо мне нужно заспавнить предмет там, где нет АИ-сетки, в итоге предмет куда-то теряется из-за этого. Предмет ставлю в СДК, убираю использование АИ-сетки и все ок, но предмет есть на старте игры. Для живых объектов есть, к примеру, секция [spawner], а для предметов..? Есть ли что-то подобное? 

GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Куча раритетных модов на моем облаке — на память о былом.

JNCR — Coming Soon...

i5-10400F / RAM 16GB / GTX 1660 Super / 1TB HDD+256GB SSDm2 / Win 10 PRO x64 / Samsung Curved 27" x2

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

@HellRatz, скорее всего, условного спона у объектов не предусмотрено. А почему скриптом не предлагать? Совершенно спокойно спонятся предметы там, где АИ-сетки нет и в помине.

Есть ещё один способ, но это уже совсем через... ну, вы поняли. Смысл таков: ставим предмет там, где это необходимо (в СДК или редактируя all.spawn), затем при старте игры игры удаляем его скриптом, а когда нужно - восстанавливаем обратно, тоже скриптом. В этом случае предмет будет иметь те же координаты, наклон, поворот, и т.д.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Совершенно спокойно спонятся предметы там, где АИ-сетки нет и в помине.

Подсказали логику для таких объектов, чтобы не уезжали. Лично у меня объекты тупо не появляются (Уезжают куда-то?) при спавне скриптом. Попробую еще с логикой.

GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Куча раритетных модов на моем облаке — на память о былом.

JNCR — Coming Soon...

i5-10400F / RAM 16GB / GTX 1660 Super / 1TB HDD+256GB SSDm2 / Win 10 PRO x64 / Samsung Curved 27" x2

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если не появляются там где надо, значит или не там заспавнили, или не заспавнили вовсе.

И таки да, скриптом можно спавнить без АИ-сетки, и задавать положение-наклон-поворот через нетпакет.

Добавлено  HellRatz,

Странно. Координаты точно правильные. Ок, посмотрю еще.

08.01.2012 в 03:30, xStream сказал(а):

Те, у кого свои руки есть, копипастить это не будут, проще свое написать, которое тоже велосипедное, но более понятное автору.

Мод, где не бывает одинаковых путей - Судьба Зоны.

Если меня кто-то ненавидит, то это не баг, а фича.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не подскажите есть ли консольная команда на закрытие инвентаря?
get_console():execute("inventory_close") не пашет.

Пробовал через

get_hud():HidePdaMenu()

get_hud():HideActorMenu()

Тоже не получается.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

@e1_nin0, обязательно консольная? Есть вот у меня например такая скриптовая функция (Закрывает любое активное открытое окно)

--// Закрываем инвентарь.
function actor_disable_inventory()
-- закрываем верхнее окно:
local wnd = level.main_input_receiver()
if wnd then
wnd:GetHolder():start_stop_menu(wnd, true)
end
end

GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Куча раритетных модов на моем облаке — на память о былом.

JNCR — Coming Soon...

i5-10400F / RAM 16GB / GTX 1660 Super / 1TB HDD+256GB SSDm2 / Win 10 PRO x64 / Samsung Curved 27" x2

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

 HellRatz, вот спасибо :) 

А я думал, что уже не найду решения этой проблемы.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пардон, похоже я ненароком ввел всех в заблуждение.

При изучении логов я нашел одну особенность - при количестве секций в аллспавне менее 10991 происходит вышеупомянутый вылет. Поднял базовый аллспавн мода (последний номер секции в нем - 10990), удалил на пробу 1 секцию - и тот же вылет. Получается, если у меня были заспавнены новые объекты (количество стало 11006), то и появилась возможность удалить соответствующее число секций без последствий...

Если я все правильно понял, нужно уменьшить каким-то образом этот "минимум" = 10991. Но как?

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

команда на закрытие инвентаря?
if has_alife_info("ui_inventory") then
	level.start_stop_menu(level.main_input_receiver(), true)
end
 

10.png

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Если я все правильно понял, нужно уменьшить каким-то образом этот "минимум" = 10991. Но как?

Для начала можно задаться вопросом откуда-почему этот минимум происходит.
что-то у меня закралось подозрение, а не делается ли у вас где-то в скриптах спавн или еще какое действие с объектом по его секции в аллспавне? как раз по значению 10991

08.01.2012 в 03:30, xStream сказал(а):

Те, у кого свои руки есть, копипастить это не будут, проще свое написать, которое тоже велосипедное, но более понятное автору.

Мод, где не бывает одинаковых путей - Судьба Зоны.

Если меня кто-то ненавидит, то это не баг, а фича.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот так да. Столкнулся с такой вещью, как ограничение кол-ва секций логики для объекта. Долго парил, почему у меня вылетает при создании игры с логом:

* Loading spawn registry...

 FATAL ERROR
[error]Expression    : error handler is invoked!
[error]Function      : invalid_parameter_handler
[error]File          : E:\stalker\sources\trunk\xrCore\xrDebugNew.cpp
[error]Line          : 804
[error]Description   :

Оказывается, если у объекта больше 20 секций, то будет такой вылет. :az1000106:

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

GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Куча раритетных модов на моем облаке — на память о былом.

JNCR — Coming Soon...

i5-10400F / RAM 16GB / GTX 1660 Super / 1TB HDD+256GB SSDm2 / Win 10 PRO x64 / Samsung Curved 27" x2

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Zander_driver, 10991 - это как бы "рабочий" минимум. Получается, последняя секция 10990 + начальная секция под номером 0 = 10991, так я понимаю? При нормальной загрузке в логе идет такой отрезок:

Создание новой игры...
* Creating new game...
* Loading spawn registry...
* 11007 spawn points are successfully loaded
* Saving spawns...
* Saving objects...
* 20546 objects are successfully saved
* Game all.sav is successfully saved to file 'd:\games\s.t.a.l.k.e.r - shadow of chernobyl\userdata\savedgames\all.sav'
* New game is successfully created!
* phase time: 6932 ms

и так далее...

Вылет наблюдается уже при "10990 spawn points are successfully loaded", при "10991 spawn points are successfully loaded" игра еще грузится.

А вот теперь самое интересное: покопавшись, я выявил, что у моих новых секций строчки "spawn_id" дублируют уже имеющиеся. Я "как полагается" :)  довел их соответственно до 11006. И, как и ожидалось, при удалении одной единственной секции происходит тот самый вылет, но уже:

 

Создание новой игры...
* Creating new game...
* Loading spawn registry...
* 11006 spawn points are successfully loaded
stack trace:

0023:04BDF915 xrGame.dll

 

Выходит, удаление секций лимитируется самым последним spawn_id? Если да, то как от этого избавиться?

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
@Jekyll,насколько я понял из постов на других ресурсах, ты пытаешься вычистить секции аномалий. И при этом в используемом тобой моде, наверняка, есть скрипты "динамических аномалий". Попробуй поискать причину в них. т.е. отключи для начала "ДинАномалии".

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Jekyll

Ну ты уже такого насочинял...

Если я не ошибаюсь, параметр spawn_id в секциях распакованного all.spawn'а не имеет никакого отношения непосредственно к игре и движку, а проставляется утилитой распаковки\запаковки all.spawn'а. Возьми из шапки темы "Universal ACDC и другие perl-скрипты" раздела "Инструментарий" нормальную версию uACDC, освой и не парься. Я, по необходимости, удалял любое кол-во секций в произвольном порядке и вышеуказанный параметр вообще не трогал в оставшихся секциях - после запаковки и последующей распаковки uACDC сам его обновит.

Изменено пользователем UnLoaded
Добавлено  BFG,

Можно вообще удалить все строки с этим параметром и спокойно упаковать. Ни на что не влияет.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ок, попробую предложенные варианты. Благодарю всех за участие.

 

Кстати, насчет сочинительства) Если нужно придумать описание монстра, его запчасти или артефакта - я к вашим услугам)

 

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Возвращаясь к смене визуала НПС. После долгих проб и ошибок получилось это:

function test_visual_clear()


local ltx = system_ini() -- Указали конфиги
if ltx then
local outfit = db.actor:item_in_slot(6) -- Как выглядит ГГ
if outfit then
local osect = outfit:section()
local visual = ltx:r_string(osect, "actor_visual") -- Получили visual_name = actors\svoboda\stalker_sv_nauchniy.ogf
local sim = alife()
local obj = sim:story_object(9700) -- Вот и жертва.
local pk = m_netpk.net_cse_visual(obj,nil) -- Запишем в пакет его visual_name
if pk:isOk() then -- Если пакет записан верно
local data = pk:get() -- получаем таблицу
if data ~= nil then
if visual ~= nil then
data.visual_name = visual -- присвоим нужный визуал ; cse_visual properties
pk:set(data) -- и наконец то присвоим изменение.
local description = pk:dumpDesc() -- возвращает строку, содержащую читабельное описание пакета (его можно, например, вывести в лог)
end
end
end
end
end
end

Вставлял в код проверки, всё проходит до data.visual_name = visual, а pk:set(data) уже не срабатывает. Как впрочем и смена визуала.

В se_stalker.script добавил

if self.cb_netpk then self.cb_netpk(self, packet) end -- коллбэк для изменения свойств пакета
cse_alife_human_stalker.STATE_Write (self, packet)

Подскажите, где ошибка.

Использую m_netpk

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

@ins33

Не так давно, я тут находил схему "Компаньоны". Там, среди прочего, есть переодевание НПСа, взятого компаньоном, в более крутую броню. Это то, что тебе нуно. Подсмотри там, как реализовано...

 

Насчет твоей ф-ции - чтоб применился новый визуал непися, необходимо "передернуть" его офф\он лайн. Это есть в m_netpk...

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

@ins33, данные объекта читаются так:

local pk = get_netpk(sobj)

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мододелы, как сделать качание оружия в руках гг при прицеливании (как в lost alpha). Только не анимацией как в ЧН и ЗП!

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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

AMK-Team.ru

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