[Pedido] Dъvida, estб correto?
#1

Bom coloquei um sistema para salvar a cor do nome do player baseado no modo que me ensinaram a salvar а skin..

enum
PHP код:
pColor 
OnPlayerConnect
PHP код:
Admin[playerid][pColor] = SetPlayerColor(playerid0xBBBBBBFF);
dini_IntSet(GetPlayerFile(playerid), "pColor",  GetPlayerColor(playerid)); 
OnPlayerDisconnect
PHP код:
dini_IntSet(GetPlayerFile(playerid), "pColor",  GetPlayerColor(playerid)); 
OnPlayerSpawn
PHP код:
SetPlayerColor(playeriddini_Int(GetPlayerFile(playerid), "pColor")); 
LoginPlayer(playerid)
PHP код:
Admin[playerid][pColor] = dini_Int(GetPlayerFile(playerid),"pColor"); 
No comando para mudar a cor.
PHP код:
dini_IntSet(GetPlayerFile(playerid), "pColor"GetPlayerColor(playerid)); 
-

Ali no onplayerconnect, tive que colocar dini_IntSet(GetPlayerFile... pq antes mesmo colocando o setplayercolor, a cor do nick no chat ficava preta, e no chat kill ficava na cor que estava na funзгo, apуs colocar assim nгo estб bugando mais, gostaria de saber se estб correto isso que fiz, ou se dб para aprimorar isso.
Thanks.
Reply
#2

Acredito que SetPlayerColor nгo retorna a cor, por isso existe o GetPlayerColor.
Tente assim:

OnPlayerConnect
Код:
SetPlayerColor(playerid, 0xBBBBBBFF); 
Admin[playerid][pColor] = GetPlayerColor(playerid);
dini_IntSet(GetPlayerFile(playerid), "pColor",  Admin[playerid][pColor]);
No spawn acredito nгo ter necessidade, porйm, utilize a var responsavel pela cor, caso contrбrio pra que ter uma?

OnPlayerSpawn
Код:
SetPlayerColor(playerid, Admin[playerid][pColor]);
@EDIT

Vocк estб usando muito a funзгo GetPlayerColor quando existe uma variбvel responsбvel pela cor.
Procure usar sempre a variбvel quando possнvel.
Reply
#3

F1N4L, thank you so much.. Funcionou, vou usar essa mesma lуgica nas skins, pq quando cria uma conta nova ele seta a skin ID 0 vulgo CJ, coisa que nгo quero.

@OFF
Eu adiciono а reputaзгo pra ti ele diz que mandou, mas suas rep nгo muda, porque?
Thanks for adding reputation to this user. May you be lucky enough to receive the same Reputation back in turn
Reply
#4

Quote:
Originally Posted by Dishz
Посмотреть сообщение
F1N4L, thank you so much.. Funcionou, vou usar essa mesma lуgica nas skins, pq quando cria uma conta nova ele seta a skin ID 0 vulgo CJ, coisa que nгo quero.

@OFF
Eu adiciono а reputaзгo pra ti ele diz que mandou, mas suas rep nгo muda, porque?
Thanks for adding reputation to this user. May you be lucky enough to receive the same Reputation back in turn
Foda-se a reputaзгo, se funcionou й o suficiente!
Reply
#5

@F1N4L, eu esqueci de testar uma coisa, quando usamos o SetPlayerColor, toda hora que o player relogar, ele vai setar essa cor ao invйs de puxar a cor salva escolhida pelo player, o mesmo acontece com a skin, precisava de algum modo que ele setava cor / nick sу uma fez no primeiro login, pra salvar e nгo setar mais quando logar denovo.

Acho que dб pra trabalhar em algo em cima dessa variбvel Admin[playerid][Registered], se for 0 (nгo registrado) ele seta skin e color, se for 1 ele puxa os dados salvos, entгo se o player logou ele vai pegar as infos de cor / skin padrхes que no caso eu iria definir, quando o player logasse pela 2 vez, ele iria puxar essas infos, se ele mudasse cor / skin iria salvar e setar nos prуximos logins. esse й o meu pensamento, mas precisa de ajuda pra fazer...
Reply
#6

Quote:
Originally Posted by Dishz
Посмотреть сообщение
@F1N4L, eu esqueci de testar uma coisa, quando usamos o SetPlayerColor, toda hora que o player relogar, ele vai setar essa cor ao invйs de puxar a cor salva escolhida pelo player, o mesmo acontece com a skin, precisava de algum modo que ele setava cor / nick sу uma fez no primeiro login, pra salvar e nгo setar mais quando logar denovo.

Acho que dб pra trabalhar em algo em cima dessa variбvel Admin[playerid][Registered], se for 0 (nгo registrado) ele seta skin e color, se for 1 ele puxa os dados salvos, entгo se o player logou ele vai pegar as infos de cor / skin padrхes que no caso eu iria definir, quando o player logasse pela 2 vez, ele iria puxar essas infos, se ele mudasse cor / skin iria salvar e setar nos prуximos logins. esse й o meu pensamento, mas precisa de ajuda pra fazer...
Eu gosto de login obrigatуrio, por isso a constante Registered para mim seria inъtil, mas para este caso seria perfeito, jб que seria uma verificaзгo simples...
Bem pensado, jovem.
Qualquer dъvida poste...
Reply
#7

@F1N4L, pensei dб seguinte forma o;
PHP код:
ini_IntSet(GetPlayerFile(playerid), "pColor"GetPlayerColor(playerid)); 
Ele vai puxar a cor do nick do player se salvar no pColor, certo?

O...
PHP код:
SetPlayerColor(playeriddini_Int(GetPlayerFile(playerid), "pColor")); 
Puxa o resultado de pColor e seta no player, certo?

Entгo usei...

PHP код:
public OnPlayerConnect(playerid)
{
    if(
Admin[playerid][Registered] == 0)
    {
    
SetPlayerColor(playerid0x00FF00FF);
    
dini_IntSet(GetPlayerFile(playerid), "pColor"GetPlayerColor(playerid));
    }
    else
    {
    if(
Admin[playerid][Registered] == 1)
    
SetPlayerColor(playeriddini_Int(GetPlayerFile(playerid), "pColor"));
    } 
Porйm estб acontecendo isso; No primeiro login do player, ele estб setando a cor, porйm o Getplayer nгo estб salvando na conta no primeiro login...

Quando logamos pela segunda vez, ele seta a cor preta...

Quando logamos pela terceira vez ele seta a cor que estб no Registered 0, e quando uso o comando e mudo a cor, e damos o quarto login, ele nгo puxa a cor do comando, e sim a cor do Setplayer do Registered 0.

lembrando que temos Admin[playerid][Registered] = 0; jб definido no onplayerconnect que й do sistema.
Reply
#8

Essa condiзгo, ao meu ver, estб no lugar errado, pois como vc mesmo disse: a var comeзa ZERADA, logo sempre vai retornar a primeira condiзгo.
Essa condicional deve ser colocada na funзгo do login, posteriormente getar o valor da constante Registered.
Reply
#9

Nunca foi tгo dificil de colocar pra setar uma maldita cor...
Coloquei o cod no meu LoginPlayer(playerid), deu certo, porйm ao logar a cor do chat kill nгo й a mesma do chat..

Esse cуdigo que estou а usar, estб correto? pq se tiver vai ficar assim mesmo.

PHP код:
if(Admin[playerid][Registered] == 0)
    {
    
SetPlayerColor(playerid0x00FF00FF);
    
dini_IntSet(GetPlayerFile(playerid), "pColor"GetPlayerColor(playerid));
    }
    else
    {
    if(
Admin[playerid][Registered] == 1)
    
SetPlayerColor(playeriddini_Int(GetPlayerFile(playerid), "pColor"));
    } 
Reply
#10

A lуgica й exatamente essa, porйm errou ao adicionar a condicional dentro de ELSE, pois o ELSE jб estб afirmando que a constante Registered nгo й 0.

Assim:
Код:
if(Admin[playerid][Registered] == 0) 
    { 
    SetPlayerColor(playerid, 0x00FF00FF); 
    dini_IntSet(GetPlayerFile(playerid), "pColor", GetPlayerColor(playerid)); 
    } 
    else 
    { 
    SetPlayerColor(playerid, dini_Int(GetPlayerFile(playerid), "pColor")); 
    }
Apenas removi a condicional, pois iria verificar duas vezes a mesma coisa sem necessidade.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)