diff options
Diffstat (limited to 'TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/Script.c')
| -rw-r--r-- | TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/Script.c | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/Script.c b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/Script.c new file mode 100644 index 0000000..eba7696 --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/IceNeedles.c4d/Script.c @@ -0,0 +1,80 @@ +/* Ice Needles */ + +#strict + + +func Activate(pCaster,pRealcaster) +{ +Sound("Magic",0,pCaster); + var pClonk; + if(pRealcaster) pClonk=pRealcaster; + else pClonk=pCaster; + + // Zielen wenn möglich + if (pClonk->~DoSpellAim(this(), pCaster)) return(1); + + var angle=-90; + if(GetDir(pClonk) == DIR_Right()) angle=90; + ActivateAngle(pClonk,angle); + RemoveObject(); + return(1); +} + +// Aktivierung nach Zielen (iAngle: -90=links; 0=oben; +90=rechts) +public func ActivateAngle(object pCaller, int iAngle) +{ + for(var cnt=0;cnt<3;cnt++) + { + var f=CreateObject(ICNA,AbsX(GetX(pCaller))+Cos(iAngle-90,13),AbsY(GetY(pCaller))+Sin(iAngle-90,13),GetOwner(pCaller)); + f->Activate(pCaller,iAngle); + } + + AddEffect("RecallMFCSAiming",pCaller,20,1,0,GetID(),iAngle); + + // Objekt löschen + RemoveObject(); + return(1); +} + +public func HoldAimer(pCaller) +{ + return(true); +} + +protected func FxRecallICNAAimingStart(pTarget,iEffectNumber,bTemp,par1){ +EffectVar(0,pTarget,iEffectNumber)=par1; +EffectVar(1,pTarget,iEffectNumber)=0; +EffectVar(2,pTarget,iEffectNumber)=0; +return(1);} + +protected func FxRecallICNAAimingTimer(pTarget,iEffectNumber) +{ + if(GetAction(pTarget) eq "Magic")return(0); + + if(!EffectVar(1,pTarget,iEffectNumber)) + { + pTarget->~DoMagic(ICNA); + EffectVar(1,pTarget,iEffectNumber)=1; + } + + if(!EffectVar(2,pTarget,iEffectNumber) && GetAction(pTarget) eq "AimMagic") + { + var pAimer=FindObject(AIMR,0,0,0,0,0,0,pTarget,NoContainer()); + if(pAimer) + { + LocalN("iAngle",pAimer)=EffectVar(0,pTarget,iEffectNumber); + LocalN("pArrow",pAimer)->~UpdateAngle(EffectVar(0,pTarget,iEffectNumber)); + pAimer->~UpdateAngle(EffectVar(0,pTarget,iEffectNumber)); + pTarget->~AimingAngle(EffectVar(0,pTarget,iEffectNumber)); + EffectVar(2,pTarget,iEffectNumber)=1; + } + } + if(!WildcardMatch(GetAction(pTarget),"*Magic*") && !WildcardMatch(GetAction(pTarget),"*Aim*"))return(-1); + + if(EffectVar(2,pTarget,iEffectNumber) && EffectVar(1,pTarget,iEffectNumber))return(-1); +} + +/* Zaubercombo */ + +public func GetSpellClass(object pMage) { return(WATR); } +public func GetSpellCombo(pMage) { return ("444"); } // (1: Backward; 2: Down; 3: Forward; 4: Throw; 5: Jump; 6: Dig) |
