Продолжу тему о имении себя в задНу и если, внезапно, появилось желание поиметь себя в зад (как у меня, неожиданно!), то можно даже отделять обычные удары от свер-урона (скилы, криты):
Посмотреть вложение 85299
C#:class OnScreenMessageDmgWnd extends UICommonAPI; const MAX_DAMAGE_MESSAGE = 9; var TextBoxHandle DamageText[MAX_DAMAGE_MESSAGE]; var int i; var Color ColorNormalDam; var Color ColorOverDam; var int LastDam; var Color LastColor; function OnLoad() { RegisterEvent(EV_SystemMessage); for (i = 0; i < MAX_DAMAGE_MESSAGE; i++) { DamageText[i] = TextBoxHandle(GetHandle("DamageText" $ 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(a_param); break; } } function DamageUI(string a_param) { local Color TextColor; local String DamageToPlayer; local int CurDam; local float ScatterUpper; local float ScatterLower; ParseString(a_Param, "Param1", DamageToPlayer); CurDam = int(DamageToPlayer); ScatterUpper = LastDam * 1.2; ScatterLower = LastDam * 0.8; if(LastDam>0) { // Damage wasnt change if (CurDam >= ScatterLower && CurDam <= ScatterUpper) { TextColor = LastColor; } else { if (CurDam >= (ScatterLower * 2)) { TextColor = ColorOverDam; } else { TextColor = ColorNormalDam; } } } else { TextColor = ColorNormalDam; } LastDam = CurDam; LastColor = TextColor; for (i = 0; i < MAX_DAMAGE_MESSAGE; i++) { if (DamageText[i].GetText() == "" || DamageText[i].GetAlpha() <= 0) { DamageText[i].SetText(""); DamageText[i].SetAlpha(255); if(TextColor == ColorOverDam) { DamageText[i].SetText(DamageToPlayer $ "!"); } else { DamageText[i].SetText(DamageToPlayer); } DamageText[i].SetAnchor("OnScreenMessageDmgWnd", "BottomCenter", "BottomCenter", -120 + Rand(150), Rand(100)); DamageText[i].ClearAnchor(); DamageText[i].Move(-100, -1500, 9f); DamageText[i].SetTextColor(TextColor); DamageText[i].SetAlpha(0, 48.6f); break; } } } defaultproperties { ColorNormalDam=(B=224,G=255,R=255,A=255) ColorOverDam=(B=1,G=215,R=255,A=255) }
Скрытое содержимое доступно для зарегистрированных пользователей!
Последнее редактирование:
