GetAbilityTextureName

Илья

Друзья CG
25 Сен 2015
2,348
41
Есть lua вещь с поведением DOTA_ABILITY_BEHAVIOR_CHANNELLED.

Собственно, чтобы у вещи была иконка используем GetAbilityTextureName(), а вот чтобы у каста была иконка?
Ведь там нужен файл уже не 86x64, a 128x128.

Чет пол часа копался во всевозможных источниках и искал на гитхабе подобное сочетание, но не нашел.
 
Есть предположение, что все делается там же, только нужно как-то различать, когда отправлять иконку на вещь, а когда иконку на каст.
 
По-моему нужно просто иконку саму в другой фолдер положить. Типа одна во flash3 а другая в панорама спелликонс, что-то такое.
 
То есть?
У меня одна лежит в items, другая в spellicons.

Или ты имеешь в виду им названия одинаковые дать?
 
Либо я настолько сонливый, что не дочитал коммент до конца, либо читал его, когда ты еще не дописал вторую часть про панораму.

Ща поразбираюсь.
 
Не, пробовал так:

В \dota 2 beta\content\dota_addons\invasion\panorama\images кинул и items и spellicons, в которых лежат basis_of_turret.png 86х64 и 128х128 соответственно.

И в \dota 2 beta\game\dota_addons\invasion\resource\flash3\images тоже самое.

Результат тот же.
 
До этого пробовал такую залупу:

Код:
function item_basis_of_turret:GetAbilityTextureName()
	if self:IsItem() then
 		return "td_items/basis_of_turret"
 	else
 		return "td_ability/ability_repair" 
 	end
end

Но она тоже не помогает сделать у каста картинку.
 
Последнее редактирование модератором:
Что-то я совсем поплыл, мерещатся руки и ноги у модели, у которой их быть не должно:
R4yR8bEWIu.jpg


Пойду спать. Надеюсь, кто-то знает и отпишет о решении проблемы.
 
[quote author=Илья link=topic=1535.msg10016#msg10016 date=1497826514]
Код:
function item_basis_of_turret:GetAbilityTextureName()
	if self:IsItem() then
 		return "td_items/basis_of_turret"
 	else
 		return "td_ability/ability_repair" 
 	end
end
[/quote]
Если предмет перестал быть предметом, то заменяем иконку. Годный код то.
 
Последнее редактирование модератором:
Имхо вольво просто не знают что у итемов может быть ченнел, вот и не работает.
 
Я думаю, что MahouShoujo в чем-то прав и иконку касту можно как-то прикрутить через панораму.
 
Я вижу один вариант - фиксить иконку костылем на js.
Чекать все итемы в инвентаре на ченнел и ставить нужную иконку, а мб есть даже какойто ивент на клиенте.
 
Ну да, скорее всего так и надо будет делать. Но я пока просто фиг забью.
 
Код:
  function ChanneledItems()
  {
    var unit = Players.GetLocalPlayerPortraitUnit()
    for (var i = 0; i < 6; i++)
    {
      var item = Entities.GetItemInSlot(unit, i)
      if (item != -1 &amp;&amp; Abilities.GetChannelStartTime(item) > 0)
      {
        var texture = Abilities.GetAbilityTextureName(item)
        texture = "file://{images}/items/" + texture + ".png"; 
        var dotaHud = $.GetContextPanel().GetParent().GetParent().GetParent()
        dotaHud.FindChildTraverse("ChannelBar").FindChildTraverse("BuffIcon").SetImage(texture)
      }
    }
    $.Schedule(0.005,ChanneledItems)
  }
  $.Schedule(0.005,ChanneledItems)
 
Последнее редактирование модератором:
Спасибо за код, когда полезу панораму изучать пригодиться. Да и другим, кто с такой проблемой столкнется тоже.
 
Ну что значит не знает? А тп скролл?


Проблема была с луа абилками когда ченелинг иконка не подхватывалась совсем, ее пофиксили, возможно, что с итемами не доделали.
 
Реклама: