[HELP] Using Settimerex - 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)
+---- Forum: Help Archive (
https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: [HELP] Using Settimerex (
/showthread.php?tid=159688)
[HELP] Using Settimerex -
LasTRace - 14.07.2010
Hello, i have a porblem on my teleport command:
Код:
dcmd_tp(playerid,params[])
{
if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /tp [playerid]");
new player1, string[128], string2[128];
if(!IsNumeric(params)) player1 = ReturnPlayerID(params); else player1 = strval(params);
if(tp[playerid]==1) return SendClientMessage(playerid,COLOR_RED, "You need to wait a minute to teleport a player again.");
new Float:x, Float:y, Float:z;
GetPlayerPos(player1,x,y,z);
SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(player1));
if(GetPlayerState(playerid) == 2)
{
if(GetPlayerInterior(player1)==0)
{
SetVehiclePos(GetPlayerVehicleID(playerid),x+3,y,z);
SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(player1));
SetPlayerPos(playerid,x+2,y,z);
format(string,sizeof(string),"You have car-teleported to \"%s\"", pName(player1));
SendClientMessage(playerid,COLOR_YELLOW,string);
format(string,sizeof(string),"\"%s\" has car-teleported you!", pName(playerid));
SendClientMessage(player1,COLOR_YELLOW,string);
tp[playerid] = 1;
SetTimer("tp2",60000,0);
}
else
{
SetPlayerInterior(playerid,GetPlayerInterior(player1));
SetPlayerPos(playerid,x+2,y,z);
format(string,sizeof(string),"You have teleported to \"%s\"", pName(player1));
SendClientMessage(playerid,COLOR_YELLOW,string);
format(string2,sizeof(string2),"\"%s\" has teleported you!", pName(playerid));
SendClientMessage(player1,COLOR_YELLOW,string2);
tp[playerid] = 1;
SetTimer("tp2",60000,0);
}
}
else
{
SetPlayerInterior(playerid,GetPlayerInterior(player1));
SetPlayerPos(playerid,x+2,y,z);
format(string,sizeof(string),"You have teleported to \"%s\"", pName(player1));
SendClientMessage(playerid,COLOR_YELLOW,string);
format(string2,sizeof(string2),"\"%s\" has teleported you!", pName(playerid));
SendClientMessage(player1,COLOR_YELLOW,string2);
tp[playerid] = 1;
SetTimer("tp2",60000,0);
}
return 1;
}
public tp2()
{
for(new i = 0; i < MAX_PLAYERS; i++)
if(!IsPlayerConnected(i))
continue;
else if(tp[i] == 1) tp [i] = 0;
return 1;
}
Example: i used this command and spam timer (tp2) has started for me (im in tp[playerid]) 60 seconds, after 20 seconds another one used the same command. Now, i have 40 secs spam time, other player has 60 secs. After my spam time finishes, other one's spam time finishes, too. Because we are both in tp[playerid] (spam time).
I want to fix it with settimerex, but i have no information abt it (checked wiki's one, but nothing). It must be a personal timer, can some1 help ?
Re: [HELP] Using Settimerex -
MikkelGutten - 14.07.2010
pawn Код:
SetTimerEx("tp2",60000,0,"d",playerid);
Re: [HELP] Using Settimerex -
LasTRace - 14.07.2010
ty, ill try
Re: [HELP] Using Settimerex -
MikkelGutten - 14.07.2010
That will create a timer for each playerid.
Re: [HELP] Using Settimerex -
LasTRace - 14.07.2010
to kill them, example:
timer[playerid]=Settimerex(...);
KillTimer(timer[playerid]);
correct?