ehem. OMSI - Forum
Würden Sie gerne auf diese Nachricht reagieren? Erstellen Sie einen Account in wenigen Klicks oder loggen Sie sich ein, um fortzufahren.
ehem. OMSI - Forum

Dieses Forum wurde geschlossen. Das neue Forum befindet sich auf www.omnibussimulator.de/forum !
 
StartseiteStartseite  Neueste BilderNeueste Bilder  SuchenSuchen  AnmeldenAnmelden  LoginLogin  

 

 Scriptcode - Benutzung des "zusätzlichen Stacks"

Nach unten 
4 verfasser
AutorNachricht
frosti




Anzahl der Beiträge : 8
Anmeldedatum : 17.05.11

Scriptcode - Benutzung des "zusätzlichen Stacks" Empty
BeitragThema: Scriptcode - Benutzung des "zusätzlichen Stacks"   Scriptcode - Benutzung des "zusätzlichen Stacks" Icon_minitimeDo 19 Mai - 6:43

Wie wird der "Zusätzliche Stack" genutzt?

In der Datei "Info_Scriptcode" wird beschrieben, dass durch den Operator 'sn' der Wert x auf Platz 0 des "Ständigen Stacks" in den Platz n des Zusätzlichen Stacks gespeichert wird.

Wie verändert sich der Zusätzliche Stack nach dieser Operation? Wird lediglich der ursprüngliche Wert auf Platz n des Zusätzlichen Stacks mit dem neuen Wert x überschrieben?
Werden die Werte des Zusätzlichen Stacks nach der Operation ab Position n verschoben, so dass nachher x auf Pos. n, der vorher auf n gelegene Wert nun auf n+1 liegt, der vorher auf n+1 gelegene Wert nun auf n+2 liegt, ...?

Wie verhält sich der Zusätzliche Stack bei der Operation 'ln', die den Wert auf Position n des Zusätzlichen Stacks in die Position 0 des Ständigen Stacks schreibt? Wird die Position n im Zusätzlichen Stack gelesen, ohne dass dieser Stack geändert wird? Wird nach dem Lesen der Position n, der Wert dort gelöscht und rücken alle Werte mit Positionsnummern größer n auf eine niedrige Position auf?

Vielleicht ist die Bezeichnung "Stack" für den Zusätzlichen Stack nicht korrekt und sogar irreführend. Die notwendige Eigenschaft eines Stacks ist der Zugriff auf ausschließlich das oberste Element. Hier können jedoch auf alle Elemente zugegriffen werden. Vielleicht wäre für den Zusätzlichen Stack die Bezeichnung "Register" passender.
Nach oben Nach unten
Marcel Kuhnt
Admin
Marcel Kuhnt


Anzahl der Beiträge : 3364
Anmeldedatum : 26.04.09
Alter : 40
Ort : Berlin-Spandau

Scriptcode - Benutzung des "zusätzlichen Stacks" Empty
BeitragThema: Re: Scriptcode - Benutzung des "zusätzlichen Stacks"   Scriptcode - Benutzung des "zusätzlichen Stacks" Icon_minitimeDo 19 Mai - 9:15

Hallo frosti!

Ah, daher kennen auch alle unser Script-System! Wink Die Datei hatte ich schon wieder völlig vergessen...! Wink

Zugegeben hab ich es nicht so mit Nomenklaturen! Wink Ich spreche auch gerne mal fälschlicherweise von einer "if-Schleife" usw.! Wink Du hast also wahrscheinlich recht, dass das kein Stack sondern ein Register ist...

Eins ist jedenfalls ganz klar:

s0 gehört immer zu l0, s1 zu l1 usw.! Wink Es ist also so, wie du es beschrieben hast! Beim "Zusatzstack" oder Register werden die Werte nicht verschoben.
Nach oben Nach unten
nemeza

nemeza


Anzahl der Beiträge : 204
Anmeldedatum : 27.04.09
Ort : Budapest

Scriptcode - Benutzung des "zusätzlichen Stacks" Empty
BeitragThema: Re: Scriptcode - Benutzung des "zusätzlichen Stacks"   Scriptcode - Benutzung des "zusätzlichen Stacks" Icon_minitimeFr 3 Jun - 21:03

Marcel Kuhnt schrieb:
Hallo frosti!

Ah, daher kennen auch alle unser Script-System! Wink Die Datei hatte ich schon wieder völlig vergessen...! Wink

Zugegeben hab ich es nicht so mit Nomenklaturen! Wink Ich spreche auch gerne mal fälschlicherweise von einer "if-Schleife" usw.! Wink Du hast also wahrscheinlich recht, dass das kein Stack sondern ein Register ist...

Eins ist jedenfalls ganz klar:

s0 gehört immer zu l0, s1 zu l1 usw.! Wink Es ist also so, wie du es beschrieben hast! Beim "Zusatzstack" oder Register werden die Werte nicht verschoben.
Frage: Das heißt

l0, l1, ... l7

Zusatzstack (register) n --> ständig Stack 0

s0, s1, ... s7

ständig Stack n --> Zusatzstack (register) n

Bitte korrigieren wenn falsch ist. Danke!
Nach oben Nach unten
http://nemeza.hgrg.hu
Emil




Anzahl der Beiträge : 596
Anmeldedatum : 14.02.11

Scriptcode - Benutzung des "zusätzlichen Stacks" Empty
BeitragThema: Re: Scriptcode - Benutzung des "zusätzlichen Stacks"   Scriptcode - Benutzung des "zusätzlichen Stacks" Icon_minitimeFr 3 Jun - 21:34

nemeza schrieb:
l0, l1, ... l7

Zusatzstack (register) n --> ständig Stack 0

s0, s1, ... s7

ständig Stack n --> Zusatzstack (register) n

Bitte korrigieren wenn falsch ist. Danke!

Falsch.

Code:

15 s0
(L.L.TrafficLightPhase) s1
2 2 * s2

Speichert 15 in zusätzlichem Stack Platz 0, die Ampelphase in zusätzlichem Stack Platz 1 und 4 in zusätzlichem Stack Platz 2.

01 2 34 5 6 7
15 (L.L.TrafficLightPhase) 4

mit l0, l1, und l2 kannst Du die Werte wieder laden.

sX | mit X € N{0,8} = Speichern in X
lX | mit X € N{0,8} = Laden aus X
Nach oben Nach unten
nemeza

nemeza


Anzahl der Beiträge : 204
Anmeldedatum : 27.04.09
Ort : Budapest

Scriptcode - Benutzung des "zusätzlichen Stacks" Empty
BeitragThema: Re: Scriptcode - Benutzung des "zusätzlichen Stacks"   Scriptcode - Benutzung des "zusätzlichen Stacks" Icon_minitimeFr 3 Jun - 22:00

Danke Emil! So ist es schon klar!

Für mich C ist einfacher, also um bischen zu üben, habe ich ein Code-teil von OMSI script umgeschrieben.

Könnte mir bitte jemand übersehen ob alles wirklich passt?

Code:
  'Ein macro Teil ein Türscript
(L.L.doorTarget_0) ! (L.L.doorSpeed_0) s0 abs 0.05 > (L.L.door_0) 0 > || &&
   {if}
      l0 /-/ (L.L.doorMaxSpeed_0) <
      {if}
         (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
      {endif}
      (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
   {else}
      (L.L.doorSpeed_0) abs 0.05 > (L.L.door_0) 1 < || (L.L.doorTarget_0) &&
      {if}
         l0 (L.L.doorMaxSpeed_0) <
         {if}
            (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
         {endif}
         (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
      {else}
      0 (S.L.doorSpeed_0)
      {endif}
   {endif}

------------------ c ----------------

Code:
   
if(((L.door_0 > 0) || (abs(s0(L.doorSpeed_0)) > 0.05))&& (!L.doorTarget_0))
{
   if(l0(/-/) < L.doorMaxSpeed_0) // l0(/-/) ??? As I think, loads L.doorSpeed_0
   {
      L.doorSpeed_0 = L.doorSpeed_0 - (L.doorAcc_0*S.Timegap);
   }
   L.door_0 = L.door_0 + L.doorSpeed_0 * S.Timegap;
}
else   
{   
   if(L.doorTarget_0 && ((L.door_0 < 1)||(abs(L.doorSpeed_0)>0.05)))
   {
      if(l0 < L.doorMaxSpeed_0)
      {
         doorSpeed_0 = L.doorSpeed_0 + (L.doorAcc_0 * S.Timegap);
      }
      L.door_0 = S.Timegap * L.doorSpeed_0 + L.door_0;
   }
   else
   {
      L.doorSpeed_0 = 0;
   }
}
Nach oben Nach unten
http://nemeza.hgrg.hu
Gesponserte Inhalte





Scriptcode - Benutzung des "zusätzlichen Stacks" Empty
BeitragThema: Re: Scriptcode - Benutzung des "zusätzlichen Stacks"   Scriptcode - Benutzung des "zusätzlichen Stacks" Icon_minitime

Nach oben Nach unten
 
Scriptcode - Benutzung des "zusätzlichen Stacks"
Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» Info Scriptcode - Beschreibung unvollständig - Hilfe zu Variablen und Operatorkürzeln erbeten
» 2 Fragen zur Benutzung des Streckeneditors
» Benützung von Marken- und Firemenlogos
» Nach Editor benutzung Spiel besser, Warum?

Befugnisse in diesem ForumSie können in diesem Forum nicht antworten
ehem. OMSI - Forum :: OMSI-Design (deutsch) :: Scriptprogrammierung-
Gehe zu: