📌 Обновление Форума
Онлайн всего: 120
Гостей: 109
Пользователей: 11
toropovmihail123456789
Новый сталкер: toropovmihail123456789 
Сталкеров: 6655 🛸
Выпадение частей тел с монстров без надобности их обыска.

Выпадение частей тел с монстров без надобности их обыска.

    
        SHARE
👁️ 118

📆 2023.10.28

💬 0

Автор: Modoskea
Платформа: ТЧ/ЧН(не проверял но должно работать)/ЗП(не проверял но должно работать)

Описание: Выпадение будет про исходить рядом с телом убитого монстра, а не в его инвентаре.
Для начала нам понадобиться скрипт - gamedata\scripts\bind_monster.script
Откроем его, в нем ищем строку – function generic_object_binder:death_callback(victim, who)
Данная строка проверяется только при смерти монстра, один раз!
Так вот под ней и будем писать наш код.

Код
local object = self.object -- берем локальную объекта монстра за object
local ini = system_ini() -- берем класс system_ini и назначим ему локальную
if not object:alive() and ini:line_exist(object:section(), "Spawn_Inventory_Item_Section") ~= nil and ini:line_exist(object:section(), "Spawn_Drop_Item_Probability") ~= nil and ini:line_exist(object:section(), "Spawn_Max_Item") ~= nil then  
--[[  
Если объект не жив и строка в нужной секцией не ровна не чему
и строка в нужной секцией не ровна не чему
и строка в нужной секцией не ровна не чему
-]]
local Item = ini:r_string(object:section(), "Spawn_Inventory_Item_Section")
--[[ берем локальную за строку Spawn_Inventory_Item_Section в секции монстра -]]
local Probability = ini:r_float(object:section(), "Spawn_Drop_Item_Probability")
--[[ берем локальную за число Spawn_Drop_Item_Probability в секции монстра -]]
local Max_Item = ini:r_float(object:section(), "Spawn_Max_Item")
--[[ берем локальную за число Spawn_Max_Item в секции монстра в файле -]]
if math.random(1,100) <= (Probability*100) then
--[[ Если рандом от 1 до 100 выдаст меньше или равно локальной Probability умноженной на сто, то -]]
for i=1,math.random(1,Max_Item) do  
--[[ цикл от 1 до локальной Max_Item (даст максимальное количество частей монстра) -]]
alife():create(Item,vector():set(object:position()),object:level_vertex_id(),object:game_vertex_id())
--[[ спавним объект строки локальной Item равна нужной секции на позиции монстра -]]
end
end
end


Дальше идем в конфигурации
gamedata\config
берем файл - gamedata\config\defines.ltx
ищем строку секции - [monster_base]:common_ph_friction_params_on_npc_death
в этом файле
под ней пишем:

Код
Spawn_Inventory_Item_Section = mutant_dog_tail ;Часть монстра
Spawn_Inventory_Item_Probability = 0 ;Вероятность выпадения в инвентарь монстра, делаем 0 что бы не было в инвентаре монстра вообще
Spawn_Drop_Item_Probability = 0.00 ;Строка добавленная нами, вероятность выпадения из тела монстра.
Spawn_Max_Item = 0 ;Максимальное число выпадения из тела монстра частей тела


Все теперь если какому-то монстру не пропишем, он возьмет нужную строку из родительской секции то есть которой мы прописывали выше, теперь идем к монстрам:

Код
gamedata\config\creatures\файл_монстра.ltx
и до прописываем на пример сей час покажу собаке и кабану.
Пропишем собаке берем файл - gamedata\config\creatures\m_dog.ltx

Spawn_Inventory_Item_Section = mutant_dog_tail ;эта строка была с ней нечего не делаем
Spawn_Inventory_Item_Probability = 0;0.5 ;тут было 0.5 мы это за комментируем и напишем 0, что бы не выпадало из инвентаря, либо стереть так как есть в родительской секции
Spawn_Drop_Item_Probability = 0.5 ; Прописываем вероятность выпадения из тела раньше не было мы пишем на пример как раньше было в инвентарь 0.5
Spawn_Max_Item = 1 ;Так как у собаки один хвост то максиму пишем может выпасть 1


Теперь кабану:
берем файл - gamedata\config\creatures\m_boar.ltx

Код
Spawn_Inventory_Item_Section = mutant_boar_leg ;эта строка была с ней нечего не делаем
Spawn_Inventory_Item_Probability = 0;0.2 ;тут было 0.2 мы это за комментируем и напишем 0, что бы не выпадало из инвентаря, либо стереть так как есть в родительской секции
Spawn_Drop_Item_Probability = 0.2 ; Прописываем вероятность выпадения из тела раньше не было мы пишем на пример как раньше было в инвентарь 0.2
Spawn_Max_Item = 4 ;А тут отличие от собаки, так как у кабана 4 копыта а не 1-но как хвост собаки то максиму может выпасть 4


В общем все вроде объяснил, остальным можно делать по аналогу.

Мне нравится 3



5.0 | обыска, их, Выпадение, тел, Частей, надобности, монстров, без
Обсуждение материала:
💬 0
Все смайлы
🔸Войдите, чтоб оставить комментарии! 🔹Быстрый Вход ➞

♢ Вверх 

🔰Заходили сегодня: | Anubis, stalkercom, dimakuznetsov87, gatrencha777, Стриж, aleksejivankin19, sergei-sergei, zharkenovanatalay, HoRUS30RUS, jorge, sokol, gojj, фантом9206, lvictorv, wastelord28, tsygvintsev423, Selenkovi26, Stalker_MODNIK, Созидатель, LISSZ1941, andreu_srelok, Anica, makskomar5442, alekbabanov, Краб, tuzvlad06, Oldboy_45m, zerotwo_2022, Gims, superanonim13, bislan775, elenagoncarova9518, каучук, styp178, KENT1991, s99310087, yur4ik, bytorovat, dimkadikii, UBS, XIMIK1482, CO6P_KPAMEP, Aviri, bewerakimar0201, valeravarapaev7, VALDER, sangoo1905, Spic3, Gabriel, cikenkep, Shons02, [Полный список]