Хостинг, который использует TopHope.RU более 2-х лет

Хостинг, который использует TopHope.RU более 4-х лет

Модификация интерфейса - Аттрибут

Тема в разделе "Прочее", создана пользователем MrTraC, мар 21, 2017.

  1. MrTraC

    MrTraC Старший модератор Команда форума Старший модератор

    Сообщения:
    440
    Симпатии:
    667
    Баллы:
    2,318
    Пожалуйста, зарегистрируйтесь или войдите на форум.

    Пожалуйста, зарегистрируйтесь или войдите на форум.
    Пожалуйста, зарегистрируйтесь или войдите на форум.

    Опять пропустим создание окна в клиенте по понятным причинам) и перейдем к коду, но не забудьте указать скрипт управляющий окном MenuWnd в x dateditor.
    У меня окно получилось такое
    [​IMG]
    По кнопке поставить, ставит введенное количество камней
    в 1 окне аттрибут, в 2 шмотка

    Удаляем весь код из AttributeEnchantWnd.uc кроме
    Сверху class AttributeEnchantWnd extends UICommonAPI;
    и в самом низу
    defaultproperties
    {
    }

    Гдето в начало ко всем Var добавляем
    Код:
    var WindowHandle     Attribute1Item;
    var ItemWindowHandle Attribute1Box;
    var ItemInfo         Attribute1ItemValidate;
    var WindowHandle     Attribute2Item;
    var ItemWindowHandle Attribute2Box;
    var ItemInfo         Attribute2ItemValidate;
    var EditBoxHandle    AttributeEdit;
    
    MainAttribute - Главное окно аттрибута
    Item1Wnd - окно в котором лежит другое окно для аттрибута
    Item1Box - окно для предмета которое лежит в Item1Wnd
    AttributeEdit - поле для ввода

    в функцию OnLoad(); добавляем
    Код:
    if(CREATE_ON_DEMAND==0)
        {
            Attribute1Item = GetHandle ("MainAttribute.Item1Wnd");
            Attribute2Item = GetHandle ("MainAttribute.Item2Wnd");
            Attribute1Box = ItemWindowHandle (GetHandle( "MainAttribute.Item1Wnd.Item1Box" ));
            Attribute2Box = ItemWindowHandle (GetHandle( "MainAttribute.Item2Wnd.Item2Box" ));
            AttributeEdit = EditBoxHandle (GetHandle( "MainAttribute.AttributeEdit" ));
        }
        else
       {    
            Attribute1Item = GetWindowHandle ("MainAttribute.Item1Wnd");
            Attribute2Item = GetWindowHandle ("MainAttribute.Item2Wnd");
            Attribute1Box = GetItemWindowHandle ("MainAttribute.Item1Wnd.Item1Box" );
            Attribute2Box = GetItemWindowHandle ("MainAttribute.Item2Wnd.Item2Box" );
            AttributeEdit = GetEditBoxHandle ("MainAttribute.AttributeEdit" );
       }
    
    в функцию OnClickButton(string strID) добавляем
    Код:
    case "btnAttribute": // если нажали на кнопку вставки аттрибута, значит ...
            AttributeEnchant(); // вызываем функцию вставки атт
        break;
    case "btnRemove": // если нажали на кнопку удаления аттрибута, значит ...
            AttributeRemove(); // вызываем функцию удаления атт
        break;
    
    Добавляем 2 функции
    Вставка атт
    Код:
    function AttributeEnchant()
    {
        local int i; // регистрируем локальную переменную для цикла
        local int count; // регистрируем локальную переменную для хранения колво вставки атт из поля ввода
        count = int(AttributeEdit.GetString()); // присваеваем переменной из поля ввода текст и преобразовываем в число
     
     
        for( i = 0; i < count; ++i ) // начинаем цикл вставки атт (отправки пакетов) с 0 до количества указанном в поле ввода
        {
        RequestUseItem(Attribute1ItemValidate.ID); // отправляем пакет на юз аттрибута ( без него никак)
        class'EnchantAPI'.static.RequestEnchantItemAttribute(Attribute2ItemValidate.ID); // отправляем пакет на вставку атт
        }
    }
    [code]
    Удаление
    [code]
    function AttributeRemove()
    {
       class'EnchantAPI'.static.RequestRemoveAttribute(Attribute2ItemValidate.ID, Attribute2ItemValidate.AttackAttributeType); // отправляем пакет на удаление аттрибута
    }
    
     
    Последнее редактирование: мар 21, 2017
    BIT_hack, AlisaDarkCoder, DaVilka и 3 другим нравится это.
  2. DeathDark

    DeathDark

    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    306
    Эх перезалить бы скрины везде, гайды супер, долго искал и ничего толкового кроме этих гайдов не нашел)
     
  3. HellFire

    HellFire Команда форума Администратор

    Сообщения:
    1,267
    Симпатии:
    1,729
    Баллы:
    5,018
    Это надо спросить у @MrTraC
    @MrTraC , у тебя остались скрины на яндексдиске?
    (Скрины были прямо оттуда... может сохранились, а яндексдиск запретил скрины напрямую тянуть)
     
    FORVARD нравится это.
  4. MrTraC

    MrTraC Старший модератор Команда форума Старший модератор

    Сообщения:
    440
    Симпатии:
    667
    Баллы:
    2,318
    FORVARD и AlisaCodeDragon нравится это.
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление