From f5a80c493dcefbc8f45987b8fd454d974f739cf7 Mon Sep 17 00:00:00 2001 From: Jan <> Date: Mon, 2 Feb 2015 17:05:03 +0100 Subject: TemplePushBeta.c4s --- .../Locals.c4d/Lenseflare.c4d/Script.c | 183 +++++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 TemplePushing.c4s/Locals.c4d/Lenseflare.c4d/Script.c (limited to 'TemplePushing.c4s/Locals.c4d/Lenseflare.c4d/Script.c') diff --git a/TemplePushing.c4s/Locals.c4d/Lenseflare.c4d/Script.c b/TemplePushing.c4s/Locals.c4d/Lenseflare.c4d/Script.c new file mode 100644 index 0000000..ed5fbf2 --- /dev/null +++ b/TemplePushing.c4s/Locals.c4d/Lenseflare.c4d/Script.c @@ -0,0 +1,183 @@ +/*-- Lenseflare --*/ +// Sonnenskript includieren +#include SONE + +#strict + +local SonneX, SonneY; + +// Initialisierung +protected func Initialize() +{ + // Nur für den Herrn und Meister sichtbar + SetVisibility (VIS_Owner(), this()); + if(!FindObject(GetID())) + // Das erste Lenseflare-Objekt prüft nur, dass jeder Spieler auch sein Umweltobjekt hat + { + SetOwner(-1,this()); // Unparteiisch sein! + SetCategory(1 | C4D_MouseIgnore(),this()); // Nicht bewegen + SetAction("IchWillNurSpielerZaehlen"); + return(); + } +} + +// Initialisierung als Haupt-Lenseflare +public func WerdeHauptlenseflareFuerDeinenHerrn() +{ + SetCategory(C4D_StaticBack()|C4D_Background()| C4D_MouseIgnore()); + for(var i=0; iWerdeHauptlenseflareFuerDeinenHerrn(); +} + + +// Von "SeiBrav" aufgerufen +protected func TuWasBraves() +{ + // Hat es seinen Besitzer verloren? :( + if((!GetPlayerName(GetOwner())) || GetOwner()==-1) + { + for(var i=0; i Rotstich + { + var RotStich = Cos(Helligkeit*4,500); + Grun -= RotStich/2; + Blau -= RotStich; + } + // Nun die Farbe berechnen + return(RGB((255*Rot)/1000,(255*Grun)/1000,(255*Blau)/1000)); +} + +private func GibFarbMod() +{ + return((255*GibHelligkeit())/100); +} + +private func GibAlphaMod(iEntfernung) +{ + var Staerke = BoundBy((2000-iEntfernung)/20,75,100); // Prozentangabe 75 = weit weg, 100 = nahe; 2000 Pixel sind dabei "weit weg" + return(255-(255*Staerke)/100); +} + +// Genutzte Gammarampe +global func GammaRampe_Lenseflare() +{ + return(2); +} + +// Den (unskalierten) Vektor. Er wird skaliert, um die Lenseflare-Positionen zu errechnen +private func GibVektorX(iSpieler) +{ + return(GibMittelpunktX(iSpieler) - SonneX); +} + +private func GibVektorY(iSpieler) +{ + return(GibMittelpunktY(iSpieler) - SonneY); +} + +// Skaliere den Vektor mit der gewünschten Entfernung Lenseflare->Sonne +private func GibLensPosX(iEntfernung, VektorX, VektorDist) +{ + // Skalierung in Promille + var Skalierung = (iEntfernung*1000) / VektorDist; + var TempX = (VektorX * Skalierung)/1000; + return(TempX + SonneX); +} + +private func GibLensPosY(iEntfernung, VektorY, VektorDist) +{ + // Skalierung in Promille + var Skalierung = (iEntfernung*1000) / VektorDist; + var TempY = (VektorY * Skalierung)/1000; + return(TempY + SonneY); +} + +// Wieviele Lenseflares hätten's denn gerne +private func MIJON() +{ + // etwa alle 50 Pixel einen Lenseflare + return(LandscapeWidth() / 2 / 50); +} \ No newline at end of file -- cgit v1.2.3-54-g00ecf