Construction Set teleport script help

masterofdisaster

Fremdländer
also ich habe jetzt schon seit stunden n tut gesucht wie das mit dem teleport script geht, aber nichts gefundn.
ich bräuchte ein script was mich in einen anderen worldspace zu einer insel bringt.
ich habe auch schonl ein paar scripte ausprobiert aber ich kapiere das einfach nicht.
also pls helft mir.
greetz
 
der scrip

für schalter:
Code:
scn 00SchalterScript

Begin OnActivate
player.moveto XMarkerHeadingReferenzID
end


für amulet, zum umhengen:
Code:
scn 00teleporteramulettscript

Begin OnEquip
player.moveto XMarkerHeadingReferenzID
end

XMarkerHeadingReferenzID=> worldobjekts->Statics->XMarkerHeading
bitte ein danke
 
@hallo1: Die von dir genannten Scripts funktionieren zwar, aber der Teleport wird immer und immer und immer und immer wieder ausgeführt und hört nie auf.

@masterofdisaster: Ich hatte auch schonmal Probleme mit dem Teleportieren und habe einen Thread dazu aufgemacht. Immer erstmal suchen, bevor du einen neuen Thread eröffnest. ;)


Aber um deine Frage zu beantworten...

Hier ein Script, der dich ein mal teleportiert:

Code:
 scn WGTIfJumpedTop
short triggered

begin onTrigger player ; sonst läuft uns nachher ne Wildsau rein und teleportiert uns

   if triggered == 0

set triggered to 1         
player.MoveTo WGTPlayerPosIfJumpedTop ;nix movetomarker hier nur die RefID

    endif
end

begin onreset

set triggered to 0

end

Und hier, wenn der Teleport mehr als ein Mal durch den selben Script passieren soll:

Code:
 scn WGTIfJumpedTop

short triggered
float timer


begin onTrigger player

if triggered == 0
		
set triggered to 1
set timer to 5
player.MoveTo WGTPlayerPosIfJumpedTop 
endif

end

;moveto zur Sicherheit immer als letztes... wenn mit Player als Reference, 
;weil in z.B. Stage die kommenden Lines nicht executed werden also lassen 
;wir das auch mal so in den Scripts

begin gameMode

if triggered == 1 && timer <= 0
set triggered to 0
endif

if timer >= 0
set timer to timer - getSecondsPassed
endif

end

Die Scripts musst du natürlich je nach Verwendung abändern, die hier sind für das auslösen einer TriggerBox bzw. eines anderen Activators. Dank aber nicht mir sondern Ryan dafür. ;)
 
ich habe uach mein Problem zu meinem Teleporter Script Problem geschreieb.. aber irgentwie antowortet keiner..
ICh habe dieses Script in eine Verazuberung gepackt und es aufs amulett gelgegt.. aber es passiert beim Anlegen nix...:
Code:
scn teleamulett

short tele

Begin ScriptEffectStart
messagebox "Wohin möchtet ihr?", "Nach Hause", "Zur Kaiserstadt", "Nach Anvil", "Nach Skingrad", "Nach Leyawiin", "Nach Bravil", "Nach Cheydinhal", "Nach Bruma"
end

Begin ScriptEffectFinish
Set tele to GetButtonPressed
if tele == 0
player.moveto DVDG
elseif tele == 1
player.moveto ICMarketWestGateMarker
elseif tele == 2
player.moveto AnvilLandGateMarker
elseif tele == 3
player.moveto MG13CarstenMark
elseif tele == 4
player.moveto LeyawiinGreenGateMarker
elseif tele == 5
player.moveto BravilCenterMarker
elseif tele == 6
player.moveto CheydinhalBlueGateMarker
elseif tele == 7
player.moveto BrumaBeggarGate
endif
end
 
danke das mir das mal einer sagt das es OnEquip sien MUSS^^

Code:
scn teleamulett

short tele

Begin OnEquip
messagebox "Wohin möchtet ihr?", "Nach Hause", "Zur Kaiserstadt", "Nach Anvil", "Nach Skingrad", "Nach Leyawiin", "Nach Bravil", "Nach Cheydinhal", "Nach Bruma"

Set tele to GetButtonPressed
if tele == 0
player.moveto DVDG
elseif tele == 1
player.moveto ICMarketWestGateMarker
elseif tele == 2
player.moveto AnvilLandGateMarker
elseif tele == 3
player.moveto MG13CarstenMark
elseif tele == 4
player.moveto LeyawiinGreenGateMarker
elseif tele == 5
player.moveto BravilCenterMarker
elseif tele == 6
player.moveto CheydinhalBlueGateMarker
elseif tele == 7
player.moveto BrumaBeggarGate
endif
end

so?
und muss ich des dann direkt auf amu legen und als Objekt script speichern?
 
Schon, aber so wie der Script aussieht klappt er immer noch net^^. Vllt so:

scn teleamulett

short tele

short control

Begin OnEquip
if control == 0
messagebox "Wohin möchtet ihr?", "Nach Hause", "Zur Kaiserstadt", "Nach Anvil", "Nach Skingrad", "Nach Leyawiin", "Nach Bravil", "Nach Cheydinhal", "Nach Bruma"
set control to 1
End

Begin GameMode

if control == 1


Set tele to GetButtonPressed
elseif tele == -1
return

if tele == 0 && control == 1
player.moveto DVDG
set control to 0
elseif tele == 1 && control == 1
player.moveto ICMarketWestGateMarker
set control to 0
elseif tele == 2 && control == 1
player.moveto AnvilLandGateMarker
set control to 0
elseif tele == 3 && control == 1
player.moveto MG13CarstenMark
set control to 0
elseif tele == 4 && control == 1
player.moveto LeyawiinGreenGateMarker
set control to 0
elseif tele == 5 && control == 1
player.moveto BravilCenterMarker
set control to 0
elseif tele == 6 && control == 1
player.moveto CheydinhalBlueGateMarker
set control to 0
elseif tele == 7 && control == 1
player.moveto BrumaBeggarGate
set control to 0
endif
endif
end


so könnts eigtl klappen..

mfG L

EDIT: jap als Object-Script direkt aufs Amu
 
Zuletzt bearbeitet:
:eek:

HÄÄÄ???

da blick ich nun garnet mehr durch wozu den jetzt die zweite Variable??

und müsste das:
Code:
Set tele to GetButtonPressed
elseif tele == -1
return
if tele == 0 && control == 1
player.moveto DVDG

nicht
Code:
Set tele to GetButtonPressed
if tele == -1
return
elseif tele == 0 && control == 1
player.moveto DVDG

Code:
if tele == -1
return

meinte damti "Abrechen"? aber diese Varibale gibs doch gartnet.. die erste Variable hitner der Frage ist doch "Nach Hause" Also was bringt -1 ? welcher button ist das?

und wozu das control?? meinste damit das nicht jedes Frame ausgeführt wird???
 
es geht immer noch net :( :cry:
bei dieser zeile:
"player.MoveTo WGTPlayerPosIfJumpedTop ;nix movetomarker hier nur die RefID"
muss ich doch das WGTPlayerPosIfJumpedTop durch was ersetzen oder durch die ref id hab ich gemacht aber da kommt dann immer ne fehlermeldung:
invalid object reference.
thx 4 help
greetz
 
hmm welchen Effect haste denn bei Script eingestellt? Objeckt? Magic effect? und das hinter dem ; kannste auch weglassen...

€: ähm aber könnt man net einfach machen: Return tele to -1?

und was meinste mit -1 return? irgentiwe is das alles verwirrend.. könnte man das net per 1 Variable machen?
 
na dieses, "WGTPlayerPosIfJumpedTop" is doch irgendein Objekt,und wenn er sagt es ist eine ungültige reference ist,kanns ja sein das bei dem Objekt kein Haken bei persistent Reference gemacht ist, weil es nur so geht.Bei Markern ist der Haken automatisch schon gesetzt,genau wie bei npcs.
 
"WGTPlayerPosIfJumpedTop" war nichts weiter als ein XMarker, der Punkt, an den der Spieler teleportiert werden sollte. Die Referenz deines XMarkers ist natürlich anders, der Script war nur ein Beispiel!
 
Schon, aber so wie der Script aussieht klappt er immer noch net^^. Vllt so:




so könnts eigtl klappen..

mfG L

EDIT: jap als Object-Script direkt aufs Amu



könnt man den nicht an stelles dieses Scriptes dieses nehmen?:
Code:
scn telescript

short tele

Begin OnEquip
messagebox "Wohin möchtet ihr?", "Nach Hause", "Zur Kaiserstadt", "Nach Anvil", "Nach Skingrad", "Nach Leyawiin", "Nach Bravil", "Nach Cheydinhal", "Nach Bruma"
end

Begin Gamemode
Set tele to GetButtonPressed
if tele == 0
player.moveto DVDG
set tele to -1
elseif tele == 1
player.moveto ICMarketWestGateMarker
set tele to -1
elseif tele == 2
player.moveto AnvilLandGateMarker
set tele to -1
elseif tele == 3
player.moveto MG13CarstenMark
set tele to -1
elseif tele == 4
player.moveto LeyawiinGreenGateMarker
set tele to -1
elseif tele == 5
player.moveto BravilCenterMarker
set tele to -1
elseif tele == 6
player.moveto CheydinhalBlueGateMarker
set tele to -1
elseif tele == 7
player.moveto BrumaBeggarGate
set tele to -1
endif
end
 
könnt man den nicht an stelles dieses Scriptes dieses nehmen?:
Code:
scn telescript

short tele

Begin OnEquip
messagebox "Wohin möchtet ihr?", "Nach Hause", "Zur Kaiserstadt", "Nach Anvil", "Nach Skingrad", "Nach Leyawiin", "Nach Bravil", "Nach Cheydinhal", "Nach Bruma"
end

Begin Gamemode
Set tele to GetButtonPressed
if tele == 0
player.moveto DVDG
set tele to -1
elseif tele == 1
player.moveto ICMarketWestGateMarker
set tele to -1
elseif tele == 2
player.moveto AnvilLandGateMarker
set tele to -1
elseif tele == 3
player.moveto MG13CarstenMark
set tele to -1
elseif tele == 4
player.moveto LeyawiinGreenGateMarker
set tele to -1
elseif tele == 5
player.moveto BravilCenterMarker
set tele to -1
elseif tele == 6
player.moveto CheydinhalBlueGateMarker
set tele to -1
elseif tele == 7
player.moveto BrumaBeggarGate
set tele to -1
endif
end

ne auf keinen Fall!
In deinem Script würden folgende Fehler auftauchen:
* Die Messagebox würde immer und immer wieder erscheinen und du könntest sie nie wieder wegklicken.
* Außerdem könntest du wenn du obiges problem gelöst hättest trotzdem das Amu kein zweites mal benutzen weil tele zwar zu -1 wird, aber gleich danach wieder zum GetButtonPressedWert. Versuch einfach mal meinen modifizierten Script als Object Script direkt aufs Amu. Müsste klappen.

mfG L