Как через RemoveItem реализовать удаление предметов на карте если имеются
function Remove(hItem, hDrop)
if hItem and IsValidEntity(hItem) then
if not hItem:GetOwnerEntity() then
if hDrop and IsValidEntity(hDrop) then
UTIL_Remove(hDrop)
end
UTIL_Remove(hItem)
end
end
end
Спасибо, я думал не из игры удалять (UTIL_Remove)Ты про удаление предметов, которые никто не подбирает?
Если да, то после дропа шмотки, создаешь таймер, в котором что-то вроде этого делаешь:
Код:function Remove(hItem, hDrop) if hItem and IsValidEntity(hItem) then if not hItem:GetOwnerEntity() then if hDrop and IsValidEntity(hDrop) then UTIL_Remove(hDrop) end UTIL_Remove(hItem) end end end
Где hItem - понятно, указатель на шмотку, а hDrop - указатель на её "физическую оболчку" /контейнер, хз как правильно (которую через CreateItemOnPositionSync() к примеру делаешь).
Ну логика то как бы понятна: если у созданной шмотки владельца не появилось, то тебе надо удалить все, что ты понасоздавал, чтобы дропнуть шмотку и понятно дело она пропадет.
local creep_3 = CreateUnitByName("npc_creep_3", Vector(12704,10144,160), true, nil, nil, DOTA_TEAM_BADGUYS )
local npc_test_3 = { index = creep_3:entindex() }
CustomGameEventManager:Send_ServerToAllClients("info_3", npc_test_3 )
[ W Entity System ]: Cannot create an entity because entity class is NULL -1
[ Developer ]: AddAbility - Failed to create ability building_damage_fix.
"building_damage_fix"
{
"BaseClass" "ability_lua"
"ScriptFile" "abilities/buildings/building_damage_fix"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"AbilitySpecial"
{
{
"var_type" "FIELD_INTEGER"
"damage_reduce_pct" "-90"
}
}
}
building_damage_fix = class( {} )
LinkLuaModifier( "modifier_bulding_damage", "abilities/buildings/modifier_bulding_damage", LUA_MODIFIER_MOTION_NONE )
function building_damage_fix:GetIntrinsicModifierName()
return "modifier_bulding_damage"
end
Бля, извините, тупейшая ошибка. Все-таки не стоит кодить в час ночи???!7
"building_damage_fix"
{
"BaseClass" "ability_lua"
"ScriptFile" "abilities/buildings/building_damage_fix"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"AbilitySpecial"
{
"01" <--------------------
{
"var_type" "FIELD_INTEGER"
"damage_reduce_pct" "-90"
}
}
}
local abilityCount = unit:GetAbilityCount()
for i = 0, abilityCount-1 do
local ability = unit:GetAbilityByIndex(i)
end