/*-- 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); }