diff options
Diffstat (limited to 'TemplePushing.c4s/Locals.c4d/Sonne.c4d')
| -rw-r--r-- | TemplePushing.c4s/Locals.c4d/Sonne.c4d/ActMap.txt | 17 | ||||
| -rw-r--r-- | TemplePushing.c4s/Locals.c4d/Sonne.c4d/DefCore.txt | 11 | ||||
| -rw-r--r-- | TemplePushing.c4s/Locals.c4d/Sonne.c4d/DescDE.txt | 1 | ||||
| -rw-r--r-- | TemplePushing.c4s/Locals.c4d/Sonne.c4d/DescUS.txt | 1 | ||||
| -rw-r--r-- | TemplePushing.c4s/Locals.c4d/Sonne.c4d/Graphics.png | bin | 48292 -> 0 bytes | |||
| -rw-r--r-- | TemplePushing.c4s/Locals.c4d/Sonne.c4d/Names.txt | 2 | ||||
| -rw-r--r-- | TemplePushing.c4s/Locals.c4d/Sonne.c4d/Script.c | 191 |
7 files changed, 0 insertions, 223 deletions
diff --git a/TemplePushing.c4s/Locals.c4d/Sonne.c4d/ActMap.txt b/TemplePushing.c4s/Locals.c4d/Sonne.c4d/ActMap.txt deleted file mode 100644 index 03847bb..0000000 --- a/TemplePushing.c4s/Locals.c4d/Sonne.c4d/ActMap.txt +++ /dev/null @@ -1,17 +0,0 @@ -[Action] -Name=SeiBrav -Procedure=FLOAT -Length=1 -Delay=1 -EndCall=TuWasBraves -NextAction=SeiBrav -Facet=0,0,192,192,-96,-96 - -[Action] -Name=IchWillNurSpielerZaehlen -Procedure=FLOAT -Length=1 -Delay=10 -FacetBase=0 -EndCall=PruefeAlleSpieler -NextAction=IchWillNurSpielerZaehlen
\ No newline at end of file diff --git a/TemplePushing.c4s/Locals.c4d/Sonne.c4d/DefCore.txt b/TemplePushing.c4s/Locals.c4d/Sonne.c4d/DefCore.txt deleted file mode 100644 index 0781943..0000000 --- a/TemplePushing.c4s/Locals.c4d/Sonne.c4d/DefCore.txt +++ /dev/null @@ -1,11 +0,0 @@ -[DefCore] -id=SONE -Version=4,9,8 -Name=Sun -Category=C4D_StaticBack|C4D_Environment -MaxUserSelect=1 -Width=1 -Height=1 -Offset=-1,-1 -Picture=192,0,64,64 -BlitMode=1 diff --git a/TemplePushing.c4s/Locals.c4d/Sonne.c4d/DescDE.txt b/TemplePushing.c4s/Locals.c4d/Sonne.c4d/DescDE.txt deleted file mode 100644 index e2177c9..0000000 --- a/TemplePushing.c4s/Locals.c4d/Sonne.c4d/DescDE.txt +++ /dev/null @@ -1 +0,0 @@ -Die Sonne. Sie scheint und zieht über den Himmel.
\ No newline at end of file diff --git a/TemplePushing.c4s/Locals.c4d/Sonne.c4d/DescUS.txt b/TemplePushing.c4s/Locals.c4d/Sonne.c4d/DescUS.txt deleted file mode 100644 index d99b86e..0000000 --- a/TemplePushing.c4s/Locals.c4d/Sonne.c4d/DescUS.txt +++ /dev/null @@ -1 +0,0 @@ -The sun shines and wanders across the sky.
\ No newline at end of file diff --git a/TemplePushing.c4s/Locals.c4d/Sonne.c4d/Graphics.png b/TemplePushing.c4s/Locals.c4d/Sonne.c4d/Graphics.png Binary files differdeleted file mode 100644 index 62add4d..0000000 --- a/TemplePushing.c4s/Locals.c4d/Sonne.c4d/Graphics.png +++ /dev/null diff --git a/TemplePushing.c4s/Locals.c4d/Sonne.c4d/Names.txt b/TemplePushing.c4s/Locals.c4d/Sonne.c4d/Names.txt deleted file mode 100644 index e88af87..0000000 --- a/TemplePushing.c4s/Locals.c4d/Sonne.c4d/Names.txt +++ /dev/null @@ -1,2 +0,0 @@ -DE:Sonne -US:Sun diff --git a/TemplePushing.c4s/Locals.c4d/Sonne.c4d/Script.c b/TemplePushing.c4s/Locals.c4d/Sonne.c4d/Script.c deleted file mode 100644 index ded97c5..0000000 --- a/TemplePushing.c4s/Locals.c4d/Sonne.c4d/Script.c +++ /dev/null @@ -1,191 +0,0 @@ -/*-- Sonne --*/ - -#strict - -local SonneX, SonneY; - -func IsLight() { return(1); } - -// Initialisierung -protected func Initialize() -{ - // In den Hintergrund mit dir. - SetCategory(C4D_StaticBack()|C4D_Background()); - // Action setzen - SetAction("SeiBrav"); - // Nur für den Herrn und Meister sichtbar - SetVisibility (VIS_Owner(), this()); - if(!FindObject(GetID())) - // Das erste Sonnen-Objekt prüft nur, dass jeder Spieler auch sein Umweltobjekt hat - { - SetOwner(-1,this()); // Unparteiisch sein! - SetCategory(1,this()); // Nicht bewegen - SetAction("IchWillNurSpielerZaehlen"); - return(); - } -} - -// Sucht einen Spieler, der keine Sonne hat (-1 für Erfolglos) -private func FindeFreienSpieler() -{ - for(var i=0; i<16; ++i) - if(GetPlayerName(i)&&(!FindObjectOwner(GetID(),i))) - return(i); - return(-1); -} - -// Prüft alle Spieler durch, ob denn auch jeder seine Sonne hat -protected func PruefeAlleSpieler() -{ - var FreierSpieler; - while((FreierSpieler=FindeFreienSpieler())!=-1) - ErstelleLenseflare(FreierSpieler); -} - -// Erstellt eine Sonne und weist ihm einen Besitzer zu -private func ErstelleLenseflare(FuerDiesenSpieler) -{ - CreateObject(GetID(),0,0,FuerDiesenSpieler); -} - - -// Von "SeiBrav" aufgerufen -protected func TuWasBraves() -{ - // Bei vorhandenem Lenseflare (mit integrierter Sonne) kann dieses Objekt gelöscht werden - if(ObjectCount(LENS)) - { - RemoveObject(this()); - return(); - } - // Hat es seinen Besitzer verloren? :( - if((!GetPlayerName(GetOwner())) || GetOwner()==-1) - { - RemoveObject(this()); - return(); - } - // Sonnenposition anpassen - BerechneSonne(); - SetPosition(SonneX,SonneY); - // Nachts ausblenden - if(IsDay()) - SetVisibility (VIS_Owner()); - else - SetVisibility (VIS_None()); - // Sofern der Spieler alleine ist, blenden - var VektorDist=GibVektorDist(GetOwner()); - if(GetPlayerCount()==1) - if(IsDay()) - { - var Gelbstich = BoundBy((500-VektorDist)/5,0,100); // Prozentangabe 0 = weit weg, 100 = nahe; 500 Pixel sind dabei "weit weg" - SetGamma (RGB(000+(30*Gelbstich)/100,000+(30*Gelbstich)/100,000), - RGB(128+(60*Gelbstich)/100,128+(60*Gelbstich)/100,128), - RGB(255,255,255), GammaRampe_Lenseflare()); - } -} - -// Interner Kruscht! -// Bildschirmmittelpunkt -private func GibMittelpunktX(iSpieler) -{ - if(IsNetwork()) - return(GetX(GetCursor(iSpieler))); - else - return(GetPlrViewX(iSpieler)); -} - -private func GibMittelpunktY(iSpieler) -{ - if(IsNetwork()) - return(GetY(GetCursor(iSpieler))); - else - return(GetPlrViewY(iSpieler)); -} - -// Sonnenkoordinate -private func BerechneSonne() -{ - BerechneSonneX(); - BerechneSonneY(); -} -private func BerechneSonneX() -{ - var ZeitObjekt = FindObject(TIME); - if(!ZeitObjekt) - SonneX = LandscapeWidth() / 2; - else - { - // Da die Winkelangaben aufgrund ihres Integer-Wesens zu ungenau für eine schöne Laufbahn sind - // muss hier getrickst werden. Über Sin/Cos werden die Eckpunkte eines n-Ecks errechnet, auf den Linien - // dazwischen fährt dann die Sonne. - var Winkel = GibTageszeit()*360/100 +90; - var VonEck = LandscapeWidth()/2+Cos(Winkel,LandscapeWidth()/2); - Winkel = (GibTageszeit()+1)*360/100 +90; - var ZuEck = LandscapeWidth()/2+Cos(Winkel,LandscapeWidth()/2); - // Wieviele Ticks verstreichen während einem "Punkt" bei Tageszeit? - // Sprich: Wieviele Zwischenschritte liegen zwischen VonEck und ZuEck? - var Zwischenschritte = PrivateCall(ZeitObjekt,"TimeResolution") / 100; - // Schrittweite in 1/100000 Pixel - var Schrittweite = (ZuEck-VonEck)*100000 / (Zwischenschritte*TIME_Tick()); - // Wieviel TIME-Ticks sind seit der letzten "vollen" Tageszeit vergangen? - var Vergangen = Local(1, ZeitObjekt) - GibTageszeit()*100; - Vergangen=Vergangen*TIME_Tick()+FrameCounter()%10; - SonneX = VonEck + (Vergangen*Schrittweite)/100000; // 100000 = 100000 wegen der 1/100000 Schrittweite - } -} - -private func BerechneSonneY() -{ - var ZeitObjekt = FindObject(TIME); - if(!ZeitObjekt) - SonneY = 150; - else - { - // Da die Winkelangaben aufgrund ihres Integer-Wesens zu ungenau für eine schöne Laufbahn sind - // muss hier getrickst werden. Über Sin/Cos werden die Eckpunkte eines n-Ecks errechnet, auf den Linien - // dazwischen fährt dann die Sonne. - var Winkel = GibTageszeit()*360/100 +90; - var VonEck = GetHorizonHeight(0)-Sin(Winkel,300)-50; - Winkel = (GibTageszeit()+1)*360/100 +90; - var ZuEck = GetHorizonHeight(0)-Sin(Winkel,300)-50; - // Wieviele Ticks verstreichen während einem "Punkt" bei Tageszeit? - // Sprich: Wieviele Zwischenschritte liegen zwischen VonEck und ZuEck? - var Zwischenschritte = PrivateCall(ZeitObjekt,"TimeResolution") / 100; - // Schrittweite in 1/100000 Pixel - var Schrittweite = (ZuEck-VonEck)*100000 / Zwischenschritte; - Schrittweite/=TIME_Tick(); // Jedes Time-Tick besteht aus 10 einzelnen Ticks - // Wieviel TIME-Ticks sind seit der letzten "vollen" Tageszeit vergangen? - var Vergangen = Local(1, ZeitObjekt) - GibTageszeit()*100; - Vergangen=Vergangen*TIME_Tick()+FrameCounter()%10; - SonneY = VonEck + (Vergangen*Schrittweite)/100000; // 100000 = 100000 wegen der 1/100000 Schrittweite - } -} - -private func TIME_Tick() -{ - return(10); -} - -private func GibTageszeit() -{ - var ZeitObjekt = FindObject(TIME); - if (!ZeitObjekt) return(-1); - return(Local(1, ZeitObjekt)*100/PrivateCall(ZeitObjekt,"TimeResolution")); // 0-100=Mittag-Mittag -} - -private func GibVektorDist(iSpieler) -{ - return(Distance(GibMittelpunktX(iSpieler),GibMittelpunktY(iSpieler),SonneX,SonneY)); -} - -// Bodenhöhe. Aus dem Schmetterling übernommen und aktuelle Syntax und global gemacht und so. k? -private func GetHorizonHeight(iX) -{ - var iY = - GetY(); // Zu globaler Koordinate wandeln - iX -= GetX(); // Zu globaler Koordinate wandeln - while ( (iY<LandscapeHeight())&&(!GBackSemiSolid(iX,iY))) - { - iY+=10; - } - return(iY+GetY()); -}
\ No newline at end of file |
