Construction Set skripthilfe, gegenstand verschieben

Cadhar

Reisender
hoi,

bei aktivierung soll gegenstand x um 500 einheiten nach links verschoben werden.. das ist ganz einfach..
wenn ich aber will das der nicht sofort um 500 einheiten versetzt wird, sondern da rüber 'geschoben' wird, wie muss ich das dann anstellen? also das der nich einfach rübergestzt wird, sondern eben verschoben..

bei mw war das irgendwie per timer möglich, aber da bin ich nich so eingestiegen in die materie :(
 
mit dem timer war schonmal gut:
Code:
set timer to (Timer+Getsecondspassed)
set xp to (x.getpos x )
set xp2 to (x.getpos x) + timer
x.disable
x.moveTo xp2
x.enable
set xp3 to x.getPos x
x.setPos x xp

:)
 
  • Like
Reaktionen: Cadhar
ok, im prinzip versteh ichs ...

x.disable
x.moveTo xp2
x.enable

< wird das objekt hier nicht disabled und nach dem verschieben wieder eingeschalten?

gut, ich aknns nich testen da das skript nicht läuft, vielleicht kann mir das einer ncoh ein wenig erklären ? :oops:
 
Also alles im einem:
Code:
scn name

float xp
float xp2
float xp3
float timer

Begin Gamemode
;if irgendein Ereigniss ist geschehen ?Queststage auf 100 oderso (?)
if xp3-xp >= 500
set timer to (Timer+Getsecondspassed)
set xp to (DeinObjekt.getpos x )
set xp2 to (DeinObjekt.getpos x) + timer
DeinObjekt.disable
DeinObjekt.moveTo xp2
DeinObjekt.enable
set xp3 to DeinObjekt.getPos x
DeinObjekt.setPos x xp
endif
endif 
END

Das enable und disable ist dafür da , damit das Objekt in einem Stück transportiert wird, da bei den meisten Sachen mit Setpos nur das Objekt ohne Collision Box "bewegt"wird, bei moveto nur die Collision Box ohne das man es bemerkt,durch das enable und das disable wird das Objekt dann Aktualisiert :)
Hoffe es funzt jetzt
 
noch ne frage.. weil er mir grad die meldung herhaut:

Item "xp2" not fount for parameter objectreferenceid

dh das er
DeinObjekt.moveTo xp2
nicht richtig abhandelt, da er ein objekt xp2 - welches ne variable ist - sucht

oder?:shock:
 
Code:
DeinObjekt.moveto DeinObjekt xp2

machs mal so, wenn das nicht geht, versuchs ohne die Zeile,und schau obs trotzdem geht:)
 
ok, 2 möglichkeiten..
a) ich bin zu blöd dafür
b) skript funktioniert nicht :lol:

wenn ich die zeile ganz weglasse macht er bei aktivierung gar nix, is ja irgendwo klar, hat ja keinen move befehl :?

viell irgendwo ein logikfehler drin? :huh:

Oder - kannst du den bei dir bitte mal testen? Ich beginn langsam zu zweifeln irgendwo *gg*
 
Code:
scn MYSpeerSC

float Stop
float timer
float SenkVar
short DoOnce



Begin Gamemode

	
	if DoOnce == 0 		
		set timer to  deinOBJ.getpos x
		set SenkVar to  deinOBJ.getpos x
		set Stop to (timer + 500 )
		set DoOnce to 1
	endif

	if timer  != Stop
		set timer to (timer + GetSecondsPassed + 1.5  )
		deinOBJ.SetPos x  timer
	endif
End

Nimm einfach das hier, das hab selber mal für mich gemacht und weiß das es funzt :)
 
  • Like
Reaktionen: Cadhar
Japp, der funktioniert *gg*
aaber :lol:

folgendes:
Vorher, der Stein dient noch sozusagen als 'hebel', hab auf 'onActivate' umgestellt:


Nachher, den Aylidenstein hab ich zur veranschaulichung draufgepackt:

(natürlich fällt der stein durch das bett rechts durch ;) )

Lösung müsste einfach folgendes sein, oder? :
deinOBJ.disable
deinOBJ.SetPos x timer

deinOBJ.enable