Construction Set Skriptthread zum Construction Set

Achso. Dafür musst Du jede Wand, die sich so verhalten soll, zu einem Activator machen und das Skript auf sie legen:

Code:
SCN ...

Float Timer

Begin GameMode

set timer to timer + getsecondspassed

if(timer >= 120)
     if(getdisabled)
          enable
          set timer to 0
        return
   else
           disable
           set timer to 0
         return
     endif
  else
             return
endif

end
 
  • Like
Reaktionen: Almalexian
Ich hätte mal zwei Fragen...

1. Ich will einen Zauber erstellen, bei dem die Leiche verschwindet und dann ein Untoter an dieser Stelle erscheint. Mir gehts jetzt vor Allem um das Leichen-Verschwinden-Lassen: Ist das okay, wenn ich dafür einfach disable benutze? Ich hab mal gehört, dass das auf Dauer für Laggs sorgt weil die Objekte nicht aus dem Spiel entfernt werden sondern nur disabled werden.

2. Ich hab dann also einen neuen Actor an dieser Stelle (placeatme). Wie kann ich den jetzt im Skript "anwählen"? ich will ihm Ausrüstung geben und einen Shader.

Sorry, bin ein ziemlicher Skript-Noob :cry:Wills aber trotzdem versuchen.

Danke im Vorraus!
 
Hmm. Placeatme ist ein meiner Meinung nach mit Vorsicht zu genießender Befehl. Denn jede neue Referenz muss ja gespeichert werden, hier im Savegame, was auf Dauer und je nach Intensität des PlaceAtMe-Befehls kritisch werden kann.

Ich würde empfehlen, den Actor stattdessen in eine Zelle zu packen. (= Dummy Zelle) Anschließend kann man ihn dann einfach per MoveTo-Player herbeiteleportieren.
 
wenn dus doch mit "placeatme" machen willst kannst du eine variable "ref XYZ" daklarieren und statt dem "placeatme ....." schreiben:

set XYZ to <leichen-REF>.placeatme <untoter-ID> 1
 
Hiho

Ich möchte folgendes machen: Ich habe einen Gegenstand, der soll mich beim ablegen in eine Zelle bringen. Das sieht im moment so aus (klappt aber nicht):

scn 00NKBringmetomycell

begin OnActorUnequip MyItem


player.MoveToMarker MyMarker

end

Jetzt würde ich aber gerne in der Zelle eine Tür haben, die mich bei benutzung zurück zum Gegenstand bringt, egal wo dieser abgelegt wurde. Was muss ich auf die Tür machen? Und was muss am Gegenstand dazu?
 
Zuletzt bearbeitet:
das "actor" und "myitem" könenn weg.und ich würde dir ein "doonce" empfehlen,da es bei solchen scripts oft dazu kommen kann,dass man in jedem frame teleportiert wird und dann nichts mehr tun kann als das spiel zu beenden
 
  • Like
Reaktionen: Darknightwalker
Ich würde das Script auf den Gegenstand so schreiben:

Code:
SCN ...

short state

Begin OnDrop

if(state == 0)
    set state to 1
    Player.MoveTo <Marker>
  endif

end
Und das Script auf der Tür so:

Code:
SCN ...

Short State

Float xPos
Float yPos
Float zPos

Ref Item

Begin OnActivate Player

if(state == 0)
     set state to 1
endif

end

begin gameMode

 if(state == 0 || state == 2)
      return
elseif(state == 1)
           set item to <ItemDasAbgelegtWurde>

           set xPos to item.getPos x
           set yPos to item.getPos y
           set zPos to item.getPos z

           player.setpos x xPos
           player.setpos y yPos
           player.setpos z zPos

           set state to 2
        endif

end
 
  • Like
Reaktionen: Darknightwalker
oh ich hatte

"Jetzt würde ich aber gerne in der Zelle eine Tür haben, die mich bei benutzung zurück zum Gegenstand bringt, egal wo dieser abgelegt wurde. Was muss ich auf die Tür machen? Und was muss am Gegenstand dazu? " überlesen^^
 
Habs probiert. Der Gegenstand bringt mich zum Marker (aber nur einmal, der soll das ja immer tun wenn man ihn ablegt). Die Tür ignoriert mich weiterhin. Warum setzt du stat beim Türskipt am ende auf 2?

EDIT: Ja, sry, ablegen ist verwirrend ausgedrückt. Abwerfen trifft es.
 
Auf den Gegenstand:
Code:
scn name

short doonce

Begin onDrop player

if doonce == 0
 set <Tür-Ref>.target to getSelf
 set doonce to 1
endif
player.moveTo <Marker-Ref>

end

Auf die Tür:
Code:
scn name

ref target

Begin onActivate

if isActionRef player
 player.moveTo target
endif

end
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Darknightwalker
Frage: Wie wäre das script, wenn die Quest erst aktiviert wird, wenn ich Objekt xy in Equip kommt?(z.B. ein Schlüssel aus einer Truhe gehohlt.
Code:
Scriptname xxxxx
short Doonce

begin OnActivate

if ( IsActionRef Player == 1 ) && ( Doonce == 0 )
	SetStage [Questname] 10
	set Doonce to 1
endif

Activate

end

Und gibt es irgendwo ein Sammlung über die Script-Ausdrücke?
Ich hab bisher leider keine gefunden.