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

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


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

У меня вот такой вопрос. Как сделать такой скрипт , чтобы, когда спавнятся новые нпс на экран выдавался текст. То есть как в АМК (только там выдавалось сообщение о смерти, а я хочу чтоб наоборот, когда спавнились. Можно ли это как нибудь осуществить???

Thank you for your honesty.

Now fuck off and die.

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

Как определить оружие в слоте 1 знаю:

g_obj = db.actor:item_in_slot(1)

Общее количество патронов у ГГ для оружия первого слота как найти знаю:

sl = g_obj:get_ammo_total()

Количество патронов в магазине 1 слота тоже не секрет:

sl_1 = g_obj:get_ammo_in_magazine()

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

Т.е. пусть в слоте 1 имееп ПМ

Как найти сколько патронов ammo_9x18_fmj и сколько ammo_9x18_pmm?

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

НЛС-6: У каждого своя зона

_______________________________________________________________

Не ищи легких путей и не возвращайся той же дорогой

Ссылка на комментарий
У меня вот такой вопрос. Как сделать такой скрипт , чтобы, когда спавнятся новые нпс на экран выдавался текст. То есть как в АМК (только там выдавалось сообщение о смерти, а я хочу чтоб наоборот, когда спавнились.

В АМК о спавне тоже есть сообщение. Когда говорят "такой-то видел таких-то" - это и есть сообщение о спавне. Если коротко:

в файле xr_motivator.script есть коллбэк на создание непися motivator_binder:net_spawn из него вызывается функция amk.on_npc_spawn из неё вызывается news_main.on_spawn из неё там-же находящаяся add_spawned_object, в которой информация о заспавленных объектах добавляется в таблицу table_spawned.

Эта таблица проверяется в функции check_news, которая вызывается по таймеру (в сущности из апдейта актора). Для каждого элемента вызывается функция on_spawn_group, которая в конце-концов вызывает функцию do_news, которая уже и отображает сообщение через случайный интервал времени (чтобы не всю пачку сразу вываливать).

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

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

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

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

 

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

Дошел до Агропрома и оболдел, перед самым входом, там где как раз идет мочилово между сталкерами и вояками, стоит 3 БТР, с лева еще 4. Далее вылажу из подземки и игра начинает не по детски тормозить - Еще штук 15(даже на крыше есть) и предметы, такие как, канистра, журналы и т.д. валяются в неимоверных количествах

- Как уменьшить spawn, ато играть невозможно?

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

Варианты подписи (возможен ТОЛЬКО ОДИН вариант!):

не более 6 строк текста;

не более 3х юзербаров 350х20;

не более одного юзербара 350х20 с тремя строками текста;

не более одного большого юзербара 368х72;

не более 3х юзербоксов 50х125.

N6260

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

Vah_stalker, снеси на хрен все солянки и установи чистый просто мод АМК. Он далеко не так плох без дополнительных солянок :)

ANViL & Rusya Conception, или просто
-=[ARC Team]=-


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

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

Варианты подписи (возможен ТОЛЬКО ОДИН вариант!):

не более 6 строк текста;

не более 3х юзербаров 350х20;

не более одного юзербара 350х20 с тремя строками текста;

не более одного большого юзербара 368х72;

не более 3х юзербоксов 50х125.

N6260

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

из-за чего могут начать биться сейвы?

конкретно начинает вылетать в биндсталкере в

function actor_binder:load(reader)

object_binder.load(self, reader)

--' Загружаем уровень сложности

local game_difficulty = reader:r_u8()

 

local load_treasure_manager = false

if game_difficulty >= 128 then

game_difficulty = game_difficulty - 128

load_treasure_manager = true

end

 

get_console():execute("g_game_difficulty "..game_difficulty_by_num[game_difficulty])

 

if reader:r_eof() then

abort("SAVE_FILE_IS_CORRUPT") --вылет тут на объекте single_player

end

...

 

Gonarh

завис биндер ГГ перед сохранением и данные биндера не сохранились

спасибо, буду дебажить :unsure:

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105
Ссылка на комментарий

Gonarh

завис биндер ГГ перед сохранением и данные биндера не сохранились

в АМК отслеживается зависание биндера ГГ с помощью amk.oau_watchdog

в начале actor_binder:update этой переменной присваивают не нулевое значение. в конце присваивают 0

в motivator_binder:update проверяют на равенство нулю, если не ноль - значит actor_binder:update до конца не дошел

Если по мере выполнения actor_binder:update менять значение amk.oau_watchdog, то можно узнать место зависания

 

Ссылка на комментарий
из-за чего могут начать биться сейвы?

Чаще всего из-за quick save.

 

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

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

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

 

Ссылка на комментарий
Чаще всего из-за quick save.

содержательный ответ :lol:

мододелам на заметку, есть баг оригинала:

Когда ГГ убивают, отображается моделька в костюме новичка, хотя одет другой броник

устранил так:

в конец функции restore_sun() в файле amk_mod.script

дописываем:

local npc_SP = db.actor

local outfit = npc_SP:item_in_slot(6)

if outfit ~= nil then

local outfit_name = outfit:section()

local outfit_cond = outfit:condition()

alife():release(alife():object(outfit:id()), true)

outfit = alife():create(outfit_name, npc_SP:position(), npc_SP:level_vertex_id(),

npc_SP:game_vertex_id(), npc_SP:id())

if outfit ~= nil then amk.start_timer("set_cond_outfit", 1,

tostring(outfit.id)..";"..tostring(outfit_cond)) end

end

в функцию __do_timer_action файла amk.script в конец пишем:

if select_string == "set_cond_outfit" then

local data = str_explode(";",params_string,clear)

outfit_obj = level.object_by_id(tonumber(data[1]))

outfit_obj:set_condition(tonumber(data[2]))

end

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

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105
Ссылка на комментарий
Подскажите Логику для стоящего НПС, спавн через all.spawn и не реагирующего на окружение?

 

Логику присваивать умеешь?

[logic]

active = camper

combat_ignore = combat_ignore

 

[camper]

sniper = false

radius = 5

no_move = true

def_state_campering = threat_na

path_walk = bar_guider_walk-- где стоять

path_look = bar_guider_look -- куда смотреть

дабы непись стоял тупо на месте, то спавн его в path_walk(никуда он уже не пойдёт)

 

 

Gonarh дописывать после sync_done = true и зачем в restore_sun(если можно в апдеёт ГГ засунуть иили я не прав)?

Изменено пользователем Real Wolf
Ссылка на комментарий
Gonarh дописывать после sync_done = true

после

и зачем в restore_sun(если можно в апдеёт ГГ засунуть иили я не прав)?

не прав, зачем хз скока раз в секунду переобувать броник - это ж какие будут тормоза? :o

Существует ли функция на проверку того, есть ли худ на экране? В смысле минимапа и т.д.

local hud = get_hud()

local custom_static = hud:GetCustomStatic("имя_худа_из_хмля")

if custom_static == nil then

-- если тут знач худ не добавлен/нету....

hud:AddCustomStatic("имя_худа_из_хмля", true)-- добавляем худ

end

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105
Ссылка на комментарий
содержательный ответ :lol:

А что надо было? Знать, что именно там происходит внутри, из-за чего сейв портится? Щас! Почти уверен, что этого даже разрабы толком не знают. Знали бы - исправили бы, поскольку это одна из самых неприятных "фишек" игры.

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

 

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

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

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

 

Ссылка на комментарий
А что надо было?

Хватило ответ Колмогора :rolleyes:

Знать, что именно там происходит внутри, из-за чего сейв портится?

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

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105
Ссылка на комментарий

Подскажите пожалуйста - можно ли заставить предмет (например оружие) загружать иконку с другого файла, а не с ui_icon_equipment. А если можно то как?

Заранее спасибо !

Варианты подписи (возможен ТОЛЬКО ОДИН вариант!):

не более 6 строк текста;

не более 3х юзербаров 350х20;

не более одного юзербара 350х20 с тремя строками текста;

не более одного большого юзербара 368х72;

не более 3х юзербоксов 50х125.

N6260

Ссылка на комментарий
Подскажите пожалуйста - можно ли заставить предмет (например оружие) загружать иконку с другого файла, а не с ui_icon_equipment.

Вряд ли это возможно. А чем ui_icon_equipment не угодил?

 

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

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

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

 

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

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

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

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

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

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

Войти

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

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

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