Как конвертировать playercolor в строку типа |cffffffff
set udg_Colour[i + 1]=GetPlayerColor(Player(i))

Как-то так, в вызове указываешь игрока, а она возвращает цвет в виде строки:
function GetColor takes player whichplayer returns string
	local playercolor color = GetPlayerColor(whichplayer)
	
	if (color == PLAYER_COLOR_RED) then return "FF0303" endif
	if (color == PLAYER_COLOR_BLUE) then return "0042FF" endif
	if (color == PLAYER_COLOR_CYAN) then return "1CE6B9" endif
	if (color == PLAYER_COLOR_PURPLE) then return "540081" endif
	if (color == PLAYER_COLOR_YELLOW) then return "FFFC01" endif
	if (color == PLAYER_COLOR_ORANGE) then return "FEBA0E" endif
	if (color == PLAYER_COLOR_GREEN) then return "20C000" endif
	if (color == PLAYER_COLOR_PINK) then return "E55BB0" endif
	if (color == PLAYER_COLOR_LIGHT_GRAY) then return "959697" endif
	if (color == PLAYER_COLOR_LIGHT_BLUE) then return "7EBFF1" endif
	if (color == PLAYER_COLOR_AQUA) then return "106246" endif
	if (color == PLAYER_COLOR_BROWN) then return "4E2A04" endif
	return ""
endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
16
обычно просто используют вспомогательные массивы с заполненными строками
Ответы (1)
9
DracoL1ch, а что если какой-то игрок поменяет цвет в лобби?
20
DracoL1ch, понимаю, так и делаю. Хочу чтобы игрок мог выбрать себе цвет в лобби, не важно каким номером он будет.
38
Вот же они в common.j:

    constant playercolor        PLAYER_COLOR_RED                = ConvertPlayerColor(0)
    constant playercolor        PLAYER_COLOR_BLUE               = ConvertPlayerColor(1)
    constant playercolor        PLAYER_COLOR_CYAN               = ConvertPlayerColor(2)
    constant playercolor        PLAYER_COLOR_PURPLE             = ConvertPlayerColor(3)
    constant playercolor        PLAYER_COLOR_YELLOW             = ConvertPlayerColor(4)
    constant playercolor        PLAYER_COLOR_ORANGE             = ConvertPlayerColor(5)
    constant playercolor        PLAYER_COLOR_GREEN              = ConvertPlayerColor(6)
    constant playercolor        PLAYER_COLOR_PINK               = ConvertPlayerColor(7)
    constant playercolor        PLAYER_COLOR_LIGHT_GRAY         = ConvertPlayerColor(8)
    constant playercolor        PLAYER_COLOR_LIGHT_BLUE         = ConvertPlayerColor(9)
    constant playercolor        PLAYER_COLOR_AQUA               = ConvertPlayerColor(10)
    constant playercolor        PLAYER_COLOR_BROWN              = ConvertPlayerColor(11)
20
ScorpioT1000, я вижу. Только это не строка типа (|cffffffff)
Просто константа playercolor, я не знаю что с ней делать. Мне нужна строка.

Нигде не нашёл ничего связанного с тем, что playercolor можно как-то преобразовать. По-этому и создал вопрос.
29
KaneThaumaturge, преобразовать нельзя, только создавать базу цветов, как привел в пример DracoL1ch

Ну и то, что привел скорп - это поможет не по индексу игрока назначать ячейку в базе, а по цвету
19
Red: FF0303
Blue: 0042FF
SkyBlue: 1CE6B9
Purple: 540081
Yellow: FFFC01
Orange: FEBA0E
Green: 20C000
Pink: E55BB0
Grey: 959697
Silver: 7EBFF1
DarkGreen: 106246
Brown: 4E2A04
Это HEX коды цветов, увы, так их не получить, т.к TeamColor - это blp текстура, но есть вариант забить их(то, что я написал выше) по переменным и выбирать через if/else.
Вот так я использовал это в ассемблере:
		mov eax, [esp + 0x04]
		push esi
		add esi, 0x24
		mov esi, dword ptr [esi]
		cmp esi, 15
		ja HPBarContinueAsm

	//Red:
		cmp esi, 0
		jne Blue
		mov esi, 0xFFFF0303
	Blue:
		cmp esi, 1
		jne SkyBlue
		mov esi, 0xFF0042FF
	SkyBlue:
		cmp esi, 2
		jne Purple
		mov esi, 0xFF1CE6B9
	Purple:
		cmp esi, 3
		jne Yellow
		mov esi, 0xFF540081
	Yellow:
		cmp esi, 4
		jne Orange
		mov esi, 0xFFFFFC01
	Orange:
		cmp esi, 5
		jne Green
		mov esi, 0xFFFEBA0E
	Green:
		cmp esi, 6
		jne Pink
		mov esi, 0xFF20C000
	Pink:
		cmp esi, 7
		jne Grey
		mov esi, 0xFFE55BB0
	Grey:
		cmp esi, 8
		jne Silver
		mov esi, 0xFF959697
	Silver:
		cmp esi, 9
		jne DarkGreen
		mov esi, 0xFF7EBFF1
	DarkGreen:
		cmp esi, 10
		jne Brown
		mov esi, 0xFF106246
	Brown:
		cmp esi, 11
		jne NeutralAggresive
		mov esi, 0xFF4E2A04
	NeutralAggresive:
		cmp esi, 12
		jne NeutralPassive
		mov esi, 0xFF474747
	NeutralPassive:
		cmp esi, 15
		jne SetColor
		mov esi, 0xFF909412

	SetColor:
		mov dword ptr[eax], esi
		jmp HPBarContinueAsm

KaneThaumaturge:
DracoL1ch, понимаю, так и делаю. Хочу чтобы игрок мог выбрать себе цвет в лобби, не важно каким номером он будет.
Так чтоли?
Загруженные файлы
20
Окей, а как отличать blp текстуры?

Так чтоли?
Да

Не столь важно, но так и интерфейс расы можно выбирать.
19
Так, напомните, вы хотите, чтобы несколько игроков могли выбрать один цвет, или добавить новые цвета?
29
KaneThaumaturge, Создаем базу цветов, держим их по индексу цвета, пишем функцию покраски в цвет, вызываем функцию где нам это нужно
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.