Geplaatst: 4 juli 201016 jaren Hey, Heb nu dit scriptje gemaakt voor mijn speedometer. //test script for speedometer #include <a_samp> #define speedupdate 1000 new Text:textdraw[MAX_PLAYERS]; public OnFilterScriptInit() { print("\n--------------------------------------"); print(" Speedometer by [RTA]Alex LOADED......."); print("--------------------------------------\n"); SetTimer("speedupdate",speedupdate,1); for(new playerid = 0; playerid < MAX_PLAYERS; playerid++) { textdraw[playerid] = TextDrawCreate(505.000000,419.000000,"TEST"); } return 1; } public OnPlayerConnect(playerid) { return 1; } public OnPlayerUpdate(playerid) { if(GetPlayerSpeed(playerid) > 300) { } if(IsPlayerInAnyVehicle(playerid)) { TextDrawShowForPlayer(playerid,textdraw[playerid]); } return 1; } public OnFilterScriptExit() { return 1; } 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); } } Hoe moet ik er nou voor zorgen dat de GetPlayerSpeed output word weergeven in die Textdraw. Liefst met uitleg, moet er ook wat van leren natuurlijk . Gr, Alex Bewerkt: 4 juli 201016 jaren door alex.naoumov
Geplaatst: 4 juli 201016 jaren Ik zou om te beginnen iets anders gebruiken dan OnPlayerUpdate om de tekst op het scherm te zetten. Persoonlijk zou ik het zo doen: public OnPlayerStateChange(playerid, newstate, oldstate) { if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) { TextDrawShowForPlayer(playerid,textdraw[playerid]); } else { TextDrawHideForPlayer(playerid, textdraw[playerid]); } return 1; } Dan, om de snelheid te krijgen: new speed[32]; format(speed, sizeof(speed), "%d Km/h", GetPlayerSpeed(playerid)); TextDrawSetString(textdraw[playerid], speed);
Geplaatst: 5 juli 201016 jaren Ik zou om te beginnen iets anders gebruiken dan OnPlayerUpdate om de tekst op het scherm te zetten. Persoonlijk zou ik het zo doen: public OnPlayerStateChange(playerid, newstate, oldstate) { if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) { TextDrawShowForPlayer(playerid,textdraw[playerid]); } else { TextDrawHideForPlayer(playerid, textdraw[playerid]); } return 1; } Dan, om de snelheid te krijgen: new speed[32]; format(speed, sizeof(speed), "%d Km/h", GetPlayerSpeed(playerid)); TextDrawSetString(textdraw[playerid], speed); Maar dan zou je Speed op een snelheid blijven hangen en niet veranderen.. als je harder of langzamer gaat
Geplaatst: 5 juli 201016 jaren Die TextDrawSetString zet je uiteraard in je timer ... SetTimer("speedupdate",speedupdate,1);
Hey,
Heb nu dit scriptje gemaakt voor mijn speedometer.
//test script for speedometer #include <a_samp> #define speedupdate 1000 new Text:textdraw[MAX_PLAYERS]; public OnFilterScriptInit() { print("\n--------------------------------------"); print(" Speedometer by [RTA]Alex LOADED......."); print("--------------------------------------\n"); SetTimer("speedupdate",speedupdate,1); for(new playerid = 0; playerid < MAX_PLAYERS; playerid++) { textdraw[playerid] = TextDrawCreate(505.000000,419.000000,"TEST"); } return 1; } public OnPlayerConnect(playerid) { return 1; } public OnPlayerUpdate(playerid) { if(GetPlayerSpeed(playerid) > 300) { } if(IsPlayerInAnyVehicle(playerid)) { TextDrawShowForPlayer(playerid,textdraw[playerid]); } return 1; } public OnFilterScriptExit() { return 1; } 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); } }Hoe moet ik er nou voor zorgen dat de GetPlayerSpeed output word weergeven in die Textdraw.
Liefst met uitleg, moet er ook wat van leren natuurlijk
.
Gr, Alex
Bewerkt: door alex.naoumov