Beispiel #1
0
        private void ambStartButton_Click(object sender, EventArgs e)
        {
            if (ambStartButton.Text == "Start Ambuscade")
            {
                ambStartButton.Text = "Stop Ambuscade";


                if (fface.Party.Party0LeaderID == 0 || fface.Party.Party0Count == 1)
                {
                    MessageBox.Show("You must be in a party to start Ambuscade!");
                    return;
                }
                if (fface.Player.Zone != Zone.Mhaura)
                {
                    MessageBox.Show("You must be in Mhaura!");
                    return;
                }

                if (_ambuscade == null)
                {
                    _ambuscade = new Ambuscade(fface);
                }

                Flipper.Monster roe = new Flipper.Monster()
                {
                    MonsterName = ambRoETarget.Text,
                    HitBox      = Double.Parse(ambRoEHitbox.Text)
                };

                Flipper.Monster amb = new Flipper.Monster()
                {
                    MonsterName = ambTarget.Text,
                    HitBox      = Double.Parse(ambHitbox.Text)
                };


                AmbuscadeSettings settings = new AmbuscadeSettings()
                {
                    Leader     = fface.Party.Party0LeaderID == fface.Player.PlayerCoreID,
                    Role       = DetermineJobRole(),
                    PartyCount = fface.Party.Party0Count - 1,
                    Server     = uxAmbuscadeServer.SelectedItem.ToString()
                };

                _ambuscade.Start(fface, roe, amb, ambHomePoint.Text, uxAmbKeyItem.Checked, settings,
                                 ambDifficulty.SelectedItem.ToString());
            }
            else
            {
                ambStartButton.Text = "Start Ambuscade";
                _ambuscade.EndAmbuscade();
                _ambuscade = null;
            }
        }
Beispiel #2
0
        private void DoCombat()
        {
            IJob job = new Ranger(fface, Content.Ambuscade);

            Flipper.Monster mob = new Flipper.Monster()
            {
                HitBox       = 5,
                MonsterName  = "Achuka",
                TimeSpecific = false
            };

            job.LoseEffect += Job_LoseEffect;
            job.GainEffect += Job_GainEffect;

            Combat.SetInstance = fface;
            Combat.SetJob      = job;
            Combat.FailType fail = Combat.FailType.NoFail;
            Combat.Fight(fface.Target.ID, mob, Combat.Mode.None, out fail);
        }
Beispiel #3
0
        private void Unity()
        {
            LoadJobClass();
            while (unity)
            {
                if ((!HasItem(3853) && vwLeader.Checked) || fface.Item.InventoryCount >= 78)
                {
                    fface.Windower.SendString("/echo I'm done!");
                    Thread.Sleep(1000);
                    break;
                }

                fface.Windower.SendString("/echo ============= New Cycle.... ==============");

                // target planar
                List <TargetInfo> planars = new List <TargetInfo>();

                List <TargetInfo> mobs = new List <TargetInfo>();
                mobs = FindTarget(vwTargetName.Text);
                Thread.Sleep(100);

                if (!mobs.Any())
                {
                    while (!planars.Any() && !mobs.Any())
                    {
                        planars = FindTarget("Planar", 15);
                        mobs    = FindTarget(vwTargetName.Text);
                        Thread.Sleep(100);
                    }

                    if (!mobs.Any())
                    {
                        TargetInfo rift = planars[0];

                        if (rift.Distance > 5)
                        {
                            fface.Navigator.DistanceTolerance = 4;
                            fface.Navigator.GotoNPC(rift.Id, 4000);
                        }

                        while (fface.Target.ID != rift.Id || fface.Target.Name != "Planar Rift")
                        {
                            fface.Windower.SendKeyPress(KeyCode.EscapeKey);
                            Thread.Sleep(100);
                            fface.Windower.SendKeyPress(KeyCode.EscapeKey);
                            Thread.Sleep(100);
                            fface.Target.SetNPCTarget(rift.Id);
                            Thread.Sleep(100);
                            fface.Target.SetNPCTarget(rift.Id);
                            fface.Windower.SendString("/target <t>");
                            Thread.Sleep(100);
                            fface.Windower.SendString("/lockon");
                            Thread.Sleep(600);
                        }

                        int rubicund = (int)vwRubicundCellNum.Value;
                        int cobalt   = (int)vwCobaltCellNumber.Value;

                        while (rubicund > 0 && HasItem(3435) && !mobs.Any())
                        {
                            rubicund--;
                            fface.Windower.SendString("/item \"Rubicund Cell\" <t>");
                            mobs = FindTarget(vwTargetName.Text);
                            Thread.Sleep(900);
                        }

                        while (cobalt > 0 && HasItem(3434) && !mobs.Any())
                        {
                            cobalt--;
                            fface.Windower.SendString("/item \"Cobalt Cell\" <t>");
                            mobs = FindTarget(vwTargetName.Text);
                            Thread.Sleep(900);
                        }

                        mobs = FindTarget(vwTargetName.Text);
                        Thread.Sleep(100);
                    }
                }

                if (vwLeader.Checked && !mobs.Any())
                {
                    Thread.Sleep(1000);

                    int displacer = (int)vwDisplacersNum.Value;
                    while (displacer > 0 && HasItem(3853) && !mobs.Any())
                    {
                        displacer--;
                        fface.Windower.SendString("/item \"Phase Displacer\" <t>");
                        Thread.Sleep(1400);
                        mobs = FindTarget(vwTargetName.Text);
                        Thread.Sleep(100);
                    }
                    Thread.Sleep(700);

                    if (!mobs.Any())
                    {
                        fface.Windower.SendKeyPress(KeyCode.EnterKey);
                    }

                    Thread.Sleep(700);

                    while ((!fface.Menu.IsOpen || fface.Menu.DialogID != 306) && !mobs.Any())
                    {
                        mobs = FindTarget(vwTargetName.Text);
                        Thread.Sleep(50);
                    }

                    while (fface.Menu.DialogOptionIndex != 1 && !mobs.Any())
                    {
                        fface.Windower.SendKeyPress(KeyCode.DownArrow);
                        mobs = FindTarget(vwTargetName.Text);
                        Thread.Sleep(300);
                    }

                    if (!mobs.Any())
                    {
                        fface.Windower.SendKeyPress(KeyCode.EnterKey);
                    }

                    while ((!fface.Menu.IsOpen || fface.Menu.DialogID != 294) && !mobs.Any())
                    {
                        mobs = FindTarget(vwTargetName.Text);
                        Thread.Sleep(50);
                    }

                    while (fface.Menu.DialogOptionIndex != 0 && !mobs.Any())
                    {
                        fface.Windower.SendKeyPress(KeyCode.UpArrow);
                        mobs = FindTarget(vwTargetName.Text);
                        Thread.Sleep(300);
                    }

                    if (!mobs.Any())
                    {
                        fface.Windower.SendKeyPress(KeyCode.EnterKey);
                    }

                    while ((!fface.Menu.IsOpen || fface.Menu.DialogID != 295) && !mobs.Any())
                    {
                        mobs = FindTarget(vwTargetName.Text);
                        Thread.Sleep(50);
                    }

                    while (fface.Menu.DialogOptionIndex != (int)vwDisplacersNum.Value && !mobs.Any())
                    {
                        fface.Windower.SendKeyPress(KeyCode.DownArrow);
                        mobs = FindTarget(vwTargetName.Text);
                        Thread.Sleep(300);
                    }

                    if (!mobs.Any())
                    {
                        fface.Windower.SendKeyPress(KeyCode.EnterKey);
                    }
                }

                while (!mobs.Any())
                {
                    mobs = FindTarget(vwTargetName.Text);
                    Thread.Sleep(100);
                }

                if (mobs.Any())
                {
                    Random randObj      = new Random();
                    int    RandomNumber = randObj.Next(500);
                    Thread.Sleep(RandomNumber);

                    if (!chkUseTempAfter.Checked)
                    {
                        UseTempItems();
                        RandomNumber = randObj.Next(500);
                        Thread.Sleep(4200 + RandomNumber);
                    }

                    TargetInfo target = mobs[0];

                    Combat.SetInstance = fface;
                    Combat.SetJob      = job;
                    Flipper.Monster m = new Flipper.Monster()
                    {
                        HitBox = 4, MonsterName = vwTargetName.Text
                    };
                    Combat.FailType f = Combat.FailType.NoFail;
                    Combat.Fight(target.Id, m, Combat.Mode.None, out f);

ChestFailed:

                    List <TargetInfo> chests = new List <TargetInfo>();

                    bool UsedTemp = false;

                    while (!chests.Any())
                    {
                        if (!UsedTemp && chkUseTempAfter.Checked)
                        {
                            UseTempItems();
                            UsedTemp = true;
                        }

                        chests = FindTarget("Riftworn", 15);
                        Thread.Sleep(100);
                    }

                    TargetInfo chest = chests[0];

                    if (chest.Distance > 5)
                    {
                        fface.Navigator.DistanceTolerance = 4;
                        fface.Navigator.GotoNPC(chest.Id, 4000);
                    }

                    while (fface.Target.ID != chest.Id || fface.Target.Name != "Riftworn Pyxis")
                    {
                        fface.Navigator.FaceHeading(chest.Id);
                        Thread.Sleep(500);
                        fface.Windower.SendKeyPress(KeyCode.EscapeKey);
                        Thread.Sleep(100);
                        fface.Windower.SendKeyPress(KeyCode.EscapeKey);
                        Thread.Sleep(100);
                        fface.Target.SetNPCTarget(chest.Id);
                        Thread.Sleep(100);
                        fface.Target.SetNPCTarget(chest.Id);
                        fface.Windower.SendString("/target <t>");
                        Thread.Sleep(100);
                        fface.Windower.SendString("/lockon");
                        Thread.Sleep(1000);
                    }

                    fface.Windower.SendKeyPress(KeyCode.EnterKey);
                    Thread.Sleep(4000);

                    if (!fface.Menu.IsOpen)
                    {
                        goto ChestFailed;
                    }

                    fface.Windower.SendKeyPress(KeyCode.RightArrow);
                    Thread.Sleep(300);
                    fface.Windower.SendKeyPress(KeyCode.RightArrow);
                    Thread.Sleep(300);
                    fface.Windower.SendKeyPress(KeyCode.RightArrow);
                    Thread.Sleep(300);
                    fface.Windower.SendKeyPress(KeyCode.RightArrow);
                    Thread.Sleep(300);
                    fface.Windower.SendKeyPress(KeyCode.EnterKey);
                    Thread.Sleep(500);
                }
            }
        }