SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese > Lançamentos/Releases

Reply
 
Thread Tools Display Modes
Old 15/11/2017, 09:04 PM   #1
CaioTJF
Gangsta
 
CaioTJF's Avatar
 
Join Date: Sep 2012
Location: Rio de Janeiro
Posts: 546
Reputation: 164
Default MenuStore (Crie lojas utilizando TextDraws)

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
__________________
owner
IP: server.gtatorcidas.net:2009 / Website: www.gtatorcidas.net




Last edited by CaioTJF; 21/11/2017 at 04:52 PM.
CaioTJF is offline   Reply With Quote
Old 15/11/2017, 09:13 PM   #2
Relaxed
Huge Clucker
 
Relaxed's Avatar
 
Join Date: Oct 2016
Location: Torres-RS
Posts: 396
Reputation: 18
Default Re: MenuStore (Crie lojas utilizando TextDraws)

Muito bom, parabéns!
Relaxed is offline   Reply With Quote
Old 15/11/2017, 09:14 PM   #3
Swinte
Big Clucker
 
Swinte's Avatar
 
Join Date: Jan 2017
Location: Brasil
Posts: 142
Reputation: 9
Default Re: MenuStore (Crie lojas utilizando TextDraws)

Gostei, ficou muito bom a parte de adicionar vários itens no "cart".
__________________
Code:
Projeto: nenhum atualmente
São Paulo F.C <3
Usuário de 2013
Swinte is offline   Reply With Quote
Old 15/11/2017, 09:27 PM   #4
CaioTJF
Gangsta
 
CaioTJF's Avatar
 
Join Date: Sep 2012
Location: Rio de Janeiro
Posts: 546
Reputation: 164
Default Re: MenuStore (Crie lojas utilizando TextDraws)

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 
__________________
owner
IP: server.gtatorcidas.net:2009 / Website: www.gtatorcidas.net



CaioTJF is offline   Reply With Quote
Old 15/11/2017, 09:37 PM   #5
Marllun
Gangsta
 
Marllun's Avatar
 
Join Date: Oct 2016
Location: Brazil
Posts: 896
Reputation: 35
Default Re: MenuStore (Crie lojas utilizando TextDraws)

Muito bom, dar para fazer um sistema de vendar de carros
__________________
Code:
Discord: Marllun#6297
Marllun is offline   Reply With Quote
Old 15/11/2017, 09:43 PM   #6
C4rtm4n
Gangsta
 
C4rtm4n's Avatar
 
Join Date: Jul 2017
Location: South Park
Posts: 657
Reputation: 15
Default Re: MenuStore (Crie lojas utilizando TextDraws)

FODA +REP
__________________
No Projects At the moment

C4rtm4n is offline   Reply With Quote
Old 15/11/2017, 09:53 PM   #7
MediaCL
Big Clucker
 
MediaCL's Avatar
 
Join Date: Sep 2017
Posts: 126
Reputation: 5
Default Re: MenuStore (Crie lojas utilizando TextDraws)

Que Fooda NICE Mano
+REP
__________________

Nunca Foi Sorte, Sempre foi Deus !
Projetos
http://forum.sa-mp.com/showthread.php?t=646284
MediaCL is offline   Reply With Quote
Old 15/11/2017, 10:05 PM   #8
Bruno13
High-roller
 
Bruno13's Avatar
 
Join Date: May 2013
Location: Caxias do Sul/RS
Posts: 1,436
Reputation: 244
Default Re: MenuStore (Crie lojas utilizando TextDraws)

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!
__________________
Released Hogwarts RP/G
Code:
> Não trabalho mais com venda de sistemas.
> Site: www.bruno13.tk
Bruno13 is offline   Reply With Quote
Old 15/11/2017, 10:23 PM   #9
CaioTJF
Gangsta
 
CaioTJF's Avatar
 
Join Date: Sep 2012
Location: Rio de Janeiro
Posts: 546
Reputation: 164
Default Re: MenuStore (Crie lojas utilizando TextDraws)

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 õ/
__________________
owner
IP: server.gtatorcidas.net:2009 / Website: www.gtatorcidas.net



CaioTJF is offline   Reply With Quote
Old 15/11/2017, 10:29 PM   #10
RodrigoMSR
High-roller
 
RodrigoMSR's Avatar
 
Join Date: Mar 2015
Location: Brazil
Posts: 1,079
Reputation: 140
Default Re: MenuStore (Crie lojas utilizando TextDraws)

Poderia adicionar uma box invisível no texto de descrição, assim não seria necessário pular linha manualmente.

Bom trabalho!
__________________
sttserver.net

RodrigoMSR is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



All times are GMT. The time now is 03:20 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.