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

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


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

Народ, спасибо за помощь, я разобрался. Никто не знает, можно ли в tm_zaton после condlist_0 = complete прописать функцию спавна НПС? Если знаете, скажите пожалуйста, как эту функцию прописать 

Изменено пользователем Viktor_Kris
Ссылка на комментарий

Подскажите пожалуйста, как задать костюм как локальную переменную?

Корректно ли задать вот таким образом:

 

local novice_soldier_outfit = {"novice_soldier_outfit"}

 

В дальнейшем планирую произвести сравнение такого типа:

 

if current_outfit == novice_soldier_outfit then

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

@karavan, ты задаешь таблицу. И непонятно, что у тебя current_outfit - имя секции или объект костюма? Предположу, что объект. Тогда

 

 

local novice_soldier_outfit = {"novice_soldier_outfit"}
if current_outfit:section_name() == novice_soldier_outfit[0] then

или 

local novice_soldier_outfit = "novice_soldier_outfit"
if current_outfit:section_name() == novice_soldier_outfit then

 

@alex5773, можно. Убрать из логики строку meet = no_meet и прописать в профиль стандартные диалоги, если их там нет. 

yl59NI59OeI.jpg

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

Возник вопрос: Как при замене костюма (novice_soldier_outfit) на аналогичный но с другой секцией  (novice_soldier_outfit_2) передать второму характеристики первого, т.е. износ и ветку апгрейдов? 



Возможно ли такое теоретически?

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

Можно, прочитать нет-пакет одного предмета, а записать другому. Только второй предмет придётся отправить в оффлайн и вернуть в онлайн. Иначе изменения не применяться.

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

Та это не важно, что прописано в секции (параметры, визуал). Главное зарегистрируй (надеюсь это ЗП) у конфигах

stalkers_upgrade_info.ltx, inventory_upgrades.ltx, других.

У xr_corpse_detection.script поставь

lootable_table["novice_soldier_outfit_2] = trueчтобы нпс могли с трупов забирать

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

Понятно. С нет пакетами это хорошая идея но насколько я понимаю, если всю замену производить в рюкзаке у главного героя, то ничего не получится.

 

А вот если например убрать из инвентаря novice_soldier_outfit и спавнить новый костюм novice_soldier_outfit_2, а затем задать характеристики апгрейда второму, предварительно зная характеристики первого. 

Только вот вопрос как узнать характеристики первого? Делать проверки на все виды апгрейдов? :(

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

Тоже самое, через нет-пакет. Читаешь его у первого предмета, создаёшь второй предмет, пишешь ему нет-пакет первого. Только тут тоже неприятная мелочь. Если предмет спавнить сразу ГГ, то параметры не прочитаются. Поэтому спавнишь его рядом с гг, а как только он выходит в онлайн - переносишь его ГГ.

P.S. у меня в моде такое используется, вот фрагмент:

 

 

 

function InventoryRegistrator:convert_item(item)
local data = m_netpk.get(item, 1):get()
local new_section
if string.find(item:section(), "_empty$") then
new_section = string.match(item:section(), "([%w_]+)_empty$")
else
new_section = item:section() .. '_empty'
end
local parent = item:parent()
local obj
if parent then
logf('parent exists [%s]', item:section())
local pos = parent:position()
pos.z = pos.z + 10
obj = alife():create(new_section, pos, parent:level_vertex_id(), parent:game_vertex_id())
else
obj = alife():create(new_section, item:position(), item:level_vertex_id(), item:game_vertex_id())
end
local pk = m_netpk.get(obj, 1)
local odata = pk:get()
odata.condition = data.condition
odata.upgrades = data.upgrades
odata.custom_data:setTable(data.custom_data:getTable())
pk:set(odata)
if parent then
logf('set client_spawn_manager [%s]', new_section)
level.client_spawn_manager():add(obj.id, 0, function(id, itm)
logf('item [%d] online from client_spawn', id)
itm:transfer_item(itm, parent)
end)
end
logf('delete item [%s]', item:section())
if parent and parent:id() == db.actor:id() then
inventory_manager.remove_item(item)
else
_m.remove_item_by_id(item:id())
end
return obj
end

 

 

Изменено пользователем Shredder
Ссылка на комментарий

Shredder Любопытно. Но боюсь с нет пакетами я не справлюсь без помощи опытного скриптера.

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

Кто разбирался с тем как добавляются апгрейды к костюмам? 

Насколько я понимаю они именно "добавляются" изменяя свойства костюма. Теоретически, наверное, это так. 

В общем кто разбирался поясните пожалуйста. :)

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

А ты пример то не посмотрел?

odata.condition = data.condition
odata.upgrades = data.upgrades
odata.custom_data:setTable(data.custom_data:getTable())

Вот тут я новому предмету меняю состояние, переношу апгрейды и custom_data.

P.S. установленные апгрейды тоже хранятся в нет-пакете.

Изменено пользователем Shredder
Ссылка на комментарий

Народ, полчаса голову ломал, как телепортировать НПС ("kolya_mech" - его id) в заданную точку! Подскажите функцию для телепорта, плиз

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

buck81, Есть такое. Поиск почаще используй, тот же Яндекс...

http://rghost.ru/48667589

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

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

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

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

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

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

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

Войти

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

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

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