21.11.2011, 09:15
Eu queria umas explicaзхes de como criar um cofre org para cada org.
Depositar
Sacar
Saldo
ps: jб procurei no seach
Depositar
Sacar
Saldo
ps: jб procurei no seach
//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;
}
#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!");
}
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..? |
#define CV 0
#define Ballas 1
#define bope 2//continua...
new dinheirocofre[10];
if(!dinheirocofre[CV]) return SendClientMessage(playerid, -1, "Nгo hб dinheiro neste cofre!");
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;
}