Случайная подборка модов
Сезон катастроф: Агрессия
2.7
Darkest Time
3.5
Смерти вопреки. В центре чертовщины
4.1
Lost World: Origin
4.1
SFZ Project: Episode Zero
4.8
NZK MOD 1.3
3.2
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: FanG, Аdmin, FantomICW, Overfirst  
Форум » S.T.A.L.K.E.R. Модификации » Помощь в моддинге » Скрипты, конфиги, логика, движок » Выпадение частей тел с монстров без надобности их обыска. (мини-урок)
Выпадение частей тел с монстров без надобности их обыска.
Российская Федерация  MODOSKEA
Четверг, 02.01.2014, 23:01 | Сообщение # 1
Статус:
Новичок:
Сообщений: 211
Награды: 1
Регистрация: 06.07.2012

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

Автор: 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


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

В ЗП еще надо добавить части монстров то есть их секции, модели, текстуры и описание.
Сообщение отредактировал MODOSKEA - Четверг, 02.01.2014, 23:02
  Злобная реклама
Четверг, 02.01.2014, 23:01
Статус:
Сообщений: 666
Регистрация: 06.07.2012
Российская Федерация  Аристократ
Четверг, 02.01.2014, 23:04 | Сообщение # 2
Модмейкер-одиночка
Статус:
Опытный:
Сообщений: 2272
Награды: 17
Регистрация: 30.06.2012

  Злобная реклама
Четверг, 02.01.2014, 23:04
Статус:
Сообщений: 666
Регистрация: 30.06.2012
Украина  FantomICW
Четверг, 02.01.2014, 23:06 | Сообщение # 3
Проект Смерти Вопреки
Статус:
Опытный:
Сообщений: 2259
Награды: 8
Регистрация: 06.01.2013

MODOSKEA, молодец!
Спасибо, что комменты делаешь в скрипте и объясняешь.
А не как половина туторов ("Копируй это, вставь туда, все готово") wink
  Злобная реклама
Четверг, 02.01.2014, 23:06
Статус:
Сообщений: 666
Регистрация: 06.01.2013
Российская Федерация  MODOSKEA
Четверг, 02.01.2014, 23:07 | Сообщение # 4
Статус:
Новичок:
Сообщений: 211
Награды: 1
Регистрация: 06.07.2012

Rap4ik, FantomICW, Спасибо :)
  Злобная реклама
Четверг, 02.01.2014, 23:07
Статус:
Сообщений: 666
Регистрация: 06.07.2012
Украина  [Karpov_SK]
Четверг, 02.01.2014, 23:09 | Сообщение # 5
Exclusion Zone Mod
Статус:
Бывалый:
Сообщений: 600
Награды: 12
Регистрация: 26.08.2013

Порадовал, как-раз подобное искал :)
  Злобная реклама
Четверг, 02.01.2014, 23:09
Статус:
Сообщений: 666
Регистрация: 26.08.2013
Российская Федерация  MODOSKEA
Четверг, 02.01.2014, 23:10 | Сообщение # 6
Статус:
Новичок:
Сообщений: 211
Награды: 1
Регистрация: 06.07.2012

[Karpov_SK], Спасибо :)
  Злобная реклама
Четверг, 02.01.2014, 23:10
Статус:
Сообщений: 666
Регистрация: 06.07.2012
Российская Федерация  Stalker_Monstr
Пятница, 03.01.2014, 16:01 | Сообщение # 7
Статус:
Отмычка:
Сообщений: 194
Награды: 8
Регистрация: 30.01.2013

Ай да, молодец! :)
  Злобная реклама
Пятница, 03.01.2014, 16:01
Статус:
Сообщений: 666
Регистрация: 30.01.2013
Российская Федерация  MODOSKEA
Пятница, 03.01.2014, 16:13 | Сообщение # 8
Статус:
Новичок:
Сообщений: 211
Награды: 1
Регистрация: 06.07.2012

Stalker_Monstr, Спасибо :)
  Злобная реклама
Пятница, 03.01.2014, 16:13
Статус:
Сообщений: 666
Регистрация: 06.07.2012
Российская Федерация  Снегирь
Пятница, 03.01.2014, 16:24 | Сообщение # 9
Статус:
Бывалый:
Сообщений: 1021
Награды: 7
Регистрация: 24.04.2013

В одной модификации (Путь в Припять, если не ошибаюсь) получение частей монстров выглядело так: мутантов нельзя обыскать, однако, если подойти к ним, появится надпись "Срезать часть тела" (там по-другому было написано, но это не имеет значения). Может быть кто-нибудь знает как это реализовать самому? Я и многие другие будут благодарны, т.к. на мой взгляд это наиболее реалистичная система добывания частей тела.
  Злобная реклама
Пятница, 03.01.2014, 16:24
Статус:
Сообщений: 666
Регистрация: 24.04.2013
Российская Федерация  Mel
Пятница, 03.01.2014, 16:25 | Сообщение # 10
Anarchy Cell Mod
Статус:
Бывалый:
Сообщений: 651
Награды: 4
Регистрация: 22.08.2013

MODOSKEA, отлично. :)
  Злобная реклама
Пятница, 03.01.2014, 16:25
Статус:
Сообщений: 666
Регистрация: 22.08.2013
Украина  FantomICW
Пятница, 03.01.2014, 16:29 | Сообщение # 11
Проект Смерти Вопреки
Статус:
Опытный:
Сообщений: 2259
Награды: 8
Регистрация: 06.01.2013

Цитата Снегирь ()
Может быть кто-нибудь знает как это реализовать самому?

Я походу знаю. Сделаю может тутор.
  Злобная реклама
Пятница, 03.01.2014, 16:29
Статус:
Сообщений: 666
Регистрация: 06.01.2013
Российская Федерация  Снегирь
Пятница, 03.01.2014, 16:33 | Сообщение # 12
Статус:
Бывалый:
Сообщений: 1021
Награды: 7
Регистрация: 24.04.2013

FantomICW, буду весьма признателен. :)
Сообщение отредактировал Снегирь - Пятница, 03.01.2014, 16:34
  Злобная реклама
Пятница, 03.01.2014, 16:33
Статус:
Сообщений: 666
Регистрация: 24.04.2013
Российская Федерация  Serg_I
Пятница, 03.01.2014, 16:41 | Сообщение # 13
Статус:
Бывалый:
Сообщений: 961
Награды: 1
Регистрация: 25.09.2013

Вот для ЗП готовый мод срезания частей http://rghost.ru/private/51373188/b8974eda1874049c6a4d64a83592b871

Добавлено (03.01.2014, 16:41)
---------------------------------------------
MODOSKEA, Это они рядом что-ли лежать будут, не, так не интересно, если бы как в том моде что ссылкой выше, то здорово бы было. Там подошёл, собаку за хвост поднял, обрезал хвост :D

  Злобная реклама
Пятница, 03.01.2014, 16:41
Статус:
Сообщений: 666
Регистрация: 25.09.2013
Казахстан  Max_Warlock
Пятница, 03.01.2014, 16:44 | Сообщение # 14
Clear Sky - Remake
Статус:
Опытный:
Сообщений: 1552
Награды: 4
Регистрация: 18.01.2013

Если бы это совместить с "умным выпадением частей мутантов", где кол-во частей и создание их зависит от того, по какой части тела стреляли мутанту. А так...
  Злобная реклама
Пятница, 03.01.2014, 16:44
Статус:
Сообщений: 666
Регистрация: 18.01.2013
Российская Федерация  dark_stalker_98
Пятница, 03.01.2014, 16:45 | Сообщение # 15
Darkness
Статус:
Опытный:
Сообщений: 1341
Награды: 8
Регистрация: 26.04.2013

Цитата Снегирь ()
появится надпись "Срезать часть тела"

После которой бы отыгрывалась соответствующая анимация отрезания части тела... Наподобие как в Far Cry 3...
P.S. мысли вслух.
  Злобная реклама
Пятница, 03.01.2014, 16:45
Статус:
Сообщений: 666
Регистрация: 26.04.2013
Форум » S.T.A.L.K.E.R. Модификации » Помощь в моддинге » Скрипты, конфиги, логика, движок » Выпадение частей тел с монстров без надобности их обыска. (мини-урок)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: