summaryrefslogtreecommitdiffstats
path: root/TemplePushing.c4s/CliffPushing.c4d
diff options
context:
space:
mode:
Diffstat (limited to 'TemplePushing.c4s/CliffPushing.c4d')
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Ambiente.wavbin0 -> 1608340 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/FireBomb.c20
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/DefCore.txt10
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/Graphics.pngbin0 -> 8828 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/Script.c31
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/DefCore.txt8
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/Graphics.pngbin0 -> 9117 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/Script.c86
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/Wave.c4d/Graphics.pngbin0 -> 5362 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/Wave.c4d/Particle.txt13
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Maplang.bmpbin0 -> 33402 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Mapsymm.bmpbin0 -> 9594 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/DefCore.txt22
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/DefCore.txt22
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/Graphics.pngbin0 -> 4655 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/Script.c25
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/Title.pngbin0 -> 29757 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/Graphics.pngbin0 -> 4696 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/Script.c54
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/Title.pngbin0 -> 29834 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Sky.jpgbin0 -> 91525 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/ExtremeAmbiente.wavbin0 -> 929500 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/DefCore.txt7
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/FlintRain.c4d/DefCore.txt8
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/FlintRain.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/FlintRain.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/FlintRain.c4d/Graphics.pngbin0 -> 11259 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/FlintRain.c4d/Script.c23
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Graphics.pngbin0 -> 177 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Rain.c4d/Graphics.pngbin0 -> 528 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Rain.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Rain.c4d/Particle.txt13
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Rain.c4d/Rain.wavbin0 -> 381056 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Script.c22
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Thunders1.wavbin0 -> 73868 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Thunders2.wavbin0 -> 34716 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Armageddon.c4d/DefCore.txt9
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Armageddon.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Armageddon.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Armageddon.c4d/Graphics.pngbin0 -> 6847 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Armageddon.c4d/Script.c7
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Deathmatch.c4d/DefCore.txt9
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Deathmatch.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Deathmatch.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Deathmatch.c4d/Graphics.pngbin0 -> 7358 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Deathmatch.c4d/Script.c7
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/DefCore.txt9
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/Graphics.pngbin0 -> 6841 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/Script.c5
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/DefCore.txt9
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/Graphics.pngbin0 -> 10487 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/ActMap.txt4
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/DefCore.txt12
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/Graphics.pngbin0 -> 206 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/Script.c177
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/DefCore.txt8
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/Graphics.pngbin0 -> 9715 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/Script.c29
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/DefCore.txt9
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/Graphics.pngbin0 -> 10487 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/MagicalPushing.c4d/DefCore.txt8
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/MagicalPushing.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/MagicalPushing.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/MagicalPushing.c4d/Graphics.pngbin0 -> 9715 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/MagicalPushing.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/Script.c21
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/DefCore.txt9
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Graphics.pngbin0 -> 5838 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Script.c28
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/ActMap.txt4
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/DefCore.txt12
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/Graphics.pngbin0 -> 206 bytes
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/Script.c177
-rw-r--r--TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Title.txt2
113 files changed, 983 insertions, 0 deletions
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Ambiente.wav b/TemplePushing.c4s/CliffPushing.c4d/Ambiente.wav
new file mode 100644
index 0000000..9bd2ab1
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Ambiente.wav
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/FireBomb.c b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/FireBomb.c
new file mode 100644
index 0000000..125bd49
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/FireBomb.c
@@ -0,0 +1,20 @@
+#strict
+#appendto FBMP
+
+func Activate(pClonk)
+{
+ [$Shot$|Image=GNPW]
+ Sound("Blast2");
+ Exit(this(),-10+20*GetDir(pClonk));
+ SetXDir(-80+160*GetDir(pClonk));
+ SetYDir(-10);
+ return(1);
+}
+
+func Hit()
+{
+ if (Random(2)) return(_inherited());
+ SetYDir(-20);
+ Sound("BOING");
+ return(1);
+}
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/DefCore.txt b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/DefCore.txt
new file mode 100644
index 0000000..6ed04c9
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/DefCore.txt
@@ -0,0 +1,10 @@
+[DefCore]
+id=_MFL
+Version=4,9,8
+Name=MagicFlint
+Category=C4D_Magic
+Width=1
+Height=1
+Value=25
+Components=IROC=2;ILOA=2
+Picture=0,0,64,64
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/DescDE.txt b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/DescDE.txt
new file mode 100644
index 0000000..bc8405a
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/DescDE.txt
@@ -0,0 +1 @@
+Zaubert einen Flint herbei. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/DescUS.txt b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/DescUS.txt
new file mode 100644
index 0000000..80f5e9e
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/DescUS.txt
@@ -0,0 +1 @@
+Summons a flint. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/Graphics.png b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/Graphics.png
new file mode 100644
index 0000000..9fd8437
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/Names.txt b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/Names.txt
new file mode 100644
index 0000000..b182b58
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Flint herbeizaubern
+US:Summon flint
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/Script.c b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/Script.c
new file mode 100644
index 0000000..b514189
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Flint.c4d/Script.c
@@ -0,0 +1,31 @@
+/* Flint herbeizaubern */
+
+#strict
+static FlintID;
+
+public func Activate(pCaster,pRealcaster) {
+ var pSlurp;
+ var pFlint;
+
+ FlintID=[FLNT,SFLN,EFLN];
+
+ // Effekt prüfen
+ var iResult;
+ if (iResult = CheckEffect("FlintNSpell", 0, 125)) return(iResult!=-1 && RemoveObject());
+ // Sound
+ Sound("Magic*");
+ // Effekt
+ CreateParticle("MSpark", 0,0, 1000, RGBa(255,50,50,150));
+
+ if(pRealcaster) pCaster=pRealcaster;
+ { pFlint = CreateContents(FlintID[Random(GetLength(FlintID))],pCaster); }
+
+ RemoveObject();
+
+ return(1);
+}
+
+/* Zaubercombo */
+
+public func GetSpellClass(object pMage) { return(EART); }
+public func GetSpellCombo(pMage) { return("422"); } // (1: Backward; 2: Down; 3: Forward; 4: Throw; 5: Jump; 6: Dig)
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/DefCore.txt b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/DefCore.txt
new file mode 100644
index 0000000..09eaa86
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/DefCore.txt
@@ -0,0 +1,8 @@
+[DefCore]
+id=_FWV
+Version=4,9,8
+Name=Frostwave
+Category=C4D_Magic
+Value=18
+Components=IICE=4
+Picture=0,0,64,64
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/DescDE.txt b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/DescDE.txt
new file mode 100644
index 0000000..0f080c4
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/DescDE.txt
@@ -0,0 +1 @@
+Sendet eine Frostwelle aus, die Gegner wegschleudert und einfriert. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/DescUS.txt b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/DescUS.txt
new file mode 100644
index 0000000..956f6c4
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/DescUS.txt
@@ -0,0 +1 @@
+Casts an frostwave which flings enemys away. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/Graphics.png b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/Graphics.png
new file mode 100644
index 0000000..4519567
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/Names.txt b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/Names.txt
new file mode 100644
index 0000000..8615e7c
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Frostwelle
+US:Frost wave
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/Script.c b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/Script.c
new file mode 100644
index 0000000..142a8cb
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/Script.c
@@ -0,0 +1,86 @@
+#strict
+
+func Activate(pCaster,pRealcaster) {
+ var pClonk, pComboObj;
+ if(pRealcaster) pClonk=pRealcaster;
+ else pClonk=pCaster;
+
+ var iNum = AddEffect("FrostwaveNSpell",0,130,1,0,GetID(),0,GetX(pCaster),GetY(pCaster),pClonk);
+ if (iNum <= 0) return (iNum<0, RemoveObject());
+ Sound("MgWind*");
+ RemoveObject();
+ return(1);
+}
+
+func FxFrostwaveNSpellStart(object pTarget, int iNumber, int iTemp, int iAngle, int iX, int iY, object pCaller) {
+ if(iTemp) return();
+
+ // Radius anpassen
+ EffectVar(1,pTarget,iNumber) = 20;
+
+ // Position
+ EffectVar(2,pTarget,iNumber) = iX;
+ EffectVar(3,pTarget,iNumber) = iY;
+
+ // Zauberer
+ EffectVar(4,pTarget,iNumber) = pCaller;
+ EffectVar(6,pTarget,iNumber) = GetController(pCaller);
+
+ // Kombo
+ var pCombo = FindContents(ICE1, pCaller);
+ if (pCombo)
+ {
+ EffectVar(5,pTarget,iNumber) = true;
+ RemoveObject(pCombo);
+ }
+}
+
+func FxFrostwaveNSpellTimer(object pTarget, int iNumber, int iTime) {
+
+ var iRaduis = EffectVar(1,pTarget,iNumber);
+ // löschen falls schon zu weit
+ if(iRaduis >= EffectCall(pTarget,iNumber,"MaxRange")) return(-1);
+
+ // Position
+ var iX = EffectVar(2,pTarget,iNumber);
+ var iY = EffectVar(3,pTarget,iNumber);
+
+ // Kombo?
+ var dwSearchOCF = OCF_Alive;
+ if (EffectVar(5,pTarget,iNumber)) dwSearchOCF += OCF_Collectible;
+
+ // Effekt!
+ CreateParticle("FrostWave",iX,iY, RandomX(-1,1),RandomX(-1,1), 400+10*iRaduis,RGB(255,255,255));
+var obj;
+
+ var angle;
+ // Alle Gegner wegschleudern
+ while(obj = FindObject(0, -iRaduis-5+iX,-iRaduis-5+iY,iRaduis*2+10,iRaduis*2+10, dwSearchOCF, 0,0, NoContainer(), obj))
+ {
+ if(obj == Contained()) continue;
+ if(Inside(Distance(GetX(obj), GetY(obj), iX, iY), iRaduis-5, iRaduis+5))
+ {
+ angle=Angle(iX, iY, GetX(obj), GetY(obj) );
+ if(GetAlive(obj))
+ {
+ obj->SetKiller(EffectVar(6,pTarget,iNumber));
+ Fling(obj, Sin(angle, 80)/9, -Cos(angle, 80)/9);
+ if(!Frozen(obj)) Freeze(obj, EffectVar(4,pTarget,iNumber));
+ }
+ else
+ {
+ SetXDir(Sin(angle, 50), obj); SetYDir(-Cos(angle, 50), obj);
+ SetController(GetController(EffectVar(4,pTarget,iNumber)),obj);
+ }
+ }
+ }
+
+ EffectVar(1,pTarget,iNumber)+=8;
+}
+
+func FxFrostwaveNSpellMaxRange() { return(75); }
+
+/* Zaubercombo */
+
+public func GetSpellClass(object pMage) { return(WATR); }
+public func GetSpellCombo(pMage) { return ("335"); } // (1: Backward; 2: Down; 3: Forward; 4: Throw; 5: Jump; 6: Dig)
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/Wave.c4d/Graphics.png b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/Wave.c4d/Graphics.png
new file mode 100644
index 0000000..b4a8989
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/Wave.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/Wave.c4d/Particle.txt b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/Wave.c4d/Particle.txt
new file mode 100644
index 0000000..56ed2c0
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Frostwave.c4d/Wave.c4d/Particle.txt
@@ -0,0 +1,13 @@
+[Particle]
+Name=FrostWave
+MaxCount=350
+InitFn=StdInit
+ExecFn=StdExec
+DrawFn=Std
+Face=0,0,64,64,-32,-32
+GravityAcc=0
+RByV=1
+AlphaFade=5
+Delay=0
+Additive=1
+Repeats=1
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Maplang.bmp b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Maplang.bmp
new file mode 100644
index 0000000..cd806b8
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Maplang.bmp
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Mapsymm.bmp b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Mapsymm.bmp
new file mode 100644
index 0000000..08e92d2
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Mapsymm.bmp
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Names.txt b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Names.txt
new file mode 100644
index 0000000..23fb108
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Extraobjekte
+US:Additional Objects \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/DefCore.txt b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/DefCore.txt
new file mode 100644
index 0000000..c31ec02
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/DefCore.txt
@@ -0,0 +1,22 @@
+[DefCore]
+id=OGBT
+Version=4,9,8
+Name=Goblet
+Category=C4D_Object|C4D_SelectMaterial|C4D_SelectHomebase
+MaxUserSelect=10
+Timer=5
+TimerCall=FillCheck
+Width=8
+Height=9
+Offset=-4,-4
+Vertices=4
+VertexX=-4,4,-4,4
+VertexY=-4,-4,4,4
+VertexFriction=50,50,50,50
+Value=85
+Mass=10
+Components=KELK=1
+Picture=0,9,35,48
+Rebuy=1
+Collectible=1
+Rotate=1
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/DescDE.txt b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/DescDE.txt
new file mode 100644
index 0000000..bae43a3
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/DescDE.txt
@@ -0,0 +1 @@
+Magisches Trinkgefäß. Bringt, wenn gefüllt, dem Träger Lebensenergie. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/DescUS.txt b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/DescUS.txt
new file mode 100644
index 0000000..9bd1347
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/DescUS.txt
@@ -0,0 +1 @@
+Magical container of liquids. Replenishes the bearer's energy. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/DefCore.txt b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/DefCore.txt
new file mode 100644
index 0000000..134d1d8
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/DefCore.txt
@@ -0,0 +1,22 @@
+[DefCore]
+id=EGBL
+Version=4,9,8
+Name=Goblet
+Category=C4D_Object|C4D_SelectMaterial|C4D_SelectKnowledge|C4D_SelectHomebase
+MaxUserSelect=10
+Timer=5
+TimerCall=FillCheck
+Width=8
+Height=9
+Offset=-4,-4
+Vertices=4
+VertexX=-4,4,-4,4
+VertexY=-4,-4,4,4
+VertexFriction=50,50,50,50
+Value=85
+Mass=10
+Components=METL=2
+Picture=0,9,35,48
+Rebuy=1
+Collectible=1
+Rotate=1
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/DescDE.txt b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/DescDE.txt
new file mode 100644
index 0000000..d360789
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/DescDE.txt
@@ -0,0 +1 @@
+Trinkgefäß. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/DescUS.txt b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/DescUS.txt
new file mode 100644
index 0000000..9bd1347
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/DescUS.txt
@@ -0,0 +1 @@
+Magical container of liquids. Replenishes the bearer's energy. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/Graphics.png b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/Graphics.png
new file mode 100644
index 0000000..2aaf5d5
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/Names.txt b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/Names.txt
new file mode 100644
index 0000000..4c85279
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Kelch
+US:Goblet \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/Script.c b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/Script.c
new file mode 100644
index 0000000..bdd3eeb
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/Script.c
@@ -0,0 +1,25 @@
+/*-- Leerer Kelch --*/
+
+#strict
+
+local iFill, iTimer;
+
+func FillCheck()
+ {
+ ++iTimer;
+ if(!(iTimer%5))
+ {
+ var iX = Sin(GetR(), RandomX(-4,8) );
+ var iY = -Cos(GetR(), RandomX(-4,4) );
+ if(!Contained())
+ CreateParticle("NoGravSpark", iX, iY,0,0,RandomX(25, 55),RGBa(255,255,0,120));
+ iTimer=0;
+ }
+ if(GetMaterial() == Material("Water"))
+ {
+ if((iFill+=ExtractMaterialAmount(0,2, Material("Water"), 6))>=10 )
+ ChangeDef(GBLT);
+ }
+ }
+
+public func IsMagicProduct() { return(true); }
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/Title.png b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/Title.png
new file mode 100644
index 0000000..bd299ab
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/EmptyGoblet.c4d/Title.png
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/Graphics.png b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/Graphics.png
new file mode 100644
index 0000000..cc8e6cf
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/Names.txt b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/Names.txt
new file mode 100644
index 0000000..4c85279
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Kelch
+US:Goblet \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/Script.c b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/Script.c
new file mode 100644
index 0000000..a040037
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/Script.c
@@ -0,0 +1,54 @@
+/*-- Kelch --*/
+
+#strict
+
+local iTimer;
+
+func Initialize()
+ {
+ return(1);
+ }
+
+func FillCheck()
+ {
+ if(!Contained())
+ if(Inside(GetR(), 20, 340))
+ Hit();
+ if(!(iTimer%5))
+ {
+ var iX = Sin(GetR(), RandomX(-4,4) );
+ var iY = -Cos(GetR(), RandomX(-4,1) );
+ if(!Contained())
+ CreateParticle("NoGravSpark", iX, iY,0,0,RandomX(25, 55),RGBa(255,255,0,120));
+ }
+ iTimer++;
+ if(iTimer>=10)
+ {
+ if(GetOCF(Contained()) & OCF_CrewMember())
+ DoEnergy(+15, Contained());
+ iTimer=0;
+ }
+ return(1);
+ }
+
+func Hit()
+ {
+ if(!GBackLiquid())
+ {
+ for(var i=15; i>0; i--)
+ {
+ var iX=Sin(GetR(), RandomX(4,8)), iY=-Cos(GetR(), RandomX(4,8)), iXDir=GetWind()*30/100, iYDir=-Cos(GetR()+RandomX(-2,2), Random(7));
+ InsertMaterial(Material("Water"), iX, iY, iXDir, iYDir);
+ }
+ SetEmpty();
+ }
+ }
+
+private func SetEmpty()
+ {
+ ChangeDef(EGBL);
+ return(1);
+ }
+
+// Mit Kelch: Aufwertung zum Magus
+public func GetRevaluationCombo() { return(MAGE); }
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/Title.png b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/Title.png
new file mode 100644
index 0000000..16aa9b6
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/OGoblet.c4d/Title.png
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Sky.jpg b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Sky.jpg
new file mode 100644
index 0000000..d060665
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Extra.c4d/Sky.jpg
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/ExtremeAmbiente.wav b/TemplePushing.c4s/CliffPushing.c4d/ExtremeAmbiente.wav
new file mode 100644
index 0000000..3a5f174
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/ExtremeAmbiente.wav
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/DefCore.txt b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/DefCore.txt
new file mode 100644
index 0000000..ab2cba9
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/DefCore.txt
@@ -0,0 +1,7 @@
+[DefCore]
+id=RAIN
+Name=Rain
+Version=4,9,5
+Category=C4D_StaticBack
+MaxUserSelect=1
+Value=1 \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/DescDE.txt b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/DescDE.txt
new file mode 100644
index 0000000..55fe10e
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/DescDE.txt
@@ -0,0 +1 @@
+Es regnet den ganzen Tag, aber irgendwie seh ich kein einzigen Tropfen Wasser! \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/DescUS.txt b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/DescUS.txt
new file mode 100644
index 0000000..ba66ef1
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/DescUS.txt
@@ -0,0 +1 @@
+It rains the whole time, but there is no only drop of water \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/FlintRain.c4d/DefCore.txt b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/FlintRain.c4d/DefCore.txt
new file mode 100644
index 0000000..3da4878
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/FlintRain.c4d/DefCore.txt
@@ -0,0 +1,8 @@
+[DefCore]
+id=FLRN
+Name=Sudden Death
+Version=4,9,5
+Category=C4D_StaticBack
+MaxUserSelect=1
+Value=1
+Picture=0,0,64,64 \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/FlintRain.c4d/DescDE.txt b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/FlintRain.c4d/DescDE.txt
new file mode 100644
index 0000000..d63d0bf
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/FlintRain.c4d/DescDE.txt
@@ -0,0 +1 @@
+Es regnet Flints und es entstehen Wurmlöcher die ins Nichts führen. Was will man mehr? \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/FlintRain.c4d/DescUS.txt b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/FlintRain.c4d/DescUS.txt
new file mode 100644
index 0000000..36b2f0e
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/FlintRain.c4d/DescUS.txt
@@ -0,0 +1 @@
+It's raining men! \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/FlintRain.c4d/Graphics.png b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/FlintRain.c4d/Graphics.png
new file mode 100644
index 0000000..c9c7c9b
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/FlintRain.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/FlintRain.c4d/Script.c b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/FlintRain.c4d/Script.c
new file mode 100644
index 0000000..8fdcf9d
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/FlintRain.c4d/Script.c
@@ -0,0 +1,23 @@
+/*-- Flintregen --*/
+
+#strict
+
+protected func Initialize() {
+ SetPosition(0,0);
+ AddEffect("Flnt",0,1,20,0,GetID());
+ return(1);
+}
+
+func FxFlntTimer()
+{
+ if (!Random(20))
+ {
+ //Wurmloch
+ CreateObject(MGWP,Random(LandscapeWidth()),Random(LandscapeHeight()))->Activate(FindObject());
+ //Und einmal Free-Shaken
+ ShakeFree(Random(LandscapeWidth()),Random(LandscapeHeight()),Random(100));
+ }
+ //Zum Schluss noch ein kleines Geschenk des Himmels
+ var flnt = CreateObject(SFLN,Random(LandscapeWidth()),0);
+ return(1);
+}
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Graphics.png b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Graphics.png
new file mode 100644
index 0000000..2ac7a18
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Names.txt b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Names.txt
new file mode 100644
index 0000000..d439aa7
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Regen
+US:Rain \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Rain.c4d/Graphics.png b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Rain.c4d/Graphics.png
new file mode 100644
index 0000000..5fd65db
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Rain.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Rain.c4d/Names.txt b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Rain.c4d/Names.txt
new file mode 100644
index 0000000..b836a4c
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Rain.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Regentropfen
+US:Raindrop
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Rain.c4d/Particle.txt b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Rain.c4d/Particle.txt
new file mode 100644
index 0000000..867e00a
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Rain.c4d/Particle.txt
@@ -0,0 +1,13 @@
+[Particle]
+Name=Rain
+MaxCount=600
+InitFn=StdInit
+ExecFn=StdExec
+CollisionFn=Die
+DrawFn=Std
+Face=0,0,64,64,-32,-32
+Delay=0
+GravityAcc=70
+RByV=1
+VertexCount=1
+Additive=0
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Rain.c4d/Rain.wav b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Rain.c4d/Rain.wav
new file mode 100644
index 0000000..aee9dd8
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Rain.c4d/Rain.wav
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Script.c b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Script.c
new file mode 100644
index 0000000..f31a3f9
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Script.c
@@ -0,0 +1,22 @@
+/*-- Regen --*/
+
+#strict
+
+protected func Initialize() {
+ SetPosition(0,0);
+ AddEffect("Rain",0,1,1,0,GetID());
+ SoundLevel("Rain",100);
+ return(1);
+}
+
+func FxRainTimer()
+{
+ var color = RGB(150,150,255);
+ if (FindObject(RCKF)) color = RGB(100,0,0);
+ for (var i;i<3;i++)
+ CreateParticle("Rain",Random(LandscapeWidth()),0,0,200,Random(300),RGB(170,170,255));
+ if (!Random(200)) Sound("Thunders*");
+ if (!Random(50) && FindObject(FRRN)) CreateObject(DFLM,Random(LandscapeWidth()));
+ return(1);
+}
+
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Thunders1.wav b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Thunders1.wav
new file mode 100644
index 0000000..0d4f247
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Thunders1.wav
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Thunders2.wav b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Thunders2.wav
new file mode 100644
index 0000000..02af2fe
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rain.c4d/Thunders2.wav
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Armageddon.c4d/DefCore.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Armageddon.c4d/DefCore.txt
new file mode 100644
index 0000000..0342fe5
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Armageddon.c4d/DefCore.txt
@@ -0,0 +1,9 @@
+[DefCore]
+id=FRRN
+Version=4,9,8
+Name=Armageddon
+Category=C4D_StaticBack|C4D_Rule
+MaxUserSelect=1
+Width=1
+Height=1
+Picture=0,0,64,64
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Armageddon.c4d/DescDE.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Armageddon.c4d/DescDE.txt
new file mode 100644
index 0000000..ecf7b67
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Armageddon.c4d/DescDE.txt
@@ -0,0 +1 @@
+Lässt es Feuer regnen und sichert den Nachschub an Terra-Flints. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Armageddon.c4d/DescUS.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Armageddon.c4d/DescUS.txt
new file mode 100644
index 0000000..98c639e
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Armageddon.c4d/DescUS.txt
@@ -0,0 +1 @@
+Let fire rains and creates flints in the inventory of each clonk. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Armageddon.c4d/Graphics.png b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Armageddon.c4d/Graphics.png
new file mode 100644
index 0000000..30e20a2
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Armageddon.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Armageddon.c4d/Script.c b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Armageddon.c4d/Script.c
new file mode 100644
index 0000000..e037351
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Armageddon.c4d/Script.c
@@ -0,0 +1,7 @@
+/*-- Feuerregen --*/
+
+#strict
+
+protected func Activate(iPlr) {
+ MessageWindow(GetDesc(),iPlr);
+}
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Deathmatch.c4d/DefCore.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Deathmatch.c4d/DefCore.txt
new file mode 100644
index 0000000..ed84dcf
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Deathmatch.c4d/DefCore.txt
@@ -0,0 +1,9 @@
+[DefCore]
+id=DTHM
+Version=4,9,8
+Name=Deathmatch
+Category=C4D_StaticBack|C4D_Rule
+MaxUserSelect=1
+Width=1
+Height=1
+Picture=0,0,64,64
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Deathmatch.c4d/DescDE.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Deathmatch.c4d/DescDE.txt
new file mode 100644
index 0000000..70921c2
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Deathmatch.c4d/DescDE.txt
@@ -0,0 +1 @@
+Jeder Spieler muss versuchen 10 Gegner zu töten, damit sein Team gewinnt. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Deathmatch.c4d/DescUS.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Deathmatch.c4d/DescUS.txt
new file mode 100644
index 0000000..c1eba93
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Deathmatch.c4d/DescUS.txt
@@ -0,0 +1 @@
+That player wich kills 10 enemys wins the game. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Deathmatch.c4d/Graphics.png b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Deathmatch.c4d/Graphics.png
new file mode 100644
index 0000000..2bfe0a4
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Deathmatch.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Deathmatch.c4d/Script.c b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Deathmatch.c4d/Script.c
new file mode 100644
index 0000000..cbb211d
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Deathmatch.c4d/Script.c
@@ -0,0 +1,7 @@
+/*-- Deathmatch --*/
+
+#strict
+
+protected func Activate(iPlr) {
+ MessageWindow(GetDesc(),iPlr);
+}
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/DescDE.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/DescDE.txt
new file mode 100644
index 0000000..bf4504d
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/DescDE.txt
@@ -0,0 +1 @@
+Regelobjekte bestimmen den Spielablauf und bieten in Einzelfällen Sonderoptionen. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/DescUS.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/DescUS.txt
new file mode 100644
index 0000000..022d0bf
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/DescUS.txt
@@ -0,0 +1 @@
+Rule objects affect general game play and in some cases offer special options. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/DefCore.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/DefCore.txt
new file mode 100644
index 0000000..1ddf7c5
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/DefCore.txt
@@ -0,0 +1,9 @@
+[DefCore]
+id=FYPG
+Version=4,9,8
+Name=Friendly Pushing
+Category=C4D_StaticBack|C4D_Rule
+MaxUserSelect=1
+Width=1
+Height=1
+Picture=0,0,64,64
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/DescDE.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/DescDE.txt
new file mode 100644
index 0000000..729840e
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/DescDE.txt
@@ -0,0 +1 @@
+Clonks können befreundete Spieler schubsen \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/DescUS.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/DescUS.txt
new file mode 100644
index 0000000..6b5d08d
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/DescUS.txt
@@ -0,0 +1 @@
+Clonks can push allied players. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/Graphics.png b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/Graphics.png
new file mode 100644
index 0000000..d97f792
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/Names.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/Names.txt
new file mode 100644
index 0000000..34d3e41
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Teamschubsen
+US:Friendly Pushing \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/Script.c b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/Script.c
new file mode 100644
index 0000000..fb43957
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/FriendlyPushing.c4d/Script.c
@@ -0,0 +1,5 @@
+/*-- Friendly Pushing --*/
+
+#strict
+
+protected func Activate(int plr) { MessageWindow(GetDesc(), plr); }
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/DefCore.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/DefCore.txt
new file mode 100644
index 0000000..f57caf8
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/DefCore.txt
@@ -0,0 +1,9 @@
+[DefCore]
+id=MSPW
+Version=4,9,8
+Name=MagicSpawnpoints
+Category=C4D_StaticBack|C4D_Rule
+MaxUserSelect=1
+Width=1
+Height=1
+Picture=0,0,64,64
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/DescDE.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/DescDE.txt
new file mode 100644
index 0000000..4370091
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/DescDE.txt
@@ -0,0 +1 @@
+Im Spiel finden sich Spawnpoints, die als sicherer Nachschub an Schriftrollen dienen. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/DescUS.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/DescUS.txt
new file mode 100644
index 0000000..f1ebe61
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/DescUS.txt
@@ -0,0 +1 @@
+Creates some spawnpoints in the game wich are creating scrolls. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/Graphics.png b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/Graphics.png
new file mode 100644
index 0000000..351d65c
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/ActMap.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/ActMap.txt
new file mode 100644
index 0000000..f29cad6
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/ActMap.txt
@@ -0,0 +1,4 @@
+[Action]
+Name=Invis
+Facet=10,0,10,10
+NextAction=Hold
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/DefCore.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/DefCore.txt
new file mode 100644
index 0000000..8016aaa
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/DefCore.txt
@@ -0,0 +1,12 @@
+[DefCore]
+id=MSPN
+Name=MagicSpawnpoint
+Version=4,9,5
+Category=25165825
+Width=10
+Height=10
+Offset=-5,-5
+Picture=0,0,10,10
+Timer=5
+TimerCall=Timer
+Collectible=1 \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/DescDE.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/DescDE.txt
new file mode 100644
index 0000000..9124f18
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/DescDE.txt
@@ -0,0 +1 @@
+Lässt Schriftrollen als Nachschub erscheinen. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/DescUS.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/DescUS.txt
new file mode 100644
index 0000000..ea35e3e
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/DescUS.txt
@@ -0,0 +1 @@
+Spawns scrolls. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/Graphics.png b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/Graphics.png
new file mode 100644
index 0000000..c5f3687
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/Names.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/Names.txt
new file mode 100644
index 0000000..a0ef292
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Magischer Spawnpunkt
+US:Magic Spawnpoint \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/Script.c b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/Script.c
new file mode 100644
index 0000000..4466a3a
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/Script.c
@@ -0,0 +1,177 @@
+/*-- Magic Spawnpoint --*/
+
+#strict
+
+local initialized, angle, player, spawntimer,WpID;
+
+func IsWaypoint() { return(1); }
+
+global func PlaceSpawnpoint(id idObj, int iX, int iY, int timer)
+{
+ var spwn = CreateObject(MSPN, iX, iY, -1);
+ spwn->CreateContents(idObj);
+ if(timer)
+ spwn->LocalN("spawntimer") = timer;
+ return(spwn);
+}
+
+protected func Initialize()
+{
+ if(Random(14)) WpID=SCRL;
+ else WpID=OGBT;
+ // Standardtimer = 1000 Frames
+ spawntimer = 1000;
+ SetClrModulation(RGBa(0,0,0,255));
+}
+
+protected func Timer()
+{
+ if(!player) player = CreateArray();
+ // Noch nicht initialisiert?
+ if(!initialized)
+ // Ein Inhaltsobjekt?
+ if(Contents())
+ // Initialisieren
+ return(Initialized());
+ // Kein Inhalt?
+ if(!Contents())
+ {
+ return(CreateContents(WpID));
+ }
+ // Tolle Effekt starten
+ angle += 10;
+ if(angle >= 360) angle = 0;
+ SetObjDrawTransform(1000, 0,0,0, 1000, Sin(angle, 8)*1000 - 2000,0, 1);
+ if(Random(2)) CreateParticle("NoGravSpark", RandomX(-5,5), RandomX(5,10), 0, -5, 25, RGBa(210, 210, 255, 100));
+ // Alle Timer runterzählen
+ DecreaseTimer();
+}
+
+private func Initialized()
+{
+ // Unsichtbar werden
+ SetAction("Invis");
+ // Objekt als Layer auflegen
+ SetGraphics(0, 0, GetID(Contents()), 1, 1);
+ // Transformation
+ SetObjDrawTransform(1000, 0,0,0, 1000, -5000,0, 1);
+ // Sammeleffekt starten
+// AddEffect("Collect", this(), 1, 3, this());
+ // Objekt(e) erzeugen
+ // Waffen-Bleiben-Regel
+//player = CreateArray();
+ // Initialisiert
+ initialized = true;
+}
+
+/* Timer runterzählen */
+
+private func DecreaseTimer()
+{
+ // Waffen-Bleiben-Regel
+ if(FindObject(WPST))
+ {
+ for(var i=0 ; i < GetPlayerCount() ; i++)
+ // Spielertimer runterzählen
+ {
+ if(player[GetPlayerByIndex(i)])
+ player[GetPlayerByIndex(i)] -= 5;
+ if(player[GetPlayerByIndex(i)] <= 0 && !(Local() & 2**GetPlayerByIndex(i)))
+ {
+ // Spieler kann das Objekt wieder einsammeln
+ player[GetPlayerByIndex(i)] = 0;
+ Local() += 2**GetPlayerByIndex(i);
+ }
+ }
+ }
+ else
+ {
+ // Timer runterzählen
+ player[0] -= 5;
+ if(player[0] <= 0)
+ {
+ // Objekt ist wieder da
+ player[0] = 0;
+ Local() = true;
+ SetVisibility(VIS_All());
+ }
+ }
+}
+
+/* Einsammel-Effekte */
+/*
+public func FxCollectTimer()
+{
+ // Ist ein Clonk hier? -> Einsammeln lassen
+ var pObj;
+ for(var pClonk in FindObjects(Find_AtPoint(), Find_OCF(OCF_CrewMember()), Find_OCF(OCF_CrewMember()), Find_NoContainer()))
+ if(CheckCollect(GetOwner(pClonk)))
+ {
+ pObj = FindContents();
+ // Kann der Clonk einsammeln?
+ Collect(pObj, pClonk);
+ if(Contained(pObj) == this()) RemoveObject(pObj);
+ else
+ {
+ Sound("Grab", 0, pClonk, 0, GetOwner(pClonk)+1);
+ Collected(GetOwner(pClonk));
+ }
+ }
+}*/
+
+public func RejectEntrance(object pClonk)
+{
+ // Objekt ist ein Clonk?
+ if(!(GetOCF(pClonk) & OCF_CrewMember) && !(pClonk->~CanCollectFromSpawnpoints())) return(1);
+ // Ich hab Contents?
+ if(!Contents()) return(1);
+ // Darf einsammeln
+ if(CheckCollect(GetOwner(pClonk)))
+ {
+ var pObj = Contents();
+ // Kann der Clonk einsammeln?
+ if(ObjectCount(0, 0, 0, 0, 0, 0, 0, 0, pClonk) >= 1)
+ return(1);
+
+ Collect(pObj, pClonk);
+ CreateContents(WpID);
+ Initialized();
+ if(Contained(pObj) == this()) RemoveObject(pObj);
+ else
+ {
+ Sound("Grab", 0, pClonk, 0, GetOwner(pClonk)+1);
+ Collected(GetOwner(pClonk));
+ }
+ }
+ return(1);
+}
+
+private func CheckCollect(int iPlr) // Überprüft, ob ein Spieler das Objekt einsammeln darf
+{
+ // Waffen-Bleiben-Regel
+ if(FindObject(WPST))
+ return(Local() & 2**iPlr);
+ else
+ return(Local());
+}
+
+private func Collected(int iPlr) // Regelt, dass ein Spieler das Objekt einsammelt
+{
+ // Waffen-Bleiben-Regel
+ if(FindObject(WPST))
+ {
+ // Spielertimer hochsetzen
+ player[iPlr] = spawntimer;
+ // Nicht mehr sichtbar für den Spieler
+ Local() -= 2**iPlr;
+ }
+ else
+ {
+ // Timer hochsetzen
+ player[0] = spawntimer;
+ // Nicht mehr einsammelbar
+ Local() = false;
+ // Nicht mehr sichtbar
+ SetVisibility(VIS_God());
+ }
+}
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/DefCore.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/DefCore.txt
new file mode 100644
index 0000000..f7f528c
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/DefCore.txt
@@ -0,0 +1,8 @@
+[DefCore]
+id=SMGC
+Version=4,9,8
+Name=SymbolMagic
+Category=C4D_StaticBack
+Width=1
+Height=1
+Picture=0,0,64,64
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/DescDE.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/DescDE.txt
new file mode 100644
index 0000000..e8257be
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/DescDE.txt
@@ -0,0 +1 @@
+Anstatt Gegenständen erscheinen nur Schriftrollen \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/DescUS.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/DescUS.txt
new file mode 100644
index 0000000..f2b1ba6
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/DescUS.txt
@@ -0,0 +1 @@
+Instead of objects spawnpoints contents just scrolls \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/Graphics.png b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/Graphics.png
new file mode 100644
index 0000000..0fa62b6
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/Names.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/Names.txt
new file mode 100644
index 0000000..8e9cb1f
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Magisches Schubsen
+US:Magical Push
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/Names.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/Names.txt
new file mode 100644
index 0000000..9d875f8
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Magischer Spawnpunktspawner
+US:Magic Spawnpoint Spawner
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/Script.c b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/Script.c
new file mode 100644
index 0000000..d1e7b39
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/Script.c
@@ -0,0 +1,29 @@
+/*-- Magische Spawnpoints --*/
+
+#strict
+
+protected func Activate(iPlr) {
+ MessageWindow(GetDesc(),iPlr);
+}
+
+func Initialize()
+{
+ SetGamma(RGB(5,5,10),RGB(80,80,150),RGB(200,200,255));
+ RemoveAll(SPNP);
+ CreateObject(MSPN,550,282);
+ CreateObject(MSPN,603,205);
+ CreateObject(MSPN,682,282);
+ CreateObject(MSPN,784,227);
+ CreateObject(MSPN,912,168);
+ CreateObject(MSPN,1040,120);
+ CreateObject(MSPN,651,449);
+ CreateObject(MSPN,432,438);
+ CreateObject(MSPN,170,118);
+ CreateObject(MSPN,299,170);
+ CreateObject(MSPN,435,230);
+ CreateObject(MSPN,1175,290);
+ CreateObject(MSPN,105,380);
+ CreateObject(MSPN,910,400);
+ CreateObject(MSPN,560,610);
+ return(1);
+} \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/DefCore.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/DefCore.txt
new file mode 100644
index 0000000..4515779
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/DefCore.txt
@@ -0,0 +1,9 @@
+[DefCore]
+id=JSTS
+Version=4,9,8
+Name=JustScrolls
+Category=C4D_StaticBack|C4D_Rule
+MaxUserSelect=1
+Width=1
+Height=1
+Picture=0,0,64,64
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/DescDE.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/DescDE.txt
new file mode 100644
index 0000000..96cfed2
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/DescDE.txt
@@ -0,0 +1 @@
+In den Spawnpoints erscheinen nur Schriftrollen. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/DescUS.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/DescUS.txt
new file mode 100644
index 0000000..4fb171e
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/DescUS.txt
@@ -0,0 +1 @@
+Spawnpoints contents just magic scrolls. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/Graphics.png b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/Graphics.png
new file mode 100644
index 0000000..351d65c
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/MagicalPushing.c4d/DefCore.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/MagicalPushing.c4d/DefCore.txt
new file mode 100644
index 0000000..f7f528c
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/MagicalPushing.c4d/DefCore.txt
@@ -0,0 +1,8 @@
+[DefCore]
+id=SMGC
+Version=4,9,8
+Name=SymbolMagic
+Category=C4D_StaticBack
+Width=1
+Height=1
+Picture=0,0,64,64
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/MagicalPushing.c4d/DescDE.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/MagicalPushing.c4d/DescDE.txt
new file mode 100644
index 0000000..e8257be
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/MagicalPushing.c4d/DescDE.txt
@@ -0,0 +1 @@
+Anstatt Gegenständen erscheinen nur Schriftrollen \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/MagicalPushing.c4d/DescUS.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/MagicalPushing.c4d/DescUS.txt
new file mode 100644
index 0000000..f2b1ba6
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/MagicalPushing.c4d/DescUS.txt
@@ -0,0 +1 @@
+Instead of objects spawnpoints contents just scrolls \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/MagicalPushing.c4d/Graphics.png b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/MagicalPushing.c4d/Graphics.png
new file mode 100644
index 0000000..0fa62b6
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/MagicalPushing.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/MagicalPushing.c4d/Names.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/MagicalPushing.c4d/Names.txt
new file mode 100644
index 0000000..8e9cb1f
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/MagicalPushing.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Magisches Schubsen
+US:Magical Push
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/Names.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/Names.txt
new file mode 100644
index 0000000..ac705b1
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Nur Schriftrollen
+US:Only scrolls \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/Script.c b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/Script.c
new file mode 100644
index 0000000..43af0ec
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/OnlyScrolls.c4d/Script.c
@@ -0,0 +1,21 @@
+/*-- Nur Schriftrollen --*/
+
+#strict
+
+protected func Activate(iPlr) {
+ MessageWindow(GetDesc(),iPlr);
+}
+
+func Initialize()
+{
+SetGamma(RGB(5,5,10),RGB(80,80,150),RGB(200,200,255));
+ var pObj;
+ if (!FindObject(SPNP)) SPWN->Initialize();
+ while (pObj = FindObject(SPNP,0,0,0,0,0,0,0,0,pObj))
+ {
+ pObj->Initialize();
+ RemoveObject(FindContents(0,pObj));
+ CreateContents(SCRL,pObj);
+ }
+return(10);
+}
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/DefCore.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/DefCore.txt
new file mode 100644
index 0000000..41af2f9
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/DefCore.txt
@@ -0,0 +1,9 @@
+[DefCore]
+id=SPWN
+Version=4,9,8
+Name=Spawnpoint Spawner
+Category=C4D_StaticBack|C4D_Rule
+MaxUserSelect=1
+Width=1
+Height=1
+Picture=0,0,64,64
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/DescDE.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/DescDE.txt
new file mode 100644
index 0000000..3c5c1ff
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/DescDE.txt
@@ -0,0 +1 @@
+Im Spiel finden sich Spawnpoints, die als sicherer Nachschub an Waffen und Tränken dienen. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/DescUS.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/DescUS.txt
new file mode 100644
index 0000000..7a978dc
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/DescUS.txt
@@ -0,0 +1 @@
+Creates some spawnpoints in the game wich are creating weapons and potions. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Graphics.png b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Graphics.png
new file mode 100644
index 0000000..1543a79
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Names.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Names.txt
new file mode 100644
index 0000000..86138a6
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Spawnpointspawner
+US:Spawnpoint Spawner
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Script.c b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Script.c
new file mode 100644
index 0000000..a762af8
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Script.c
@@ -0,0 +1,28 @@
+/*-- Spawnpoints --*/
+
+#strict
+
+protected func Activate(iPlr) {
+ MessageWindow(GetDesc(),iPlr);
+}
+
+func Initialize()
+{
+ RemoveAll(MSPN);
+ CreateObject(SPNP,550,282);
+ CreateObject(SPNP,603,205);
+ CreateObject(SPNP,682,282);
+ CreateObject(SPNP,784,227);
+ CreateObject(SPNP,912,168);
+ CreateObject(SPNP,1040,120);
+ CreateObject(SPNP,651,449);
+ CreateObject(SPNP,432,438);
+ CreateObject(SPNP,170,118);
+ CreateObject(SPNP,299,170);
+ CreateObject(SPNP,435,230);
+ CreateObject(SPNP,1175,290);
+ CreateObject(SPNP,105,380);
+ CreateObject(SPNP,910,400);
+ CreateObject(SPNP,560,610);
+ return(1);
+} \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/ActMap.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/ActMap.txt
new file mode 100644
index 0000000..f29cad6
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/ActMap.txt
@@ -0,0 +1,4 @@
+[Action]
+Name=Invis
+Facet=10,0,10,10
+NextAction=Hold
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/DefCore.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/DefCore.txt
new file mode 100644
index 0000000..d95cd88
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/DefCore.txt
@@ -0,0 +1,12 @@
+[DefCore]
+id=SPNP
+Name=Spawnpoint
+Version=4,9,5
+Category=25165825
+Width=10
+Height=10
+Offset=-5,-5
+Picture=0,0,10,10
+Timer=5
+TimerCall=Timer
+Collectible=1 \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/DescDE.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/DescDE.txt
new file mode 100644
index 0000000..b469ce9
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/DescDE.txt
@@ -0,0 +1 @@
+Lässt Gegenstände als Nachschub erscheinen. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/DescUS.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/DescUS.txt
new file mode 100644
index 0000000..3308b95
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/DescUS.txt
@@ -0,0 +1 @@
+Spawns objects. \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/Graphics.png b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/Graphics.png
new file mode 100644
index 0000000..c5f3687
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/Names.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/Names.txt
new file mode 100644
index 0000000..c6a1143
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Spawnpunkt
+US:Spawnpoint \ No newline at end of file
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/Script.c b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/Script.c
new file mode 100644
index 0000000..6172d25
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Spawnpoints.c4d/Spawnpoint.c4d/Script.c
@@ -0,0 +1,177 @@
+/*-- Spawnpoint --*/
+
+#strict
+
+local initialized, angle, player, spawntimer,WpID;
+
+func IsWaypoint() { return(1); }
+
+global func PlaceSpawnpoint(id idObj, int iX, int iY, int timer)
+{
+ var spwn = CreateObject(SPNP, iX, iY, -1);
+ spwn->CreateContents(idObj);
+ if(timer)
+ spwn->LocalN("spawntimer") = timer;
+ return(spwn);
+}
+
+protected func Initialize()
+{
+ if(Random(4)) WpID = [FLNT,SCRL,SFLN,ROCK];
+ else WpID = [EFLN,STFN,FBMP];
+ // Standardtimer = 750 Frames
+ spawntimer = 750;
+ SetClrModulation(RGBa(0,0,0,255));
+}
+
+protected func Timer()
+{
+ if(!player) player = CreateArray();
+ // Noch nicht initialisiert?
+ if(!initialized)
+ // Ein Inhaltsobjekt?
+ if(Contents())
+ // Initialisieren
+ return(Initialized());
+ // Kein Inhalt?
+ if(!Contents())
+ {
+ return(CreateContents(WpID[Random(GetLength(WpID))]));
+ }
+ // Tolle Effekt starten
+ angle += 10;
+ if(angle >= 360) angle = 0;
+ SetObjDrawTransform(1000, 0,0,0, 1000, Sin(angle, 8)*1000 - 2000,0, 1);
+ if(Random(2)) CreateParticle("NoGravSpark", RandomX(-5,5), RandomX(5,10), 0, -5, 25, RGBa(210, 210, 255, 100));
+ // Alle Timer runterzählen
+ DecreaseTimer();
+}
+
+private func Initialized()
+{
+ // Unsichtbar werden
+ SetAction("Invis");
+ // Objekt als Layer auflegen
+ SetGraphics(0, 0, GetID(Contents()), 1, 1);
+ // Transformation
+ SetObjDrawTransform(1000, 0,0,0, 1000, -5000,0, 1);
+ // Sammeleffekt starten
+// AddEffect("Collect", this(), 1, 3, this());
+ // Objekt(e) erzeugen
+ // Waffen-Bleiben-Regel
+//player = CreateArray();
+ // Initialisiert
+ initialized = true;
+}
+
+/* Timer runterzählen */
+
+private func DecreaseTimer()
+{
+ // Waffen-Bleiben-Regel
+ if(FindObject(WPST))
+ {
+ for(var i=0 ; i < GetPlayerCount() ; i++)
+ // Spielertimer runterzählen
+ {
+ if(player[GetPlayerByIndex(i)])
+ player[GetPlayerByIndex(i)] -= 5;
+ if(player[GetPlayerByIndex(i)] <= 0 && !(Local() & 2**GetPlayerByIndex(i)))
+ {
+ // Spieler kann das Objekt wieder einsammeln
+ player[GetPlayerByIndex(i)] = 0;
+ Local() += 2**GetPlayerByIndex(i);
+ }
+ }
+ }
+ else
+ {
+ // Timer runterzählen
+ player[0] -= 5;
+ if(player[0] <= 0)
+ {
+ // Objekt ist wieder da
+ player[0] = 0;
+ Local() = true;
+ SetVisibility(VIS_All());
+ }
+ }
+}
+
+/* Einsammel-Effekte */
+/*
+public func FxCollectTimer()
+{
+ // Ist ein Clonk hier? -> Einsammeln lassen
+ var pObj;
+ for(var pClonk in FindObjects(Find_AtPoint(), Find_OCF(OCF_CrewMember()), Find_OCF(OCF_CrewMember()), Find_NoContainer()))
+ if(CheckCollect(GetOwner(pClonk)))
+ {
+ pObj = FindContents();
+ // Kann der Clonk einsammeln?
+ Collect(pObj, pClonk);
+ if(Contained(pObj) == this()) RemoveObject(pObj);
+ else
+ {
+ Sound("Grab", 0, pClonk, 0, GetOwner(pClonk)+1);
+ Collected(GetOwner(pClonk));
+ }
+ }
+}*/
+
+public func RejectEntrance(object pClonk)
+{
+ // Objekt ist ein Clonk?
+ if(!(GetOCF(pClonk) & OCF_CrewMember) && !(pClonk->~CanCollectFromSpawnpoints())) return(1);
+ // Ich hab Contents?
+ if(!Contents()) return(1);
+ // Darf einsammeln
+ if(CheckCollect(GetOwner(pClonk)))
+ {
+ var pObj = Contents();
+ // Kann der Clonk einsammeln?
+ if(ObjectCount(0, 0, 0, 0, 0, 0, 0, 0, pClonk) >= 1)
+ return(1);
+
+ Collect(pObj, pClonk);
+ CreateContents(WpID[Random(GetLength(WpID))]);
+ Initialized();
+ if(Contained(pObj) == this()) RemoveObject(pObj);
+ else
+ {
+ Sound("Grab", 0, pClonk, 0, GetOwner(pClonk)+1);
+ Collected(GetOwner(pClonk));
+ }
+ }
+ return(1);
+}
+
+private func CheckCollect(int iPlr) // Überprüft, ob ein Spieler das Objekt einsammeln darf
+{
+ // Waffen-Bleiben-Regel
+ if(FindObject(WPST))
+ return(Local() & 2**iPlr);
+ else
+ return(Local());
+}
+
+private func Collected(int iPlr) // Regelt, dass ein Spieler das Objekt einsammelt
+{
+ // Waffen-Bleiben-Regel
+ if(FindObject(WPST))
+ {
+ // Spielertimer hochsetzen
+ player[iPlr] = spawntimer;
+ // Nicht mehr sichtbar für den Spieler
+ Local() -= 2**iPlr;
+ }
+ else
+ {
+ // Timer hochsetzen
+ player[0] = spawntimer;
+ // Nicht mehr einsammelbar
+ Local() = false;
+ // Nicht mehr sichtbar
+ SetVisibility(VIS_God());
+ }
+}
diff --git a/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Title.txt b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Title.txt
new file mode 100644
index 0000000..0cec1dc
--- /dev/null
+++ b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/Title.txt
@@ -0,0 +1,2 @@
+DE:Regeln
+US:Rules