Archiv verlassen und diese Seite im Standarddesign anzeigen : Troy's Scriptthread (inkl. Auslösen von Animationen)
Hey Ho,
Ich brächte da ein wenig Hilfe es geht um was Scripttechnisches, und zwar:
Ich möchte mal eine etwas größere Mod machen, es geht darum Animationen in das Spiel einzubinden. Heißt Akrobatische Angriffe, Schwert durch den Körper rammen u.ä.
Einen NPC durch einen Zauber eine Animation abspielen zulassen ist ja noch ziemlich einfach, doch das ganze soll per Quest funktionieren. Also kann ich kein GetSelf verwenden, weshalb ich auf GetCrosshairRef umgestiegen bin. Das ganze soll per Knopfdruck passieren, ich hab dazu einen Extra Quest zum auswählen des Buttons gemacht. Die Funktioniert auch, bis auf eine kleinigkeit mit OBSE (komm ich später nochmal drauf zurück.)
Ich hab das ganze jetzt mal versucht, nur leider klappt das Ingame nicht mit der Animation :( (das folgende Script ist nur ein Testscript ob das mit dem Abspielen überhaupt klappt)
Main Script:
Scriptname SirTroyMainScript
Short Done
Float fQuestdelayTime
Short Key
Ref PossibleTarget
Ref Target
Short Move
Float Timer
Begin GameMode
If IsKeyPressed2 Key
Set Move to 1
Endif
If Move == 1
Set Timer to 3
Set PossibleTarget to GetCrosshairRef
If PossibleTarget != 0
If PossibleTarget.IsActor
If PossibleTarget.IsCreature == 0
If PossibleTarget.GetDead == 0
Set Target to PossibleTarget
Endif
Endif
Endif
Endif
If Target.GetDistance Player <= 10 && > 0
Target.Playgroup Idle 1
Target.PickIdle 1
Set Timer to Timer - GetSecondsPassed
If Timer == 5
Target.Kill
Set Move to 0
Endif
Endif
Endif
End
KeySelectorscript:
Scriptname SirTroysKeyselector
Float fQuestDelayTime
short MessageBoxB
short Custombutton
short CurrentMessage
short button
Begin GameMode
If MessageBoxB == 0
If (GetQuestRunning XQuest)
StopQuest XQuest
Endif
set fQuestDelayTime to 0.1
set SirTroysFinisherQuest.fQuesTDelayTime to 0.1
Set Button to -100
Set CurrentMessage to 1
Set MessageBoxB to 1
Endif
If MessageBoxB == 1
If CurrentMessage == 1
Set CurrentMessage to 2
MessageBox "Such dir einen Key aus. Wähle einen FREIEN Key!"
Elseif CurrentMessage == 2
Set Button to GetKeyPress 0
If Button != 65535
Set XQuest.Key to Button
Set Button to -100
Set CurrentMessage to 3
Endif
Elseif CurrentMessage == 3
MessageBoxEx "Dein Gewählter Button ist %k"
Set CurrentMessage to 0
Set MessageBoxB to 0
If (GetQuestRunning XQuest == 0)
Startquest XQuest
Endif
Set XQuest.Done to 1
StopQuest SirTroysKeyselector
Endif
Endif
End
So bei der Anzeige des Keys zeigt er ne Obse Warnemdlung an das es nicht funktioniert. Ich hab OBSE v0017b.
Die Animation hat übrigens die Condition "GetQuestVariable XQuest Move == 1" und ist nur eine kleine Testanimation
Ich wollte wenn es klappt gleich mehrere Animationen einbauen (An die 5-10 weiteren, je nach dem was mir einfällt) und wollte deswegen eine bestimmte Extra Quest anlegen die die Conditions abfragt, wenn jemanden dazu noch was einfällt wäre es nett was dazu zu sagen. Sollte ich nicht weiter kommen melde ich mich wieder hier.
Edit: Noch vergessen: Der Spieler soll zur gleichen Zeit auch eine Animation abspielen, das müsste natürlich beachtet werden (das Obere Script ist jetzt halt nur für die NPC) heißt ich muss auch irgendwie abfragen wann der NPC die Animation nicht mehr spielt um ihn dann zu töten. Hat da noch jemand ne Ahnung wie das geht?
Hoffe ich hab nichts vergessen zu erwähnen. Bitte um Hilfe dabei.
Mfg
SirTroy
Low Post
11.10.2009, 11:15
Animation:
If Target.GetDistance Player <= 10 && > 0
:confused:
Was willst du denn mit dem > 0 abfragen? Was soll > 0 sein?
Fall damit auch Target.GetDistance Player gemeint ist müsstest du das noch extra dazu schreiben, kannst es im Grunde aber auch gleich weglassen, da GetDistance immer > 0 ist. ;)
Target.Playgroup Idle 1
Target.PickIdle 1
PickIdle (http://cs.elderscrolls.com/constwiki/index.php/PickIdle) sollte hier genügen und hat btw. auch keinen Parameter. ;)
If Timer == 5
Wird niemals war werden. Zum einen wird Timer nur auf 3 gesetzt und danach immer ein Wert davon abgezogen.
Außerdem ist es äußert unwahrscheinlich, dass du durch abziehen von GetSecondsPassed genau auf 5 kommst. Mach da doch ein <= draus. ;)
Edit: Noch vergessen: Der Spieler soll zur gleichen Zeit auch eine Animation abspielen, das müsste natürlich beachtet werden (das Obere Script ist jetzt halt nur für die NPC) heißt ich muss auch irgendwie abfragen wann der NPC die Animation nicht mehr spielt um ihn dann zu töten. Hat da noch jemand ne Ahnung wie das geht?
IsAnimGroupPlaying (http://www.obse.silverlock.org/obse_command_doc.html#IsAnimGroupPlaying)?
KeySelection:
MessageBoxEx "Dein Gewählter Button ist %k"
So bei der Anzeige des Keys zeigt er ne Obse Warnemdlung an das es nicht funktioniert.
Du hast den Parameter vergessen. Woher soll er wissen, welche Taste du meinst?
MessageBoxEx "Dein Gewählter Button ist %k", XQuest.Key
Also:
Zu Pickidle 1 meint jemand aus den Offiziellen Foren:
pickidle 1 and the NPC evaluates the animation options and chooses the best matching option.
Deswegen Pickidle 1
Das mit dem Timer war ausversehen, weil ich erst Set Timer to Timer + Getsecondspassed machen wollte dann aber doch nicht gemacht hab :rolleyes:
Das mit dem abspielen versuch ich jetzt per Timer zu lösen. In Nifskope kann ich ablesen wie lang die einzelnen Animationen sind (in Sekunden). Also kann ich ingame einen Timer einbauen.
If Timer == 0.1 or whatever um den Feind dann entweder zu töten oder wegfliegen zu lassen.
Ich werde das mit dem Abspielen auch via Items machen. Also als Condition GetItemCount.
Jetzt noch ne frage:
Um den NPC die Animation auch wirklich abspielen zu lassen, bringt es da etwas ihn Restrained zu setzen, oder ihn zu Belasten (also mit Gewicht vollhauen)??
Low Post
11.10.2009, 13:33
Wie gesagt: PickIdle verwendet keine Parameter also kannst du die 1 auch einfach weglassen. ;)
Das mit dem Timer war ausversehen, weil ich erst Set Timer to Timer + Getsecondspassed machen wollte dann aber doch nicht gemacht hab :rolleyes:
Kann ich ja nicht wissen, aber warum startest du dann nicht bei 0?
If Timer == 0.1 or whatever um den Feind dann entweder zu töten oder wegfliegen zu lassen.
Ich plädiere trotzdem noch für ein >= / <= (je nach verwendeter Methode) anstelle des ==, ich bin mir nämlich ziemlich sicher, dass in so gut wie keinem Fall deine Grenze genau getroffen wird. ;)
PS:
Ich hab den Titel mal etwas angepasst.
Huh also mittlerweile spielt der Feind die Animation ab. Ich habs wie gesagt über ein Item geregelt. Ich versuch momentan noch rum und melde mich später wieder falls probleme gibt.
Eine andere sache ist:
Ich wollte wenn der Feind bereit zum Töten ist mit Pluggy_HUD auf dem Bildschirm die mitteilung bringen das man den Knopf drücken soll. Am besten soll der Knopf der tastatur angezeigt werden (Also ein kleines Bild)
Edit: Lol ich kann keine Beiträge von dir bewerten also sag ich hier: Danke ;)
Low Post
11.10.2009, 23:32
Huh also mittlerweile spielt der Feind die Animation ab. Ich habs wie gesagt über ein Item geregelt. Ich versuch momentan noch rum und melde mich später wieder falls probleme gibt.
Falls du auf die Timer-Sache anspielst: die ist auch nur für das wegschleudern/töten verantwortlich.
Falls du die PlayGroup/Parameter-Sache meinst: ich hab nie gesagt, dass das nicht funktioniert. Es ist nur unnötig. ;)
Eine andere sache ist:
Ich wollte wenn der Feind bereit zum Töten ist mit Pluggy_HUD auf dem Bildschirm die mitteilung bringen das man den Knopf drücken soll. Am besten soll der Knopf der tastatur angezeigt werden (Also ein kleines Bild)
Da das nicht der Hauptteil der Mod ist: auf jeden Fall optional (IsHudEnabled (http://cs.elderscrolls.com/constwiki/index.php/Main_Page)).
Du weißt schon, wegen CTDs und so. :p
Ansonsten:
NewHudS (http://cs.elderscrolls.com/constwiki/index.php/NewHudS)/NewHudT (http://cs.elderscrolls.com/constwiki/index.php/NewHudT) können nicht mit dem Set-Befehl verwendet werden, sofern alle Parameter verwendet werden (Absturz des CS beim kompilieren). Schuld ist der sog. 73-Bytes Bug. IIRC hat der irgendwas mit Buffer Overrun zu tun. Wer genaueres wissen will soll Scruggsy fragen. ;)
Auf jeden Fall sorgt der dafür, dass jedes mal wenn bei einem Set-/If-/Elseif-Befehl die kompilierte Größe mehr als 73 Bytes beträgt das CS beim speichern/kompilieren des Scripts abstürzt.
Einfachste Methode das zu verhindern:
Verwende den Let-Befehl, der hat das Problem nicht.
Alternative: lass ein paar Parameter weg und bestimme die Eigenschaften mit separaten Befehlen.
Ab OBSE v0018 Beta 2 laufen (mit diese OBSE-Version kompilierte) Skripte mit OBSE-Expressions (let/Eval/While/ForEach/etc.) nicht mehr, sofern nicht mindestens v0018 Beta 2 installiert wurde.
Sofern keiner dieser Befehle verwendet wurde ist alles wie vorher.
Edit: Lol ich kann keine Beiträge von dir bewerten also sag ich hier: Danke ;)
Die Funktion wird momentan noch getestet, könnte sich also noch ändern. ;)
So also ich bin schonmal ein wenig vorrangekommen.
Der Button wird nun in der MessageBox angezeigt, Der NPc spielt die Animation ab, der Player auch. Nur das mit dem Timer funktioniert nicht.
Empfiehlt sich da eventuell eine extra Quest einzurichten?
Das Script sieht bis jetzt so aus (Später kommen noch diverse abfragen dazu, das ist erstmal zum testen)
Scriptname ZFinisherQuestScript
Short Done
Float fQuestdelayTime
Short Finisherkey
Ref PossibleTarget
Ref Target
Short Move
Short Possible
Float Timer
Begin GameMode
Set Timer to Timer + GetSecondsPassed
If IsKeyPressed2 Finisherkey
Set Move to 1
Endif
If Move == 1
Set PossibleTarget to GetCrosshairRef
If PossibleTarget != 0
If PossibleTarget.IsActor
If PossibleTarget.IsCreature == 0
If PossibleTarget.GetDead == 0
Set Target to PossibleTarget
Set Possible to 1
Else
Set Move to 0
Endif
Else
Set Move to 0
Endif
Else
Set Move to 0
Endif
Else
Set Move to 0
Endif
If Possible == 1
Set Timer to 0
Target.AddItem ZTFinisherRing 1
Set Possible to 2
Player.Pickidle
Target.PickIdle
If Timer >= 0.5 && Timer <= 0.6
Target.Kill
Target.RemoveItem ZTFinisherRing 1
Set Move to 0
Endif
Endif
Endif
End
Ich hoffe es reicht den GetSecondsPassed befehl am anfang einmal zu verwenden, ich denke mal der läuft dann halt immer mit, oder?
Die Animation des Gegners besitzt die Condition GetItemCount ZTFinisherRing == 1, und die des Player GetQuestVariable XQuest Possible == 2 UND GetIsReference PlayerREF.
Wie gesagt das funktioniert. Er will das mit dem Timer aber einfch nicht machen -.-* Kommt mir vor als wenn Oblivion den Timer einfach ignoriert ô.o
Jemand nen Plan wie das funktionieren könnte? Und empfiehlt es sich eventuell einen Conditionquest mit einzubringen? Zurzeit orientier ich mich noch ein bisschen an Deadly Reflex (von SkyCaptain), nur erweist es sich als schwieriger als erwartet aus seinen Scripts schlau zu werden. (Hab den anfang zwar schon aber naja)
Low Post
15.10.2009, 20:23
Ich hoffe es reicht den GetSecondsPassed befehl am anfang einmal zu verwenden, ich denke mal der läuft dann halt immer mit, oder?
Schon, allerdings nützt es nichts, wenn später im Script (aber noch vor der Abfrage) folgende Zeile erschient:
Set Timer to 0
Ich hab in deinem Script mal herumgepfuscht um das mit dem Timer zu beheben:
Scriptname ZFinisherQuestScript
Short Done
Float fQuestdelayTime
Short Finisherkey
Ref PossibleTarget
Ref Target
Short Move
Short Possible
Float Timer
Begin GameMode
If IsKeyPressed2 Finisherkey
Set Move to 1
Endif
If Move == 1
Set PossibleTarget to GetCrosshairRef
If PossibleTarget != 0
If ( PossibleTarget.IsActor ) && ( PossibleTarget.IsCreature == 0 ) && ( PossibleTarget.GetDead == 0 ) ;Wozu so viele If-Befehle wenn eine einfache &&-Verknüpfung möglich ist?
Set Target to PossibleTarget
Set Possible to 1
Else
Set Move to 0
Endif
Else
Set Move to 0
Endif
If Possible == 1
Target.AddItem ZTFinisherRing 1
Set Possible to 2
Player.Pickidle
Target.PickIdle
elseif Possible == 2
Set Timer to Timer + GetSecondsPassed ;Verschoben, damit der Befehl nicht unnötigerweise aufgerufen wird und man die Timer-Variable nur einmal zurücksetzten muss.
If Timer >= 0.5 ;Langsame Framerate kann auch von Zeit zu Zeit vorkommen, oder anders ausgedrückt: Ich sehe keinerlei Sinn an einer Obergrenze, wenn die Variable nur erhöht wird. ;)
Target.Kill
Target.RemoveItem ZTFinisherRing 1
Set Move to 0
Set Timer to 0
Set Possible to 0
Endif
Endif
Endif
End
Danke, nur will der Timer Ingame immer nocht nicht klappen ô.o
Meiner Meinung nach ist alles richtig. Ich hab jetzt mal testweise 2 Animationen aus Deadly Reflex genommen, den Timer auf 1.2 gesetzt, aber es passiert nichts. Nach dem ersten mal abspielen läuft der Gegner einfach weiter und der Spieler führt die Animation ein 2tes mal aus :( Was ist denn jetzt falsch :confused:
Edit: Kann es sein das Target irgendwie wieder weggesetzt wird, sodass es nichtmehr erkannt wird?
kenet_korva
19.10.2009, 09:35
Ein solches Problem mit Timern hab ich auch sehr oft. Es passiert einfach nichts. Inzwischen habe ich es aufgegeben, mit Timern zu arbeiten und mache das stattdessen über anere Wege. Is echt ein Schmarn sowas...
Low Post
19.10.2009, 16:34
Probier mal das hier:
Scriptname ZFinisherQuestScript
Short bFinish
Short iFinisherKey
Float fQuestdelayTime
Float fTimer
Ref rTarget
Begin GameMode
if ( bFinish )
set fTimer to ( fTimer + GetSecondsPassed )
if ( fTimer >= 0.5 )
rTarget.Kill
rTarget.RemoveItem ZTFinisherRing, 1
set bFinish to 0
set fTimer to 0
endif
elseif ( IsKeyPressed2 iFinisherKey )
set rTarget to GetCrosshairRef
if ( IsFormValid rTarget )
if ( rTarget.IsActor ) && ( rTarget.GetIsCreature == 0 ) && ( rTarget.GetDead == 0 )
set bFinish to 1
rTarget.AddItem ZTFinisherRing, 1
Player.Pickidle
rTarget.PickIdle
endif
endif
endif
End
Bei der alten Version wurde der Timer nie verwendet: es war extrem unwahrscheinlich, dass Possible bis zur Abfrage auch wirklich 2 bleibt.
Mein Script funktioniert mittlerweile, hab vor der abfrage vom target ein If Possible == 0 gehängt:
Scriptname ZFinisherQuestScript
Short Done
Float fQuestdelayTime;set to 0.1 from another script
Short Finisherkey
Ref PossibleTarget
Ref Target
Ref PlayerWeapon
Ref PlayerWeaponType
Short Move
Short Possible
Float Timer
Short TargetBaseHealth
Begin GameMode
If IsKeyPressed2 Finisherkey
Set Move to 1
Endif
If Move == 1
if Possible == 0
Set PossibleTarget to GetCrosshairRef
If PossibleTarget != 0
If ( PossibleTarget.IsActor )
If ( PossibleTarget.IsCreature == 0 )
If ( PossibleTarget.GetDead == 0 )
Set Target to PossibleTarget
Set Possible to 1
Endif
Endif
Endif
Else
Set move to 0
Endif
ElseIf Possible == 1
Set Playerweapon to Player.GetEquippedObject 16
If PlayerWeapon != 0
Set PlayerWeaponType to GetWeaponType PlayerWeapon
Endif
Set TargetBaseHealth to Target.GetBaseActorValue Health
If Player.IsWeaponOut
If PlayerWeaponType == 0 || PlayerWeaponType == 1
If Target.GetAV Health <= (TargetBaseHealth / 2)
If Player != Target
;If Target.GetDistance Player <= 120
Player.SetRestrained 1
Target.AddItem ZTFinisherRing 1
Set Possible to 2
Player.Pickidle
Target.PickIdle
Set Possible to 3
;Else
;Set Move to 0
;Endif
Else
Set move to 0
Endif
Else
Set Move to 0
Endif
Else
Set move to 0
Endif
Else
Set move to 0
Endif
Elseif Possible == 3
If Timer >= 1
Target.Kill
Target.RemoveItem ZTFinisherRing 1
Player.SetGhost 0
Player.SetRestrained 0
Set Move to 0
Set Timer to 0
Set Possible to 0
Endif
Set Timer to Timer + GetSecondsPassed
Endif
Endif
End
Die im offiziellen Forum meinen auch das die abrfragen (IsActor, IsCreature) nacheinander gemacht werden sollten.
Jedenfalls klappt das jetzt danke, werd später wenn ich soweit bin vllt nochmal auf Pluggy zurückkommen und könnt da noch Hilfe gebrauchen.
Lg
Dobbel-Post
Ich will jetzt nen Zweiten Move einbinden der aber den ersten vorraussetzt (Da der Gegner bei der ersten sozusagen kurz außer gefecht ist, er geht paar schritte zurück etc), und in dieser Zeit soll der Spieler halt hin und nochmal den Key drücken, damit eine zweite Animation ausgeführt wird.
Habt ihr ne Idee?
Script sieht bis jetzt so aus: (Hab momentan net viel Zeit daher können einige Flüchtigkeitsfehler drin sein sry)
Scriptname ZFinisherQuestScript
Short Done
Float fQuestdelayTime;set to 0.1 from another script
Short Finisherkey
Ref PossibleTarget
Ref Target
Ref PlayerWeapon
Ref PlayerWeaponType
Short Move
Short Possible
Short Possible2
Float Timer
Float Timer2
Short TargetBaseHealth
Begin GameMode
If ( IsKeyPressed2 Finisherkey )
Set Move to 1
Endif
If Move == 1
if Possible == 0
Set PossibleTarget to GetCrosshairRef
If PossibleTarget != 0
If ( PossibleTarget.IsActor )
If ( PossibleTarget.IsCreature == 0 )
If ( PossibleTarget.GetDead == 0 )
Set Target to PossibleTarget
Set Possible to 1
Endif
Endif
Endif
Else
Set move to 0
Endif
ElseIf Possible == 1
Set Playerweapon to Player.GetEquippedObject 16
If PlayerWeapon != 0
Set PlayerWeaponType to GetWeaponType PlayerWeapon
Endif
Set TargetBaseHealth to Target.GetBaseActorValue Health
If Player.IsWeaponOut
If PlayerWeaponType == 0 || PlayerWeaponType == 1
If Target.GetAV Health <= (TargetBaseHealth / 2)
If Player != Target
Target.AddItem ZTHeBStuRing 1
Target.SetRestrained 1
Target.SetUnconscious 1
Set Possible to 2
Player.Pickidle
Target.PickIdle
Set Possible to 3
Else
Set move to 0
Endif
Else
Set Move to 0
Endif
Else
Set move to 0
Endif
Else
Set move to 0
Endif
Elseif Possible == 3
If Timer >= 0.2 && Timer < 0.5
PlaySound BreakingNose
Elseif Timer < 3.333 && Timer >= 0.6
If IsKeyPressed2 FinisherKey
If Target != 0
If (Target.IsActor )
If ( Target.IsCreature == 0 )
If ( Target.GetDead == 0 )
Set Possible to 4
Endif
Endif
Endif
Endif
Endif
Elseif Timer >= 3.333
If Target.GetItemCount ZTFinisherRing < 1
Target.RemoveItem ZTHeBStuRing 1
Target.SetRestrained 0
Target.SetUnconscious 0
Set Move to 0
Set Timer to 0
Set Possible to 0
Endif
Endif
Set Timer to Timer + GetSecondsPassed
Elseif Possible == 4
Target.RemoveItem ZTheBStuRing 1
Target.AddItem ZTFinisherRing 1
If Player.IsWeaponOut
Set Timer to 0
Set Possible to 5
Target.SetRestrained 1
Target.PickIdle
Player.PickIdle
Endif
Elseif Possible == 5
If Timer == 1
Target.Kill
Target.RemoveItem ZTFinisherRing 1
Set Move to 0
Set Timer to 0
Set Possible to 0
Endif
Set Timer to Timer + GetSecondsPassed
Endif
Endif
End
2tens:
Wie kann ich ein Skelett dazu bringen in Richtung des Spielers zu sehen?
SkelettRef.Look Player funzt irgendwie net, noch ne andere Idee?
Tribble Post :D
Nach langer Zeit mal wieder ne frage:
Ich habe mir eine ini erstellt, und habe dort ein paar Informationen gespeichert.
Ingame geht es jetzt darum, diese Informationen abzufragen (per Pluggys String funktion) und diese dann auf einen Feind zu übertragen. Heißt es soll dann ein Feind erstellt werden (Ich dachte da an eine Kopie des Spielers) nur mit anderem Namen, Level, Leben, Mana, Ausdauer, Gold, Zauber und Waffe.
Die Infos aus der ini ablesen, und in einem String speichern hab ich hinbekommen. Mir fehlt jetzt das erstellen der Kopie und dem Ausrüsten/ändern der Werte. Ich hoffte dabei könnte mir jemand behilflich sein.
Momentan sieht das Script so aus:
Scn TroyPluggyTestScript
long named
long leveld
long goldd
float healthd
Float Magickad
Float Fatigued
ref spelld
ref weapond
long file
long section
long key
long dInt
float dFloat
ref dRef
float fQuestDelayTime
Short Int
Begin GameMode
Set fQuestDelayTime to 0.1
If IsKeyPressed2 38
Set Int to 1
Endif
If Int == 0
Return
Else
set file to CreateString -1 "TroyIni.ini"
set section to CreateString -1 "General"
set key to CreateString -1 "Name"
set named to CreateString
set dInt to CreateString -1 "Unknown Name"
IniReadString named file section key dInt
DestroyString dInt
SetString key "Level"
set dInt to -1
set leveld to IniReadInt file section key dInt
SetString key "Gold"
set goldd to IniReadInt file section key dInt
SetString section "Attributes"
SetString key "Health"
set dFloat to -1
set healthd to IniReadFloat file section key dFloat
SetString section "Attributes"
SetString key "Magicka"
set dFloat to -1
set magickad to IniReadFloat file section key dFloat
SetString section "Attributes"
SetString key "fatigue"
set dFloat to -1
set fatigued to IniReadFloat file section key dFloat
SetString section "Spells"
SetString key "ActiveSpell"
set dRef to 0
set spelld to IniReadRef file section key dRef
SetString section "Equipped Items"
SetString key "Weapon"
set weapond to IniReadRef file section key dRef
;Hier sollte dann der Block mit dem erstellen der Kopie und dem ganzen ausrüstungsändern rein.
DestroyString file
DestroyString section
DestroyString key
Set Int to 0
Endif
End
Ich hatte testweise versucht die Kopie zu erstellen, aber er hat dann 100 Kopien gemacht und nichtmal der Name stimmte. :rolleyes:
Kleine Frage noch: Ist es möglich irgendwie ein Aussehen durch die ini festzulegen? Sodass ein Neuer NPc erstellt wird mit neuem Aussehen?
Low Post
17.01.2010, 18:14
Kleine Frage noch: Ist es möglich irgendwie ein Aussehen durch die ini festzulegen? Sodass ein Neuer NPc erstellt wird mit neuem Aussehen?
Script durchschauen dauert mir zu lang, daher nur das hier betreffend:
List of Functions (http://cs.elderscrolls.com/constwiki/index.php/List_of_Functions)
Copy/SetHair
Copy/SetEyes
Rasse, Geschlecht & Gesicht wird nur gehen, in dem du mehrere NPCs mit best. Gesicht erstellst und die dann als Auswahlmöglichkeiten anbietest.
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.