@Bisasam
Den Effekt löse ich direkt durch den Zauber aus. Über Wld_PlayEffekt(...) würde es aber auch dasselbe Ergebnis liefern, wenn ich als caster den hero und als target nochmal den hero angeben würde.
In diesem Fall habe ich kein Projektil sondern einen AOE Effekt, also ganz viele Partikel, die sich von außen in Form eines Rings auf den Helden zubewegen. Mein Gedanke war, dass ja dann die Gegner auch von außen getroffen werden und so auf den Helden zufliegen sollten. Tun sie aber leider nicht. Und wieso das so ist erschließt sich mir leider nicht so ganz.
Hier die nachgereichten Auszüge aus PfxInstMagic.d und VisualFXInst.d. Das ist jetzt nicht der gesamte Effekt, sondern nur der Teil, der mir Probleme bereitet.
Hier wird der PFX in Form eines größeren Rings um den Helden gebildet und die Partikel des Rings bewegen sich ein kleines Stück auf den Helden zu, also der Ring wird kleiner. Trotzdem und obwohl die Partikel die Gegner nicht treffen oder eben von der anderen Seite treffen fliegen die Gegner vom Helden weg anstatt auf den Helden zu.
PFX
Code:
INSTANCE MFX_Implosion_CAST (C_PARTICLEFX)
{
ppsvalue = 150.000000000;
ppsscalekeys_s = "";
ppsissmooth = 0;
ppsfps = 0;
shptype_s = "CIRCLE";
shpfor_s = "WORLD";
shpoffsetvec_s = "0 0 0";
shpisvolume = 0;
shpdim_s = "300";
shpscaleislooping = 0;
shpscaleissmooth = 0;
shpscalefps = 21.000000000;
shpdistribtype_s = "RAND";
dirmode_s = "TARGET";
dirfor_s = "object";
dirmodetargetfor_s = "OBJECT";
dirmodetargetpos_s = "0 0 0";
dirangleheadvar = 180.;
dirangleelevvar = 180.;
velavg = 0.350000001;
velvar = 2.99999993e-002;
lsppartavg = 800.000000000;
visname_s = "LIGHTNING_BIG_A0.TGA";
vistexcolorstart_s = "0 0 0";
vistexcolorend_s = "0 100 255";
vissizestart_s = "30 30";
vissizeendscale = 1.000000000;
visalphafunc_s = "BLEND";
visalphastart = 255.000000000;
visalphaend = 255.000000000;
};
Auszug VisualFX (Hab hier jetzt ein wenig rausgekürzt, damit die Idee klar wird)
Code:
INSTANCE spellFX_Implosion (CFx_Base_Proto)
{
visname_S = "MFX_Implosion_INIT";
emtrjmode_s = "FIXED";
emTrjOriginNode = "ZS_RIGHTHAND";
emtrjloopmode_s = "NONE";
emtrjeasefunc_s = "LINEAR";
};
INSTANCE spellFX_Implosion_KEY_CAST (C_ParticleFXEmitKey)
{
visname_S = "MFX_Implosion_INIT";
emCreateFXID = "spellFX_Implosion_CAST";
pfx_ppsIsLoopingChg = 1;
};
INSTANCE spellFX_Implosion_CAST (CFx_Base_Proto)
{
visname_S = "MFX_Implosion_Cast";
emTrjOriginNode = "Bip01";
emtrjmode_s = "NONE";
emFXCreatedOwnTrj = 1;
emActionCollDyn_S = "CREATE COLLIDE";
emFXCollDyn_S = "spellFX_Implosion_COLLIDEDYNFX";
emFXCollDynPerc_S = "spellFX_Implosion_SENDPERCEPTION";
emFXCollDynAlign_S = "COLLISIONNORMAL";
emCheckCollision = 1;
};
INSTANCE spellFX_Implosion_COLLIDEDYNFX (CFx_Base_Proto)
{
visname_S = "MFX_WINDFIST_TARGET";
sfxid = "MFX_EXTRICATE_COLLIDE";
};
INSTANCE spellFX_Implosion_SENDPERCEPTION (CFx_Base_Proto)
{
visname_S = "";
sendAssessMagic = 1;
};