[Ajuda] Class Selection
#1

Quando o jogador entrar no server quero que mostre na seleзгo de skins a skin dele, sу que isso sу acontece uma vez, ou seja, na primeira vez que ele se conecta, se eu for no banco e mudar quando ele entrar novamente nгo atualiza a seleзгo mesmo trocando de skin(<< >>), existe alguma forma de resetar essa seleзгo ou uma outra maneira para fazer isso ?
pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
    if(!Player[playerid][IsLogged]){
        SetPlayerPos(playerid,1310.2540,-1369.5389,13.5638);
        SetPlayerFacingAngle(playerid, 181.9483);
        SetPlayerCameraPos(playerid, 1310.0526123047, -1387.81640625, 18.711109161377);
        SetPlayerCameraLookAt(playerid, 1310.0526123047, -1381.2322998047, 16.190980911255);
       
        if(Player[playerid][IsRegistered]){
            ShowPlayerDialog(playerid, DIALOG_PLAYER_LOGIN, DIALOG_STYLE_PASSWORD, "Efetue seu login", "Informe sua senha:", "Logar", "Sair");
        }
        else{
            ShowPlayerDialog(playerid, DIALOG_PLAYER_REGISTER, DIALOG_STYLE_PASSWORD, "Registre-se", "Informe uma senha:", "Cadastrar", "Sair");
        }
    }
    else{
        SetSpawnInfo(playerid,0,Player[playerid][Skin],1310.2540,-1369.5389,13.5638,180.1962, 0, 0, 0, 0, 0, 0);
        SpawnPlayer(playerid);
    }
    return 1;
}
pawn Код:
public OnMysqlQuery(resultid, spareid, MySQL:handle)
{
    switch(resultid)
    {
        case MYSQL_EXISTS_PLAYER:
        {
            mysql_store_result(handle);
           
            if(mysql_num_rows() == 1){
                Player[spareid][Skin] = mysql_fetch_int(cnx);
                Player[spareid][IsRegistered] = true;
            }
            AddPlayerClass(Player[spareid][Skin],1310.2540,-1369.5389,13.5638,181.9483,0,0,0,0,0,0);
           
            mysql_free_result(handle);
        }
    }
    return 1;
}
Reply
#2

Se bem entendi, vocк precisa usar ForceClassSelection
Reply
#3

Nгo, vou tentar explicar melhor. Quando eu ligo o servidor ainda nгo existe nenhuma skin na class selection, ai eu verifico se o jogador possui uma conta, caso ele possuir eu seto a skin dele no enum Player e em seguida uso o AddPlayerClass com a skin dele, atй ai funciona. Em algum momento ele trocou de skin e alterou no banco, quando ele entrar no server novamente quero que na seleзгo de skin apareзa a ъltima skin dele(ex: primeira skin = 100 alterou para 200, logo deve aparecer a 200 e nгo a 100). O sql vem certo, sempre traz o atual.
Reply
#4

Vocк tб usando AddPlayerClass em OnPlayerConnect?

Se for, adiciona as skins que irгo ser usadas em OnGameModeInit.

E em OnPlayerConnect, vocк usa SetPlayerSkin, de acordo com o que foi salvo no arquivo/DB
Reply
#5

SetPlayerSkin nгo funciona sу quando o player jб spawno ? Porque quando ele conectar quero que apareзa somente a skin dele na seleзгo, como se fosse uma seleзгo de skin por jogador e nгo para o jogo "inteiro". Se nгo for isso vou testar.
Reply
#6

Entendi sua idaia.

Pra ser sincero eu nunca testei isso.

Mas vale a pena tentar usa SetPlayerSkin na tela inicial, ao mesmo tempo em que vocк esconde as setas <> e botгo de spawn.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)