示例#1
0
        /// <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);
        }
示例#6
0
    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();
        }
示例#11
0
    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);
    }
示例#12
0
    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);
    }
示例#13
0
 /// <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)");
     }
 }
示例#14
0
 /// <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();
        }
示例#17
0
        /// <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);
        }
示例#18
0
 /// <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)");
     }
 }
示例#20
0
 /// <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)");
     }
 }
示例#21
0
 public override bool CheckCOondition(AiSetting setting)
 {
     return(true);
 }
示例#22
0
 virtual public bool CheckCOondition(AiSetting setting)
 {
     return(false);
 }