ich suche seit um 2 im netz nun schon ne antwort auf meine frage...komme aber nicht weiter...
ich suche die möglichkeit mir die Referenz meines angegriffenen Targets zurückgeben zu lassen (am besten natürlich zum Zeitpunkt des treffens). Bei Assassins_Blade wird das wenn ichs richtig verstanden habe über getCombatTarget geregelt
Player.GetCombatTarget will always return 0 as the game has no way to determine what target the player has chosen.
So, nun bin ich verwirrt...vll. ist aber auch mein Ansatz völlig falsch..deswegen verrate ich auch mal was ich vorhabe, vll. gibts ja auch bessere Ansätze...ich möchte gerne eine Waffe mit einem Script belegen, durch das bei Treffer ein Zauber auf das Target gecastet wird...beispielsweise ein Seelenfalle oder Life Drain. Ich weiß, das das ganze über Enchantments möglich ist, aber ich wills...sagen wir mal flexibler gestalten...
Noch ne Frage...wie findet ihr die passende Funktion zu Eurem vorhaben...ich such mich bei den Methoden doof und dämlich....
Das Script läuft sonst so ab, als wäre es im CS dem Ziel zugewiesen worden (GetSelf wird die getroffene Reference ausgeben, wenn kein CallingActor angegeben ist und die Funktion einen benötigt wird die Zielreferenz als CallingActor verwendet, etc.)
Wenn ein Ziel 2 mal vom gleichen ScriptEffect getroffen wird wird für beide das gleiche Script verwendet!
z.B.: ein ScriptEffect dauert 5 Sekunden. Beim Start wird zu x 1 dazugezählt, am Ende gibt eine MessageBox aus, wie groß x ist.
Wird das Ziel innerhalb der 5 Sekunden nocheinmal von dem ScriptEffect getroffen sagt die MessageBox am Ende x sei 2.
Was passiert, wenn das Ziel erst nach der MessageBox nochmal getroffen wird weiß ich jetz spontan aber nicht.
MessageBoxEx hat momentan noch einige Probleme in MagicEffectScripts (GetButtonPressed muss jeden Frame überprüft werden)
also die gute Nachricht ist, ich habe mein Schwert mit einem gscriptetem Enchantment Zauber versehen...(es scheint auch soweit zu funzen..muss ich aber noch genauer prüfen ob nicht nur der VisualEffect abgespielt wird...)
was ich jedoch schon bemerkt habe, ist, das ich auf diese art und weise ja wieder von den ladungen abhängig bin...ein fakt den ich mitunter umgehen wollte...um vll. noch etwas genauer zu werden...der sinn der ganzen übung ist einen zauberspruch zu haben, mit dem ich auswählen kann ob meine waffe feuerschaden, eisschaden, seelenfalle oder sonstiges bei treffer castet und das ohne auf ladungen achtnen zu müssen)
kann mir wer diesbezüglich noch einen hinweis geben?
Du kannst doch die Kosten der Verzauberung auf 0 stellen. Einfach das Häckchen bei Auto-Calculate wegnehmen, dann kannst du den Wert selber einstellen.
--
Ich kam, sah, und konnte meinen Augen nicht trauen
das nächste Problem betrifft das anbringen des Zaubers auf mein getroffenens Ziel.
is lass mir mit GetSelf also eine Referenz des Targets geben und wende darauf einen Zauber an.
Habs mit addSpell versucht und einen Zauber erstellt (zB schadenszauber)
das kuriose ist, das ich keinen effekt spüre, wenn der zauber ein gift oder ein zauber ist
ich vermute mal als zauber bekommt mein targert den zauber einfach in seine spruchliste geschoben, aber als gift müsste er doch die auswirkungen des zaubers abbekommen, oder?
wenn der schadenszauber eine krankheit ist spüre ich einen effekt, jedoch stirbt jeder gegenr dann von einem schlag, da der auber permanent wirkt...
sorry, für mich ist scripting neuland...ich kann zwar ein wenig programmieren, stelle mich aber beim erlernen von neuen syntaxen generell sehr doof an...
du kannst keine Funktion als CallingActor verwenden. Wenn, dann müsst es heißen reference.AddSpell.
Da die Reference aber hier das gleiche ist wie GetSelf kann man die auch einfach weglassen, AddSpell [Dein Spruch] würde da vollkommend ausreichen.
Zu deinem Problem: Zauber werden wie du richtig bemerkt hast in das Zauberbuch des Ziels verschoben, so dass er ihn selbst verwenden kann (falls er die Entsprechenden Fähigkeiten hat). Damit es Wirkung zeigt musst es eine Eigenschaft sein, da ist dann aber das Problem, dass die Ewig draufbleibt, wenn man sie nicht entfernt. Krankheiten scheinen laut deiner Beobachtung auch zu funktionieren, damit hab ich mich aber nicht beschäftigt.
Gibt der Eigenschaft doch einfach zusätzlich einen ScriptEffect, der sie vom Ziel nach einer gewissen Zeit wieder entfernt...oder pack in der ScriptEffectFinish-Block der Verzauberung einfach noch ein RemoveSpell hinein. Da kommt man aber dann an das Problem mit dem gleichen verwendeten Script.
--
Ich kam, sah, und konnte meinen Augen nicht trauen
vielen Dank für deine Hilfe...es haut jetzt soweit alles hin.
(der Code von oben war ein Verschreiber...natürlich rufe ich die Funktion auf der Referenz auf)
Ich habs jetzt über ScriptEffectStart und -Finish-Blöcke gelöst...
ich muss hier leidernochmal ansetzen...
ich finde leider keine Möglichkeit auf mein Target Seelenfalle anzuwenden, da man Seelenfalle bei Eigenschaften nicht auswählen kann...
Sieht jemand ne Möglichkeit?
Warum kann man eigentlich nicht einfach die Effekte adden, zB sowas wie : ref.addmagicEffect STRP 5 ? Ich vermute das, wäre sicherlich zu einfach gewesen...schade eigentlich...