Construction Set Der Scriptthread

Lustiges Script Problem

Hallo, Leute!
Ich arbeite gerade an einer Hausmod und habe einen Activator erstellt, mit dem man, wenn man ihn anklickt 1 mal Salzreis bekommt. Weil ich es gern kompliziert habe, wollte ich mal ausprobieren, ob es funktioniert, dass wenn ich den Activator das 100. Mal anklicke, er mir noch einmal Salzreis gibt, dann disabled wird und eine Messagebox erscheint, in der steht, dass man den ganzen Salzreis aufgebraucht hat.
So sieht mein Script-Entwurf aus:

Code:
begin _SAltriceScript1

if OnActivate<=99
	player->AddItem "ingred_saltrice_01" 1
endif

if OnActivate>=100
	MessageBox "Ihr habt bereits den ganzen Salzreis schon genommen!"
	disable
endif

end

Das Problem: Sobald ich den Activator anklicke, bekomme ich unendlich Salzreis in mein Inventar, welcher sich mit allermierender Geschwindigkeit immer mehr erhöht. Es ist relativ nervig, dass ich mich wegen dem ganzen Salzreis nicht einmal mehr bewegen kann. :?
Könnt ihr mir das Problem sagen?

MfG, MorroFan.
 
ich hab zwar keine ahnung vom scripten, sry deswegen, aber ich glaube das mit dem onactivate<>= geht erstmal nicht, du brauchst ne variable schätze ich? irgendwas mit setblablabla +1, damit das programm feststellen kann, ob du und wie oft du das ganze schon benutzt hast. wie genau das ganze aussieht, weiß ich leider nicht.
was ganz kompliziertes wäre, ziemlich lang, und k.a. ob das funktionieren würde..

erstmal eine variable hinzufügen... also
begin _SAltriceScript1

short banane

if OnActivate<=99
player->AddItem "ingred_saltrice_01" 1
set banane to 1

endif

naja und das so weiter verstehst wie ich meine...lass lieber auf jemanden der mehr davon versteht weiter...und vergesst auf dem weg nicht mich auszulachen:oops:
 
  • Like
Reaktionen: MorroFan
OnActivate ist - sofern definiert - immer aus {0,1} und somit < 99,
das kann also nur fehlschlagen, ich rate mal zu einer weiteren variable "count" oder so vom Typ short
 
ach genau, da war doch was...wie gesagt, ich habe keine ahnung, aber jetzt^^
onactivate kann nur 1 oder 0 sein, weil onactivate 0 heißt, dass das objekt nicht aktiviert wurde, und eins dass es aktiviert wurde.
naja, dasselbe wie ivan geschriebn hat^^
 
Reisering

Hallo Leute!
Ich wollte mal fragen, ob jemand folgendes Script übrig hat:
Ich möchte einen Reisering haben, der zwecks Übersichtlichkeit im Inventar die Zauber "Markieren", "Rückker", "Almwiese Intervention" und "ärztlicher Eingriff" auf einem Item vereint. Ich glaube, das lässt sich nur per Script regeln (?).

Schonmals danke im Voraus!
 
dpüm: ich glaube du meisnt göttlicher eingriff, ich habe leider trotzdem keinen blassen schimmer wie das geht..

allerdings hab ich selber eine frage nämlich will ich wenn man einen tagebucheintrag bekommt jeweils nach x Tagen ein objekt enablen, wiederum nach x' tagen ein weiteres und dann nochmals nach x'' tagen wieder ein anderes.
- nach den drei objektveränderungen soll noch ein weiterer Tagebucheintrag hinzugefügt werden.
- Man darf am besten nicht in der Nähe sein.
- x und x' sollen wieder disabled werden.

Wär echt cool wenn das jemand wüsste :)
 
Zuletzt bearbeitet:
mal schauen ^^

@Master_DeluXXe
Ich fürchte, es gibt keinen richtigen Wert, der angibt, ob Zauber xyz gerade gezaubert wird. Ich könnte nur den "Cast"-Zauber anbieten,allerdings fragt der auch ab, worauf der Zauber gewirkt wird. Lösung wäre, der Zauber wirkt auf den Player selbst ^^.
ICh hoffe, dass es so stimmt :book:

Begin script

short doonce

If ( Doonce == 0 )

If ( Cast "ZauberID", "Player" == 1 )
Player->Additem "xyz"
set doonce to 1
endif

endif

If ( Doonce == 1 )

If (player->OnActivate "xyz" == 1 )
RemoveSpell "ZauberID"
set doonce to 2
endif

end

@MorroFan
wenn der Activator jedesmal abfragt, wie oft du schon salzstangen genommen hast, wird das script ganz schön lang.... denk dir lieber was anderes aus :-D :-D

@Darkshade
Das geht eigentlich auch per Verzaubertem Ring o. ä. ^^
...und Almwiese Intervention ist auch mal was neues :D

@Maiq der Lügner
Mit Tagebucheinträgen kenn ich mich nich so aus, mein Vorschlag wäre folgender^^
Hinweis: der Eintrag muss beim Erhalten den Wert 10 haben
Begin script

float timer


If ( GetJournalIndex, "ThemenID" >= 10)
set timer to ( Timer + GetDaysPassed )
endif

If ( Timer >= x )
xyz->enable
set doonce to 1
endif

If ( timer >= x² )
xyz²->enable
endif

If ( timer >= x3 )
xyz³ -> enable
Journal, "ThemenID, 100
endif


end

MfG
 
Zuletzt bearbeitet:
Kann ich also vier verschiedene Zauber auf ein Objekt legen? Kommen sich die vier Zauber bei der Auswahl des Ringes im Zaubermenü nicht in die Quere?
Das funktioniert im CS, wie auch im Spiel selbst einwandfrei. Die Zauber werden allerdings immer zusammen ausgesprochen. Wenn du beispielsweise einen verzauberten Gegenstand mit Levitation und mit Feuerschaden auf Berührung belegst, dann kannst du beide Effekte nicht voneinander unabhängig ausführen. Jedes mal wirst du Levitation und Feuerschaden gleichzeitig wirken.

Die einzige Möglichkeit wäre ein Script, welches bei Aktivierung des Gegenstands ein Auswahlmenü einblendet, in dem steht welchen der Effekte du jetzt wirken willst.
 
Wobei es etwas sinnlos wäre, wen man einen Feuer-Zauber jedesmal per MessageBox aktivieren will... Auch muss man dann jedesmal den Ring an und ablegen. Mach doch einfach für jeden Zauber einen Ring ^^

Allerdings könnte man für den Markieren/Rückkehr- Zauber vielei ein kleines Script schreiben, sodass die beiden ZAuber auf einem Gegenstand liegen.... :ugly:
 
Die einzige Möglichkeit wäre ein Script, welches bei Aktivierung des Gegenstands ein Auswahlmenü einblendet, in dem steht welchen der Effekte du jetzt wirken willst.

Genau so eins suche ich, denn die vier gleichzeitig zu chanten wäre ja sowas von sheogorath. :-D

Mach doch einfach für jeden Zauber einen Ring ^^

Genau das möchte ich vermeiden. Ich habe keinen Bock, für jeden Zauber einen Ring mit mir rumzuschleppen, das spart im Fall der Fälle Sucharbeit im Inventar (ich weiß, ich bin faul bis zum geht-nicht-mehr:roll:).
 
Ich bräuchte folgendes script:
Beim Wirken von Zauber "xyz" wird ne truhe vor dem Spieler gesetzt, die nachdem man sie öffnet und danach das objektfensterverlässt wieder verschwindet.
Die Truhe heißt "_truhe".
Hab da ne frage?
Wenn ich da was reinpacke, die Truhe verschwindet und ich sie wieder beschwöre, ist der Inhalt noch da?
 
Zuletzt bearbeitet:
hmm, wie wäre es mit nem script der einen zur truhe teleportiert, und vorher markieren setzt?
Is folgendes Machbar?
player coc zu Truhenraum, aber vorher markieren und rückkehrtrank ins inventar hinzufügen.
 
Moin!
Zusätzlich zu dem Ring, der über Script Almwise Intervention, ärztlicher Eingriff, Markieren und Rückkehr gleichzeitig bieten kann, wollte ich fragen, ob es möglich ist, eine Schriftrolle (mit einem Script (?)) zu erstellen, die ich dann einmal verwende und die mich an einen bestimmten Ort teleportiert. Aber (deswegen Schriftrolle) eben nur einmal und dann nie wieder.

Danke im Vorraus!
 
Klar ist das möglich (per Script) aber vorher:
Almwise Intervention, ärztlicher Eingriff, Markieren und Rückkehr
Es heißt nun mal Almsivi Intervention und Göttlicher Eingriff. ;)
Oder sind das neue Zauber? in dem Fall, Asche auf mein Haupt :-D

Code:
Start tele_script

short doonce

If ( doonce == 0 )
      If ( OnPCEquip == 1 )
            Player->PositionCell, x-Wert, y-Wert, z-Wert, Rotation, "Cell-Id"
            set doonce to 1
      endif
endif
End

Um an die y-,x-, etc. Werte zu kommen, erstellst du am besten einen Npc und setzt ihn an die Stelle, wo dann der Player hinteleportiert wird. Dann kannste einfach die Werte abschreiben ;)
Hinweis: Sobald das Ding angelegt wurde, wird man teleportiert.
 
  • Like
Reaktionen: Darkshade
Es heißt nun mal Almsivi Intervention und Göttlicher Eingriff. ;)
Oder sind das neue Zauber? in dem Fall, Asche auf mein Haupt :-D

Ich mache bei Gelegenheit mal 'ne Mod, in der ich das korrigiere.:-D Außerdem finde ich meine Namen vieeel schöner!;)

Besten Dank für das Script. Ich nehme an, der Ring teleportiert beim anlegen?

Und ich habe mal eine Mod gehabt, da hat der Ring vorher höflich per Messagebox nachgefragt, ob man denn wirklich nach Hause möchte. Könnte man dieses Script vielleicht dahingehend modifizieren (Frage -> "Ja" / "Nein")?
 
klar :)
jedenfalls denke ich, dass es so geht ^^

Code:
Begin script

short OnPCEquip
short doonce
short button

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

if ( state == 1 )
       MessageBox „ [B]Deine Nachricht[/B] ?“ „Ja.“ „Nein.“
     set state to 2
endif

if ( state == 2 )
     set button to GetButtonPressed
           if ( button == 0 ) 
                Player->PositionCell, x-Wert, y-Wert, z-Wert, Rotation, "Cell-Id"  
                set button to -1
              set state to 3
           endif

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

endif

 

end
 
  • Like
Reaktionen: Darkshade
Getränkeautomat

Moin Leute!
Erstmal besten Dank an sieberling für das Script!
Nun eine weitere Anfrage:
Ich möchte die Tavernen Morrowinds mit Getränke- und Süßigkeitenautomaten ausstatten, ich brauche daher ein Script, dass erst ein Auswahlfenster für das gewünschte Objekt öffnet (am liebsten mit Abbruchmöglichkeit, Preis schreibe ich mit rein) und dann das entsprechende ins Inventar packt und im Gegenzug den Geldbetrag aus demselben entfernt. Wichtig ist mir, dass der Automat nicht per "kein Geld im Inventar und so nix bezahlen"-Methode ausgetrickst werden kann, sowie dass ich nach Möglichkeit das Angebot im CS selbstständig erweitern kann (also angemerkt wird, welche Passagen ich duplizieren muss), damit ich euch nicht ständig damit auf den Wecker falle.
Besten Dank im Vorraus! Ich würde es ja selbst machen, aber ich habe vom Scripten sowas von keine Ahnung...^^
 
Zuletzt bearbeitet: