Construction Set Skriptthread zum Construction Set

Das muss anders, nämlich so sein:

Code:
scn 00Arena

short Plevel
short button
short ausrustung
short activated

Begin OnActivate
If activated == 0
If Plevel == 0
set Plevel to player.GetLevel +2
Elseif Plevel > 0
set Plevel to Plevel +2
Endif
set activated to 1
Endif
End

Begin GameMode
If activated == 1
set button to getbuttonpressed
Messagebox "Level", "+2", "+2 P"
If button == 0
[REFdesNPC's].setlevel 2, 1
set ausrustung to 1
Elseif button == 1
[REFdesNPC's].setlevel Plevel
set ausrustung to 2
endif
[COLOR="Red"]set activated to 0[/COLOR]
Endif
end
[/QUOTE]
Das sollte so klappen. Du kannst den Schalter immer aktiveren, wenn man ihn aber nur ein mal aktivieren können soll, machst du einfach aus der 0 im roten Bereich eine 2 :)

Edit: @ Majesto: Nein, es muss eine 2 sein, glaub' mir ^^

MfG Gildur
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Cyborg11
Könntest du mir vllt. mal bitte ein Beispiel dazu geben? Ich finde dazu nämlich nichts in meinen Begleiterplugins :? Entweder ich bin zu dumm oder zu blöd dafür ^^
[...]

Ich zitiere mal aus einem anderen Forum:
Low Post schrieb:
Nö, kannn ich nicht.
Das ist zu kompliziert, als dass ich das mal eben so runterschreiben könnte.

Meine Idee wäre, in dem Resultskript des Dialogs das Inventars des NPC per RemoveAllItems in irgenteine Dummytruhe zu übertragen, den Dialog zu beenden, und dann den Spieler per TruhenRef.Activate Player zwingen, die Truhe zu aktivieren. Dann kann er der Truhe die Sachen geben, die der NPC haben soll und die nehmen, die er wiederhaben will. Nach beenden des Truhenmenüs (muss man wohl in einem Gamemode-Block machen) wird dem NPC der Truheninhalt (wieder mit RemoveAllItems ) zurückgegeben.
Zusätzlich kann man noch den NPC via NPCRef.StartConversation Player zwingen den Spieler wieder anzusprechen.
Damit er die Sachen anlegt muss dann afaik noch ein evp her.

Genau steuern, was er dann anlegt kann man nicht, da der Spieler ihm ja alles mögliche geben kann. Falls du aber weißt, dass er ein best. Item hat kannst du NPCRef.EquipItem Object-ID verwenden.


PS:
Ordung müsst wieder da sein.

Brausebart schrieb:
zu dem Thema hatte ich anderswo schon einmal etwas geschrieben. Ich zitiere mich mal selbst. Im Prinzip macht das Skript das, was Low Post beschrieben hat.

Als erstes wird eine leere Kiste (ohne Respawn) benötigt und als persistente Referenz irgendwo in der Spielwelt platziert, am besten wo der Spieler sie nicht sehen kann. Unterhalb des Fußbodens etwa. Die ReferenzID dieser Kiste nenne ich mal ShareBoxRef. Die RefID des NPCs sei NPCRef

Im Skript des NPC steht folgendes:

Code:
scn NPCScript

short DoShare
ref Me

begin GameMode

   ; Gegenstände des NPC in die Kiste legen, anschließend Kiste
   ; durch den Player aktivieren

   if DoShare == 1
      set Me to GetSelf
      set DoShare to 2
      RemoveAllItems ShareBoxRef
      ShareBoxRef.Activate Player
   endif

  ; Nach dem Schließen des Container-Menus dem
  ; NPC die Gegenstände aus der Kiste zurückgeben

   if (MenuMode 1008 != 1) && (DoShare == 2)
      set DoShare to 3
      ShareBoxRef.RemoveAllItems Me
   endif

   ; Am Ende die Ausrüstung anlegen

   if DoShare == 3
      set DoShare to 0
      AddScriptPackage ReEquip
      evp
   endif

end

Das Anlegen der geänderten Ausrüstung ist etwas problematisch. Von alleine macht das Spiel das nämlich manchmal nicht. Ich verwende bei meinem Begleiter zu diesem Zweck eine AI-Package. Im Bsp. oben habe ich sie ReEquip genannt. Das ist eine Find-Package ohne Target, Location, Schedule oder sonstige Einstellungen, mit Ausnahme von Armor Unequipped und Weapons Unequipped. Diese beiden Kästchen sind angehakelt. Die Package ist nur dazu da, einmal kurz ausgeführt zu werden und das Spiel so zu zwingen, dem NPC die geänderte Ausrüstung anzulegen. Alternativ kann man das selbe erreichen, indem man den NPC kurz disabled und im nächsten Frame wieder enabled, oder ihn für einen Augenblick in eine andere Zelle beamen und dann wieder zurück.

Um den Austausch zu starten, kommt schließlich in das Resultscript des betreffenden Gesprächs-Topics

set NPCRef.DoShare to 1

und das Gespräch sollte hier beendet werden, also der Topic das Häkchen bei Goodbye haben.
 
Grüße!

hab auch wieder ein kleines Problem.. nunja, klein.. es hält mich doch nun schon ganze 3 Tage auf.. ich weiss nicht wie oft ich die Wiki durchgesehen hab und versucht hab zumindest mit den dort angegebenen Beispielen was hinzubekommen.. keine Chance ...

Und zwar ist es eine kleine ordinäre Messagebox welche mir Sorgen bereitet.
Folgendes:

Die Box soll durch einen ZAUBER (auf sich selbst) ausgelöst werden.
In der ersten Instanz sollen dann 5 Auswahlmöglichkeiten erscheinen (5. -> schließen)
Bei der ersten Wahlmöglichkeit soll man dann 2 weitere bekommen, wobei die 2. in die erste Instanz (mit den 5 möglichkeiten) zurückführt
Bei den anderen 3 Möglichkeiten (letzte ist schließen der box) sollen wieder jeweils 3 Wahlmöglichkeiten zur Verfügung stehen, wobei die letzte immer ins Hauptmenü (1. Instanz, nicht DAS Hauptmenü) führen soll...

ich weiss nicht wie oft ich angefangen hab.. aber es hat shcon immer in der 1. Instanz nicht geklappt.. oder ist direkt in die 2. gesprungen.. *noch irre wird*....

BITTE, helft :eek:)
 
Hallo

ich möchte einen script haben /schreiben ,
damit eine kreatur konstant den shadereffekt von seelenfalle hat.
wie schreibt man das ?
oder wie sieht das script aus ?

und einen ,
um den shader effekt von abzug konstitution ( schön rot )
zu haben.

danke für eine antwort

mfg

Barin O. 8)
 
@ Cadhar:

Versuch es mal hier mit:

Code:
scn ScriptName

short button
short ABox

Begin ScriptEffectUpdate
set ABox to 1
End

Begin GameMode
If ABox == 1
Messagebox "Die erste Messagebox" "Auswahl1" "Auswahl2" "Auswahl3" "Auswahl4" "Auswahl5"
set button to getbuttonpressed
If button == 0
	Messagebox „Die zweite Messagebox“ „Auswahl1“ „Auswahl2“
	Set button to getbuttonpressed
		If button == 0
		;Tue Irgendwas
		Elseif button == 1
		Return
		Endif
Elseif button == 1
	Messagebox „Eine Messagebox mit 3 Antworten“ „Auswahl1“ „Auswahl2“ „Auswahl3“
	Set button to getbuttonpressed
		If button == 0
		;Tue etwas
		Esleif button == 1
		;Tue etwas anderes
		Elseif button == 2
		Return
Elseif button == 2
	Messagebox „Eine Messagebox mit 3 Antworten“ „Auswahl1“ „Auswahl2“ „Auswahl3“
	Set button to getbuttonpressed
		If button == 0
		;Tue etwas
		Esleif button == 1
		;Tue etwas anderes
		Elseif button == 2
		Return
Elseif button == 3
	Messagebox „Eine Messagebox mit 3 Antworten“ „Auswahl1“ „Auswahl2“ „Auswahl3“
	Set button to getbuttonpressed
		If button == 0
		;Tue etwas
		Esleif button == 1
		;Tue etwas anderes
		Elseif button == 2
		Return
Endif
set ABox to 0
Endif
End
Ich hoffe, ich habe nichts vergessen.

MfG Gildur
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Cadhar
1,2 ma vertippt und ein wenig was vergessen (endif?) hast du, ja
Trotzdem vielen dank!

aber er springt immer noch nciht in die 2. ebene, es kommt nur die erste mbox und dann, nach beliebiger auswahl schließt sich diese und es passiert nichts mehr
 
Auf ein Neues:
Code:
scn ScriptName

short button
short Secbutton
short ABox

Begin ScriptEffectUpdate
set ABox to 1
Messagebox "Die erste Messagebox" "Auswahl1" "Auswahl2" "Auswahl3" "Auswahl4" "Auswahl5"
End

Begin GameMode
If ABox == 1
set button to getbuttonpressed
If button == 0
	Messagebox „Die zweite Messagebox“ „Auswahl1“ „Auswahl2“
	Set Secbutton to getbuttonpressed
		If Secbutton == 0
		;Tue Irgendwas
		Elseif Secbutton == 1
		Return
		Endif
Elseif button == 1
	Messagebox „Eine Messagebox mit 3 Antworten“ „Auswahl1“ „Auswahl2“ „Auswahl3“
	Set Secbutton to getbuttonpressed
		If Secbutton == 0
		;Tue etwas
		Esleif Secbutton == 1
		;Tue etwas anderes
		Elseif Secbutton == 2
		Return
Elseif button == 2
	Messagebox „Eine Messagebox mit 3 Antworten“ „Auswahl1“ „Auswahl2“ „Auswahl3“
	Set Secbutton to getbuttonpressed
		If Secbutton == 0
		;Tue etwas
		Esleif Secbutton == 1
		;Tue etwas anderes
		Elseif Secbutton == 2
		Return
Elseif button == 3
	Messagebox „Eine Messagebox mit 3 Antworten“ „Auswahl1“ „Auswahl2“ „Auswahl3“
	Set Secbutton to getbuttonpressed
		If Secbutton == 0
		;Tue etwas
		Esleif Secbutton == 1
		;Tue etwas anderes
		Elseif Secbutton == 2
		Return
		Endif
Endif
set ABox to 0
Endif
End
Ich habe nicht mehr getan, als eine zweite short für die Knüpfe der zweiten Boxen deklariert. Ich denke (hoffe), dass es klappt.

MfG Gildur
 
  • Like
Reaktionen: Cadhar
Hallo:D
Ich brauche ein skript (Was ein Wunder):eek:

Ich möchte ein skriot das wenn man über level 10 ist und dann rastet(Diregt nach dem man das mod gestartet hat) eine notiz bekommt...
Dann noch eine nachricht und eine tagebucheintarg

Danke im voraus ;)


Mfg yves
 
Zuletzt bearbeitet:
Ich habe mal ne Frage (klar eigentlich:lol:):
Also, ich will ganz "einfach" einen NPC erstellen auf dem dann das Script liegt, das folgendes bewirken soll (noch umständlicher konnte ichs auf die Schnelle nicht:D):
der NPC soll mir ein Haus verkaufen, genauso, wie man es im Spiel schon kann (wo ich, wie mir gerade auffällt, eigentlich auch im entsprechenden Script nachgucken könnte). im Dialog soll es so aussehen:
1. Man spricht den NPC an,
2. es kommt das erste Gesprächsfenster: Punkt 1 : Eisfestung kaufen
Punkt 2 : Gerüchte
3. Wenn man auf "Eisfestung kaufen" klickt, soll ein kurzer Text angezeigt werden ( "Ah, ihr seit interessiert? Die Festung kostet x Goldstücke")
4. Es kommt ein zweites Gesprächsfenster: Punkt 1 : Kauf ich sofort!
Punkt 2 : Tut mir leid, soviel Geld habe ich nicht.
5. Wenn man auf Punkt 1 klickt, soll folgendes passieren: der 'NPC sagt einen kleinen Text ("Eine weise Entscheidung."), es wird x Gold abgezogen und der Schlüssel hinzugefügt.
Wenn man auf Punkt 2 klickt, sagt der NPC etwa folgendes "Schade, vielleicht ein ander Mal." Das Gespräch wird beendet.

(Das mit den Dialogen gehört hier eigentlich nicht hin, aber so ist es zumindest für mich leichter. Wenn mir das gleich jemand mit erklärt, wäre das auch nicht schlecht.)

Danke im Vorraus.
 
Habe folgendes Problem mit Tecra's Mod Translator beim Übersetzen der Message-Boxen der Scripts (mehr muss ich ja eigentlich nicht übersetzen):

Ich hab jetzt zum Versuch zwei Häusermods aus tesnexus.com übersetzt und es klappt alles wirklich super bis auf die Scrpts :? . Wenn ich sie übersetze, dann lassen sie sich in der neuen Datei nicht mal mehr anschauen, und im Spiel sind sie immer noch Englisch....was mache ich falsch?

gruß,
Sebulon
 
oh, gar nicht gesehen das du hier schon geschrieben hast...
so pauschal lässt sich nicht sagen was du 'falsch' gemacht hast, am einfachsten wäre es wenn du die skripts (bzw die zu übersetzenden ausschnitte) rausgeben würdest...
 
Zur Zeit sitze ich an The Romance of Eyja.

Nun habe ich 2 Probleme:
1. ist das bereits genannte Script Problem

Hier das original Script:
scn AASleepWithEyjaScript
short curMusic4
short updatemusic4
short musicTimer4

float fQuestDelayTime
short EyjaSleeping
short PlayerSleepVar
Begin GameMode
set fQuestDelayTime to .5
if ( EyjaNewRef.GetSleeping == 3 )
set EyjaSleeping to 1
endif

if (player.GetInCell SkingradHouseForSaleUpperFloor == 1) && (GetStage AASleepWithEyja ==10) && (EyjaNewRef.GetInCell SkinGradHouseForSaleUpperFloor == 1)
if ((curMusic4 !=1) && (musicTimer4 <= 0))
set updatemusic4 to 1
set curMusic4 to 1
else
set updatemusic4 to 0
set curMusic4 to 0
endif
if (updatemusic4 == 1)
streammusic "data\music\special\eyjasong03.mp3"
set updatemusic4 to 0
set musicTimer4 to 200
endif
if ( musicTimer4 > 0 )
set musicTimer4 to ( musicTimer4 - getSecondsPassed )
else
set updateMusic4 to 1
endif
else
set updatemusic4 to 0
set curMusic4 to 0
set musicTimer4 to 0
endif

If (PlayerSleepVar == 1) && (EyjaSleeping == 1)
MessageBox "Eyja and I made love."
SetStage AASleepWithEyja 20
SetStage AAEyjaFollowQuest 10
AddTopic EyjaFollowTopic
AddTopic EyjaGoHomeTopic
StopQuest AAsleepWithEyja
endif

End

Ich habe aber nur diesen Teil verändert:
"Eyja and I made love."

2. Es gibt stellen, dass sagt Eyja im Originalmod etwas ohne das sich das Gesprächsfenster öffnet (ich hoffe ihr wisst was ich meine^^). Bei meiner Übersetzung wird die Sound-Datei jedoch nicht abgespielt, es kommen lediglich meine deutschen Untertitel.

gruß,
Sebulon
 
Ich habe mal ne Frage (klar eigentlich:lol:):
Also, ich will ganz "einfach" einen NPC erstellen auf dem dann das Script liegt, das folgendes bewirken soll (noch umständlicher konnte ichs auf die Schnelle nicht:D):
der NPC soll mir ein Haus verkaufen, genauso, wie man es im Spiel schon kann (wo ich, wie mir gerade auffällt, eigentlich auch im entsprechenden Script nachgucken könnte). im Dialog soll es so aussehen:
1. Man spricht den NPC an,
2. es kommt das erste Gesprächsfenster: Punkt 1 : Eisfestung kaufen
Punkt 2 : Gerüchte
3. Wenn man auf "Eisfestung kaufen" klickt, soll ein kurzer Text angezeigt werden ( "Ah, ihr seit interessiert? Die Festung kostet x Goldstücke")
4. Es kommt ein zweites Gesprächsfenster: Punkt 1 : Kauf ich sofort!
Punkt 2 : Tut mir leid, soviel Geld habe ich nicht.
5. Wenn man auf Punkt 1 klickt, soll folgendes passieren: der 'NPC sagt einen kleinen Text ("Eine weise Entscheidung."), es wird x Gold abgezogen und der Schlüssel hinzugefügt.
Wenn man auf Punkt 2 klickt, sagt der NPC etwa folgendes "Schade, vielleicht ein ander Mal." Das Gespräch wird beendet.

(Das mit den Dialogen gehört hier eigentlich nicht hin, aber so ist es zumindest für mich leichter. Wenn mir das gleich jemand mit erklärt, wäre das auch nicht schlecht.)

Danke im Vorraus.

Ich darf das noch mal in Erinnerung rufen.
 
Hi
scn xxxx
ref ITEM

Begin OnLoad
set ITEM to getself

player additem ITEM 1
disable

END
also das script hab ich gefunden aber welche id hat mein eigenes item mit dem name TEST (nur beispiel)
 
Wie meinst du das genau? Die Reference ID? Die musst du dem Item geben.
Was willst du eigentlich mit dem Script? Einfach einen Gegenstnd deinem Inventar hinzufügen? Oder selbiges verbunden mit etwas anderem?
Einfach so hinzufügen kannst dus so:

Scn xxx

short doonce (falls dus nur einmal willst, sonst auch die anderen beiden Zeilen mit doonce weglassen. Dann wird der Gegenstand aber bei jedem Laden hinzugefügt.))

begin OnLoad
if doonce == 0
player.additem [ID des Items, nicht Ref ID]
set doonce to 1
endif
end
 
Zuletzt bearbeitet:
Du kannst das auch mit verschiedenen Topics machen, die du mit einander verbindest.
Topics verbindet man miteinander indem man bei Resultscript schreibt:
AddTopic [Name der Topics die darauf hin auswählbar sein sollen sollen.]
An das Topic in dem man die Festung kauft, schreibst du dann noch ein mini skript. Ich meine in dieser Form:
player.removeitem [Goldmenge]
player.additem [Schlüsel ID]

Ich hoffe du verstehst was ich meine.
MfG
oofishoo
 
Im Grunde genommen schon, das mit remove und add hätte ich auch so gemacht. Allerdings weiß ich nicht genau, wie ich die Topics unterbringen soll. Das ist mein Problem. Wie hat das im Script auszusehen? Soll doch alles in ein Script oder? Das würde ich sagen muss rein, aber wie ich den Rest unterbringen soll, weiß ich nicht. Wäre nicht schlecht, wenn du oder jemand anders mir das mal ganz ausschreibt.

Code:
Scn xxx

AddTopic "Eisfestung"

????????

player.removeitem 0000000f x   (Das ist doch die ID für Gold oder?)
player.additem [ID]
end
 
Nein, du musst zum Quest Bildschirm. Da kannst du dann auch irgendwo "Add Topic" machen(les dir dazu am besten erstmal ein Tutorial durch;)).
Dort ist dann ein Skriptfeld, wo du den Script hineintun musst.
Und das Script muss dann so aussehen:
Code:
player.removeitem 000000f xxx (ja, das ist die ID für Gold)
player.additem [Die ID]
Das scn und end weglassen, glaube ich.;)