#2) Учимся делать урон на экране как взрослые ребята (??-HF)

я правильно понял? этот вывод урона никак не привязан к местоположению таргета
если так то можно ли как то привязать? на сколько я знаю можно изменить размер текста в зависимости от расстояние между таргетом и игроком, но как сделать что бы урон вылетал именно над таргетом пока не могу найти
 
Я так понимаю для интерлюдии это не актуально?) В общем то все получилось скомпилировать, но еффекта нет, подебажить бы...)
 
замени в свитчах значения на те, что прилетают в интерлюдии и всё.
как узнать? открой файл systemmsg.dat и вместо
case 2261: //player msg
case 2281: //summoner msg
будут другие числа
 
Большое спасибо, чекну))
 
Поменял Id-шки результату 0 к сожалению, я думал что не так как то вывожу через интерфейc, но там просто по сути указываешь скрипт и название самого окна. ну и 28 текст боксов, не знаю проверял? что меня смущало то что не находит метода GetTextBoxHandle, и компиляция падает ошибка OnScreenDmgMsgWnd.uc(14) : Error, Bad or missing expression in '='
Проверяю скомпелировался ли файл нормально ли, есть класс, да действительно класс есть с функциями все как полагается. Ну очень странно.
 
Все верно метод GetTextBoxHandle идет только с HF. Но можно заменить его. Прикол в том что все скомпелировалось ошибок нет клиент запускается, но все равно не выводится ничего на экран.. //debug тоже ничего не показывает при компеляции
 
GetTextBoxHandle идет только с HF. Да, всё верно. я и забыл

Скинь код uc скрипта и xdat ну или код скрипта для xdat editor-а (мне дико лень тыкать все эти 29 элементы)
 
У тебя не правильно парсит параметры попробуй сделать так.
C++:
ParseString(a_Param, "Param1", DamageToPlayer);
 
Для Interlude:

Урон по вам думаю сами прикрутите.

C++:
/******************************************
Дата 18.07.2024 11:47

  Разработчик: BITHACK

  Copyright (c) Ваша компания

 Описание скрипта:....

*******************************************/
class OnScreenDmgMsgWnd extends UICommonAPI;
const MAX_DAMAGE_MESSAGE = 28;

 var TextBoxHandle DamageText[MAX_DAMAGE_MESSAGE];
 var int i;
 var Color WhiteColor;


function OnLoad() {

    RegisterEvent(EV_SystemMessage);

 for (i = 0; i < MAX_DAMAGE_MESSAGE; i++) {
    DamageText[i] = TextBoxHandle(GetHandle("OnScreenDmgMsgWnd.D-" $ i));
    DamageText[i].SetText("");
    }
    }

function OnEvent(int Event_ID, string a_param) {
 if (Event_ID == EV_SystemMessage) {
    HandleSystemMessage(a_param);
    }
    }

function HandleSystemMessage(string a_Param) {
 local int SystemMsgIndex;

    ParseInt(a_Param, "Index", SystemMsgIndex);

 switch (SystemMsgIndex) {
    case 35:
    case 1015:
    DamageUI(WhiteColor, a_param);
 break;
    }
    }

function DamageUI(Color DColor, string a_param) {
 local String DamageToPlayer;

 for (i = 0; i < MAX_DAMAGE_MESSAGE; i++) {
 if (DamageText[i].GetText() == "" || DamageText[i].GetAlpha() <= 0) {
    DamageText[i].SetText("");
    DamageText[i].SetAlpha(255);
    ParseString(a_Param, "Param1", DamageToPlayer);
    DamageText[i].SetText(DamageToPlayer);
    DamageText[i].SetAnchor("OnScreenDmgMsgWnd", "BottomCenter", "BottomCenter", -120 + Rand(150), Rand(100));
    DamageText[i].ClearAnchor();
    DamageText[i].Move(-100, -1500, 8f);
    DamageText[i].SetTextColor(DColor);
    DamageText[i].SetAlpha(0, 4f);
 break;
    }
    }
    }

    defaultproperties {
    WhiteColor=(B=255,G=255,R=255,A=255)
    }
 

Вложения

  • interface.zip
    58,6 КБ · Просмотры: 15
Большое спасибо, да урон по себе не нужен)) я специально выкосил его) Сейчас гляну где мой косяк)