Portal SAMP
[Include] GMenus (menus de interação temáticos no estilo GTA V!) - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Lançamentos (https://portalsamp.com/forumdisplay.php?fid=26)
+---- Fórum: Includes (https://portalsamp.com/forumdisplay.php?fid=27)
+---- Tópico: [Include] GMenus (menus de interação temáticos no estilo GTA V!) (/showthread.php?tid=4987)



GMenus (menus de interação temáticos no estilo GTA V!) - xbruno1000x - 19/03/2025

GMenu.inc
 
v2.2.0 | Menu Interativo Estilizado GTA V para SA-MP
 

Introdução: 
  • Sistema de menus temáticos inspirados no GTA V 
  • Integração simples similar ao easydialog.inc 
  • Personalização completa de cores, sprites e layout 
  • Suporte a múltiplas páginas e callbacks dinâmicos 
  Screenshot:
[Imagem: sWZ3yOD.png]

 

Funções Principais
 

ShowPlayerMenu 
Código:
ShowPlayerMenu(playerid, menuid[], caption[], type[] = "INTERACTION MENU", captionTextColor = 0xf7f7f7ff, captionBoxColor = 0xdb0dd0bb, captionSprite[] = "loadsc12:loadsc12");
 
  • 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
 

Constantes de Resposta
 
  • MENU_RESPONSE_UP: Navegação para cima 
  • MENU_RESPONSE_DOWN: Navegação para baixo 
  • MENU_RESPONSE_SELECT: Seleção de item 
  • MENU_RESPONSE_CLOSE: Fechamento do menu 
 

 

Exemplo: Menu de Armas
 
Código:
#define FILTERSCRIPT 
#include <a_samp> 
#include <gmenu> 

public OnPlayerSpawn(playerid) { 
    ShowPlayerMenu(playerid, WEAPONS, "Menu de Armas"); 
    AddPlayerMenuItem(playerid, "Katana"); 
    AddPlayerMenuItem(playerid, "Chainsaw"); 
    AddPlayerMenuItem(playerid, "Granada", "$5,000 cada"); 
    AddPlayerMenuItem(playerid, "RPG", "$10,000 por foguete"); 
    return 1; 


Menu:WEAPONS(playerid, response, listitem) { 
    if(response == MENU_RESPONSE_SELECT) { 
        switch(listitem) { 
            case 0: GivePlayerWeapon(playerid, 8, 1); 
            case 1: GivePlayerWeapon(playerid, 9, 1); 
            case 2: { 
                if(GetPlayerMoney(playerid) < 5000) 
                    return SendErrorMessage(playerid); 
                GivePlayerWeapon(playerid, 16, 1); 
            } 
            case 3: { 
                if(GetPlayerMoney(playerid) < 10000) 
                    return SendErrorMessage(playerid); 
                GivePlayerWeapon(playerid, 35, 1); 
            } 
        } 
    } 
    return 1; 
}
 

 

Download
 
  • Repositório OficialGithub 
  • Última atualização: 5 de Setembro de 2017 
  • Créditos: Agneese-Saini (Gammix)
 

Design totalmente personalizável | Compatível com OPEN.MP


obs: Esse tópico é um repost do antigo Fórum SA-MP! Todos os créditos pertencem ao autor.


RE: GMenus (menus de interação temáticos no estilo GTA V!) - Mateus Lima - 19/03/2025

(19/03/2025 12:29)xbruno1000x Escreveu: GMenu.inc
 
v2.2.0 | Menu Interativo Estilizado GTA V para SA-MP
 

Introdução: 
  • Sistema de menus temáticos inspirados no GTA V 
  • Integração simples similar ao easydialog.inc 
  • Personalização completa de cores, sprites e layout 
  • Suporte a múltiplas páginas e callbacks dinâmicos 
  Screenshot:
[Imagem: sWZ3yOD.png]

 

Funções Principais
 

ShowPlayerMenu 
Código:
ShowPlayerMenu(playerid, menuid[], caption[], type[] = "INTERACTION MENU", captionTextColor = 0xf7f7f7ff, captionBoxColor = 0xdb0dd0bb, captionSprite[] = "loadsc12:loadsc12");
 
  • 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
 

Constantes de Resposta
 
  • MENU_RESPONSE_UP: Navegação para cima 
  • MENU_RESPONSE_DOWN: Navegação para baixo 
  • MENU_RESPONSE_SELECT: Seleção de item 
  • MENU_RESPONSE_CLOSE: Fechamento do menu 
 

 

Exemplo: Menu de Armas
 
Código:
#define FILTERSCRIPT 
#include <a_samp> 
#include <gmenu> 

public OnPlayerSpawn(playerid) { 
    ShowPlayerMenu(playerid, WEAPONS, "Menu de Armas"); 
    AddPlayerMenuItem(playerid, "Katana"); 
    AddPlayerMenuItem(playerid, "Chainsaw"); 
    AddPlayerMenuItem(playerid, "Granada", "$5,000 cada"); 
    AddPlayerMenuItem(playerid, "RPG", "$10,000 por foguete"); 
    return 1; 


Menu:WEAPONS(playerid, response, listitem) { 
    if(response == MENU_RESPONSE_SELECT) { 
        switch(listitem) { 
            case 0: GivePlayerWeapon(playerid, 8, 1); 
            case 1: GivePlayerWeapon(playerid, 9, 1); 
            case 2: { 
                if(GetPlayerMoney(playerid) < 5000) 
                    return SendErrorMessage(playerid); 
                GivePlayerWeapon(playerid, 16, 1); 
            } 
            case 3: { 
                if(GetPlayerMoney(playerid) < 10000) 
                    return SendErrorMessage(playerid); 
                GivePlayerWeapon(playerid, 35, 1); 
            } 
        } 
    } 
    return 1; 
}
 

 

Download
 
  • Repositório OficialGithub 
  • Última atualização: 5 de Setembro de 2017 
  • Créditos: Agneese-Saini (Gammix)
 

Design totalmente personalizável | Compatível com OPEN.MP


obs: Esse tópico é um repost do antigo Fórum SA-MP! Todos os créditos pertencem ao autor.

Olá! Preciso falar com você, poderia me chamar no discord? tommy0stardust