Talán nem is annyira. Nekem volna rá két ötletem:
1.Én azt csinálnám hogy ha beírja az adott frakció kezdési parancsát akkor getdate és gettime-al lekérdezném az idõt. Ha befejezi szintén lekérdezném a játékos idejét. Ha kilép a szerverrõl lementené az össz munka idõt (munka kezdése - munka befejezése ). A munkának a kezdési idejét kivonnám a végzési idõbõl. Megkapnánk az össz. dolgozott órát. Létrehoznék megint 3 új float változót beállítva nekik a dolgozás max idejét azaz órának pl:5.0 , percnek:0.0, másodpercnek is 0.0-át. Összevetném õket és ha az össz idõ nagyobb mint a dolgozható idõ (azaz a 3 float változó) akkor létrehoznék globálisan egy boolean változót és beállítanám az értékét true-ra. És utána jönnének a munkák parancsai és csak akkor mûködne az adott parancs, ha a globális boolean változó értéke false, azaz még dolgozhat.
2.Vagy egy jóval könnyebb viszont jobban terheli a szervert az az volna, hogy létrehozol egy SetTimerEx-et, amit beállítasz, hogy frissüljön magától 1 percenként. És ha a timer mondjuk lefutott 60x (azaz 60*1 perc, azaz 1 óra) akkor egy boolen változót a fenti megoldásnál is leírva létrehozva megakadályozná, hogy többet dolgozzon. Ha a játékos lecsatlakozik lementi, az ismétlések számát és ha újra feljön akkor a régi ismétlések számától folytatná.
Nekem így hirtelen ez a két variáns jutott az eszembe, bár lehet hogy csak pár pohár sör tette meg a hatását. Ha tudtok könnyebbet és hasznosabbat kíváncsi lennék rá.