📄 bot.cs
字号:
func.oldWait(0x5dc);
Interaction.AppActivate(Main.wow.ProcessId);
SendKeys.Send("^A");
SendKeys.Send("{BACKSPACE}");
SendKeys.Send(str2);
func.oldWait(0xbb8);
Interaction.AppActivate(Main.wow.ProcessId);
SendKeys.Send("{ENTER}");
func.oldWait(0x1388);
Interaction.AppActivate(Main.wow.ProcessId);
SendKeys.Send("{ENTER}");
func.logmsg("[BOT] Attente de 20s pour relance le bot");
func.oldWait(0x4e20);
botStart();
return 0;
}
public static object Shrink()
{
func.RECT rect;
int width = Screen.PrimaryScreen.Bounds.Width;
int height = Screen.PrimaryScreen.Bounds.Height;
func.GetWindowRect((int) Main.wow.WindowHandle, ref rect);
int top = rect.Top;
int left = rect.Left;
int num9 = rect.Right - rect.Left;
int num6 = rect.Bottom - rect.Top;
int num4 = (int) Math.Round((double) ((((double) num9) / 2.0) + left));
int num5 = (int) Math.Round((double) ((((double) num6) / 2.0) + top));
if (Operators.ConditionalCompareObjectEqual(Main.WowWindowSize, "normal", false))
{
double a = Math.Round((double) (((double) num6) / (((double) num9) / 500.0)));
func.SetWindowPos((int) Main.wow.WindowHandle, 0, left, top, 500, (int) Math.Round(a), 0);
Main.WoWWindowX = num9;
Main.WoWWindowY = num6;
Main.WowWindowSize = "shrink";
}
else if (Operators.ConditionalCompareObjectEqual(Main.WowWindowSize, "shrink", false))
{
func.SetWindowPos((int) Main.wow.WindowHandle, 0, left, top, Main.WoWWindowX, Main.WoWWindowY, 0);
Main.WowWindowSize = "normal";
}
return 0;
}
public static object stopcast()
{
Clavier.ReculerDown();
Clavier.ReculerUp();
return 0;
}
public static object targetting()
{
int nearTargetX = GameObjects.NearTargetX;
int nearTargetY = GameObjects.NearTargetY;
int nearTargetGUID = GameObjects.NearTargetGUID;
if (((GameObjects.tMinDistance < Conversions.ToDouble(MyProject.Forms.Config.TargettingDistance.Text)) & (Main.havetarget == 0)) & (GameObjects.NearTargetHealth > 0))
{
Clavier.AvancerUp();
func.logmsg("[BOT] + - - - - - - - - - - Targeting - - - - - - - - - - - -");
func.logmsg("[BOT] | Name : " + GameObjects.NearTargetName + "\r\n");
func.logmsg("\r\n[BOT] | Life : " + GameObjects.NearTargetHealth.ToString() + " / " + GameObjects.NearTargetMaxHealth.ToString());
func.logmsg("[BOT] | Level : " + GameObjects.NearTargetLevel.ToString());
func.logmsg("[BOT] | Position : X = " + Math.Truncate(new decimal(GameObjects.NearTargetX)).ToString() + " Y = " + Math.Truncate(new decimal(GameObjects.NearTargetY)).ToString());
face(Conversions.ToSingle(calculface(nearTargetX, nearTargetY)));
if (Main.havetarget == 0)
{
func.oldWait(400);
Clavier.TAB();
func.oldWait(0x3e8);
if (Main.havetarget != 0)
{
func.logmsg("[BOT] I have a target!");
Main.TargetName = GameObjects.NearTargetName.ToString();
combat();
return 1;
}
if (!MyProject.Forms.Config.AutoBlacklist.Checked)
{
func.logmsg("[BOT] Targeting impossible, blacklisting");
MyProject.Forms.Config.BlackListGUID.AppendText("GUID = " + nearTargetGUID.ToString() + "\r\n");
}
return 0;
}
}
return 0;
}
public static object walkforloot(object x, object y)
{
string str = "running";
face(Conversions.ToSingle(calculface(RuntimeHelpers.GetObjectValue(x), RuntimeHelpers.GetObjectValue(y))));
str = "running";
while (str == "running")
{
func.oldWait(1);
Clavier.AvancerDown();
if (Main.facingtimerval == 1)
{
face(Conversions.ToSingle(calculface(RuntimeHelpers.GetObjectValue(x), RuntimeHelpers.GetObjectValue(y))));
Main.facingtimerval = 0;
}
if (Conversions.ToBoolean(Operators.AndObject(Operators.AndObject(Operators.AndObject(Operators.CompareObjectGreater(MyProject.Forms.Main.Label15.Text, Operators.SubtractObject(x, 1.5), false), Operators.CompareObjectLess(MyProject.Forms.Main.Label15.Text, Operators.AddObject(x, 1.5), false)), Operators.CompareObjectGreater(MyProject.Forms.Main.Label16.Text, Operators.SubtractObject(y, 1.5), false)), Operators.CompareObjectLess(MyProject.Forms.Main.Label16.Text, Operators.AddObject(y, 1.5), false))))
{
Clavier.AvancerUp();
str = "normal";
break;
}
}
Clavier.AvancerUp();
return 0;
}
public static object walkwaypoint()
{
if (MyProject.Forms.UniverselSettings.PartyActive.Checked & (MyProject.Forms.UniverselSettings.PartyRole.Text == "Follower"))
{
if ((Party.LeaderGUID == 0) & (MyProject.Forms.UniverselSettings.PartyRole.Text == "Follower"))
{
Party.FindLeaderGUID();
func.logmsg("[PARTY] Leader GUID : " + Party.LeaderGUID.ToString());
}
if ((MyProject.Forms.UniverselSettings.PartyRole.Text == "Follower") & (Party.InCombat == 0))
{
func.logmsg("[PARTY] Following leader : " + MyProject.Forms.UniverselSettings.PartyLeaderName.Text);
Clavier.SendTextToWoWChat("/follow " + MyProject.Forms.UniverselSettings.PartyLeaderName.Text);
}
if (Conversions.ToBoolean(Operators.AndObject(MyProject.Forms.UniverselSettings.PartyRole.Text == "Follower", Operators.CompareObjectEqual(func.ReadInt32(0x10a68e0), Party.LeaderGUID, false))))
{
int right = Conversions.ToInteger(func.ReadInt32(0x10a68e0));
Clavier.f();
func.oldWait(0x7d0);
if (Operators.ConditionalCompareObjectNotEqual(func.ReadInt32(0x10a68e0), right, false))
{
func.logmsg("[PARTY] Leader's target found\x00e9 !");
func.oldWait(0xbb8);
}
}
if (Conversions.ToBoolean(Operators.AndObject(Operators.AndObject(MyProject.Forms.UniverselSettings.PartyRole.Text == "Follower", Operators.CompareObjectNotEqual(func.ReadInt32(0x10a68e0), Party.LeaderGUID, false)), Party.InCombat == 0)))
{
Clavier.SendTextToWoWChat("/target " + MyProject.Forms.UniverselSettings.PartyLeaderName.Text);
}
func.oldWait(0x3e8);
}
else
{
int index = Conversions.ToInteger(nearestwaypoint());
string str = "running";
if (Operators.ConditionalCompareObjectEqual(lastwaypoint, 1, false))
{
index = 0;
}
while (index < (MyProject.Forms.Config.waypoint.Lines.Length - 2))
{
int num4;
int num5;
MyProject.Forms.TimerForm.CheckingTarget.Enabled = true;
MyProject.Forms.TimerForm.CheckWalkwaypointBlock.Enabled = true;
if (((MyProject.Forms.Main.PlayerHealthBar.Value == 0) & (Conversions.ToDouble(MyProject.Forms.Main.Label15.Text) != 0.0)) & (Conversions.ToDouble(MyProject.Forms.Main.Label16.Text) != 0.0))
{
Dead.boucle();
}
if (Main.havetarget == 1)
{
combat();
face(Conversions.ToSingle(calculface(num4, num5)));
}
Array instance = MyProject.Forms.Config.waypoint.Lines[index].Split(new char[] { ';' });
try
{
string str3 = Conversions.ToString(NewLateBinding.LateIndexGet(instance, new object[] { 0 }, null));
string str4 = Conversions.ToString(NewLateBinding.LateIndexGet(instance, new object[] { 1 }, null));
num4 = Conversions.ToInteger(str3);
num5 = Conversions.ToInteger(str4);
num4 = Convert.ToInt32(Math.Truncate(new decimal(num4)));
num5 = Convert.ToInt32(Math.Truncate(new decimal(num5)));
Dead.lastalivex = num4;
Dead.lastalivey = num5;
face(Conversions.ToSingle(calculface(num4, num5)));
func.logmsg("[BOT] Going to waypoint : X = " + num4.ToString() + " Y = " + num5.ToString());
str = "running";
int num6 = (int) Math.Round((double) (num4 - Conversions.ToDouble(MyProject.Forms.Main.Label15.Text)));
int num7 = (int) Math.Round((double) (num5 - Conversions.ToDouble(MyProject.Forms.Main.Label16.Text)));
int num3 = (int) Math.Round(Math.Truncate(Math.Sqrt(Math.Pow((double) num6, 2.0) + Math.Pow((double) num7, 2.0))));
if ((Main.havetarget == 0) && (testroute == 0))
{
if (num3 < Conversions.ToDouble(MyProject.Forms.Config.MaxWaypointDistance.Text))
{
targetting();
face(Conversions.ToSingle(calculface(num4, num5)));
}
else
{
func.logmsg("[BOT] Je suis trop loin du waypoint pour cibler");
}
}
while (str == "running")
{
func.oldWait(1);
Clavier.GaucheUp();
Clavier.DroiteUp();
Clavier.AvancerDown();
if (Main.facingtimerval == 1)
{
face(Conversions.ToSingle(calculface(num4, num5)));
Main.facingtimerval = 0;
}
if ((Main.havetarget == 0) && (testroute == 0))
{
num6 = (int) Math.Round((double) (num4 - Conversions.ToDouble(MyProject.Forms.Main.Label15.Text)));
num7 = (int) Math.Round((double) (num5 - Conversions.ToDouble(MyProject.Forms.Main.Label16.Text)));
num3 = (int) Math.Round(Math.Truncate(Math.Sqrt(Math.Pow((double) num6, 2.0) + Math.Pow((double) num7, 2.0))));
if (num3 < Conversions.ToDouble(MyProject.Forms.Config.MaxWaypointDistance.Text))
{
targetting();
face(Conversions.ToSingle(calculface(num4, num5)));
}
else
{
func.logmsg("[BOT] Je suis trop loin du waypoint pour cibler");
}
}
if ((((Conversions.ToDouble(MyProject.Forms.Main.Label15.Text) > (num4 - 4)) & (Conversions.ToDouble(MyProject.Forms.Main.Label15.Text) < (num4 + 4))) & (Conversions.ToDouble(MyProject.Forms.Main.Label16.Text) > (num5 - 4))) & (Conversions.ToDouble(MyProject.Forms.Main.Label16.Text) < (num5 + 4)))
{
Clavier.GaucheUp();
Clavier.DroiteUp();
str = "normal";
goto Label_072D;
}
if (Conversions.ToDouble(MyProject.Forms.Main.PlayerHealth.Text) < TimerForm.checkhealthwalkval)
{
func.logmsg("[BOT] OMFG Je perd de la vie !");
combat();
}
if (Main.havetarget == 1)
{
combat();
}
}
}
catch (Exception exception1)
{
ProjectData.SetProjectError(exception1);
Exception exception = exception1;
ProjectData.ClearProjectError();
}
Label_072D:
index++;
}
Clavier.GaucheUp();
Clavier.DroiteUp();
Clavier.AvancerUp();
func.logmsg("[BOT] Arriv\x00e9 au dernier waypoint");
lastwaypoint = 1;
func.oldWait(50);
func.logmsg("[BOT] Prenons le premier waypoint");
if (MyProject.Forms.Main.ShrinkWoW.Visible)
{
walkwaypoint();
}
}
walkwaypoint();
return 0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -