Добавлен
Можно ли напрямую записать в строку название постоянной переменной, например, расы игрока ("RACE_UNDEAD")? Так, как это делает функция R2S или UnitId2String. Только не числа, а символы.

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

нет. просто создай массив строк обычный и по индексу (через GetHandleId(GetPlayerColor( Player( p ) ), например) вставляй
занеси туда все строки
string array RaceNames
set RaceNames[1]="RACE_HUMAN"
....
call DisplayTimedTextToPlayer( p, 0, 0, 5, RaceNames[GetHandleId(GetPlayerRace( Player( p ) ),]+", "+ColorNames[GetHandleId(GetPlayerColor( Player( p ) ),] )
0
19
7 лет назад
0
0
16
7 лет назад
0
constant string s123="constant"
local string s="some_"+s123
??
Вопрос супер некачественный
0
23
7 лет назад
Отредактирован Тимур
0
Допустим, я вывожу на экран сообщение, которое содержит в себе имя расы игрока (не само имя, а именно название константы).
Делаю я это через if:
local player p = Player( 0 )
if ( GetPlayerRace( Player( p ) ) == RACE_HUMAN ) then
call DisplayTimedTextToPlayer( p, 0, 0, 5, "RACE_HUMAN" )
elseif ......................
А если, к примеру, мне нужно получить не просто имя расы, а еще и цвет игрока, то в каждый такой if я добавляю еще 12 if'ов:
local player p = Player( 0 )
if ( GetPlayerRace( Player( p ) ) == RACE_HUMAN ) then
if ( GetPlayerColor( Player( p ) ) == PLAYER_COLOR_RED ) then
call DisplayTimedTextToPlayer( p, 0, 0, 5, "RACE_HUMAN, PLAYER_COLOR_RED" )
elseif ......................
И так далее. Конечно, можно и в таком виде все оставить, еще можно повозиться с хэш-таблицей, но нет ли простого способа взять эти самые RACE_HUMAN и PLAYER_COLOR_RED и сразу представить в виде строки?
0
16
7 лет назад
0
нет. просто создай массив строк обычный и по индексу (через GetHandleId(GetPlayerColor( Player( p ) ), например) вставляй
занеси туда все строки
string array RaceNames
set RaceNames[1]="RACE_HUMAN"
....
call DisplayTimedTextToPlayer( p, 0, 0, 5, RaceNames[GetHandleId(GetPlayerRace( Player( p ) ),]+", "+ColorNames[GetHandleId(GetPlayerColor( Player( p ) ),] )
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.