Авто-перенос итема в ItemWindow

итак,занимаюсь реализацией одной фичи и потребовалось реализовать авто-перенос скилла в созданный итем виндоу, в зависимости от класса и наличия самого скилла

как я это делаю:

что бы не размазывать по всему интерфейсу куски,решил что нормально будет зацепиться за уже существующую функцию HandleSkillList которая в MagicSkillWnd


там я паршу ИД и начиная строить конструкцию,в которой если такой скилл будет обнаружен в листе - он поедет в итемвиндоу:

if (info.ID.ClassID == 1234)
{
class'UIAPI_ITEMWINDOW'.static.AddItem("MyWindow.MyItemWindow" , info);
}

и всёбы ничего,но скилл отказывается переноситься полностью
т.е он переносится и даже юзается (функция предполагает автоюз найденного скилла),но не имеет ни иконки,ни описания самого скилла
но имеет пустой тултип

Вот у меня и встал вопрос - а чего ему надо то? при ondrop - прекрасно переносится и иконка и описание скила
в чём тут может быть проблема?
 

Попробуй перед переносом сам указать текстуру иконки для ItemInfo
 
Возможно ты уже решил) но для других думаю будет полезно)
Это от хроник выше hf, для hf возможно придется поправить имена структур.

C++:
// Подготовим Скилл для добавления на панель
function ItemInfo f_MagicSkillInfo(ItemID GetID){
  local SkillInfo SkillInfoItem;
  local ItemInfo Intem;
class 'UIDATA_ITEM'.static.GetItemInfo(GetID, Intem);//Получим инфу итема по ид
    GetSkillInfo(Intem.ID.ClassID, Intem.Level, Intem.SubLevel, SkillInfoItem ); //bool MagicSkill
    Intem.Name = SkillInfoItem.SkillName;
    Intem.Level = SkillInfoItem.SkillLevel;
    Intem.SubLevel = SkillInfoItem.SkillSubLevel;
    Intem.IconName = SkillInfoItem.TexName;
    Intem.Description = SkillInfoItem.SkillDesc;
    Intem.AdditionalName = SkillInfoItem.EnchantName;
    Intem.IconNameEx1 = SkillInfoItem.AnimName;
    Intem.MpConsume = SkillInfoItem.MpConsume;
    Intem.ItemSubType = int(EShortCutItemType.SCIT_SKILL);

//Если у итема нет рамки

  if (SkillInfoItem.IconPanel == "") {
    Intem.IconPanel = "";//Не добавляем рамку
  } else {
    Intem.IconPanel = SkillInfoItem.IconPanel; //если есть рамка у иконки добавим
    SkillInfoItem.IconPanel = "";
  }

//Выведем на панель
    return Intem;
  }

//Пример использования
f_MagicSkillInfo( тут пишем ИД скилла);
 
Возможно ты уже решил) но для других думаю будет полезно)
Это от хроник выше hf, для hf возможно придется поправить имена структур.

C++:
// Подготовим Скилл для добавления на панель
function ItemInfo f_MagicSkillInfo(ItemID GetID){
  local SkillInfo SkillInfoItem;
  local ItemInfo Intem;
class 'UIDATA_ITEM'.static.GetItemInfo(GetID, Intem);//Получим инфу итема по ид
    GetSkillInfo(Intem.ID.ClassID, Intem.Level, Intem.SubLevel, SkillInfoItem ); //bool MagicSkill
    Intem.Name = SkillInfoItem.SkillName;
    Intem.Level = SkillInfoItem.SkillLevel;
    Intem.SubLevel = SkillInfoItem.SkillSubLevel;
    Intem.IconName = SkillInfoItem.TexName;
    Intem.Description = SkillInfoItem.SkillDesc;
    Intem.AdditionalName = SkillInfoItem.EnchantName;
    Intem.IconNameEx1 = SkillInfoItem.AnimName;
    Intem.MpConsume = SkillInfoItem.MpConsume;
    Intem.ItemSubType = int(EShortCutItemType.SCIT_SKILL);

//Если у итема нет рамки

  if (SkillInfoItem.IconPanel == "") {
    Intem.IconPanel = "";//Не добавляем рамку
  } else {
    Intem.IconPanel = SkillInfoItem.IconPanel; //если есть рамка у иконки добавим
    SkillInfoItem.IconPanel = "";
  }

//Выведем на панель
    return Intem;
  }

//Пример использования
f_MagicSkillInfo( тут пишем ИД скилла);
Спасибо. Но это было почти 5 лет назад, сейчас я уже делаю кастомные босс-арены для эссенсов и т.п. стафф.
test.gif

Как в прошлое заглянул, эх.
 
Назад
Сверху Снизу