Как сделать триггер, из-за которого все слова игрока появляются над его героем?
(Если не трудно - дайте пожалуйста скриншот!)

Принятый ответ

гугл в помошь! Такой ресурс ого-го 5-6 лет назад реализован... Найдеш!
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
28
6 лет назад
0
Попробовал переделать триггер с учётом этого, но что-то пошло не так. Тогда стал выводить на экран длину строки, русские символы занимают места в два раза больше английских. По идее должен быть другой способ считать символы.
потому что 1 русский символ это 2 байта
другого способа нету
0
26
6 лет назад
0
nvc123, так можно забить алфавит строчных и прописных и сверять по букве алфавита из введённой строки. Только не умею этого.
P. S. По названию статьи "Скрытие сообщений чата" сразу становится понятно, что там сообщения выводятся над героем игрока)
P. P. S. Да ещё и jass-триггер
2
23
6 лет назад
2
8gabriel8, получаем длину строк и проходим циклом по 1 букв выдергивая и снова цикл ишем в альфавит русского языка если нет то 1 байт а если есть 2 байт и так расчитиваем и свдиг позиции... Геморой конечно но зная лимита текст над головой не актуально если и будет урон появлять и чат.
Короче неактуально как бы!
0
26
6 лет назад
0
Как циклом по букве проходить? На GUI)
2
23
6 лет назад
Отредактирован pro100master
2
вроде Substr не помню забыл есть в гуи, просто век не заходил в редактор забываю((
8gabriel8:
Как циклом по букве проходить? На GUI)
Вот так примерно гуи реализовал и конвентировал в jass
set udg_t = GetEventPlayerChatString()
set bj_forLoopAIndex = 0
set bj_forLoopAIndexEnd = StringLength(udg_t)
loop
        exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
        set udg_b = SubStringBJ(udg_t, bj_forLoopAIndex, IMinBJ((bj_forLoopAIndex + 1), bj_forLoopAIndexEnd))
        set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
где udg_b это 1 букв каждый цикл и проверяете что хотите узнай что это
Вот хороший библиотека выровняет текст над головой
//==============================================================================
//  TEXT TAG - Floating text system by Cohadar - v4.0
//==============================================================================
//
//  PURPOUSE:
//       * Displaying floating text - the easy way
//       * Text is automatically centered depending on it's length
//
//  FUNCTION LIST:
//       * TextTag_XY(x, y, text, color)
//       * TextTag_Unit(unit, text, color)
//       * TextTag_GoldBounty(unit, text, killer)
//       * TextTag_LumberBounty(unit, text, killer)
//
//         color is a color string, example: "|c00FFCC00"
//         killer is a killing player, usually: GetOwningPlayer(GetKillingUnit())
//         (bounty text is visible only to killer)
//
//  HOW TO IMPORT:
//       * Just create a trigger named TextTag
//         convert it to text and replace the whole trigger text with this one
//==============================================================================

library TextTag

globals    
    private constant integer MEAN_CHAR_WIDTH = 8
    private constant integer MAX_TEXT_SHIFT = 32    
    
    private constant real    FONT_SIZE = 0.025
    private constant real    VELOCITY_X = 0
    private constant real    VELOCITY_Y = .04
    private constant real    LIFESPAN = 4
    private constant real    HEIGHT = 16
    private constant real    FADE_POINT = 2.5
endglobals


//===========================================================================
public function XY takes real x, real y, string text, string color returns nothing
    local texttag t = CreateTextTag()
    local integer shift = IMinBJ(StringLength(text), MAX_TEXT_SHIFT) * MEAN_CHAR_WIDTH
   
    call SetTextTagText(t, color+text, FONT_SIZE)
    call SetTextTagPos(t, x-shift, y, HEIGHT)
    call SetTextTagVelocity(t, VELOCITY_X, VELOCITY_Y)
    call SetTextTagVisibility(t, true)
    call SetTextTagFadepoint(t, FADE_POINT)
    call SetTextTagLifespan(t, LIFESPAN)
    call SetTextTagPermanent(t, false)
   
    set t = null
endfunction

//===========================================================================
public function Unit takes unit whichUnit, string text, string color returns nothing
    local texttag t = CreateTextTag()
    local integer shift = IMinBJ(StringLength(text), MAX_TEXT_SHIFT) * MEAN_CHAR_WIDTH
   
    call SetTextTagText(t, color+text, FONT_SIZE)
    call SetTextTagPos(t, GetUnitX(whichUnit)-shift, GetUnitY(whichUnit), HEIGHT)
    call SetTextTagVelocity(t, VELOCITY_X, VELOCITY_Y)
    call SetTextTagVisibility(t, true)
    call SetTextTagFadepoint(t, FADE_POINT)
    call SetTextTagLifespan(t, LIFESPAN)
    call SetTextTagPermanent(t, false)    
   
    set t = null
endfunction

//===========================================================================
public function GoldBounty takes unit whichUnit, string text, player killer returns nothing
    local texttag t = CreateTextTag()
    local integer shift = IMinBJ(StringLength(text), MAX_TEXT_SHIFT) * MEAN_CHAR_WIDTH
   
    call SetTextTagText(t, text, FONT_SIZE)
    call SetTextTagPos(t, GetUnitX(whichUnit)-shift, GetUnitY(whichUnit), HEIGHT)
    call SetTextTagColor(t, 255, 220, 0, 255)
    call SetTextTagVelocity(t, VELOCITY_X, VELOCITY_Y)
    call SetTextTagVisibility(t, GetLocalPlayer()==killer)
    call SetTextTagFadepoint(t, FADE_POINT)
    call SetTextTagLifespan(t, LIFESPAN)
    call SetTextTagPermanent(t, false)
   
    set t = null
endfunction

//==============================================================================
public function LumberBounty takes unit whichUnit, string text, player killer returns nothing
    local texttag t = CreateTextTag()
    local integer shift = IMinBJ(StringLength(text), MAX_TEXT_SHIFT) * MEAN_CHAR_WIDTH
   
    call SetTextTagText(t, text, FONT_SIZE)
    call SetTextTagPos(t, GetUnitX(whichUnit)-shift, GetUnitY(whichUnit), HEIGHT)
    call SetTextTagColor(t, 0, 196, 0, 255)
    call SetTextTagVelocity(t, VELOCITY_X, VELOCITY_Y)
    call SetTextTagVisibility(t, GetLocalPlayer()==killer)
    call SetTextTagFadepoint(t, FADE_POINT)
    call SetTextTagLifespan(t, LIFESPAN)
    call SetTextTagPermanent(t, false)
   
    set t = null
endfunction

endlibrary
0
26
6 лет назад
0
Разобрался с SubString и сделал версию с выровненным текстом:
Может быть в некоторых обстоятельствах немного менее чёткую, чем у этой библиотеки, зато на обычных триггерах.
Загруженные файлы
0
30
6 лет назад
Отредактирован Clamp
0
зато на обычных триггерах
В контексте личного развития это вряд ли можно считать положительной характеристикой.
0
26
6 лет назад
0
Clamp, очень разумно детсадовцу дать учебник по математике средней школы и сказать: «Развивайся!»
Автору вопроса в этом GUI будет трудно разобраться
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.