if(dialogid == 26)
{
if(!response)return true;
new tito[100];
format(tito,sizeof(tito), "Vocк deseja Efetuar a Compra de %d Dias ,Vocк Perdera %d Gold.", strval(inputtext), 100 * strval(inputtext));
ShowPlayerDialog(playerid, 27, DIALOG_STYLE_MSGBOX, "TVip - Vip", tito, "Sнm", "Nгo");
}
if(dialogid == 27)
{
new tito[100];
if(!response)return true;
VipInfo[playerid][vTipo] = 1;
VipInfo[playerid][vDias] = strval(inputtext);
VipInfo[playerid][vGold] -= 100 * strval(inputtext);
format(tito,sizeof(tito),"Vocк Comprou %d Dias ,Vocк gastou %d Gold.", strval(inputtext), 100 * strval(inputtext));
SendClientMessage(playerid, -1, tito);
SalvarVip(playerid);
}
GetDate й o mais complexo, aconselharia o GetTime, se vc desejar pode ver meus cуdigos ъteis que postei para ter uma ideia de como fazer... http://forum.sa-mp.com/showpost.php?...postcount=1581 - GetDate. http://forum.sa-mp.com/showpost.php?...postcount=1653 - GetTime. |
new PTVip[MAX_PLAYERS][2]; //Crio uma var para Armazenar o Vip dele e o Tempo do Vip dele...
public OnPlayerConnect(playerid) {
if(PTVip[playerid][0]) if(gettime() >= PTVip[playerid][1]) { PTVip[playerid][0] = 0; SendClientMessage(playerid, 0xFF0000FF, "[INFO] Seu VIP expirou!!"); } //Verifico se ele tem o Vip, Vejo se o Unix time atual й maior que o armazenado, se sim retiro o Vip.
return 1;
}
CMD:darvip(playerid, params[]) {
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Vocк nгo й um Admin!");
new GiveID, PVip, PTDias;
if(sscanf(params, "uii", GiveID, PVip, PTDias)) return SendClientMessage(playerid, 0xFFFFFFFF, "[USO] /darvip [id/nick] [Vip(1-Bronze, 2-Prata e 3-Ouro)] [Dias]");
if(!IsPlayerConnected(GiveID)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Jogador Offline!");
if(!(PVip > 0 && PVip < 4)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Vip somente de 1-3!");
if(!(PTDias > 0)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Dias maiores que 0!");
new PTStr[33];
format(PTStr, sizeof(PTStr), "[INFO] Vocк recebeu VIP %s por %d dias!!", (PVip==1)?("Bronze"):(PVip==2)?("Prata"):("Ouro"), PTDias);
SendClientMessage(GiveID, 0x00FF00FF, PTStr);
PTVip[GiveID][1] = gettime() + (PTDias*24*60*60); //Pego a quantidade de dias digitado e somo ao Unix atual como segundo.
PTVip[GiveID][0] = PVip; //Seto qual vip ele deseja.
return 1;
}
CMD:tirarvip(playerid, params[]) {
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Vocк nгo й um Admin!");
new GiveID;
if(sscanf(params, "u", GiveID)) return SendClientMessage(playerid, 0xFFFFFFFF, "[USO] /tirarvip [id/nick]");
if(!IsPlayerConnected(GiveID)) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Jogador Offline!");
new PTStr[32];
format(PTStr, sizeof(PTStr), "[INFO] Vocк perdeu seu VIP %s!!", (PVip==1)?("Bronze"):(PVip==2)?("Prata"):("Ouro"));
SendClientMessage(GiveID, 0xFF0000FF, PTStr);
PTVip[GiveID][1] = 0;
PTVip[GiveID][0] = 0;
return 1;
}
CMD:tempovip(playerid) {
if(!PTVip[playerid][0]) return SendClientMessage(playerid, 0xFF0000FF, "[ERRO] Vocк nгo й um VIP!");
new PTStr[45];
if(PTVip[playerid][0]) {
if(gettime() >= PTVip[playerid][1]) { PTVip[playerid][0] = 0; SendClientMessage(playerid, 0xFF0000FF, "[INFO] Seu VIP expirou!!"); return 1; } // Aki й mesma coisa do OnPlayerConnect
format(PTStr, sizeof(PTStr), "[INFO] Restam %d dias para acabar o seu VIP!", (((PTVip[playerid][1] - gettime())/60)/60)/24); //Aki ele vai mostrar o tempo restante ainda, em dias..
SendClientMessage(playerid, 0x00FF00FF, PTStr);
}
return 1;
}