Jump to content

Timer-public heeft geen idee wat playerid is


Recommended Posts

Geplaatst: (bewerkt)

hallo, ik probeer een countdown te maken voor een cannon, alleen die public van de countdown zegt overal waar playerid staat

undefined symbol "playerid"

hier de code

//bovenaan de forwards en de new's

//countdown voor cannon
new Count = -1; // is de timer voor de counter
new CountdownTimer; // is de timer definitie voor de counter
forward Countdown(); // om een warning te voorkomen


public OnPlayerEnterCheckpoint(playerid)
{
       SetTimer("Countdown", 1000, 1);
TogglePlayerControllable(playerid,0);
return 1;
}

3070 public Countdown()
3071 {
3072 	if(Count == 0)
3073 	{
3074		GameTextForPlayer(playerid,"~r~launch!", 1000, 0);
3075		SetVehicleVelocity(GetPlayerVehicleID(playerid),0,25,0);
3076		KillTimer(CountdownTimer);
3077		TogglePlayerControllable(playerid, 1);
3078	}
3079	if(Count == 3)
3080	{
3081	    GameTextForPlayer(playerid,"~r~3",1500,0
3082	    SetVehiclePos(GetPlayerVehicleID(playerid),2407.0696,-2203.8452,24.1977);
3083	    SetPlayerFacingAngle(playerid, 45.4094);
3084	}
3085	else
3086	{
3087		new string[128];
3088		format(string, sizeof(string), "%d", Count);
3089		GameTextForAll(string, 1500, 0);
3090		Count--;
3091	}
3092	return 1;
3093 }


//------------credits to spike2148 (van zijn tut "race met checkpoints"
//------------met aanpassingen van Morph1

weet iemand wat hier mis is?

Bewerkt: door Morph1
Geplaatst:

Logisch, want je geeft het playerid niet door aan de functie. Ook je KillTimer zal niet werken, omdat CountdownTimer altijd 0 is. En als ik nu even goed kijk kan ik besluiten dat die functie nooit zal werken, omdat count -1 is, en dus alleen maar verder zal aftellen naar -2, -3, ... tot in het oneindige.

http://wiki.sa-mp.com/wiki/SetTimerEx

forward Countdown(playerid);

new Count = 5;
// We beginnen met 5

SetPVarInt(playerid, "CountdownTimer", SetTimerEx("Countdown", 1000, true, "d", playerid));
// We slaan het id van die timer tijdelijk op in een player variabele

if(Count == 0)
{
   KillTimer(GetPVarInt(playerid, "CountdownTimer"));
   DeletePVar(playerid, "CoundownTimer");
}

Geplaatst:

dus nu kan ik met jou countdown de count op 3 zetten en "if(Count == 3)" toevoegen met al die troep eronder???

of werkt het dan weer niet?

Geplaatst: (bewerkt)

nu werkt hij helemaal niet meer:

public OnPlayerEnterCheckpoint(playerid)
{
SetTimer("Countdown", 10, 1);
TogglePlayerControllable(playerid, 0);
return 1;
}


forward Countdown(playerid);

public Countdown(playerid)
{
new Count = 5;// We beginnen met 3
SetPVarInt(playerid, "CountdownTimer", SetTimerEx("Countdown", 1000, true, "d", playerid));// We slaan het id van die timer tijdelijk op in een player variabele

   if(Count == 0)
{
	KillTimer(GetPVarInt(playerid, "CountdownTimer"));
	DeletePVar(playerid, "CoundownTimer");
	GameTextForPlayer(playerid,"~r~launch",1000,0);
	SetVehicleVelocity(GetPlayerVehicleID(playerid),0,25,0);
	TogglePlayerControllable(playerid,1);
}
if(Count == 1)
{
    TogglePlayerControllable(playerid,0);
}
if(Count == 3)
{
    SetVehiclePos(GetPlayerVehicleID(playerid),2407.0696,-2203.8452,24.1977);
    SetVehicleZAngle(GetPlayerVehicleID(playerid),45.4094);
}
else
{
     new string[128];
     format(string, sizeof(string), "%d", Count);
     GameTextForAll(string, 1500, 0);
     Count--;
}
return 1;
}

nu word de speler bevroren en komt er alleen maar 5 seconde lang het getal 5 in beeld, en daarna weer, en weer, en weer enz.

Bewerkt: door Morph1
Geplaatst:

Dit zou het in principe moeten doen: http://pawn.pastebin.com/KTKmzHLT

ok hij werkt alleen er staat gametextforall(blabla)

nu wordt van alle spelers bij elke seconde de status gereset, dus als je loopt staat als er een seconde voorbij gaat weer ineens stil. als ik van GameTextForAll(blabla) nu GameTextForPlayer(blabla) maak klopt die format niet meer en geeft hij de error argument type mismatch (argument 1) in de regel van GameTextForPlayer(blabla)

weet iemand hoe je ervoor kan zorgen dat alleen de speler die de checkpoint ingaat de countdown in beeld krijgt?

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...