- 20 Сен 2014
- 440
- 1
- Проект
- Survival in Taiga XE
Есть два скрипта 1-ый выполняет ForceKill() если выполнено условие, 2-ой CreateItemOnPositionSync() если
значит дропаются итемы из инвентаря. Код взял с форума (Кодим функции: "дроп с игрока" или "будьте внимательнее" от Ильи)
(если убить игрока или убить его какой нибудь пасивкой/скилом то предметы дропаются)
При выполнении условия срабатывает ForceKill(), но dota_player_killed не считает его за смерть, то есть если ForceKill() срабатывает то предметы не дропаются (по условию "CreateDrop"). Можно ли как нибудь совместить мгновенную смерть и OnHeroKilled описанный выше ?
Код:
ListenToGameEvent("dota_player_killed", Dynamic_Wrap(GameMode, "OnHeroKilled"), self)
Код:
function GameMode:OnHeroKilled(data)
print("Hero Killed")
local killedEntity = PlayerResource:GetSelectedHeroEntity(data.PlayerID)
if killedEntity:GetNumItemsInInventory() ~=0 then
for i=0,5 do
local item = killedEntity:GetItemInSlot(i);
if item ~= nil then
local position = killedEntity:GetAbsOrigin()
local name = item:GetAbilityName()
killedEntity:RemoveItem(item)
GameMode:CreateDrop(name, position)
end
end
end
end
function GameMode:CreateDrop (itemName, pos)
local newItem = CreateItem(itemName, nil, nil)
newItem:SetPurchaseTime(0)
CreateItemOnPositionSync(pos, newItem)
newItem:LaunchLoot(false, 300, 0.75, pos + RandomVector(RandomFloat(50, 350)))
end
(если убить игрока или убить его какой нибудь пасивкой/скилом то предметы дропаются)
При выполнении условия срабатывает ForceKill(), но dota_player_killed не считает его за смерть, то есть если ForceKill() срабатывает то предметы не дропаются (по условию "CreateDrop"). Можно ли как нибудь совместить мгновенную смерть и OnHeroKilled описанный выше ?
Последнее редактирование модератором: