Construction Set Skriptthread zum Construction Set

Ich versuche gerade einen Sheathskript zu schreiben (genau, wie hier, halt an meine waffen angepasst http://tes.nexusmods.com/downloads/file.php?id=31222)
Kann mir jemand helfen und die Skripts sauber umschreiben?

Edit: Ich brauch nur den Sheath-Skript und den Skript, der dafür sorgt, dass im Inventar nicht diese "Extra"-Waffe erscheint.

Daran hab ich mir mal die Zähne ausgebissen. Weiß der Geier warum das Script so funktioniert, aber sobald du versuchst daran was zu verändern hast du eine nicht aufhörende Dauerschleife von Ziehanimationen des Schwertes ;)

mfg
Raven
 
Da nicht gerade hervorgeht, was genau Du willst, (jedenfalls für mich), wäre es nett, wenn Du es mal beschreiben könntest. Ich habe die Mod nämlich nie benutzt gehabt.
 
@ Kahmul: Er hat Zwei Klingen, eine in der Linken, eine in der Rechten Hand. Nun wenn er diese Waffen weg steckt möchte er, das sie auf dem Rücken erscheinen. Nico hat das so gelöst, das er eine Zusätzliche Waffe im Inventar generiert, welche dann auf dem Rücken erscheint. Wenn er die Waffen zieht, will er wieder beide in der Hand haben.
@Samael: Ist ohne diese extra Waffe nicht möglich...

mfg
Raven
 
Ok, sorry :(
Ich versuch einen Skript zu schreiben, der meinen der mir eine Dual-Waffe gibt und diese automatisch ausrüstet, wenn ich 1 bestimmte Waffe mit einem bestimmten Schild ausrüste und einstecke.
Zieh ich Waffe wieder(Kampfmodus), so wird die Dual-Waffe wieder entfernt und die Schwert+Schild werden ausgerüstet.
Im Inventar soll die Dual-Waffe automatisch entfernt werden und Schwert+Schild sollen ausgerüstet werden.
 
Dafür schreibst du in dem Result-Skript für den Dialog:
Code:
startCombat player
setAV Aggression 100
modDisposition player -100

Damit sollte es sicher klappen. Eventuell reicht auch weniger, also nur "startCombat player", je nachdem was der Actor für AI-Einstellungen hat...

Edit: Drängler!
 
Suche gerade folgende Abfragen:
- gezogene Waffe
- eingesteckte Waffe
- sämtliche MenuModes, in denen man Items Auf- und ablegen kann.

Vielen Dank im Voraus
 
1. "if <Ref>.isWeaponOut"

2. "if <Ref>.isWeaponOut == 0"

3. "if MenuMode == x", für x beliebige Werte einsetzen, bspw. 1002 fürs Inventar, 1008 für Container, 1016 bei der Frage "Wie viele?" (bin ich mir nicht ganz sicher). Eine Liste gibts hier. Beachte aber, dass "MenuMode" nicht in einem "GameMode"-Block funktioniert (logischerweise); die einzige Anwendungsmöglichkeit ist wahrscheinlich in einem "onActivate"- oder "MenuMode"-Block. Und dann könntest du auch gleich "Begin MenuMode x" benutzen...
 
  • Like
Reaktionen: samael
Das <Ref> bezieht sich auf den Player oder irre mich mal wieder?
was muss man als Referenz angeben, damit jeder Npc und nicht nur Spieler in betracht kommt?
 
Das "<Ref>" ist einfach ein Platzhalter für eine beliebige Referenz. Kannst du einfach was für einsetzen oder weglassen, wenn es sich auf das Objekt beziehen soll, auf dem das Skript läuft.

Bei "jeder NPC" ist die Frage, was du damit vorhast, da ich nicht denke, dass du dieses Skript auf "jeden NPC" legen kannst/willst... Aber etwas wie:
Code:
ref NPCRef

set NPCRef to getAllNPC
if NPCRef.isWeaponOut
;  blabla
endif
gibt es nicht.

Je nachdem was du tun willst gibt es aber mit Sicherheit Abhilfe mit OBSE.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: samael
PHP:
begin gamemode
if (player.getequipped Sword) && (player.getequipped Shield)
 if player.isweaponout == 0
  player.additem SwordDM 1
  player.unequipitem Shield
  player.equipitem SwordDM
 endif
endif
    
if player.GetEquipped SwordDM
 if player.isweaponout
 player.EquipItem Sword
 player.EquipItem Shield
 player.removeitem SwordDM 1
 endif
endif
end

Mit diesem Skript funktioniert das sheathen, doch es ist viel zu langsam/zeitverzögert, weiß jemand, wo da das Problem liegt?
Ich versuch den Skript so zu erweitern, dass er sich nicht nur auf den Player spezifiziert (wäre Actor als Ref sinnvoll, bzw. machbar?)
Ich hab keinen Plan, wie ich das mim Menumode machen soll, der Teil soll in allererster Linie dafür sorgen, dass man die DM-Version des Schwertes nicht ablegen kann, d.h. im Inventar sieht man den Char mit Schild und Schwert, obwohl er bis kurz vor dem Öffnen des Menus noch die DM-Schwerter hatte, diese aber enfternt wurden und Schild+Schwert angelegt wurden.

Sory wenn ich wie eine Bombarde komme...
 
Ich würde sagen, das Ausführen der Befehle benötigt einfach etwas Zeit. Ist natürlich auch die Frage, wie langsam das geht.

Wenn der Spieler die Sachen nicht ablegen können soll. Kannst du auch "player.equipItem <Waffe> 1" benutzen. Die "1" verhindert dann das Ablegen, gleiches gilt für "unEquip".

Für alle NPCs kannst du die Anzahl auf einige beschränken und dann diesen obiges Skript zuordnen. Etwas anderes wäre, einfach die Waffen zu skripten. Dann kannst du für jede Referenz "getContainer" benutzen. Das gibt aber eventuell Probleme mit "addItem"/"equipItem" innerhalb des gleichen Frames.
 
  • Like
Reaktionen: samael
Oh, mit ablegen mein ich eher abrüsten (sorry für), ablegen kann man sie allgemein nicht, da die Items als Quest-Items angelegt wurden, mich stört nur die Dauer besonders (ca 10 sek, bis die DM nach Ziehen entfernt wird und Schild+Schwert angelegt werden, is odch etwas zu lang)
Ich bräuchte einen Befehl, der schneller reagiert...
 
Ich meine natürlich auch "abrüsten". Ich habe einfach nach einem gegenteiligen Wort zu "anlegen" gesucht, war wohl etwas unglücklich gewählt, aber "abrüsten" klang mir etwas zu neuzeitlich ;)

10 Sekunden ist auf jeden Fall echt etwas lang, wie hast du das Skript denn eingebunden? Als Questskript? Dann kannst eventuell etwas ändern, wenn du mit "fQuestDelayTime" rumspielst. Es ist ja auch nicht klar, ob "isWeaponOut" schon WAHR ist, wenn der Actor gerade im Begriff ist, seine Waffe zu ziehen oder erst, wenn die Animation abgeschlossen ist... (steht auch nicht im Wiki)
 
  • Like
Reaktionen: samael