18.06.2013, 21:24
Quote:
Puedes usar la funcion gettime(), esta te regresa los segundos por ejemplo en tu timer usas variable[playerid] = gettime() y cuando se desconecte guarda el tiempo dado por gettime()-variable[playerid]
|
pawn Код:
CMD:san(playerid,params[])
{
if(AccountInfo[playerid][AdminLvl] >= 2)
{
new targetid,string1[250];
if(sscanf(params, "dds[128]", targetid, tiempo, params[3])) return SendClientMessage(playerid, -1, "[ERROR]: /san [ID] [Minutos] [Razon]");
else if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, -1, "Usuario no conectado");
else
{
SetPlayerInterior(targetid, 3);
SetPlayerVirtualWorld(targetid,21);
SetPlayerPos(targetid, 291.282989,310.031982,999.148437);
tiempo[targetid] = gettime();
SetTimerEx("UnJail",tiempo[targetid]*1000*60,false,"i",targetid);
AccountInfo[targetid][InJail] = 1;
ResetPlayerWeapons(targetid);
format(string1, sizeof(string1), "%s %s a sancionado a %s por %i minutos [Razon: %s]",GetAdminName(playerid),pNombre(playerid),pNombre(targetid),tiempo,params[3]);
SendClientMessageToAll(COLOR_ERROR, string1);
}
}
else {
SendClientMessage(playerid,COLOR_AZUL,"No tienes permiso a usar este comando.");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if(AccountInfo[playerid][InJail] == 1) return gettime()-tiempo[playerid];
return 1;
}
public OnPlayerSpawn(playerid)
{
if(AccountInfo[playerid][InJail] == 1)
{
SetPlayerInterior(playerid, 3);
SetPlayerVirtualWorld(playerid,21);
SetPlayerPos(playerid, 291.282989,310.031982,999.148437);
SetTimerEx("UnJail",gettime()-tiempo[playerid]*1000*60,false,"i",playerid);
}
return 1;
}