Example #1
0
        private void добавитьToolStripMenuItem3_Click(object sender, EventArgs e)
        {
            CTriggerDataOperation ctdo = new CTriggerDataOperation();

            ctdo.iType  = operationsComboBox.SelectedIndex;
            ctdo.pParam = Operations.GetEmptyOperation(ctdo.iType, ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].version);
            ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].listOperation.Add(ctdo);
            LoadData(2);
        }
Example #2
0
        public AIPolicy Read(string filepath, MainForm f)
        {
            AIPolicy     ai = new AIPolicy();
            BinaryReader br = new BinaryReader(new FileStream(filepath, FileMode.Open, FileAccess.Read));

            ai.header = br.ReadInt32();
            int count = br.ReadInt32();

            f.Progress.Maximum = count;
            for (int i = 0; i < count; ++i)
            {
                ++f.Progress.Value;
                Application.DoEvents();
                CPolicyData aic = new CPolicyData();
                aic.version = br.ReadInt32();
                aic.ID      = br.ReadInt32();
                int ccount = br.ReadInt32();
                for (int j = 0; j < ccount; ++j)
                {
                    CTriggerData ctd = new CTriggerData();
                    ctd.version      = br.ReadInt32();
                    ctd.uID          = br.ReadInt32();
                    ctd.bActive      = br.ReadBoolean();
                    ctd.bRun         = br.ReadBoolean();
                    ctd.bAttackValid = br.ReadBoolean();
                    ctd.szName       = br.ReadBytes(128);
                    ctd.rootConditon = LoadCondition(br);
                    int pcount = br.ReadInt32();
                    for (int k = 0; k < pcount; ++k)
                    {
                        CTriggerDataOperation ctdo = new CTriggerDataOperation();
                        ctdo.iType       = br.ReadInt32();
                        ctdo.pParam      = Operations.Read(br, ctdo.iType, ctd.version);
                        ctdo.iTargetType = br.ReadInt32();
                        if (ctdo.iTargetType == 6)
                        {
                            ctdo.pTargetParam = br.ReadInt32();
                        }
                        else
                        {
                            ctdo.pTargetParam = 0;
                        }
                        ctd.listOperation.Add(ctdo);
                    }
                    aic.CTD.Add(ctd);
                }
                ai.controllers.Add(aic);
            }
            f.Progress.Value = 0;
            br.Close();
            return(ai);
        }
Example #3
0
        public void LoadData(byte type)
        {
            OnLoad = true;
            switch (type)
            {
            case 0:
                int prev = triggers_list.SelectedIndex;
                triggers_list.BeginUpdate();
                triggers_list.Items.Clear();
                controllers_list.Items.Clear();
                operations_list.Items.Clear();
                operation_param.Rows.Clear();
                disableAll();
                for (int i = 0; i < ai.controllers.Count; ++i)
                {
                    triggers_list.Items.Add(ai.controllers[i].ID);
                }
                triggers_list.EndUpdate();
                triggers_list.SelectedIndex = triggers_list.Items.Count > prev ? prev : 0;
                controllers_list.ClearSelected();
                break;

            case 1:
                int prevc = controllers_list.SelectedIndex;
                controllers_list.BeginUpdate();
                controllers_list.Items.Clear();
                operations_list.Items.Clear();
                operation_param.Rows.Clear();
                disableAll();
                controller_box.Text = string.Format(Lang.Translate("controller_box_txt"), ai.controllers[triggers_list.SelectedIndex].version);
                for (int i = 0; i < ai.controllers[triggers_list.SelectedIndex].CTD.Count; ++i)
                {
                    controllers_list.Items.Add(string.Format("[{0}] {1}", ai.controllers[triggers_list.SelectedIndex].CTD[i].uID, ai.controllers[triggers_list.SelectedIndex].CTD[i].Name));
                }
                controllers_list.EndUpdate();
                trigger_id.Text = ai.controllers[triggers_list.SelectedIndex].ID.ToString();
                if (controllers_list.Items.Count > 0)
                {
                    controllers_list.SelectedIndex = controllers_list.Items.Count > prevc ? prevc : 0;
                }
                string mobs = "Mobs: ";
                foreach (string s in CustomData.GetAi(ai.controllers[triggers_list.SelectedIndex].ID))
                {
                    mobs += string.Format("{0}, ", s);
                }
                mobs = mobs.Substring(0, mobs.Length - 2);
                triggers_mobs.Text = mobs;
                break;

            case 2:
                operations_list.BeginUpdate();
                operations_list.Items.Clear();
                operation_param.Rows.Clear();
                operation_box.Text   = string.Format(Lang.Translate("operation_box_txt"), ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].version);
                controller_id.Text   = ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].uID.ToString();
                controller_name.Text = ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].Name;
                bActive.Checked      = ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].bActive;
                bRun.Checked         = ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].bRun;
                bAttackValid.Checked = ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].bAttackValid;
                for (int i = 0; i < ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].listOperation.Count; ++i)
                {
                    string op_name = Lang.Translate(Operations.GetInfo(ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].listOperation[i].iType, ai.controllers[triggers_list.SelectedIndex].version).Name);
                    operations_list.Items.Add(string.Format("[{0}] {1}", i, op_name));
                }
                operations_list.EndUpdate();
                LoadCondition(ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].rootConditon);
                break;

            case 3:
                CTriggerDataOperation ctdo = ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].listOperation[operations_list.SelectedIndex];
                operation_param.Rows.Clear();
                if (ctdo.iType == 2)
                {
                    DataGridViewComboBoxCell combobox = new DataGridViewComboBoxCell();
                    foreach (string field in Operations.Channels.Values)
                    {
                        combobox.Items.Add(Lang.Translate(field));
                    }
                    foreach (string field in Operations.GetInfo(ctdo.iType, ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].version).Fields)
                    {
                        operation_param.Rows.Add(Lang.Translate(field), "");
                    }
                    operation_param.Rows[0].Cells[1]       = combobox;
                    operation_param.Rows[0].Cells[1].Value = Operations.Channels.Keys.Contains(ctdo.pParam[0].ToString()) ? Operations.Channels[ctdo.pParam[0].ToString()] : Operations.Channels[""];
                    for (int i = 1; i < ctdo.pParam.Length; ++i)
                    {
                        operation_param.Rows[i].Cells[1].Value = ctdo.pParam[i].ToString();
                    }
                }
                else
                {
                    string[] fields = Operations.GetInfo(ctdo.iType, ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].version).Fields;
                    for (int i = 0; i < ctdo.pParam.Length; ++i)
                    {
                        operation_param.Rows.Add(Lang.Translate(fields[i]), ctdo.pParam[i].ToString());
                    }
                }
                TargetType.SelectedIndex = ctdo.iTargetType;
                if (ctdo.iTargetType == 6)
                {
                    target_param.Visible     = true;
                    target_param_txt.Visible = true;
                    target_param.Text        = ctdo.pTargetParam.ToString();
                }
                else
                {
                    target_param.Visible     = false;
                    target_param_txt.Visible = false;
                }
                break;

            default:
                break;
            }
            OnLoad = false;
        }