Construction Set Skriptthread zum Construction Set

hm.. mit dem Befehl kann ich bewirken, dass, wenn der Player ein bestimmtes Gebiet kommt, er etwas machen kann, oder?
Damit könnte ich sagen, dass der Player nur dort den Zauber wirken kann? Aber ich weiß nicht wirklich wie und auch nicht wie die Türe auftauchen kann.
Ich habe mal irgendwann gelesen, dass man mit "inable" (oder so:huh: ) die Türe auftauchen und verschinden lassen kann, oder?
 
Zuletzt bearbeitet:
Da er es an bestimmten Orten haben möchte:
Code:
Scn Tuere

Begin OnScriptEffectStart
If ( Player.GetInCell [CellID] == 1 ) || ( Player.GetInCell [CellID2] == )
   [TuerID].Enable
EndIf

End

GetInCell geht aber nur mit Interior!! Und bisher bleibt die Türe dnn auch für immer.
 
Jo, dafür müsstest du diese Option hinzufügen:


Code:
Scn Tuere

Begin OnScriptEffectStart
If ( Player.GetInCell [CellID] == 1 ) || ( Player.GetInCell [CellID2] == )
   [TuerID].Enable
endif

If ( [TürId].GetDistance Player > [AnzahlderUnits] )
      [TürId].disbale
endif

End

Achtung, 1 Unit ist nicht 1 Meter, 64 Units sind etwa ein Meter.
 
  • Like
Reaktionen: John Sheppard
könnte mal jemand meine beiden scripts prüfen???

scn 002Talkerchange

short once

Begin OnTrigger Player
if once == 0
DecardRef.StartConversation Player ScriptQuestDeacrdOne
set once to 1
endif
end

und das zweite:

JesterRef.StartConversation Player ScriptQuestDeacrdOne

sie sollen eingendlich einen fließenden übergang eines gespräches von einer peron zur anderen gewährleisten.
 
Code:
Scn Tuere

Begin ScriptEffectStart
If ( Player.GetInCell [CellID] == 1 ) || ( Player.GetInCell [CellID2] == )
   [TuerID].Enable
endif

If ( [TürId].GetDistance Player > [AnzahlderUnits] )
      [TürId].disbale
endif
End

Begin ScriptEffectUpdate
If ( Player.GetInCell [CellID] == 1 ) || ( Player.GetInCell [CellID2] == ) && ( [TürId].GetDistance < [AnzahlderUnits] )
Message "Das Tor ist offen"
endif
end
 
Begin ScriptEffectFinish
If ( Player.GetInCell [CellID] == 1 ) || ( Player.GetInCell [CellID2] == )
   [TuerID].Enable
endif

If ( [TürId].GetDistance Player > [AnzahlderUnits] )
      [TürId].disbale
endif
End

Den Teil bei ScriptEffectUpdate brauch man nicht unbedingt, ist aber auch nicht überflüssig. ;)
 
  • Like
Reaktionen: John Sheppard
halli hallöchen 2 fragen hätt ich grad mal

1. Der Spieler Soll ne zeit lang auf einer stelle stehen und nichts machen können wen er durch einen Trigger läuft.

2. Damit wollt ich ne tür Öffnen geht aber i-wie net ^^

scn SN

short once

Begin OnTrigger NPC

if once == 0
TorID.SetOpenState 0

TriggerHitShader 3

PlaySound [SoundID]

NPC.Disable

set once to 1
endif
end


TriggerHitShader 3,PlaySound [SoundID],NPC.Disable können hir bei ja garkeine fehler auslösen oder?
 
SetOpen State 0 schließt die Tür, außerdem funktioniert das nu bei animierten Türen.

Der Begriff gegen Bewegen (^^) ist DisablePlayerControls.
 
Wenn man den Teil des Scriptes, der das Tor erscheinen lässt für einen Zauber machen würde, wie würde er dann heißen?

Schau dir mal AjAeXx Post auf der letzten Seite. Du hast dich sogar dafür bedankt.

Leg das komplette Skript auf einen Zauber, fertig.

Abgesehn von dem Teil halt, wo die Entfernung zum Schließen abgefragt wird.
 
Mein Problem hat sich in Euren Augen jetzt wohl erledigt, oder wie?
Ich bitte jemanden darum mir einen Script mal umzuschreiben, weil ich selbst einfach absolut gar nichts mit Scripts anfangen kann und bekomme als einzige Antwort "Keine Zahlen am Anfang von Referenzen" (Was mir übrigens auch keine Hilfe war) Tolle Hilfe. :roll:
 
01IvAltarMephala

Code:
scn 01IvStendarrShrineScript

short clean
short crystal
short button

begin onActivate

if clean == 0
 if player.getitemcount 01IvLightcrystal < 1
    message "Offenbar wurde der Schrein entweiht."
 else Player.GetItemCount 01IvLightCrystal >= 1
    messagebox "Offenbar wurde der Schrein entweiht.", "Lichtkristall in die Hand der Statue legen", "Verlassen"
    set crystal to 1
endif

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

if StendarrAltar.getitemcount IvellonShortsword >= 1 && StendarrAltar.getitemcount IvellonCoin >= 100
   StendarrAltar.removeitem IvellonShortsword 1
   StendarrAltar.removeitem 01IvellonCoin 100
   StendarrAltar.additem IvellonShortswordBlessed 1
   playsound 01IvMcStendarrshrineBlessing
   message "Euer Kurzschwert wurde gesegnet. Möge es die Kehlen Eurer Feinde zerfetzen."

elseif StendarrAltar.getitemcount IvellonLongsword >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonLongsword 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonLongswordBlessed 1
          playsound 01IvMcStendarrshrineBlessing
          message "Euer Langschwert wurde gesegnet. Möge es die Herzen Eurer Feinde durchstoßen."

elseif StendarrAltar.getitemcount IvellonBastardsword >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonBastardsword 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonBastardswordBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Bastardschwert wurde gesegnet. Möge es die Schädel Eurer Feinde spalten."

elseif StendarrAltar.getitemcount IvellonBastardsword2h >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonBastardsword2h 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonBastardswordBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Bastardschwert wurde gesegnet. Möge es die Schädel Eurer Feinde spalten."

elseif StendarrAltar.getitemcount IvellonBeardedAxe >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonBeardedAxe 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonBeardedAxeBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Bastardschwert wurde gesegnet. Möge sie die Köpfe Eurer Feinde vom Rumpfe trennen."

elseif StendarrAltar.getitemcount IvellonBeardedAxe2h >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonBeardedAxe2h 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonBeardedAxeBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Bastardschwert wurde gesegnet. Möge sie die Köpfe Eurer Feinde vom Rumpfe trennen."
         
elseif StendarrAltar.getitemcount IvellonClaymore >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonClaymore 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonClaymoreBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Zweihänder wurde gesegnet. Möge er Eure Feinde entzwei teilen."

elseif StendarrAltar.getitemcount IvellonMace >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonMace 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonMaceBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Streitkolben wurde gesegnet. Möge er Eurer Feinde in Stücke reißen."

elseif StendarrAltar.getitemcount IvellonBattlehammer >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonBattlehammer 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonBattlehammerBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Streithammer wurde gesegnet. Möge er die Schädel Eurer Feinde zertrümmern."

elseif StendarrAltar.getitemcount IvellonZweihander >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonZweihander 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonZweihanderBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Gassenhauer wurde gesegnet. Möge er eine Schneise der Verwüstung in den Reihen Eurer Feinde hinterlassen."

elseif StendarrAltar.getitemcount IvellonHalberd >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonHalberd 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonHalberdBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Eure Hellebarde wurde gesegnet. Möge sie Eure Feinde in Scharen niedermähen."

elseif StendarrAltar.getitemcount IvellonBow >= 1 && StendarrAltar.getitemcount 01IvellonCoin >= 100
          StendarrAltar.removeitem IvellonBow 1
          StendarrAltar.removeitem 01IvellonCoin 100
          StendarrAltar.additem IvellonBowBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Bogen wurde gesegnet. Möge er Euer Ziel immer treffen."
else
   messagebox "Legt eine Waffe aus Ivellons Schmiede zusammen mit einer Opfergabe von einhundert goldenen Münzen auf den Altar und betet zu Stendarr, auf dass er sie segnen möge."
endif
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
endif
end

begin GameMode
if crystal == 1
set button to getbuttonpressed
endif

if button == 0
   sf01.enable
   sf02.enable
   sf03.enable
   sf04.enable
   sf05.enable
   sf06.enable
   sl01.enable
   sl02.enable
   sl03.enable
   sl04.enable
   sl05.enable
   sl06.enable
   StendarrLight.enable
   message "Der Schrein wurde gereinigt."
   player.removeitem 01IvLightcrystal 1
   playsound 01IvMcStendarrshrine
   set clean to 1
   set crystal to 0
elseif button == 1
   set crystal to 0
endif
end
[/QUOTE]

Jetzt dürfte die Messagebox korrekt laufen. War das den der einzige Fehler der auftrat, bzw. war das überhaupt ein Fehler? Kann man den Altar öffnen und etwas reinlegen?

Eine etwas detailiertere Fehlerbeschreibung wäre für's nächste mal ganz Praktisch ;)
 
Zuletzt bearbeitet:
In Ordnung, detaillierte Beschreibung.
Der Script der im vorigen Post von mir zu sehen ist, wurde von Lazarus in dem PI Verliese von Ivellon für einen Altar + Schrein verwendet. Dieser bewirkt, dass man die in Ivellon gefundenen Waffen, gegen eine Opfergabe von Ivellonmünzen die man in den Altar legt, segnen kann. Die gesegnete Waffe erscheint dann im Altar. Ich hatte jetzt vor diesen Script auf einen von mir selbst erstellten Schrein von Mephala + Altar anzuwenden, da hatte ich das Stendarr durch Mephala ausgetauscht, aber jedesmal wenn ich versuche diesen Script zu speichern, erschein das hier -> Script 'IvShrineMephalaScript', line 19: Syntax Error. Invalid reference 'IvAltar Mephala' (only object references and references variable are allowed in this context).

Hier die Änderungen die ich schon vorgenommen habe:
Code:
scn IvShrineMephalaScript

short clean
short crystal
short button

begin onActivate

if clean == 0
 if player.getitemcount 01IvLightcrystal < 1
    messagebox "Offenbar wurde der Schrein entweiht." "Verlassen"
 else
    messagebox "Offenbar wurde der Schrein entweiht." "Lichtkristall in die Hand der Statue legen" "Verlassen"
    set crystal to 1
endif
else
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
if IvAltarMephala.getitemcount IvellonShortsword >= 1 && MephalaAltar.getitemcount 01IvellonCoin >= 100
   IvAltarMephala.removeitem IvellonShortsword 1
   IvAltarMephala.removeitem 01IvellonCoin 100
   IvAltarMephala.additem IvellonShortswordBlessed 1
   playsound 01IvMcStendarrshrineBlessing
   message "Euer Kurzschwert wurde gesegnet. Möge es die Kehlen Eurer Feinde zerfetzen."

elseif IvAltarMephala.getitemcount IvellonLongsword >= 1 && MephalaAltar.getitemcount 01IvellonCoin >= 100
          IvAltarMephala.removeitem IvellonLongsword 1
          IvAltarMephala.removeitem 01IvellonCoin 100
          IvAltarMephala.additem IvellonLongswordBlessed 1
          playsound 01IvMcStendarrshrineBlessing
          message "Euer Langschwert wurde gesegnet. Möge es die Herzen Eurer Feinde durchstoßen."

elseif IvAltarMephala.getitemcount IvellonBastardsword >= 1 && MephalaAltar.getitemcount 01IvellonCoin >= 100
          IvAltarMephala.removeitem IvellonBastardsword 1
          IvAltarMephala.removeitem 01IvellonCoin 100
          IvAltarMephala.additem IvellonBastardswordBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Bastardschwert wurde gesegnet. Möge es die Schädel Eurer Feinde spalten."

elseif IvAltarMephala.getitemcount IvellonBastardsword2h >= 1 && MephalaAltar.getitemcount 01IvellonCoin >= 100
          IvAltarMephala.removeitem IvellonBastardsword2h 1
          IvAltarMephala.removeitem 01IvellonCoin 100
          IvAltarMephala.additem IvellonBastardswordBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Bastardschwert wurde gesegnet. Möge es die Schädel Eurer Feinde spalten."

elseif IvAltarMephala.getitemcount IvellonBeardedAxe >= 1 && MephalaAltar.getitemcount 01IvellonCoin >= 100
          IvAltarMephala.removeitem IvellonBeardedAxe 1
          IvAltarMephala.removeitem 01IvellonCoin 100
          IvAltarMephala.additem IvellonBeardedAxeBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Bastardschwert wurde gesegnet. Möge sie die Köpfe Eurer Feinde vom Rumpfe trennen."

elseif IvAltarMephala.getitemcount IvellonBeardedAxe2h >= 1 && MephalaAltar.getitemcount 01IvellonCoin >= 100
          IvAltarMephala.removeitem IvellonBeardedAxe2h 1
          IvAltarMephala.removeitem 01IvellonCoin 100
          IvAltarMephala.additem IvellonBeardedAxeBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Bastardschwert wurde gesegnet. Möge sie die Köpfe Eurer Feinde vom Rumpfe trennen."
         
elseif IvAltarMephala.getitemcount IvellonClaymore >= 1 && MephalarAltar.getitemcount 01IvellonCoin >= 100
          IvAltarMephala.removeitem IvellonClaymore 1
          IvAltarMephala.removeitem 01IvellonCoin 100
          IvAltarMephala.additem IvellonClaymoreBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Zweihänder wurde gesegnet. Möge er Eure Feinde entzwei teilen."

elseif IvAltarMephala.getitemcount IvellonMace >= 1 && MephalaAltar.getitemcount 01IvellonCoin >= 100
          IvAltarMephala.removeitem IvellonMace 1
          IvAltarMephala.removeitem 01IvellonCoin 100
          IvAltarMephala.additem IvellonMaceBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Streitkolben wurde gesegnet. Möge er Eurer Feinde in Stücke reißen."

elseif IvAltarMephala.getitemcount IvellonBattlehammer >= 1 && MephalaAltar.getitemcount 01IvellonCoin >= 100
          IvAltarMephala.removeitem IvellonBattlehammer 1
          IvAltarMephala.removeitem 01IvellonCoin 100
          IvAltarMephala.additem IvellonBattlehammerBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Streithammer wurde gesegnet. Möge er die Schädel Eurer Feinde zertrümmern."

elseif IvAltarMephala.getitemcount IvellonZweihander >= 1 && MephalaAltar.getitemcount 01IvellonCoin >= 100
          IvAltarMephala.removeitem IvellonZweihander 1
          IvAltarMephala.removeitem 01IvellonCoin 100
          IvAltarMephala.additem IvellonZweihanderBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Gassenhauer wurde gesegnet. Möge er eine Schneise der Verwüstung in den Reihen Eurer Feinde hinterlassen."

elseif IvAltarMephala.getitemcount IvellonHalberd >= 1 && MephalaAltar.getitemcount 01IvellonCoin >= 100
          IvAltarMephala.removeitem IvellonHalberd 1
          IvAltarMephala.removeitem 01IvellonCoin 100
          IvAltarMephala.additem IvellonHalberdBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Eure Hellebarde wurde gesegnet. Möge sie Eure Feinde in Scharen niedermähen."

elseif IvAltarMephala.getitemcount IvellonBow >= 1 && MephaAltar.getitemcount 01IvellonCoin >= 100
          IvAltarMephala.removeitem IvellonBow 1
          IvAltarMephala.removeitem 01IvellonCoin 100
          IvAltarMephala.additem IvellonBowBlessed 1
          playsound 01IvMcStendarrshrineBlessing          
          message "Euer Bogen wurde gesegnet. Möge er Euer Ziel immer treffen."
else
   messagebox "Legt eine Waffe aus Ivellons Schmiede zusammen mit einer Opfergabe von einhundert goldenen Münzen auf den Altar und betet zu Stendarr, auf dass er sie segnen möge."
endif
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
endif
end

begin GameMode
if crystal == 1
set button to getbuttonpressed

if button == 0
   message "Der Schrein wurde gereinigt."
   player.removeitem 01IvLightcrystal 1
   playsound 01IvMcStendarrshrine
   set clean to 1
   set crystal to 0
elseif button == 1
   set crystal to 0
endif
endif
end
 
Ok, mir fallen zwei Sachen ein, entweder ist "IvAltarMephala" keine Reference-Id (Erhält man, wenn man das Objekt im Render Fenster mit Doppelklick anklickt), sondern eine BaseOBject-Id, oder du hast vergessen, bei dem Altar unter "Referencen" "Persisten Reference" anzukreuzen.

Was mir grad noch auffällt, in der ersten .GetItemCount Zeile, hast du am Anfang "IvAltarMephala" benutzt, und danach "MephalaAltar"
 
Sowohl Schrein als auch Altar habe ich als Persistent Reference angegeben.
Was mir grad noch auffällt, in der ersten .GetItemCount Zeile, hast du am Anfang "IvAltarMephala" benutzt, und danach "MephalaAltar"

Danke für den Tipp, werde ich mal noch ändern. Übrigens, als ich jetzt den von dir geänderten Script verwendet habe, erschien nur noch die Meldung Item 'IvellonCoin' not found for parameter ObjectID. Compiled script not saved!
 
IvellonCoin ist unter MiscItems zu finden, sie hat keinen weiteren Zweck ausser es als Opfergabe im Altar zu verwenden.