diff options
| author | Jan <> | 2015-02-02 17:58:18 +0100 |
|---|---|---|
| committer | Jan <_> | 2015-07-10 17:51:43 +0200 |
| commit | ca61c54b9bd69af897e4cc9d4385137fb56fd11a (patch) | |
| tree | a4363f466cea6de48ca81fadc08273d58698d2ff /TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Script.c | |
| parent | 32a9632fbca3dd7a88bd3154b84a3773af39c276 (diff) | |
| download | tempelschubsen-ca61c54b9bd69af897e4cc9d4385137fb56fd11a.tar.gz tempelschubsen-ca61c54b9bd69af897e4cc9d4385137fb56fd11a.zip | |
TemplePushingBeta.c4s
Diffstat (limited to 'TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Script.c')
| -rw-r--r-- | TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Script.c | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Script.c b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Script.c new file mode 100644 index 0000000..1d439bf --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Script.c @@ -0,0 +1,125 @@ +/* Eisnadeln */ + +#strict + +local Combo; + + + +func Activate(pCaster,pRealcaster) { +Combo=0; +Sound("Magic",0,pCaster); +if(FindContents(ABRL,pCaster)) +{ +Combo=1; +RemoveObject(FindContents(ABRL,pCaster)); +} + var pClonk; + if(pRealcaster) pClonk=pRealcaster; + else pClonk=pCaster; + + // Zielen wenn möglich + if (pClonk->~DoSpellAim(this())) 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) + { + //var pEffer = CreateObject(_WE_,0,0,GetOwner(this())); + //GetTarget(object pTarget,int Interval, string Element, int ElementNumber, int R, int G, int B, int a) + //pEffer -> GetTarget(pCaller,0, "Water", 0, 100, 100, 255, 120); + var WasserF = FindContents(WBRL,pCaller); + if(WasserF) + { + RemoveObject(WasserF); + CreateContents(FLNT,this()); + } + if(!FindContents(FLNT,this())) + { + 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); + if(Combo==1) f->LocalN("Gift",f)=1; + var combo = FindContents(ICE1,pCaller); + if(combo) + { + RemoveObject(combo); + f->CreateContents(ROCK); + } + } + AddEffect("RecallMFCSAiming",pCaller,20,1,0,GetID(),iAngle); + + // Objekt löschen + RemoveObject(); + return(1); + } + if(FindContents(FLNT,this())) + { + for(var cnt=0;cnt<6;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); + if(Combo==1) f->LocalN("Gift",f)=1; + var combo1 = FindContents(ICE1,pCaller); + if(combo1) + { + RemoveObject(combo1); + f->CreateContents(ROCK); + } + } + 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) |
