[Ajuda] Cofre Org.
#1

Eu queria umas explicaзхes de como criar um cofre org para cada org.

Depositar
Sacar
Saldo

ps: jб procurei no seach
Reply
#2

й a mesma coisa do banco..
Reply
#3

Quote:
Originally Posted by Cristhian
Посмотреть сообщение
й a mesma coisa do banco..
й , mais voce nao me falo como criar uma ( uma base para eu continuar )
Reply
#4

http://forum.sa-mp.com/search.php
Reply
#5

Bem, para se fazer um sistema do tipo precisa-se basicamente da utilizaзгo de variбveis .


Fiz aqui um exemplo com explicaзхes :


pawn Код:
//Cria-se no Topo do GM, uma variбvel global:

new DinheiroNoCofre = 0;  //Essa variбvel representarб o cofre no GameMode. o 0(zero) na linha indica o total inicial de dinheiro dentro cofre.



//No OnPlayerCommandText:

if(!strcmp(cmdtext, "/depositar", true))
{
    DinheiroNoCofre += 3000; //Aqui vocк aumenta o valor armazenado na variбvel/cofre em 3000.
    GivePlayerMoney(playerid, -3000); //Essa linha darб ao jogador -3000 de dinheiro, que equivale б aзгo de retirar 3000. Isso farб com que o jogador que usar o comando tenha a impressгo de que o dinheiro que ele perdeu foi para o cofre.
    SendClientMessage(0x33CCFFAA, "Vocк depositou R$3000 no cofre."); //Manda uma mensagem.
    return true;
}


if(!strcmp(cmdtext, "/sacar", true))
{
    if(DinheiroNoCofre == 0) //Se o valor da variбvel que representa o cofre for zero.
    {
        SendClientMessage(playerid, 0xFFFFFFAA, "O cofre estб vazio."); //Uma mensagem й mandada.
        return true; //E a leitura da funзгo й interrompida.
    }
    //Se a informaзгo do if nгo for verdadeira, o cуdigo continua daqui:
    DinheiroNoCofre = 0; //Aqui vocк zera o valor da variбvel do cofre para que o mesmo fique "vazio", e, consequentemente, para que haja a impressгo de que o dinheiro foi realmente retirado do cofre.
    SendClientMessage(0x33CCFFAA, "Vocк depositou R$3000 no cofre."); //Manda uma mensagem.
    GivePlayerMoney(playerid, 3000); //Essa linha darб ao jogador 3000 de dinheiro.
    return true;
}



if(!strcmp(cmdtext, "/saldo", true))
{
    new STR[30]; //Cria uma variбvel array capaz de armazenar textos.
    format(STR, 30, "Saldo do cofre: %i.", DinheiroNoCofre); //Formata o texto que a variбvel armazena na forma:  "Saldo do cofre: (dinheiro no cofre)". Perceba que a variбvel "DinheiroNoCofre" aparece na linha, pois й ela que representa o valor dentro do cofre.
    SendClientMessage(playerid, 0x33CCFFAA, STR); //Manda a mensagem formatada ao jogador.
    return true;
}

Para mais informaзхes sobre variбveis, recomendo que leia este tutorial : https://sampforum.blast.hk/showthread.php?tid=235924



Espero ter ajudado .
Reply
#6

pawn Код:
#define MAX_ORGS        (NUMERO DE ORGS)
#define DIALOG_ORGVAULD (UM NUMERO DE DIALOG NГO USADO)
#define DIALOG_DRAW     (UM NUMERO DE DIALOG NГO USADO)
#define DIALOG_DEPOSIT  (UM NUMERO DE DIALOG NГO USADO)
#define DIALOG_FUNDS    (UM NUMERO DE DIALOG NГO USADO)

new OrgVault[MAX_ORGS];

if(!strcmp(cmd, "/cofreorg", true))
{
    if(/*nao й membro de nenhuma org*/) return SendClientMessage(playerid, -1, "vc n й membro de nenhuma org!");
    if(/*sу й membro mas nгo й lider*/) return ShowPlayerDialog(playerid, DIALOG_ORGVAULT, DIALOG_STYLE_LIST, "Cofre da Org", "Saldo\nDepositar", "Selecionar", ""), 1;
    return ShowPlayerDialog(playerid, DIALOG_ORGVAULT, DIALOG_STYLE_LIST, "Cofre da Org", "Saldo\nDepositar\nSacar", "Selecionar", ""), 1;
}

//ondialogresponse
if(dialogid == DIALOG_ORGVAULT)
{
    if(response)
    {
        switch(listitem)
        {
            case 0:
            {
                new Pharrel[50 char];
                format(Pharrel, sizeof(Pharrel), "Dinheiro disponivel:{00FF00}$%d",/*Nome da organizaзгo*/,OrgVault[/*ORG DO PLAYER*/]);
                return ShowPlayerDialog(playerid, DIALOG_FUNDS, DIALOG_STYLE_MSGBOX, "Cofre:", Pharrel, "Fechar", "Voltar"),1;
            }
            case 1: return ShowPlayerDialog(playerid, DIALOG_DEPOSIT, DIALOG_STYLE_INPUTTEXT, "Depositar:", "Digite a quantidade de dinheiro que vocк pretende depositar!", "Depositar", "Voltar"),1;
            case 2: return ShowPlayerDialog(playerid, DIALOG_DRAW, DIALOG_STYLE_INPUTTEXT, "Sacar:", "Digite a quantidade de dinheiro que vocк pretende sacar!", "Sacar", "Voltar"),1;
        }
    }
}
if(dialogid == DIALOG_FUNDS)
{
    if(!response) return OnPlayerCommandText(playerid, "/cofreorg");
}
if(dialogid == DIALOG_DEPOSIT)
{
    if(!response) return OnPlayerCommandText(playerid, "/cofreorg");
    if(!strlen(inputtext))
        return ShowPlayerDialog(playerid, DIALOG_DEPOSIT, DIALOG_STYLE_INPUTTEXT, "Depositar:", "{AA0000}Digite a quantidade de dinheiro que vocк pretende depositar!", "Depositar", "Voltar"),1;
    if(strval(inputtext) > GetPlayerMoney(playerid))
        return ShowPlayerDialog(playerid, DIALOG_DEPOSIT, DIALOG_STYLE_INPUTTEXT, "Depositar:", "{AA0000}Vocк nгo tem essa quantia!\nDigite a quantidade de dinheiro que vocк pretende depositar!", "Depositar", "Voltar"),1;
    OrgVault[/*ORG DO PLAYER*/] += strval(inputtext);
    GivePlayerMoney(playerid, -strval(inputtext));
    return SendClientMessage(playerid, -1, "Dinheiro depositado com sucesso!");
}
if(dialogid == DIALOG_DRAW)
{
    if(!response) return OnPlayerCommandText(playerid, "/cofreorg");
    if(!strlen(inputtext))
        return ShowPlayerDialog(playerid, DIALOG_DRAW, DIALOG_STYLE_INPUTTEXT, "Sacar:", "{AA0000}Digite a quantidade de dinheiro que vocк pretende sacar!", "Sacar", "Voltar"),1;
    if(strval(inputtext) > OrgVault[/*ORG DO PLAYER*/))
        return ShowPlayerDialog(playerid, DIALOG_DRAW, DIALOG_STYLE_INPUTTEXT, "Sacar:", "{AA0000}O cofre da organizaзгo nгo tem todo este dinheiro!\nDigite a quantidade de dinheiro que vocк pretende sacar!", "Sacar", "Voltar"),1;
    OrgVault[/*ORG DO PLAYER*/] -= strval(inputtext);
    GivePlayerMoney(playerid, strval(inputtext));
    return SendClientMessage(playerid, -1, "Dinheiro sacado com sucesso!");
}
Eu tava fazendo quando o rjj postou, ai como eu fiz em dialog resolvi postar tb pra n jogar fora o trabalho.
Reply
#7

Ve se te serve como ajuda ai

http://forum.sa-mp.com/showthread.ph...ight=banco+org
Reply
#8

Obrigado Pharrael, mais estou usando o do rjjj, pois nao tinha visto o teu, mais vou da rpt pros dois.

#edit:

se eu for criar para cada org.

new DinheiroNoCofre = 0;

tera que criar cada um desses para cada org?

ex:

new DinheiroCV = 0;
new DinheiroADA = 0;

etc..?
Reply
#9

Quote:
Originally Posted by Lipe_Stronda
Посмотреть сообщение
Obrigado Pharrael, mais estou usando o do rjjj, pois nao tinha visto o teu, mais vou da rpt pros dois.

#edit:

se eu for criar para cada org.

new DinheiroNoCofre = 0;

tera que criar cada um desses para cada org?

ex:

new DinheiroCV = 0;
new DinheiroADA = 0;

etc..?
sim, tbm pode fazer assim
pawn Код:
#define CV 0
#define Ballas 1
#define bope 2//continua...
pawn Код:
new dinheirocofre[10];
exemplo de uso:
pawn Код:
if(!dinheirocofre[CV]) return SendClientMessage(playerid, -1, "Nгo hб dinheiro neste cofre!");
mas do outro jeito acho mais fбcil..
(nem sei se daquele jeito ali funciona)
Reply
#10

pawn Код:
if(dialogid == SacarCv)
    {
        if(response)
        {
            if(DinheiroNoCofre == 0)
            {
                SendClientMessage(playerid, 0xFFFFFFAA, "O Cofre estб vazio.");
                return true;
            }
            DinheiroNoCofre = -strval(inputtext);
            format(String,200,"{FFFFFF}Status Cofre\n{FFFFFF}Nome: {FF0000}%s\n{FFFFFF}Sacado: {FF0000}$%d", Nome, strval(inputtext));
            ShowPlayerDialog(playerid, DepositouCv, DIALOG_STYLE_MSGBOX, "Organizaзгo: {FF0000}Comando Vermelho", String, "Ok", "");
            GivePlayerMoney(playerid, strval(inputtext));
        }
        return 1;
    }
Estou com um problema, estб dando pra sacar qualquer valor, qual variavel eu uso pra poder sacar somente oque tem depositado?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)