menuid: Identificador único do menu (similar ao easydialog)
caption: Título principal do menu
type: Subtítulo (máx. 30 caracteres)
captionTextColor: Cor do texto em formato ARGB
captionBoxColor: Cor do fundo do título
captionSprite: Sprite de fundo (formato texture:name)
AddPlayerMenuItem
Código:
AddPlayerMenuItem(playerid, text[], info[] = "");
text: Texto principal do item
info: Descrição adicional (opcional)
Suporte a adição dinâmica durante exibição
HidePlayerMenu
Código:
HidePlayerMenu(playerid);
Fecha o menu ativo do jogador
Remove todos os items da memória
Macros Customizáveis
Código:
#define MENU_SOUND_UPDOWN 1054 // Som ao navegar
#define MENU_SOUND_CLOSE 1084 // Som ao fechar
#define MENU_SOUND_SELECT 1083 // Som ao selecionar
#define MENU_MAX_LISTITEMS 24 // Máximo de items
#define MENU_MAX_LISTITEM_SIZE 128 // Tamanho do texto
#define MENU_MAX_LISTITEMS_PERPAGE 8 // Items por página
- Função de gancho das keys pressionadas KeyMenu:...(playerid, index)
- Função OnMenuResponse foi substituida pelo macro Menu:...(playerid, response, listitem)
- O Sistema agora é em base de strings não em menuid
- Adicionado a possibilidade de colocar sub-item (do lado direito do menu)
- Adicionado suporte a plataforma Android
- Melhor organização da Include
- Adicionado a Documentação total da include
- Foi adicionado textdraw-streamer para o melhor manuseio da include
Olá! Espero que tenham sentido saudade da minha presença aqui no fórum, estou aqui desde do meu inicio no samp em meados de 2016 até o presente momento, amo essa comunidade e o gta em si, não poderia ficar sem tentar ajudar-los de alguma forma ainda mais nesse ano de escassez da própia comunidade. Mais uma vez troquei de discord e de quase todas as redes sociais, caso vocês precisem entrar em contato comigo, vá no meu novo discord: tommy0stardust
OBS: sou moderador da Vision Team, caso estejam lá só me marcarem no chat que eu irei responder-lo o quanto antes!
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);
Galera eu coloquei um sistema de armas no meu script com a include mSelection onde quando o player digita o comando armas aparece a seleção de armas para ele escolher , até então eu não sabia colocar as armas para outras direções dentro do quadro onde e mostrada o id do objeto que representa a arma , para ser mais claro dentro do arquivo armas.txt onde quando a Gamemode inicia os arquivos onde estão os id e o objeto que e o id da arma estão , minha dúvida e da para mudar o tamanho da imagen de cada armas ? Porq sei que elas pode girar tipo em círculo mas não se se e possível diminuir o tamanho dela para o player visualizar melhor , pois elas por padrão vem muito próximo e muitas só aparecem pela metade , vocês estão me entendendo ou expliquei muito ruim?!
Exemplo de dentro da pasta armas.txt coloquei assim
346, 0 onde o 346 e o id do objeto que representa a arma e o 0 e o primeiro quadro que o player clica e por aí vai então aprendi a modificar a direção da arma por exemplo 346, 0 ,-100 só queria saber se e possível diminuir o tamanho da imagem que seria o objeto que representa a arma no caso queria saber qual e a rotação que afasta o objeto para ele ficar menor pois algumas armas são muito perto e fica aparecendo a metade dela , se for possível eu colocando a rotação para ela ficar mais pra trás ela possa diminuir o tamanho e ficar melhor para o player ver
⚡ [BRASIL] WAR EM SAN ANDREAS | EVENTOS / DM | ® ⚡
Olá pessoal, tudo bem com vocês? Espero que todos estejam bem!
Venho vos apresentar o mais novo servidor do GTA SAMP. O Novo War em San andreas DM ele se encontra em sua fase ( v1.8 ). Estamos lançando novas atualizações diariamente
O servidor foi totalmente criado do zero. Possuímos profissões, sistemas em geral muito bem desenvolvidos e inovadores, alguns nunca vistos antes ( Ainda serão criados muitos outros ). A nossa equipe de administração é formada por membros competentes, que sempre estarão prontos para te ajudar ou proteger o servidor de pessoas mal intencionadas, para garantir uma boa jogatina de todos.
Pois prezamos pela segurança de todos(as) os(as) nossos(as) jogadores(as), dentro e fora do game.
IP DO SERVIDOR: 149.56.41.52:7772
Adicione aos favoritos o nosso IP no SAMP.
Não esqueça de deixar o seu like para nos fortalecer e compartilhe com os seus amigos e amigas, contamos com o apoio de todos!
Fique por dentro de tudo o que acontece em nosso servidor, como por exemplo: Avisos, Atualizações, Eventos, Regras e muito mais.
Vamos estar esperando muito ansiosos e de portas abertas todos vocês! Lembrando que o servidor está em fase BETA, mas suas contas não serão perdidas quando lançarmos a versão final.
galera estou com um probleminha que pode ate parecer ser besta mas e nao sei como resolver na hora que compilo da isso
esse erro e falta de alguma include ?
C:\Users\Asus\Desktop\dede\gamemodes\DraCkers.pwn(130) : error 017: undefined symbol "INI_String"
C:\Users\Asus\Desktop\dede\gamemodes\DraCkers.pwn(131) : error 017: undefined symbol "INI_String"
C:\Users\Asus\Desktop\dede\gamemodes\DraCkers.pwn(2432) : loose indentation
C:\Users\Asus\Desktop\dede\gamemodes\DraCkers.pwn(2701) : warning 202: number of arguments does not match definition
C:\Users\Asus\Desktop\dede\gamemodes\DraCkers.pwn(2750) : error 017: undefined symbol "INI_Open"
C:\Users\Asus\Desktop\dede\gamemodes\DraCkers.pwn(2750) : warning 213: tag mismatch
C:\Users\Asus\Desktop\dede\gamemodes\DraCkers.pwn(2751) : error 017: undefined symbol "INI_SetTag"
C:\Users\Asus\Desktop\dede\gamemodes\DraCkers.pwn(2752) : error 017: undefined symbol "INI_WriteString"
C:\Users\Asus\Desktop\dede\gamemodes\DraCkers.pwn(2753) : error 017: undefined symbol "INI_WriteString"
C:\Users\Asus\Desktop\dede\gamemodes\DraCkers.pwn(2754) : error 017: undefined symbol "INI_Close"
C:\Users\Asus\Desktop\dede\gamemodes\DraCkers.pwn(2756) : error 017: undefined symbol "INI_ParseFile"
C:\Users\Asus\Desktop\dede\gamemodes\DraCkers.pwn(2756) : warning 215: expression has no effect
C:\Users\Asus\Desktop\dede\gamemodes\DraCkers.pwn(2756) : error 001: expected token: ";", but found ")"
C:\Users\Asus\Desktop\dede\gamemodes\DraCkers.pwn(2756) : error 029: invalid expression, assumed zero
C:\Users\Asus\Desktop\dede\gamemodes\DraCkers.pwn(2756) : fatal error 107: too many error messages on one line
bem encontrei esse sistema derby por ai acho que e a do delete do ppc truck entao ueria dar uma modificado para colocar no meu servidor o problema e que os usar /derby de pois de um tempinho o player q entrou ganha o derby queria que se iniciasse com pelo menos 2 ou mais player pois como ta definido se tiver 1 player no derby ele mesmo ganha queria a ajuda de algm com experiencia nessa linguagem para dizer como posso fazer essa verificacao no minimo se dois players tiver no derby caso so tenha 1 o derby nao se inicia
DeletePVar(i, "InDerby");
SpawnPlayer(i);
CheckDestructionDerby();
}
}
return 1;
}
new playerInDerby[MAX_PLAYERS]; // 0 = Não está no derby, 1 = Está no derby
CMD:derby(playerid)
{
if(playerInDerby[playerid] == 1)return SendClientMessage(playerid, 0xFF6666FF, "Você já está participando do derby! Aguarde até sair para tentar novamente.");
if(DerbyAdatok[IsDerbyStarted] == 1)return SendClientMessage(playerid, 0xFF6666FF, "O derby já começou, você não pode mais participar.");
if(DerbyAdatok[ddplayers] >= PLAYERLIMIT)return SendClientMessage(playerid, 0xFF6666FF, "Limite de players no derby foi atingido!");
if(!DerbyAdatok[IsDerby])
{
string[0] = EOS;
for(new i; i < sizeof(Maps); i++)
{
strcat(string, "{e0e0e0}");
format(str, sizeof(str), "%s \n", Maps[i][mapname], Maps[i][mapauthor]);
strcat(string, str);
}
ShowPlayerDialog(playerid, DIALOG_MAPS, 2, "{ff6666}Mapa opcional:", string, "OK", "Cancelar");
return 1;
}
return 1;
}
CMD:sairderby(playerid) {
if(!InDerby(playerid)) return SendClientMessage(playerid, 0xff6666FF, "Você não está em um derby!");
if(DerbyAdatok[IsDerby] == 0) return SendClientMessage(playerid, 0xff6666FF, "Não tem nenhum derby para você sair!");
OnPlayerLeaveDD(playerid);
SpawnPlayer(playerid);
return 1;
}
format(string, sizeof(string), "[DERBY] %s {ff6666}caiu na água no Derby {ffffff} [%i/"#PLAYERLIMIT"]", Name(i), DerbyAdatok[ddplayers]);
SendClientMessageToAll(-1, string);
DeletePVar(i, "InDerby");
SpawnPlayer(i);
}
if(DerbyAdatok[ddplayers] < 2) {
new playerid = IsDerbyWinner();
format(string, sizeof(string), "[DERBY] %s {33aa33}ganhou o Derby e recebeu $1000 !", Name(playerid));
SendClientMessageToAll(-1, string);
DestroyVehicle(GetPVarInt(playerid, "ddVeh"));
DeletePVar(playerid, "InDerby");
GivePlayerMoney(playerid, 1000);
SpawnPlayer(playerid);
DerbyAdatok[ddplayers] = 0;
KillTimer(timer2);
DerbyAdatok[IsDerbyStarted] = 0;
DerbyAdatok[IsDerby] = 0;
}
}
}
}
return 1;
}*/
function CheckDestructionDerby() {
if(DerbyAdatok[IsDerby] == 1) {
// Conta o número de jogadores conectados no derby
new playersInDerby = 0;
for(new i; i < MAX_PLAYERS; i++) {
if(IsPlayerConnected(i) && InDerby(i)) {
playersInDerby++;
}
}
// Se houver pelo menos 2 jogadores, começa o derby
if(playersInDerby >= 2 && DerbyAdatok[IsDerbyStarted] == 0) {
// Inicia o jogo
StartDD();
}
// Se a quantidade de jogadores cair abaixo de 2, encerre o derby
if(playersInDerby < 2) {
if(DerbyAdatok[IsDerbyStarted] == 1) {
new playerid = IsDerbyWinner();
format(string, sizeof(string), "[DERBY] %s {33aa33}ganhou o Derby e recebeu $1000!", Name(playerid));
SendClientMessageToAll(-1, string);
DestroyVehicle(GetPVarInt(playerid, "ddVeh"));
DeletePVar(playerid, "InDerby");
GivePlayerMoney(playerid, 1000);
SpawnPlayer(playerid);
Olá amigos gostaria de saber como eu faço uma verificação para quando o player cair na água com o veículo ele spawnar pois estou querendo criar um sistema simples de Derby mas não sei como faço isso até porq ainda sou iniciante nessa linguagem , preciso de alguma include ou basta sova verificação ?! Por favor algum pode me mostra uma pequena exemplo de código agradeço a todos que se dispoe a ajudar
galera alguem sabe dizer em uqal include ou que funcao quando as lojas estao com entradas habilitadas nativamente da funcao pawno e entramos dentro da loja amunation e diz you have no money to buy this item queria saber como eu posso modificar se e possivel e onde talvez possa fica essa funcao de comprar armas queria fazer uma modificacao isso e possivel ou isso esta dentro da data do gta sa no main.sc ? poq vi que podemos modificar ou alter qualquer coisa com um progrma no gta offline criar coisas novas quando se jogo offline so queria saber mesmo alquem mais experiente poderia me informar isso?