SA-MP Forums Archive
Problem with a timer :| - 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: Problem with a timer :| (/showthread.php?tid=508530)



Problem with a timer :| - Galletziz - 22.04.2014

Hay, i have doing this script for a weed system but i have a problem with a timer and don't know the solution:

pawn Код:
CMD:plantseed(playerid,params[])
{
    if(pinfo[playerid][seeds] < 5) return SendClientMessage(playerid,-1,"[SERVER] You haven't enought seeds");
    if(IsPlayerInVehicle(playerid,GetPlayerVehicleID(playerid))) return SendClientMessage(playerid,-1,"[SERVER] You can't do it in a vehicle");
    if(limite == MAX_WEED_PER_PLAYER) return SendClientMessage(playerid,-1,"[SERVER] You can't plant more of 3 seeds");
    new id = plantcount;
    GetPlayerPos(playerid,winfo[id][poswx],winfo[id][poswy],winfo[id][poswz]);
    mariaobject[id] = CreateDynamicObject(3409,winfo[id][poswx],winfo[id][poswy],winfo[id][poswz]-1,0.0,0.0,0.0,-1,-1,-1,100.0,0.0);
    ApplyAnimation(playerid,LIBRARY,ANIMATION,4.1,false,false,false,false,3000,false);
    winfo[id][labelweed] = CreateDynamic3DTextLabel("On Harvest",0xFF0000FF,winfo[id][poswx],winfo[id][poswy],winfo[id][poswz],100.0);
    pinfo[playerid][seeds] = pinfo[playerid][seeds] - 5;
    plantcount++;
    limit++;
    SetTimer("harvesttimer",30000,false);
    return 1;

}
this is a timer function:

pawn Код:
forward harvesttimer();
public harvesttimer()
{
    for(new i = 0; i < MAX_WEED; i++)
    {
        winfo[i][finita] = 1;
        UpdateDynamic3DTextLabelText(winfo[i][labelweed],0xFF0000FF,"Harvest");
    }
    return 1;

}
The problem occurred when i send a command /plantseed... for each command the timer have to restart, but it applies to only once, so when i send the command and when i resend the command after 10 seconds, when the first timer finish the second finish together with the first. what i wrong ??


Re: Problem with a timer :| - Fel486 - 22.04.2014

Because the timer is of 30 seconds (30000ms). So, after 10 seconds, this still will be processing.

If you want to continue as that, I recommend to retype the command just after 30 seconds.

Otherwise, if many people will use the command on your server, I'd suggest you to use this function:

https://sampwiki.blast.hk/wiki/SetTimerEx


Re: Problem with a timer :| - Galletziz - 22.04.2014

Quote:
Originally Posted by Fel486
Посмотреть сообщение
Because the timer is of 30 seconds (30000ms). So, after 10 seconds, this still will be processing.

If you want to continue as that, I recommend to retype the command just after 30 seconds.

Otherwise, if many people will use the command on your server, I'd suggest you to use this function:

https://sampwiki.blast.hk/wiki/SetTimerEx
Ok but there isn't a method for to do that when the command has been send one more time the timer of the second command start from 0. So if a one plant has been harvest the second plant have to wait the difference of the seconds that missing for harvest?


Re: Problem with a timer :| - Fel486 - 22.04.2014

I think yes, you have to wait, since it's the same callback you're requesting.

If you want to call multiple times, you should create other callbacks.

For multiple players, use SetTimerEx.