Beispiel #1
0
        private void ReadData(StreamReader file)
        {
            string line;

            //active follow
            if (Util.GetInt32(file.ReadLine()) == 1)
                checkBox_activefollow.Checked = true;
            else
                checkBox_activefollow.Checked = false;
            //active follow style
            if (Util.GetInt32(file.ReadLine()) == 1)
                radioButton_ActiveFollow_style1.Checked = true;
            else
                radioButton_ActiveFollow_style2.Checked = true;
            //names
            textBox_activefollow_name.Text = file.ReadLine();
            //dist
            textBox_ActiveFollow_Dist.Text = file.ReadLine();
            //active follow attack
            if (Util.GetInt32(file.ReadLine()) == 1)
                checkBox_activefollow_attack.Checked = true;
            else
                checkBox_activefollow_attack.Checked = false;

            //load buffs
            try
            {
                int cnt = Util.GetInt32(file.ReadLine());
                for (int i = 0; i < cnt; i++)
                {
                    //name
                    string names = file.ReadLine();
                    ListViewItem ObjListItem = listView_buffheal.Items.Add("");
                    //checked
                    line = file.ReadLine();
                    if (Util.GetInt32(line) == 1)
                        ObjListItem.Checked = true;
                    else
                        ObjListItem.Checked = false;
                    //type
                    int type = Util.GetInt32(file.ReadLine());
                    ObjListItem.SubItems.Add(BuffTargetClass.Get_BuffTrigger_Name(type));

                    //shortcut
                    uint sc_id = Util.GetUInt32(file.ReadLine());
                    ObjListItem.SubItems[0].Text = Util.GetSkillName(sc_id, 1);
                    ObjListItem.SubItems.Add(names); //((sc_id % Globals.Skills_PerPage) + 1).ToString() + " : " + (((int)(sc_id / Globals.Skills_PerPage)) + 1).ToString());
                    ObjListItem.SubItems.Add(file.ReadLine());//Min_Per
                    ObjListItem.SubItems.Add(file.ReadLine());//TickDuration
                    ObjListItem.SubItems.Add(file.ReadLine());//Min_MP
                    ObjListItem.SubItems.Add(file.ReadLine());//NeedTarget
                    ObjListItem.SubItems.Add(type.ToString());//trait id
                    ObjListItem.SubItems.Add(sc_id.ToString());//shortcut id
                }
            }
            catch
            {
                //failed on buffs... bleh
                return;
            }

            //load items
            try
            {
                int cnt = Util.GetInt32(file.ReadLine());
                for (int i = 0; i < cnt; i++)
                {
                    //itemname
                    line = file.ReadLine();
                    ListViewItem ObjListItem = listView_item.Items.Add(line);
                    //checked
                    line = file.ReadLine();
                    if (Util.GetInt32(line) == 1)
                        ObjListItem.Checked = true;
                    else
                        ObjListItem.Checked = false;
                    //type
                    int type = Util.GetInt32(file.ReadLine());
                    ObjListItem.SubItems.Add(BuffTargetClass.Get_BuffTrigger_Name(type));

                    ObjListItem.SubItems.Add(file.ReadLine());//Min_Per
                    ObjListItem.SubItems.Add(file.ReadLine());//TickDuration
                    ObjListItem.SubItems.Add(type.ToString());//trait id
                    ObjListItem.SubItems.Add(file.ReadLine());//item id
                }
            }
            catch
            {
                //failed on items...bleh, maybe old save data?
                return;
            }

            //load DoNotItems
            try
            {
                int cnt = Util.GetInt32(file.ReadLine());

                uint id;
                for (int i = 0; i < cnt; i++)
                {
                    id = Util.GetUInt32(file.ReadLine());
                    ListViewItem ObjListItem = listView_donot_items.Items.Add(id.ToString());
                    ObjListItem.SubItems.Add(Util.GetItemName(id));
                }
            }
            catch
            {
                //failed to load DoNotItems
                return;
            }

            //load DoNotNPCs
            try
            {
                int cnt = Util.GetInt32(file.ReadLine());

                uint id;
                for (int i = 0; i < cnt; i++)
                {
                    id = Util.GetUInt32(file.ReadLine());
                    ListViewItem ObjListItem = listView_donot_npcs.Items.Add(id.ToString());
                    ObjListItem.SubItems.Add(Util.GetNPCName(id));
                }
            }
            catch
            {
                //failed to load DoNotNPCs
                return;
            }

            try
            {
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_autospoil.Checked = true;
                else
                    checkBox_autospoil.Checked = false;

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_spoilcrush.Checked = true;
                else
                    checkBox_spoilcrush.Checked = false;

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_autosweep.Checked = true;
                else
                    checkBox_autosweep.Checked = false;

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_ignoreitems.Checked = true;
                else
                    checkBox_ignoreitems.Checked = false;
            }
            catch
            {
                //failed to load... old data file?
                return;
            }

            //v227 stuff
            try
            {
                Globals.gamedata.botoptions.HealRange = Util.GetInt32(file.ReadLine());
                textBox_buffrange.Text = Globals.gamedata.botoptions.HealRange.ToString();

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_accept_party.Checked = true;
                else
                    checkBox_accept_party.Checked = false;

                textBox_accept_party.Text = file.ReadLine();

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_accept_rez.Checked = true;
                else
                    checkBox_accept_rez.Checked = false;

                textBox_accept_rez.Text = file.ReadLine();
            }
            catch
            {
                return;
            }

            //bounding polygon stuff
            try
            {
                int p_ct = Util.GetInt32(file.ReadLine());

                listView_border.Items.Clear();

                for (int i = 0; i < p_ct; i++)
                {
                    ListViewItem ObjListItem = listView_border.Items.Add(file.ReadLine());
                    ObjListItem.SubItems.Add(file.ReadLine());
                }
            }
            catch
            {
                return;
            }

            //load combat settings
            try
            {
                int cnt = Util.GetInt32(file.ReadLine());
                for (int i = 0; i < cnt; i++)
                {
                    CombatTargetClass ct = new CombatTargetClass();

                    if (Util.GetInt32(file.ReadLine()) == 1)
                        ct.Active = true;
                    else
                        ct.Active = false;

                    ct.Type = (BuffTriggers)Util.GetInt32(file.ReadLine());
                    ct.Conditional = Util.GetInt32(file.ReadLine());
                    ct.ShortCutID = Util.GetInt32(file.ReadLine());
                    ct.Min_Per = Util.GetInt32(file.ReadLine());
                    ct.Min_MP = Util.GetInt32(file.ReadLine());
                    ct.TickDuration = Util.GetInt32(file.ReadLine());

                    string type = BuffTargetClass.Get_BuffTrigger_Name((int)ct.Type);

                    ListViewItem ObjListItem = new ListViewItem(type);

                    switch (ct.Conditional)
                    {
                        case 0://>
                            ObjListItem.SubItems.Add(">=");
                            break;
                        case 1://<
                            ObjListItem.SubItems.Add("<=");
                            break;
                    }
                    ObjListItem.SubItems.Add(ct.Min_Per.ToString());
                    ObjListItem.SubItems.Add(((ct.ShortCutID % Globals.Skills_PerPage) + 1).ToString() + " : " + (((int)(ct.ShortCutID / Globals.Skills_PerPage)) + 1).ToString());
                    ObjListItem.SubItems.Add(ct.TickDuration.ToString());
                    ObjListItem.SubItems.Add(ct.Min_MP.ToString());
                    ObjListItem.SubItems.Add(((byte)ct.Type).ToString());
                    ObjListItem.SubItems.Add(ct.Conditional.ToString());
                    ObjListItem.SubItems.Add(ct.ShortCutID.ToString());
                    ObjListItem.Checked = ct.Active;

                    listView_combat.Items.Add(ObjListItem);
                }
            }
            catch
            {
                //failed on items...bleh, maybe old save data?
                return;
            }

            try
            {
                //active follow target
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_activefollow_target.Checked = true;
                else
                    checkBox_activefollow_target.Checked = false;
            }
            catch
            {
                //old data files
                return;
            }

            try
            {
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_active_target.Checked = true;
                else
                    checkBox_active_target.Checked = false;

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_active_attack.Checked = true;
                else
                    checkBox_active_attack.Checked = false;

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_pickup.Checked = true;
                else
                    checkBox_pickup.Checked = false;

                textBox_pickup_range.Text = file.ReadLine();

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_buff_control.Checked = true;
                else
                    checkBox_buff_control.Checked = false;

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_buff_shift.Checked = true;
                else
                    checkBox_buff_shift.Checked = false;

            }
            catch
            {
                //old data files
                return;
            }

            try
            {
                BotOptions.Target_ZRANGE = Util.GetInt32(file.ReadLine());
            }
            catch
            {
                //old data files
                return;
            }

            try
            {
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_auto_invite.Checked = true;
                else
                    checkBox_auto_invite.Checked = false;

                textBox_auto_invite.Text = file.ReadLine();

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_oop.Checked = true;
                else
                    checkBox_oop.Checked = false;

                textBox_oop.Text = file.ReadLine();

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_portect_priority.Checked = true;
                else
                    checkBox_portect_priority.Checked = false;
            }
            catch
            {
                //old data files
                return;
            }

            //v360 stuff
            try
            {
                //sound alerts
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_2waywar.Checked = true;
                else
                    checkBox_2waywar.Checked = false;
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_1waywar.Checked = true;
                else
                    checkBox_1waywar.Checked = false;
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_n1waywar.Checked = true;
                else
                    checkBox_n1waywar.Checked = false;
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_hp.Checked = true;
                else
                    checkBox_hp.Checked = false;
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_mp.Checked = true;
                else
                    checkBox_mp.Checked = false;
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_cp.Checked = true;
                else
                    checkBox_cp.Checked = false;
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_clan.Checked = true;
                else
                    checkBox_clan.Checked = false;
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_player.Checked = true;
                else
                    checkBox_player.Checked = false;
                textBox_hp.Text = file.ReadLine();
                textBox_mp.Text = file.ReadLine();
                textBox_cp.Text = file.ReadLine();
                textBox_clan.Text = file.ReadLine();
                textBox_player.Text = file.ReadLine();

                //logout
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_2waywar_logout.Checked = true;
                else
                    checkBox_2waywar_logout.Checked = false;
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_1waywar_logout.Checked = true;
                else
                    checkBox_1waywar_logout.Checked = false;
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_n1waywar_logout.Checked = true;
                else
                    checkBox_n1waywar_logout.Checked = false;
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_hp_logout.Checked = true;
                else
                    checkBox_hp_logout.Checked = false;
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_mp_logout.Checked = true;
                else
                    checkBox_mp_logout.Checked = false;
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_cp_logout.Checked = true;
                else
                    checkBox_cp_logout.Checked = false;
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_clan_logout.Checked = true;
                else
                    checkBox_clan_logout.Checked = false;
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_player_logout.Checked = true;
                else
                    checkBox_player_logout.Checked = false;
                textBox_hp_logout.Text = file.ReadLine();
                textBox_mp_logout.Text = file.ReadLine();
                textBox_cp_logout.Text = file.ReadLine();
                textBox_clan_logout.Text = file.ReadLine();
                textBox_player_logout.Text = file.ReadLine();

                //targeting stuff
                switch (Util.GetInt32(file.ReadLine()))
                {
                    case 0:
                        radioButton_type0.Checked = true;
                        break;
                    case 1:
                        radioButton_type1.Checked = true;
                        break;
                    default:
                        radioButton_type2.Checked = true;
                        break;
                }
                switch (Util.GetInt32(file.ReadLine()))
                {
                    case 0:
                        radioButton_attackable0.Checked = true;
                        break;
                    case 1:
                        radioButton_attackable1.Checked = true;
                        break;
                    default:
                        radioButton_attackable2.Checked = true;
                        break;
                }
                switch (Util.GetInt32(file.ReadLine()))
                {
                    case 0:
                        radioButton_alive0.Checked = true;
                        break;
                    case 1:
                        radioButton_alive1.Checked = true;
                        break;
                    default:
                        radioButton_alive2.Checked = true;
                        break;
                }
                switch (Util.GetInt32(file.ReadLine()))
                {
                    case 0:
                        radioButton_inbox0.Checked = true;
                        break;
                    case 1:
                        radioButton_inbox1.Checked = true;
                        break;
                    default:
                        radioButton_inbox2.Checked = true;
                        break;
                }
                switch (Util.GetInt32(file.ReadLine()))
                {
                    case 0:
                        radioButton_combat0.Checked = true;
                        break;
                    case 1:
                        radioButton_combat1.Checked = true;
                        break;
                    default:
                        radioButton_combat2.Checked = true;
                        break;
                }
            }
            catch
            {
                //old data files
            }

            //v371 stuff
            try
            {
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_active_move_first.Checked = true;
                else
                    checkBox_active_move_first.Checked = false;

                textBox_active_move_range.Text = file.ReadLine();

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_clan_ignore.Checked = true;
                else
                    checkBox_clan_ignore.Checked = false;

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_player_ignore.Checked = true;
                else
                    checkBox_player_ignore.Checked = false;


                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_whitechat.Checked = true;
                else
                    checkBox_whitechat.Checked = false;

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_privatemessage.Checked = true;
                else
                    checkBox_privatemessage.Checked = false;

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_friendchat.Checked = true;
                else
                    checkBox_friendchat.Checked = false;
            }
            catch
            {
                //old data file
            }

            //v383 Rest options
            try
            {
                //Solo Settings
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_RestBelowHP.Checked = true;
                else
                    checkBox_RestBelowHP.Checked = false;
                numericUpDown_RestBelowHP.Value = System.Convert.ToInt32(file.ReadLine());

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_RestUntilHP.Checked = true;
                else
                    checkBox_RestUntilHP.Checked = false;
                numericUpDown_RestUntilHP.Value = System.Convert.ToInt32(file.ReadLine());

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_RestBelowMP.Checked = true;
                else
                    checkBox_RestBelowMP.Checked = false;
                numericUpDown_RestBelowMP.Value = System.Convert.ToInt32(file.ReadLine());

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_RestUntilMP.Checked = true;
                else
                    checkBox_RestUntilMP.Checked = false;
                numericUpDown_RestUntilMP.Value = System.Convert.ToInt32(file.ReadLine());

                //Party Settings
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_FollowRest.Checked = true;
                else
                    checkBox_FollowRest.Checked = false;
                textBox_FollowRestName.Text = file.ReadLine();
            }
            catch
            {
                //old data file
            }

            //v384 Ignore Raidbosses and Chests
            //v384 Beta 2: Auto Unstuck
            //v384 Beta 6: Ignore Meshless Items
            try
            {
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_Ign_Raidbosses.Checked = true;
                else
                    checkBox_Ign_Raidbosses.Checked = false;

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_Ign_TreasureChests.Checked = true;
                else
                    checkBox_Ign_TreasureChests.Checked = false;

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_StuckCheck.Checked = true;
                else
                    checkBox_StuckCheck.Checked = false;

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_ignore_no_mesh.Checked = true;
                else
                    checkBox_ignore_no_mesh.Checked = false;
            }
            catch
            {
                //old data file
            }

            //v385 Ignore Summons & Normal Follow Attack & Only Pick Mine
            try
            {
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_Ign_Summons.Checked = true;
                else
                    checkBox_Ign_Summons.Checked = false;

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_active_move_first_normal.Checked = true;
                else
                    checkBox_active_move_first_normal.Checked = false;

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_OnlyPickMine.Checked = true;
                else
                    checkBox_OnlyPickMine.Checked = false;
            }
            catch
            {
                //old data file
            }

            //v386 Advanced Autofighter, Partyloot, Attack/pick only, Custom window title
            try
            {
                numericUpDown_anti_ks_delay.Value = System.Convert.ToInt32(file.ReadLine());
                numericUpDown_autofollow_delay.Value = System.Convert.ToInt32(file.ReadLine());
                numericUpDown_blacklist_tries.Value = System.Convert.ToInt32(file.ReadLine());
                //Loot Type
                comboBox_LootType.SelectedIndex = Util.GetInt32(file.ReadLine());
                //Attack Only
                if (Util.GetInt32(file.ReadLine()) == 1)
                {
                    checkBox_AttackOnly.Checked = true;
                }
                else
                {
                    checkBox_AttackOnly.Checked = false;
                }
                //Pick Only
                if (Util.GetInt32(file.ReadLine()) == 1)
                {
                    checkBox_PickOnly.Checked = true;
                }
                else
                {
                    checkBox_PickOnly.Checked = false;
                }
                textBox_Custom_WindowTitle.Text = file.ReadLine().ToString();
                if (textBox_Custom_WindowTitle.Text != String.Empty)
                {
                    this.Text = textBox_Custom_WindowTitle.Text;
                    Globals.gamedata.botoptions.CustomWindowTitle = true;
                    Globals.l2net_home.SetName(textBox_Custom_WindowTitle.Text);
                }
                else
                {
                    Globals.gamedata.botoptions.CustomWindowTitle = false;
                    Globals.l2net_home.SetName();
                    this.Text = "Bot Options";
                }

                // v389
                // Content Filtering

                if (Util.GetInt32(file.ReadLine()) == 1)
                {
                    cf_targetselected.Checked = true;
                }
                else
                {
                    cf_targetselected.Checked = false;
                }

                if (Util.GetInt32(file.ReadLine()) == 1)
                {
                    cf_targetunselected.Checked = true;
                }
                else
                {
                    cf_targetunselected.Checked = false;
                }

                if (Util.GetInt32(file.ReadLine()) == 1)
                {
                    cf_filtermagicskill.Checked = true;
                }
                else
                {
                    cf_filtermagicskill.Checked = false;
                }

                if (Util.GetInt32(file.ReadLine()) == 1)
                {
                    cf_ExBrExtraUserInfo.Checked = true;
                }
                else
                {
                    cf_ExBrExtraUserInfo.Checked = false;
                }

                if (Util.GetInt32(file.ReadLine()) == 1)
                {
                    cf_striptitle.Checked = true;
                }
                else
                {
                    cf_striptitle.Checked = false;
                }

                if (Util.GetInt32(file.ReadLine()) == 1)
                {
                    cf_stripenchant.Checked = true;
                }
                else
                {
                    cf_stripenchant.Checked = false;
                }

                if (Util.GetInt32(file.ReadLine()) == 1)
                {
                    cf_stripaugment.Checked = true;
                }
                else
                {
                    cf_stripaugment.Checked = false;
                }

                if (Util.GetInt32(file.ReadLine()) == 1)
                {
                    cf_zerononvisible.Checked = true;
                }
                else
                {
                    cf_zerononvisible.Checked = false;
                }

                if (Util.GetInt32(file.ReadLine()) == 1)
                {
                    cf_one_gender.Checked = true;
                }
                else
                {
                    cf_one_gender.Checked = false;
                }

                if (Util.GetInt32(file.ReadLine()) == 1)
                {
                    cf_simple_appearance.Checked = true;
                }
                else
                {
                    cf_simple_appearance.Checked = false;
                }

                if (Util.GetInt32(file.ReadLine()) == 1)
                {
                    cf_norecs.Checked = true;
                }
                else
                {
                    cf_norecs.Checked = false;
                }

                if (Util.GetInt32(file.ReadLine()) == 1)
                {
                    cf_dwarfmode.Checked = true;
                }
                else
                {
                    cf_dwarfmode.Checked = false;
                }


                //v391: Auto Blacklist
                if (Util.GetInt32(file.ReadLine()) == 1)
                {
                    checkBox_AutoBlacklist.Checked = true;
                }
                else
                {
                    checkBox_AutoBlacklist.Checked = false;
                }
                //v391: Move before target
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_movebeforetargeting.Checked = true;
                else
                    checkBox_movebeforetargeting.Checked = false;

                //v391: Dead logout/return/Toggle
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_DeadLogOut.Checked = true;
                else
                    checkBox_DeadLogOut.Checked = false;

                int tmp = Util.GetInt32(file.ReadLine());

                if (tmp >= 0)
                {
                    checkBox_DeadReturn.Checked = true;
                    comboBox_DeadReturn.SelectedIndex = tmp;
                }
                else
                {
                    checkBox_DeadReturn.Checked = false;
                    comboBox_DeadReturn.SelectedIndex = 0;
                }

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_DeadToggleBotting.Checked = true;
                else
                    checkBox_DeadToggleBotting.Checked = false;

                //v391 AutoSpoil Until success
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_UntilSuccess.Checked = true;
                else
                    checkBox_UntilSuccess.Checked = false;

                //v391 Pickup After Attack
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_PickupAfterAttack.Checked = true;
                else
                    checkBox_PickupAfterAttack.Checked = false;

                //v391 Spoil MP Above
                textBox_spoil_mp.Text = file.ReadLine();
                if (string.IsNullOrWhiteSpace(textBox_spoil_mp.Text))
                    textBox_spoil_mp.Text = "100";

                //v391 Pet Assist
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_pet_autoassist.Checked = true;
                else
                    checkBox_pet_autoassist.Checked = false;

                //v391 Active follow attack instant
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_activefollow_attack_Instant.Checked = true;
                else
                    checkBox_activefollow_attack_Instant.Checked = false;

                //v392 Pickuptimeout
                numericUpDown_pickuptimeout.Value = (Util.GetInt32(file.ReadLine()));

                //v392B11: Summon stuff
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_Summon_autoassist.Checked = true;
                else
                    checkBox_Summon_autoassist.Checked = false;

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_pet_soloattack.Checked = true;
                else
                    checkBox_pet_soloattack.Checked = false;

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_summon_instantattack.Checked = true;
                else
                    checkBox_summon_instantattack.Checked = false;

                //v393: Plunder
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_use_plunder.Checked = true;
                else
                    checkBox_use_plunder.Checked = false;

            }
            catch
            {
                //Old Data file
            }
            //v396 cancel target
            try
            {
                //v396: Cancel_target
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_cancel_target.Checked = true;
                else
                    checkBox_cancel_target.Checked = false;

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_drop_leader.Checked = true;
                else
                    checkBox_drop_leader.Checked = false;
            }
            catch
            {
                //Old Data file
            }
            //party/alliance accept shit
            try
            {
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_accept_rez_clan.Checked = true;
                else
                    checkBox_accept_rez_clan.Checked = false;

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_accept_rez_alliance.Checked = true;
                else
                    checkBox_accept_rez_alliance.Checked = false; 
                
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_accept_party_clan.Checked = true;
                else
                    checkBox_accept_party_clan.Checked = false;

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_accept_party_alliance.Checked = true;
                else
                    checkBox_accept_party_alliance.Checked = false;


            }
            catch
            {
                //Old Data file
            }

            //party rez accept
            try
            {
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_accept_rez_Party.Checked = true;
                else
                    checkBox_accept_rez_Party.Checked = false;
                }
            catch
            {
                //Old Data file
            }
            
            //Out of combat stuff
            try
            {
                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_MoveToLoc.Checked = true;
                else
                    checkBox_MoveToLoc.Checked = false;

                if (Util.GetInt32(file.ReadLine()) == 1)
                    checkBox_OutOfCombat.Checked = true;
                else
                    checkBox_OutOfCombat.Checked = false;


                textBox_Moveto_X.Text = Util.GetInt32(file.ReadLine()).ToString();
                textBox_Moveto_Y.Text = Util.GetInt32(file.ReadLine()).ToString();
                textBox_Moveto_Z.Text = Util.GetInt32(file.ReadLine()).ToString();
                textBox_MoveToLeash.Text = Util.GetInt32(file.ReadLine()).ToString();

            }
            catch
            {
                //Old Data file
            }

            //load toggles
            try
            {
                int cnt = Util.GetInt32(file.ReadLine());
                for (int i = 0; i < cnt; i++)
                {
                    //skillname
                    string skillname = file.ReadLine();
                    ListViewItem ObjListItem = listView_toggles.Items.Add(skillname);

                    //checked
                    line = file.ReadLine();
                    if (Util.GetInt32(line) == 1)
                        ObjListItem.Checked = true;
                    else
                        ObjListItem.Checked = false;

                    //trait
                    int trait = Util.GetInt32(file.ReadLine());
                    ObjListItem.SubItems.Add(BuffTargetClass.Get_BuffTrigger_Name_Toggle(trait));
                    
                    ObjListItem.SubItems.Add(file.ReadLine()); //XX>%
                    ObjListItem.SubItems.Add(file.ReadLine()); //XX<%
                    ObjListItem.SubItems.Add(trait.ToString()); //traitID
                    ObjListItem.SubItems.Add(file.ReadLine());//shortcut id
                }
            }
            catch
            {
                //failed on toggles... bleh
                return;
            }

            /*all the buff/heal settings
                    file.WriteLine(lv.SubItems[0].Text);//skill name
                    if (lv.Checked)
                        file.WriteLine("1");
                    else
                        file.WriteLine("0");
                    file.WriteLine(Util.GetInt32(lv.SubItems[1].Text));//trait
                    file.WriteLine(Util.GetInt32(lv.SubItems[2].Text));//XX>%
                    file.WriteLine(Util.GetInt32(lv.SubItems[3].Text));//XX<%
                    file.WriteLine(Util.GetInt32(lv.SubItems[4].Text));//traitID
                    file.WriteLine(Util.GetInt32(lv.SubItems[5].Text));//skillID
            }*/
        }
Beispiel #2
0
        private void button_save_Click(object sender, System.EventArgs e)
        {
            //save out the options
            ////////////////////////PARTY OPTIONS
            if (checkBox_activefollow.Checked)
                Globals.gamedata.botoptions.ActiveFollow = 1;
            else
                Globals.gamedata.botoptions.ActiveFollow = 0;

            Globals.gamedata.botoptions.Set_ActiveFollow(textBox_activefollow_name.Text);

            if (radioButton_ActiveFollow_style1.Checked)
                Globals.gamedata.botoptions.ActiveFollowStyle = 1;//walker style
            else
                Globals.gamedata.botoptions.ActiveFollowStyle = 0;//l2.net style

            Globals.gamedata.botoptions.ActiveFollowDistance = Util.GetInt32(textBox_ActiveFollow_Dist.Text);

            if (checkBox_activefollow_attack.Checked)
                Globals.gamedata.botoptions.ActiveFollowAttack = 1;
            else
                Globals.gamedata.botoptions.ActiveFollowAttack = 0;

            if (checkBox_activefollow_attack_Instant.Checked)
                Globals.gamedata.botoptions.ActiveFollowAttackInstant = 1;
            else
                Globals.gamedata.botoptions.ActiveFollowAttackInstant = 0;

            if (checkBox_activefollow_target.Checked)
                Globals.gamedata.botoptions.ActiveFollowTarget = 1;
            else
                Globals.gamedata.botoptions.ActiveFollowTarget = 0;

            if (checkBox_autosweep.Checked)
                Globals.gamedata.botoptions.AutoSweep = 1;
            else
                Globals.gamedata.botoptions.AutoSweep = 0;

            if (checkBox_autospoil.Checked)
                Globals.gamedata.botoptions.AutoSpoil = 1;
            else
                Globals.gamedata.botoptions.AutoSpoil = 0;

            if (checkBox_UntilSuccess.Checked)
                Globals.gamedata.botoptions.AutoSpoilUntilSuccess = 1;
            else
                Globals.gamedata.botoptions.AutoSpoilUntilSuccess = 0;

            Globals.gamedata.botoptions.SpoilMPAbove = System.Convert.ToInt32(textBox_spoil_mp.Text);

            if (checkBox_spoilcrush.Checked)
                Globals.gamedata.botoptions.SpoilCrush = 1;
            else
                Globals.gamedata.botoptions.SpoilCrush = 0;

            if (checkBox_use_plunder.Checked)
                Globals.gamedata.botoptions.Plunder = 1;
            else
                Globals.gamedata.botoptions.Plunder = 0;

            if (checkBox_ignoreitems.Checked)
                Globals.gamedata.botoptions.IgnoreItems = 1;
            else
                Globals.gamedata.botoptions.IgnoreItems = 0;

            if (checkBox_PickOnly.Checked)
                Globals.gamedata.botoptions.PickOnlyItemsInList = 1;
            else
                Globals.gamedata.botoptions.PickOnlyItemsInList = 0;

            if (checkBox_AttackOnly.Checked)
                Globals.gamedata.botoptions.AttackOnlyMobsInList = 1;
            else
                Globals.gamedata.botoptions.AttackOnlyMobsInList = 0;

            if (checkBox_ignore_no_mesh.Checked)
                Globals.gamedata.botoptions.IgnoreMeshlessItems = 1;
            else
                Globals.gamedata.botoptions.IgnoreMeshlessItems = 0;

            Globals.gamedata.botoptions.HealRange = Util.GetInt32(textBox_buffrange.Text);

            if (checkBox_accept_party.Checked)
                Globals.gamedata.botoptions.AcceptParty = 1;
            else
                Globals.gamedata.botoptions.AcceptParty = 0;

            Globals.gamedata.botoptions.AcceptPartyNames = textBox_accept_party.Text;

            if (checkBox_auto_invite.Checked)
                Globals.gamedata.botoptions.SendParty = 1;
            else
                Globals.gamedata.botoptions.SendParty = 0;

            Globals.gamedata.botoptions.SendPartyNames = textBox_auto_invite.Text;

            if (checkBox_oop.Checked)
                Globals.gamedata.botoptions.OOP = 1;
            else
                Globals.gamedata.botoptions.OOP = 0;
            Globals.gamedata.botoptions.OOPNames = textBox_oop.Text;

            if (checkBox_drop_leader.Checked)
                Globals.gamedata.botoptions.LeavePartyOnLeader = 1;
            else
                Globals.gamedata.botoptions.LeavePartyOnLeader = 0;

            if (checkBox_accept_rez_clan.Checked)
                Globals.gamedata.botoptions.AcceptRezClan = 1;
            else
                Globals.gamedata.botoptions.AcceptRezClan = 0;

            if (checkBox_accept_rez_Party.Checked)
                Globals.gamedata.botoptions.AcceptRezParty = 1;
            else
                Globals.gamedata.botoptions.AcceptRezParty = 0;

            if (checkBox_accept_rez_alliance.Checked)
                Globals.gamedata.botoptions.AcceptRezAlly = 1;
            else
                Globals.gamedata.botoptions.AcceptRezAlly = 0;

            if (checkBox_accept_party_clan.Checked)
                Globals.gamedata.botoptions.AcceptPartyClan = 1;
            else
                Globals.gamedata.botoptions.AcceptPartyClan = 0;

            if (checkBox_accept_party_alliance.Checked)
                Globals.gamedata.botoptions.AcceptPartyAlly = 1;
            else
                Globals.gamedata.botoptions.AcceptPartyAlly = 0;

            

            //set up oops ID
            Globals.gamedata.botoptions.OOPIDs = new ArrayList();
            Globals.gamedata.botoptions.OOPNamesArray = Util.GetArray(Globals.gamedata.botoptions.OOPNames);
            Globals.gamedata.botoptions.OOPIDs = new System.Collections.ArrayList();

            if (Globals.gamedata.botoptions.OOPNamesArray.Count > 0)
            {
                Globals.PlayerLock.EnterReadLock();
                try
                {
                    foreach (Player_Info player in Globals.gamedata.nearby_chars.Values)
                    {
                        if (Globals.gamedata.botoptions.OOPNamesArray.Contains(player.Name.ToUpperInvariant()))
                        {
                            Globals.gamedata.botoptions.OOPIDs.Add(player.ID);
                        }
                    }
                }
                catch
                {
                    //oops
                }
                finally
                {
                    Globals.PlayerLock.ExitReadLock();
                }
            }
            /*********** Rest Options **************/
            /* Rest Below */
            if (checkBox_RestBelowHP.Checked)
            {
                Globals.gamedata.botoptions.RestBelowHP = 1;
                try
                {
                    Globals.gamedata.botoptions.RestBelowHealth = (Globals.gamedata.my_char.Max_HP * (float)numericUpDown_RestBelowHP.Value / 100);
                }
                catch
                {
                    Globals.l2net_home.Add_Error("Invalid rest below HP value, please enter a number between 0 and 100");
                }
                Globals.l2net_home.Add_Text("Rest Below " + Globals.gamedata.botoptions.RestBelowHealth.ToString() + " HP", Globals.Green, TextType.BOT);
            }
            else
                Globals.gamedata.botoptions.RestBelowHP = 0;

            if (checkBox_RestBelowMP.Checked)
            {
                Globals.gamedata.botoptions.RestBelowMP = 1;
                try
                {
                    Globals.gamedata.botoptions.RestBelowMana = (Globals.gamedata.my_char.Max_MP * (float)numericUpDown_RestBelowMP.Value / 100);
                }
                catch
                {
                    Globals.l2net_home.Add_Error("Invalid rest below MP value, please enter a number between 0 and 100");
                }
                Globals.l2net_home.Add_Text("Rest Below " + Globals.gamedata.botoptions.RestBelowMana.ToString() + " MP", Globals.Green, TextType.BOT);
            }
            else
                Globals.gamedata.botoptions.RestBelowMP = 0;

            /* Rest Until */
            if (checkBox_RestUntilHP.Checked)
            {
                /*
                Globals.gamedata.botoptions.RestUntilHP = 1;
                */
                try
                {
                    Globals.gamedata.botoptions.RestUntilHealth = (Globals.gamedata.my_char.Max_HP * (float)numericUpDown_RestUntilHP.Value / 100);
                }
                catch
                {
                    Globals.l2net_home.Add_Error("Invalid rest until HP value, please enter a number between 0 and 100");
                }
                Globals.l2net_home.Add_Text("Rest Until " + Globals.gamedata.botoptions.RestUntilHealth.ToString() + " HP", Globals.Green, TextType.BOT);
            }
            else
            {
                /*
                Globals.gamedata.botoptions.RestUntilHP = 0;
                 */
                Globals.gamedata.botoptions.RestUntilHealth = Globals.gamedata.my_char.Max_HP;
            }

            if (checkBox_RestUntilMP.Checked)
            {
                /*
                Globals.gamedata.botoptions.RestUntilMP = 1;
                */
                try
                {
                    Globals.gamedata.botoptions.RestUntilMana = (Globals.gamedata.my_char.Max_MP * (float)numericUpDown_RestUntilMP.Value / 100);
                }
                catch
                {
                    Globals.l2net_home.Add_Error("Invalid rest until MP value, please enter a number between 0 and 100");
                }
                Globals.l2net_home.Add_Text("Rest Until " + Globals.gamedata.botoptions.RestUntilMana.ToString() + " MP", Globals.Green, TextType.BOT);
            }
            else
            {
                /*
                Globals.gamedata.botoptions.RestUntilMP = 0;
                 */
                Globals.gamedata.botoptions.RestUntilMana = Globals.gamedata.my_char.Max_MP;
            }


            /* Follow Rest */
            if (checkBox_FollowRest.Checked)
                Globals.gamedata.botoptions.FollowRest = 1;
            else
                Globals.gamedata.botoptions.FollowRest = 0;
            Globals.gamedata.botoptions.Set_FollowRest(textBox_FollowRestName.Text); //ActiveFollow(textBox_activefollow_name.Text);

            /* Stuck Check */
            if (checkBox_StuckCheck.Checked)
                Globals.gamedata.botoptions.StuckCheck = 1;
            else
                Globals.gamedata.botoptions.StuckCheck = 0;

            /* Auto Blacklist */
            if (checkBox_AutoBlacklist.Checked)
                Globals.gamedata.botoptions.AutoBlacklist = 1;
            else
                Globals.gamedata.botoptions.AutoBlacklist = 0;


            /*************************/

            if (checkBox_accept_rez.Checked)
                Globals.gamedata.botoptions.AcceptRez = 1;
            else
                Globals.gamedata.botoptions.AcceptRez = 0;

            Globals.gamedata.botoptions.AcceptRezNames = textBox_accept_rez.Text;

            if (checkBox_active_target.Checked)
                Globals.gamedata.botoptions.Target = 1;
            else
                Globals.gamedata.botoptions.Target = 0;

            if (checkBox_cancel_target.Checked)
                Globals.gamedata.botoptions.Cancel_Target = 1;
            else
                Globals.gamedata.botoptions.Cancel_Target = 0;

            //move to location stuff
            if (checkBox_MoveToLoc.Checked)
                Globals.gamedata.botoptions.MoveToLoc = 1;
            else
                Globals.gamedata.botoptions.MoveToLoc = 0;

            if (checkBox_OutOfCombat.Checked)
                Globals.gamedata.botoptions.OutOfCombat = 1;
            else
                Globals.gamedata.botoptions.OutOfCombat = 0;

            Globals.gamedata.botoptions.Moveto_X = textBox_Moveto_X.Text;
            Globals.gamedata.botoptions.Moveto_Y = textBox_Moveto_Y.Text;
            Globals.gamedata.botoptions.Moveto_Z = textBox_Moveto_Z.Text;
            Globals.gamedata.botoptions.MoveToLeash = System.Convert.ToInt32(textBox_MoveToLeash.Text);


            if (checkBox_active_attack.Checked)
                Globals.gamedata.botoptions.Attack = 1;
            else
                Globals.gamedata.botoptions.Attack = 0;

            if (checkBox_pet_autoassist.Checked)
                Globals.gamedata.botoptions.PetAssist = 1;
            else
                Globals.gamedata.botoptions.PetAssist = 0;

            if (checkBox_Summon_autoassist.Checked)
                Globals.gamedata.botoptions.SummonAssist = 1;
            else
                Globals.gamedata.botoptions.SummonAssist = 0;

            if (checkBox_pet_soloattack.Checked)
                Globals.gamedata.botoptions.PetAttackSolo = 1;
            else
                Globals.gamedata.botoptions.PetAttackSolo = 0;

            if (checkBox_summon_instantattack.Checked)
                Globals.gamedata.botoptions.SummonInstantAttack = 1;
            else
                Globals.gamedata.botoptions.SummonInstantAttack = 0;

            if (checkBox_active_move_first.Checked)
                Globals.gamedata.botoptions.MoveFirst = 1;
            else
                Globals.gamedata.botoptions.MoveFirst = 0;

            Globals.gamedata.botoptions.MoveRange = Util.GetInt32(textBox_active_move_range.Text);

            if (checkBox_pickup.Checked)
                Globals.gamedata.botoptions.Pickup = 1;
            else
                Globals.gamedata.botoptions.Pickup = 0;

            if (checkBox_PickupAfterAttack.Checked)
                Globals.gamedata.botoptions.PickupAfterAttack = 1;
            else
                Globals.gamedata.botoptions.PickupAfterAttack = 0;

            if (checkBox_OnlyPickMine.Checked)
                Globals.gamedata.botoptions.OnlyPickMine = 1;
            else
                Globals.gamedata.botoptions.OnlyPickMine = 0;

            Globals.gamedata.botoptions.LootRange = Util.GetInt32(textBox_pickup_range.Text);

            if (checkBox_buff_control.Checked)
                Globals.gamedata.botoptions.ControlBuffing = 1;
            else
                Globals.gamedata.botoptions.ControlBuffing = 0;

            if (checkBox_buff_shift.Checked)
                Globals.gamedata.botoptions.ShiftBuffing = 1;
            else
                Globals.gamedata.botoptions.ShiftBuffing = 0;

            if (checkBox_portect_priority.Checked)
                Globals.gamedata.botoptions.ProtectPriority = 1;
            else
                Globals.gamedata.botoptions.ProtectPriority = 0;

            BotOptions.Target_ZRANGE = Util.GetInt32(textBox_zrange.Text);

            ////////////////////////BUFF OPTIONS
            Globals.BuffListLock.EnterWriteLock();
            try
            {
                BotOptions.BuffTargets.Clear();

                string inp, tmp;

                foreach (System.Windows.Forms.ListViewItem lv in listView_buffheal.CheckedItems)
                {
                    BuffTargetClass btc = new BuffTargetClass();

                    btc.Active = lv.Checked;
                    btc.Type = (BuffTriggers)Util.GetInt32(lv.SubItems[7].Text);
                    btc.SkillID = Util.GetUInt32(lv.SubItems[8].Text);
                    btc.Min_Per = Util.GetInt32(lv.SubItems[3].Text);
                    btc.TickDuration = Util.GetInt64(lv.SubItems[4].Text) * TimeSpan.TicksPerSecond;
                    btc.Min_MP = Util.GetInt32(lv.SubItems[5].Text);
                    btc.NeedTarget = Util.GetInt32(lv.SubItems[6].Text);

                    btc.TargetNames.Clear();

                    //set the names
                    inp = lv.SubItems[2].Text;
                    while (inp.Length > 0)
                    {
                        int pipe;
                        pipe = inp.IndexOf(';');
                        if (pipe == -1)
                        {
                            tmp = inp;
                            inp = "";
                            tmp = tmp.ToUpperInvariant();
                            btc.TargetNames.Add(tmp);
                        }
                        else
                        {
                            tmp = inp.Substring(0, pipe);
                            inp = inp.Remove(0, pipe + 1);
                            tmp = tmp.ToUpperInvariant();
                            btc.TargetNames.Add(tmp);
                        }
                    }

                    BotOptions.BuffTargets.Add(btc);
                }
            }//unlock
            finally
            {
                Globals.BuffListLock.ExitWriteLock();
            }

            ////////////////////////ITEM OPTIONS
            Globals.ItemListLock.EnterWriteLock();
            try
            {
                BotOptions.ItemTargets.Clear();

                foreach (System.Windows.Forms.ListViewItem lv in listView_item.CheckedItems)
                {
                    ItemTargetClass it;

                    it = new ItemTargetClass();
                    it.Active = lv.Checked;
                    it.Type = (BuffTriggers)Util.GetInt32(lv.SubItems[4].Text);
                    it.ItemID = Util.GetUInt32(lv.SubItems[5].Text);
                    it.Min_Per = Util.GetInt32(lv.SubItems[2].Text);
                    it.TickDuration = ((long)Util.GetInt32(lv.SubItems[3].Text)) * System.TimeSpan.TicksPerMillisecond;

                    BotOptions.ItemTargets.Add(it);
                }

            }
            finally
            {
                Globals.ItemListLock.ExitWriteLock();
            }
            ////////////////////////COMBAT OPTIONS
            Globals.CombatListLock.EnterWriteLock();
            try
            {
                BotOptions.CombatTargets.Clear();

                foreach (System.Windows.Forms.ListViewItem lv in listView_combat.CheckedItems)
                {
                    CombatTargetClass ct;

                    ct = new CombatTargetClass();
                    ct.Active = lv.Checked;
                    ct.Type = (BuffTriggers)Util.GetInt32(lv.SubItems[6].Text);
                    ct.Conditional = Util.GetInt32(lv.SubItems[7].Text);
                    ct.ShortCutID = Util.GetInt32(lv.SubItems[8].Text);
                    ct.Min_Per = Util.GetInt32(lv.SubItems[2].Text);
                    ct.Min_MP = Util.GetInt32(lv.SubItems[5].Text);
                    ct.TickDuration = ((long)Util.GetInt32(lv.SubItems[4].Text)) * System.TimeSpan.TicksPerMillisecond;

                    BotOptions.CombatTargets.Add(ct);
                }

            }
            finally
            {
                Globals.CombatListLock.ExitWriteLock();
            }
            ///////////////////////Do Not
            Globals.DoNotItemLock.EnterWriteLock();
            try
            {
                BotOptions.DoNotItems.Clear();

                foreach (System.Windows.Forms.ListViewItem lv in listView_donot_items.Items)
                {
                    if (lv != null)
                    {
                        BotOptions.DoNotItems.Add(Util.GetUInt32(lv.SubItems[0].Text)); //Item ID
                    }
                }

            }
            finally
            {
                Globals.DoNotItemLock.ExitWriteLock();
            }

            Globals.DoNotNPCLock.EnterWriteLock();
            try
            {
                BotOptions.DoNotNPCs.Clear();

                foreach (System.Windows.Forms.ListViewItem lv in listView_donot_npcs.Items)
                {
                    try
                    {
                        if (lv != null)
                        {
                            BotOptions.DoNotNPCs.Add(Util.GetUInt32(lv.SubItems[0].Text));
                        }
                    }
                    catch
                    {

                    }
                }

                if (checkBox_Ign_Raidbosses.Checked)
                {
                    uint tmpID;
                    foreach (uint rbID in RaidBossIDs)
                    {
                        tmpID = rbID; //Meh...
                        if (tmpID < Globals.NPC_OFF)
                        {
                            tmpID += Globals.NPC_OFF;
                        }
                        BotOptions.DoNotNPCs.Add(tmpID);
                    }
                }

                if (checkBox_Ign_Summons.Checked)
                {
                    uint tmpID;
                    foreach (uint smID in SummonIDs)
                    {
                        tmpID = smID; //Meh...
                        if (tmpID < Globals.NPC_OFF)
                        {
                            tmpID += Globals.NPC_OFF;
                        }
                        BotOptions.DoNotNPCs.Add(tmpID);
                    }
                }

                if (checkBox_Ign_TreasureChests.Checked)
                {
                    uint tmpID;
                    foreach (uint chestID in TreasureChestIDs)
                    {
                        tmpID = chestID;
                        if (tmpID < Globals.NPC_OFF)
                        {
                            tmpID += Globals.NPC_OFF;
                        }
                        BotOptions.DoNotNPCs.Add(tmpID);
                    }
                }
            }
            finally
            {
                Globals.DoNotNPCLock.ExitWriteLock();
            }

            ////////////////////////////Bounding Polygon
            Globals.gamedata.Paths.PointList.Clear();

            foreach (System.Windows.Forms.ListViewItem lv in listView_border.Items)
            {
                Point p = new Point();
                p.X = Util.GetInt32(lv.SubItems[0].Text);
                p.Y = Util.GetInt32(lv.SubItems[1].Text);

                Globals.gamedata.Paths.PointList.Add(p);
            }

            //Sound Alerts
            Globals.gamedata.alertoptions.beepon_2waywar = checkBox_2waywar.Checked;
            Globals.gamedata.alertoptions.beepon_1waywar = checkBox_1waywar.Checked;
            Globals.gamedata.alertoptions.beepon_n1waywar = checkBox_n1waywar.Checked;
            Globals.gamedata.alertoptions.beepon_hp = checkBox_hp.Checked;
            Globals.gamedata.alertoptions.beepon_mp = checkBox_mp.Checked;
            Globals.gamedata.alertoptions.beepon_cp = checkBox_cp.Checked;
            Globals.gamedata.alertoptions.beepon_clan = checkBox_clan.Checked;
            Globals.gamedata.alertoptions.beepon_player = checkBox_player.Checked;
            Globals.gamedata.alertoptions.hp_value = Util.GetInt32(textBox_hp.Text);
            Globals.gamedata.alertoptions.mp_value = Util.GetInt32(textBox_mp.Text);
            Globals.gamedata.alertoptions.cp_value = Util.GetInt32(textBox_cp.Text);
            Globals.gamedata.alertoptions.clan_value = textBox_clan.Text;
            Globals.gamedata.alertoptions.player_value = textBox_player.Text;
            Globals.gamedata.alertoptions.beepon_clan_ignoreparty = checkBox_clan_ignore.Checked;
            Globals.gamedata.alertoptions.beepon_player_ignoreparty = checkBox_player_ignore.Checked;
            Globals.gamedata.alertoptions.beepon_whitechat = checkBox_whitechat.Checked;
            Globals.gamedata.alertoptions.beepon_privatemessage = checkBox_privatemessage.Checked;
            Globals.gamedata.alertoptions.beepon_friendchat = checkBox_friendchat.Checked;

            //Logout
            Globals.gamedata.alertoptions.logouton_2waywar = checkBox_2waywar_logout.Checked;
            Globals.gamedata.alertoptions.logouton_1waywar = checkBox_1waywar_logout.Checked;
            Globals.gamedata.alertoptions.logouton_n1waywar = checkBox_n1waywar_logout.Checked;
            Globals.gamedata.alertoptions.logouton_hp = checkBox_hp_logout.Checked;
            Globals.gamedata.alertoptions.logouton_mp = checkBox_mp_logout.Checked;
            Globals.gamedata.alertoptions.logouton_cp = checkBox_cp_logout.Checked;
            Globals.gamedata.alertoptions.logouton_clan = checkBox_clan_logout.Checked;
            Globals.gamedata.alertoptions.logouton_player = checkBox_player_logout.Checked;
            Globals.gamedata.alertoptions.hp_value_logout = Util.GetInt32(textBox_hp_logout.Text);
            Globals.gamedata.alertoptions.mp_value_logout = Util.GetInt32(textBox_mp_logout.Text);
            Globals.gamedata.alertoptions.cp_value_logout = Util.GetInt32(textBox_cp_logout.Text);
            Globals.gamedata.alertoptions.clan_value_logout = textBox_clan_logout.Text;
            Globals.gamedata.alertoptions.player_value_logout = textBox_player_logout.Text;

            //targeting
            if (radioButton_type0.Checked)
                BotOptions.Target_TYPE = 0;
            if (radioButton_type1.Checked)
                BotOptions.Target_TYPE = 1;
            if (radioButton_type2.Checked)
                BotOptions.Target_TYPE = 2;
            if (radioButton_attackable0.Checked)
                BotOptions.Target_ATTACKABLE = 0;
            if (radioButton_attackable1.Checked)
                BotOptions.Target_ATTACKABLE = 1;
            if (radioButton_attackable2.Checked)
                BotOptions.Target_ATTACKABLE = 2;
            if (radioButton_alive0.Checked)
                BotOptions.Target_ALIVE = 0;
            if (radioButton_alive1.Checked)
                BotOptions.Target_ALIVE = 1;
            if (radioButton_alive2.Checked)
                BotOptions.Target_ALIVE = 2;
            if (radioButton_inbox0.Checked)
                BotOptions.Target_INBOX = 0;
            if (radioButton_inbox1.Checked)
                BotOptions.Target_INBOX = 1;
            if (radioButton_inbox2.Checked)
                BotOptions.Target_INBOX = 2;
            if (radioButton_combat0.Checked)
                BotOptions.Target_COMBAT = 0;
            if (radioButton_combat1.Checked)
                BotOptions.Target_COMBAT = 1;
            if (radioButton_combat2.Checked)
                BotOptions.Target_COMBAT = 2;
            //this.Hide();

            //Normal Move Before Attack v385//
            if (checkBox_active_move_first_normal.Checked)
                Globals.gamedata.botoptions.MoveFirstNormal = 1;
            else
                Globals.gamedata.botoptions.MoveFirstNormal = 0;

            //Move before targeting v391
            if (checkBox_movebeforetargeting.Checked)
                Globals.gamedata.botoptions.MoveBeforeTargeting = 1;
            else
                Globals.gamedata.botoptions.MoveBeforeTargeting = 0;

            //Dead logout/return/toggle v391
            if (checkBox_DeadReturn.Checked)
            {
                Globals.gamedata.botoptions.DeadReturn = comboBox_DeadReturn.SelectedIndex;
                Globals.gamedata.botoptions.DeadReturnDelay = System.Convert.ToInt32(textBox_DeadReturnDelay.Text);
            }
            else
            {
                Globals.gamedata.botoptions.DeadReturn = -1;
            }

            if (checkBox_DeadLogOut.Checked)
            {
                Globals.gamedata.botoptions.DeadLogout = 1;
                Globals.gamedata.botoptions.DeadLogoutDelay = System.Convert.ToInt32(textBox_DeadLogOutDelay.Text);
            }
            else
                Globals.gamedata.botoptions.DeadLogout = 0;

            if (checkBox_DeadToggleBotting.Checked)
                Globals.gamedata.botoptions.DeadToggleBotting = 1;
            else
                Globals.gamedata.botoptions.DeadToggleBotting = 0;

            //Advanced
            Globals.gamedata.botoptions.AntiKSDelay = (int)numericUpDown_anti_ks_delay.Value;
            Globals.gamedata.botoptions.AutoFollowDelay = (int)numericUpDown_autofollow_delay.Value;
            Globals.gamedata.botoptions.BlacklistTries = (int)numericUpDown_blacklist_tries.Value;
            Globals.gamedata.botoptions.PickupTimeout = (int)numericUpDown_pickuptimeout.Value;


            //Loot Type v386
            if (comboBox_LootType.SelectedIndex == 0)
            {
                Globals.gamedata.LootType = 0;
            }
            else if (comboBox_LootType.SelectedIndex == 1)
            {
                Globals.gamedata.LootType = 1;
            }
            else if (comboBox_LootType.SelectedIndex == 2)
            {
                Globals.gamedata.LootType = 2;
            }
            else if (comboBox_LootType.SelectedIndex == 3)
            {
                Globals.gamedata.LootType = 3;
            }
            else if (comboBox_LootType.SelectedIndex == 4)
            {
                Globals.gamedata.LootType = 4;
            }
            else
            {
                Globals.gamedata.LootType = 0;
            }

            // Content Filter
            if (cf_targetselected.Checked)
                Globals.lagfilter_TargetSelected = true;
            else
                Globals.lagfilter_TargetSelected = false;

            if (cf_targetunselected.Checked)
                Globals.lagfilter_TargetUnselected = true;
            else
                Globals.lagfilter_TargetUnselected = false;

            if (cf_filtermagicskill.Checked)
                Globals.lagfilter_Skills = true;
            else
                Globals.lagfilter_Skills = false;

            if (cf_ExBrExtraUserInfo.Checked)
                Globals.lagfilter_ExBrExtraUserInfo = true;
            else
                Globals.lagfilter_ExBrExtraUserInfo = false;

            if (cf_striptitle.Checked)
                Globals.lagfilter_xf_ci_striptitle = true;
            else
                Globals.lagfilter_xf_ci_striptitle = false;

            if (cf_stripenchant.Checked)
                Globals.lagfilter_xf_ci_stripenchant = true;
            else
                Globals.lagfilter_xf_ci_stripenchant = false;

            if (cf_stripaugment.Checked)
                Globals.lagfilter_xf_ci_stripaug = true;
            else
                Globals.lagfilter_xf_ci_stripaug = false;

            if (cf_zerononvisible.Checked)
                Globals.lagfilter_xf_ci_stripunseen = true;
            else
                Globals.lagfilter_xf_ci_stripunseen = false;

            if (cf_one_gender.Checked)
                Globals.lagfilter_xf_ci_simple_gender = true;
            else
                Globals.lagfilter_xf_ci_simple_gender = false;

            if (cf_simple_appearance.Checked)
                Globals.lagfilter_xf_ci_simple_apperance = true;
            else
                Globals.lagfilter_xf_ci_simple_apperance = false;

            if (cf_norecs.Checked)
                Globals.lagfilter_xf_ci_striprecs = true;
            else
                Globals.lagfilter_xf_ci_striprecs = false;

            if (cf_dwarfmode.Checked)
                Globals.lagfilter_xf_ci_simple_race = true;
            else
                Globals.lagfilter_xf_ci_simple_race = false;

        }