/// <summary> /// AI即時資訊比較 /// </summary> /// <param name="setting"> AI設定資訊</param> /// <returns></returns> public bool AI64Load(AiSetting setting) { bool Flag = false; try { using (var Conn = new MySqlConnection(Webscsb.ConnectionString)) { string sql = "SELECT TIMESTAMPDIFF(MINUTE,(SELECT ttimen FROM Ai64 Where CaseNo = @CaseNo AND AiNo = @AiNo),@Datetime)"; var value = Conn.QuerySingle <int?>(sql, new { CaseNo = setting.CaseNo, AiNo = setting.AiNo, Datetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }); if (value != null) { if (value >= setting.MTimeoutSpan) { Flag = true; } else { Flag = false; } } } } catch (Exception ex) { Log.Error(ex, "AI即時資訊比較" + "錯誤(Ewatch)"); } return(Flag); }
/// <summary> /// 查詢AI點位上傳時間 /// </summary> /// <param name="setting"></param> /// <returns></returns> public DateTime AI_LastTime(AiSetting setting) { using (var Conn = new MySqlConnection(Webscsb.ConnectionString)) { string sql = "SELECT ttimen FROM Ai64 Where CaseNo = @CaseNo AND AiNo = @AiNo"; var value = Conn.QuerySingle <DateTime>(sql, new { CaseNo = setting.CaseNo, AiNo = setting.AiNo }); return(value); } }
public virtual ActionBase Action(AiSetting setting) { if (target_ == AIDefine.TargetType.Enemy) { setting.TargetList.Add(setting.PlayerList[0]); } return(null); }
public override ActionBase Action(AiSetting setting) { base.Action(setting); AttackAction attackAction = new AttackAction(); attackAction.Entity = setting.Entity; attackAction.Target = setting.TargetList[0]; return(attackAction); }
/// <summary> /// AI上傳間隔時間 /// </summary> /// <returns></returns> public int?Ai_Time(AiSetting setting) { int?value = null; using (var Conn = new MySqlConnection(scsb.ConnectionString)) { string sql = "SELECT TIMESTAMPDIFF(HOUR,(SELECT SendTime FROM AiSetting Where CaseNo = @CaseNo AND AiNo = @AiNo),@Datetime)"; value = Conn.QuerySingle <int?>(sql, new { CaseNo = setting.CaseNo, AiNo = setting.AiNo, Datetime = DateTime.Now }); } return(value); }
public override bool CheckCOondition(AiSetting setting) { System.Random r = new System.Random(); int i = r.Next(100); if (border_ > i) { return(true); } return(false); }
public void Setup(BattleMain battle_main) { battle_main_ = battle_main; ai_setting_ = new AiSetting(battle_main); List <Enemy> enemy_list = GetEnemyList(); foreach (Enemy enemy in enemy_list) { //enemy.State = Enemy.ActionState.Ready; } }
private void SavesimpleButton_Click(object sender, EventArgs e) { ReceiveSetting receiveSetting = new ReceiveSetting() { CaseNo = CaseNotextEdit.Text, DeviceTypeEnum = DeviceTypeEnumcomboBoxEdit.SelectedIndex, ReceiveNo = Convert.ToInt32(ReceiveNotextEdit.Text), ReceiveName = ReceiveNametextEdit.Text, NotifyFlag = NotifyFlagtoggleSwitch.IsOn, HTimeoutSpan = Convert.ToInt32(TimeoutSpantextEdit.Text), MTimeoutSpan = Convert.ToInt32(MTimeoutSpantextEdit.Text) }; ChungHsin_MySqlMethod.Insert_ReceiveSettig(receiveSetting); var aiconfig = ChungHsin_MySqlMethod.AiConfigLoad(receiveSetting.DeviceTypeEnum); var stateconfig = ChungHsin_MySqlMethod.StateConfigLoad(receiveSetting.DeviceTypeEnum); List <AiSetting> aiSettings = new List <AiSetting>(); List <StateSetting> stateSettings = new List <StateSetting>(); if (aiconfig != null) { foreach (var item in aiconfig) { AiSetting setting = new AiSetting() { CaseNo = receiveSetting.CaseNo, ReceiveNo = receiveSetting.ReceiveNo, AINo = item.AINo, }; aiSettings.Add(setting); } ChungHsin_MySqlMethod.Insert_AiSetting(aiSettings); } if (stateconfig != null) { foreach (var item in stateconfig) { StateSetting setting = new StateSetting() { CaseNo = receiveSetting.CaseNo, ReceiveNo = receiveSetting.ReceiveNo, StateNo = item.StateNo }; stateSettings.Add(setting); } ChungHsin_MySqlMethod.Insert_StateSetting(stateSettings); } caseUserControl.Search_Setting(); caseUserControl.FlyoutFlag = false; caseUserControl.flyout.Close(); }
/// <summary> /// 更新AI點位最後上傳時間 /// </summary> /// <param name="setting"></param> public void UpdataAi_Time(AiSetting setting, bool TimeFlag) { using (var Conn = new MySqlConnection(scsb.ConnectionString)) { string sql = "UPDATE AiSetting SET SendTime = @SendTime WHERE CaseNo = @CaseNo AND AiNo = @AiNo"; if (TimeFlag) { var value = Conn.Execute(sql, new { SendTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), CaseNo = setting.CaseNo, AiNo = setting.AiNo }); } else { var value = Conn.Execute(sql, new { SendTime = DateTime.Now.AddYears(-1).ToString("yyyy-MM-dd HH:mm:ss"), CaseNo = setting.CaseNo, AiNo = setting.AiNo }); } } }
private void ChangesimpleButton_Click(object sender, EventArgs e) { AiSetting aiSetting = new AiSetting() { CaseNo = CaseNotextEdit.Text, AiNo = Convert.ToInt32(AiNotextEdit.Text), AiName = AiNametextEdit.Text, NotifyFlag = NotifyFlagtoggleSwitch.IsOn, TimeoutSpan = Convert.ToInt32(TimeoutSpantextEdit.Text), MTimeoutSpan = Convert.ToInt32(MTimeoutSpantextEdit.Text) }; Ewatch_MySqlMethod.Update_AiSetting(aiSetting); Search_Setting(); }
public List <AIActionBase> SelectAI(AiSetting setting) { List <AIThinkList> ai_think_list = GetAIThinkList(); for (var i = 0; i < ai_think_list.Count; i++) { AIThinkList data = ai_think_list[i]; bool mach = MachConditioon(data, setting); if (mach) { return(data.ActionList); } } return(null); }
public bool MachConditioon(AIThinkList data, AiSetting setting) { //settingの様々な値と、dataの条件がマッチするかを書いていく. List <AIConditionBase> condition_list = data.ConditionList; for (var i = 0; i < condition_list.Count; i++) { if (condition_list[i].CheckCOondition(setting) == true) { return(true); } } return(false); }
/// <summary> /// Ai新增 /// </summary> /// <param name="setting"></param> public void Insert_AiSetting(AiSetting setting) { try { using (var Conn = new MySqlConnection(scsb.ConnectionString)) { string sql = "INSERT IGNORE INTO AiSetting (CaseNo,AiNo,AiName,NotifyFlag,TimeoutSpan,MTimeoutSpan)" + " VALUES(@CaseNo,@AiNo,@AiName,@NotifyFlag,@TimeoutSpan,@MTimeoutSpan) "; Conn.Execute(sql, setting); } } catch (Exception ex) { Log.Error(ex, "Ai新增" + "錯誤(Ewatch)"); } }
/// <summary> /// 查詢AI點位上傳時間 /// </summary> /// <param name="setting"></param> /// <returns></returns> public DateTime?AI_LastTime(AiSetting setting) { try { using (var Conn = new MySqlConnection(Webscsb.ConnectionString)) { string sql = "SELECT ttimen FROM Ai64 Where CaseNo = @CaseNo AND AiNo = @AiNo"; var value = Conn.QuerySingle <DateTime>(sql, new { CaseNo = setting.CaseNo, AiNo = setting.AiNo }); return(value); } } catch (Exception ex) { Log.Error(ex, "更新AI點位最後上傳時間" + "錯誤(Ewatch)"); return(null); } }
/// <summary> /// 讀取AI64即時資訊(Web) /// </summary> /// <param name="setting"></param> /// <returns></returns> public AI64 Ai64web(AiSetting setting) { try { using (var conn = new MySqlConnection(Webscsb.ConnectionString)) { string sql = "SELECT * FROM Ai64 WHERE CaseNo = @CaseNo AND ReceiveNo = @ReceiveNo"; var data = conn.QuerySingle <AI64>(sql, new { setting.CaseNo, setting.ReceiveNo }); return(data); } } catch (Exception ex) { Log.Error(ex, "讀取AI64即時資訊(Web)" + "錯誤(Ewatch)"); return(null); } }
private void SavesimpleButton_Click(object sender, EventArgs e) { AiSetting aiSetting = new AiSetting() { CaseNo = CaseNotextEdit.Text, AiNo = Convert.ToInt32(AiNotextEdit.Text), AiName = AiNametextEdit.Text, NotifyFlag = NotifyFlagtoggleSwitch.IsOn, TimeoutSpan = Convert.ToInt32(TimeoutSpantextEdit.Text), MTimeoutSpan = Convert.ToInt32(MTimeoutSpantextEdit.Text) }; Ewatch_MySqlMethod.Insert_AiSetting(aiSetting); caseUserControl.Search_Setting(); caseUserControl.FlyoutFlag = false; caseUserControl.flyout.Close(); }
/// <summary> /// AI上傳間隔時間 /// </summary> /// <returns></returns> public int?Ai_Time(AiSetting setting) { int?value = null; try { using (var Conn = new MySqlConnection(scsb.ConnectionString)) { string sql = "SELECT TIMESTAMPDIFF(HOUR,(SELECT SendTime FROM AiSetting Where CaseNo = @CaseNo AND AiNo = @AiNo),@Datetime)"; value = Conn.QuerySingle <int?>(sql, new { CaseNo = setting.CaseNo, AiNo = setting.AiNo, Datetime = DateTime.Now }); } } catch (Exception ex) { Log.Error(ex, "AI上傳間隔時間" + "錯誤(Ewatch)"); } return(value); }
/// <summary> /// Ai更新 /// </summary> /// <param name="setting"></param> public void Update_AiSetting(AiSetting setting) { try { using (var Conn = new MySqlConnection(scsb.ConnectionString)) { string sql = "UPDATE AiSetting SET " + "AiName = @AiName," + "NotifyFlag = @NotifyFlag," + "TimeoutSpan = @TimeoutSpan," + "MTimeoutSpan = @MTimeoutSpan" + " WHERE CaseNo = @CaseNo AND AiNo = @AiNo"; Conn.Execute(sql, setting); } } catch (Exception ex) { Log.Error(ex, "Ai更新" + "錯誤(Ewatch)"); } }
/// <summary> /// AiSettingg更新 /// </summary> /// <param name="setting"></param> public void Update_AiSetting(AiSetting setting) { try { using (var Conn = new MySqlConnection(scsb.ConnectionString)) { string sql = "UPDATE AiSetting SET " + "CompareFlag = @CompareFlag," + "Max = @Max," + "Min = @Min," + "CompareType = @CompareType," + "EnumFlag = @EnumFlag," + "EnumType = @EnumType" + " WHERE CaseNo = @CaseNo AND ReceiveNo = @ReceiveNo AND AINo = @AINo"; Conn.Execute(sql, setting); } } catch (Exception ex) { Log.Error(ex, "AiSetting更新" + "錯誤(ChungHsin)"); } }
/// <summary> /// 更新AI點位最後上傳時間 /// </summary> /// <param name="setting"></param> public void UpdataAi_Time(AiSetting setting, bool TimeFlag) { try { using (var Conn = new MySqlConnection(scsb.ConnectionString)) { string sql = "UPDATE AiSetting SET SendTime = @SendTime WHERE CaseNo = @CaseNo AND AiNo = @AiNo"; if (TimeFlag) { var value = Conn.Execute(sql, new { SendTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), CaseNo = setting.CaseNo, AiNo = setting.AiNo }); } else { var value = Conn.Execute(sql, new { SendTime = DateTime.Now.AddYears(-1).ToString("yyyy-MM-dd HH:mm:ss"), CaseNo = setting.CaseNo, AiNo = setting.AiNo }); } } } catch (Exception ex) { Log.Error(ex, "更新AI點位最後上傳時間" + "錯誤(Ewatch)"); } }
public override bool CheckCOondition(AiSetting setting) { return(true); }
virtual public bool CheckCOondition(AiSetting setting) { return(false); }