Opferlamm-Clan Board
www.opferlamm-clan.de
Verantwortlich für diese bösen Machenschaften: siehe Impressum

Registrierung Kalender Mitgliederliste Suche Häufig gestellte Fragen Zur Startseite

Opferlamm-Clan Board » Call of Duty 2 » Fix-Dateien, Modding-Fragen, Scripting » Timer Funktion Abfrage [HELP] » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Timer Funktion Abfrage [HELP]
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
grab
Teetrinker


Dabei seit: 30.08.2010
Beiträge: 29


Timer Funktion Abfrage [HELP] Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hey leute,

bin ja jetz schon etwas besser im scripten geworden und hab mir jetz einen timer included. nun hab ich alles schon fertig der timer läuft von 4:00 auf 0:0 runter. Nun möchte ich machen das er wenn er bei 0:0 ist eine funtkion ausführt die im script schon gemacht wurde namens "stopRound()".
Ich hab mich schpn in der Standart SD.gsc rumgeschaut aber da nix gutes gefunden.

Bitte um eure hilfe jetz.
grab ist offline E-Mail an grab senden Beiträge von grab suchen Nehmen Sie grab in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

pseudocode:

Code einblendenCode 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:
roundTimer( time )
{
// stoppe die funktion wenn map/runde zuende ist oder du sie so beenden willst
	level endon( "round_end" );
	level endon( "game_ended" );
	level endon( "stop_roundTimer" );

	level.roundTimer = newHudElem();
	// jetzt hier noch den timer etwas verbessern
	level.roundTimer setTimer( int( time ) );

	startTime = getTime();

	while( getTime() - startTime <= time * 1000 )
	{
		wait( 1.0 );
	}
	// wait( int( time ) ); würde auch gehen
	
	level.roundTimer detsroy();

	level thread stopRound();
}

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von serthy: 07.01.2012 15:34.

serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
grab
Teetrinker


Dabei seit: 30.08.2010
Beiträge: 29


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

könntest du eine kleine erklärung zu den elementen machen ?
also wie was funktioniert.


Hab alles includiert aber es geht nix. der timer wird nicht angezeigt.

Unterstützung ? grosses Grinsen

Code einblendenCode 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:
roundTimer( time ) {
 // stoppe die funktion wenn map/runde zuende ist oder du sie so beenden willst
level endon( "round_end" ); 
level endon( "game_ended" );
 level endon( "stop_roundTimer" );   	

level.roundTimer = newHudElem(); 	
level.roundTimer.sort = -1; 	
level.roundTimer.archived = false; 
level.roundTimer.alignX = "center"; 	
level.roundTimer.alignY = "middle"; 	
level.roundTimer.x = 320; 	
level.roundTimer.y = 260; 	
level.roundTimer.alpha = 1; 	
level.roundTimer.color = (255,160,0); 	
level.roundTimer.fontScale = 1.5; 	
level.roundTimer settimer(int ( time ) );   

startTime = getTime();  

 while( getTime() - startTime <= time * 1000 )
 { 
wait( int (time) ); 
} 
// wait( int( time ) ); würde auch gehen  
 level.roundTimer detsroy(); 
level thread maps\mp\gametypes\_zom::checkRestart();; 
 }

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von grab: 07.01.2012 16:48.

grab ist offline E-Mail an grab senden Beiträge von grab suchen Nehmen Sie grab in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

na soo einfach geht es nicht Augenzwinkern
ich kenn außerdem deinen mod nicht, da kann vieles schonmal schiefgehen wenn man einfach so was einfügt und das nicht klappt

Code einblendenCode 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 smile
das level endon( event ) stoppt und beendet die komplette funktion, sobald das entity (hier: level) etwas mit level notify( event ) zugewiesen wird.
serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Opferlamm-Clan Board » Call of Duty 2 » Fix-Dateien, Modding-Fragen, Scripting » Timer Funktion Abfrage [HELP]

Impressum ||Datenschutzerklärung

Forensoftware: Wbb - WoltLab GmbH || zum Archiv