19/03/2025 01:25 
(Esta mensagem foi modificada pela última vez a: 05/04/2025 00:34 por xbruno1000x.)
	
	
	SA-MP Development Kit for Plugins
  SDK Completo para Extensão de Servidores SA-MP/OPEN.MP
  Introdução
- Kit de desenvolvimento profissional para criação de plugins SA-MP (San Andreas Multiplayer) em C/C++. Oferece controle total sobre a máquina virtual AMX, permitindo implementação de funcionalidades nativas de alto desempenho. Compatível com OPEN.MP e todas versões modernas do SA-MP.  
 
Visão Geral do SDK  
- Coleção de 15+ headers especializados e bibliotecas otimizadas  
 - Suporte completo à arquitetura 32/64-bit  
 - Integração multiplataforma (Windows/Linux/macOS)  
 - Sistema de debug integrado com 25+ códigos de erro  
 
Componentes Principais  
1 - Sistema AMX Avançado
- Máquina virtual para execução de scripts Pawn  
 - Gerenciamento de memória com 3 modelos de alocação  
 - Registro de 200+ funções nativas pré-implementadas  
 - Suporte a Unicode e codificação UTF-8  
 
2 - Arquitetura Multiplataforma
- Headers específicos para Windows (MSVC), Linux (GCC), FreeBSD  
 - Tratamento automático de endianness e alinhamento  
 - Macros para caminhos (DIRSEP_CHAR) e compilação condicional  
 
3 - Sistema de Plugins Profissional
- Interface de inicialização/descarregamento de plugins  
 - Registro automático de funções nativas via AMX_NATIVE_INFO  
 - Acesso direto à memória do servidor  
 - Handlers para eventos críticos  
 
Detalhes Técnicos
  Estruturas Principais
  AMX_HEADER (amx_structures.h)
Código:
typedef struct tagAMX_HEADER {  
    int32_t size;          // Tamanho total  
    uint16_t magic;        // Assinatura (0xF1E0)  
    char file_version;    // Versão do formato  
    char amx_version;      // Versão AMX requerida  
    int16_t flags;        // Flags de operação  
    // ... (+15 campos)  
} AMX_HEADER;AMX_NATIVE_INFO (amx.h)
Código:
typedef struct tagAMX_NATIVE_INFO {  
    const char* name;    // Nome da função  
    AMX_NATIVE func;      // Ponteiro para implementação  
} AMX_NATIVE_INFO;Sistema de Erros
  - 28 códigos de erro detalhados (amx_constants.h):  
 - AMX_ERR_MEMORY (16): Falha crítica de alocação  
 - AMX_ERR_NATIVE (10): Erro em função nativa  
 - AMX_ERR_JIT (22): Falha na compilação JIT  
 
Gerenciamento de Memória
  - Alocação dinâmica via amx_Allot()  
 - Compactação automática (AMX_COMPACTMARGIN=64)  
 - Verificação de limites de acesso  
 - Sistema de tags de usuário (AMX_USERNUM)  
 
Recursos Avançados
  1 - Compilação JIT
Código:
#if defined JIT  
    int AMXAPI amx_InitJIT(AMX *amx, void *reloc_table, void *native_code);  
    #define AMX_FLAG_JITC 0x2000  
#endif- Aceleração em tempo de execução  
 - Suporte a otimizações específicas de CPU  
 
2 - Interface de Depuração
Código:
typedef int (AMXAPI *AMX_DEBUG)(AMX *amx);  
int AMXAPI amx_SetDebugHook(AMX *amx, AMX_DEBUG debug);- Breakpoints programáveis  
 - Monitoramento de registradores (CIP/HEA/STP)  
 - Log de execução detalhado  
 
3 - Manipulação de Strings
Código:
#define amx_StrParam(amx, param, result) \  
    /* Implementação completa */  
AMXAPI amx_UTF8Check(const char *string, int *length);- Conversão automática de codificações  
 - Suporte a caracteres multibyte  
 - Sanitização de inputs  
 
Exemplos Práticos
  1 - Plugin de Monitoramento
  Código:
#include <amxplugin.h>
PLUGIN_EXPORT void PLUGIN_CALL OnServerTick() {  
    static int tick;  
    logprintf("Ticks: %d | Memória livre: %dKB",  
        ++tick,  
        amx_MemInfo(amx, NULL, NULL, NULL) / 1024  
    );  
}
PLUGIN_EXPORT int PLUGIN_INIT() {  
    amx_Register(debug_natives);  
    return 1;  
}2 - Função Nativa Avançada
  Código:
cell AMX_NATIVE_CALL GetPlayerStats(AMX *amx, cell *params) {  
    cell *addr;  
    int player_id = params[1];  
    
    // Validação de segurança  
    if(player_id < 0 || player_id > MAX_PLAYERS)  
        return amx_RaiseError(amx, AMX_ERR_BOUNDS);  
    
    // Acesso à memória  
    amx_GetAddr(amx, params[2], &addr);  
    *addr = GetPing(player_id);  
    
    return 1;  
}Licenciamento
  - Licença MIT: Uso comercial e modificações permitidas  
 - Requisitos:  
 - Atribuição de autoria original  
 - Inclusão do aviso de copyright  
 - Proibição de uso em malware  
 - Download: Repositorio Oficial
 
Documentação completa disponível nos headers | Suporte para 9 idiomas
obs: Apenas estou disponibilizando o conteúdo aqui no fórum, não tenho relação alguma com o projeto.
Discente de Sistemas de Informação no Centro Federal de Ensino Tecnológico(CEFET/RJ)
Programador SA-MP desde 2012
Programador SA-MP desde 2012
Não envie dúvidas por inbox, crie um tópico. Sua dúvida pode ser a dúvida de outro alguém, e seu tópico ajudará outras pessoas no futuro.
