31.08.2012, 01:23
Eu tentei criar um sistema VIP onde o admin adciona a data de vencimento ao jogador, exemplo: /darvip id, dia, mes, ano, e essa data ficaria salva, na onplayerupdate eu pus um check meio galhofa mas ele nгo funcionou (tenho certeza que por burrice minha, alguйm poderia me ajudar e apontar o erro no meu check, pois a VIP sai, assim que й dada.
Check na OnPlayerUpdate
pawn Код:
if(strcmp(cmd, "/darvip", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo[playerid][pAdmin] < 4000)
{
SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo tem autorizaзгo para usar esse comando.");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "ERRO: Digite /darvip [id] [dia] [mes] [ano](Coloque o comando com um dia a menos)");
return 1;
}
new para1;
para1 = ReturnUser(tmp);
new nome[24];
GetPlayerName(playerid, nome, sizeof nome);
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
tmp = strtok(cmdtext, idx);
new dia = strval(tmp);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /darvip [id] [dia] [mкs] [ano] (Data do Vencimento)");
return 1;
}
tmp = strtok(cmdtext, idx);
new mes = strval(tmp);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /darvip [id] [dia] [mкs] [ano] (Data do Vencimento)");
return 1;
}
tmp = strtok(cmdtext, idx);
new ano = strval(tmp);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /darvip [id] [dia] [mкs] [ano] (Data do Vencimento)");
return 1;
}
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
format(string, sizeof string, "Vocк deu os status de VIP para %s", giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof string, "Vocк recebeu todos os status de VIP do administrador %s.", sendername);
SendClientMessage(para1, COLOR_LIGHTBLUE, string);
getdate(year, month, day);
gettime(hour,minute,second);
format(string, sizeof(string), "%s deu vip ao %s nнvel %d (%d/%d/%d - %d:%d)",sendername,giveplayer,day, month, year,hour, minute);
VipsLog(string);
PlayerInfo[giveplayerid][pLevel] += 3;
ScoreLevel(para1);
PlayerInfo[para1][pVIP] = 1;
PlayerInfo[para1][pVIPD] = dia;
PlayerInfo[para1][pVIPM] = mes;
PlayerInfo[para1][pVIPA] = ano;
return 1;
}
}
}
}
pawn Код:
if(PlayerInfo[playerid][pVIP] != 0)
{
getdate(Ano, Mes, Dia);
if(PlayerInfo[playerid][pVIPD] < Dia || PlayerInfo[playerid][pVIPM] < Mes)
{
SendClientMessage(playerid, 0xFFFF00FF, "Seu tempo de VIP expirou.");
PlayerInfo[playerid][pVIP] = 0;
PlayerInfo[playerid][pVIPM] = 0;
PlayerInfo[playerid][pVIPA] = 0;
PlayerInfo[playerid][pVIPD] = 0;
}
else if(PlayerInfo[playerid][pVIPA] > Ano)
{
SendClientMessage(playerid, 0xFFFF00FF, "Seu tempo de VIP expirou.");
PlayerInfo[playerid][pVIP] = 0;
PlayerInfo[playerid][pVIPM] = 0;
PlayerInfo[playerid][pVIPA] = 0;
PlayerInfo[playerid][pVIPD] = 0;
}
}