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