From e1b30572d41977d9c57982873103437de367311e Mon Sep 17 00:00:00 2001 From: Mittendrein Markus Date: Thu, 3 Mar 2016 15:05:19 +0100 Subject: Crystal spikes dont hit attached objects --- .../CrystalSpikes.c4d/Kristall.c4d/Script.c | 4 ++- TemplePushing.c4s/System.c4g/Find_Angle.c | 33 ------------------- TemplePushing.c4s/System.c4g/Find_Criterions.c | 38 ++++++++++++++++++++++ 3 files changed, 41 insertions(+), 34 deletions(-) delete mode 100644 TemplePushing.c4s/System.c4g/Find_Angle.c create mode 100644 TemplePushing.c4s/System.c4g/Find_Criterions.c (limited to 'TemplePushing.c4s') diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/CrystalSpikes.c4d/Kristall.c4d/Script.c b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/CrystalSpikes.c4d/Kristall.c4d/Script.c index 2f5cc9b..09d958b 100644 --- a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/CrystalSpikes.c4d/Kristall.c4d/Script.c +++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/CrystalSpikes.c4d/Kristall.c4d/Script.c @@ -28,7 +28,7 @@ func StossEffect() if (!GetEffect("NoCrystalAttack", pClonk)) HitObject(pClonk); } } - for (var pDing in FindObjects(Find_Distance(30), Find_Category(C4D_Object), Find_NoContainer(), Find_Not(Find_ID(QBCY)))) + for (var pDing in FindObjects(Find_Distance(30), Find_Category(C4D_Object), Find_NoContainer(), Find_Not(Find_ID(QBCY)), Find_Not(Find_Procedure("ATTACH")))) { HitDing(pDing); } @@ -62,6 +62,7 @@ global func CreateBigCrystal(int iX, int iY, int iCon, int iMTime, int iOwner) func HitObject(object pClonk) { + DebugLog("HitObject(%v)", pClonk); Sound("Crystal2", 0, pClonk); DoEnergy(-20, pClonk); Fling(pClonk, RandomX(-4, 4), RandomX(-5, -9)); @@ -70,6 +71,7 @@ func HitObject(object pClonk) func HitDing(object pDing) { + DebugLog("HitDing(%v)", pDing); if (pDing) { SetSpeed(RandomX(-4, 4), RandomX(-20, -40), pDing); diff --git a/TemplePushing.c4s/System.c4g/Find_Angle.c b/TemplePushing.c4s/System.c4g/Find_Angle.c deleted file mode 100644 index 4d403d6..0000000 --- a/TemplePushing.c4s/System.c4g/Find_Angle.c +++ /dev/null @@ -1,33 +0,0 @@ -/*-- FindObjects search criteria for a certain angle-range --*/ -#strict 2 - -global func SwapIfBigger(&smaller, &bigger) -{ - if (bigger < smaller) - { - var swap = smaller; - smaller = bigger; - bigger = swap; - } -} - -global func Find_Angle(int angleStart, int angleEnd, bool biggerPart, int x, int y) -{ - while (angleStart < 0) angleStart += 360; - while (angleEnd < 0) angleEnd += 360; - angleStart %= 360; - angleEnd %= 360; - SwapIfBigger(angleStart, angleEnd); - if (angleEnd - angleStart > 180) biggerPart = !biggerPart; - return [C4FO_Func, "Find_AngleCheck", angleStart, angleEnd, biggerPart, GetX() + x, GetY() + y]; -} - -global func Find_AngleCheck(int angleStart, int angleEnd, bool biggerPart, int x, int y) -{ - var angle = Angle(x, y, GetX(), GetY()); - var inside = Inside(angle, angleStart, angleEnd); - var ret; - if (biggerPart) ret = !inside; - else ret = inside; - return ret; -} diff --git a/TemplePushing.c4s/System.c4g/Find_Criterions.c b/TemplePushing.c4s/System.c4g/Find_Criterions.c new file mode 100644 index 0000000..406bb5a --- /dev/null +++ b/TemplePushing.c4s/System.c4g/Find_Criterions.c @@ -0,0 +1,38 @@ +/*-- FindObjects search criteria for a certain angle-range --*/ +#strict 2 + +global func SwapIfBigger(&smaller, &bigger) +{ + if (bigger < smaller) + { + var swap = smaller; + smaller = bigger; + bigger = swap; + } +} + +global func Find_Angle(int angleStart, int angleEnd, bool biggerPart, int x, int y) +{ + while (angleStart < 0) angleStart += 360; + while (angleEnd < 0) angleEnd += 360; + angleStart %= 360; + angleEnd %= 360; + SwapIfBigger(angleStart, angleEnd); + if (angleEnd - angleStart > 180) biggerPart = !biggerPart; + return [C4FO_Func, "Find_AngleCheck", angleStart, angleEnd, biggerPart, GetX() + x, GetY() + y]; +} + +global func Find_AngleCheck(int angleStart, int angleEnd, bool biggerPart, int x, int y) +{ + var angle = Angle(x, y, GetX(), GetY()); + var inside = Inside(angle, angleStart, angleEnd); + var ret; + if (biggerPart) ret = !inside; + else ret = inside; + return ret; +} + +global func Find_Procedure(string procedure) +{ + return Find_FuncEqual("GetProcedure()", procedure); +} -- cgit v1.2.3-54-g00ecf