ted80 Geplaatst: 13 juni 2010 Rapport Geplaatst: 13 juni 2010 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 Reageren
ted80 Geplaatst: 13 juni 2010 Auteur Rapport Geplaatst: 13 juni 2010 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? Reageren
Big Boss Geplaatst: 13 juni 2010 Rapport Geplaatst: 13 juni 2010 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. Reageren
Megadreams Geplaatst: 13 juni 2010 Rapport Geplaatst: 13 juni 2010 (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: 13 juni 2010 door megadreams Reageren
Big Boss Geplaatst: 13 juni 2010 Rapport Geplaatst: 13 juni 2010 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. Reageren
Megadreams Geplaatst: 14 juni 2010 Rapport Geplaatst: 14 juni 2010 Ja weet ik maar ik zorgde er gewoon voor dat in dat mini stukje je geen teveel geheugen gebruikt. Reageren
ted80 Geplaatst: 14 juni 2010 Auteur Rapport Geplaatst: 14 juni 2010 (bewerkt) error : (873) : error 029: invalid expression, assumed zero 873 if(GetPlayerSpeed(playerid) > 100)) ben ik misschien wat vergeten? Bewerkt: 14 juni 2010 door ted80 Reageren
ted80 Geplaatst: 14 juni 2010 Auteur Rapport Geplaatst: 14 juni 2010 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; } Reageren
Big Boss Geplaatst: 14 juni 2010 Rapport Geplaatst: 14 juni 2010 (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: 14 juni 2010 door Big Boss Reageren
Megadreams Geplaatst: 14 juni 2010 Rapport Geplaatst: 14 juni 2010 (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: 14 juni 2010 door megadreams Reageren
Kwarde Geplaatst: 14 juni 2010 Rapport Geplaatst: 14 juni 2010 (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: 14 juni 2010 door Kwarde Reageren
Recommended Posts
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.