Genau, Float X speichert die X Koordinate, Float Y die Y Koordinate und Float Z die Z Koordinate, damit alle Objekte ihren "eigenen Weg" gehen, und sich nicht alle zur selben Position bewegen.
Beiträge von BloodyEric
-
-
Dann hast du es irgendwo eingefügt, wo es sich nicht aktualisiert.
-
Wie sind deine Createobjects?
Achso, jetzt versteh ichs.
Ich dachte du machst immer
new chinajailobject[0]=
Wenn das new davor fehlt, musst du deins wieder einbauen - erhöhe trotzdem die Schleife um 1, damit alle Objekte bewegt werden.
Also alles wie vorher, als es fast funktioniert hat und der Schleife noch einen Durchgang mehr geben

-
Klammerfehler, irgendwo. Untersuch das, was du zuletzte geändert hast.

-
SetPlayerScore(playerid,GetPlayerMoney(playerid));
-
new chinajailobjecte[37];//ich habe zwar 36 Objecte aber wenn ich da jetzt 36 mache kommt:
Das brauchst du nicht.
for(new i; i!=36;i++) //habe 36 Objecte
Mach da eine 37 draus.

Die Floats werden zum Zwischenspeichern der Objektpositionen benötigt.
-
if (strcmp("/aufbauen", cmdtext, true, 10) == 0)
{
for(new i; i!=36;i++) //habe 36 Objecte
{
new Float:x;
new Float:y;
new Float:z;
GetObjectPos(chinajailobjecte[i],x,y,z);
MoveObject(chinajailobjecte[i],x,y,z-10.0,1); //hier wurde die Bewegungsgeschwindigkeit vergessen (glaub ich)
}
return 1;
}//hier gehts halt weiter mit anderen BefehlenVersuchs so nochmal. Denk aber dran, dass die Objekte so abwärts gehen.
-
SetPlayerPos(playerid, 3096.1868,-61.5218,1547.7147);
SetPlayerCameraPos(playerid, 3096.0989,-57.3007,1547.7147);
SetPlayerCameraLookAt(playerid, 3096.1868,-61.5218,1547.7147);Versuchs ma so.
-
Okay.
Dann machst du alle deine Bühnenobjekte so:
BObject[0]=CreateObject
BObject[1]=CreateObject
BObject[2]=CreateObject
..
BObject[20]=CreateObject //Oder deine maximale ObjektzahlDer CMD dann:
if-strcmp--blabla
{
for(new i; i!=20;i++) //Halt deine Maximale Objektanzahl der Bühne
{
new Float:x;
new Float:y;
new Float:z;
GetObjectPos(BObject[i],x,y,z);
MoveObject(BObject[i],x,y,z+10.0);
return 1;
}
}Ungetestet, sollte aber laufen.
-
Dein Bruder hängt ja auch am gleichen Router dran. Hast du den entsprechenden Port via UPD und TCP freigeschaltet?
-
Dahinter steckt, dass du damit mehrere Objekte mit einer Schleife verschieben kannst.
Wenn du zb
MeinObjekt[0]=CreateObject
MeinObjekt[1]=CreateObject
MeinObjekt[2]=CreateObject
MeinObjekt[3]=CreateObject
...
MeinObjekt[21]=CreateObjecterstellst, kannst du damit alle Objekte mit einer Zeile verändern. Funktioniert aber nur fast, ich schätze mal, du willst alle Objekte nur in eine Richtung verschieben/erhöhen oder vertiefen? Du musst mit GetObjectPos dann noch ne Kleinigkeit machen, erklär mal dein genaues Vorhaben.
-
Dann ist der Port im Router nicht frei.
-
-
Ich kann deiner Frage grad nicht folgen.
Die Funktion MoveObject gibt immer die Dauer der ganzen Prozedur zurück.
Daher kann man sie einfach mit newxy=MoveObject(blabla) erfahren.
Da du die neuen Koordinaten angibst, und dazu noch den Geschwindigkeitsparameter rechnet es sich selbstständig die Zeit aus und gibt sie in der Variable aus.
-
Das wird dynamisch berechnet mit der Formel: Zeit= Weg/Geschwindigkeit, da dem Script ja die Geschwindigkeit und der Weg bekannt sind. Der letzte Parameter in der MoveObject Funktion gibt ja die Geschwindigkeit an.
Andere Wege gibts meines Wissens nicht, Robos Weg ist der einfachste.
-
Oh sorry, natürlich hast du Recht, hatte grad nen Denkfehler. Du gibst die neuen Koordinaten bei Moveobject ein, nicht die "relativen Wege". Wenn du ein Objekt daher nur nach Oben bewegen willst, nimmst du die Standardkoordinaten und erhöhst lediglich die Z-Koordinate.
-
if(GetPlayerWeaponInv(playerid,35)) //Die ID vom Rocketlauncher, nur als Beispiel
{
Kick(playerid);
} -
-
The Big Victims [TBV]
-
SAMP unterstützt keine Mods, selbst Schuld.