[Ajuda] Sistema de salvamento da skin
#1

Bom pessoal, estou com um probleminha em um salvamento das skin's. Bom quando um player loga no servidor, na parte de login, o player ao digitar a senha, pode escolher a skin que quer, mas quando ela aperta o botгo "Spawn" para entrar no servidor, com a skin escolhida, aparece a skin 0, em vez da escolhida, e a skin 0 e bloqueada no servidor, e porque ela aparece?

O sistema de salvamento eu coloquei no comando /skin dentro do servidor, caso o player queira alterar a sua skin, e tambйm quando o player sai do servidor, e entra novamente, a skin que ele usou no comando, fica salva, eu quero que ela nгo salve, caso ele saia do servidor e entra novamente.

E outra coisa, eu queria colocar um outro salvamento em um outro comando do servidor, esse eu queria que o player que usar o comando, salvar a skin quando morrer/spawnado, e se ele sair do servidor a skin continuar salva.
Se alguйm poder me ajudar, ficaria muito grato.


Salvamento no /skin:
pawn Код:
new SaveSkin[MAX_PLAYERS];

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if(strcmp(cmd, "/skin", true) == 0)
    {
        if(Stats[playerid][GANGID] > 0 && Stats[playerid][GANGID] < MIN_GANGS)
            {
                SendClientMessage(playerid, COLOR_VERMELHO, "Vocк estб em uma equipe especial e nгo pode usar este comando!");
                return 1;
            }
        new skin;
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, COLOR_VERDE, "Digite: /skin [id-do-skin]");
            return 1;
        }
        skin = strval(tmp);
        if(skin == 0 || skin == 74 || skin == 165 || skin == 166 || skin == 192 || skin == 265 || skin == 266 || skin == 267 || skin == 280 ||
        skin == 281 ||skin == 282 || skin == 283 ||skin == 284 || skin == 285 || skin == 286 || skin == 288)
        {
            SendClientMessage(playerid, COLOR_VERMELHO, "ID do skin invбlido!");
            return 1;
        }
        if(skin < 0 || skin > 299)
        {
            SendClientMessage(playerid, COLOR_VERMELHO, "ID do skin invбlido!");
            return 1;
        }
        SetPlayerSkin(playerid,skin);
        format(string, 100, "Skin %d setada com sucesso!", skin);
        SendClientMessage(playerid,COLOR_VERDE2, string);
        SaveSkin[playerid] = skin;
        return 1;
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

public OnPlayerSpawn(playerid)
{
    SetPlayerSkin(playerid,SaveSkin[playerid]);
    return 1;
}        

//Nгo sei porque estб a vendo o problema na seleзгo de skin que aparece no skin 0, se puderem me ajudar ;D

Queria o sistema de salvamento neste comando:
pawn Код:
#define SKINPOLICIA

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if(!strcmp("/policiais", cmdtext, true))
    {
        if(Stats[playerid][GANGID]!=1)
        {
            SendClientMessage(playerid,COLOR_VERMELHO,"Vocк nгo й um Policial!");
            return 1;
        }
        for(new i=0; i < TOTALPLAYERS; i++)
        {
            if(Stats[i][GANGID]!=1 && GetPlayerState(i)!=9 && InEvento[i]==0 && PlayerInDuelo[i]==0)
        {
        ShowPlayerDialog(playerid,SKINPOLICIA,DIALOGLIST, "Skins da Policia", "Policial Los Santos 1\nPolicial Los Santos 2\nPolicial Los Santos 3\nPolicial Los Santos 4\nPolicial Las Venturas 1\nPolicial Las Venturas 2\nPolicial Las Venturas 3\nPolicial San Fierro 1\nLSPD Moto Bike\nAgente 1\nAgente 2\nTenente\nFBI\nSWAT\n", "Selecionar", "Cancelar");
        return 1;
        }
      }
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid==SKINPOLICIA)
    {
          if(response==1)
           {
          if(listitem==0)
           {
               SetPlayerSkin(playerid,280);
         }
           else if(listitem==1)
           {
               SetPlayerSkin(playerid,265);
         }
           else if(listitem==2)
           {
               SetPlayerSkin(playerid,267);
          }
           else if(listitem==3)
           {
               SetPlayerSkin(playerid,266);
          }
           else if(listitem==4)
           {
               SetPlayerSkin(playerid,282);
          }
           else if(listitem==5)
           {
               SetPlayerSkin(playerid,283);
          }
           else if(listitem==6)
           {
               SetPlayerSkin(playerid,288);
          }
           else if(listitem==7)
           {
               SetPlayerSkin(playerid,281);
          }
           else if(listitem==8)
           {
               SetPlayerSkin(playerid,284);
          }
           else if(listitem==9)
           {
               SetPlayerSkin(playerid,165);
          }
           else if(listitem==10)
           {
               SetPlayerSkin(playerid,166);
          }
           else if(listitem==11)
           {
               SetPlayerSkin(playerid,192);
          }
           else if(listitem==12)
           {
               SetPlayerSkin(playerid,286);
          }
           else if(listitem==13)
           {
               SetPlayerSkin(playerid,285);
          }
       }
    }
    return 1;
}
Quem puder me ajudar, por favor !
Reply
#2

Alguйm por favor
Reply
#3

Tem que usar um sistema de salvamento
Reply
#4

Como assim?
Reply
#5

Ola, quall e o sistema de salvar e ler dados do player? Dini ? Y_ini ? outro ?
O que e' nessecario e que quando o player escolhe a skin salve os dados no player file, ou quando ele se disconnecta do servidor, tambem e' possivel que quando o player se liga ao servidor esteja uma funcao de setspawninfo, Posta o teu Callback Onplayerconnect por favor, e menciona o sistem de salvar ou ler dados,

Sugestao nao sei que gm estas a usar ou sistemas mas devias passar todos os comandos para ZCMD, strcmp e muito antigo lento e dificil de trabalhar..
Reply
#6

Existem vбrios sistemas de salvamento qual o seu ? Exemplos de sistemas: DOF2, Dini, y_ini.
Reply
#7

Qual o seu sitema de salvamento o_o ?
Reply
#8

Eu uso Dini, sobre os comandos, eu jб pensei em passar para ZCMD, e tem muitos comandos, e eu vou comeзar a passar eles de vagar, porque vai demorar muito, no comando do /skin, eu queria que salvasse a skin quando o player morrer/spawnar, e quando sair do servidor voltar ao primeiro skin, agora no /policiais eu queria que todas fez que o player usar e selecionar a skin, salvar diretamente, quando ele sair do servidor e entrar estiver a mesma selecionada.
Reply
#9

Tem um erro no primeiro cуdigo. Aqui:

pawn Код:
new SaveSkin[MAX_PLAYERS];

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if(strcmp(cmd, "/skin", true) == 0)
    {
        if(Stats[playerid][GANGID] > 0 && Stats[playerid][GANGID] < MIN_GANGS)
            {
                SendClientMessage(playerid, COLOR_VERMELHO, "Vocк estб em uma equipe especial e nгo pode usar este comando!");
                return 1;
            }
        new skin;
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, COLOR_VERDE, "Digite: /skin [id-do-skin]");
            return 1;
        }
        skin = strval(tmp);
        if(skin == 0 || skin == 74 || skin == 165 || skin == 166 || skin == 192 || skin == 265 || skin == 266 || skin == 267 || skin == 280 ||
        skin == 281 ||skin == 282 || skin == 283 ||skin == 284 || skin == 285 || skin == 286 || skin == 288)
        {
            SendClientMessage(playerid, COLOR_VERMELHO, "ID do skin invбlido!");
            return 1;
        } // |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
        if(skin < 1 || skin > 299) // Aqui estava como se a skin 0 pudesse ser selecionada.
        { // |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
            SendClientMessage(playerid, COLOR_VERMELHO, "ID do skin invбlido!");
            return 1;
        }
        SetPlayerSkin(playerid,skin);
        format(string, 100, "Skin %d setada com sucesso!", skin);
        SendClientMessage(playerid,COLOR_VERDE2, string);
        SaveSkin[playerid] = skin;
        return 1;
    }
Reply
#10

Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if (dialogid == SKINPOLICIA)
    {
        if (response == 1)
        {
            if (listitem == 0)
            {
                SetPlayerSkin(playerid, 280);
                SaveSkin[playerid] = 280;
            }
            else if (listitem == 1)
            {
                SetPlayerSkin(playerid, 265);
                SaveSkin[playerid] = 265;
            }
            else if (listitem == 2)
            {
                SetPlayerSkin(playerid, 267);
                SaveSkin[playerid] = 267;
            }
            else if (listitem == 3)
            {
                SetPlayerSkin(playerid, 266);
                SaveSkin[playerid] = 266;
            }
            else if (listitem == 4)
            {
                SetPlayerSkin(playerid, 282);
                SaveSkin[playerid] = 282;
            }
            else if (listitem == 5)
            {
                SetPlayerSkin(playerid, 283);
                SaveSkin[playerid] = 283;
            }
            else if (listitem == 6)
            {
                SetPlayerSkin(playerid, 288);
                SaveSkin[playerid] = 288;
            }
            else if (listitem == 7)
            {
                SetPlayerSkin(playerid, 281);
                SaveSkin[playerid] = 281;
            }
            else if (listitem == 8)
            {
                SetPlayerSkin(playerid, 284);
                SaveSkin[playerid] = 284;
            }
            else if (listitem == 9)
            {
                SetPlayerSkin(playerid, 165);
                SaveSkin[playerid] = 165;
            }
            else if (listitem == 10)
            {
                SetPlayerSkin(playerid, 166);
                SaveSkin[playerid] = 166;
            }
            else if (listitem == 11)
            {
                SetPlayerSkin(playerid, 192);
                SaveSkin[playerid] = 192;
            }
            else if (listitem == 12)
            {
                SetPlayerSkin(playerid, 286);
                SaveSkin[playerid] = 286;
            }
            else if (listitem == 13)
            {
                SetPlayerSkin(playerid, 285);
                SaveSkin[playerid] = 285;
            }
        }
    }
    return 1;
}
Seria isso aqui?

@Edit

Vocк tambйm poderia colocar no final do response
Код:
SaveSkin[playerid] = GetPlayerSkin(playerid);
.

Agora sobre o sistema de salvar a skin, tu vai ter que salvar com qualquer um dos sistemas de salvamentos citados a cima.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)