12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- using CommonLang;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace XmdsBattleClientBot.Bot
- {
- public class ThreadBotClient : BotClient
- {
- private System.Threading.Timer update_timer;
- private long last_update_time;
- public override bool IsRunning { get { return update_timer != null; } }
- public override string RoleName { get { return base.RoleName; } }
- public ThreadBotClient(string user, string pswd, BotConfig cfg)
- : base(user, pswd, cfg, null)
- {
- }
- public override void Start()
- {
- lock (this)
- {
- if (update_timer == null)
- {
- base.Start();
- this.last_update_time = CUtils.CurrentTimeMS;
- this.update_timer = new System.Threading.Timer(do_update, this,
- 1000 / Config.ClientFPS,
- 1000 / Config.ClientFPS);
- }
- }
- }
- public override void Stop()
- {
- lock (this)
- {
- if (update_timer != null)
- {
- base.Stop();
- update_timer.Dispose();
- update_timer = null;
- }
- }
- }
- private void do_update(object state)
- {
- lock (this)
- {
- long curTime = CommonLang.CUtils.CurrentTimeMS;
- if (last_update_time == 0)
- {
- last_update_time = curTime;
- }
- int intervalMS = (int)(curTime - last_update_time);
- last_update_time = curTime;
- this.Update(intervalMS);
- }
- }
- public override void Update(int intervalMS)
- {
- lock (this)
- {
- base.Update(intervalMS);
- }
- }
- }
- }
|