June 13, 201015 yr 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
June 13, 201015 yr Author 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?
June 13, 201015 yr 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.
June 13, 201015 yr 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); } Edited June 13, 201015 yr by megadreams
June 13, 201015 yr 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.
June 14, 201015 yr Ja weet ik maar ik zorgde er gewoon voor dat in dat mini stukje je geen teveel geheugen gebruikt.
June 14, 201015 yr Author error : (873) : error 029: invalid expression, assumed zero 873 if(GetPlayerSpeed(playerid) > 100)) ben ik misschien wat vergeten? Edited June 14, 201015 yr by ted80
June 14, 201015 yr Author 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; }
June 14, 201015 yr 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; } Edited June 14, 201015 yr by Big Boss
June 14, 201015 yr 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; } Edited June 14, 201015 yr by megadreams
June 14, 201015 yr 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 Edited June 14, 201015 yr by Kwarde
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