Jump to content

Unfreeze probleem


Recommended Posts

Geplaatst:

Ik ben bezig met een race minigame,

en ik heb er nu een begin count ingezet (die van Sandra Jump-Competition)

Maar nu werkt het unfreezen alleen maar bij 1 speler,

Weet iemand hoe ik het zo neerzet zodat het voor iedereen geld die aan de race mee doet?

Hier is de code van de timer:

forward Start();public Start()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(join[i] == 1)
	{
		Count++;
		if(Count == 1) GameTextForPlayer(i, "~g~30", 3000, 3);
		if(Count == 2) GameTextForPlayer(i, "~g~29", 3000, 3);
		if(Count == 3) GameTextForPlayer(i, "~g~28", 3000, 3);
		if(Count == 4) GameTextForPlayer(i, "~g~27", 3000, 3);
		if(Count == 5) GameTextForPlayer(i, "~g~26", 3000, 3);
		if(Count == 6) GameTextForPlayer(i, "~g~25", 3000, 3);
		if(Count == 7) GameTextForPlayer(i, "~g~24", 3000, 3);
		if(Count == 8) GameTextForPlayer(i, "~g~23", 3000, 3);
		if(Count == 9) GameTextForPlayer(i, "~g~22", 3000, 3);
		if(Count == 10) GameTextForPlayer(i, "~g~21", 3000, 3);
		if(Count == 11) GameTextForPlayer(i, "~g~20", 3000, 3);
		if(Count == 12) GameTextForPlayer(i, "~g~19", 3000, 3);
		if(Count == 13) GameTextForPlayer(i, "~g~18", 3000, 3);
		if(Count == 14) GameTextForPlayer(i, "~g~17", 3000, 3);
		if(Count == 15) GameTextForPlayer(i, "~g~16", 3000, 3);
		if(Count == 16) GameTextForPlayer(i, "~b~15", 3000, 3);
		if(Count == 17) GameTextForPlayer(i, "~b~14", 3000, 3);
		if(Count == 18) GameTextForPlayer(i, "~b~13", 3000, 3);
		if(Count == 19) GameTextForPlayer(i, "~b~12", 3000, 3);
		if(Count == 20) GameTextForPlayer(i, "~b~11", 3000, 3);
		if(Count == 21) GameTextForPlayer(i, "~b~10", 3000, 3);
		if(Count == 22) GameTextForPlayer(i, "~b~9", 3000, 3);
		if(Count == 23) GameTextForPlayer(i, "~b~8", 3000, 3);
		if(Count == 24) GameTextForPlayer(i, "~b~7", 3000, 3);
		if(Count == 25) GameTextForPlayer(i, "~b~6", 3000, 3);
		if(Count == 26) GameTextForPlayer(i, "~r~5", 3000, 3);
		if(Count == 27) GameTextForPlayer(i, "~r~4", 3000, 3);
		if(Count == 28) GameTextForPlayer(i, "~r~3", 3000, 3);PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
		if(Count == 29) GameTextForPlayer(i, "~r~2", 3000, 3);PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
		if(Count == 30) GameTextForPlayer(i, "~r~1", 3000, 3);PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
		if(Count == 31)
		{
		racestart = 2;
		GameTextForPlayer(i, "~b~Go ~g~Go! ~r~GO!!", 2000, 3);
		KillTimer(countstart);
		PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
		TogglePlayerControllable(i, 1);
		}
	}
}
}

Geplaatst:

Uhg, wat is dat voor een inefficiënte code ...

new Count = 30;

forward Start();
public Start()
{
if(Count == -1) { return 1; }
for(new i = 0; i < MAX_PLAYERS; i++)
{
	if(join[i] == 1)
	{
		switch(Count)
		case 0:
		{
			GameTextForPlayer(i, "GO! GO! GO!", 2500, 3);
			racestart = 2;
			TogglePlayerControllable(i, 1);
		}
		case 1..3:
		{
			format(string, sizeof(string), "~r~%d", Count);
			GameTextForPlayer(i, string, 1000, 3);
			PlayerPlaySound(1, 1057, 0.0, 0.0, 0.0);
		}
		default:
		{
			format(string, sizeof(string), "~g~%d", Count);
			GameTextForPlayer(i, string, 1000, 3);
		}
	}
}
if(Count >= 0) { Count--; }
SetTimer("Start", 1000, 0);
return 1;
}

Geen idee of dit werkt, maar daar zou je in ieder geval naar toe moeten werken. Het heeft geen zin om 30 if's te zetten als je de format en/of switch gebruikt.

Geplaatst:

Als eerste krijg ik deze errors:

F:\Server B\filterscripts\chiliadrace.pwn(377) : warning 217: loose indentation

F:\Server B\filterscripts\chiliadrace.pwn(384) : error 001: expected token: "{", but found "case"

F:\Server B\filterscripts\chiliadrace.pwn(403) : warning 217: loose indentation

F:\Server B\filterscripts\chiliadrace.pwn(409) : error 030: compound statement not closed at the end of file (started at line 376)

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

2 Errors.

en als ik bij switch(Count)

switch(Count)

{

doe en daarna nog een } acteraan dan werkt het wel maar krijg ik direct GO GO GO

Ik heb de } ook al ergens anders neergezet maar dat werkte ook niet, case 1..3: naar case 1.3: veranderd werkte ook al niet. dus ik weet niet echt hoe ik dat moet oplossen.

Ik kan het ook terug zetten naar de vorige want het gaat me erom dat iedereen die de race heeft gejoint ook weer kan bewegen naar de countdown.

Geplaatst:

Zo zou het moeten werken. Heb het niet getest, maar heb wel op errors gecontroleerd.

new Count = 30;

forward Start();
public Start()
{
if(Count == -1) { return 1; }
for(new i = 0; i < MAX_PLAYERS; i++)
{
	if(join[i] == 1)
	{
		switch(Count)
		{
			case 0:
			{
				GameTextForPlayer(i, "GO! GO! GO!", 2500, 3);
				racestart = 2;
				TogglePlayerControllable(i, 1);
			}
			case 1..3:
			{
				format(string, sizeof(string), "~r~%d", Count);
				GameTextForPlayer(i, string, 1000, 3);
				PlayerPlaySound(1, 1057, 0.0, 0.0, 0.0);
			}
			default:
			{
				format(string, sizeof(string), "~g~%d", Count);
				GameTextForPlayer(i, string, 1000, 3);
			}
		}
	}
}

if(Count >= 0) { Count--; }
SetTimer("Start", 1000, 0);
return 1;
}

Geplaatst:

new Count = 30; werkt helemaal niet,

Ik heb nu bovenaan staan new Count;

en bij OnFilterScriptInit staan:

Count = 30;

Maar ik krijg nog steeds GO GO GO,

Dus als iemand weet hoe ik gewoon iedereen weer op TogglePlayerControllable(playerid, 1); komt is het ook goed,

Ook al staat er voor alle spelers die gejoint zijn, toch doet hij die ene actie niet,

Zonder dat ingewikelde systeem doet de counter het prima, maar doe hij alleen maar voor spelerslot 0 TogglePlayerControllable(playerid, 1);

Dus hoe doe ik gewoon wat in mijn eerste bericht staat alleen dan met gewoon voor alle spelers TogglePlayerControllable(playerid, 1); ??

Geplaatst:
new Count = 30; werkt helemaal niet,

Ik heb nu bovenaan staan new Count;

en bij OnFilterScriptInit staan:

Count = 30;

Maar ik krijg nog steeds GO GO GO,

Dus als iemand weet hoe ik gewoon iedereen weer op TogglePlayerControllable(playerid, 1); komt is het ook goed,

Ook al staat er voor alle spelers die gejoint zijn, toch doet hij die ene actie niet,

Zonder dat ingewikelde systeem doet de counter het prima, maar doe hij alleen maar voor spelerslot 0 TogglePlayerControllable(playerid, 1);

Dus hoe doe ik gewoon wat in mijn eerste bericht staat alleen dan met gewoon voor alle spelers TogglePlayerControllable(playerid, 1); ??

volgens mij kan je ook geen filterscript en gamemode in een bouwen. maja. ik zal wel weer iets fouts zeggen :D

Geplaatst: (bewerkt)

forward Start();
new Count;
new join[MAX_PLAYERS];
new CountTimer = 0;

public Start()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(join[i] == 1)
	{
		Count++;
		if(Count == 1) GameTextForPlayer(i, "~g~30", 3000, 3);
		else if(Count == 2) GameTextForPlayer(i, "~g~29", 3000, 3);
		else if(Count == 3) GameTextForPlayer(i, "~g~28", 3000, 3);
		else if(Count == 4) GameTextForPlayer(i, "~g~27", 3000, 3);
		else if(Count == 5) GameTextForPlayer(i, "~g~26", 3000, 3);
		else if(Count == 6) GameTextForPlayer(i, "~g~25", 3000, 3);
		else if(Count == 7) GameTextForPlayer(i, "~g~24", 3000, 3);
		else if(Count == 8) GameTextForPlayer(i, "~g~23", 3000, 3);
		else if(Count == 9) GameTextForPlayer(i, "~g~22", 3000, 3);
		else if(Count == 10) GameTextForPlayer(i, "~g~21", 3000, 3);
		else if(Count == 11) GameTextForPlayer(i, "~g~20", 3000, 3);
		else if(Count == 12) GameTextForPlayer(i, "~g~19", 3000, 3);
		else if(Count == 13) GameTextForPlayer(i, "~g~18", 3000, 3);
		else if(Count == 14) GameTextForPlayer(i, "~g~17", 3000, 3);
		else if(Count == 15) GameTextForPlayer(i, "~g~16", 3000, 3);
		else if(Count == 16) GameTextForPlayer(i, "~b~15", 3000, 3);
		else if(Count == 17) GameTextForPlayer(i, "~b~14", 3000, 3);
		else if(Count == 18) GameTextForPlayer(i, "~b~13", 3000, 3);
		else if(Count == 19) GameTextForPlayer(i, "~b~12", 3000, 3);
		else if(Count == 20) GameTextForPlayer(i, "~b~11", 3000, 3);
		else if(Count == 21) GameTextForPlayer(i, "~b~10", 3000, 3);
		else if(Count == 22) GameTextForPlayer(i, "~b~9", 3000, 3);
		else if(Count == 23) GameTextForPlayer(i, "~b~8", 3000, 3);
		else if(Count == 24) GameTextForPlayer(i, "~b~7", 3000, 3);
		else if(Count == 25) GameTextForPlayer(i, "~b~6", 3000, 3);
		else if(Count == 26) GameTextForPlayer(i, "~r~5", 3000, 3);
		else if(Count == 27) GameTextForPlayer(i, "~r~4", 3000, 3);
		else if(Count == 28) GameTextForPlayer(i, "~r~3", 3000, 3);PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
		else if(Count == 29) GameTextForPlayer(i, "~r~2", 3000, 3), PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
		else if(Count == 30) GameTextForPlayer(i, "~r~1", 3000, 3), PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
											CountTimer = SetTimer("Start", 1000,0); // start timer
		if(Count == 31)
		{
											   KillTimer(CountTimer); // als de count al 31 is dan stopt ie de timer
		   racestart = 2;
		   GameTextForPlayer(i, "~b~Go ~g~Go! ~r~GO!!", 2000, 3);
		   KillTimer(countstart);
		   PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
		   TogglePlayerControllable(i, 1);
		}
	}
}
}

EDIT:

new Count;
new cString[100];
new CountTimer = 0;
new join[MAX_PLAYERS];

public Start()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(join[i] == 1)
	{
		Count++;
		Format(cString, 100, "~b~Time: ~g~%d", Count);
											GameTextForAll(cString,1000,5);
		   										CountTimer = SetTimer("Start", 1000,0); // start timer
		if(Count == 31)
		{										KillTimer(CountTimer); // als de count al 31 is dan stopt ie de timer
		   racestart = 2;
		   GameTextForPlayer(i, "~b~Go ~g~Go! ~r~GO!!", 2000, 3);
		   KillTimer(countstart);
		   PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
		   TogglePlayerControllable(i, 1);
		}
	}
}
}

EDIT2:

  • Thnx GtaF voor goede uitlijning,........

Bewerkt: door Crusher!!

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...