Construction Set Skriptthread zum Construction Set

Geht nur, wenn lediglich ein Parent vorhanden ist und nicht auch noch ein Parent des Parent:
Code:
scn name

short doonce
ref myParent

Begin onActivate

if doonce == 0
 set doonce to 1
 set myParent to getParentRef
endif

if myParent.getDisabled
 myParent.enable
else
 myParent.disable
endif

end
 
  • Like
Reaktionen: Dacri
Hi, ich suche einen bestimmten Befehl. Der sollte folgendes bewirken:

Wenn Spieler Gegenstand X aktiviert, soll Person Y erscheinen und zum Spieler gehen und ein bestimmtes Thema soll aufgerufen werden. Während die Person Y zum Spieler geht, kann der Spieler sich nicht bewegen.

LG
 
Wurde bestimmt schon zig Mal erklärt, aber ich will ja nicht so sein und bei einem 700-Seiten-Thread auf die Suchfunktion pochen (nach Skripts zu suchen ist eh immer schwer). Du solltest das ganze so lösen können:

Code:
scn name

short doonce

Begin onActivate

if doonce == 0
 if isActionRef player
  set doonce to 1
  disablePlayerControls
  <NPC-Ref>.enable
  <NPC-Ref>.startConversation player <Topic-ID>
 endif
endif

end

Den NPC musst du natürlich vorher an der gewünschten Stelle platzieren. im Result-Skript des Topics muss außerdem noch stehen:
Code:
enablePlayerControls
 
  • Like
Reaktionen: blackHawk
Kann man mit einem Script jegliche Musik ausschalten, auch Kampfmusik wenn möglich?
Als ob der Musiklautstärkeregler auf 0 gedreht werden würde.

Und kann ich irgentwie festlegen, dass die HP eines bestimmtes NPC's nicht unter einen gewissen Wert fallen?
 
Zuletzt bearbeitet:
Zu 1.: Dazu wurde schon viel gefragt. Gib mal "Kampfmusik" in der SuFu ein.

Zu 2.: Leg' das auf den NPC:

Code:
SCN ...

Begin GameMode

if(getav health <= x)
   setav health x
endif

End
Die Variable x steht in dem Fall für die gewünschten Lebenspunkte.
 
Ich versuche mich gerade an Skripts, die mein Können weit übersteigen,
1. Einen Skript, der die wirkung eines Zaubers, abhängig vom Level des Zauberattributs (z.B. Illusion) mit einer gewissen Wahrscheinlichekit 3x verstärkt.
2. Das selbe nur für Angriffe, die aber von der Waffengattung abhängen und den Gegner mit einem Schlag töten.
3. das selbe zum Ausweichen, aber nur mit leichter Rüstung, ohne Rüstung, auch hier vom Level abhängig.

Gruß und Dank im Voraus.
 
Geht nur, wenn lediglich ein Parent vorhanden ist und nicht auch noch ein Parent des Parent:
Code:
scn name
 
short doonce
ref myParent
 
Begin onActivate
 
if doonce == 0
 set doonce to 1
 set myParent to getParentRef
endif
 
if myParent.getDisabled
 myParent.enable
else
 myParent.disable
endif
 
end
Das myParent, soll ich da die REF von dem Parent einsetzen? weil der script soll ja für verschiedene fackelhalter funktionieren und ich will da ned hundert fackelhalterscripts mit je ner anderen ref machen...
lg
Dacri

EDIT:Ok der script funzt ned so ganz...Der erste fackelhalter mit dem passiert garnix und der zweite den ich anklicke disabled die fackel UND der fackelhalter...
 
Zuletzt bearbeitet:
Ich versuche mich gerade an Skripts, die mein Können weit übersteigen,
1. Einen Skript, der die wirkung eines Zaubers, abhängig vom Level des Zauberattributs (z.B. Illusion) mit einer gewissen Wahrscheinlichekit 3x verstärkt.
2. Das selbe nur für Angriffe, die aber von der Waffengattung abhängen und den Gegner mit einem Schlag töten.
3. das selbe zum Ausweichen, aber nur mit leichter Rüstung, ohne Rüstung, auch hier vom Level abhängig.

Gruß und Dank im Voraus.

Wollt ich nur mal wieder aufgreifen, falss jmd mir helfen könnte wäre ich dankbar.
Und ich habe wieder was, und zwar versuche ich gerade einen Script zu schreiben, der folgendermaßen wirkt:
1. ich caste einen große Macht Zauber auf mich, gelich erscheint eine messageBox mit 3 Buttons (Krieger, Magier, Dieb).
2. sobald ich einen ausgewählt habe, wird etwas ins Inventar eingefügt, bzw. ein Zauber, schwer ists nicht aber die Box taucht einfach nicht auf.
Kann jmd helfen?

Gruß und Dank
 
Ich hab da auch mal ne kurze Frage. Sollte eigentlich leicht zu lösen sein, aber meine bescheidenen Kenntnisse übersteigt es.

Ich möchte per Script eine Truhe öffnen. Auf dieser Truhe liegt ein Script.
Das öffnen an sich klappt, aber das Script wird anscheinend nicht ausgeführt.

Weiß jemand, wie ich sicherstelle, dass das Script auf der Truhe ausgeführt wird?
 
Wie aktivierst Du denn die Truhe? Mit einem "activate"-Befehl? Wenn ja, muss noch eine "1" hintendran, damit ein OnActivate-Block ausgeführt werden kann, wie hier dokumentiert ist.
Falls das nicht ist, was Du meinst, solltest Du mehr Details oder gleich Deine bisherigen Scripts angeben.
 
  • Like
Reaktionen: darkfr3ak
Die Truhe wird mit diesem befehl aktiviert:

truheXXX.Activate Player 1

Unter deinem Link hab ich gerade gesehen, dass nach dem Player ein Komma steht. Könnt es daran liegen?
 
So:

SCN AdmContainerSortScript

Begin OnActivate
Ref Myself
Short DoOnce

Set Myself to GetSelf
Set DoOnce to 1
activate
End

Begin GameMode
If DoOnce == 1
short invPos
short ItemCount
short TotalValue
int ItemValue
ref pInvObj
ref pCont
...
AdmCommonChest.RemoveallItems AdmContainerPlaceholder
AdmQualityChest.RemoveAllItems AdmContainerPlaceholder
AdmExquisiteChest.RemoveAllItems AdmContainerPlaceholder
AdmLegendaryChest.RemoveAllItems AdmContainerPlaceholder
AdmMythicChest.RemoveAllItems AdmContainerPlaceholder
AdmEpicChest.RemoveAllItems AdmContainerPlaceholder

AdmContainerPlaceholder.RemoveAllItems Myself

AdmVarRestockContainer.RemoveAllItems

set pCont to Myself
set invPos to pCont.GetNumItems
While invPos > 0
set invPos to (invPos - 1)
set pInvObj to (pCont.GetInventoryObject invPos)
set ItemCount to (MySelf.GetItemCount pInvObj)
set ItemValue to (getfullgoldvalue pInvObj)

If ItemValue == 0
MySelf.RemoveItem pInvObj ItemCount
EndIf

If ItemValue > 0 && ItemValue <= 500
MySelf.RemoveItem pInvObj ItemCount
AdmCommonChest.AddItem pInvObj ItemCount

AdmVarRestockContainer.AddItem AdmVarTotItems ItemCount
set TotalValue to ItemValue*ItemCount
AdmVarRestockContainer.additem AdmVarTotValue TotalValue

EndIf

If ItemValue > 500 && ItemValue <= 1000
MySelf.RemoveItem pInvObj ItemCount
AdmQualityChest.AddItem pInvObj ItemCount

AdmVarRestockContainer.AddItem AdmVarTotItems ItemCount
set TotalValue to ItemValue*ItemCount
AdmVarRestockContainer.additem AdmVarTotValue TotalValue
EndIf

If ItemValue > 1000 && ItemValue <= 6000
MySelf.RemoveItem pInvObj ItemCount
AdmExquisiteChest.AddItem pInvObj ItemCount

AdmVarRestockContainer.AddItem AdmVarTotItems ItemCount
set TotalValue to ItemValue*ItemCount
AdmVarRestockContainer.additem AdmVarTotValue TotalValue
EndIf

If ItemValue > 6000 && ItemValue <= 15000
MySelf.RemoveItem pInvObj ItemCount
AdmLegendaryChest.AddItem pInvObj ItemCount

AdmVarRestockContainer.AddItem AdmVarTotItems ItemCount
set TotalValue to ItemValue*ItemCount
AdmVarRestockContainer.additem AdmVarTotValue TotalValue
EndIf

If ItemValue > 15000 && ItemValue <= 30000
MySelf.RemoveItem pInvObj ItemCount
AdmMythicChest.AddItem pInvObj ItemCount

AdmVarRestockContainer.AddItem AdmVarTotItems ItemCount
set TotalValue to ItemValue*ItemCount
AdmVarRestockContainer.additem AdmVarTotValue TotalValue
EndIf

If ItemValue > 30000
MySelf.RemoveItem pInvObj ItemCount
AdmEpicChest.AddItem pInvObj ItemCount

AdmVarRestockContainer.AddItem AdmVarTotItems ItemCount
set TotalValue to ItemValue*ItemCount
AdmVarRestockContainer.additem AdmVarTotValue TotalValue
EndIf

Loop
Set DoOnce to 0
Endif
End

Öffne ich die Truhe direkt, funktioniert es. Geh ich aber über das Script aus dem anderen Post, wird obiges nicht ausgeführt.
 
Ich habe nochmals mehrere Scriptfragen.

Ich bin wohl zu blöd um folgende Bedinungen mit Google zu finden:

1. Bedinung dass Tür aufgeschlossen sein muss, damit das und jenes passiert.

2. Package X muss beendet sein, damit das und jenes passiert.

Damit das klar ist, ich suche die Befehle, wie z. B. IsGetInCell einer ist.

Und was muss ich machen, damit mein NPC bei dem Cast Spell Package den Zauber nur einmal ausspricht? Ich dachte ich müsse bei Count nur eine 1 machen, aber er führt den Zauber ununterbrochen aus.

LG
 
Du kannst eine Referenz nicht auf eine Zahl setzen.

Was du meinst ist wohl eher "[URL="http://cs.elderscrolls.com/constwiki/index.php/Lock]Lock[/URL]"
 
Wie kann man abfragen das ein Zauber aktiv ist. Also in diesen Moment kann man einen bestimmter Zauber nicht zaubern solange der andere aktiv ist?

Mfg
Sammael666
 
Das kann man nicht direkt abfragen.

Du kannst aber beim zaubern des ersten einen Timer (in einem Questscript) starten und diesen abfragen.
Übersteigt der Timer die Duration des Zaubers (die kann man nur mit OBSE direkt abfragen, ansonsten manuell), ist der erste Zauber nicht mehr aktiv.