Construction Set Wasserhöhe ändern

sinHHHans

Bürger
Ist es möglich mit Hilfe eines Scripts den Wasserspiegel in einer Zelle zu ändern:huh: .Also wie z.B bei Tribunal wo die Kanäle geflutet werden .Kennt jmd einen Scriptbefehl ,bzw. weiß jmd ob es überhaupt einen gibt
 
Ist es möglich mit Hilfe eines Scripts den Wasserspiegel in einer Zelle zu ändern:huh: .Also wie z.B bei Tribunal wo die Kanäle geflutet werden .Kennt jmd einen Scriptbefehl ,bzw. weiß jmd ob es überhaupt einen gibt


Du änderst die Wasserhöhe im CS, wenn du auf die entsprechende InteriorCell rechtsklickst und >Edit wählst. Unter der Option "Has Water" kannst du nun die Höhe variieren.
 
Haar genau .Aber ich hab schon eine möglichkeit gefunden .Ich werd einfach alle Objekte in der Zelle so um 5 Einheiten nach unten verschieben ,
also : ref.moveto 0,0,-5 dann hätts ja den selben effect
 
Ich hoffe, du hast nicht allzuviele Objekte in desem Raum... sonst wird das a) eine Heidenarbeit und b) recht Performancelastig...
 
Vielleicht könntest Du eine Kopie der Zelle machen und diese mit einem anderen Wasserstand belegen. Klar, wie das Wasser steigt oder fällt, kann man dann nicht beobachten, wäre aber die einfachste Möglichkeit. Ich weiss ja nicht was Du genau vorhast, aber vielleicht könntest Du das Problem so umgehen.
Wenn es nicht zu viele Objekte sind , die es zu verschieben gilt, geht das auch mit "moveto". Theoretisch müsste man die Objekte auch verlinken können, um sich die einzelnen Referenzangaben im Skript zu sparen.
 
@Beolo:Wie verlinkt man Referenzen ? Wär echt nützlich zu wissen
ich hab ne gute Idee dass mit dem moveto zu machen .Nämlich wenn ich eine float Var einführ wie zb SenkVar .Dann mach im Skript sowas wie
Code:
short Doonce
float Senkvar
Begin Gamemode
if DoOnce == 0
    set SenkVar to 5
    set DoOnce to 1
endif
if SenkVar >0 
    set Senkvar to (Senkvar -0.02)
    VerlinkteRefs.moveto 0,0,SenkVar
endif
End

Würde das funzen oder geht das dann so schnell dass man das Wasser gar nicht ansteigen sieht ?

Ps.😀as mit der neuen Zelle hab ich mir auch schon überlegt aber dann würde man dass Wasser ja nicht steigen sehn und dass wär schon wichtig weil man noch rechtzeitig fliehen muss

Greetz
 
Also, nimm ein Objekt und verlinke in dessen Referenzfenster unter "Enable Parents", die Referenz eines weiteren Objekts. Am Besten nimmst Du den Button "Select Referenz in Render Window", dann erscheint ein rotes Fadenkreuz im Renderfenster, welches über der zu verlinkenden Referenz weiss wird. Ein Doppelklick und das Kind ist mit dem Elternteil verbunden.
Bei mehreren Referenzen verlinke ich immer in einer Kette, also Ref3 mit Ref2, Ref2 zu Ref1.

Theoretisch wäre die Steiggeschwindigkeit ( FPS * 0,02 ), also ich würde da einen Timer einbauen und nicht allzu kleine Stufen benutzen. Ein Sack voller Referenzen die dann noch in jedem Frame verschoben werden, könnten wie CeNedra schon angedeutet hat, zu einem Performanceproblem führen.
Wie viele Objekte hat denn deine Zelle?
 
Naja also die Zelle hat so umdie 100 Refs.Ich denk ma das würde lacken .Aber wegen der Steiggeschwindigkeit;wenn die Schritte zu groß wären würde ja der Effekt das dass Wasser steigt nicht mehr eintreten ,sondern Einfach Schrittweise dass Wasser nach oben aufgestockt werden.
Zu dem Timer - hab das Skript jez ma für eine Säule gemacht und das funzt besser als ich dachte ;aber weiß jmd inwie fern 100 refs die Performance vom spiel beintrachtigt
/Edit :Noch was :Heißt das man kann nur 2 Referenzen Verlinken so dass 2 obj. 1 ref-ID haben,oder hab ich da was falsch verstanden?

Thx für eure derzeitig Hilfe🙂
 
Zuletzt bearbeitet:
Nein, Du kannst schon mehrere Referenzen verlinken. Bezeichne deinen Objekte mit "Ref1" bis "Ref100" sonst weisst Du schon nach der Zehnten nicht mehr wo Du bist. Dann Ref100 verlinkt mit Ref99, Ref99 mit Ref98 usw., Ref1 ist der Anfang der Kette und wird im Skript angegeben.
Aber diese Sissiphusarbeit würde ich mir bei hundert Referenzen noch gründlich überlegen, ich kann mir nicht vorstellen daß das ohne Performanceverluste abläuft.
Vielleicht hilft es, auf Beleuchtungen zu verzichten und die Helligkeit in den Zellenoptionen zu bestimmen.

Gruß, Gert
 
  • Like
Reaktionen: sinHHHans
Achso k thx mal dafür und auch dass mit dem licht .
Also so sieht das Script jetzt aus kann ich dass dann auch mit den Verlinkten Refs benutzten? ,wegen dem getpos z am Anfang


Code:
scn MYSenkSC

float SenkVar
short doonce
float timer
short An


Begin OnAdd player
	setStage MyDosenQuest2 75
	set an to 1
End

Begin Gamemode
	
    if DoOnce == 0 && an == 1
          set timer to  Senkref3.getpos z
          set SenkVar to  Senkref3.getpos z
          set DoOnce to 1
   endif

   if ( SenkVar - timer ) < 300   && an == 1
       set timer to (timer - GetSecondsPassed - 0.25  )
       Senkref3.SetPos z  timer 
       message " timer ist auf %.3f und Timer war bei %.3f"  ,timer , Senkvar ,1

  endif
	
End

Eigentlich funktioniert es sehr gut ,es bewegt 1 Saüle nach unten aber da wo die Säule dann vorher stand ,ist jetzt immernoch eine Unsichtbare Säule ,genau so ist es auch mit einem Boden ,d.h. ich kann gar nicht "ertrinken",sondern lauf uber dem unsichtbaren Boden.
Weiß jmd wie ich dass im Skriot verhindern kann?