1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
/* Adjust Lenseflare effect */
#strict
#appendto LENS
protected func TuWasBraves()
{
// Hat es seinen Besitzer verloren? :(
if((!GetPlayerName(GetOwner())) || GetOwner()==-1)
{
for(var i=0; i<MIJON(); ++i)
RemoveObject(Local(i));
RemoveObject(this());
return();
}
// Sonnenposition anpassen
BerechneSonne();
SetPosition(SonneX,SonneY);
// unskalierten Vektor ermitteln
var VektorX=GibVektorX(GetOwner());
var VektorY=GibVektorY(GetOwner());
var VektorDist=GibVektorDist(GetOwner());
// Die Modulation ist für alle Flares gleich
var FarbModulation = RGBa(GibFarbMod(),GibFarbMod(),GibFarbMod(),GibAlphaMod(VektorDist));
// Genauso auch die Abstandsangabe
var Abstaende = 1000-BoundBy((3000-VektorDist*10)/3,0,1000); // Promilleangabe 0 = nahe, 1000 = weit weg; 300 Pixel sind dabei "weit weg"
var AbstaendeAbsolut = (50*Abstaende)/10; // Wieviele 1/100 Pixel zwischen den einzelnen Lenseflares sind
// Ist unsere liebe Sonne überhaupt sichtbar (also Tag + unverdeckt)
var SonneSichtbar = IsDay() && (!GBackSemiSolid(0,0));
// Tagsüber die Sonne einblenden
if(IsDay())
{
SetVisibility (VIS_Owner());
}
else
{
SetVisibility (VIS_None());
}
// Alle Lenseflares durchgehen
for(var i=0; i<MIJON(); ++i)
{
if(SonneSichtbar)
{
// Tags sichtbar
SetVisibility (VIS_Owner(), Local(i));
SetClrModulation(FarbModulation,Local(i));
var LensDist = (i*AbstaendeAbsolut)/100;
SetPosition(GibLensPosX(LensDist,VektorX,VektorDist), GibLensPosY(LensDist,VektorY,VektorDist),Local(i));
}
else
// Nachts unsichtbar ODER bei verdeckter Sonne
SetVisibility (VIS_None(), Local(i));
}
return; // Gamma-Aenderung deaktiviert fuer Tempelschubsen
// Sofern der Spieler alleine ist
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());
}
}
|