SA-MP Forums Archive
playerd hours system problem - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: playerd hours system problem (/showthread.php?tid=664829)



playerd hours system problem - bosmania - 12.03.2019

it shows me 0 seconds 0 minutes played when im checking with the /time cmd,here's all i have on the system

CMD:time(playerid, params[])
{
new string[80];
format(string, sizeof(string),"*You've been connected for {ff0000}%0.0f {ffffff}seconds ({00ffff}%0.0f {ffffff}minutes)", PlayerInfo[playerid][pTimeConnected], PlayerInfo[playerid][pTimeConnected]/60);
SendClientMessage(playerid, -1, string);
return 1;
}


CMDayday(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 5) return SendClientMessage(playerid, COLOR_LIGHTRED, "You don't have acces");
foreach(Player, i)
{

new string[128];

format(string, sizeof(string), " You recived %0.2f played hours", PlayerInfo[playerid][pTimeConnected]/3600);
SendClientMessage(i, COLOR_GREEN2, string);




PlayerInfo[playerid][pHours] += PlayerInfo[playerid][pTimeConnected]/3600;
PlayerInfo[playerid][pTimeConnected] = 0;


UpdateVariable(i, pHoursx);
UpdateVariable(i, pTimeConnectedx);
}
return 1;

}

here's where the played time is calculated(this is part of a function,that is used on a timer that repeats every second,and no. the problem is not here because the timer works,im using it for many other things that work,and the afk time works,if im not moving the afk time goes up as it should,but if it's under 5 the time connected does't go up for some reason)

GetPlayerPos(i, PositionAFK[i][0], PositionAFK[i][1], PositionAFK[i][2]);

if(PositionAFK[i][0] == PositionAFK[i][4] && PositionAFK[i][1] == PositionAFK[i][5] && PositionAFK[i][2] == PositionAFK[i][6])
{
PlayerAFK[i]++;
}
else PlayerAFK[i] = 0;

PositionAFK[i][4] = PositionAFK[i][0];
PositionAFK[i][5] = PositionAFK[i][1];
PositionAFK[i][6] = PositionAFK[i][2];

if(PlayerAFK[i] < 5) PlayerInfo[i][pTimeConnected]++;


Re: playerd hours system problem - ApolloScripter - 12.03.2019

As you said above (but if it's under 5 the time connected does't go up for some reason), is probably because of this part of your code, this conditional command will only work if your AFK time is less than 5, so when it reaches 5, it will return FALSE, since 5 is not less than 5.

Код:
if(PlayerAFK[i] < 5) PlayerInfo[i][pTimeConnected]++;