Jump to content

Recommended Posts

Geplaatst:

heeft iemand een code van: dat als je harder dan 100 gaat dat je dan een ster krijgt? of weet iemand hoe je dat kan maken, ik heb al op google zitten zoeken maar ik kan niks vinden. alvast bedankt :bier:

Geplaatst:

Ik heb wel iets als dit gevonden.

stock GetPlayerSpeed(playerid) // zet dit vanonder in je gamemode!
{
new Float:X, Float:Y, Float:Z;
if(IsPlayerInAnyVehicle(playerid))
{
	GetVehicleVelocity(GetPlayerVehicleID(playerid), X, Y, Z);
	return floatround(floatmul(floatmul(floatsqroot(floatpower(floatabs(X), 2) + floatpower(floatabs(Y), 2) + floatpower(floatabs(Z), 2)), 100), 1.621371192), floatround_round);
}
else
{
	GetPlayerVelocity(playerid, X, Y, Z);
	return floatround(floatmul(floatmul(floatsqroot(floatpower(floatabs(X), 2) + floatpower(floatabs(Y), 2) + floatpower(floatabs(Z), 2)), 100), 1.621371192), floatround_round);
}
}

maar weet iemand hoe je hiermee kan maken dat als je harder dan 100 gaat je 1 ster krijgt?

Geplaatst:

Timer of OnPlayerUpdate.

if(GetPlayerSpeed(playerid) > 100))
{
   new level = GetPlayerWantedLevel(playerid);
   SetPlayerWantedLevel(playerid, level+1);
}

Het probleem hiermee is echter dat je sterren zal blijven krijgen zolang je harder als 100 rijdt.

Om het op te lossen kan je een variabele gebruiken.

Geplaatst: (bewerkt)

Timer of OnPlayerUpdate.

if(GetPlayerSpeed(playerid) > 100))
{
   new level = GetPlayerWantedLevel(playerid);
   SetPlayerWantedLevel(playerid, level+1);
}

Het probleem hiermee is echter dat je sterren zal blijven krijgen zolang je harder als 100 rijdt.

Om het op te lossen kan je een variabele gebruiken.

Waarom die extra variable? Dat is enkel maar verspilling van geheugen.

if(GetPlayerSpeed(playerid) > 100))
{
   SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid)+1);
}

Bewerkt: door megadreams
Geplaatst:

Zo bedoel ik het niet.

Stel: Die timer is om de 1000 ms herhaald.

Op een gegeven moment rijd je meer dan honderd. Je krijgt nu 1 ster. Eén seconde later rijd je waarschijnlijk nog steeds meer dan honderd. Je krijgt nu een tweede ster. Etcetera

Om dit te voorkomen zal je een variabele (niet new level, dat hoort er niet bij) moeten zetten zodat je niet eindeloos sterren blijft krijgen.

Geplaatst: (bewerkt)

error :-( :

(873) : error 029: invalid expression, assumed zero

873 if(GetPlayerSpeed(playerid) > 100))

ben ik misschien wat vergeten?

Bewerkt: door ted80
Geplaatst:

forward speed(playerid);

public OnGameModeInit()
{
SetTimer("speed", 1000, true);
return 1;
}

public speed(playerid)
{
if(GetPlayerSpeed(playerid) > 100))
{
	SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid)+1);
}
return 1;
}

Geplaatst: (bewerkt)

Je maakt een public met een variabele (playerid), maar je geeft die variabele nergens door.

Dus maak je ofwel een timer voor elke speler apart ofwel een loop:

forward speed();

public OnGameModeInit()
{
       SetTimer("speed", 1000, true);
       return 1;
}

public speed()
{
   for(new i = 0; i < MAX_PLAYERS; i++)
   {
       if(!IsPlayerConnected(i) || !IsPlayerInAnyVehicle(i)) continue;
       if(GetPlayerSpeed(i) > 100))
       {
           SetPlayerWantedLevel(i, GetPlayerWantedLevel(i)+1);
       }
   }
   return 1;
}

Bewerkt: door Big Boss
Geplaatst: (bewerkt)

We hebben beide dezelfde fout behouden in GetPlayerSpeed die laatste ) moet weg.

forward speed();

public OnGameModeInit()
{
       SetTimer("speed", 1000, true);
       return 1;
}

public speed()
{
   for(new i = 0; i < MAX_PLAYERS; i++)
   {
       if(!IsPlayerConnected(i) || !IsPlayerInAnyVehicle(i)) continue;
       if(GetPlayerSpeed(i) > 100)
       {
           SetPlayerWantedLevel(i, GetPlayerWantedLevel(i)+1);
       }
   }
   return 1;
}

EDIT: Deze code kan je gebruiken als je wil dat hij niet gaat proberen het wanted lvl hoger te zetten dan 6 wat natuurlijk niet gaat:

forward speed();

public OnGameModeInit()
{
       SetTimer("speed", 1000, true);
       return 1;
}

public speed()
{
   for(new i = 0; i < MAX_PLAYERS; i++)
   {
       if(!IsPlayerConnected(i) || !IsPlayerInAnyVehicle(i)) continue;
       if(GetPlayerWantedLevel(i) >= "6") continue;
       if(GetPlayerSpeed(i) > 100)
       {
           SetPlayerWantedLevel(i, GetPlayerWantedLevel(i)+1);
       }
   }
   return 1;
}

Bewerkt: door megadreams
Geplaatst: (bewerkt)

Oke, maar zoals ze al hebben gezegd: Nu krijg je steeds extra wanted, elke seconde lang!

Je kan er ook voor zorgen dat je elke minuut één extra kan krijgen. Ik zal ALLES even geven ;)

#include <a_samp>

#define MAX_SPEED 100 //Maximale snelheid, veranderen!

new wantedup[MAX_PLAYERS];

forward GetPlayerSpeed(playerid);
forward WantedAgain(playerid);
forward speed();

public OnFilterScriptInit()
{
SetTimer("speed", 1000, true);
	return 1;
}

public speed()
{
for(new i = 0; i < MAX_PLAYERS; i++)
	{
	if(!IsPlayerConnected(i) || !IsPlayerInAnyVehicle(i)) continue;
		if(GetPlayerSpeed(i) >= MAX_SPEED)
		{
			if(wantedup[i] == 0)
			{
		SetPlayerWantedLevel(i, (GetPlayerWantedLevel(i)+1));
		SetTimerEx("WantedAgain", 60000, false, "i", i);
		wantedup[i] = 1;
		}
		}
	}
}

public WantedAgain(playerid)
{
wantedup[playerid] = 0;
}

stock GetPlayerSpeed(playerid)
{
new Float:X, Float:Y, Float:Z;
	if(IsPlayerInAnyVehicle(playerid))
	{
	GetVehicleVelocity(GetPlayerVehicleID(playerid), X, Y, Z);
		return floatround(floatmul(floatmul(floatsqroot(floatpower(floatabs(X), 2) + floatpower(floatabs(Y), 2) + floatpower(floatabs(Z), 2)), 100), 1.621371192), floatround_round);
	}
	else
	{
		GetPlayerVelocity(playerid, X, Y, Z);
		return floatround(floatmul(floatmul(floatsqroot(floatpower(floatabs(X), 2) + floatpower(floatabs(Y), 2) + floatpower(floatabs(Z), 2)), 100), 1.621371192), floatround_round);
	}
}

Ik weet niet of hij het doet, maar ik ga er wel van uit ;)

Je hebt iig geen errors/warnings

Gvm

Bewerkt: door Kwarde

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