Случайная подборка модов
Sigerous Mod 2.2
4.1
Новый Арсенал 5.0
3.6
Альтернатива 1.2
3.0
Ф.О.Т.О.Г.Р.А.Ф
4.2
ReBorn 2.50 «Артефакты смерти»
3.5
Dead Autumn
4.1
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
  • Страница 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
  • »
Поиск: