Hilfe beim Skripten

Moderator: Moderatoren

8 Beiträge Seite 1 von 1
GannJal
Gauner
Gauner
Beiträge: 13
Registriert: 13.07.2015 10:21
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal


Ich bin grade dran eine Mod zu erstellen der das Arkanistenfiber verschlimmert.
Ich habe da ein kleines problem mit Zaubern die als Ziel nicht den Spieler haben.

Beispiel orginal Wohltat-Skript:
[+]
Scriptname _00E_ArkanistenfieberWohltatSCN extends activemagiceffect

Event OnEffectStart(Actor akTarget, Actor akCaster)
if akTarget == Game.GetPlayer()
IsActive = True
RegisterForSingleUpdate(0.25)
EndIf
EndEvent

Event OnEffectFinish(Actor akTarget, Actor akCaster)
if akTarget == Game.GetPlayer()
IsActive = false
UnregisterForUpdate()
_00E_BlitzheilungArkanistenfieber_sFeverIncreased.Show(Arkanistenfieber.GetValueInt())
EndIf
EndEvent

Event OnUpdate()
Arkanistenfieber.SetValue(Arkanistenfieber.GetValue()+Value)
RegisterForSingleUpdate(0.25)
EndEvent

Message Property _00E_BlitzheilungArkanistenfieber_sFeverIncreased Auto

bool IsActive = False
GlobalVariable Property Arkanistenfieber Auto
Float Property Value = 0.125 Auto
Meine angepasste Version für Zauaber wie Flammenbiss:
[+]
Scriptname _00E_ArkanistenfieberZielKonzen extends activemagiceffect

Event OnEffectStart(Actor akTarget, Actor akCaster)
if GetCasterActor() == Game.GetPlayer()
IsActive = True
RegisterForSingleUpdate(0.25)
EndIf
EndEvent

Event OnEffectFinish(Actor akTarget, Actor akCaster)
if GetCasterActor() == Game.GetPlayer()
IsActive = false
UnregisterForUpdate()
_00E_BlitzheilungArkanistenfieber_sFeverIncreased.Show(Arkanistenfieber.GetValueInt())
EndIf
EndEvent

Event OnUpdate()
Arkanistenfieber.SetValue(Arkanistenfieber.GetValue()+Value)
RegisterForSingleUpdate(0.25)
EndEvent

Message Property _00E_BlitzheilungArkanistenfieber_sFeverIncreased Auto

bool IsActive = False
GlobalVariable Property Arkanistenfieber Auto
Float Property Value = 0.125 Auto
Das Problem ist der Funktioniert nicht und ich weiß nicht warum.
Danke für die Hilfe.
jcdenton99
Hauptmann
Hauptmann
Beiträge: 86
Registriert: 07.07.2016 14:04
Hat sich bedankt: 28 Mal
Danksagung erhalten: 28 Mal


Hm.. Vielleicht solltest du im CK mal die Properties prüfen?

Sind die die "gefüllt"?
Also, das property "Arkanistenfieber" speziell.


Beste Grüße
JC
Alzucard
Ordenskrieger
Ordenskrieger
Beiträge: 427
Registriert: 01.07.2016 11:49
Hat sich bedankt: 52 Mal
Danksagung erhalten: 60 Mal


Poste das mal auf nexus, da sind vllt nen paar leute die dir mehr helfen können oder auf scharesoft.

Das sind bekantere Foren. eventuell musste noch nen paar sachen erklären, aber fragen kostet nix. Außer zeit ;)
GannJal
Gauner
Gauner
Beiträge: 13
Registriert: 13.07.2015 10:21
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal


@jcdenton99
Danke für den Tipp mit den properties aber die sind richtig daran liegt es nicht.
jcdenton99
Hauptmann
Hauptmann
Beiträge: 86
Registriert: 07.07.2016 14:04
Hat sich bedankt: 28 Mal
Danksagung erhalten: 28 Mal


@GannJal:
Hm ... hier mal ein paar Denkanstösse, vielleicht hilft das Dir bei der Fehlersuche:

Zitat:
Ich habe da ein kleines problem mit Zaubern die als Ziel nicht den Spieler haben.

Warum nicht einfach:
if akTarget != Game.GetPlayer()

oder bei dieser Funktion GetCasterActor() -> Member of: ActiveMagicEffect Script
if self.GetCasterActor() == Game.GetPlayer()

oder ganz einfach:
if akCaster == Game.GetPlayer()

??
Manchmal denken wir einfach nur kompliziert ;-)
Ich weiss das, bin gerade an meiner Enderal-Mod "Warten ermöglichen" am coden/proggen :P
GannJal
Gauner
Gauner
Beiträge: 13
Registriert: 13.07.2015 10:21
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal


@jcdenton99:

Die letzte Variante habe ich als erstes ausprobiert, bin ja faul. :lol:

Ich habe das if-Statment auch schon komplet auskommentiert und es tut trozdem nicht!
:(
Ich weiß echt nicht woran das liegt oder wie ich es anderst lösen könnte
GannJal
Gauner
Gauner
Beiträge: 13
Registriert: 13.07.2015 10:21
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal


Jetzt weiß ich was los ist und ich war echt dumm!

Das event triggert wenn der Effekt des Zaubers angewand wird, heißt wenn man jemand trifft.

Die sache ist das das mir so nicht ganz gefällt. Fällt jemand eine Lösung ein bei der ich das unabhänig vom Effekt machen kann?
jcdenton99
Hauptmann
Hauptmann
Beiträge: 86
Registriert: 07.07.2016 14:04
Hat sich bedankt: 28 Mal
Danksagung erhalten: 28 Mal


GannJal hat geschrieben:
Jetzt weiß ich was los ist und ich war echt dumm!

Das event triggert wenn der Effekt des Zaubers angewand wird, heißt wenn man jemand trifft.

Die sache ist das das mir so nicht ganz gefällt. Fällt jemand eine Lösung ein bei der ich das unabhänig vom Effekt machen kann?
Hier mal vom Creation kit wiki:
http://www.creationkit.com/index.php?ti ... ent_-_Form

Hier der Code vom Wiki:
Code: Alles auswählen
Another example: checking events through script

Scriptname DetectCastEventScript extends Quest

Event OnInit()
    RegisterForAnimationEvent(Game.GetPlayer(), "BeginCastRight") 
    RegisterForAnimationEvent(Game.GetPlayer(), "BeginCastLeft") 
    RegisterForAnimationEvent(Game.GetPlayer(), "MRh_SpellFire_Event") 
endEvent


Event OnAnimationEvent(ObjectReference akSource, string asEventName)
 	if (akSource == Game.GetPlayer()) && (asEventName == "BeginCastRight")
   		Debug.MessageBox("BeginCastRight Registered!")
 	endIf
	if (akSource == Game.GetPlayer()) && (asEventName ==  "MRh_SpellFire_Event")
   		Debug.MessageBox("SpellFire_Event Registered!")
 	endIf
endEvent
So, wie ich das verstanden habe: Wenn der player den Zauber castet, dann wird ein Event ausgelöst.
8 Beiträge Seite 1 von 1

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste