CustomGames.ru - Dota 2 пользовательские игры

Как сделать гроб после смерти.

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Роман

  • 88
  • Мощь: 0

Как сделать гроб после смерти ,как в эпик бос файт.Если на него нажать ,то герой возрадиться на том же месте через некоторое время.
« Последнее редактирование: 16-06-2016, 19:19:49 от Роман »

Оффлайн RecoveryIt

  • 75
  • Мощь: 1
Re: Как сделать гроб после смерти.
« Ответ #1 : 16-06-2016, 20:10:54 »
holdout_example , это оттуда.

Оффлайн Роман

  • 88
  • Мощь: 0
Re: Как сделать гроб после смерти.
« Ответ #2 : 16-06-2016, 21:35:51 »
holdout_example , это оттуда.
спс

Оффлайн Роман

  • 88
  • Мощь: 0
Re: Как сделать гроб после смерти.
« Ответ #3 : 17-06-2016, 15:11:29 »
Чет полазил ничего не нашел ,там слишком много непонятного кода.Где искать хоть?

Оффлайн Илья

  • Супермодератор
  • 2039
  • Мощь: 19
Re: Как сделать гроб после смерти.
« Ответ #4 : 17-06-2016, 20:15:45 »
Ищи по событию убийства героя или юнита.  Так же можешь залезть в файлы локализации и там отыскать этот самый гробик, его описание, а через него вылезти в объект, которому это описание адресовано.

Оффлайн Роман

  • 88
  • Мощь: 0
Re: Как сделать гроб после смерти.
« Ответ #5 : 18-06-2016, 10:52:52 »
Вообщем код я нашел.
Это lua
Код
function CHoldoutGameMode:OnEntityKilled( event )
local killedUnit = EntIndexToHScript( event.entindex_killed )
if killedUnit and killedUnit:IsRealHero() then
local newItem = CreateItem( "item_tombstone", killedUnit, killedUnit )
newItem:SetPurchaseTime( 0 )
newItem:SetPurchaser( killedUnit )
local tombstone = SpawnEntityFromTableSynchronous( "dota_item_tombstone_drop", {} )
tombstone:SetContainedItem( newItem )
tombstone:SetAngles( 0, RandomFloat( 0, 360 ), 0 )
FindClearSpaceForUnit( tombstone, killedUnit:GetAbsOrigin(), true )
end
end
И ещё вот это
npc_items_custom
Код
"DOTAAbilities"
{
"item_tombstone"
{
// General
//-------------------------------------------------------------------------------------------------------------
"AbilityName" "item_tombstone"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_NO_TARGET | DOTA_ABILITY_BEHAVIOR_CHANNELLED | DOTA_ABILITY_BEHAVIOR_DONT_RESUME_ATTACK"
"Model" "models/props_gameplay/tombstoneb01.vmdl"
"PingOverrideText" "DOTA_Chat_Tombstone_Pinged"
"precache"
{
"particle_folder" "particles/units/heroes/hero_morphling"
}


// Stats
//-------------------------------------------------------------------------------------------------------------
"AbilityCastRange" "100"
"AbilityCastPoint" "0.0"
"AbilityChannelTime" "8.0"

// Item Info
//-------------------------------------------------------------------------------------------------------------
"ItemCost" "99999"
"ItemPurchasable" "0"
"ItemShopTags" "consumable"
"ItemQuality" "consumable"
"ItemStackable" "1"
"ItemShareability" "ITEM_FULLY_SHAREABLE"
"ItemPermanent" "0"
"ItemInitialCharges" "1"
"ItemCastOnPickup" "1"
"ItemKillable" "0"

}
}
Но я не понял как он работает  :P
В доте можно выкладывать предмет,но он работает никогда мы его подбираем с пола ,а когда он в инвентаре,а тут наоборот кароч я не понял.

Оффлайн Adam Smith

  • Друзья CG
  • 476
  • Мощь: 6
  • жрять жри его
Re: Как сделать гроб после смерти.
« Ответ #6 : 18-06-2016, 10:58:30 »
Код
"ItemCastOnPickup"				"1"
Что непонятного?
By PG.Freeman

Оффлайн Роман

  • 88
  • Мощь: 0
Re: Как сделать гроб после смерти.
« Ответ #7 : 18-06-2016, 11:18:38 »
Код
"ItemCastOnPickup"				"1"
Что непонятного?
В какой строчке прописано оживление персонажа и круглой полоски ,которая заполняется.

Оффлайн Илья

  • Супермодератор
  • 2039
  • Мощь: 19
Re: Как сделать гроб после смерти.
« Ответ #8 : 18-06-2016, 12:25:24 »
Дальше ищи абилку в духе "item_tombstone"

Оффлайн Роман

  • 88
  • Мощь: 0
Re: Как сделать гроб после смерти.
« Ответ #9 : 18-06-2016, 12:54:48 »
Я конечно может не понимаю ,но там нет такой абилки.Да там все и без нее работает,я создал новый проэкт ,и в этом проэкте пустой файл с абилками ,но эта фишка все равно работает...

Оффлайн Adam Smith

  • Друзья CG
  • 476
  • Мощь: 6
  • жрять жри его
Re: Как сделать гроб после смерти.
« Ответ #10 : 18-06-2016, 13:52:39 »
Эта штука есть в коде C++ в доте. Вот и работает
By PG.Freeman

Оффлайн Роман

  • 88
  • Мощь: 0
Re: Как сделать гроб после смерти.
« Ответ #11 : 18-06-2016, 14:07:34 »
Спасибо я понял вопрос не моего уровня

Оффлайн Роман

  • 88
  • Мощь: 0
Re: Как сделать гроб после смерти.
« Ответ #12 : 18-06-2016, 15:47:33 »
Ещё один вопрос.Мне нужно что бы умершие воскресали после конца раунда,как это реализовать?Мне нужен типо их индефикатор ,там же что то записывается в функцию ,когда они умирают?

Оффлайн Роман

  • 88
  • Мощь: 0
Re: Как сделать гроб после смерти.
« Ответ #13 : 18-06-2016, 18:45:12 »
Ещё один вопрос.Мне нужно что бы умершие воскресали после конца раунда,как это реализовать?Мне нужен типо их индефикатор ,там же что то записывается в функцию ,когда они умирают?
Код
function CHoldoutGameMode:OnEntityKilled( event )
local killedUnit = EntIndexToHScript( event.entindex_killed )
if killedUnit and killedUnit:IsRealHero() then
                table.insert(hero)
                if x=1 then
     hero:SetAbsOrigin( point )
     FindClearSpaceForUnit(hero, 0,0,0, false)
--нули координаты спавна героев
     hero:Stop()
end
local newItem = CreateItem( "item_tombstone", killedUnit, killedUnit )
newItem:SetPurchaseTime( 0 )
newItem:SetPurchaser( killedUnit )
local tombstone = SpawnEntityFromTableSynchronous( "dota_item_tombstone_drop", {} )
tombstone:SetContainedItem( newItem )
tombstone:SetAngles( 0, RandomFloat( 0, 360 ), 0 )
FindClearSpaceForUnit( tombstone, killedUnit:GetAbsOrigin(), true )
end
end
А точнее
Код
table.insert(hero)
                if x=1 then
     hero:SetAbsOrigin( point )
     FindClearSpaceForUnit(hero, 0,0,0, false)
--нули координаты спавна героев
     hero:Stop()
end
Так будет работать?
X это переменная ,которая равна 1 ,когда происходит смена раунда и которая сразуже приравнивается к нулю...
« Последнее редактирование: 18-06-2016, 19:07:17 от Роман »

Оффлайн Илья

  • Супермодератор
  • 2039
  • Мощь: 19
Re: Как сделать гроб после смерти.
« Ответ #14 : 18-06-2016, 21:26:17 »
Реализуешь функцию, которую запускаешь по окончанию раунда и в теле функции проверяешь, кто жив, а кто мертв. Соответственно, мертвых респавнишь.