02/10/2023 11:37
(Esta mensagem foi modificada pela última vez a: 02/10/2023 11:39 por leonardos08bt.)
(27/09/2023 21:11)MateusCandido Escreveu:(27/09/2023 11:45)pushline Escreveu: 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)
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.
Estou salvando da seguinte forma:
Código PHP:mysql_format(connect, query, sizeof(query), "UPDATE `contas` SET `cor` = %d WHERE `nome` = '%e'", color[playerid], nome[playerid]);
mysql_pquery(connect, query);
Porém quando insiro a cor "0x0080FFFF" o mysql ignora as letras deixando apenas o 0080.
A coluna "cor" criei no formato INT do mysql como disse
Seria melhor salvar a cor usando varchar.
( '%e' - varchar(10) )