SA-MP Forums Archive
[Ajuda] Criaзгo de conta sem nome - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Criaзгo de conta sem nome (/showthread.php?tid=423318)



Criaзгo de conta sem nome - Don_Speed - 17.03.2013

Bom ele cria as contas normais , mas se eu desligo o servidor cria uma conta sem nome.
Meu medo e que com 50 on ele crie 50 contas sem nome .

pawn Код:
public OnGameModeExit()
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
          PlayerInfo[i][pSkin] = GetPlayerSkin(i);
         
          PlayerInfo[i][pInt] = GetPlayerInterior(i);
         
          GetPlayerPos(i, Pos[0], Pos[1], Pos[2]);
         
          PlayerInfo[i][PosX] = Pos[0];
          PlayerInfo[i][PosY] = Pos[1];
          PlayerInfo[i][PosZ] = Pos[2];
         
          format(arquivo, sizeof arquivo, FILE, Nome(i));
          DOF2_SetInt(arquivo, "Grana", PlayerInfo[i][pGrana]);
          DOF2_SetInt(arquivo, "Administrador", PlayerInfo[i][pAdmin]);
          DOF2_SetInt(arquivo, "Reputacao", PlayerInfo[i][pRep]);
          DOF2_SetInt(arquivo, "Skin", PlayerInfo[i][pSkin]);
          DOF2_SetFloat(arquivo,"PosicaoX", PlayerInfo[i][PosX]);
          DOF2_SetFloat(arquivo,"PosicaoY", PlayerInfo[i][PosY]);
          DOF2_SetFloat(arquivo,"PosicaoZ", PlayerInfo[i][PosZ]);
          DOF2_SetFloat(arquivo,"Interior", PlayerInfo[i][pInt]);
          DOF2_SetInt(arquivo, "Emprego", PlayerInfo[i][pEmp]);
          DOF2_SaveFile();
    }
    DOF2_Exit();
    return 1;
}



Re: Criaзгo de conta sem nome - Kuddy - 17.03.2013

Opзгo 1:
pawn Код:
public OnGameModeExit()
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
          if(!IsPlayerConnected(i)) continue;
          PlayerInfo[i][pSkin] = GetPlayerSkin(i);
         
          PlayerInfo[i][pInt] = GetPlayerInterior(i);
         
          GetPlayerPos(i, Pos[0], Pos[1], Pos[2]);
         
          PlayerInfo[i][PosX] = Pos[0];
          PlayerInfo[i][PosY] = Pos[1];
          PlayerInfo[i][PosZ] = Pos[2];
         
          format(arquivo, sizeof arquivo, FILE, Nome(i));
          DOF2_SetInt(arquivo, "Grana", PlayerInfo[i][pGrana]);
          DOF2_SetInt(arquivo, "Administrador", PlayerInfo[i][pAdmin]);
          DOF2_SetInt(arquivo, "Reputacao", PlayerInfo[i][pRep]);
          DOF2_SetInt(arquivo, "Skin", PlayerInfo[i][pSkin]);
          DOF2_SetFloat(arquivo,"PosicaoX", PlayerInfo[i][PosX]);
          DOF2_SetFloat(arquivo,"PosicaoY", PlayerInfo[i][PosY]);
          DOF2_SetFloat(arquivo,"PosicaoZ", PlayerInfo[i][PosZ]);
          DOF2_SetFloat(arquivo,"Interior", PlayerInfo[i][pInt]);
          DOF2_SetInt(arquivo, "Emprego", PlayerInfo[i][pEmp]);
          DOF2_SaveFile();
    }
    DOF2_Exit();
    return 1;
}
Opзгo 2:
pawn Код:
public OnGameModeExit()
{
    foreach(Player, i)
    {
          PlayerInfo[i][pSkin] = GetPlayerSkin(i);
         
          PlayerInfo[i][pInt] = GetPlayerInterior(i);
         
          GetPlayerPos(i, Pos[0], Pos[1], Pos[2]);
         
          PlayerInfo[i][PosX] = Pos[0];
          PlayerInfo[i][PosY] = Pos[1];
          PlayerInfo[i][PosZ] = Pos[2];
         
          format(arquivo, sizeof arquivo, FILE, Nome(i));
          DOF2_SetInt(arquivo, "Grana", PlayerInfo[i][pGrana]);
          DOF2_SetInt(arquivo, "Administrador", PlayerInfo[i][pAdmin]);
          DOF2_SetInt(arquivo, "Reputacao", PlayerInfo[i][pRep]);
          DOF2_SetInt(arquivo, "Skin", PlayerInfo[i][pSkin]);
          DOF2_SetFloat(arquivo,"PosicaoX", PlayerInfo[i][PosX]);
          DOF2_SetFloat(arquivo,"PosicaoY", PlayerInfo[i][PosY]);
          DOF2_SetFloat(arquivo,"PosicaoZ", PlayerInfo[i][PosZ]);
          DOF2_SetFloat(arquivo,"Interior", PlayerInfo[i][pInt]);
          DOF2_SetInt(arquivo, "Emprego", PlayerInfo[i][pEmp]);
          DOF2_SaveFile();
    }
    DOF2_Exit();
    return 1;
}



Re: Criaзгo de conta sem nome - Don_Speed - 17.03.2013

Quote:
Originally Posted by Kuddy
Посмотреть сообщение
Opзгo 1:
pawn Код:
public OnGameModeExit()
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
          if(!IsPlayerConnected(i)) continue;
          PlayerInfo[i][pSkin] = GetPlayerSkin(i);
         
          PlayerInfo[i][pInt] = GetPlayerInterior(i);
         
          GetPlayerPos(i, Pos[0], Pos[1], Pos[2]);
         
          PlayerInfo[i][PosX] = Pos[0];
          PlayerInfo[i][PosY] = Pos[1];
          PlayerInfo[i][PosZ] = Pos[2];
         
          format(arquivo, sizeof arquivo, FILE, Nome(i));
          DOF2_SetInt(arquivo, "Grana", PlayerInfo[i][pGrana]);
          DOF2_SetInt(arquivo, "Administrador", PlayerInfo[i][pAdmin]);
          DOF2_SetInt(arquivo, "Reputacao", PlayerInfo[i][pRep]);
          DOF2_SetInt(arquivo, "Skin", PlayerInfo[i][pSkin]);
          DOF2_SetFloat(arquivo,"PosicaoX", PlayerInfo[i][PosX]);
          DOF2_SetFloat(arquivo,"PosicaoY", PlayerInfo[i][PosY]);
          DOF2_SetFloat(arquivo,"PosicaoZ", PlayerInfo[i][PosZ]);
          DOF2_SetFloat(arquivo,"Interior", PlayerInfo[i][pInt]);
          DOF2_SetInt(arquivo, "Emprego", PlayerInfo[i][pEmp]);
          DOF2_SaveFile();
    }
    DOF2_Exit();
    return 1;
}
Opзгo 2:
pawn Код:
public OnGameModeExit()
{
    foreach(Player, i)
    {
          PlayerInfo[i][pSkin] = GetPlayerSkin(i);
         
          PlayerInfo[i][pInt] = GetPlayerInterior(i);
         
          GetPlayerPos(i, Pos[0], Pos[1], Pos[2]);
         
          PlayerInfo[i][PosX] = Pos[0];
          PlayerInfo[i][PosY] = Pos[1];
          PlayerInfo[i][PosZ] = Pos[2];
         
          format(arquivo, sizeof arquivo, FILE, Nome(i));
          DOF2_SetInt(arquivo, "Grana", PlayerInfo[i][pGrana]);
          DOF2_SetInt(arquivo, "Administrador", PlayerInfo[i][pAdmin]);
          DOF2_SetInt(arquivo, "Reputacao", PlayerInfo[i][pRep]);
          DOF2_SetInt(arquivo, "Skin", PlayerInfo[i][pSkin]);
          DOF2_SetFloat(arquivo,"PosicaoX", PlayerInfo[i][PosX]);
          DOF2_SetFloat(arquivo,"PosicaoY", PlayerInfo[i][PosY]);
          DOF2_SetFloat(arquivo,"PosicaoZ", PlayerInfo[i][PosZ]);
          DOF2_SetFloat(arquivo,"Interior", PlayerInfo[i][pInt]);
          DOF2_SetInt(arquivo, "Emprego", PlayerInfo[i][pEmp]);
          DOF2_SaveFile();
    }
    DOF2_Exit();
    return 1;
}

Resolvido .

So falto o IsPlayerConnected!



Re: Criaзгo de conta sem nome - Delete_ - 17.03.2013

Quote:

public OnGameModeExit()
{
foreach(Player, i)
{
PlayerInfo[i][pSkin] = GetPlayerSkin(i);

PlayerInfo[i][pInt] = GetPlayerInterior(i);

GetPlayerPos(i, Pos[0], Pos[1], Pos[2]);

PlayerInfo[i][PosX] = Pos[0];
PlayerInfo[i][PosY] = Pos[1];
PlayerInfo[i][PosZ] = Pos[2];

format(arquivo, sizeof arquivo, FILE, Nome(i));
DOF2_SetInt(arquivo, "Grana", PlayerInfo[i][pGrana]);
DOF2_SetInt(arquivo, "Administrador", PlayerInfo[i][pAdmin]);
DOF2_SetInt(arquivo, "Reputacao", PlayerInfo[i][pRep]);
DOF2_SetInt(arquivo, "Skin", PlayerInfo[i][pSkin]);
DOF2_SetFloat(arquivo,"PosicaoX", PlayerInfo[i][PosX]);
DOF2_SetFloat(arquivo,"PosicaoY", PlayerInfo[i][PosY]);
DOF2_SetFloat(arquivo,"PosicaoZ", PlayerInfo[i][PosZ]);
DOF2_SetFloat(arquivo,"Interior", PlayerInfo[i][pInt]);
DOF2_SetInt(arquivo, "Emprego", PlayerInfo[i][pEmp]);
DOF2_SaveFile();
}
DOF2_Exit();
return 1;
}

Foreach й muito fail, nгo recomendo.


Re: Criaзгo de conta sem nome - Kuddy - 17.03.2013

Quote:
Originally Posted by delete
Посмотреть сообщение
Foreach й muito fail, nгo recomendo.
Da onde tirou isso? Ele tem a mesma eficacia que um for com um IsPlayerConnected, sу que й muito mais rбpido ^^'

@edit

Quote:
Originally Posted by delete
Посмотреть сообщение
Cara quando eu usava foreach e tinha uns 50 players online o loop nгo passava por todos, sempre falhava, fiquei tгo puto que passei a usar o modo simples.
Vocк provavelmente tinha algum crash nas funзхes, como eu. Meu foreach sempre parava na metade, atй eu descobrir que meus erros estava nos meus codes..


Re: Criaзгo de conta sem nome - Dwayne-Pheonix - 17.03.2013

Tambйm poderia ser usado uma verificaзгo se o arquivo jб exista

pawn Код:
format(arquivo, sizeof arquivo, FILE, Nome(i));
if(fexist(arquivo)) {



Re: Criaзгo de conta sem nome - paulor - 17.03.2013

Quote:
Originally Posted by Dwayne-Pheonix
Посмотреть сообщение
Tambйm poderia ser usado uma verificaзгo se o arquivo jб exista

pawn Код:
format(arquivo, sizeof arquivo, FILE, Nome(i));
if(fexist(arquivo)) {
Para que executar Duas funзхes se pode-se executar somente Uma ?


Re: Criaзгo de conta sem nome - Dwayne-Pheonix - 17.03.2013

Quote:
Originally Posted by Don_Speed
Посмотреть сообщение
Meu medo e que com 50 on ele crie 50 contas sem nome
Usando a bela logica, o jogador pode estar apenas conectado, mas nгo registrado logo a segunda verificaзгo й mais eficaz


Re: Criaзгo de conta sem nome - paulor - 17.03.2013

Quote:
Originally Posted by Dwayne-Pheonix
Посмотреть сообщение
Usando a bela logica, o jogador pode estar apenas conectado, mas nгo registrado logo a segunda verificaзгo й mais eficaz
Isso jб depende o sistema de contas dele..


Re: Criaзгo de conta sem nome - Dwayne-Pheonix - 17.03.2013

Considerando a possibilidade do sistema funcionar assim, acho que й uma das formas mais eficazes de se resolver o que ele pediu