Portal SAMP
[Ajuda] y_iterate AMX size bug - 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] y_iterate AMX size bug (/showthread.php?tid=4484)



y_iterate AMX size bug - BitSain - 31/01/2024

Bom, tou desenvolvendo minha Gamemode com o compilador mais recente (3.10.10). Mas, tem um problema com a include y_iterate: Quando eu incluo ela na minha Gamemode, da um bug no tamanho do AMX. Sem a include da 680KB e com a include 11.84MB (diferença absurda)
OBS.: Includes YSI mais recente. Compilador também. 
Não há erros no meu código, apenas quando incluo o y_iterate.
O diretório da include também está certo: <YSI_Data\y_iterate>
Na minha Gamemode também tenho incluído o y_hooks e o y_va, também com o diretório certo <YSI_Coding\y_hooks> (mesmo diretório com o y_va)

---> EDIT:
Quebrei a cabeça pensando que era o meu código, mas não é.
Minha Gamemode é modulada, e o sistema mais recente é um AC de health, armour, weapon e ammo hack. Que também não interfere.
O único uso do y_iterate / foreach foi numa stock pra enviar mensagem para os admins on-line. Não fiz outros loops além desse pois minha Gamemode está num estágio inicial embora estou criando sistema mais complexo.

Mensagem do compilador com a include y_iterate:
Código PHP:
Pawn compiler 3.10.10                   Copyright (c1997-2006ITB CompuPhase

gamemodes
/server.pwn(14) : warning 204symbol is assigned a value that is never used"servidorfechando"                                                                                                   
Header size:           5732 bytes                                                                     
Code size
:           213532 bytes
Data size
:         25912684 bytes
Stack
/heap size:      16384 bytesestimated maxusage=1996 cells (7984 bytes)                       
Total requirements:26148332 bytess 



RE: y_iterate AMX size bug - Carlos Victor - 31/01/2024

Isso é porque não importa o que você inclui, o YSI irá incluir todo o restante do include automaticamente, eles te obrigam a usar. Então é recomendado você usar apenas o YSI ao invés de baixar includes que já existem dentro do YSI.

O Device tinha feito um teste na época e foi basicamente isso, você usa apenas uma coisinha, mas por trás o YSI inclui diversas automaticamente.


RE: y_iterate AMX size bug - BitSain - 31/01/2024

Mas isso não significa que há erros no pacote?
Se for isso eu posso ignorar ou você me aconselha usar o YSI mesmo


RE: y_iterate AMX size bug - pushline - 31/01/2024

Não é todo a include que é adicionada no .amx, geralmente são estas dependências que são incluidas:

- amx_assembly
- YSI_Core
- code-parse
- md-sort
- A biblioteca que você incluiu

Mas eu fiz um teste aqui e realmente aumenta 11mb no tamanho do .amx, aparentemente é bug do YSI. Vou criar um issue no github.
Recomendo usar uma release mais antiga.


RE: y_iterate AMX size bug - pushline - 31/01/2024

Achei o que causa isso. É o tamanho da sua define MAX_PLAYERS, se for 1000 (padrão do a_samp ou open.mp) vai causar este tamanho.
Diminui pra 100 e o meu amx teve um tamanho de 600kb.
Usei só isso para testar:

Código PHP:
#include <a_samp>

#if defined MAX_PLAYERS
  #undef MAX_PLAYERS
#endif

#define MAX_PLAYERS 100
#include <YSI_Data\y_iterate>

main() {