Простые вопросы #2

alex_gadzy

Пользователь
28 Июн 2019
42
2
как удалять дроп с карты через определенное время как в ангел арене?
 

xDes

Активный
8 Ноя 2018
122
7
Проект
Boss Survival Adventure
такая ситуация. Есть рики, он в инвизе и крипы его не видят, есть любой другой герой который погиб и осталось томба для его реса, так вот если рики поднимает этого героя, то крипы его видят всегда, не зависимо в инвизе он или нет до тех пор пока рики не погибнет сам. как исправить может кто знает?

Код:
function CAddonAdvExGameMode:OnEntityKilled( keys )
    local killed_unit = EntIndexToHScript( keys.entindex_killed )
    local killer = EntIndexToHScript( keys.entindex_attacker )
        if killed_unit and killed_unit:IsRealHero() then
        local newItem = CreateItem( "item_tombstone", killed_unit, killed_unit )
        newItem:SetPurchaseTime( 0 )
        newItem:SetPurchaser( killed_unit )
        local tombstone = SpawnEntityFromTableSynchronous( "dota_item_tombstone_drop", {} )
        tombstone:SetContainedItem( newItem )
        tombstone:SetAngles( 0, RandomFloat( 0, 360 ), 0 )
        FindClearSpaceForUnit( tombstone, killed_unit:GetAbsOrigin(), true ) 
end
это код ДРОПА томбы
 
Последнее редактирование:
20 Дек 2016
791
120
такая ситуация. Есть рики, он в инвизе и крипы его не видят, есть любой другой герой который погиб и осталось томба для его реса, так вот если рики поднимает этого героя, то крипы его видят всегда, не зависимо в инвизе он или нет до тех пор пока рики не погибнет сам. как исправить может кто знает?

Код:
function CAddonAdvExGameMode:OnEntityKilled( keys )
    local killed_unit = EntIndexToHScript( keys.entindex_killed )
    local killer = EntIndexToHScript( keys.entindex_attacker )
        if killed_unit and killed_unit:IsRealHero() then
        local newItem = CreateItem( "item_tombstone", killed_unit, killed_unit )
        newItem:SetPurchaseTime( 0 )
        newItem:SetPurchaser( killed_unit )
        local tombstone = SpawnEntityFromTableSynchronous( "dota_item_tombstone_drop", {} )
        tombstone:SetContainedItem( newItem )
        tombstone:SetAngles( 0, RandomFloat( 0, 360 ), 0 )
        FindClearSpaceForUnit( tombstone, killed_unit:GetAbsOrigin(), true ) 
end
это код томбы
Это не код томбы, это код ее дропа при смерти героя. Тут можно только переписать сам итем (томбу) с нуля.
 

xDes

Активный
8 Ноя 2018
122
7
Проект
Boss Survival Adventure
Это не код томбы, это код ее дропа при смерти героя. Тут можно только переписать сам итем (томбу) с нуля.
я понимаю что это дроп томбы, а сама томба стандартна как в доте. вопрос в другом, понял 1-вариант переписать, есть еще какие-то?
 
20 Дек 2016
791
120
я понимаю что это дроп томбы, а сама томба стандартна как в доте. вопрос в другом, понял 1-вариант переписать, есть еще какие-то?
Разве что давать неуязвимость невидимым юнитам, которые кастуют прерываемую способность. Попробуй вывести имена всех способностей героя когда он поднимает томбу, скорее всего это какая-то скрытая абилка, а значит может быть проверена через IsChanneling
 

xDes

Активный
8 Ноя 2018
122
7
Проект
Boss Survival Adventure
Разве что давать неуязвимость невидимым юнитам, которые кастуют прерываемую способность. Попробуй вывести имена всех способностей героя когда он поднимает томбу, скорее всего это какая-то скрытая абилка, а значит может быть проверена через IsChanneling
ты наверное меня не так понял, или я так объяснил. Дело в том, что после того как герой поднимает любого другого героя из могилы, его всегда видят юниты враги, не важно под смоками он, в лотаре или своем инвизе (рики, клинкз, бх). Типо на него вешается тру вижн со стороны врага. До того как он кого либо поднимет его никто не видит. А если этот герой(который поднимал) погибнет, все начинается сначала.
 
20 Дек 2016
791
120
ты наверное меня не так понял, или я так объяснил. Дело в том, что после того как герой поднимает любого другого героя из могилы, его всегда видят юниты враги, не важно под смоками он, в лотаре или своем инвизе (рики, клинкз, бх). Типо на него вешается тру вижн со стороны врага. До того как он кого либо поднимет его никто не видит. А если этот герой(который поднимал) погибнет, все начинается сначала.
Теперь понял. Ну просто снимай с него модификатор, когда он поднимает союзника. Способов отследить этот момент - уйма. Можно просто поставить SetThink на героев и постоянно применять RemoveModifierByName, если герой не чаннелит. Можно накладывать бафф, который будет снимать трусайт в евенте MODIFIER_EVENT_ON_ABILITY_END_CHANNEL. Можно еще много его придумать...
 

xDes

Активный
8 Ноя 2018
122
7
Проект
Boss Survival Adventure
Теперь понял. Ну просто снимай с него модификатор, когда он поднимает союзника. Способов отследить этот момент - уйма. Можно просто поставить SetThink на героев и постоянно применять RemoveModifierByName, если герой не чаннелит. Можно накладывать бафф, который будет снимать трусайт в евенте MODIFIER_EVENT_ON_ABILITY_END_CHANNEL. Можно еще много его придумать...
понял, попробую, спасибо за идею!
 

xDes

Активный
8 Ноя 2018
122
7
Проект
Boss Survival Adventure
правильно ли я понимаю, что если вставлю это в gamemode.lua, то если создать лобби с читами мне напишет сообщение?
Код:
function GameMode:OnFirstPlayerLoaded()
  DebugPrint("[BAREBONES] First Player has loaded")
  CheckCheatMode()
end

function CheckCheatMode()
  if GameRules:IsCheatMode() then
    print("\nThis Match is in Cheat Mode!\n")
    GameRules:SendCustomMessage("This Match is in <font color='#FF0000'>Cheat Mode</font>!", 0, 0)
  end
end
 
20 Дек 2016
791
120
правильно ли я понимаю, что если вставлю это в gamemode.lua, то если создать лобби с читами мне напишет сообщение?
Код:
function GameMode:OnFirstPlayerLoaded()
  DebugPrint("[BAREBONES] First Player has loaded")
  CheckCheatMode()
end

function CheckCheatMode()
  if GameRules:IsCheatMode() then
    print("\nThis Match is in Cheat Mode!\n")
    GameRules:SendCustomMessage("This Match is in <font color='#FF0000'>Cheat Mode</font>!", 0, 0)
  end
end
Ну, если установлено BAREBONES, то да
 

alex_gadzy

Пользователь
28 Июн 2019
42
2
как удалять дроп с карты через определенное время как в ангел арене? плз
 
Реклама: