Construction Set um andere Objekte kreisen lassen

Arcanum Antor

RPG-Spielleiter
1) wie lautet eigentlich ein Script, mit dem ich ein Objekt (oder mehrere, die per parent Ref verbunden sind) sich um einen XMarker oder so drehen lasse?
2) kann ich zusätzlich noch einen rotate befehl mit einbauen?
Bsp: ich will eine Kugel dazu bringen, um einen xMarker zu kreisen und dabei um die eigene Achse gedreht werden.
 
Also das Objekt um die eigene Achse kreisen zu lassen würde so aussehen :
Code:
scn RotationSC
ref DasObjekt
Begin Gamemode 

if DasObjekt == 0
   set DasObjekt to getself
   return
endif 
  DasObjekt.rotate z 10 ;je höher die Zahl desto schneller die Rotation (Grad pro Sec)

End

Das Ganze Objekt um einen Marker zu drehen ist etwas schwieriger aber machbar
Du brauchst aber eine Funktionsgleichung , -sowas wie [x -> 2y²]-
,die einen Kreis beschreibt.
Dann das ganze mit setpos y und machen
 
das mit rotate ist schon klar, abwer geht das auch, wenn ich mehrere Objekte miteinander Verbinde (also Parent ID) , dass die sich um eine gemeinsame Achse drehen, oder rotiert trotzdem alles für sich?

Und wegen dem Marker-Kreisen: muss man nicht noch ein paar andere float Variablen einbauen, um die Geschwindigkeit , den Abstand usw festzulegen? ich einte, ich hätte irgendwo mal ein tut gesehen, wo man auch für die x- und y-Koordinaten ne float gehabt hat. is das hier nötig? wenn ja... wie :huh:
 
Arcanum Antor schrieb:
[...]aber geht das auch, wenn ich mehrere Objekte miteinander Verbinde (also Parent ID) , dass die sich um eine gemeinsame Achse drehen, oder rotiert trotzdem alles für sich?

Kp probiers doch einfach mal aus:) Dann wird sich die Frage mit den andern achsen auch beantworten :)

Grtz..::sinHHHans::..
 
merkwürdig^^
ich hab ein paar neue Schlüssel genommen, mit PID verbunden und wo ich das Rotate-Script zuweisen wollte, stürzt das CS ab. Neuer Versuch, bestimmt nur Zufall. Aber: genau dasselbe wieder.

/Edit: OK, dass mit dem eigene Achse rotieren werd ich wahrscheinlich wegassen. Fehlt nur noch ein Script um was um nen Marker oder so kreisen zu lassen. Weiß jemand Rat?
 
Zuletzt bearbeitet:
Versuch mal die Reference Editors ID zunehmen und den Getself kram raushaust
so:
Code:
scn RotationSC


Begin Gamemode 

  Reference EditorId.rotate z 10 ;je höher die Zahl desto schneller die Rotation (Grad pro Sec)

End

:)
 
Hab ja scjon einen Versuch mit und zwei ohne gestartet xD
aber ich hab den post editiert. es fehlt also nur noch das kreisen um was anderes :roll:
 
Also das um die eigene Axse drehen klappt doch ,habs gerade ausprobiert :)

ich schau ma wie das mit der Sache um den X- Marker geht\gehen könnt
 
Ich glaub, das geht nicht.
Entweder benutzt du glaub einfach sau viel getpos befehle oder du musst animieren.
 
ach schmarn ,erstens heißt das setpos zum bewegen und zweitens kan man ein Objekt ja auch mit nur einem setpos Befehl geradeausbewegen ,das ist dann eine lineare Funktion oder wie das heißt
also muss das auch gehn das man das Objekt auf diese Weise im Kreis Bewegt.
Allerdings braucht ma dann 2 setpos Befehle ,einen für y der andere für z
:lol:

\Edit: oder du verschiebst den Achsen Schnittpunkt mit NifScope
 
naja, bei kleineren Radien wäre das möglich, aber das betreffende Objekt soll sich am Ende durch ganz Cyrodiil kreisen^^
da ist NifScope etwas umständlich^^

@Nici: ich bin mir ziemlich sicher, dass es geht, ich hab wie gesagt mal ein Tut gesehen, wo das vorkam... wen ich nur wüsste wo... Es ging jedenfalls darum, neue Zauber zu erstellen. einer war,d ass eine Kugel um den Spieler kreist und allen , die sie berühren Schaden zufügt. Bloß wo? :huh:
 
Also gut ich weiß zumindest (glaub ich ) wie es geht , und zwar mit den Funktionen x => alpha mal sinus mal radius und bzw. y=> alpha mal cosinus mal raduis

:lol:
Allerdings braucht man dafür OBSE (Oblivion Script Extender) wegen den Winkelfunktionen :)

\Edit:Alles klar hab das Sript geschrieben ,werds am fr oder heut noch rein stellen
Ps.:es funkt ;)
 
Zuletzt bearbeitet:
ach schmarn ,erstens heißt das setpos zum bewegen und zweitens kan man ein Objekt ja auch mit nur einem setpos Befehl geradeausbewegen ,das ist dann eine lineare Funktion oder wie das heißt
also muss das auch gehn das man das Objekt auf diese Weise im Kreis Bewegt.
Allerdings braucht ma dann 2 setpos Befehle ,einen für y der andere für z
:lol:

\Edit: oder du verschiebst den Achsen Schnittpunkt mit NifScope

In MW wars getpos. Naja egal.

Aber eins interessiert mich. Für was ist das? Wird es ein Sattelit?
 
Naja... es gibt viele Stadt/Dorf PIs... aber alle sind entweder ganz normal irgendwo in Cyrodiil platziert, oder in einem eigenen World Space. Also mal was neues: eine fliegende, vergessene Stadt, die man erst mal finden muss. Ich hab auch schon ne Idee, weil das sonst ziemlich Prerformancelastig wird, wenn da so viele Refs durch die Weltgeschichte fliegen ;) Am Anfang ists vielleicht nicht eine komplette Stadt, aber es sollen schon einige NPCs, Händler etc vorhanden sein. Natürlich kommt man nicht ganz so einfach da hin und nicht alles ist gleich perfekt^^

Wegen dem getpos: das ist zum Abfragen der Position. Setpos ändert die Position.
 
Zuletzt bearbeitet:
Alles klar bin wieder da also hier is es :
Code:
scn RotationSC

float timer
float Radius
float x
float y
float A


short checkOnce

Begin Gamemode
;	message "timer is %.3f" ,timer
;	message "Alpha is %.3f" ,A
;	message "Radius is %.3f" ,Radius
;	message "x is %.3f" ,x
;	message "y is %.3f" ,y




 	Flieger.rotate  z 17 ;je höher die Zahl desto schneller die Rotation (Grad pro Sec)
		
		if timer >= 360
			set timer to 0	
		endif
 
		set timer to (timer+getsecondspassed)
		set A to timer;hier kannst du die Dreh Gescwindigkeit ändern indem du z.B +1 oder -1 dazu schreibst
		 
		If CheckOnce == 0
			set Radius to Flieger.getdistance Zentrum	
			set timer to 1	
			set CheckOnce to 1
		endif
		
		set y to Radius*rsin A
		set x to Radius*rcos A

			FliegerRef.setpos x x
			FliegerRef.setpos y y 
		
	
	
	
End


:FliegerRef ist die EditorsReferenceID von dem Objekt das sich drehen soll
;Zentrum is der X.Marker um  den sich das Objekt drehen soll

So die erklärung steht ja unten drinnen
 
  • Like
Reaktionen: Arcanum Antor
DANKE! Mein Retter xD
Wenn das auch noch mit PID funzt, ist es absolut Perfekt, geht zwar auch ohne, aber mit etwas mehr Aufwand xD

PS: Aber trotzdem, gitb es irgendwo ne Erklärung für die ganzen OBSE-Functions?
 
Zuletzt bearbeitet: