[Ajuda] Salvamento Facзгo 'DOF2'
#1

Boa noite.

Pouco sei no ramo de salvamento, e estou aprimorando esse conhecimento e estou com alguns problemas, duvidas. No meu GameMode que estou criando quando o player logo aparece uma dialog pra ele selecionar a facзгo, e gostaria de saber como eu faзo para que se o player jб estivesse selecionado a facзгo uma outra vez, ele nascesse. Carregar a facзгo do player e spawnar o mesmo. Irei postar parte do meu code.

OnPlayerRequesteClass.
PHP код:
public OnPlayerRequestClass(playeridclassid)
{
    
ShowPlayerDialog(playerid0DIALOG_STYLE_LIST"Selecione sua facзгo""\n\n\nRondas Ostensivas Tobias Aguiar - ROTA\nBatalhгo de Operaзхes Policiais Especiais - BOPE\nComando Vermelho - CV\nAmigo Dos Amigos - A.D.A""Selecionar""Sair");
    return 
true;

OnPlayerConnect
PHP код:
public OnPlayerConnect(playerid)
{
    new 
Arquivo[34], NomePlayer[MAX_PLAYER_NAME];
    
GetPlayerName(playeridNomePlayersizeof(NomePlayer));
    
format(Arquivosizeof(Arquivo), "Jogadores/%s"NomePlayer);
    
pDados[playerid][Organizacao] = DOF2_GetInt(Arquivo"Organizaзгo");
    
pDados[playerid][Cargo] = DOF2_GetInt(Arquivo"Cargo");
    
SpawnPlayer(playerid);
    return 
1;

OnPlayerDisconnect
PHP код:
public OnPlayerDisconnect(playeridreason)
{
    new 
Arquivo[34], NomePlayer[MAX_PLAYER_NAME];
    
GetPlayerName(playeridNomePlayersizeof(NomePlayer));
    
format(Arquivosizeof(Arquivo), "Jogadores/%s"NomePlayer);
    if(
DOF2_FileExists(Arquivo))
    {
        
DOF2_SetInt(Arquivo"Organizaзгo"pDados[playerid][Organizacao]); 
        
DOF2_SetInt(Arquivo"Cargo"pDados[playerid][Cargo]);
    }
    else
    {
        
DOF2_CreateFile(Arquivo);
        
DOF2_SetInt(Arquivo"Organizaзгo"pDados[playerid][Organizacao]);
        
DOF2_SetInt(Arquivo"Cargo"pDados[playerid][Cargo]);
    }
    return 
1;

OnPlayerSpawn
PHP код:
public OnPlayerSpawn(playerid)
{
    if(
pDados[playerid][Organizacao] == ROTA)
    {
        
SetPlayerHealth(playerid100);
        
SetPlayerArmour(playerid100);
        
SetPlayerInterior(playerid0);
        
ResetPlayerWeapons(playerid);
        
SetPlayerPos(playerid1509.7955, -1678.504014.0469);
        
SendClientMessage(playerid, -1"|INFO| Vocк logou na facзгo 'ROTA' ");
          
SetPlayerColor(playerid0x020018AA);
    }
    else if(
pDados[playerid][Organizacao] == BOPE)
    {
        
SetPlayerHealth(playerid100);
        
SetPlayerArmour(playerid100);
        
SetPlayerInterior(playerid0);
        
SetPlayerPos(playerid1038.2655, -1340.195713.7386);
        
SendClientMessage(playerid, -1"|INFO| Vocк logou na facзгo 'BOPE' ");
        
SetPlayerColor(playerid0x0014C8AA);
    }
    else if(
pDados[playerid][Organizacao] == CV)
    {
        
SetPlayerHealth(playerid100);
        
SetPlayerArmour(playerid100);
        
SetPlayerInterior(playerid0);
        
SetPlayerPos(playerid2232.0383, -1333.180823.9815);
        
SendClientMessage(playerid, -1"|INFO| Vocк logou na facзгo 'CV' ");
        
SetPlayerColor(playerid0xFF103FAA);
    }
    else if(
pDados[playerid][Organizacao] == ADA)
    {
        
SetPlayerHealth(playerid100);
        
SetPlayerArmour(playerid100);
        
SetPlayerInterior(playerid0);
        
SendClientMessage(playerid, -1"|INFO| Vocк logou na facзгo 'ADA' ");
        
SetPlayerPos(playerid2421.7336, -1220.708325.4663);
        
SetPlayerColor(playerid0x5061FFAA);
    }
    return 
1;

E como eu faзo para que quando o player selecionar a facзгo, salvar ?


Grato desde jб!
Reply
#2

Utilize OnPlayerRequestSpawn , ai tu seta a variбvel pro valor especifico '-'
Reply
#3

Mais tipo... Nгo ta salvando, eu entro seleciono minha facзгo, atй ai tudo bem. Quando eu entrar denovo pedi novamente pra selecionar a facзгo. E eu queria que eu selecionasse a facзгo apйnas uma vez, e quando eu selecionasse, salvasse, e quando eu logar carregar a facзгo e spawn, sem mostrar a dialog pra selecionar. Aonde eu to errando, o que tenho que fazer? o,o
Reply
#4

Apos setar os valores, vocк deve usar a sintaxe DOF2_SaveFile();

exemplo
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
    new Arquivo[34], NomePlayer[MAX_PLAYER_NAME];
    GetPlayerName(playerid, NomePlayer, sizeof(NomePlayer));
    format(Arquivo, sizeof(Arquivo), "Jogadores/%s", NomePlayer);
    if(DOF2_FileExists(Arquivo))
    {
        DOF2_SetInt(Arquivo, "Organizaзгo", pDados[playerid][Organizacao]);  
        DOF2_SetInt(Arquivo, "Cargo", pDados[playerid][Cargo]);
        DOF2_SaveFile();//aqui <<<<
    }
    else
    {
        DOF2_CreateFile(Arquivo);
        DOF2_SetInt(Arquivo, "Organizaзгo", pDados[playerid][Organizacao]);
        DOF2_SetInt(Arquivo, "Cargo", pDados[playerid][Cargo]);
        DOF2_SaveFile(); //aqui <<<
    }
    return 1;
}
Reply
#5

Coloquei e salvo certinho no arquivo, mais a dialog para selecionar a facзгo continua aparecendo. Como faзo pra ler o arquivo que salvou pegar as informaзхes da facзгo que selecionei e spawnar sem mostrar essa dialog, pois eu jб selecionei minha ORG.
Reply
#6

pawn Код:
public OnPlayerConnect(playerid)
{
    if(DOF2_FileExists(Arquivo))
    {
        new Arquivo[34], NomePlayer[MAX_PLAYER_NAME];
        GetPlayerName(playerid, NomePlayer, sizeof(NomePlayer));
        format(Arquivo, sizeof(Arquivo), "Jogadores/%s", NomePlayer);
        pDados[playerid][Organizacao] = DOF2_GetInt(Arquivo, "Organizaзгo");
        pDados[playerid][Cargo] = DOF2_GetInt(Arquivo, "Cargo");
        SpawnPlayer(playerid);
        return 1;
   }
   else
   {
       ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST, "Selecione sua facзгo", "\n\n\nRondas Ostensivas Tobias Aguiar - ROTA\nBatalhгo de Operaзхes Policiais Especiais - BOPE\nComando Vermelho - CV\nAmigo Dos Amigos - A.D.A", "Selecionar", "Sair");
   }
   return 1;
}
e remove a dialog da OnPlayerRequestClass
pawn Код:
public OnPlayerRequestClass(playerid, classid)
{

    return true;
}
Reply
#7

Mesma coisa, assim que eu conecto a dialog aparece D;'
Reply
#8

Vocк entro duas vezes ?
pela logica que eu fiz ali vai fazer o seguinte, vai verificar se a conta do player existe, se existir й porque ele jб tem a org, entгo nгo vai aparecer a dialog, caso ele nгo tenha a conta vai aparecer a dialog para ele escolher a org
Reply
#9

@edit

Bom, com base no teu code eu finalmente consegui, dei uma editada ele ficou assim.
PHP код:
public OnPlayerConnect(playerid)
{
    new 
Arquivo[34], NomePlayer[MAX_PLAYER_NAME];
    
GetPlayerName(playeridNomePlayersizeof(NomePlayer));
    
format(Arquivosizeof(Arquivo), "Contas/%s.txt"NomePlayer);
    if(
DOF2_FileExists(Arquivo))
    {
        
pDados[playerid][Organizacao] = DOF2_GetInt(Arquivo"Organizaзгo");
        
pDados[playerid][Cargo] = DOF2_GetInt(Arquivo"Cargo");
        
SpawnPlayer(playerid);
        return 
1;
    }
    else
    {
        
ShowPlayerDialog(playerid0DIALOG_STYLE_LIST"Selecione sua facзгo""\n\n\nRondas Ostensivas Tobias Aguiar - ROTA\nBatalhгo de Operaзхes Policiais Especiais - BOPE\nComando Vermelho - CV\nAmigo Dos Amigos - A.D.A""Selecionar""Sair");
      }
    return 
1;

+REP, valeu mesmo cara.. :]
Reply
#10

Quote:
Originally Posted by DiiMeNoR
Посмотреть сообщение
@edit

Bom, com base no teu code eu finalmente consegui, dei uma editada ele ficou assim.
PHP код:
public OnPlayerConnect(playerid)
{
    new 
Arquivo[34], NomePlayer[MAX_PLAYER_NAME];
    
GetPlayerName(playeridNomePlayersizeof(NomePlayer));
    
format(Arquivosizeof(Arquivo), "Contas/%s.txt"NomePlayer);
    if(
DOF2_FileExists(Arquivo))
    {
        
pDados[playerid][Organizacao] = DOF2_GetInt(Arquivo"Organizaзгo");
        
pDados[playerid][Cargo] = DOF2_GetInt(Arquivo"Cargo");
        
SpawnPlayer(playerid);
        return 
1;
    }
    else
    {
        
ShowPlayerDialog(playerid0DIALOG_STYLE_LIST"Selecione sua facзгo""\n\n\nRondas Ostensivas Tobias Aguiar - ROTA\nBatalhгo de Operaзхes Policiais Especiais - BOPE\nComando Vermelho - CV\nAmigo Dos Amigos - A.D.A""Selecionar""Sair");
      }
    return 
1;

+REP, valeu mesmo cara.. :]
vlw mano, eu que mosquei esqueci de ver a formataзгo em cima da conta do player, eu fiz de forma errada a logica, й pq to acostumado com formataзгo em stock, ai confundi as paradas, kkk foi erro meu mesmo, desculpa
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)