Allgemein
News
News-Archiv
Partner
Netzwerk
Banner
Header
Media
Downloads
Impressum

The Elder Scrolls
Arena
Daggerfall
Spin-offs
Romane
Jubiläum
Reviews
Welt von TES
Lore-Bibliothek
Namens-
generator

FRPGs

Elder Scrolls Online
Allgemein
Fraktionen
Charakter
Kargstein
Technik
Tamriel-
Manuskript

Media

Skyrim
Allgemein
Lösungen
Tipps & Tricks
Steam-Kniffe
Review
Media
Plugins & Mods

Oblivion
Allgemein
Lösungen
Tipps & Tricks
Technik
Charakter
Media
Plugins & Mods
Kompendium

Morrowind
Allgemein
Lösungen
Tipps & Tricks
Media
Plugins & Mods

Foren
The Elder Scrolls Online
Hilfe & Diskussion

Skyrim
Hilfe & Diskussion
Plugins & Mods

Ältere TES-Spiele
TES-Diskussion
Oblivion-Plugins
Morrowind-Plugins

Community
Taverne zum Shalk
Adventures of Vvardenfell
Tales of Tamriel
Ergebnis 1 bis 15 von 15

Thema: Troy's Scriptthread (inkl. Auslösen von Animationen)

  1. #1

    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:
    Code:
    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:
    Code:
    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
    Geändert von SirTroy (09.10.2009 um 22:30 Uhr)

  2. #2
    Animation:

    Zitat Zitat
    If Target.GetDistance Player <= 10 && > 0


    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.

    Zitat Zitat
    Target.Playgroup Idle 1
    Target.PickIdle 1
    PickIdle sollte hier genügen und hat btw. auch keinen Parameter.

    Zitat Zitat
    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.


    Zitat Zitat
    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?



    KeySelection:

    Zitat Zitat
    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

  3. #3
    Also:
    Zu Pickidle 1 meint jemand aus den Offiziellen Foren:
    Zitat Zitat
    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

    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)??

  4. #4
    Wie gesagt: PickIdle verwendet keine Parameter also kannst du die 1 auch einfach weglassen.


    Zitat Zitat
    Das mit dem Timer war ausversehen, weil ich erst Set Timer to Timer + Getsecondspassed machen wollte dann aber doch nicht gemacht hab
    Kann ich ja nicht wissen, aber warum startest du dann nicht bei 0?


    Zitat Zitat
    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.

  5. #5
    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

  6. #6
    Zitat Zitat von SirTroy Beitrag anzeigen
    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.

    Zitat Zitat
    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).
    Du weißt schon, wegen CTDs und so.


    Ansonsten:
    NewHudS/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.

    Zitat Zitat
    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.

  7. #7
    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)
    Code:
    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)

  8. #8
    Zitat Zitat von SirTroy Beitrag anzeigen
    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:
    Zitat Zitat
    Set Timer to 0


    Ich hab in deinem Script mal herumgepfuscht um das mit dem Timer zu beheben:
    Code:
    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

  9. #9
    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

    Edit: Kann es sein das Target irgendwie wieder weggesetzt wird, sodass es nichtmehr erkannt wird?

  10. #10
    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...

  11. #11
    Probier mal das hier:
    Code:
    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.

  12. #12
    Mein Script funktioniert mittlerweile, hab vor der abfrage vom target ein If Possible == 0 gehängt:
    Code:
    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

  13. #13
    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)

    Code:
    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?

  14. #14
    Tribble Post

    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:



    Ich hatte testweise versucht die Kopie zu erstellen, aber er hat dann 100 Kopien gemacht und nichtmal der Name stimmte.

    Kleine Frage noch: Ist es möglich irgendwie ein Aussehen durch die ini festzulegen? Sodass ein Neuer NPc erstellt wird mit neuem Aussehen?

  15. #15
    Zitat Zitat von SirTroy Beitrag anzeigen
    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
    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.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •