[Ajuda] array sizes do not match (DOF2)
#1

Estou me irritando com esse erro, nгo sei mais o que fazer, por que esse erro persiste em mostrar? Falta de conhecimento.


Код:
C:\Users\User\Desktop\San Andreas Multiplayer\gamemode RP\gamemodes\gamemode2.pwn(284) : error 047: array sizes do not match, or destination array is too small
C:\Users\User\Desktop\San Andreas Multiplayer\gamemode RP\gamemodes\gamemode2.pwn(286) : error 047: array sizes do not match, or destination array is too small
C:\Users\User\Desktop\San Andreas Multiplayer\gamemode RP\gamemodes\gamemode2.pwn(287) : error 047: array sizes do not match, or destination array is too small
C:\Users\User\Desktop\San Andreas Multiplayer\gamemode RP\gamemodes\gamemode2.pwn(288) : error 047: array sizes do not match, or destination array is too small
C:\Users\User\Desktop\San Andreas Multiplayer\gamemode RP\gamemodes\gamemode2.pwn(289) : error 047: array sizes do not match, or destination array is too small
C:\Users\User\Desktop\San Andreas Multiplayer\gamemode RP\gamemodes\gamemode2.pwn(294) : error 047: array sizes do not match, or destination array is too small
PHP код:
 stock SpawnPersonagem(playeridid)
{
    new
        
nome[MAX_PLAYERS],
        
arquivo[74],
        
arquivo2[74];
            
    for(new 
09i++) PlayerTextDrawHide(playeridpTextDraw[i]);
    
TextDrawHideForPlayer(playeridTextDrawWorldReality);
    
TextDrawHideForPlayer(playeridTextdrawRoleplay);
    if(
id == 1SetPlayerName(playeridAccount[playerid][pPersonagem1]);
    if(
id == 2SetPlayerName(playeridAccount[playerid][pPersonagem2]);
    if(
id == 3SetPlayerName(playeridAccount[playerid][pPersonagem3]);
    
CancelSelectTextDraw(playerid);
    
SetPlayerColor(playerid, -1);
    
SpawnPlayer(playerid);
    
    
//Conta de Usuбrio
    
format(arquivosizeof(arquivo), "/Contas de Usuбrios/%s.ini"PlayerData[playerid][pConta]);
    
Account[playerid][pSenha] = DOF2_GetString(arquivo"Senha"); //Error 284
    
Account[playerid][pAdmin] = DOF2_GetInt(arquivo"Admin");
    
Account[playerid][pPersonagem1] = DOF2_GetString(arquivo"Personagem1"); //Error 286
    
Account[playerid][pPersonagem2] = DOF2_GetString(arquivo"Personagem2"); //Error 287
    
Account[playerid][pPersonagem3] = DOF2_GetString(arquivo"Personagem3"); //Error 288
    
Account[playerid][pEmail] = DOF2_GetString(arquivo"Email"); //Error 289
    //Conta de Personagem
    
GetPlayerName(playeridnomesizeof(nome));
    
format(arquivo2sizeof(arquivo2), "/Personagens/%s.ini"nome);
    
PlayerData[playerid][pConta] = DOF2_GetString(arquivo2"Conta"); //Error 294
    
PlayerData[playerid][pNivel] = DOF2_GetInt(arquivo2"Nivel");
    
PlayerData[playerid][pTutorial] = DOF2_GetInt(arquivo2"Tutorial");
    return 
1;

Reply
#2

Troca esse DOF2::GetString й substitui por DOF2::GetInt

Quote:

DOF2::GetString
Retorna string obtida de uma "key" no arquivo.
Parвmetros
file[] - Arquivo a obter string.
key[] - Key para obter a string.
tag="" - Seзгo para buscar a "key".

Quote:

DOF2::GetInt
Retorna o valor inteiro obtido de uma "key" no arquivo.
Parвmetros
file[] - Arquivo a obter o valor inteiro.
key[] - Key para obter o valor inteiro.
tag="" - Seзгo para buscar a "key".

https://sampforum.blast.hk/showthread.php?tid=585807
Reply
#3

Mais ae nгo carrega certo.

Quote:

[22:27:42] Senha: Admin: 48
[22:27:42] Personagem 1: 0 Personagem 2: 0 Personagem 3: 0
[22:27:42] Conta: 0 Nнvel: 49 Tutorial: 48
[22:27:42] Email: 0

Era para mostrar o email, e esse 49 e 48 tб errado tambйm af
Reply
#4

Coloque [quantidade de caracteres] por exemplo pSenha[50]
PHP код:
enum pInfo {
    
pPersonagem1[50],
    
pPersonagem2[50],
    
pPersonagem3[50],
    
pSenha[50],
    
pEmail[50]
}; 
Reply
#5

Nгo adiantou Madruga, o erro continua. "Choros" UP! aqui й o meu ъnico suporte!
Reply
#6

Altere "sizeEnumArrayAnterior" pelo tamanho da array (de dentro do enum) anterior а vнrgula, no caso do cуdigo do Madruga, por exemplo, seriam todos 50 (pSenha[50], pEmail[50]).
Код:
stock SpawnPersonagem(playerid, id)
{
    new
        nome[MAX_PLAYERS],
        arquivo[74],
        arquivo2[74];

    for(new i = 0; i < 9; i++) PlayerTextDrawHide(playerid, pTextDraw[i]);
    TextDrawHideForPlayer(playerid, TextDrawWorldReality);
    TextDrawHideForPlayer(playerid, TextdrawRoleplay);

    if(id == 1) SetPlayerName(playerid, Account[playerid][pPersonagem1]);
    if(id == 2) SetPlayerName(playerid, Account[playerid][pPersonagem2]);
    if(id == 3) SetPlayerName(playerid, Account[playerid][pPersonagem3]);

    CancelSelectTextDraw(playerid);
    SetPlayerColor(playerid, -1);
    SpawnPlayer(playerid);

    //Conta de Usuбrio
    format(arquivo, sizeof(arquivo), "/Contas de Usuбrios/%s.ini", PlayerData[playerid][pConta]);
    format(Account[playerid][pSenha], sizeEnumArrayAnterior, DOF2_GetString(arquivo, "Senha"));
    format(Account[playerid][pAdmin], sizeEnumArrayAnterior, DOF2_GetString(arquivo, "Admin"));
    format(Account[playerid][pPersonagem1], sizeEnumArrayAnterior, DOF2_GetString(arquivo, "Personagem1"));
    format(Account[playerid][pPersonagem2], sizeEnumArrayAnterior, DOF2_GetString(arquivo, "Personagem2"));
    format(Account[playerid][pPersonagem3], sizeEnumArrayAnterior, DOF2_GetString(arquivo, "Personagem3"));
    format(Account[playerid][pEmail], sizeEnumArrayAnterior, DOF2_GetString(arquivo, "Email"));

    //Conta de Personagem
    GetPlayerName(playerid, nome, sizeof(nome));
    format(arquivo2, sizeof(arquivo2), "/Personagens/%s.ini", nome);
    format(Account[playerid][pConta], sizeEnumArrayAnterior, DOF2_GetString(arquivo, "Conta"));
    PlayerData[playerid][pNivel] = DOF2_GetInt(arquivo2, "Nivel");
    PlayerData[playerid][pTutorial] = DOF2_GetInt(arquivo2, "Tutorial");
    return 1;
}
Reply
#7

Nгo adiantou certo? apareceu algum erro ou alguma coisa que elabore que nгo funcionou?
Me mostre Como vocк estб salvando essa бrea do Personagem1 etc... ?
Reply
#8

Percebi um erro no seu cуdigo

PlayerData[playerid][pConta] estб sendo chamado antes de receber um valor
//Conta de Usuбrio
format(arquivo, sizeof(arquivo), "/Contas de Usuбrios/%s.ini", PlayerData[playerid][pConta]);
Account[playerid][pSenha] = DOF2_GetString(arquivo, "Senha"); //Error 284
Account[playerid][pAdmin] = DOF2_GetInt(arquivo, "Admin");
Account[playerid][pPersonagem1] = DOF2_GetString(arquivo, "Personagem1"); //Error 286
Account[playerid][pPersonagem2] = DOF2_GetString(arquivo, "Personagem2"); //Error 287
Account[playerid][pPersonagem3] = DOF2_GetString(arquivo, "Personagem3"); //Error 288
Account[playerid][pEmail] = DOF2_GetString(arquivo, "Email"); //Error 289

Setando a conta na variбvel pConta.
//Conta de Personagem
GetPlayerName(playerid, nome, sizeof(nome));
format(arquivo2, sizeof(arquivo2), "/Personagens/%s.ini", nome);
PlayerData[playerid][pConta] = DOF2_GetString(arquivo2, "Conta"); //Error 294
PlayerData[playerid][pNivel] = DOF2_GetInt(arquivo2, "Nivel");
PlayerData[playerid][pTutorial] = DOF2_GetInt(arquivo2, "Tutorial");
Reply
#9

Quote:
Originally Posted by [BOPE]Seu._.Madruga
Посмотреть сообщение
Percebi um erro no seu cуdigo

PlayerData[playerid][pConta] estб sendo chamado antes de receber um valor
//Conta de Usuбrio
format(arquivo, sizeof(arquivo), "/Contas de Usuбrios/%s.ini", PlayerData[playerid][pConta]);
Account[playerid][pSenha] = DOF2_GetString(arquivo, "Senha"); //Error 284
Account[playerid][pAdmin] = DOF2_GetInt(arquivo, "Admin");
Account[playerid][pPersonagem1] = DOF2_GetString(arquivo, "Personagem1"); //Error 286
Account[playerid][pPersonagem2] = DOF2_GetString(arquivo, "Personagem2"); //Error 287
Account[playerid][pPersonagem3] = DOF2_GetString(arquivo, "Personagem3"); //Error 288
Account[playerid][pEmail] = DOF2_GetString(arquivo, "Email"); //Error 289

Setando a conta na variбvel pConta.
//Conta de Personagem
GetPlayerName(playerid, nome, sizeof(nome));
format(arquivo2, sizeof(arquivo2), "/Personagens/%s.ini", nome);
PlayerData[playerid][pConta] = DOF2_GetString(arquivo2, "Conta"); //Error 294
PlayerData[playerid][pNivel] = DOF2_GetInt(arquivo2, "Nivel");
PlayerData[playerid][pTutorial] = DOF2_GetInt(arquivo2, "Tutorial");
Isso mesmo cara, no onplayerconect temos a variбvel;

PHP код:
format(PlayerData[playerid][pConta], 60nome); 
que defini o pConta para o nome, e uma outra funзгo que й chamada tambйm para salvar nos arquivos o nome pConta, acho que devo apenas retirar a parte do cуdigo, valeu, resolvido, tуpico closed!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)