SA-MP Forums

SA-MP Forums (https://forum.sa-mp.com/index.php)
-   Português/Portuguese (https://forum.sa-mp.com/forumdisplay.php?f=34)
-   -   [Ajuda] Comando /comprar (https://forum.sa-mp.com/showthread.php?t=669348)

smith 14/09/2019 10:01 PM

Comando /comprar
 
galera eu fiz uma lojinha in game mais nao tenho a minima ideia de como vo fazer o comando /comprar [iddoitem] para nao ser necessario criar um comando comprar para
cada item dem uma olhada no que eu tentei fazer mais nao deu certo.
pawn Code:
CMD:comprar(playerid, params[])
{
   new itenid;
   new str[128];
   if(sscanf(params, "i", itenid))return msg(playerid, Vermelho, "|ERRO|: Use /comprar [idObjeto]");
   if(PlayerInfo[playerid][pDinheiro] < 1200) return msg(playerid, -1,"Voce nao tem cash o suficiente para comprar este item!!");
   if(itenid == 1){
   format(str, sizeof(str), "Parabens voce acaba de adquirir um Celular Galaxy A20!!!");
   msg(playerid, VerdeC, str);
   pitens[playerid][Celular] = 1;
   GivePlayerMoney(playerid, -1200);
   }
   else if(itenid == 2){
   format(str, sizeof(str), "Parabens voce acaba de adquirir uma Mochila da Oakley!!!");
   if(PlayerInfo[playerid][pDinheiro] < 350) return msg(playerid, -1,"Voce nao tem cash o suficiente para comprar este item!!");
   msg(playerid, VerdeC, str);
   pitens[playerid][Mochila] = 1;
   GivePlayerMoney(playerid, -350);
   }
   else if(itenid == 3){
   format(str, sizeof(str), "Parabens voce acaba de adquirir Kit Medico!!!");
   if(PlayerInfo[playerid][pDinheiro] < 1000) return msg(playerid, -1,"Voce nao tem cash o suficiente para comprar este item!!");
   msg(playerid, VerdeC, str);
   pitens[playerid][MedKit] = 1;
   GivePlayerMoney(playerid, -1000);
   }
   else if(itenid == 4){
   format(str, sizeof(str), "Parabens voce acaba de adquirir Cornetas para fazer anuncios!!!");
   msg(playerid, VerdeC, str);
   org[playerid][pCash] -= 300;
   pitens[playerid][Corneta] = 30;
   
   }
   
   else if(itenid == 5){
   format(str, sizeof(str), "Parabens voce acaba de adquirir Polvora para criaçao de bombas!!!");
   msg(playerid, VerdeC, str);
   if(org[playerid][pCash] < 30) return msg(playerid, -1,"Voce nao tem cash o suficiente para comprar este item!!");
   org[playerid][pCash] -= 30;
   pitens[playerid][Polvora] += 3;

   }
   
   else if(itenid == 5){
   format(str, sizeof(str), "Parabens voce acaba de adquirir Expoleta para criaçao de bombas!!!");
   msg(playerid, VerdeC, str);
   if(org[playerid][pCash] < 30) return msg(playerid, -1,"Voce nao tem cash o suficiente para comprar este item!!");
   org[playerid][pCash] -= 30;
   pitens[playerid][Expoleta] += 3;

   }
   return 1;
}
oque tentei fazer kkk

oRaphael 15/09/2019 12:38 AM

Re: Comando /comprar
 
Está certo uai.

smith 15/09/2019 12:42 AM

Re: Comando /comprar
 
Quote:

Originally Posted by oRaphael (Post 4113566)
Está certo uai.

aqui da warng e nao funcioa if(org[playerid][pCash] < 30) tag misth algo assim
ja tentei fazer em dialog mais nao to sabendo tbm quando coloco no comesso da public dialog atrapalha meu sistema de login nao salva direito se eu coloco em baxo da certo mais kika o player e reseta os status dele nao sei oque fazer
ja tentei em lugar de pid[pDinheiro] colocar GivePlayerWapon(playrid) < 100 return msg n deu tbm

Saik 15/09/2019 04:22 PM

Re: Comando /comprar
 
Quote:

Originally Posted by smith (Post 4113567)
aqui da warng e nao funcioa if(org[playerid][pCash] < 30) tag misth algo assim
ja tentei fazer em dialog mais nao to sabendo tbm quando coloco no comesso da public dialog atrapalha meu sistema de login nao salva direito se eu coloco em baxo da certo mais kika o player e reseta os status dele nao sei oque fazer
ja tentei em lugar de pid[pDinheiro] colocar GivePlayerWapon(playrid) < 100 return msg n deu tbm

Se um dialog está interferindo no outro é pq está usando o mesmo ID para ambos.

Defina o id dos dialog's no topo da GM/FS

PHP Code:

#define DIALOG_LOJA 1
#define DIALOG_LOGIN 2 

Assim por diante, quando for criar o dialog basta colocar o que foi definido em vez de um número, assim um nunca vai interferir no outro

PHP Code:

 ShowPlayerDialog(playeridDIALOG_LOJADIALOG_STYLE_LIST"Loja""Iten 1\nIten 2""Comprar""Cancelar"); 


smith 16/09/2019 01:51 AM

Re: Comando /comprar
 
Quote:

Originally Posted by Saik (Post 4113618)
Se um dialog está interferindo no outro é pq está usando o mesmo ID para ambos.

Defina o id dos dialog's no topo da GM/FS

PHP Code:

#define DIALOG_LOJA 1
#define DIALOG_LOGIN 2 

Assim por diante, quando for criar o dialog basta colocar o que foi definido em vez de um número, assim um nunca vai interferir no outro

PHP Code:

 ShowPlayerDialog(playeridDIALOG_LOJADIALOG_STYLE_LIST"Loja""Iten 1\nIten 2""Comprar""Cancelar"); 


olha cm tava
pawn Code:
#define DialogTeste 1
enum
{
    DIALOG_REGISTRO,
    DIALOG_LOGIN
};
pawn Code:
forward DialogTeste();

// public OnDialogResponse

if(dialogid == DialogTeste)
    {
     if(response)
     {
        if(listitem == 0)
        {
        pitens[playerid][Celular] = 1;
        GivePlayerMoney(playerid, -1200);
        msg(playerid, VerdeC, "||Parabens|| Voce acaba de adiquerir Um Galaxy A20");
        }
        else if(listitem == 1)
        {
        pitens[playerid][Mochila] = 1;
        GivePlayerMoney(playerid, -10000);
        msg(playerid, VerdeC, "||Parabens|| Voce acaba de adiquerir Uma Mochila da Oakley");
        }
        else if(listitem == 2)
        {
        pitens[playerid][MedKit] = 1;
        GivePlayerMoney(playerid, -1000);
        msg(playerid, VerdeC, "||Parabens|| Voce acaba de adiquerir Um KitMedico");
        }
        else if(listitem == 3)
        {
        pitens[playerid][Corneta] += 3;
        GivePlayerMoney(playerid, -150000);
        msg(playerid, VerdeC, "||Parabens|| Voce acaba de adiquerir Uma Corneta");
        }
        else if(listitem == 4)
        {
        pitens[playerid][Polvora] += 3;
        GivePlayerMoney(playerid, -30000);
        msg(playerid, VerdeC, "||Parabens|| Voce acaba de adiquerir Polvora para criaçao de bombas");
        }
        else if(listitem == 5)
        {
        pitens[playerid][Expoleta] += 3;
        GivePlayerMoney(playerid, -30000);
        msg(playerid, VerdeC, "||Parabens|| Voce acaba de adiquerir Expoleta para criaçao de bombas");
        }
pawn Code:
CMD:comprar(playerid, params[]){
    if(!IsPlayerInRangeOfPoint(playerid, 2.0, -28.10000038147,-90,1003.5))return msg(playerid, Vermelho, "|INFO|:Voce nao esta no Local Certo");
    new str[128];
    format(str, sizeof(str), "Celular \nMochila \nMedKit \nCorneta \nPolvora \nExpoleta");
    ShowPlayerDialog(playerid, DialogTeste, DIALOG_STYLE_LIST, "Cabeçalho", str, "ok", "cancel");
    return 1;

}

NWDMadara 16/09/2019 02:09 AM

Re: Comando /comprar
 
PHP Code:

enum
{
    
DIALOG_REGISTRO,
    
DIALOG_LOGIN
};

#define DialogTeste 1
forward DialogTeste();

if(
dialogid == DialogTeste)

format(strsizeof(str), "Celular \nMochila \nMedKit \nCorneta \nPolvora \nExpoleta");
ShowPlayerDialog(playeridDialogTesteDIALOG_STYLE_LIST"Cabeçalho"str"ok""cancel"); 

Aonde fomos parar, alguém me socorre.

Cycle 16/09/2019 02:23 AM

Re: Comando /comprar
 
Eu fiz uma base, de como eu faria este código.
PHP Code:

/*
    É uma base, que mostra como eu faria o seu código.
*/

#if !defined _samp_included
    #tryinclude <a_samp>
#endif

#include <pawn.cmd>

enum informations_P
{
    
bool:Celular,
    
Mochila,
    
MedKit
};
new 
Player[informations_P][MAX_PLAYERS];

COMMAND:comprar(playerid)
{
    
ShowPlayerDialog(playerid10DIALOG_STYLE_LIST"Selecione o item que você deseja comprar.""Celular\nMochila\nMedKit""Comprar""Fechar");
    return 
true;
}

public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == 10)
    {
        switch(
listitem)
        {
            case 
0:
            {
                
// Este caso é relacionado com o primeiro item da lista, no caso o "celular", e assim por diante.
                
if(GetPlayerMoney(playerid) < 1200)
                    return 
SendClientMessage(playerid, -1"Você não possui o valor correto para comprar o celular.");
                if(
Player[Celular][playerid])
                    return 
SendClientMessage(playerid, -1"ERRO: Você já possui um celular.");
                
GivePlayerMoney(playerid, -1200);
                
SendClientMessage(playerid, -1"Você acabou de comprar um celular.");
                
Player[Celular][playerid] = true;
            }
            case 
1:
            {
                if(
GetPlayerMoney(playerid) < 350)
                    return 
SendClientMessage(playerid, -1"Você não possui o valor correto para comprar uma mochila.");
                if(
Player[Mochila][playerid] == 0)
                    return 
SendClientMessage(playerid, -1"Agora você tem uma mochila");
                
Player[Mochila][playerid]++;
                if(
Player[Mochila][playerid] > 1)
                {
                    new 
str[35];
                    
format(strsizeof(str), "Agora você possui %d mochilas."Player[Mochila][playerid]);
                    
SendClientMessage(playerid, -1str);
                }
                
GivePlayerMoney(playerid, -350);
            }
            case 
2:
            {
                if(
GetPlayerMoney(playerid) < 1000)
                    return 
SendClientMessage(playerid, -1"Você não possui o valor correto para comprar um MedKit.");
                
Player[MedKit][playerid]++;
                
SendClientMessage(playerid, -1"Você comprou um MedKit.");
            }
        }
        return 
true;
    }
    return 
true;




All times are GMT. The time now is 12:48 AM.

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