jaaa, das hab ich bereits versucht. nur eben mit akTarget und es funzt nich...
tut mir leid, ich bin ziemlich gefrustet. Da vergreift man sich schnell im ton.
Es geht mir um folgendes. Ich möchte einen Zauberstab erstellen, mit dem man einen toten Begleiter (als beispiel nehmen wir mal Lydia) zu einem bestimmten ort teleportiert. an den entsprechenden koordinaten bzw. beim entsprechenden objekt soll der NPC eine bestimmte Idle Animation ausführen (wofür der wahrscheinlich wieder leben muss, also auf unconscious gesetzt wird). Ich hatte bereits einige entwürfe, die ich im gnatz wieder gelöscht hab. Ich häng da schon seit gesternabend dran ohne auch nur einen teilerfolg..
Ich will ja nicht nerven, aber ich fühl mich etwas ignoriert.
Kann mir Jemand bei meinem Script helfen, oder habt ihr auch keine Ahnung, wie das umzusetzen ist?
ich hab mich ja schon entschuldigt. :sorry:Papyrus wird dich noch oft frusten, ist aber kein Grund dein "Empören", hier in anderer Form rauszulassen.
Umsetzen konnte ich garnichts. Denn in dem seltenen Fall, dass das Compilieren funktioniert hat, trat überhaupt kein effekt im spiel auf.
Scriptname AABurial extends ActiveMagicEffect
{Beisetzung}
import game
import debug
Faction property PlayerFaction auto
Faction property CurrentFollowerFaction Auto
event OnEffectStart(Actor akTarget, Actor akCaster)
if akTarget[...]
if akTarget == IsDead(true)
debug.messagebox ("Der ist tot")
endif
endif
endevent
Ein vom Prinzip her sehr ähnliches Problem wurde ein paar Seiten zuvor schon einmal gelöst: KlickIch will ja nicht nerven, aber ich fühl mich etwas ignoriert. Kann mir Jemand bei meinem Script helfen, oder habt ihr auch keine Ahnung, wie das umzusetzen ist?
mfg
if akTarget.IsDead()==true
Im CK-Wiki hat jeder Befehl seine eigene Seite. Da sind auch meistens kleine Beispielskripts gegeben. Hier der zu PlayIdle: Link (Anmerkung: das "==true" bei if-Abfragen kann man sich auch sparen. Das hängt damit zusammen, dass der "==" Operator "true" zurückgibt, wenn auf beiden Seiten das gleiche steht. Da der Rückgabewert dann aber schon "true" ist, reicht das aus. Dem "if" ist es egal, woher sein "true" oder "false" kommt.)okay, soweit hatte ich das schon verstanden (ich butter mich bereits seit einiger zeit durch diverse tutorials auf der seite). nur dass das so aussehen muss, wusste ich nicht. Ich gehe davon aus, dass das mit PlayIdle ähnlich ist? Oder ist der Befehl ein anderer?
wie gesagt, ich stöber im CS Wiki herum, nur aus vielen Beispielen werd ich einfach nicht schlau. Wie zum beispiel der PlayIdle Befehl. Als beispiel ist dort nur eine if abfrage. Nützt mir persönlich überhaupt nichts und wenn ich das nach dem Syntax Schema eingebe, funktioniert es nicht. Wo wir gerade bei Idles sind, sind das die Anim Events, wenn man bei "Animations..." die kategorien bzw. Pfade ausklappt? Wenns das nicht ist, kanns ja auch nicht funktionieren.Im CK-Wiki hat jeder Befehl seine eigene Seite. Da sind auch meistens kleine Beispielskripts gegeben. Hier der zu PlayIdle: Link (Anmerkung: das "==true" bei if-Abfragen kann man sich auch sparen. Das hängt damit zusammen, dass der "==" Operator "true" zurückgibt, wenn auf beiden Seiten das gleiche steht. Da der Rückgabewert dann aber schon "true" ist, reicht das aus. Dem "if" ist es egal, woher sein "true" oder "false" kommt.)
Scriptname AABurial extends ActiveMagicEffect
{Beisetzung}
import game
import debug
Keyword Property ActorTypeNPC auto
event OnEffectStart(Actor akTarget, Actor akCaster)
if (akTarget.HasKeyword(ActorTypeNPC))
if akTarget.IsDead() == true
;aktarget.moveto CreatureAlcoveBGMarker
aktarget.SetUnconscious()
;aktarget.playIdle()
;aktarget.SetDestroyed()
endif
endif
endevent
Edit: SetDestroyed wird weiterhin ignoriert, MoveTo und PlayIdle funktionieren weiterhin nicht, wobei ich bei PlayIdle immernoch eine fehlermeldung bekomme, FluteIdle sei eine unbekannte Variable. Demzufolge müsste ich die mit int einfügen. Ich denke aber nicht, dass das überhaupt eine Variable sein soll 0ô. Bei MoveTo hab ich auch den "Wert" mit Pick Reference in Render Window bestimmt, also soweit sollte das richtig sein.
Demzufolge müsste ich die mit int einfügen.
Scriptname XY extends ObjectReference
ObjectReference Reference
FormList Property Doors Auto
Event OnActivate(ObjectReference ActionRef)
int locklevel = getlocklevel()
if IsLocked()
while getlocklevel() < 255
if(game.getplayer().getactorvalue("Lockpicking") < locklevel)
debug.Notification("You need lockpick skill " + locklevel + " to open!")
blockactivation(true)
return
else
blockactivation(false)
endif
endWhile
else
blockactivation(false)
endif
EndEvent