![]() |
|
#1
|
|||
|
|||
![]()
Thanks for the thread Ataros. Very helpful.
Is there a reason you guys are using "ticks" to measure time. C# has a few different ways of keeping track of time. Here's an example using the Stopwatch class. Don't get me wrong, modulus is great but this stopwatch is probably more accurate and it's a heck of a lot more readable. ![]() Code:
using System; using maddox.game; using maddox.game.world; using System.Collections.Generic; using System.Diagnostics; //contains Stopwatch class public class Mission : AMission { int timesRun = 0; //count how many times sub-mission has been run Stopwatch timer = new Stopwatch(); //timer. Counts... time... public override void OnTickGame() { //if sub-mission has never been run, run it if (timesRun == 0) { //start timer timer.Start(); GamePlay.gpPostMissionLoad("missions/Multi/MyMissions/mission1.mis"); timesRun++; // prints message on screen after mission load GamePlay.gpHUDLogCenter("Hello, world! Mission1.mis loaded!"); } //if five or more minutes have elapsed since the timer was started, run sub-mission if (timer.Elapsed.Minutes >= 5) { GamePlay.gpPostMissionLoad("missions/Multi/MyMissions/mission1.mis"); timesRun++; GamePlay.gpHUDLogCenter("Hello, world! Mission1.mis loaded!"); //reset timer to zero and restart it timer.Restart(); } } } |
#2
|
||||
|
||||
![]() Quote:
If you want to get rid of counting ticks, you can use this: Code:
//Runs once, when mission is loaded public override void Init(maddox.game.ABattle battle, int missionNumber) { base.Init(battle,missionNumber); //Planned missions MissionLoader(30,10,"missions/Multi/Dogfight/bombers1.mis"); // 10s from main mission start and repeatedly every 30s MissionLoader(100,60,"missions/Multi/Dogfight/bombers2.mis"); // 60s from main mission start and repeatedly every 100s } public void MissionLoader(int period, int offset, string mission) { if (offset > 0) Timeout(offset, () => {MissionLoader(period,0,mission);}); else { GamePlay.gpPostMissionLoad(mission); Timeout(period, () => {MissionLoader(period,0,mission);}); } } Last edited by ZaltysZ; 05-15-2011 at 07:09 AM. |
#3
|
|||
|
|||
![]()
Oh, I'm sorry. I thought that you guys wanted to base the intervals that missions run on on real time not on game time.
|
![]() |
|
|