From f5a80c493dcefbc8f45987b8fd454d974f739cf7 Mon Sep 17 00:00:00 2001 From: Jan <> Date: Mon, 2 Feb 2015 17:05:03 +0100 Subject: TemplePushBeta.c4s --- .../Rules.c4d/MagicSpawnpoints.c4d/DefCore.txt | 9 ++ .../Rules.c4d/MagicSpawnpoints.c4d/DescDE.txt | 1 + .../Rules.c4d/MagicSpawnpoints.c4d/DescUS.txt | 1 + .../Rules.c4d/MagicSpawnpoints.c4d/Graphics.png | Bin 0 -> 10487 bytes .../MagicSpawnpoint.c4d/ActMap.txt | 4 + .../MagicSpawnpoint.c4d/DefCore.txt | 12 ++ .../MagicSpawnpoint.c4d/DescDE.txt | 1 + .../MagicSpawnpoint.c4d/DescUS.txt | 1 + .../MagicSpawnpoint.c4d/Graphics.png | Bin 0 -> 206 bytes .../MagicSpawnpoint.c4d/Names.txt | 2 + .../MagicSpawnpoint.c4d/Script.c | 177 +++++++++++++++++++++ .../MagicalPushing.c4d/DefCore.txt | 8 + .../MagicalPushing.c4d/DescDE.txt | 1 + .../MagicalPushing.c4d/DescUS.txt | 1 + .../MagicalPushing.c4d/Graphics.png | Bin 0 -> 9715 bytes .../MagicalPushing.c4d/Names.txt | 2 + .../Rules.c4d/MagicSpawnpoints.c4d/Names.txt | 2 + .../Rules.c4d/MagicSpawnpoints.c4d/Script.c | 29 ++++ 18 files changed, 251 insertions(+) create mode 100644 TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/DefCore.txt create mode 100644 TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/DescDE.txt create mode 100644 TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/DescUS.txt create mode 100644 TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/Graphics.png create mode 100644 TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/ActMap.txt create mode 100644 TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/DefCore.txt create mode 100644 TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/DescDE.txt create mode 100644 TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/DescUS.txt create mode 100644 TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/Graphics.png create mode 100644 TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/Names.txt create mode 100644 TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/Script.c create mode 100644 TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/DefCore.txt create mode 100644 TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/DescDE.txt create mode 100644 TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/DescUS.txt create mode 100644 TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/Graphics.png create mode 100644 TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/Names.txt create mode 100644 TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/Names.txt create mode 100644 TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/Script.c (limited to 'TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d') 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 Binary files /dev/null and b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/Graphics.png 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 Binary files /dev/null and b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicSpawnpoint.c4d/Graphics.png 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 Binary files /dev/null and b/TemplePushing.c4s/CliffPushing.c4d/Rules.c4d/MagicSpawnpoints.c4d/MagicalPushing.c4d/Graphics.png 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 -- cgit v1.2.3-54-g00ecf