22.09.2013, 03:45
Olб pessoal do Fуrum! Tudo bem? eu gostaria de saber como cria o comando /bantemp e que salve quanto tempo ainda falta pra cada player banido ser desban... sу isso. =D
stock BanirTemp(pid, motivo[] = "S/M", dias)
{
new N[50], d,m,a; GetPlayerName(pid, N, 24); getdate(a,m,d);
strcat(N,".BAN");
#if defined _dini_included
dini_Create(N);
dini_IntSet(N, "Dias", d+dias);
dini_Set(N, "Motivo", motivo);
#endif
Kick(pid);
return 1;
}
// Adicione no comeзo do OnPlayerConnect
public OnPlayerConnect(playerid)
{
new N[50], d,m,a; GetPlayerName(playerid, N, 24); getdate(a, m, d);
strcat(N,".BAN");
#if defined _dini_included
if(fexist(N))
{
if(dini_Int(N, "Dias") < d)
{
new str[128];
format(str, sizeof(str),"Faltam %d dias para vocк ser desbanido. ( Motivo: %s )", dini_Int(N, "aTDia"), dini_Get(N, "Motivo"));
SendClientMessage(playerid, -1, str);
Kick(playerid);
}
if(dini_Int(N, "Dias") == d)
{
fremove(N);
}
}
#endif
return 1;
}
BanirTemp(playerid, "No-reload", 3); // Banira por 3 dias: motivo no-reload, pode mudar por:
//WeaponHack,etc..
f(!strcmp(cmdtext, "/bantemp", true))
{
new id,d, motive[50];
if(!sscanf(cmdtext, "iis[50]", id, d, motive)) return SendClientMessage(playerid, -1,"/bantemp <id> <dias> <motivo>");
return BanirTemp(id, motive, d);
}
Perceba que se o jogador for banido no dia 30 por 3 dias nunca serб desbanido.
Problema do cуdigo: Junta. Estude Unix Timestamp, use gettime(). https://sampforum.blast.hk/showthread.php?tid=254915 |