27/02/2024 02:31
(Esta mensagem foi modificada pela última vez a: 27/02/2024 02:52 por White_Blue.)
(26/02/2024 08:38)zBreno Escreveu: include a_samp sempre no topo e sempre compilar com o crash detect
isso que você fez é uma solução temporária, pragma no geral é apenas uma gambiarra pra ocultar os avisos do compilador
aqui tem uma lista de erros de tempo de execução https://sampforum.blast.hk/showthread.php?tid=482429
aqui tem um solução diferente mas não lembro agora se a longo prazo isso pode travar o servidor https://sampforum.blast.hk/showthread.php?tid=409184
leia o erro 106 aqui https://forums.alliedmods.net/showthread.php?t=201044
Your script has apparently ran out of local memory. The stack is where any local variables are allocated and stored, in terms of memory. This means that the stack and the heap are colliding with each other, which could effectively corrupt data in the long run.
Solution: Try to use less cells for local declaration. For example, huge strings can be declared using "static" so it isn't allocated every function call. Alternatively, there's "#pragma dynamic x" but that's only if you're lazy.
https://github.com/pawn-lang/compiler/bl...n-lang.pdf
Apenas um adendo: a diretiva pragma, como um todo, não é apenas usada para "gambiarras". A diretiva pragma serve para passar instruções para o compilador de como o código deve ser compilado, as quais nem sempre são "gambiarras".
Um exemplo mais óbvio é "#pragma deprecated", muito usado em certas includes como o open.mp standard library, para avisar o usuário de que uma função não é mais suportada ou mantida. Outro exemplo é "#pragma amxlimit", que define o tamanho máximo do arquivo amx a ser gerado. Ou ainda "#pragma codepage", para alterar o encoding.
Sobre a questão do tópico: Tente evitar criar variáveis sem necessidade. Crie variáveis estáticas globais para formatar strings sem ter que criar uma nova string toda vez que você for formatar uma mensagem. Além disso, em funções que você usa muitas vezes no código, você pode definir as variáveis dessas funções como estáticas. Uma variável estática é apenas alocada uma vez durante toda a execução do programa, diferente de variáveis dinâmicas, que são alocadas toda vez que você usa e desalocadas depois. Use foreach para loops de players e veículos e sempre defina o tamanho das strings de acordo com suas necessidades, nunca crie strings gigantes sem necessidade. E não, não há um tamanho máximo de string definido.
Não estou disponível para realizar serviços relacionados ao SA-MP e não costumo responder a mensagens privadas, a menos que estejam relacionadas à moderação do fórum.