Construction Set Skriptthread zum Construction Set

Wie muss ein Script lauten, das OnActivate einige Kreaturen beschwört? Man könnte sie einfach Initially Disabled machen und dann enablen, aber ich möchte auch den Visuellen Effekt vom Kreatur-Beschwören. :)
 
mhh ich bräuchte auch mal ne kleine Hilfe beim scripten.
Ich habe ein Script geschrieben, dass bei einigen Händlern eine LeveledList hinzufügt. Mein Problem ist jetzt, dass ich das Script so zum laufen bringen möchte, dass beim Cellreset alle Items, die in der LeveledList enthalten sind, aus dem Inventar des Händlers entfernt werden und die Leveledlist erneut hinzugefügt wird.
Muss ich das über die float fQuestDelayTime regeln? Bzw über einen Timer?
hab jetzt ein bisschen rumprobiert und das einzige was bei rausgekommen ist, ist das die Items alle 5 sekunden ausgetauscht wurden...

mfg takbir
 
fQuestDelayTime beeinflusst die Update-Zeit bei Gamemode- & Menumode-Blöcken in QuestScripts.

Was du benötigst ist ein OnReset-Block. Der läuft genau einmal, sobald die Zelle zurückgesetzt wird.
Sowas in der Art:
Code:
scn Viech

Begin OnReset
 ;dein Code
End
 
mhh problem hierbei ist aber, dass ich das ganze imo über ein questscript steuere...
wollte halt ungerne n script an die händler/truhen direkt anhängen sondern die originalinhalte möglichst unberührt lassen. könnte ich auch irgendwo in der spielwelt n objekt platzieren und das script daranhängen oder würde das dann nicht mehr funktionieren?
Code:
scn MMBVendorScript

begin gamemode

VendorFirstEditionRef.removeitem MMBDaedricshrineBook,1
VendorFirstEditionRef.removeitem MMBAyleidruinBook,1
VendorFirstEditionRef.removeitem MMBCampBook,1
VendorFirstEditionRef.removeitem MMBCaveBook,1
VendorFirstEditionRef.removeitem MMBDoomstoneBook,1
VendorFirstEditionRef.removeitem MMBFortBook,1
VendorFirstEditionRef.removeitem MMBMineBook,1
VendorFirstEditionRef.removeitem MMBSettlementBook,1
VendorFirstEditionRef.removeitem MMBLandmarkBook,1
VendorFirstEditionRef.removeitem MMBWayshrineBook,1
VendorFirstEditionRef.removeitem MMBInnBook,1
VendorMachNasBooksRef.removeitem MMBDaedricshrineBook,1
VendorMachNasBooksRef.removeitem MMBWayshrineBook,1
VendorMachNasBooksRef.removeitem MMBInnBook,1
VendorMachNasBooksRef.removeitem MMBAyleidruinBook,1
VendorMachNasBooksRef.removeitem MMBCampBook,1
VendorMachNasBooksRef.removeitem MMBCaveBook,1
VendorMachNasBooksRef.removeitem MMBDoomstoneBook,1
VendorMachNasBooksRef.removeitem MMBFortBook,1
VendorMachNasBooksRef.removeitem MMBMineBook,1
VendorMachNasBooksRef.removeitem MMBSettlementBook,1
VendorMachNasBooksRef.removeitem MMBLandmarkBook,1
VendorRenoitsBooksRef.removeitem MMBDaedricshrineBook,1
VendorRenoitsBooksRef.removeitem MMBWayshrineBook,1
VendorRenoitsBooksRef.removeitem MMBInnBook,1
VendorRenoitsBooksRef.removeitem MMBAyleidruinBook,1
VendorRenoitsBooksRef.removeitem MMBCampBook,1
VendorRenoitsBooksRef.removeitem MMBCaveBook,1
VendorRenoitsBooksRef.removeitem MMBDoomstoneBook,1
VendorRenoitsBooksRef.removeitem MMBFortBook,1
VendorRenoitsBooksRef.removeitem MMBMineBook,1
VendorRenoitsBooksRef.removeitem MMBSettlementBook,1
VendorRenoitsBooksRef.removeitem MMBLandmarkBook,1
VendorSouthernBooksRef.removeitem MMBDaedricshrineBook,1
VendorSouthernBooksRef.removeitem MMBWayshrineBook,1
VendorSouthernBooksRef.removeitem MMBInnBook,1
VendorSouthernBooksRef.removeitem MMBAyleidruinBook,1
VendorSouthernBooksRef.removeitem MMBCampBook,1
VendorSouthernBooksRef.removeitem MMBCaveBook,1
VendorSouthernBooksRef.removeitem MMBDoomstoneBook,1
VendorSouthernBooksRef.removeitem MMBFortBook,1
VendorSouthernBooksRef.removeitem MMBMineBook,1
VendorSouthernBooksRef.removeitem MMBSettlementBook,1
VendorSouthernBooksRef.removeitem MMBLandmarkBook,1
VendorFirstEditionRef.additem MMBVendorlist,1
VendorMachNasBooksRef.additem MMBVendorlist,1
VendorRenoitsBooksRef.additem MMBVendorlist,1
VendorSouthernBooksRef.additem MMBVendorlist,1

end

Hier mal mein Script. Bei den 4 Buchhändlern Cyrodiils wird ne Leveledlist (bzw ein zufälliges Buch)hinzugefügt... bei einem CellReset sollen das Buch wieder entfernt werden und ein neues zufälliges hinzugefügt werden.
 
Zuletzt bearbeitet:
Hau das ganze auf einen Activator, den du irgendwo in der Zelle z.B. unter dem Boden plazierst. Das sollte genauso funktionieren. ;)
Natürlich in einem OnReset-Block anstelle des Gamemode-Blocks. :p
 
  • Like
Reaktionen: takbir
Questskript

Ich brauche ein Quest-Skript, dass...

Also:

Ich habe mehrere Topics und wenn man jetzt auf eines klickt soll der Spieler einen Gegenstand (xxx) bekommen. Wenn man aber nochmal draufklickt soll dem Spieler der Gegenstand (xxx) nur gegeben werden, wenn er Gold zahlt (yyy). :(
 
Da solltest du zweimal das selbe Topic machen, also z.B Ich will einen HammerA und Ich will einen HammerB.

Bei HammerA hängst du den ResultScript Player.AddItem XXX und AddTopic HammerB außerdem kreuzt du bei HammerA "SayOnce" an. Bei HammerB schreibst du dazu "Player.RemoveItem Gold001 Betrag" "Player.AddItem XXX".


Dass wiederholst du einfach für alle Topics.
 
  • Like
Reaktionen: Schlchter11
Oh sorry, hab vergessen dazuzuschreiben, dass du als Condition "RunOnTarget GetITemCount MiscGold >= Betrag" machen musst.
 
Wie kann ich das lösen?

Folgende Situation:

Der Player klaut was, und der Companion spricht ihn darauf an.

Thats All ;)

Wie kann ich das in ein Scrip packen?

Folgendes habe ich gefunden:

"GetCrime"

Beispiel: GetCrime player, 0
Ich dachte dieser Befehl würde aussagen wenn der Player klaut. Leider ist es anders herum. Er sagt aus, wenn der Player beklaut wird.

Dann habe ich mit "IsOwner" herumgespielt.

Also: if Player.IsOwner != 1
Das geht zwar, aber dann kommt die Meldung auch, wenn man ein Haus betritt welches dem Player nicht gehört.

Also es sollte so aussehen:

if PlayerHatGeklaut == 0
; if Player.IsOwner != 1 ; Funzt nicht wirklich
if Player.KralltSichWasIhmNichtGehört == 1
MeinBegleiterRef.StartConversation Player, DuBoeserJunge
set PlayerHatGeklaut to 1
endif
endif

if PlayerHatGeklaut == 1
set BTimer to 5
else
if BTimer > 0
set BTimer to BTimer - GetSecondsPassed
else
set PlayerHatWasGeklaut to 0
endif


Die Gretchenfrage ist, wie lautet der Befehl, mit dem bei den NPC z.B. "Haltet den Dieb" oder sowas ausgelößt wird?

Hat jemand eine Idee wie man das machen könnte?
 
Das da nicht passiert, dürfte daran liegen, dass keine ActorId am Anfang steht.

Syntax:

[ActorID.]GetCrime CriminalActorID [CrimeType]
Example:

GetCrime player, 3
Returns 1 if the CriminalActorID has committed the specified crime type against the calling actor, AND the calling actor knows about the crime. If crime type is omitted, will return true if the caller knows about any crime that the CriminalActorID has committed against him.
 
Hier in deutsch für GetCrime:

GetCrime

So wie ich es gelesen habe ist es folgendermaßen:

GetCrime Opfer, Täter, Verbrechenstyp
z.B. GetCrime Player, Gustav, 0 (Bedeutet Täter, ist Gustav, hat Opfer, ist Player beklaut, ist 0)

Aber das ist ja nicht das, was ich gefragt habe. Im Befehl "GetCrime" bist du Opfer. Ich suche was wo du Täter bist.

Also:
Player klaut ( IRGENDWAS, wichtig)
Player mordet (IRGENDWEN, auch wichtig)