[Ajuda] Criaзгo de conta sem nome
#1

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;
}
Reply
#2

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;
}
Reply
#3

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!
Reply
#4

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.
Reply
#5

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..
Reply
#6

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

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

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 ?
Reply
#8

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
Reply
#9

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..
Reply
#10

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


Forum Jump:


Users browsing this thread: 1 Guest(s)