Portal SAMP
[Ajuda] Armas - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Armas (/showthread.php?tid=4643)

Páginas: 1 2 3


RE: Armas - Ryzen_ - 22/03/2024

(22/03/2024 15:15)escobarzinhu Escreveu:
(22/03/2024 15:06)Ryzen_ Escreveu:
(22/03/2024 15:01)escobarzinhu Escreveu: eu adaptei pra minha gm, mas ta dando 4 erros,
error 028: invalid subscript (not an array or too many subscripts): "Info"
warning 215: expression has no effect
error 001: expected token: ";", but found "]"
error 029: invalid expression, assumed zero
fatal error 107: too many error messages on one line
consegue ajudar?

Consegue enviar as respectivas linhas que estão causando o erro? (Não lembro se o pawno mostra quais são. Atualmente utilizo o VSCODE, o qual recomendo)

ta tudo nessa linha  
Info[playerid][pColete] = GetPlayerArmour(playerid, armour);


o codigo completo 

  new Float:health, Float:armour;

    Info[playerid][pColete] = GetPlayerArmour(playerid, armour);
    Info[playerid][pVida] = GetPlayerHealth(playerid, health);
    SaveAccount(playerid);

Você criou a variável global Info[MAX_PLAYERS]["enum usado para salvar os dados"]; ?

(22/03/2024 16:48)Ryzen_ Escreveu:
(22/03/2024 15:15)escobarzinhu Escreveu:
(22/03/2024 15:06)Ryzen_ Escreveu:
(22/03/2024 15:01)escobarzinhu Escreveu: eu adaptei pra minha gm, mas ta dando 4 erros,
error 028: invalid subscript (not an array or too many subscripts): "Info"
warning 215: expression has no effect
error 001: expected token: ";", but found "]"
error 029: invalid expression, assumed zero
fatal error 107: too many error messages on one line
consegue ajudar?

Consegue enviar as respectivas linhas que estão causando o erro? (Não lembro se o pawno mostra quais são. Atualmente utilizo o VSCODE, o qual recomendo)

ta tudo nessa linha  
Info[playerid][pColete] = GetPlayerArmour(playerid, armour);


o codigo completo 

  new Float:health, Float:armour;

    Info[playerid][pColete] = GetPlayerArmour(playerid, armour);
    Info[playerid][pVida] = GetPlayerHealth(playerid, health);
    SaveAccount(playerid);

Você criou a variável global Info[MAX_PLAYERS]["enum usado para salvar os dados"]; ? Se sim, me envie o código da mesma.



RE: Armas - escobarzinhu - 22/03/2024

enum Info {
Float:pColete,
pVida
}

// Variável para armazenar diferentes valores referentes ao jogador
new Jog[MAX_PLAYERS][Info];
essa?

aaaa é pra por a variavel nao a enum kkkkkkk, deu certo aq


RE: Armas - xbruno1000x - 22/03/2024

Você está usando Info[playerid][pColete]. Porém a sua variável é Jog e não Info.

Deveria ser:
Jog[playerid][pColete]
Jog[playerid][pVida]


RE: Armas - escobarzinhu - 22/03/2024

a vida nao ta setando certo, ja troquei de GetInt pra GetFloat mas nao deu em nada, ta setando sempre a vida 100, consegue me ajudar?


RE: Armas - Ryzen_ - 22/03/2024

(22/03/2024 19:13)escobarzinhu Escreveu: a vida nao ta setando certo, ja troquei de GetInt pra GetFloat mas nao deu em nada, ta setando sempre a vida 100, consegue me ajudar?

Utilize o DOF2_GetFloat, e o DOF2_SetFloat. Eu acabei errando na primeira vez que coloquei a resposta, mas já corrigi o mesmo lá.


RE: Armas - escobarzinhu - 22/03/2024

(22/03/2024 21:29)Ryzen_ Escreveu:
(22/03/2024 19:13)escobarzinhu Escreveu: a vida nao ta setando certo, ja troquei de GetInt pra GetFloat mas nao deu em nada, ta setando sempre a vida 100, consegue me ajudar?

Utilize o DOF2_GetFloat, e o DOF2_SetFloat. Eu acabei errando na primeira vez que coloquei a resposta, mas já corrigi o mesmo lá.

stock SaveAccount(playerid) {
    format(Filed, sizeof(Filed), PASTA_CONTAS, GetPlayerNameEx(playerid));
  DOF2_SetFloat(Filed, "Vida", Jog[playerid][pVida]);
    DOF2_SetFloat(Filed, "Colete", Jog[playerid][pColete]);

    DOF2_SaveFile();

    return 1;
}

// Função responsável por fazer o carregamento nos dados do player
stock LoadAccount(playerid) {
    format(Filed, sizeof(Filed), PASTA_CONTAS, GetPlayerNameEx(playerid));

  Jog[playerid][pVida] = DOF2_GetFloat(Filed, "Vida");
  Jog[playerid][pColete] = DOF2_GetFloat(Filed, "Colete");
    SetPlayerHealth(playerid, Jog[playerid][pVida]);
SetPlayerArmour(playerid, Jog[playerid][pColete]);
    return 1;
}


assim?


RE: Armas - Ryzen_ - 23/03/2024

(22/03/2024 23:54)escobarzinhu Escreveu:
(22/03/2024 21:29)Ryzen_ Escreveu:
(22/03/2024 19:13)escobarzinhu Escreveu: a vida nao ta setando certo, ja troquei de GetInt pra GetFloat mas nao deu em nada, ta setando sempre a vida 100, consegue me ajudar?

Utilize o DOF2_GetFloat, e o DOF2_SetFloat. Eu acabei errando na primeira vez que coloquei a resposta, mas já corrigi o mesmo lá.

stock SaveAccount(playerid) {
    format(Filed, sizeof(Filed), PASTA_CONTAS, GetPlayerNameEx(playerid));
  DOF2_SetFloat(Filed, "Vida", Jog[playerid][pVida]);
    DOF2_SetFloat(Filed, "Colete", Jog[playerid][pColete]);

    DOF2_SaveFile();

    return 1;
}

// Função responsável por fazer o carregamento nos dados do player
stock LoadAccount(playerid) {
    format(Filed, sizeof(Filed), PASTA_CONTAS, GetPlayerNameEx(playerid));

  Jog[playerid][pVida] = DOF2_GetFloat(Filed, "Vida");
  Jog[playerid][pColete] = DOF2_GetFloat(Filed, "Colete");
    SetPlayerHealth(playerid, Jog[playerid][pVida]);
SetPlayerArmour(playerid, Jog[playerid][pColete]);
    return 1;
}


assim?

Sim, está correto. Você verificou se ele está criando a conta corretamente? Verifica também nos arquivos de contas criadas, se lá tá recebendo os valores certinhos. Adicionou ambas as stocks no OnPlayerConnect e OnPlayerDisconnect?


RE: Armas - escobarzinhu - 23/03/2024

(23/03/2024 03:41)Ryzen_ Escreveu:
(22/03/2024 23:54)escobarzinhu Escreveu:
(22/03/2024 21:29)Ryzen_ Escreveu:
(22/03/2024 19:13)escobarzinhu Escreveu: a vida nao ta setando certo, ja troquei de GetInt pra GetFloat mas nao deu em nada, ta setando sempre a vida 100, consegue me ajudar?

Utilize o DOF2_GetFloat, e o DOF2_SetFloat. Eu acabei errando na primeira vez que coloquei a resposta, mas já corrigi o mesmo lá.

stock SaveAccount(playerid) {
    format(Filed, sizeof(Filed), PASTA_CONTAS, GetPlayerNameEx(playerid));
  DOF2_SetFloat(Filed, "Vida", Jog[playerid][pVida]);
    DOF2_SetFloat(Filed, "Colete", Jog[playerid][pColete]);

    DOF2_SaveFile();

    return 1;
}

// Função responsável por fazer o carregamento nos dados do player
stock LoadAccount(playerid) {
    format(Filed, sizeof(Filed), PASTA_CONTAS, GetPlayerNameEx(playerid));

  Jog[playerid][pVida] = DOF2_GetFloat(Filed, "Vida");
  Jog[playerid][pColete] = DOF2_GetFloat(Filed, "Colete");
    SetPlayerHealth(playerid, Jog[playerid][pVida]);
SetPlayerArmour(playerid, Jog[playerid][pColete]);
    return 1;
}


assim?

Sim, está correto. Você verificou se ele está criando a conta corretamente? Verifica também nos arquivos de contas criadas, se lá tá recebendo os valores certinhos. Adicionou ambas as stocks no OnPlayerConnect e OnPlayerDisconnect?
adicionei na onplayer connect e disconnect, sobre a pasta contas sempre ta indo 100.000 de vida, o colete vai corretamente quando o player desloga


RE: Armas - escobarzinhu - 23/03/2024

dai acho q é algo pra salvar/carregar vida


RE: Armas - Ryzen_ - 23/03/2024

Bom, se o valor está sendo passado para o arquivo da conta, então está tudo ok. Quando você entra no servidor, a vida está sendo setada para o player corretamente? O 100.000 é correto, isso é devido a ser um valor decimal.