Construction Set Skriptthread zum Construction Set

@ Knochenkeule: Von der Idee schon fast richtig:
Code:
scn DasIstDerScriptnameUndDarfNurEinWortSein

short DoOnce
ref myself
short count

Begin OnActivate
set myself to getself
set DoOnce to 1
set count to myself.getitemCount [IDdesGegenstandes]
activate
End

Begin GameMode
If myself.( getItemCount [IDdesGegenstandes] < count ) && ( DoOnce == 1 )
setStage [QuestID] [QuestStage]
set doonce to 2
Endif
End
In dem Falle wird die Quest auf eine bestimmte Stage gesetzt, wenn der Spieler einen oder mehr Objekte von dem gewählten Gegenstand der Leiche entfernt. Ich bin davon ausgegangen, dass es das Item mehrmals gibt, deswegen ist der Script etwas "umständlich".

hinter scn kommt der Scriptname.

Der Rest ist glaube ich, sehr verständlich. Falls nicht, einfach nachfragen ;)

MfG Gildur

MfG Gildur
 
  • Like
Reaktionen: Reaper
Item - Animation

Hierfür benötige ich einen Skript:
Nachdem man sich im Inventar z.B. ein Bier, ein Wein oder sonstiges
genehmigt hat, soll darauf die passende IdleAnimation abgespielt werden.
Ähnlich wie im Actors_in_Charge PI, jedoch sollen dazu die jeweiligen
Attribute abgezogen bzw. hinzugefügt werden.
Bei Bier wäre das dies hier:

Drain Intelligence 1 pt for 60 secs on Self
Drain Willpower 1 pt for 60 secs on Self
Restore Fatigue 2 pts on Self

Wäre über Hilfe sehr erfreut

Danke im Vorraus
OdrinOdyar
 
Heyho!

Ich habe einen NPC erstellt, der einem im Zuge einer Quest sagt, dass man in 7 Tagen noch einmal wieder kommen soll.
Danach bekommt man einen entsprechenden Eintrag ins Tagebuch und nach den sieben Tagen soll man noch einen weiteren Eintrag bekommen. Quasi als kleine Erinnerung.
Fragt sich nur, wie ich es schaffe, dass nach 7 Tagen der neue Eintrag kommt ... ?!

Habe herausgefunden, dass es eine Global namens "GameDaysPassed" gibt, jedoch kriege ich es irgendwie nicht hin, damit einen entsprechenden Timer zu basteln ... :cry:
Als Result Script des ersten Quest-Eintrags am besten. Kann mir da einer helfen? Ich würde gerne bald meinen Mod veröffentlichen. ;)
 
also genau kann ichs dir nicht sagen, ich denke aber mal, dass es irgendwie mit SetStage in verbindung sein muss. dir geht es aber wahrscheinlich um die genauen zeichenfolge oder?
 
Ich habe auch mal eine Frage zu einem Script ich habe zwar schon ein Thread eröffnet aber naja antworten niemand.:roll:

Hier ist meine bitte

Ich suche ein script der es möglich macht, wenn ich mit einem Feuerball oder was auch immer (muss Feuer haben) in berührung mit einem Gegenstand ober Möbeln komme das dann diese Objekte anfangen zubrennen und nach paar minuten aufhören zubrennen. Geht so was aber das Objekt soll auf alles was mit Feuer zutun hat reagieren und nicht nur mit z.B. einem Feuerball.

Ich bitte um hilfe kann das jemand. Im einem anderen Forum hab ich auch nach gefragt und ein script bekommen aber der lässt mich brennen und nicht die Gegenstände.
Kann jemand solch ein Script

Ich danke im Vorraus:-D
 
uff.. ich kann nicht mehr.... ich sitzte jetzt schon geschlagene 4 Stunden am Rechner vorm ContructionSet und versuche es meine Quest fertig zu bekommen... also.. ich möchte das ein NPC sobald eine Queststage ausgeführt wird erst der NPC die Gegner besiegt dann den Player anspricht und dann entweder zu einem Marker rennt und den Player folgen lässt oder erst zu einem Marker schleicht und dann den player nochmal anspricht... das Hauptproblem liegt momentan am Ansptrechen welche Condition brauche ich?? ich habs jetzt mit Gettalked to pc verwendet aber das klappt net!
 
@Xaser:
Ich würde ein Script auf den NPC legen.
Als Auslöser kannst du verschiedene Sachen nehmen.

Hier ein Beispiel:

scn NPCTalkingScript

short doOnce

begin gamemode
if GetStage DEINQUEST >= XX && doOnce == 0
StartConversation player, DEINTOPIC
set doOnce to 1
endif
end

Über Getstage ist das eigentlich am einfachsten ... vorausgesetzt, du kannst da einen Tagebucheintrag gebrauchen. ;)
Ansonsten kannst du auch
if DEINGEGNER01REF.GetDead ==1 && DEINGEGNER02REF.GetDead ==1 && doOnce == 0
oder
if GetDistance player <= 500 && DoOnce == 0
nehmen. Oder auch Kombinationen davon.

PS: Meine Frage ist auch noch aktuell! ;)
 
  • Like
Reaktionen: Xaser
@ Blip-Blop:
Man müsste den fertigen Skript vieleicht mal sehen, damit man ihn umändern kann. Ich glaube allerdings das du einen shader-effekt benötigst und habe leider keine ahnung ob das bei Gegenständen oder Möbeln geht.
http://scharesoft.de/joomla/index.php?option=com_content&task=view&id=122&Itemid=73
...mmmhh Aber wenn ich mir jetzt das Tutorial ansehe kann ich mir vorstellen worin der Fehler liegt.Kopie am besten mal den Script hier rein :-D .

Ich brache übrigens auch noch einen Teil eines Scripts:
Und zwar soll der Spieler erst dann eine Schaltfläche anklicken können, wenn er eine bestimmte Anzahl von Gegenständen gesammelt hat.
Ausserdem finde ich die Nif.files in meinem Data-Ordner nicht wenn ich sie für ein Object auswählen will.
 
Zuletzt bearbeitet:
@Essel:
Schon die .bsa Files entpackt? ;)

Zum Script:

scn TOLLESACTIVATESCRIPT

begin OnActivate

if Player.GetItemCount DEINITEM >= X
Activate
endif

end

das ganze dann auf die Schaltfläche packen.
 
Also hier ist der Script
scn Feuerdings

float timer

begin onmagiceffecthit FIDG
enable Feuer
set timer to timer + getsecondspassed
end

Begin GameMode
if timer > 10
disable Feuer
endif
End
Und wenn ich den Script auf ein Möbelstück setze brenne ich wenn ich mich raufzetze und nicht der Stuhl und wenn ich mit etwas Feuriegem drauf schieße passiert nix. Daher werde ich aus dem Script nicht schlau.
 
versuchs mal so da hätte ich 2 ideen:
Code:
scn Feuerdings

float timer

begin onmagiceffecthit FIDG
[Reference] PlayMagicShaderVisuals effectAtronachFlame
set timer to timer + getsecondspassed
end

Begin GameMode
if timer > 10
[Reference] StopMagicShaderVisuals effectAtronachFlame
endif
End
oder so
Code:
scn Feuerdings

float timer

begin OnActivate
PlayMagicShaderVisuals effectAtronachFlame
set timer to timer + getsecondspassed
end

Begin GameMode
if timer > 10
StopMagicShaderVisuals effectAtronachFlame
endif
End
So müsste es eigentlich gehen :)
(ich glaub ehr das nummer 2 die richtige ist^^)
mfg Alpha80SG
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Xenos
Ihr vergesst beide den Timer im Gamemode weiterlaufen zu lassen:

Code:
Begin GameMode
 if timer > 10
  [Reference].StopMagicShaderVisuals effectAtronachFlame
 else
  set Timer to Timer + GetSecondsPassed
 endif
End
 
  • Like
Reaktionen: Xenos
@Xaephrim
Erstmal vielen Dank! :hail:
Allerdings verschwindet jetzt beinahe alles was ich mit meinem Mod verändert habe. Wenn icfh einen Tisch um einen Milimeter bewege,ist er zwar im CS noch da, aber im Spiel ist er weg! :cry:
 
Also, da ich garnicht scripten kann, frage ich mal hier nach dem Script:
Ich brauche ein Script, wo, wenn ich einen Gegenstand aktiviere, dass dann eine Meldung kommt, wodrin xxx steht. Wenn ich auf OK klicke, hat dann ein bestimmter Ring den Effekt ,,Nachtsicht''.
Wäre nett, wenn mir jemand das Script basteln könnte.;)

PS: Ich habe auch garkeine Ahnung, wie ich dafür einen Gegenstand zuordnen kann...:oops:
 
Also erstmal danke der Script funktioniert super aber ich hätte da noch 2 fregen mit kleineren dazwischen.

hier noch mal der script
scn Feuerdings

float timer

begin OnActivate
PlayMagicShaderVisuals effectAtronachFlame
set timer to timer + getsecondspassed
end

Begin GameMode
if timer > 10
StopMagicShaderVisuals effectAtronachFlame
endif
End
1 Frage:
a)
Ich habe jetzt den script auch einen schrank gesetzt wie lange brennt jetzt der schrank und wie kann ich es ändern?

b)
Warum kann ich den script nicht auf Möbelsetzen die ich nicht benutzen kann oder kann ich es irgend wie machen?

c)
Kann ich mehrere scripte auf einen z.B. Schanksetzen? Denn wenn dieser Schrank schon ein Script hat und ich will auf diesen Schrank auch ein Script muss ich dann den anderen löschen?

2 Frage
a) kann man den Script so verändern das wenn ein Objekt brennt ein nahe liegendes objekt auch zum brennen bringt die den gleichen script haben?

Und danke danke schon mal an die antworten
 
Hallo Leute, ich habe ein Mega-Problem! Ich möchte ein Rätsel erstellen, besser gesagt, acht Rätsel. Man kann das Rätsel, das man haben möchte, über einen Zauber auswählen, die Rätsel selbst sind auf einer Quest aufgebaut. Es ist nur eine neue Quest, mit einem Script, die dann mit StartQuest.[ID] und Stopquest.[ID] gestartet und beendet wird.

Mein Problem ist dann, das bei der zweiten Frage Chorrol auf einmal richtig ist, und man 50 Gold erhält, und bei den anderen beiden Antworten einem 25 Goldstücke entfernt werden, und man wieder zur ersten Frage kommt :(

Hier mal das Script:
Code:
scn Raetsel01Script

short Frage01
short Frage02
short Frage03
short Frage04
short FrageGeschafft

Begin GameMode
set Frage01 to GetButtonPressed
set Frage02 to GetButtonPressed
set Frage03 to GetButtonPressed
set Frage04 to GetButtonPressed

set FrageGeschafft to 0

if FrageGeschafft == 0
	MessageBox"Was ist eine Schlammkrabbe?","Eine Kreatur","Ein NPC","Gibt es nicht"
			if Frage01 == 0
				set FrageGeschafft to 1				
				player.additem Gold001 50
			endif
			if Frage01 == 1
				set FrageGeschafft to 0
				player.removeitem Gold001 25
			endif
			if Frage01 == 2
				set FrageGeschafft to 0
				player.removeitem Gold001 50
			endif
endif

if FrageGeschafft == 1
	MessageBox"Wo liegt die Rosendornhalle?","In Chorrol","In Skingrad","In Leyawiin"
			if Frage02 == 0
				set FrageGeschafft to 0
				player.removeitem Gold001 100
			endif
			if Frage02 == 1
				set FrageGeschafft to 2
				player.additem Gold001 50
			endif
			if Frage02 == 2
				set FrageGeschafft to 0
				player.removeitem Gold001 100
			endif
endif

if FrageGeschafft == 2
	MessageBox"Wie viele Arme hat Mehrunes Dagon?","Zwei","Vier","Sechs"
			if Frage03 == 0
				set FrageGeschafft to 1
				player.removeitem Gold001 200
			endif
			if Frage03 == 1
				set FrageGeschafft to 3
				player.additem Gold001 100
			endif
			if Frage03 == 2
				set FrageGeschafft to 1
				player.removeitem Gold001 200
			endif
endif

if FrageGeschafft == 3
		MessageBox"Was für eine Kreatur ist Schattenstute?","Ein Monster","Ein Daedra","Ein Pferd"
			if Frage04 == 0
				set FrageGeschafft to 2
				player.removeitem Gold001 400
			endif
			if Frage04 == 1
				set FrageGeschafft to 2
				player.removeitem Gold001 400
			endif
			if Frage04 == 2
				set FrageGeschafft to 4
				player.additem Gold001 200
			endif
endif
End

Hoffe auf schnelle Hilfe.

MfG Jauffre

@ Majesto: Dein Script lautet:
Code:
scn Ringänderung(was auch immer^^)

short doonce
short Abfrage

Begin OnActivate

set Abfrage to GetItemCount [ID des Rings]

if Abfrage => 1 && doonce == 0
     Message"xxx"
     player.removeitem [ID des Rings] 1
set Abfrage to 2
     player.additem[ID des neuen Rings(darauf komme ich gleich)] 1
set doonce to 1
endif

End

So, jetzt erstellst du ein Duplikat deines Ringes, also einfach den vorhandenen Ring öffnen, die ID öffnen und auf Ok, dann auf Ja/Yes klicken. Den zweiten Ring öffnen, und dann die Enchantment drauflegen. An Scripting Profis: Wenn's falsch ist, bitte ausbessern.

Nochmal MfG^^ Jauffre

@ Blip-Blop: Es ist alles möglich, bleib noch die nächsten zwanzig Minuten on, dann kann ich's dir schreiben

Zu Frage 1:
a.) Je nachdem wie lange du möchtest, du änderst einfach die Zahl nach
"if timer >". Z.B.: Es soll 25 Sekunden brennen, dann lautet die Zeile: "if timer > 25"...
b.) Da könntest du einfach eine Flamme nehmen, und die mit Timer enablen/disablen.
-->
Code:
scn FlammeHerzaubernUndVerschwindenLassen(^^)

float timer
short Entfernung

Begin GameMode

set Entfernung to GetDistance Player
     if Entfernung <= 10
         [ID der Flamme].enable
     endif

     set timer to timer + getseconpassed
     if timer > 10
          [ID der Flamme].disable
     endif

End

Bei der Flamme müsstest du im Render Window schon am Amfang anhakeln, das sie disabled ist.

c.) Ja, man kann nur ein Skript auf ein Objekt legen.

Zu Frage 2:
Da kann ich dir leider nicht sofort helfen, aber es ist möglich. Einer unserer Skript-Profis wird dir da sicher helfen können ;)

Und schon wieder MfG^^ Jauffre
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Majesto und Xenos
Waffenskript

Hi!

Ich habe hier mal eine (mehr oder weniger) knifflige Frage an der ich schon seit zwei Tagen hänge::cry:

Wie muss der Skript für z.B. ein Schwert lauten, wenn ich will, dass das Schwert mit jedem getöteten Gegner z.B. 1 Feuerschaden mehr hat?

Danke schon mal im Voraus!
 
Ich hab ein Problem mit folgendem Script für einen Activator:
Zuerst hat der Silberdolch nur funktioniert wenn ich ^ gedrückt hatte und jetzt kommt nicht mal mehr die erste Message-box :cry:
Code:
scn silber10

short button
short murks

Begin OnActivate
Set murks to 0
 Messagebox "Was wollt ihr schmieden?" , "Silber-Dolch-6 Nuggets" , "Silber-Kurzschert-10 Nuggets" , "BEENDEN"
End

Begin MenuMode
If murks == 0
Set button to GetButtonPressed
                        If button == 0
   If player.getitemcount Gem0SilverNugget >= 6
      player.removeitem Gem0SilverNugget 6
      player.additem WeapSilverDagger 1
     Message "Ihr habt einen Silber-Dolch geschmiedet."
    elseif player.getitemcount Gem0SilverNugget < 6
      Messagebox "Ihr habt nicht genügend Nuggets" , "OK"
      Set murks to 1

                     Elseif button == 1
   If player.getitemcount Gem0SilverNugget >= 10
      player.removeitem Gem0SilverNugget 10
      player.additem WeapSilverShortsword 1
     Message "Ihr habt ein Silber-Kurzschwert geschmiedet."
    elseif player.getitemcount Gem0SilverNugget < 10
     Messagebox "Ihr habt nicht genügend Nuggets" , "OK"
      Set murks to 1
     Endif

  Endif
Endif
End
 
Versuch es doch einfach mal mit GameMode und ein paar anderen kleinen Änderungen:
Code:
scn silber10

short button

Begin OnActivate
 Messagebox "Was wollt ihr schmieden?" , "Silber-Dolch-6 Nuggets" , "Silber-Kurzschert-10 Nuggets" , "BEENDEN"
End

Begin MenuMode
Set button to GetButtonPressed
                        If button == 0
   If player.getitemcount Gem0SilverNugget >= 6
      player.removeitem Gem0SilverNugget 6
      player.additem WeapSilverDagger 1
     Message "Ihr habt einen Silber-Dolch geschmiedet."
    elseif player.getitemcount Gem0SilverNugget < 6
      Messagebox "Ihr habt nicht genügend Nuggets" , "OK"

                     Elseif button == 1
   If player.getitemcount Gem0SilverNugget >= 10
      player.removeitem Gem0SilverNugget 10
      player.additem WeapSilverShortsword 1
     Message "Ihr habt ein Silber-Kurzschwert geschmiedet."
    elseif player.getitemcount Gem0SilverNugget < 10
     Messagebox "Ihr habt nicht genügend Nuggets" , "OK"
     Endif

  Endif
End
Für die Variable murks sehe ich da keine relevante Verwendung, deshalb habe ich sie entfernt.

MfG Gildur
 
Skriptthread

Hallo allezusammen

Ich brauch ein Script.
Es soll an einen NPC kommen.
Der wie ein Soldat hört.
Beispiel:
Wenn ich waffe ziehe dann er auch.
Wenn ich ihn anspreche kann ich in befehle erteilen.
1. Bleib hier stehen
2. Patrullieren
3.Ausrüstung mir zeigen
und
4.Wache halten
_____________
Das soll bei dem Soldaten da stehen damit ich ihn befehle geben kann.
Weiß aber nicht wie man das als Script schreibt:cry:. Könnt ihr mir helfen.:?