public void GenerateTarget()
        {
            if (direct.IsChecked == true)
            {
                TARGET.Text = PlayerName.Text; return;
            }
            if (arguements.IsChecked == true)
            {/*初始化所有参数*/
                string tar    = null;
                string COUNT  = "c=";
                string LOC    = "";
                string MODE   = "";
                string TEAM   = "";
                string R      = "r=";
                string RM     = "rm=";
                string L      = "l=";
                string LM     = "lm=";
                string RX     = "rx=";
                string RXM    = "rxm=";
                string RY     = "ry=";
                string RYM    = "rym=";
                string DLOC   = "";
                string NAME   = "name=";
                string SCORE  = "";
                string ENTITY = "";

                if (mode_else.IsChecked == true)
                {
                    if (M.Items.Count > 2)
                    {
                        goto Next;
                    }
                    string str = "";
                    for (int i = 0; i < 4; i++)
                    {
                        M.SelectedIndex = i;
                        str             = "选择游戏模式不是" + ((ComboBoxItem)mode.SelectedItem).Content + "模式的玩家(m=!" + mode.SelectedIndex + ")";
                        if ((string)M.SelectedItem == str)
                        {
                            break;
                        }
                    }
                    M.Items.Add("选择游戏模式不是" + ((ComboBoxItem)mode.SelectedItem).Content + "模式的玩家(m=!" + mode.SelectedIndex + ")");
                    Next :;
                }
                if (team_not.IsChecked == true && team.Text != "")
                {
                    string Team = team.Text;
                    if (this.TEAM.Count == 0)
                    {
                        goto add;
                    }
                    for (int i = 0; i < this.TEAM.Count; i++)
                    {
                        if (this.TEAM[i] == Team)
                        {
                            goto Next;
                        }
                    }
add:
                    T.Items.Add("选择不在队伍  " + Team + "  的玩家");
                    this.TEAM.Add(Team);
                    Next :;
                }
                if (name_else.IsChecked == true && name.Text != "")
                {
                    string Name = name.Text;
                    if (this.NAME.Count == 0)
                    {
                        goto add;
                    }
                    for (int i = 0; i < this.NAME.Count; i++)
                    {
                        if (this.NAME[i] == Name)
                        {
                            goto Next;
                        }
                    }
add:
                    N.Items.Add("选择名字不是  " + Name + "  的玩家");
                    this.NAME.Add(Name);
                    Next :;
                }
                if (score_name.Text != "" && (score_max.Value != null || score_min.Value != null))
                {
                    string Board = score_name.Text;
                    int    score; string v = "", t = "";
                    if (score_min.Value != null)
                    {
                        score = (int)score_min.Value; t = "≤";
                    }
                    else
                    {
                        score = (int)score_max.Value; v = "_min"; t = "≥";
                    }
                    string cmd = "score_" + Board + v + "=" + score;

                    if (SCOREB.Count == 0)
                    {
                        goto add;
                    }
                    for (int i = 0; i < SCOREB.Count; i++)
                    {
                        if (SCOREB[i] == cmd)
                        {
                            goto Next;
                        }
                    }
add:
                    S.Items.Add("选择计分板 " + Board + " 分数" + t + score + "  的玩家");
                    SCOREB.Add(cmd);
                    Next :;
                }

                switch (target.SelectedIndex)//获取参数:@a|@p|@r
                {
                case 0 : tar = "@a"; break;

                case 1: tar = "@p"; break;

                case 2: tar = "@r"; break;
                }
                if (count.Value == null)
                {
                    COUNT = "";
                }
                else
                {
                    COUNT = "c=" + count.Value + ",";                                      //获取参数:数量(c=)
                }
                if (loc.GetLoc() == "")
                {
                    LOC = "";
                }
                else
                {
                    LOC = loc.GetLoc() + ",";                                   //获取参数:坐标x=X,y=Y,z=Z,
                }
                if (mode.SelectedIndex == 4)
                {
                    MODE = "";
                }
                else
                {
                    if (mode_else.IsChecked == false)
                    {
                        MODE = "m=" + mode.SelectedIndex + ",";
                    }
                    else
                    {
                        for (int i = 0; i < M.Items.Count; i++)
                        {
                            string[] m = ((string)M.Items[i]).Split('(', ')');
                            MODE += m[1] + ",";
                        }
                    }
                }//获取参数:游戏模式(m=)
                if (rmax.Value == null)
                {
                    R = "";
                }
                else
                {
                    R += rmax.Value + ",";                                 //获取参数:最大半径(r=)
                }
                if (rmin.Value == null)
                {
                    RM = "";
                }
                else
                {
                    RM += rmin.Value + ",";                                  //获取参数:最小半径(rm=)
                }
                if (lmax.Value == null)
                {
                    L = "";
                }
                else
                {
                    L += lmax.Value + ",";                                 //获取参数:最高等级(l=)
                }
                if (lmin.Value == null)
                {
                    LM = "";
                }
                else
                {
                    LM += lmin.Value + ",";                                   //获取参数:最低等级(lm=)
                }
                if (rxmax.Value == null)
                {
                    RX = "";
                }
                else
                {
                    RX += rxmax.Value + ",";                                   //获取参数:最高x旋转(rx=)
                }
                if (rxmin.Value == null)
                {
                    RXM = "";
                }
                else
                {
                    RXM += rxmin.Value + ",";                                    //获取参数:最低x旋转(rxm=)
                }
                if (rymax.Value == null)
                {
                    RY = "";
                }
                else
                {
                    RY += rymax.Value + ",";                                   //获取参数:最高y旋转(ry=)
                }
                if (rymin.Value == null)
                {
                    RYM = "";
                }
                else
                {
                    RYM += rymin.Value + ",";                                    //获取参数:最低y旋转(rym=)
                }
                if (dloc.GetDLoc() == "")
                {
                    DLOC = "";
                }
                else
                {
                    DLOC = dloc.GetDLoc() + ",";                                      //获取参数:立方体范围(dx=X,dy=Y,dz=Z)
                }
                if (name_else.IsChecked == false)
                {
                    if (name.Text == "")
                    {
                        NAME = "";
                    }
                    else
                    {
                        NAME = "name=" + name.Text;
                    }
                }
                else//获取参数:名字(name=)
                {
                    for (int i = 0; i < this.NAME.Capacity; i++)
                    {
                        NAME += "name=!" + this.NAME[i] + ",";
                    }
                }
                //获取参数:计分板
                for (int i = 0; i < SCOREB.Capacity; i++)
                {
                    SCORE += SCOREB[i] + ",";
                }
                if (team_only.IsChecked == true)
                {
                    TEAM = "team=" + team_name.Text;
                }
                if (team_not.IsChecked == true)
                {
                    for (int i = 0; i < this.TEAM.Capacity; i++)
                    {
                        TEAM += "team=!" + this.TEAM[i] + ",";
                    }
                }
                if (team_no.IsChecked == true)
                {
                    TEAM = "team=,";
                }
                if (team_all.IsChecked == true)
                {
                    TEAM = "team=!,";
                }
                if (team_null.IsChecked == true)
                {
                    TEAM = "";                     //获取参数:队伍(team=)
                }
                if (entity_not.IsChecked == false) //检查实体目标是否反选
                {
                    object e = Entity.SelectedItem;
                    if (e == null || e == neutral || e == hostile || e == friend || e == BOSS || e == _throw || e == traffic || e == other || target.SelectedIndex != 3)
                    {
                        ENTITY = "";
                    }
                    else
                    {
                        TreeViewItem a = (TreeViewItem)Entity.SelectedItem;
                        ENTITY = "type=" + a.Name + ",";
                    }
                }
                else
                {
                    for (int i = 0; i < E.Items.Count; i++)
                    {
                        ENTITY += ((string)E.Items[i]).Split('(', ')')[1] + ",";
                    }
                }

                string ARG = COUNT + ENTITY + LOC + DLOC + MODE + TEAM + R + RM + L + LM + RX + RXM + RY + RYM + SCORE;
                if (ARG.Length == 0)
                {
                    TARGET.Text = tar; return;
                }
                TARGET.Text = tar + "[" + ARG.Substring(0, ARG.Length - 1) + "]";
            }
        }
        private void DataControl(object sender, RoutedEventArgs e)
        {
            Button b = (Button)e.Source;

            if (b == addM)
            {
                if (M.Items.Count > 2)
                {
                    return;
                }
                string str = "";
                for (int i = 0; i < 4; i++)
                {
                    M.SelectedIndex = i;
                    str             = "选择游戏模式不是" + ((ComboBoxItem)mode.SelectedItem).Content + "模式的玩家(m=!" + mode.SelectedIndex + ")";
                    if ((string)M.SelectedItem == str)
                    {
                        return;
                    }
                }
                M.Items.Add("选择游戏模式不是" + ((ComboBoxItem)mode.SelectedItem).Content + "模式的玩家(m=!" + mode.SelectedIndex + ")");
            }
            if (b == delM)
            {
                M.Items.Remove(M.SelectedItem);
            }

            if (b == addN && name.Text != "")
            {
                string Name = name.Text;
                if (NAME.Count == 0)
                {
                    goto add;
                }
                for (int i = 0; i < NAME.Count; i++)
                {
                    if (NAME[i] == Name)
                    {
                        return;
                    }
                }
add:
                N.Items.Add("选择名字不是  " + Name + "  的玩家");
                NAME.Add(Name);
                name.Text = "";
            }
            if (b == delN)
            {
                if (N.SelectedIndex == -1)
                {
                    return;
                }
                NAME.RemoveAt(N.SelectedIndex); N.Items.Remove(N.SelectedItem);
            }

            if (b == addT && team.Text != "")
            {
                string Team = team.Text;
                if (TEAM.Count == 0)
                {
                    goto add;
                }
                for (int i = 0; i < TEAM.Count; i++)
                {
                    if (TEAM[i] == Team)
                    {
                        return;
                    }
                }
add:
                T.Items.Add("选择不在队伍  " + Team + "  的玩家");
                TEAM.Add(Team);
                team.Text = "";
            }
            if (b == delT)
            {
                if (T.SelectedIndex == -1)
                {
                    return;
                }
                TEAM.RemoveAt(T.SelectedIndex); T.Items.Remove(T.SelectedItem);
            }

            if (score_name.Text != "" && ((b == addSA && score_min.Value != null) || (b == addSI && score_max.Value != null)))
            {
                string Board = score_name.Text;
                int    score; string v = "", t = "";
                if (b == addSA)
                {
                    score = (int)score_min.Value; t = "≤"; score_min.Value = null;
                }
                else
                {
                    score = (int)score_max.Value; v = "_min"; t = "≥"; score_max.Value = null;
                }
                string cmd = "score_" + Board + v + "=" + score;

                if (SCOREB.Count == 0)
                {
                    goto add;
                }
                for (int i = 0; i < SCOREB.Count; i++)
                {
                    if (SCOREB[i] == cmd)
                    {
                        return;
                    }
                }
add:
                S.Items.Add("选择计分板 " + Board + " 分数" + t + score + "  的玩家");
                SCOREB.Add(cmd);
            }
            if (b == delS)
            {
                if (S.SelectedIndex == -1)
                {
                    return;
                }
                SCOREB.RemoveAt(S.SelectedIndex); S.Items.Remove(S.SelectedItem);
            }

            if (b == addE)
            {
                TreeViewItem t = (TreeViewItem)Entity.SelectedItem;
                if (t == null || t == neutral || t == hostile || t == friend || t == BOSS || t == _throw || t == traffic || t == other)
                {
                    return;
                }
                string ENTI = "不选择选择类型为 " + t.Name + " 的实体(type=!" + t.Name + ")";
                for (int i = 0; i < E.Items.Count; i++)
                {
                    if ((string)E.Items[i] == ENTI)
                    {
                        return;
                    }
                }
                E.Items.Add(ENTI);
            }
            if (b == delE)
            {
                E.Items.Remove(E.SelectedItem);
            }
        }
Пример #3
0
        private void DataControl(object sender, RoutedEventArgs e)
        {
            Button b = (Button)sender;

            if (b == addM)
            {
                if (M.Items.Count > 2)
                {
                    return;
                }
                string str = "";
                for (int i = 0; i < 4; i++)
                {
                    M.SelectedIndex = i;
                    str             = "选择游戏模式不是" + ((ComboBoxItem)mode.SelectedItem).Content + "模式的玩家(m=!" + mode.SelectedIndex + ")";
                    if ((string)M.SelectedItem == str)
                    {
                        return;
                    }
                }
                M.Items.Add("选择游戏模式不是" + ((ComboBoxItem)mode.SelectedItem).Content + "模式的玩家(m=!" + mode.SelectedIndex + ")");
            }
            if (b == delM)
            {
                M.Items.Remove(M.SelectedItem);
            }

            if (b == addN && name.Text != "")
            {
                string Name = name.Text;
                if (NAME.Count == 0)
                {
                    goto add;
                }
                for (int i = 0; i < NAME.Count; i++)
                {
                    if (NAME[i] == Name)
                    {
                        return;
                    }
                }
add:
                N.Items.Add("选择名字不是  " + Name + "  的玩家");
                NAME.Add(Name);
                name.Text = "";
            }
            if (b == delN)
            {
                if (N.SelectedIndex == -1)
                {
                    return;
                }
                NAME.RemoveAt(N.SelectedIndex); N.Items.Remove(N.SelectedItem);
            }

            if (b == addT && team.Text != "")
            {
                string Team = team.Text;
                if (TEAM.Count == 0)
                {
                    goto add;
                }
                for (int i = 0; i < TEAM.Count; i++)
                {
                    if (TEAM[i] == Team)
                    {
                        return;
                    }
                }
add:
                T.Items.Add("选择不在队伍  " + Team + "  的玩家");
                TEAM.Add(Team);
                team.Text = "";
            }
            if (b == delT)
            {
                if (T.SelectedIndex == -1)
                {
                    return;
                }
                TEAM.RemoveAt(T.SelectedIndex); T.Items.Remove(T.SelectedItem);
            }

            if (score_name.Text != "" && ((b == addSA && score_min.Value != null) || (b == addSI && score_max.Value != null)))
            {
                string Board = score_name.Text;
                int    score; string v = "", t = "";
                if (b == addSA)
                {
                    score = (int)score_min.Value; t = "≤"; score_min.Value = null;
                }
                else
                {
                    score = (int)score_max.Value; v = "_min"; t = "≥"; score_max.Value = null;
                }
                string cmd = "score_" + Board + v + "=" + score;

                if (SCOREB.Count == 0)
                {
                    goto add;
                }
                for (int i = 0; i < SCOREB.Count; i++)
                {
                    if (SCOREB[i] == cmd)
                    {
                        return;
                    }
                }
add:
                S.Items.Add("选择计分板 " + Board + " 分数" + t + score + "  的玩家");
                SCOREB.Add(cmd);
            }
            if (b == delS)
            {
                if (S.SelectedIndex == -1)
                {
                    return;
                }
                SCOREB.RemoveAt(S.SelectedIndex); S.Items.Remove(S.SelectedItem);
            }
        }