01.08.2014, 17:31
Estou com um bug no meu sistema vip por dias, й que quando uma pessoa vip entra no server e depois sai, quando outra pessoa que nгo e vip entra mostra como ela fosse vip e tem como usar os comandos vip. sem que ela seja vip.
me ajude ++rep
me ajude ++rep
pawn Код:
new VIP[MAX_PLAYERS];
stock SetPlayerVIP(playerid, days)
{
if(IsPlayerConnected(playerid))
{
new VIPS[128], ACCS[128], STRV[128];
new year, month, day;
getdate(year, month, day);
format(VIPS, sizeof(VIPS), PASTA_VIPS, GetName(playerid));
if(!DOF2::FileExists(VIPS))
{
DOF2::CreateFile(VIPS);
}
DOF2::SetInt(VIPS, "Dias", DOF2::GetInt(VIPS, "Dias")+days);
format(STRV, sizeof(STRV), "%d/%d/%d", day, month, year);
DOF2::SetString(VIPS, "DataSet", STRV);
format(ACCS, sizeof(ACCS), PASTA_CONTAS, GetName(playerid));
DOF2::SetInt(ACCS, "UsouConce", 0);
DOF2::SetInt(ACCS, "VIP", 1);
VIP[playerid] = 1;
DOF2::SaveFile();
}
return 1;
}
stock RenameFileVIP(oldfile[], newfile[])
{
new mndias;
new mndataset[256];
new mnusouconce;
new mnvip;
mndias = DOF2::GetInt(oldfile, "Dias");
mndataset = DOF2::GetString(oldfile, "DataSet");
mnusouconce = DOF2::GetInt(oldfile, "UsouConce");
mnvip = DOF2::GetInt(oldfile, "VIP");
DOF2::RemoveFile(oldfile);
DOF2::CreateFile(newfile);
DOF2::SetInt(newfile, "Dias", mndias);
DOF2::SetString(newfile, "DataSet", mndataset);
DOF2::SetInt(newfile, "UsouConce", mnusouconce);
DOF2::SetInt(newfile, "VIP", mnvip);
DOF2::SaveFile();
return 1;
}
stock UnsetPlayerVIP(playerid)
{
if(IsPlayerConnected(playerid))
{
new VIPS[128], ACCS[128];
format(VIPS, sizeof(VIPS), PASTA_VIPS, GetName(playerid));
if(DOF2::FileExists(VIPS))
{
DOF2::RemoveFile(VIPS);
}
format(ACCS, sizeof(ACCS), PASTA_CONTAS, GetName(playerid));
DOF2::SetInt(ACCS, "VIP", 0);
VIP[playerid] = 0;
DOF2::SaveFile();
}
return 1;
}
stock CheckPlayerVIP(playerid)
{
new VIPS[128], ACCS[128], STRV[128];
new year, month, day;
getdate(year, month, day);
format(ACCS, sizeof(ACCS), PASTA_CONTAS, GetName(playerid));
if(DOF2::FileExists(ACCS))
{
format(VIPS, sizeof(VIPS), PASTA_VIPS, GetName(playerid));
if(DOF2::FileExists(VIPS))
{
format(STRV, sizeof(STRV), "%d/%d/%d", day, month, year);
if(strcmp(DOF2::GetString(VIPS, "DataSet"), STRV, true) != 0)
{
DOF2::SetString(VIPS, "DataSet", STRV);
DOF2::SetInt(VIPS, "Dias", DOF2::GetInt(VIPS, "Dias")-1);
}
if(DOF2::GetInt(VIPS, "Dias") > 0)
{
#if defined AntiCheatUser
CheckSet(0, playerid, false);
SetWeaponAllowed(playerid, 38, true);
SetWeaponAllowed(playerid, 35, true);
SetWeaponAllowed(playerid, 36, true);
SetWeaponAllowed(playerid, 37, true);
SetWeaponAllowed(playerid, 39, true);
SetWeaponAllowed(playerid, 40, true);
#endif
DOF2::SetInt(ACCS, "VIP", 1);
VIP[playerid] = 1;
SendClientMessage(playerid, -1, "Vocк й um jogador VIP, aproveite!");
SendClientMessage(playerid, -1, "Veja os comandos em /comandosvip");
}
else
{
#if defined AntiCheatUser
CheckSet(0, playerid, true);
SetWeaponAllowed(playerid, 38, false);
SetWeaponAllowed(playerid, 35, false);
SetWeaponAllowed(playerid, 36, false);
SetWeaponAllowed(playerid, 37, false);
SetWeaponAllowed(playerid, 39, false);
SetWeaponAllowed(playerid, 40, false);
#endif
UnsetPlayerVIP(playerid);
SendClientMessage(playerid, -1, "Seus dias de VIP acabaram!");
SendClientMessage(playerid, -1, "Compre mais e divirta-se.");
}
}
else
{
#if defined AntiCheatUser
CheckSet(0, playerid, true);
SetWeaponAllowed(playerid, 38, false);
SetWeaponAllowed(playerid, 35, false);
SetWeaponAllowed(playerid, 36, false);
SetWeaponAllowed(playerid, 37, false);
SetWeaponAllowed(playerid, 39, false);
SetWeaponAllowed(playerid, 40, false);
#endif
DOF2::SetInt(ACCS, "VIP", 0);
VIP[playerid] = 0;
DOF2::SaveFile();
}
}
return 1;
}
stock GetVIPDays(playerid)
{
new VIPS[128];
format(VIPS, sizeof(VIPS), PASTA_VIPS, GetName(playerid));
if(DOF2::FileExists(VIPS))
{
return DOF2::GetInt(VIPS, "Dias");
}
else
{
return 0;
}
}
stock IsPlayerVIP(playerid)
{
return VIP[playerid];
}