08.07.2017, 18:02
Mano eu nгo entendi direito oque vocк queria dizer com esse cуdigo, ai crie um baseado!
PHP код:
//usa um processador de comando e melhor e vou usar dialogs, fica mais bonitinho, mas se nao quiser a base e a mesma!
#include "ocmd" //ou
#include "ZCMD"
#define SendStringMsg(%0,%1,%2,%3) do{new _string[128]; \
format(_string,sizeof(_string),%2,%3); SendClientMessage(%0,%1,_string);} while(False)
#define SendStringMsgToAll(%0,%1,%2) do{new _string[128]; \
format(_string,sizeof(_string),%1,%2); SendClientMessageToAll(%0,_string);} while(False)
new False=false;
#define VIPS 1
ocmd:comprarvip(playerid,params[]) //usa o zmcd se quiser
{
if(!IsPlayerConnected(playerid)) return 0;
if(PlayerInfo[playerid][pVIP] >= 1) return SendClientMessage(playerid, COLOR_WHITE, "Vocк jб possui um VIP ativo.");
VipVaga();
if(VagaSobrando == 0) return SendClientMessage(playerid, COLOR_WHITE, "Nгo possui mais vagas de VIP.");
ShowPlayerDialog(playerid, VIPS, DIALOG_STYLE_LIST, "Vips disponiveis", "BASIC VIP\n PREMIUM VIP\n SУCIO VIP", "Ok", "Nгo");
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == VIPS)
{
if(!response) //aqui vocde pode tira o '!' tira o "nгo" do ShowPlayer la, e fica so o response do ok, caso ele aperte esc na hora de escolher, somente ira sai do comando
{
SendClientMessage(playerid, -1, "Vocк cancelou a compra do vip!");
} //fechando botao cancelar
else //abrindo botгo ok
{
/*
Aqui vocк coloca a variavel dos dias e anos, aqui era vira uma global para o dialog vips, nao precisa criar outras destas aqui
*/
if(Mesv == 12 && Anov == 2012) { Mesv = 1; Anov++;} else { Mesv++; }
if(listitem == 0) //basico
{
/*
if (PlayerInfo[playerid][tCash] < 1000)
{
SendClientMessage(playerid, COLOR_WHITE, "Vocк nгo possui '1000' de CASH.");
return 1;
}
creio que seja dinheiro! ent uzarei essa forma de abaixo
*/
if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid, COR_ERROR, "ERRO: Vocк nгo tem R$1000 $CASH!");
//se ele tiver os 1000 agora nos vai tirar dele, como compra do vip
GivePlayerMoney(playerid, -1000);
SetPlayerScore(playerid, GetPlayerScore(playerid) + 1); //ganhou mais um score, pelo oque eu entendi ai
//vou criar uma funзгo pra usar strings com variaveis, sem fica criando strings (em cima do gm)
new Nome[500]; GetPlayerName(playerid, Nome, sizeof(Nome));
SendStringMsgToAll(COR_ERROR, "[ VIP ANNCIO ] > O jogador %s acabou de comprar o vip pacote BASICO com 1000 cash!", Nome);
SendStringMsg(playerid, -1, "Parabйns %s vocк agora й vip", Nome);
PlayerInfo[playerid][pVIP] = 1; //setando que ele jб e vip no nivel basico = 1
//aqui vocк coloca o tanto de cash vip etc os dias etc
SendStringMsg(playerid, -1, "Vocк ganhou %s de cash vip", varial );
SendStringMsg(playerid, -1, "Vocк ganhou +1 level e foi para o %i ", GetPlayerScore(playerid));
SendStringMsg(playerid, -1, "Vencimento: %d dias %d mкs %d ano %d As %d %d e %d Segundos!", Diav,Mesv,Anov,Horav,Minutov,SegV);
SendClientMessage(playerid, -1, "Aproveite as funзхes vips /comandosvips"); //comando ficticio
//e o resto do sistema
//salva
/*
new String[128];
GetPlayerName(playerid, Nome, sizeof(Nome));
format(String, sizeof(String), "LOCAL/DO/VIP/%s.ini", Nome); %s vai pega o nome do jogador vip
*/
new String[128];
GetPlayerName(playerid, Nome, sizeof(Nome));
format(String, sizeof(String), "SERVER/VIPS/%s.ini", Nome);
//coloca a #include dof2 se for usa esse metodo de salvamento, se nao use o preferido
//e usa DOF2_Exit() no Gamemode exit
DOF2_CreateFile(String);
DOF2_SetString(String, "Pacote", "Basico");
DOF2_SetInt(String, "Setado", 1 ); //1 do pacote 1
//tu coloca pra salvar os dias tbm, mas acho qeu vc ja tem seu salvamento ai, ent tu sabe oque fazer
//para salva voce pode usar o DOF2_SaveFile mas um jeito mais eu fasso de um jeito mais pratico com stocks
//com esses dados vocк cria uma checagem pra olha quem passo dos dias de vencimento, caso sim perde o vip etc
}
if(listitem == 1)//premium
{
}
if(listitem == 2)//socio
{
}
} //fechando botao ok
}//fechando dialog vip
return 1;
}
LoadPlayer(playerid)
{
new String[128], Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
format(String, sizeof(String), "SERVER/VIPS/%s.ini", Nome);
if( DOF2_FileExists( String) )
{
PlayerInfo[playerid][pVIP] = DOF2_GetInt( String, "Setado" ); // Coloca LoadPlayer quando o jogador fazer o loguim dele, ai vai carrega que ele vip 1
}
return 1;
}
SavePlayer(playerid)
{
new String[128], Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
format(String, sizeof(String), "SERVER/VIPS/%s.ini", Nome);
if( DOF2_FileExists( String ) )
{
DOF2_CreateFile(String);
DOF2_SetInt( String, "Setado", PlayerInfo[playerid][pVIP]); //aqui mostra que o salvamento setado e PlayerInfo[playerid][pVIP]
DOF2_SaveFile();
}
return 1;
}