|
|
Tutorial: scorePopUp wie in Cod4/Cod6 |
serthy
Codemeister
Dabei seit: 29.07.2010
Beiträge: 628
|
|
Tutorial: scorePopUp wie in Cod4/Cod6 |
|
Soo heute bin ich nun mal an der reihe und zeige euch (falls noch jemand cod2 spielen sollte..) wie man die gelben punkte-anzeigen für einen kill in cod2 reinbringt
also als erstes müsstet ihr euch informieren wie man einen mod erstellt, solltet genug hier im forum finden
so
erstellt euch eine neue textdatei und nennt sie:
_scorePopup.gsc
in die kommt dann folgendes rein:
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
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:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
|
init()
{
precachestring(&"+&&1"); // alternativ mit Localized Strings: precachestring(&"MEINMODNAME_PLUS");
}
onPlayerConnect()
{
for(;;)
{
level waittill( "connected", player );
player.xpUpdateTotal = 0;
player.bonusUpdateTotal = 0;
player.hud_scorePopup = newClientHudElem( player );
player.hud_scorePopup.horzAlign = "center";
player.hud_scorePopup.vertAlign = "middle";
player.hud_scorePopup.alignX = "center";
player.hud_scorePopup.alignY = "middle";
player.hud_scorePopup.x = 0;
player.hud_scorePopup.y = -60;
player.hud_scorePopup.fontscale = 0.82;
player.hud_scorePopup.archived = false;
player.hud_scorePopup.color = (0.5,0.5,0.5);
player.hud_scorePopup.sort = 10000;
player.hud_scorePopup fontPulseInit();
}
}
fontPulseInit()
{
self.baseFontScale = self.fontScale;
self.maxFontScale = self.fontScale * 4;
self.inFrames = 3;
self.outFrames = 5;
}
fontPulse( player )
{
self notify ( "fontPulse" );
self endon ( "fontPulse" );
player endon( "disconnect" );
player endon( "joined_team" );
player endon( "joined_spectators" );
scaleRange = self.maxFontScale - self.baseFontScale;
while( self.fontScale < self.maxFontScale )
{
self.fontScale = _getmin( self.maxFontScale , self.fontScale + ( scaleRange / self.inFrames ) );
wait 0.05;
}
while( self.fontScale > self.baseFontScale )
{
self.fontScale = _getmax( self.baseFontScale , self.fontScale - ( scaleRange / self.outFrames ) );
wait 0.05;
}
}
scorePopup( amount , bonus , hudColor )
{
self endon( "disconnect" );
self endon( "joined_team" );
self endon( "joined_spectators" );
if ( amount == 0 )
return;
self notify( "scorePopup" );
self endon( "scorePopup" );
self.xpUpdateTotal += amount;
self.bonusUpdateTotal += bonus;
wait 0.05;
if ( self.xpUpdateTotal < 0 )
self.hud_scorePopup.label = &"";
else
self.hud_scorePopup.label = &"+&&1"; // alternativ mit Localized Strings: self.hud_scorePopup.label = &"MEINMODNAME_PLUS";
self.hud_scorePopup.color = hudColor;
self.hud_scorePopup setValue( self.xpUpdateTotal );
self.hud_scorePopup.alpha = 0.85;
self.hud_scorePopup thread fontPulse( self );
increment = _getmax( int( self.bonusUpdateTotal / 20 ), 1 );
if ( self.bonusUpdateTotal )
{
while ( self.bonusUpdateTotal > 0 )
{
self.xpUpdateTotal += _getmin( self.bonusUpdateTotal , increment );
self.bonusUpdateTotal -= _getmin( self.bonusUpdateTotal , increment );
self.hud_scorePopup setValue( self.xpUpdateTotal );
wait 0.05;
}
}
else
{
wait 1;
}
self.hud_scorePopup fadeOverTime( 0.75 );
self.hud_scorePopup.alpha = 0;
wait 2;
self.xpUpdateTotal = 0;
}
/*===Kleine Hilfsfunktionen===*/
_getmax( a , b )
{
if( a > b ) return a;
else return b;
}
_getmin( a , b )
{
if( a < b ) return a;
else return b;
} |
|
so
dann müsst ihr folgendes in euren gametypes.gsc aufrufen (zB: sd.gsc oder tdm.gsc )
--> oben in die main funktion, wo viele init(); stehen kommt das drunter:
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
|
thread maps\mp\gametypes\_scorePopup::init(); |
|
--> dann in die Callback_PlayerConnect() funktion kommt das i-wo ganz unten hin:
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
|
thread maps\mp\gametypes\_scorePopup::onPlayerConnect(); |
|
--> und schlussendlich überall da wo die gelben punkte angezeigt werden sollen kommt das hin:
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
|
thread maps\mp\gametypes\_scorePopup::scorePopup( amount , bonus , hudColor ); |
|
zB: in die callback_playerKilled() funktion
da steht das so etwas wie das drin:
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
|
attacker thread maps\mp\gametypes\_scorePopup::scorePopup( 100 , 0 , ( 0.94 , 0.81 , 0.00 ) ); |
|
wenn ihr mit Localized strings arbeiten wollt dann erstellt eine neue meinemodname.str datei und rein kommt folgendes (oder ihr fügt es eurer hinzu):
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
|
VERSION "1"
CONFIG "C:\trees\cod2\bin\StringEd.cfg"
FILENOTES ""
REFERENCE PLUS
LANG_ENGLISH "+&&1"
LANG_GERMAN "+&&1"
ENDMARKER
|
|
hier noch ein paar farben:
0.5, 0.0, 0.8 - Sexxy purple
1.0, 0.0, 0.0 - Epic Red
1.0, 0.0, 0.4 - Preppy Pink
0.0, 0.8, 0.0 - Epic Green
0.9, 1.0, 0.0 - Banana Yellow
1.0, 0.5, 0.0 - Burnt Orange
0.0, 0.5, 1.0 - Turquoise
0.0, 0.0, 1.0 - Deep Blue
0.3, 0.0, 0.3 - Deep Purple
0.0, 1.0, 0.0 - Light Green
0.5, 0.0, 0.2 - Maroon
0.0, 0.0, 0.0 - Black
1.0, 1.0, 1.0 - White
0.0, 1.0, 1.0 - Cyan
und hier ein Screen:
Viel spass
wenn es fehler, eroor oder unklarheiten gibt, bitte posten
|
|
|
|
|
|
|
|
Impressum ||Datenschutzerklärung
|