summaryrefslogtreecommitdiffstats
path: root/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d
diff options
context:
space:
mode:
Diffstat (limited to 'TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d')
-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
18 files changed, 251 insertions, 0 deletions
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