Hallo Brotfische
Tut mir Leid, wenn ich mal wieder mit meiner Langeweile nerve
Also, es handelt sich hierbei darum, den Spieler zu bewegen, ohne dass er Tasten drücken muss
Die Include bietet folgende Funktion:
MovePlayer(playerid,Float:x,Float:y,Float:z,bool:speed);
/*
playerid = spielerid von dem Spieler der bewegt werden soll
x,y,z = Ziel Koordinaten, wenn der Spieler da angekommen ist, hört er auf sich zu bewegen.
speed = Wenn ihr da false eingebt, läuft er und auf true rennt er.
*/
UpdateMovement(playerid,Float:angle,Float:x,Float:y,Float:z);
/*
playerid = spielerid von dem Spieler der bewegt werden soll
angle = Neue Richtung, wo der Spieler hinrennen soll
x,y,z = Neuen Ziel Koordinaten
*/
StopMovement(playerid); //Beendet das Laufen des Spielers
forward OnPlayerMovementEnd(playerid);
//Das hier wird aufgerufen, sobald der Spieler an den Zielkoordinaten angekommen ist.
//<< Bitte Beispielskript mal durchlesen! >>
Sehr Wichtig:
Also, so funktioniert die Include:
Der Spieler rennt bzw läuft zu den Ziel-Koordinaten und das ist abhängig von seiner FacingAngle wo er lang läuft, denn in die Richtung von dem Winkel bewegt der Spieler sich.
Sprich, er läuft immer gerade aus, sollte das Ziel nicht auf der geraden Linie des Spielers sein, rennt er endlos (oder bis er vor ein Objekt läuft).
Wenn man auch Kurven o.ä. laufen möchte, dann muss man das so:
SetPlayerFacingAngle(playerid,90.0); //Die Richtung wo der Spieler hinlaufen soll
MovePlayer(playerid,300.0,200.0,10.0,false); //Jaja ich weiß komische Koordinaten :D
//Das mit a ist nur ein Beispiel, man kann natürlich auch mit Spieler-Variablen o.ä. arbeiten :)
public OnPlayerMovementEnd(playerid) {
new Float:a;
GetPlayerFacingAngle(playerid,a);
if(89 <= a <= 91) //Kleiner Toleranzbereich
{
return UpdateMovement(playerid,180.0,692.6395,-1866.9785,5.2367);
}
return StopMovement(playerid); //das ist wichtig, sonst stoppt er niemals
}
Download:
Source-Code: Pastebin
Direkter-Download: Mediafire
Schlusswort:
Wenn man es richtig macht, läuft er die ganze Zeit flüssig auch in Kurven
Und er läuft nicht durch Objekte! Sondern wie ein normaler Spieler!
Während er läuft, kann er keine Tasten drücken, aber die Kamera bewegen.
Würde mich über ein kleines Feedback freuen
PS: Eigentlich wollte ich ein Video reinstellen...aber meine Upload-Rate ist einfach zu scheiße dafür, dass hätte jetzt ewig gedauert Er rennt bzw läuft einfach wie ein normaler Spieler, als ob ihr laufen würdet..nur ihr tut es halt nicht
mfg.
//Edit: Einen Fehler gefixxt, damit keine leeren Funktionen entstehen.