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

alex_gadzy

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

xDes

Продвинутый
8 Ноя 2018
158
20
Проект
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
824
133
такая ситуация. Есть рики, он в инвизе и крипы его не видят, есть любой другой герой который погиб и осталось томба для его реса, так вот если рики поднимает этого героя, то крипы его видят всегда, не зависимо в инвизе он или нет до тех пор пока рики не погибнет сам. как исправить может кто знает?

Код:
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
158
20
Проект
Boss Survival Adventure
Это не код томбы, это код ее дропа при смерти героя. Тут можно только переписать сам итем (томбу) с нуля.
я понимаю что это дроп томбы, а сама томба стандартна как в доте. вопрос в другом, понял 1-вариант переписать, есть еще какие-то?
 
20 Дек 2016
824
133
я понимаю что это дроп томбы, а сама томба стандартна как в доте. вопрос в другом, понял 1-вариант переписать, есть еще какие-то?
Разве что давать неуязвимость невидимым юнитам, которые кастуют прерываемую способность. Попробуй вывести имена всех способностей героя когда он поднимает томбу, скорее всего это какая-то скрытая абилка, а значит может быть проверена через IsChanneling
 

xDes

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

xDes

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

xDes

Продвинутый
8 Ноя 2018
158
20
Проект
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
824
133
правильно ли я понимаю, что если вставлю это в 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
44
2
как удалять дроп с карты через определенное время как в ангел арене? плз
 

ION

Пользователь
10 Ноя 2019
40
3
Проект
Memethrow 2.0 dota 2
Непонятные проблемы с иконками героев в панораме.Сначало сделал топбар андаинга он сразу заработал, а дальше всё пошло по ... В итоге получилось сделать иконку на андаинга (и в топбаре и в меню выбора) и всё. Когда случайно удалил картинку всё по прежнему продолжает работать.ВОт что у меня есть:
4.png
.....\content\dota_addons\myaddon\panorama\images\
1.png
.....\content\dota_addons\myaddon\panorama\images\heroes
2.png
.....\content\dota_addons\myaddon\panorama\images\heroes\selection
3.png
<root>
<Panel class="AddonLoadingRoot">
<Image id="gamemode" class="SeqImg" src="file://{images}/heroes/npc_dota_hero_undying.png" />
</Panel>
</root>

<root>
<Panel class="AddonLoadingRoot">
<Image id="gamemode" class="SeqImg" src="file://{images}/heroes/selection/npc_dota_hero_undying.png" />
</Panel>
</root>

<root>
<Panel class="AddonLoadingRoot">
<Image id="gamemode" class="SeqImg" src="file://{images}/heroes/npc_dota_hero_rubick.png" />
</Panel>
</root>

<root>
<Panel class="AddonLoadingRoot">
<Image id="gamemode" class="SeqImg" src="file://{images}/heroes/selection/npc_dota_hero_rubick.png" />
</Panel>
</root>
Ну на зомбаке иконки работают, и то как-то странно, я могу полностью удалить эту папку с пикчами и оно всё равно будет работать.А с рубиком оно плевать хотело, просто не компилируется.Помогите пожалуйста, что куда мне написать и в чём моя ошибка.
 
Реклама: