![]() |
[Ajuda] Dúvidas sobre stock e forward - 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] Dúvidas sobre stock e forward (/showthread.php?tid=3723) |
Dúvidas sobre stock e forward - Usuário Aleatório - 26/06/2023 Olá,sou novo no samp e estudo algumas GAMEMODES para ter mais conhecimento,e vi q todas tenhem Stock e Forwards,pra que serve isso?É tipo pra criar Publics?Se sim,alguém pode me dar tipo um pequeno ´´tutorialzinho´´ pvf. RE: Dúvidas sobre stock e forward - White_Blue - 26/06/2023 forwards servem para definir callbacks que podem ser usadas em registros de eventos(Timers, registro de eventos como OnPlayerConnect) enquanto a função "stock" é uma palavra-chave para definir uma função para encapsular código, em termos grosseiros, é uma compactação e poupa tempo dos desenvolvedores. Um exemplo prático de encapsulamento de código: Código PHP: stock GetPlayerNameEx(playerid) { Estou encapsulando o código para não ter que definir uma variável e digitar todo esse código toda vez que eu quiser pegar o nome do jogador. Entretanto, vale ressaltar que o uso do "stock" é opcional, e usando stock para definir a função, caso ela não esteja sendo usada, ela não dará um warning alertando sobre o uso da mesma. Eu poderia definir o mesmo código dessa forma sem o stock: Código PHP: GetPlayerNameEx(playerid) { Espero ter esclarecido sua dúvida. De toda forma, recomendo ler o artigo da Wikipedia sobre callbacks e o artigo sobre Pawn e o artigo sobre encapsulamento de código da Wikibooks para mais detalhes: https://pt.wikipedia.org/wiki/Callback https://pt.wikibooks.org/wiki/Programar_em_C%2B%2B/Encapsulamento https://pt.wikipedia.org/wiki/Pawn RE: Dúvidas sobre stock e forward - Usuário Aleatório - 27/06/2023 Muito obrigado pela ajuda,entendi o ´´stock´´ mas n entendi muito bem o ´´forward´´ pode explicar? (dsclp se estou sendo chato,mas pesquiso muito sobre o stock e o forward e nunca encontro quase nada na net,e quando encontro n entendo ) RE: Dúvidas sobre stock e forward - xbruno1000x - 27/06/2023 forward é a declaração prévia dos parâmetros que serão recebidos pela public. Exemplo: Código: forward Float:SetPlayerToFacePos(playerid, Float:X, Float:Y); Então a public deveria ficar dessa forma: Código: public Float:SetPlayerToFacePos(playerid, Float:X, Float:Y) É possível adicionar um atalho para não ter que declarar a forward também. Código: #define xBruno1000x::%0(%1) forward %0(%1);\ Dessa forma, quando for criar a public, eu apenas faria da forma abaixo: Código: xBruno1000x::Float:SetPlayerToFacePos(playerid, Float:X, Float:Y) RE: Dúvidas sobre stock e forward - Usuário Aleatório - 27/06/2023 Finalmente entendi mn,obrigado pela ajuda Bruno,mas tava vendo uns sites e fóruns gringos aqui e uns dizia umas coisas sobre o ´´stock´´ e outros explicavam de forma totalmente diferente mano e isso me deixou confuso pra caramba,pode explicar o ´´stock´´ tmb pvf (se n der mt trabalho pra vc) RE: Dúvidas sobre stock e forward - White_Blue - 27/06/2023 (27/06/2023 11:23)Usuário Aleatório Escreveu: Finalmente entendi mn,obrigado pela ajuda Bruno,mas tava vendo uns sites e fóruns gringos aqui e uns dizia umas coisas sobre o ´´stock´´ e outros explicavam de forma totalmente diferente mano e isso me deixou confuso pra caramba,pode explicar o ´´stock´´ tmb pvf (se n der mt trabalho pra vc) Recomendo você ler o artigo da wiki do SA-MP: https://sampwiki.blast.hk/wiki/Function Mas é basicamente aquilo que eu disse, o "stock" em si é uma palavra-chave que diz para o compilador que caso a função não esteja sendo usada por você, o compilador irá ignorar aquela função e não emitir um aviso. É usado para encapsular código, que é muito útil para poupar tempo de fazer coisas mais repetitivas e cansativas toda hora. Um exemplo bem simples(Inútil, mas é só para exemplificar) é criar uma função para alterar e outra para pegar a vida do jogador Código PHP: stock Float:SetPlayerHealthEx(playerid, Float:Health) { Outro exemplo: Código PHP: stock SendClientMessageEx(playerid, Color, const Message[]) { RE: Dúvidas sobre stock e forward - xbruno1000x - 27/06/2023 (27/06/2023 11:23)Usuário Aleatório Escreveu: Finalmente entendi mn,obrigado pela ajuda Bruno,mas tava vendo uns sites e fóruns gringos aqui e uns dizia umas coisas sobre o ´´stock´´ e outros explicavam de forma totalmente diferente mano e isso me deixou confuso pra caramba,pode explicar o ´´stock´´ tmb pvf (se n der mt trabalho pra vc) Stock's são para facilitar. Imagina você ter que reescrever o mesmo código por dezenas de vezes? Código sem stock: Código: if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 548 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 465 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 425 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 417 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 487 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 488 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 497 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 563 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 447 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 469){ Com stock: Código: //A stock Código: //O mesmo código ali de cima, dessa vez com o uso de stock Com as stocks você consegue reduzir drasticamente os códigos. |