Как конвертировать 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
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
19
4 года назад
0
DracoL1ch, понимаю, так и делаю. Хочу чтобы игрок мог выбрать себе цвет в лобби, не важно каким номером он будет.
0
37
4 года назад
0
Вот же они в 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)
0
19
4 года назад
Отредактирован KaneThaumaturge
0
ScorpioT1000, я вижу. Только это не строка типа (|cffffffff)
Просто константа playercolor, я не знаю что с ней делать. Мне нужна строка.

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

Ну и то, что привел скорп - это поможет не по индексу игрока назначать ячейку в базе, а по цвету
0
19
4 года назад
Отредактирован Ev3nt
0
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, понимаю, так и делаю. Хочу чтобы игрок мог выбрать себе цвет в лобби, не важно каким номером он будет.
Так чтоли?
Загруженные файлы
0
19
4 года назад
0
Окей, а как отличать blp текстуры?

Так чтоли?
Да

Не столь важно, но так и интерфейс расы можно выбирать.
0
19
4 года назад
0
Так, напомните, вы хотите, чтобы несколько игроков могли выбрать один цвет, или добавить новые цвета?
0
27
4 года назад
0
KaneThaumaturge, Создаем базу цветов, держим их по индексу цвета, пишем функцию покраски в цвет, вызываем функцию где нам это нужно
0
19
4 года назад
0
Ev3nt:
Так, напомните, вы хотите, чтобы несколько игроков могли выбрать один цвет, или добавить новые цвета?
Хочу чтобы игрок мог выбрать себе цвет в лобби, а я потом смог отловить тот цвет, который он выбрал.

Феникс, Так игрок с индексом 0 (красный), может выбрать темно-зеленый цвет.
0
27
4 года назад
0
KaneThaumaturge, Я о том и говорю, библиотека (массив) завязывается не на индексе игрока, а на цвете, что выше приводит в пример ScorpioT1000
0
19
4 года назад
0
Феникс, Окей, но мне нужна именно строка. Просто определить какой цвет выбрал игрок.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.