SureAI

Forums covering SureAI game titles.

https://sureai.net/forum/

Topic title - Hilfe beim Skripten

https://sureai.net/forum/viewtopic.php?t=9092

Page 1 of 1
Hilfe beim Skripten - by GannJal
Posted: 18.07.2016 17:06
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.
Re: Hilfe beim Skripten - by jcdenton99
Posted: 19.07.2016 09:48
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
Re: Hilfe beim Skripten - by Alzucard
Posted: 19.07.2016 11:02
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 ;)
Re: Hilfe beim Skripten - by GannJal
Posted: 20.07.2016 07:19
@jcdenton99
Danke für den Tipp mit den properties aber die sind richtig daran liegt es nicht.
Re: Hilfe beim Skripten - by jcdenton99
Posted: 20.07.2016 08:56
@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
Re: Hilfe beim Skripten - by GannJal
Posted: 20.07.2016 14:09
@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
Re: Hilfe beim Skripten - by GannJal
Posted: 20.07.2016 14:54
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?
Re: Hilfe beim Skripten - by jcdenton99
Posted: 20.07.2016 15:25
GannJal wrote:
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:
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.
All times are UTC
Page 1 of 1
Powered by phpBB® Forum Software © phpBB Limited