#define FILTERSCRIPT
#include <a_samp>
new Counter;
new Float:X,Float:Y,Float:Z;
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
Counter = 0;
return 1;
}
public OnFilterScriptExit()
{
Counter = 0;
return 1;
}
#else
main()
{
print("\n------------------------------------------");
print(" Countdown");
print("------------------------------------------\n");
}
#endif
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/countdown", true))
{
GetPlayerPos(playerid,X,Y,Z);
if(Counter != 0) return SendClientMessage(playerid,0x004BFFFF, "ERROR: /countdown is already in use, Try again in a few seconds.");
Counter = 3;
Timer();
return 1;
}
return 0;
}
forward Timer();
public Timer()
{
new String[64];
for(new i = 0; i < GetMaxPlayers(); i++)
{
if(IsPlayerInRangeOfPoint(i,10,X,Y,Z))
{
if(Counter== 0)
{
PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
GameTextForPlayer(i,"~g~~h~Go Go Go !!", 2000, 5);
TogglePlayerControllable(i,1);
return 1;
}
format(String,sizeof(String),"~r~~h~%d",Counter);
GameTextForPlayer(i,String, 800, 5);
PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
TogglePlayerControllable(i,0);
Counter--;
SetTimer("Timer", 1000, false);
}
}
return 0;
}
public Timer()
{
new String[64];
for(new i = 0 j = GetMaxPlayers() ; i < j ; i++)
{
if(IsPlayerInRangeOfPoint(i,10,X,Y,Z))
{
if(Counter == 0)
{
PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
GameTextForPlayer(i,"~g~~h~Go Go Go !!", 2000, 5);
TogglePlayerControllable(i,1);
continue ;
}
format(String,sizeof(String),"~r~~h~%d",Counter);
GameTextForPlayer(i,String, 800, 5);
PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
TogglePlayerControllable(i,0);
Counter--;
}
}
if( Counter ) SetTimer("Timer", 1000, false);
}
there were some logical errors, the problem occurs because you call so much timers at the same time.
try this code: pawn Код:
|
C:\Users\User\Desktop\samp03bsvr_win32\filterscripts\CountDown.pwn(48) : error 001: expected token: ";", but found "-identifier-" C:\Users\User\Desktop\samp03bsvr_win32\filterscripts\CountDown.pwn(48) : error 001: expected token: ")", but found ";" C:\Users\User\Desktop\samp03bsvr_win32\filterscripts\CountDown.pwn(48) : error 036: empty statement C:\Users\User\Desktop\samp03bsvr_win32\filterscripts\CountDown.pwn(48) : fatal error 107: too many error messages on one line Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 4 Errors.
public Timer()
{
new String[64];
for(new i = 0, j = GetMaxPlayers() ; i < j ; i++)
{
if(IsPlayerInRangeOfPoint(i,10,X,Y,Z))
{
if(Counter == 0)
{
PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
GameTextForPlayer(i,"~g~~h~Go Go Go !!", 2000, 5);
TogglePlayerControllable(i,1);
continue ;
}
format(String,sizeof(String),"~r~~h~%d",Counter);
GameTextForPlayer(i,String, 800, 5);
PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
TogglePlayerControllable(i,0);
Counter--;
}
}
if( Counter ) SetTimer("Timer", 1000, false);
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/countdown", true))
{
new Float:X, Float:Y, Float:Z; //No global variable needed
GetPlayerPos(playerid, X, Y, Z); //more countdown at once avaible
Countdown(10.0, X, Y, Z, 3); //Ye I renamed it
return 1;
}
return 0;
}
forward Countdown(const Float:range, const Float:X, const Float:Y, const Float:Z, Counter);
public Countdown(const Float:range, const Float:X, const Float:Y, const Float:Z, Counter)
{
if(Counter == 0)
{
for(new i; i != MAX_PLAYERS; i++)
{
if(IsPlayerInRangeOfPoint(i, range, X, Y, Z))
{
GameTextForPlayer(i,"~g~~h~Go Go Go !!", 2000, 5);
PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
TogglePlayerControllable(i, true);
}
}
} else {
new i, string[16];
format(string, sizeof(string), "~r~~h~%d", Counter--);
for( ; i != MAX_PLAYERS; i++)
{
if(IsPlayerInRangeOfPoint(i, range, X, Y, Z))
{
PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
GameTextForPlayer(i, string, 800, 5);
TogglePlayerControllable(i, false);
}
}
SetTimerEx("Countdown", 1000, false, "ffffd", range, X, Y, Z, Counter);
}
}
C:\Users\User\Desktop\samp03bsvr_win32\filterscripts\CountDown.pwn(45) : warning 219: local variable "Counter" shadows a variable at a preceding level C:\Users\User\Desktop\samp03bsvr_win32\filterscripts\CountDown.pwn(17) : warning 204: symbol is assigned a value that is never used: "Counter" Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 2 Warnings.