aber ich hätte es glaube ich so geregelt
Also die Idee mit der Schleife ist schon gut, aber dein Code wird nicht funktionieren, da du x,y,z nicht updatest + nicht als erstes abfragst.
Desweiteren verwendest du hier 2 globale Variablen mit dem index MAX_PLAYERS, ich zeige mal, dass man das nicht brauch und der Code effizienter wird:
Zudem sollte man eine Zeitsperre einbauen, damit man den Command nicht spammt, während man sich noch bewegt:
C
ocmd:move(playerid,params[])
{
if(GetPVarInt(playerid,"p_move")) return SendClientMessage(playerid,-1,"Du bewegst dich schon gerade!");
SetPVarInt(playerid,"p_move",1);
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
SetTimerEx("RotatePlayer", 200, 0, "iifff", playerid, 0, x, y, z);
return 1;
}
public RotatePlayer(playerid, count, Float:x, Float:y, Float:z)
{
if(++count == 10) return DeletePVar(playerid,"p_move");
y += 2;
SetPlayerPos(playerid, x, y, z);
SetTimerEx("RotatePlayer", 200, 0, "iifff", playerid, count, x, y, z);
return 1;
}
Alles anzeigen