Construction Set Skriptthread zum Construction Set

Ich würde einfach ein Globale Variable nehmen.
Diese Quest-Variable funktionieren ähnlich, aber ich finde, dass die Globals einfacher sind. :lol:

Die klickst im CS unter "Gameplay" auf "Globals".
Dann einen Rechtsklick in die Liste und "New" auswählen. Sobald du das gemacht hast erscheint ein Fenster, in dem du den Namen der Variable eintragen musst wie z.B. "QuestStage". Du musst nur aufpassen, dass es den Namen der Variable nicht schon gibt.

Du kannst nun zwischen drei Arten Variablen auswählen nämlich Short, Long oder Float. Für deine Zwecke reicht eine Short-Variable. Unter "Value" gibst du den Anfangswert ein (Standartmäßig 0).

Dann einfach auf "Ok" drücken und du hast deine Globale Variable. Du musst sie nicht im Script deklarieren, sondern einfach nur wie Arcanum Antor es beschrieben hat einsetzten.

Viel Glück!

Wave
 
  • Like
Reaktionen: 1 Person
Heut morgen hab ich noch mit globals rumgemacht. Aus irgendeinem Grund dachte ich, die global wird direkt im Skript eingebaut, als global meineVar oder so. War das in Morrowind so??
Naja, jedenfalls Danke für eure Hilfe. Wenn mir jetzt noch jemand erklärt, wie die Questvariablen funktionieren, bin ich voll zufrieden.
 
Questvariablen sind einfach Variablen, die zu Beginn eines "QuestScripts" (oben in der Ecke einfach Quest Script auswählen) definiert sind. Oft besteht so ein Script dann nur aus zB
Code:
scn Quest1Script

short Stage
enthalten also nr die Variable. So ein Script legt man dann auf eine Quest und man kann mit [QuestID].[VariablenName] in jedem Script darauf zugreifen, wie eben eine Global.
 
  • Like
Reaktionen: 1 Person
Hoi,
ich hoffe ihr könnt mir helfen.

Ich suche/brauche einen script mit dem es einer Kreatur nicht möglich ist durch Türen oder Teleprter zu gehen.
Der Scripts soll man auf einer bestimmten Kreatur legen und soll verhinden das der Gegner einem nicht durch eine Teleport Tür verfolgt wenn man durch einen Kampf fliehen will.

Ich hoffe ihr könnt mir helfen.

mfg
Blip-Blop
 
Gibt es eine Möglichkeit herhauszubekommen, von wen ein Actor gekillt wurde?
Es gibt ja den OnDead ActorId Block, aber der funktioniert ja nur, wenn das Script auf den NPC liegt und das kann ich nicht, weil es für alle NPCs/Kreaturen gelten soll.
Also verwende ich ein Objekt und dort if actor.GetDead. Aber möchte auch wissen, wer ihn erledigt hat.... (der Block wird ja ausgeführt, auch wenn sich die NPCs gegenseitig erledigen)
 
Ich hab eine relativ einfache Frage. Ich möchte das eine Messagebox erscheint nachdem man in einem Bett geschklafen hat also:
Man geht zwischen 19 Uhr und 8 Uhr morgens schlafen->wenn man fertig mit schlafen ist soll eine Messagebox erscheinen allerdings eine zufällig ausgewählte geht das?


Danke schon mal
Wolfslady
 
Code:
scn Script

short Done
short Random

Begin Menumode
 if ( IsPCSleeping ) && ( GameHour >= 8 ) && ( GameHour <= 19 )
  set Done to 1
 endif
End

Begin Gamemode
 if ( Done )
  set Done to 0
  set Random to GetSecondsPassed
  if ( Random < x )
   MessageBox "Text für MessageBox 1"
  elseif ( Random < 2x )
   MessageBox "Text für MessageBox 2"
  elseif ( Random < 3x )
   MessageBox "Text für MessageBox 3"
  elseif ( Random < 4x )
   MessageBox "Text für MessageBox 4"
  else
   MessageBox "Text für MessageBox 5"
  endif
 endif
End
x ist dabei (100/[Anzahl der MessageBoxen]), hier also 20.
 
  • Like
Reaktionen: Wolfslady
Ich bräuchte nochmal ein Script.
Bei einem Händler liegen vier Waffen, die diesem gehören. Wenn man nun eine oder mehrere dieser Waffen aufnimmt (also klaut), soll der Händler nicht mehr mit dir Handeln, also die Handelnfunktion soll ausgeschaltet werden. Wie muss das Script dazu aussehen?
 
Du müsstest ein Skript auf die Waffen legen, dass ungefähr so aussieht:

scn WaffenScript

Begin OnAdd Player
IDdesHändlers.RemoveScriptPackage IDdesScriptPackages
IDdesHändlers.AddScriptPackage IDdesIdentischenPackages
end

Du müsstest dann nur ein identisches Package machen, dass nicht die Händler Funktion enthält. So kommt und geht der Händler immernoch, verkauft dem Spieler nur nichts.

Wenn du allerdings keine neuen Waffen benutzt, also nur die Original-Waffen ohne veränderte ID dann musst du ein Quest erstellen und so ein Skript darauf legen:

scn WaffenScript

Begin GameMode

If ( Player.AddItem ReferenzDerWaffe01 )
IDdesHändlers.RemoveScriptPackage IDdesScriptPackages
IDdesHändlers.AddScriptPackage IDdesIdentischenPackages
ElseIf ( Player.AddItem ReferenzDerWaffe02 )
IDdesHändlers.RemoveScriptPackage IDdesScriptPackages
IDdesHändlers.AddScriptPackage IDdesIdentischenPackages
ElseIf ( Player.AddItem ReferenzDerWaffe03 )
IDdesHändlers.RemoveScriptPackage IDdesScriptPackages
IDdesHändlers.AddScriptPackage IDdesIdentischenPackages
ElseIf ( Player.AddItem ReferenzDerWaffe04 )
IDdesHändlers.RemoveScriptPackage IDdesScriptPackages
IDdesHändlers.AddScriptPackage IDdesIdentischenPackages
endif

end

Allerdings bin ich mir nicht sicher was passiert, wenn der Spieler die Waffe gekauft hat. Das zweite Script ist das sicherere, da das Script nur auf bestimmte Gegenstände (Mit Referenz) wirkt.

Die Referenz eines Gegenstandes kann man im Render Window mit einem Doppelklick auf den Gegenstand festlegen. Es muss "Persistent Referenz" angekreuzt sein.

Viel Glück!

Wave
 
  • Like
Reaktionen: Knochenkeule
sers ^^

ich hab mal ne frage bezüglich scripts die im menumode laufen.

mann kann die scripts ja nur in bestimmten menüs laufen lassensiehe hier
ich hab mir ein script gebastelt dass nur laufen soll wenn der spieler ein levelup hat, sich also im levelup menu befindet. meine frage ist jetzt, im gamemode wird das script ja nur alle paar frames aktualisiert (je nach fQuestDelayTime oder?). wenn ich jetzt ein scrip habe dass nur im levelup menü läuft, muss ich dann erstmal n paar sekunden warten bevor dass greift bzw kann man das auch mit fQuestDelayTime einstellen?
und die zweite sache....ich spiele mit ROO...würde das script dann trotzdem noch greifen wenn es nur im levelup menü läuft? weiß das evtl jemand?^^

mfg takbir
 
Hi Leute,

ich hab mal ne Frage.
Ich möchte ein Script schreiben das mir ausgibt ob ein NPC einen bestimmten Gegenstand im Inventar hat. Bzw auch die Anzahl.

Dann sollte dieser auch entfernt werden können. Besser die Anzahl verringert werden.

Schon mal thx

Bis denn Thalon
 
Hi Thalon.
Du musst das folgende Skript auf ein Quest legen:

scn GegenstandSkript


Short Anzahl


Begin GameMode

If ( Player.AddItem IDdesGegenstandes )
Set Anzahl to Anzahl+1
Message "Ihr habt Anzahl NameDesGegenstandes"
Elseif ( Player.Remove IDdesGegenstandes )
Set Anzahl to Anzahl+(-1)
Message "Ihr habt Anzahl NameDesGegenstandes"
endif

end

Ich bin mir nicht sicher, ob die Variable auch in der Message funktioniert, sollte aber eigentlich.

MfG Wave
 
Hi,
thx für die schnelle antwort. Ich hab das jetzt anders gelöst.

Code:
Ref MyItem

set MyItem to RepairHammer
if npc.GetItemCount MyItem > 0
  message "Hammer da!"
endif
 
sou neues problem...
diesmal mit der variable fQuestDelayTime
welcher wert gibt an in welchen sekundenintervallen das script abläuft?
also wenn ich zb 30 sekunden will
muss es dann heißen:
set fQuestDelayTime to 30
set fQuestDelayTime to 0.30
set fQuestDelayTime to 0.030
set fQuestDelayTime to 0.0030
bin mir da nicht ganz schlüssig und konnte auch nirgends was finden... nicht dass mein script nachher nur alle 30h abgerufen wird xD....will zwar ne gewisse verzögerung aber das wär wohl zu lang^^

mfg takbir
 
Hayho,
hab mal ne kurze Frage; Ich hab als Result Script in einem Topic "removeallitems" stehen; Aber wenn ich das Topic anklicke, dann friert Oblivion ohne Fehlermeldung ein; Ich kanns nur noch per Taskmanager beenden. Weiß da jemand Abhilfe? Kann ja nich so wild sein...
 
normalerweise musst du das nicht, nein

wenn du das nicht machst verschwinden die items halt ins nirvana *g*

player.removeallitems ?