Cerril

16/04/2012 01:02:32

Me he estado revisando el script y lo cierto es que no lo entiendo...

[code:1:1c7ef48fa4]#include "x2_inc_spellhook"

void main()
{

/*
Spellcast Hook Code
Added 2003-06-23 by GeorgZ
If you want to make changes to all spells,
check x2_inc_spellhook.nss to find out more

*/
if (!X2PreSpellCastCode())
{
// If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell
return;
}

// End of Spell Cast Hook


//Declare major variables
int nSpell = GetSpellId();
object oTarget = GetSpellTargetObject();
effect eVis = EffectVisualEffect(VFX_IMP_POLYMORPH);
effect ePoly;
int nPoly;
int nMetaMagic = GetMetaMagicFeat();
int nDuration = GetCasterLevel(OBJECT_SELF);
//Enter Metamagic conditions
if (nMetaMagic == METAMAGIC_EXTEND)
{
nDuration = nDuration *2; //Duration is +100%
}

//Determine Polymorph subradial type
if(nSpell == 387)
{
nPoly = POLYMORPH_TYPE_GIANT_SPIDER;
}
else if (nSpell == 388)
{
nPoly = POLYMORPH_TYPE_TROLL;
}
else if (nSpell == 389)
{
nPoly = POLYMORPH_TYPE_UMBER_HULK;
}
else if (nSpell == 390)
{
nPoly = POLYMORPH_TYPE_PIXIE;
}
else if (nSpell == 391)
{
nPoly = POLYMORPH_TYPE_ZOMBIE;
}
ePoly = EffectPolymorph(nPoly);
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_POLYMORPH_SELF, FALSE));

//Apply the VFX impact and effects
AssignCommand(oTarget, ClearAllActions()); // prevents an exploit
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ePoly, oTarget, TurnsToSeconds(nDuration));
}[/code:1:1c7ef48fa4]

El problema lo tengo cuando termino el conjuro, en su versión normal llama a alguún evento desconocido para volver a poner las caracteristicas del personaje, pero cuando lo llamo desde por ejemplo un objeto, no encuentro la forma de saber cuando termina...

Agradecería un poco de ayuda, porque es para una cosilla que estoy barruntando :P

AlthorDeMalavir

16/04/2012 07:57:09

la duracion va en la función ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ePoly, oTarget, TurnsToSeconds(nDuration));

A parte de eso no hay nada que salte cuando termina el conjuro.

Cerril

16/04/2012 16:47:12

Pensé que si, dado que el conjuro aplica cambios a la ficha, tanto en fuerza, como destreza y cons y cuando vuelves a tu forma normal te deja tus stats normales...

Pues mi gozo en un pozo, porque solo me queda cargar en el latido, y eso me da mucha grima...