27/09/2023 11:45
(Esta mensagem foi modificada pela última vez a: 27/09/2023 12:18 por pushline.)
Pelo o que vejo nisso não tem nada de errado... Como você tá salvando esse color[playerid] ?
Esse seu código deveria se transformar nisso: (se estiver correto o método de salvamento)
Se você salvar o hexadecimal com o alpha no final (os dois últimos números), não precisará usar o setalpha para transformá-lo em hexadecimal, pois seria a mesma coisa em sistemas diferentes (decimal e hexadecimal). Você só precisaria usá-la se precisasse alterar o alpha do hexadecimal. Em outras palavras, a função que forneci raramente pode ser usada.
Se você salvar o hexadecimal sem o alpha (por exemplo, 0xAABBCC), poderá usá-lo em strings normais e, em SendClientMessage, ele terá o alpha bugado no final (0x00AABBCC).
O motivo do bug é porque você está tentando passar a cor em um formato inválido, como se você tivesse uma cor RGB, mas a função espera RGBA ou ARGB, portanto, ela supõe que, se for RGBA, R é 0 ou A é 0
Para resolver isso, você poderia fazer o seguinte:
- "0xAABBCC << 8" para gerar um 00 no final
- Poderia usar SetAlpha antes de usar a cor no SendClientMessage.
Esse seu código deveria se transformar nisso: (se estiver correto o método de salvamento)
Código PHP:
format(string, sizeof(string), "{%06x}Mensagem!", 0x0080FFFF >>> 8);
Se você salvar o hexadecimal com o alpha no final (os dois últimos números), não precisará usar o setalpha para transformá-lo em hexadecimal, pois seria a mesma coisa em sistemas diferentes (decimal e hexadecimal). Você só precisaria usá-la se precisasse alterar o alpha do hexadecimal. Em outras palavras, a função que forneci raramente pode ser usada.
Se você salvar o hexadecimal sem o alpha (por exemplo, 0xAABBCC), poderá usá-lo em strings normais e, em SendClientMessage, ele terá o alpha bugado no final (0x00AABBCC).
O motivo do bug é porque você está tentando passar a cor em um formato inválido, como se você tivesse uma cor RGB, mas a função espera RGBA ou ARGB, portanto, ela supõe que, se for RGBA, R é 0 ou A é 0
Para resolver isso, você poderia fazer o seguinte:
- "0xAABBCC << 8" para gerar um 00 no final
- Poderia usar SetAlpha antes de usar a cor no SendClientMessage.