Portal SAMP
[Ajuda] Problema com stock - 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] Problema com stock (/showthread.php?tid=3769)



Problema com stock - Usuário Aleatório - 10/07/2023

Estou começando a fazer os sistema de anims através de comandos,e estou encapsulando o code usando uma stock pra n precisar repetilo em todas as anims pra me poupar muito mais tempo:
Código PHP:
stock AbleToDoAnims(playerid)
{
    if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0x000000FF,"|Erro|Você não pode fazer animações estando dentro de um veículo.");


E o código base pras anims tá ficando assim:
Código PHP:
CMD:mijar(playerid){
SetPlayerSpecialAction(playerid68);
if(
AbleToDoAnims(playerid); == 1) return 1;
return 
1;} 

O problema é q tá dando esses erros aqui e eu não sei como resolver eles:
Código PHP:
C:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(5) : error 017undefined symbol "IsPlayerInAnyVehicle"
C:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(5) : warning 215expression has no effect
C
:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(5) : error 001expected token";"but found ")"
C:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(5) : error 029invalid expressionassumed zero
C
:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(5) : fatal error 107too many error messages on one line 

Sou iniciante no SAMP por isso n sei mt bem como usar a stock,tou fazendo algo de errado tipo falta alguma coisa no code?Me falem aí oq tou fazendo d errado,desde já agradeço.


RE: Problema com stock - White_Blue - 10/07/2023

1° problema: Você não está retornando nenhum valor na função e mesmo assim está verificando se a função retornou 1
2° problema: No snippet de código que você compartilhou você está usando o ";" incorretamente, em verificações não se usa o ponto e vírgula "AbleToDoAnims(playerid); == 1"

Código corrigido:
Código PHP:
stock AbleToDoAnims(playerid) {
       if(
IsPlayerInAnyVehicle(playerid)) return 1// Se o jogador estiver dentro de um veículo retorna 1
       
return 0// Retorna 0 por padrão
}

CMD:teste(playerid) {
     if(
AbleToDoAnims(playerid) == 1) return SendClientMessage(playerid, -1"Você está dentro de um veículo");
     else if(
AbleToDoAnims(playerid) == 0) return SendClientMessage(playerid, -1"Você não está dentro de um veículo");
     return 
1;




RE: Problema com stock - Usuário Aleatório - 11/07/2023

(10/07/2023 17:30)White_Blue Escreveu: 1° problema: Você não está retornando nenhum valor na função e mesmo assim está verificando se a função retornou 1
2° problema: No snippet de código que você compartilhou você está usando o ";" incorretamente, em verificações não se usa o ponto e vírgula "AbleToDoAnims(playerid); == 1"

Código corrigido:
Código PHP:
stock AbleToDoAnims(playerid) {
       if(IsPlayerInAnyVehicle(playerid)) return 1// Se o jogador estiver dentro de um veículo retorna 1
       return 0// Retorna 0 por padrão
}

CMD:teste(playerid) {
     if(AbleToDoAnims(playerid) == 1) return SendClientMessage(playerid, -1"Você está dentro de um veículo");
     else if(AbleToDoAnims(playerid) == 0) return SendClientMessage(playerid, -1"Você não está dentro de um veículo");
     return 1;


Colei e copiei teu code pra minha GM,e mesmo assim ainda dá um monte d erros:
Código PHP:
C:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(5) : error 017undefined symbol "IsPlayerInAnyVehicle"
C:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(5) : warning 215expression has no effect
C
:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(5) : error 001expected token";"but found ")"
C:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(5) : error 029invalid expressionassumed zero
C
:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(5) : fatal error 107too many error messages on one line 



RE: Problema com stock - Dr Editor - 11/07/2023

(11/07/2023 08:23)Usuário Aleatório Escreveu:
(10/07/2023 17:30)White_Blue Escreveu: 1° problema: Você não está retornando nenhum valor na função e mesmo assim está verificando se a função retornou 1
2° problema: No snippet de código que você compartilhou você está usando o ";" incorretamente, em verificações não se usa o ponto e vírgula "AbleToDoAnims(playerid); == 1"

Código corrigido:
Código PHP:
stock AbleToDoAnims(playerid) {
       if(IsPlayerInAnyVehicle(playerid)) return 1// Se o jogador estiver dentro de um veículo retorna 1
       return 0// Retorna 0 por padrão
}

CMD:teste(playerid) {
     if(AbleToDoAnims(playerid) == 1) return SendClientMessage(playerid, -1"Você está dentro de um veículo");
     else if(AbleToDoAnims(playerid) == 0) return SendClientMessage(playerid, -1"Você não está dentro de um veículo");
     return 1;


Colei e copiei teu code pra minha GM,e mesmo assim ainda dá um monte d erros:
Código PHP:
C:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(5) : error 017undefined symbol "IsPlayerInAnyVehicle"
C:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(5) : warning 215expression has no effect
C
:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(5) : error 001expected token";"but found ")"
C:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(5) : error 029invalid expressionassumed zero
C
:\Users\gilma\Downloads\New Journey Roleplay\pawno\nf1.pwn(5) : fatal error 107too many error messages on one line 

Você pode retornar o valor de IsPlayerInAnyVehicle diretamente, pois a função já retorna 1 ou 0, tornando essa lógica redundante:
Código PHP:
stock AbleToDoAnims(playerid) {
       return IsPlayerInAnyVehicle(playerid);


Quanto ao erro sugiro atualizar as includes e recomendo essa biblioteca designada para a versão 0.3.7-R2-2-1 que possui correções para o compilador da comunidade: https://github.com/pawn-lang/samp-stdlib


RE: Problema com stock - Usuário Aleatório - 11/07/2023

Dr Editor,atualizei todas as includes q eu usava (são poucas) , colei seu code e fiz td certinho,mas mesmo assim continua dando EXATAMENTE os mesmos erro oq é q eu faço ;-;


RE: Problema com stock - Dr Editor - 11/07/2023

(11/07/2023 10:29)Usuário Aleatório Escreveu: Dr Editor,atualizei todas as includes q eu usava (são poucas) , colei seu code e fiz td certinho,mas mesmo assim continua dando EXATAMENTE os mesmos erro oq é q eu faço ;-;

Essa função creio eu existir desde as primeiras versões do SA:MP.
Verifique se no arquivo "a_players.inc" contem esta nativa implementada.

Pra isso vejo dois caminhos:

1 - Em algum lugar do código há a diretiva #undef que torna qualquer função indefinida nas linhas abaixo dessa.
Código PHP:
#undef IsPlayerInAnyVehicle 

2 - Você está usando o caminho errado do compilador ou não adicionou as includes na pasta correta. (Também é possível, através de parâmetros, alterar o caminho da pasta de includes)
[Imagem: Gjz3Bgx.png]


RE: Problema com stock - Usuário Aleatório - 11/07/2023

(11/07/2023 13:31)Dr Editor Escreveu:
(11/07/2023 10:29)Usuário Aleatório Escreveu: Dr Editor,atualizei todas as includes q eu usava (são poucas) , colei seu code e fiz td certinho,mas mesmo assim continua dando EXATAMENTE os mesmos erro oq é q eu faço ;-;

Essa função creio eu existir desde as primeiras versões do SA:MP.
Verifique se no arquivo "a_players.inc" contem esta nativa implementada.

Pra isso vejo dois caminhos:

1 - Em algum lugar do código há a diretiva #undef que torna qualquer função indefinida nas linhas abaixo dessa.
Código PHP:
#undef IsPlayerInAnyVehicle 

2 - Você está usando o caminho errado do compilador ou não adicionou as includes na pasta correta. (Também é possível, através de parâmetros, alterar o caminho da pasta de includes)
[Imagem: Gjz3Bgx.png]
Acabei d verificar aqui e eu colacava o code lá no topo tlgd,tipo antes d tudo,botei um pouco mais abaixo (tipo dps das #includes e tals e compilei e n deu erro nenhum.Ou seja tá resolvido,mt obr pela ajuda,mas só mais uma coisa: Prq n pode botar o code da stock lá no topo ent?Prq dá esse problema d dar um mont d erros?)


Mais uma vez:Mt obr pela ajuda glr


RE: Problema com stock - Dr Editor - 11/07/2023

(11/07/2023 14:54)Usuário Aleatório Escreveu:
(11/07/2023 13:31)Dr Editor Escreveu:
(11/07/2023 10:29)Usuário Aleatório Escreveu: Dr Editor,atualizei todas as includes q eu usava (são poucas) , colei seu code e fiz td certinho,mas mesmo assim continua dando EXATAMENTE os mesmos erro oq é q eu faço ;-;

Essa função creio eu existir desde as primeiras versões do SA:MP.
Verifique se no arquivo "a_players.inc" contem esta nativa implementada.

Pra isso vejo dois caminhos:

1 - Em algum lugar do código há a diretiva #undef que torna qualquer função indefinida nas linhas abaixo dessa.
Código PHP:
#undef IsPlayerInAnyVehicle 

2 - Você está usando o caminho errado do compilador ou não adicionou as includes na pasta correta. (Também é possível, através de parâmetros, alterar o caminho da pasta de includes)
[Imagem: Gjz3Bgx.png]
Acabei d verificar aqui e eu colacava o code lá no topo tlgd,tipo antes d tudo,botei um pouco mais abaixo (tipo dps das #includes e tals e compilei e n deu erro nenhum.Ou seja tá resolvido,mt obr pela ajuda,mas só mais uma coisa: Prq n pode botar o code da stock lá no topo ent?Prq dá esse problema d dar um mont d erros?)


Mais uma vez:Mt obr pela ajuda glr

Entenda que a programação funciona como um roteiro. Em alguns casos é necessário informar os dados ordenadamente.

O erro não é porque a função não existia, é porque não exisitia naquele contexto, pois a função foi declarada em um escopo inacessível, ou seja, você declarou a função antes dela ter sido criada.

Um exemplo do dia a dia:
Eu tenho um computador que funciona apenas com o teclado e vou abrir o console para executar uma instrução.
1 - Ligo o computador
2 - Quebro meu teclado
3 - Abro o console e digito a instrução

Você não pode digitar nada, pois o teclado está quebrado. Mas se você tivesse quebrado ele DEPOIS de executar a instrução funcionaria...