|
|
Timer Funktion Abfrage [HELP] |
serthy
Codemeister
Dabei seit: 29.07.2010
Beiträge: 628
|
|
na soo einfach geht es nicht
ich kenn außerdem deinen mod nicht, da kann vieles schonmal schiefgehen wenn man einfach so was einfügt und das nicht klappt
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:
|
// in SetupCvars() kommt das hin: if( getCvar( "scr_zom_roundtime") == "" ) setCvar( "scr_zom_roundtime" , "4" ); level.roundtime = getCvarInt( "scr_zom_roundtime" );
// in GameStart() funktion kommt das ganz oben hin: level thread monitorRound();
// in checkRestart() funktion müsste sowtwas rein (direkt über return true;): level notify( "round_restart" ); thread monitorRound();
monitorRound()
{
level endon( "intermission" );
level endon( "round_restart" );
if( !isDefined( level.roundClock ) )
{
level.roundClock = newHudElem();
level.roundClock.horzAlign = "left";
level.roundClock.vertAlign = "top";
level.roundClock.x = 8;
level.roundClock.y = 22;
level.roundClock.fontscale = 1.5;
}
level.roundClock setTimer( int( level.roundlimit * 60 ) );
startTime = getTime();
while( getTime() - startTime < level.roundlimit * 60000 )
{
wait( int ( 1.0 ) );
}
otherteam["allies"] = "axis";
otherteam["axis"] = "allies";
players = getentarray( "player" , "classname" );
for( i = 0 ; i < players.size ; i++ )
{
player = players[i];
if( !isDefined( player.pers["team"] ) || player.pers["team"] == "spectator" )
continue;
player thread showText( &"ZOM_ROUND_RESTART" );
player thread movePlayer( otherteam[player.pers["team"]] , 4.0 );
}
wait( 4.0 );
level thread monitorRound();
} |
|
nimm das als grundlage und passe es an (achtung, keine ahnung ob alles stimmt!)
zu der erklärung:
wenn das spiel startet(neue map etc.) musst du mit als erstes monitorRound() aufrufen, da das deine runden steuert. die funktion erstellt dir deinen timer und überprüft jede sekunde ob die zeit vorrüber ist oder nicht (genauer: es checkt ob die jetzige zeit mit gettime minus der startzeit größer ist als die rundenzeit, falls ja stoppt der loop) danach werden alle aktiven spieler mit der movePlayer()-funktion aus dem zombiemod getauscht, zombies werden jäger und umgeklehrt. danach wird die funktion von sich selbst neu aufgerufen.
du müsstest noch in der movePlayer() funktion die 2 oben genannten dinge einfügen, damit jedesmal roundMonitor() funktion neu gestartet wird. und du musst die rundenzeit natürlich definieren in der setupCvars() funktion
das level endon( event ) stoppt und beendet die komplette funktion, sobald das entity (hier: level) etwas mit level notify( event ) zugewiesen wird.
|
|
|
|
|
|
|
|
Impressum ||Datenschutzerklärung
|