Construction Set Skriptthread zum Construction Set

Probier doch mal das (ohne OBSE):
Code:
scn Scriptname

short killtimer

Begin GameMode
reset Health
End

Begin OnHitWith [PfeilID]
if killtimer == 3
kill
Else
set killtimer to killtimer + 1
End
Der script muss auf die gewünschte Kreatur.

Gildur
 
  • Like
Reaktionen: Hoch-Ordinator
Moin zusammen...
hab da mal ne Frage... ich suche nen Skript,
das einen bestimmten Zauber/Effekt auslöst wenn man in
die nähe eines Objekts kommt.

Gibts es sowas oder kann mir jemand eines Skripten ?
Bin noch recht neu im Skript geschäft... also habt gnade mit mir ;)

lg
Siles
 
Moin zusammen...
hab da mal ne Frage... ich suche nen Skript,
das einen bestimmten Zauber/Effekt auslöst wenn man in
die nähe eines Objekts kommt.

Gibts es sowas oder kann mir jemand eines Skripten ?
Bin noch recht neu im Skript geschäft... also habt gnade mit mir ;)

lg
Siles

Ich habe zwar auch nicht so viel Ahnungm aber ich würde sagen, man könnte um das Objekt eine Triggerbox mit einer bestimmten Größe legen und dann ein Skript auf die Box legen, was dann ausgeführt wird, wenn der Spieler (mit bestimmten Bedingungen) die Box überschreitet. Nur mal so als Idee.
 
@Gildur: Da steht, dass der Scriptbefehl "reset" nicht gefunden wurde.

@Knochenkeule: Wenn man das Objekt aktiviert sich dasselbige. Bei mir soll man aber einen Schalter betätigen und dann bewegt sich das Objekt.
 
Hast du denn das Skript auch auf einen eigenen Schalter ausgerüstet ?

Und wegen reset versuche mal unter killtimer noch "short reset" zu setzen.

Mfg Master of Worlds
 
Hast du denn das Skript auch auf einen eigenen Schalter ausgerüstet ?

Und wegen reset versuche mal unter killtimer noch "short reset" zu setzen.

Mfg Master of Worlds

Achso das Script auf Schalter UND Static? Ich dachte das funzt nicht, weil kein Objekt zum Bewegen angegeben ist, deshalb würde sich das Static beim Aktivieren selbst bewegen,ich teste mal.

Immer noch das gleiche Problem mit "reset". Scriptbefehl wurde nicht gefunden.
 
Im Skript gibst du ja die Reference an, so wird das Objekt angegeben.
Und so müsste das Skript auch das Objekt erkennen.

Also muss das Skript auf einen Schalter.

Mfg Master of Worlds
 
Also, folgender Fehler:line 33 (hab ich Rot markiert), Unknown variable "to" for Parameter float. Und so siehts aus:

Code:
scn XYZBewegungDurchSchalter1

short activated
float locx
float locy
float locz
float stopx
float stopy
float stopz
ref myself

Begin OnActivate
if activated == 0
set myself to getself
set locx to myself.getpos x
set locy to myself.getpos y
set locz to myself.getpos z
set stopx to locx  +0
set stopy to locy +0
set stopz to locz +200
set activated to 1
endif
End

Begin Gamemode
if activated == 0
return
elseif activated == 1
set locx to myself.getpos x
set locy to myself.getpos y
set locz to myself.getpos z
if locx < stopx
[COLOR="Red"]myself.setpos x to locx +0[/COLOR]
endif
if locy < stopy
myself.setpos y to locy +0
endif
if locz < stopz
myself.setpos z to locz +5
endif
endif
End

Was ist da falsch und wo wird dann die Ref eingefügt?
 
Code:
scn XYZBewegungDurchSchalter1

short activated
float locx
float locy
float locz
float stopx
float stopy
float stopz
ref myself [COLOR="Red"]; Wie du siehst nimmt in diesem Script myself den Platzt der Reference ein. Das heißt du musst die myself's im Script mit der Reference des Objektes ersetzten.
[/COLOR]
Begin OnActivate
if activated == 0
set myself to getself
set locx to myself.getpos x
set locy to myself.getpos y
set locz to myself.getpos z
set stopx to locx  +0
set stopy to locy +0
set stopz to locz +200
set activated to 1
endif
End

Begin Gamemode
if activated == 0
return
elseif activated == 1
set locx to myself.getpos x
set locy to myself.getpos y
set locz to myself.getpos z
if locx < stopx
myself.setpos x [COLOR="Red"]to[/COLOR] locx +0 [COLOR="Red"]; Entferne die Rot Makierten "to" und versuche es erneut.[/COLOR]
endif
if locy < stopy
myself.setpos y [COLOR="Red"]to[/COLOR] locy +0
endif
if locz < stopz
myself.setpos z [COLOR="Red"]to[/COLOR] locz +5
endif
endif
End

Versuche es mal wie im Rot geschriebenen beschrieben.

Mfg Master of Worlds
 
Code:
short activated
[COLOR="DarkRed"]short to[/COLOR] [COLOR="Red"]; Das Füge mal dort ein[/COLOR]
float locx
float locy
float locz
float stopx
float stopy
float stopz
ref myself

Dann versuche das nochmal.

Mfg Master of Worlds
 
Hast du die to auch wieder hinzugefügt ?

Dann weiß ich auch nicht mehr weiter :cry:


Ich hoffe aber das mit den Referencen und dass das Skript auf den Schalter muss konnte ein wenig Helfen.

Edit: Stimmt zusammenschreiben geht ja auch noch ^^

Mfg Master of Worlds
 
Zuletzt bearbeitet:
Das ist mir vlt. peinlich. Ich werde den Script in der Scriptsammlung demnächst nochmal ausbessern. Der ist etwas fehlerbelastet.

Was den Script weiter oben betrifft, der müsste so heißen
Code:
scn Scriptname

short killtimer

Begin GameMode
resetHealth
End

Begin OnHitWith [PfeilID]
if killtimer == 3
kill
Else
set killtimer to killtimer + 1
End

Reset Health musste einfach zusammen geschrieben werden, also Resethealth.

Edit: Hier der Bewegungsscript für dich (wurde auch in der Scriptsammling angepasst):
Code:
scn Bewegungsscript

short activated
float locx
float locy
float locz
float stopx
float stopy
float stopz
short wayx
short wayy
short wayz
ref myself

Begin OnActivate
if activated == 0
	set myself to getself
	set stopx to myself.getpos x
	set stopy to myself.getpos y
	set stopz to myself.getpos z +200
	If stopx > myself.getpos x
		set wayx to 1
	Elseif stopx < myself.getpos x
		set wayx to -1
	Endif
	If stopy > myself.getpos y
		set wayy to 1
	Elseif stopy < myself.getpos y
		set wayy to -1
	Endif
	If stopz > myself.getpos z
		set wayz to 1
	Elseif stopz < myself.getpos z
		set wayz to -1
	Endif
	set activated to 1
Endif
End

Begin GameMode
if activated == 0
return
Elseif activated == 1
	set locx to myself.getpos x
	set locy to myself.getpos y
	set locz to myself.getpos z +5
	If (wayx == 1) && (locx < stopx)
		myself.setpos x locx
	Elseif (wayx == -1) && (locx > stopx)
		myself.setpos x locx
	Endif
	If (wayy == 1) && (locy < stopy)
		myself.setpos y locy
	Elseif (wayy == -1) && (locy > stopy)
		myself.setpos y locy
	Endif
	If (wayz == 1) && (locz < stopz)
		myself.setpos z locz
	Elseif (wayz == -1) && (locz > stopz)
		myself.setpos z locz
	Endif

Endif
End
Gildur
 
Zuletzt bearbeitet:
das machst du am besten so:
du klickst doppelt auf das sich bewegen sollende Objekt, dass in der Welt platziert wurde (oh mein Gott, was für eine Grammatik). Dann machst du einen Haken bei "Persistent Reference".
Dann kommt folgender Script auf den Schalter:
Code:
scn ScriptName

ref par

Begin OnActivate
set par to getparentref
par.actiovate
End
Nachdem du den Schalter in der Welt platziert hast, klickst du doppelt auf ihn. Anschließend gibt es in dem neuen Fenster einen Tab namens "Parent Ref" o.ä. Da klickst du drauf und dann klickst du auf den Knopf "selelct Ref in Render Window" o.ä. Dann wird der Cursor im 3D-fenster zu einer Art Zeilscheibe, die sich weiß verfärbt, wenn du über das bewegliche Objekt fährst. Du klickst dann einfach drauf.
Mit ok bestätigen.

Gildur
 
  • Like
Reaktionen: Hoch-Ordinator
Danke euch ersteinmal für die Tipps... habs nun anders
gelöst. Habs einfach so gemacht das man das gewünschte
Objekt anklicken muß. Da man dort ja recht oft vorbei kommt,
würde es doch nerven wenn immer wieder dieser Buff aktiviert wird :)

lg
Siles
 
Das Script funzt immer noch net: line 38, unknown variable "activated":

Code:
scn Bewegungsscript

short activated
float locx
float locy
float locz
float stopx
float stopy
float stopz
short wayx
short wayy
short wayz
ref myself

Begin OnActivate
if activated == 0
	set myself to getself
	set stopx to myself.getpos x
	set stopy to myself.getpos y
	set stopz to myself.getpos z +200
	If stopx > myself.getpos x
		set wayx to 1
	Elseif stopx < myself.getpos x
		set wayx to -1
	Endif
	If stopy > myself.getpos y
		set wayy to 1
	Elseif stopy < myself.getpos y
		set wayy to -1
	Endif
	If stopz > myself.getpos z
		set wayz to 1
	Elseif stopz < myself.getpos z
		set wayz to -1
	Endif
[COLOR="Red"]	set activated to 1[/COLOR] <--Fehler!
Endif
End

Begin GameMode
if activated == 0
return
Elseif activated == 1
	set locx to myself.getpos x	
	set locy to myself.getpos y
	set locz to myself.getpos z +5
	If (wayx == 1) && (locx < stopx)
		myself.setpos x locx
	Elseif (wayx == -1) && (locx > stopx)
		myself.setpos x locx
	Endif
	If (wayy == 1) && (locy < stopy)
		myself.setpos y locy
	Elseif (wayy == -1) && (locy > stopy)
		myself.setpos y locy
	Endif
	If (wayz == 1) && (locz < stopz)
		myself.setpos z locz
	Elseif (wayz == -1) && (locz > stopz)
		myself.setpos z locz
	Endif

Endif
End