[Include] MenuStore (Crie lojas utilizando TextDraws)
#1

MenuStore.inc

Essa include permite vocк criar diversos tipos de lojas utilizando TextDraws, vocк pode especificar diversas informaзхes dos itens que serгo vendidos na loja, como descriзгo, rotaзхes, zoom, etc.

Demonstraзгo



Clique na imagem para rodar o vнdeo.

Funзхes

PHP Code:
stock MenuStore_AddItem(playeriditemidmodelidname[], pricedescription[] = EOSFloat:description_size 0.0bool:description_line_jump truestack 1Float:rotX 0.0Float:rotY 0.0Float:rotZ 0.0Float:zoom 1.0
  • "itemid" - ID do item, vai servir como "chave", cada item deve possuir ID ъnico.
  • "modelid" - Modelo do item que vai ser exibido no Preview.
  • "name" - Nome do item.
  • "price" - Preзo do item.
  • "description" - Descriзгo do item.
  • "description_size" - Aumentar o tamanho da BOX de descriзгo, deixando 0 nгo aumentarб.
  • "description_line_jump" - Pulo de linha automбtico ou nгo.
  • "stack" - Acima de "1", o item poderб ser pilhado no carrinho.
  • "rotX", "rotY", "rotZ" - Rotaзгo do Preview.
  • "Float:zoom " - Zoom do Preview.
PHP Code:
stock MenuStore_Open(playeridmenuid[], store_name[], money_sign[] = MS_DEFAULT_MONEY_SIGNbutton_confirm[] = MS_DEFAULT_CONFIRM
  • "menuid" - Funciona igual a include easyDialog, vocк pode colocar qualquer nome sem precisar definir.
  • "store_name" - Nome da loja.
  • "money_sign" - Sinal de dinheiro, o valor default й "$".
  • "button_confirm" - Nome do botгo de confirmar, o valor default й "Buy".
O sistema de identificaзгo do menu (menuid) й igual ao do easyDialogs, se vocк nгo sabe como funciona, veja o exemplo abaixo:

Exemplo de Cуdigo

PHP Code:

if(strcmp(cmd"/store"true) == 0)
{
    
MenuStore_AddItem(playerid1342"Granade"500"Throw to explode."200);
    
MenuStore_AddItem(playerid2344"Molotov"500"Throw to set fire to something."200);
    
MenuStore_AddItem(playerid3346"9mm Pistol"500"Pistol with low firepower.");
    
MenuStore_AddItem(playerid4347"Silenced 9mm"500"Pistol with low firepower.");
    
MenuStore_AddItem(playerid5348"Desert Eagle"500"Pistol with high firepower.");
    
MenuStore_AddItem(playerid6349"Shotgun"500"Normal Shotgun.");
    
MenuStore_AddItem(playerid7350"Sawnoff Shotgun"500"Powerfull Shotgun.");
    
MenuStore_AddItem(playerid8351"Combat Shotgun"500"Powerfull Shotgun.");
    
MenuStore_AddItem(playerid9352"Micro SMG"500"Two-handed machine gun.");
    
MenuStore_AddItem(playerid10353"MP5"500"Machine gun.");
    
MenuStore_AddItem(playerid11355"AK-47"500"Powerfull Rifle.");
    
MenuStore_AddItem(playerid12356"M4"500"Powerfull Rifle.");
    
MenuStore_AddItem(playerid13372"Tec-9"500"Powerfull machine gun.");
    
MenuStore_AddItem(playerid14357"Country Rifle"500"Normal Rifle.");
    
MenuStore_AddItem(playerid15358"Sniper Rifle"500"Powerfull Rifle.");
    
MenuStore_Show(playeridWeapon_Shop"Shop Weapons");
    return 
1;
}
Store:Weapon_Shop(playeridresponseitemidmodelidpriceamountitemname[])
{
    if(!
response)
        return 
true;
    if(
GetPlayerMoney(playerid) < price)
        return 
SendClientMessage(playerid, -1"You don't have enough money.");
    if(
amount == 1) {
        
GivePlayerWeapon(playeridGetWeaponIDFromModel(modelid), 200);
    }
    else {
        
GivePlayerWeapon(playeridGetWeaponIDFromModel(modelid), amount);
    }
    
    new 
string[128];
    
format(string128"You bought %dx %s"amountitemname);
    
SendClientMessage(playerid, -1string);
    
    
GivePlayerMoney(playerid, -price);
    return 
true;
}
stock GetWeaponIDFromModel(modelid)
{
    new 
idweapon;
    switch(
modelid)
    {
        case 
331idweapon 1// Brass Knuckles
        
case 333idweapon 2// Golf Club
        
case 334idweapon 3// Nightstick
        
case 335idweapon 4// Knife
        
case 336idweapon 5// Baseball Bat
        
case 337idweapon 6// Shovel
        
case 338idweapon 7// Pool Cue
        
case 339idweapon 8// Katana
           
case 341idweapon 9// Chainsaw
           
case 321idweapon 10// Double-ended Dildo
           
case 325idweapon 14// Flowers
           
case 326idweapon 15// Cane
           
case 342idweapon 16// Grenade
           
case 343idweapon 17// Tear Gas
        
case 344idweapon 18// Molotov Cocktail
        
case 346idweapon 22// 9mm
        
case 347idweapon 23// Silenced 9mm
        
case 348idweapon 24// Desert Eagle
        
case 349idweapon 25// Shotgun
        
case 350idweapon 26// Sawnoff
        
case 351idweapon 27// Combat Shotgun
        
case 352idweapon 28// Micro SMG/Uzi
        
case 353idweapon 29// MP5
        
case 355idweapon 30// AK-47
        
case 356idweapon 31// M4
        
case 372idweapon 32// Tec-9
        
case 357idweapon 33// Country Rifle
        
case 358idweapon 34// Sniper Rifle
        
case 359idweapon 35// RPG
        
case 360idweapon 36// HS Rocket
        
case 361idweapon 37// Flamethrower
        
case 362idweapon 38// Minigun
        
case 363idweapon 39;// Satchel Charge + Detonator
        
case 365idweapon 41// Spraycan
        
case 366idweapon 42// Fire Extinguisher
        
case 367idweapon 43// Camera
    
}
    return 
idweapon;

Download

Github
Reply
#2

Muito bom, parabйns!
Reply
#3

Gostei, ficou muito bom a parte de adicionar vбrios itens no "cart".
Reply
#4

Em breve irei montar outros estilos de cores, mas quem quiser editar elas й sу abrir a include e alterar essas definiзхes:

PHP Code:

#define MS_COLOR_SELECT_TD    0xffffffFF
#define MS_COLOR_BACKGROUND_1 0x04586bFF
#define MS_COLOR_BACKGROUND_2 0x0486a4FF
#define MS_COLOR_BACKGROUND_ITEMSELECTED 0xffffff50
#define MS_COLOR_TEXT_MAIN 0xffffffFF
#define MS_COLOR_REMOVEITEMFROMCART    0xc64e52FF
#define MS_COLOR_BACKGROUND_CONFIRM 0x5eaf3aFF

#define MS_COLOR_DESCRIPTION_NAMEITEM MS_COLOR_TEXT_MAIN
#define MS_COLOR_DESCRIPTION_TEXT 0xffffffAA
#define MS_COLOR_DESCRIPTION_BACKGROUND_1 MS_COLOR_BACKGROUND_1
#define MS_COLOR_DESCRIPTION_BACKGROUND_2 MS_COLOR_BACKGROUND_2
#define MS_COLOR_DESCRIPTION_BGMODEL 0xffffff50 
Reply
#5

Muito bom, dar para fazer um sistema de vendar de carros
Reply
#6

FODA +REP
Reply
#7

Que Fooda NICE Mano
+REP
Reply
#8

Sensacional, bom trabalho.

Uma dica, podes reduzir o nъmero de linhas ao zerar as variбveis, dessa maneira:

PHP Code:
ms_TD_StoreName[playerid] = ms_TD_Next[playerid] = PlayerText:INVALID_TEXT_DRAW
De resto bom code!
Reply
#9

Update 1.1

- Correзхes e novas definiзхes para cores.

Fiz uma versгo BLACK, que combina mais com o SA-MP:


PHP Code:

#define MS_COLOR_SELECT_TD 0xffffffFF
#define MS_COLOR_BACKGROUND_1 0x04586bFF
#define MS_COLOR_BACKGROUND_2 0x0486a4FF
#define    MS_COLOR_BACKGROUND_ITEM MS_COLOR_BACKGROUND_1
#define MS_COLOR_BACKGROUND_ITEMSELECTED 0xffffff50
#define MS_COLOR_TEXT_MAIN 0xffffffFF
#define MS_COLOR_BACKGROUND_CONFIRM 0x5eaf3aFF
#define MS_COLOR_CART_REMOVEITEM 0xc64e52FF
#define MS_COLOR_CART_BACKGROUNDITEM MS_COLOR_BACKGROUND_ITEM
#define MS_COLOR_DESCRIPTION_NAMEITEM MS_COLOR_TEXT_MAIN
#define MS_COLOR_DESCRIPTION_TEXT 0xffffffAA
#define MS_COLOR_DESCRIPTION_BACKGROUND_1 MS_COLOR_BACKGROUND_1
#define MS_COLOR_DESCRIPTION_BACKGROUND_2 MS_COLOR_BACKGROUND_2
#define MS_COLOR_DESCRIPTION_BGMODEL 0xffffff50 
@Bruno

Bem lembrado, prуximo update vou dar uma reduzida nas linhas х/
Reply
#10

Poderia adicionar uma box invisнvel no texto de descriзгo, assim nгo seria necessбrio pular linha manualmente.

Bom trabalho!
Reply
#11

Quote:
Originally Posted by RodrigoMSR
Посмотреть сообщение
Poderia adicionar uma box invisнvel no texto de descriзгo, assim nгo seria necessбrio pular linha manualmente.

Bom trabalho!
Isso realmente funciona?

Obrigado х/
Reply
#12

Quote:
Originally Posted by CaioTJF
Посмотреть сообщение
Isso realmente funciona?

Obrigado х/
Sim, eu uso em alguns textos.
Reply
#13

Ficou muito bom, design show em!
Reply
#14

Update 2.0

- Nгo й mais preciso pular linha na descriзгo (ty Rodrigo)
- Adicionado botхes (<- ->) ao invйs dos caracteres << >>
- Agora sу mostra o menu de paginaзгo quando houver mais de uma pбgina disponнvel
- Novas definiзхes para cores
- Cores de default alterada para a versгo black

Reply
#15

Ficou bom.

+REP.
Reply
#16

Curti, vou usar +REP
Reply
#17

Muito legal, bastante dinвmico e dб pra explorar muita coisa ainda. REP+
Reply
#18

Уtimo trabalho, @CaioTJF!
Reply
#19

Bom Trabalho
Reply
#20

Um bom design, gostei
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)