Construction Set Skriptthread zum Construction Set

Oh, stimmt das hab ich vergessen, Danke :)

/Edit: Kann man das ManuMode überhaupt in dem Syntax verwenden? Wenn ja hab ich wohl wieder as dazugelernt^^
 
Zuletzt bearbeitet:
Oh, stimmt das hab ich vergessen, Danke :)

/Edit: Kann man das ManuMode überhaupt in dem Syntax verwenden? Wenn ja hab ich wohl wieder as dazugelernt^^

Also ManuMode kann man gar nicht verwenden, aber Menumode gibt es sowohl als Begin-Block, als auch als Funktion.

Zum Skript:
Wenn man das ganze zusätzlich zum Gamemode noch in einen Menumode packt und den OnActivate-Block noch in einen OnEquip-Block packt kommt die Musik immer, wenn man das Buch liest und sollte aufhören, sobalt man das Buchlese-Menü verlässt.

Code:
scn Liederscript

short doonce

Begin OnEquip
 streamMusic "[data\music\...]"
 set doonce to 1
End

Begin OnActivate
 streamMusic "[data\music\...]"
 set doonce to 1
 activate
End

Begin Gamemode
 if ( doonce == 1 ) && ( MenuMode 1026 == 0 )
  set doonce to 0
  streamMusic random
 endif
End


Begin Menumode
 if ( doonce == 1 ) && ( MenuMode 1026 == 0 )
  set doonce to 0
  streamMusic random
 endif
end
 
Hi Leutz,

Ich hab da ne Frage zu einem Mod-Projekt von mir- ich erbaue momentan eine Bank- wo man Geld einzahlen kann etc. Und

um das Geld einzuzahlen, möchte ich gerne so einen "Regler" haben, wie beim warten, oder beim Abwerfen, nur soll bei mir beim Maximum der Geldbetrag stehen, den der Spieler im gesamten zur Verfügung hat.
Wenn der Spieler jetzt 1700 auswählt soll ihm soviel Geld entfernt werden...

Und dann hätte ich dazu noch eine Frage-
Wie kann man dem Spiel sagen, dass jeden Tag(oder 30 Tage- ist ja eigentlich egal) so und soviel dazukommt- ich hoffe auf dringende Antwort, da ich das Projekt so bald wie möglich fertigstellen (habe bald viele Tests und Schularbeiten, deswegen halt bald) und veröffentlichen möchte...

Danke im voraus und LG Black Knight
 
Tasusend Dank erstmal an euch! Der Script funktioniert einwandfrei:)
Und dann bräucht ich nochmal nen kleinen Script, der bewirkt, das der Player langsam die Lebensenergie verliert.

Danke!
Warum fügst du dem Spieler nicht über Player.AddSpell eine Eigenschaft mit dem Effekt Leben entziehen, Leben senken, oder wie der Effekt auch heißt hinzu?

Hi Leutz,

Ich hab da ne Frage zu einem Mod-Projekt von mir- ich erbaue momentan eine Bank- wo man Geld einzahlen kann etc. Und

um das Geld einzuzahlen, möchte ich gerne so einen "Regler" haben, wie beim warten, oder beim Abwerfen, nur soll bei mir beim Maximum der Geldbetrag stehen, den der Spieler im gesamten zur Verfügung hat.
Wenn der Spieler jetzt 1700 auswählt soll ihm soviel Geld entfernt werden...
Regler wird schwer, wenn nicht sogar unmöglich.
Das einzige was mir einfallen würde wäre, dass man den Umweg über eine Truhe geht und den Standart-Regler aus Oblivion verwendet. Wie genau, bzw. ob das überhaupt geht müsste man testen.

Und dann hätte ich dazu noch eine Frage-
Wie kann man dem Spiel sagen, dass jeden Tag(oder 30 Tage- ist ja eigentlich egal) so und soviel dazukommt- ich hoffe auf dringende Antwort, da ich das Projekt so bald wie möglich fertigstellen (habe bald viele Tests und Schularbeiten, deswegen halt bald) und veröffentlichen möchte...

Danke im voraus und LG Black Knight

wie viel ist so und so viel?
Fester Betrag oder Prozentwert des eingezahlten (also so wie ein Zins)?

für einen Festen Betrag:
Code:
scn GoldIncreaseScript

short LastDayOfGoldIncrease

Begin Gamemode
 if ( LastDayOfGoldIncrease == 0 )
  set LastDayOfGoldIncrease to GameDaysPassed
 if ( LastDayOfGoldIncrease >= GameDaysPassed + [I]x[/I] )               ;für x Anzahl der Tage einsetzten, nach denen das Gold hinzugefügt werden soll
  if ( [Referenz-ID in der das Gold gelagert wird].GetGold > 0 )                  ;damit nur Gold hinzugefügt wird, wenn der Spieler Gold eingezahlt hat. Falls unerwünscht einfach zusammen mit dem nächsten endif einfach weglassen
   [Referenz-ID in der das Gold gelagert wird].AddItem Gold001 [I]y[/I]              ;für y Anzahl des Goldes das hinzugefügt werden soll einsetzten.
  endif
  set LastDayOfGoldIncrease to GameDaysPassed
 endif
End

Für einen Prozentsatz:
Code:
scn GoldIncreaseScript

short LastDayOfGoldIncrease

Begin Gamemode
 if ( LastDayOfGoldIncrease == 0 )
  set LastDayOfGoldIncrease to GameDaysPassed
 if ( LastDayOfGoldIncrease >= GameDaysPassed + [I]x[/I] )               ;für x Anzahl der Tage einsetzten, nach denen das Gold hinzugefügt werden soll
  [Referenz-ID in der das Gold gelagert wird].AddItem Gold001 ( [Referenz-ID in der das Gold gelagert wird].GetGold * [I]y[/I] / 100 )              ;für y Prozentwert einsetzen, z.B. 2.3  (Spiel hackt bei krummen Werten wahrscheinlich beim Komma ab)
  set LastDayOfGoldIncrease to GameDaysPassed
 endif
End
[Referenz-ID in der das Gold gelagert wird] kann z.B. ein NPC oder eine Truhe sein. Einfach mit der ID der Persisten-Reference erstzten
 
Ich würde sagen, wie ein Zins, aber es kann auch so gemacht werden, dass wenn man einen Betrag zwischen 1001-2000 einzahlt jeden Tag 25 dazukommen und bei 2001-3000 50 dazukommen, mir wären aber Zinsen lieber- das geht doch mit x/100*5(5%) oder so, aber was macht man dann, wenn der Betrag eine Kommazahl ergibt? Man kann ja nicht 5,125 Gold "überweisen", oder? Kann man nicht sagen, das man auf, oder abrunden soll, wenn es eine Kommazahl wird?
Zu den Reglern: Es sollte ja ein Standard Regler werden, der einen den maximalen Geldbetrag, also das ganze Gold, das dem Spieler zur Verfügung steht beim Ende anzeigt.
Mit "so und soviel" eine ich, dass halt irgendein Betrag dazukommt.
Ich habe noch ne Frage zum Thema Scripten: Was bringen eigentlich die Klammern?

Und was das Lagern des Goldes betrifft, ich möchte viele Zellen(nicht eine In-, oder Exterior, sondern wie eine Gefängniszelle) bauen, wo dann auch NPC's Geld einzahlen können, es sollen um die Hundert Zellen werden. In die eigene Zelle kommt immer das Geld hin, sodass man es sich anschauen kann.Man kann auch einbrechen, wird man erwischt, bekommt man aber gleich drei-, viertausend Gold Kopfgeld.:D

MfG Jauffre
 
Zuletzt bearbeitet:
Da man das Geld ja nicht einfach ablegen kann, könnte man es vielleicht so machen, dass man die Septime immer in "Portionen" einzahlen kann, sodass per messagebox dann abgefragt wird
"Wie viel wollt Ihr einzahlen?"
"50000"
"10000"
"5000"
"1000"
"100"

Die Klammern dienen soweit ich weiß lediglich der Übersicht, sind also quasi nur "Zierde" (außer natürlich in Rechnungen).
 
Hm... naja, wenn das Spiel dann nicht abstürzt (will ich bei Obl nicht ausschließen^^), müsste es sogar automatisch runden, sobald man einen ganzzahlingen Wert braucht, beispielsweise eben Geld...
Das Script sähe dann in etwa so aus (ich hoffe, ich hab nichts vergessen), wobei ich den Zinsteil einfach mal von Low Post kopiert habe.
Code:
scn Banktruhe

ref self
short Variable
short MenuStage
short ButtonGoldInsert
short ButtonWhattoDo
short LastDayofGoldIcrease

Begin OnActivate
set self to getself
set MenuStage to 1
end

Begin GameMode

if (MenuStage == 1)
messagebox "Was wollt Ihr tun?" "Einzahlen" "Auszahlen" "Abbrechen"
set Variable to 1
set MenuStage to 0
elseif (MenuStage == 2)
messagebox "Wie viel wollt Ihr einzahlen?" "50000 Septime" "10000 Septime" "5000 Septime" "1000 Septime" "100 Septime"
set Variable to 10
set MenuStage to 0
endif

if (Variable == 1)
set ButtonWhattoDo to getbuttonpressed
set Variable to 2
elseif (Variable == 2) && (ButtonWhattoDo == 0)
set Variable to 0
set MenuStage to 2
elseif (Variable == 2) && (ButtonWhattoDo == 1)
set Variable to 0
activate
elseif (Variable == 2) && (ButtonWhattoDo == 2)
set Variable to 0
endif

if (Variable == 10)
set ButtonGoldInsert to getbuttonpressed
set Variable to 11

elseif (Variable == 11) && (ButtonGoldInsert == 0)
if player.getgold => 50000
player.removeitem Gold001 50000
self.additem Gold001 50000
set MenuStage to 2
else
message "Ihr habt nicht genug Gold!"
set Variable to 0
endif

elseif (Variable == 11) && (ButtonGoldInsert == 1)
if player.getgold => 10000
player.removeitem Gold001 10000
self.additem Gold001 10000
set MenuStage to 2
else
message "Ihr habt nicht genug Gold!"
set Variable to 0
endif

elseif (Variable == 11) && (ButtonGoldInsert == 2)
if player.getgold => 5000
player.removeitem Gold001 5000
self.additem Gold001 5000
set MenuStage to 2
else
message "Ihr habt nicht genug Gold!"
set Variable to 0
endif

elseif (Variable == 11) && (ButtonGoldInsert == 3)
if player.getgold => 1000
player.removeitem Gold001 1000
self.additem Gold001 1000
set MenuStage to 2
else
message "Ihr habt nicht genug Gold!"
set Variable to 0
endif

elseif (Variable == 11) && (ButtonGoldInsert == 4)
if player.getgold => 100
player.removeitem Gold001 100
self.additem Gold001 100
set MenuStage to 2
else
message "Ihr habt nicht genug Gold!"
set Variable to 0
endif

endif

if ( LastDayOfGoldIncrease == 0 )
set LastDayOfGoldIncrease to GameDaysPassed
if ( LastDayOfGoldIncrease >= GameDaysPassed + 30 )
self.AddItem Gold001 ( self.GetGold * 5/ 100 )
set LastDayOfGoldIncrease to GameDaysPassed
endif

end
 
  • Like
Reaktionen: Jauffre
Ich würde sagen, wie ein Zins, aber es kann auch so gemacht werden, dass wenn man einen Betrag zwischen 1001-2000 einzahlt jeden Tag 25 dazukommen und bei 2001-3000 50 dazukommen, mir wären aber Zinsen lieber- das geht doch mit x/100*5(5%) oder so, aber was macht man dann, wenn der Betrag eine Kommazahl ergibt? Man kann ja nicht 5,125 Gold "überweisen", oder? Kann man nicht sagen, das man auf, oder abrunden soll, wenn es eine Kommazahl wird?
Wie gesagt: meine Vermutung ist, dass vor dem Komma abgehackt wird. Wenn man ganz sicher gehen will sichert man den Wert erst in einer Short und fügt den dann hinzu.

Zu den Reglern: Es sollte ja ein Standard Regler werden, der einen den maximalen Geldbetrag, also das ganze Gold, das dem Spieler zur Verfügung steht beim Ende anzeigt.
Mit "so und soviel" eine ich, dass halt irgendein Betrag dazukommt.
Eben dass das maximale durch einen Betrag ersetzt wird halt ich für unmöglich, ich lasse mich aber gerne etwas besseren belehren.

Ich habe noch ne Frage zum Thema Scripten: Was bringen eigentlich die Klammern?
Bei Rechensachen funktionieren die afaik genauso wie in der Mathematik.
Für if-Blöcke siehe den Artikel über if im Wiki (bei Combining Comparisons).


Und was das Lagern des Goldes betrifft, ich möchte viele Zellen(nicht eine In-, oder Exterior, sondern wie eine Gefängniszelle) bauen, wo dann auch NPC's Geld einzahlen können, es sollen um die Hundert Zellen werden. In die eigene Zelle kommt immer das Geld hin, sodass man es sich anschauen kann.Man kann auch einbrechen, wird man erwischt, bekommt man aber gleich drei-, viertausend Gold Kopfgeld.:D

MfG Jauffre

Da wirst du aber viel mit Disable/Enable arbeiten müssen...
Viel Spaß
 
  • Like
Reaktionen: Jauffre
Das mit Disable/Enable wird schon gehn, ich hab schon nif's für 25 Gold, 50 Gold, 100 Gold, 150 Gold, 200 Gold etc.

Dann setz ich nur welche mit 200 Gold rein und lass die Disablen/Enablen.

An Arcanum Antor: Danke für dieses Riesen-Script, dieses Lob geht auch an LowPost, da er einen Teil dafür abgeliefert hat. :angel:

Ich werde das Script sobald wie möglich(hab morgen Geografie-Test^^) ausprobieren. Jetzt gibt es nur noch ein Problem: Die AI's. Die werden mich noch Stunden kosten, wenn ich den Typen von der Bank immer in den Keller schicken muss^^.

Also, jetzt noch mal eine Frage: So sollte der Ablauf beim Einzahlen ausschauen. Ich gehe zum Typen, der für die Bank arbeitet. Wenn ich ihn anrede, erhalte eine MessageBox, die fragt, wieviel ich einzahlen möchte.
Ich zahle Zehntausend Septime ein, das Geld wird mir entfernt, der Angestellte geht in den Keller, indem er eine Tür aufschliesst. Er geht zu meinen Verlies, legt das Geld ab, geht aus meinen Verlies wieder hinaus, sperrt zu, geht aus dem Keller, sperrt zu und geht wieder zu seinen Arbeitsplatz zurück.- So, jetzt meine Frage: Wie bringe ich den Angestellten dazu, die Türe abzuschließen? Einfach nen Trigger mit einem Script, der wiefolgt ausschaut: (?)
Code:
scn Abschließen

Begin OnTrigger [ID des Angestellten]
[ID der Zellentür].unlock
End
Das müsste doch gehen?; oder

Sollte ich mal fertigwerden^^, werd ich euch den Link zum PI mit PN schicken

Mfg und einem Riesengroßen Dankeschön, Jauffre
 
Zuletzt bearbeitet:
2 Sachen:

1.)Wenn das Script von Arcanum Antor auf einem NPC liegt wird zumindest das auszahlen nicht funktionieren, da es eigentlich für eine Truhe gedacht ist.
Damit das für einen NPC funktionert musst du eigentlich nur
Code:
[B]set self to getself[/B]
durch
[B]set self to [Ref-ID der Dummy-Truhe][/B]
und
Code:
[B]activate[/B]
durch
[B]self.activate[/B]
ersetzten.

2.)Wie willst du mit Unlock eine Tür verriegeln? Damit entriegelst du sie.
Um sie zu verriegeln nimmst du Lock x


Edit:
Was mir noch eingefallen ist: auf deine Dummy-Gold-Sachen müsste auch noch ein Script, dass dem Spieler/aktivierendem NPC das entsprechende Gold bei Aktivierung hinzufügt.

Sofern es ein Misc-Item ist sollte folgendes Script funktionieren:
Code:
scn GoldxScript

ref ActionRef
ref self

Begin OnActivate
 set ActionRef to GetActionRef
 set self to GetSelf
 self.disable
 [Ref-ID der DummyTruhe].RemoveItem Gold001 x
 ActionRef.AddItem Gold001 x
End
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Jauffre
2.)Wie willst du mit Unlock eine Tür verriegeln? Damit entriegelst du sie.
Um sie zu verriegeln nimmst du Lock x

Sry, meinte ich ja, hab mich nur verschrieben- Tja, es sind immer die kleinen Hoppalas, die einem den Tag versüßen^^

Was mir noch eingefallen ist: auf deine Dummy-Gold-Sachen müsste auch noch ein Script, dass dem Spieler/aktivierendem NPC das entsprechende Gold bei Aktivierung hinzufügt.

Sofern es ein Misc-Item ist sollte folgendes Script funktionieren:
Code:
scn GoldxScript

ref ActionRef
ref Container

Begin OnActivate
set ActionRef to GetActionRef
ActionRef.AddItem Gold001 x
End

Begin Menumode
set Container to GetContainer
if ( Container != 0 )
RemoveMe
endif
End

Sei mir nicht böse, aber ich weiß nicht genau, was du meinst:oops:

Und ich hätte noch zwei Fragen: Was genau bedeutet beim Scripten dieses Symbol: "%", also der Modul-Operator?
Und wie lautet der Befehl mitdem ich einem NPC sage, das er zu einem Marker gehen soll?- also über Path Finding?
 
Zuletzt bearbeitet:
Falls du die Gold-Nif als Misc-Item eingefügt hast, sorgt dieses Script dafür, dass man das Geld auch bekommt, wnen man es anklickt... Sonst kann man es ja schlecht klauen ;)
 
  • Like
Reaktionen: Jauffre
Sei mir nicht böse, aber ich weiß nicht genau, was du meinst:oops:

Wenn der Spieler in die Bank einbricht muss er ja auch deine 50-/100-/etc.-GoldMeshes aufnehemen können. Das Skript dient dazu, dass dem Spieler anstelle des Meshes Gold hinzugefügt wird.

Ich hab das Skript nochmal editiert, da das "Dummy-Mesh" danach einfach aus dem Spiel verschwunden wäre. Mit der jetzigen Version wird es "nur" disabled und der Dummy-Truhe (kannst auch die für NPCs einsetzen, bzw. die entsprechende Zeile ganz weglassen) das Gold entnommen. Dann kann das Mesh bei neuen Einzahlungen auch wieder enabled werden.
 
  • Like
Reaktionen: Jauffre
Verstehe, danke! An alle Beide:angel:

Endlich kann ich meine Bank fertigbauen- jetzt fehlen nur noch die AI's für die ANgestellten- ich schätze, in zwei Wochen bin ich fertig. Ihr werdet dann ne PN mit dem Link zur PI in der PN-Box haben.

Wenn ich noch ne Frage habe, werde ich schreiben...^^

MfG Jauffre
 
Zuletzt bearbeitet:
Ich habe doch noch eine Frage: Wie heißt das Script für so einen Regler, und wo ist die Textur dafür, denn es ist ja nicht mehr als ein Loadscreen, nur das man etwas auswählen kann. Ich kann doch einen neuen mit den alten Daten machen, und das Script an der entsprechenden Stelle auf player.getitem Gold001 abbändern- dies müsste doch gehen

.Sry für Trippelpost, aber ich habe noh ne Frage: Ich hab die Nif für 25 Goldstücke verwendet, und ein neues MiscItem erstellt. Ich habe (momentan nur zum Test in einen eigenen neuen PI) Low Posts Script ohne die Dummy-Truhen Zeile und statt x 25 eingesetzt, und ich kann das Item nicht aufnehmen(nicht einmal der Name des Items steht dort:cry:). Dann habe ich das Item mal ohne Scipt in die Welt "gesetzt" und es hat sich nichts verändert:cry:. Es ist keine Persistent-Reference-ich weiß nicht woran es liegt, bitte um Hilfe, denn ich hab schon Nifs für 10000 Goldstücke gemacht, und 3/4 Stunde gebraucht- möchte diese Datei nicht verwerfen:cry:

MfG
 
Zuletzt bearbeitet von einem Moderator: