static void KillBoss_1(My_Windows mw) { try { //следуем к первой точке SimonSayMethods.MoveTo(mw.Oph, point_1[0], point_1[1], point_1[2]); SimonSayMethods.Say(mw, "!!начинаю бить босса"); //ищем босса поблизости Int32 bossWid = CalcMethods.MobSearch(mw.Oph, "Повелитель кругов ада"); while (bossWid > 0) { if (mw.ClassID == 0) { //здесь метод для вара } else { //здесь метод для остальных классов } } Thread.Sleep(5000); SimonSayMethods.Say(mw, "!!закончил бить босса"); } catch (Exception ex) { throw ex; } }
/// <summary> /// бот открывает диалог с НПС /// </summary> /// <param name="mw"></param> /// <param name="npcName"></param> /// <param name="questId"></param> public static void TalkToNPC(My_Windows mw, String npcName, Int32 questId) { //находим wid НПСа по имени Int32 mob_wid = CalcMethods.MobSearch(mw.Oph, npcName); //если НПС нашелся, то берем у него квест и закрываем диалоговое окно if (mob_wid != 0) { //Выделяем НПСа mw.PacketSend.selectNpc(mob_wid); Thread.Sleep(300); //Открываем диалоговое окно с НПСом mw.PacketSend.talkToNpc(mob_wid); Thread.Sleep(1000); //Узнаем необходимые данные об окне, так как после взятия кв оно перестанет быть активным int[] adress_window = CalcMethods.CalcControlAddress(mw.Oph, "Win_NPC", "Btn_Back", 1); Thread.Sleep(300); //Берем кв mw.PacketSend.takeQuest(questId); //если адреса считались нормально, то закрываем диалоговое окно с НПСом if (adress_window[0] != 0 && adress_window[1] != 0) { Injects.GUI_Inject(adress_window[0], adress_window[1], mw.Oph); } else { mw.Logging(new FormatText(mw.Name, Brushes.Red, 14, 1), new FormatText("не смог закрыть окно", Brushes.Red, 14, 1)); } } }