예제 #1
0
 public Class46(string string_2, string string_3)
 {
     Func<Cell, bool> func = null;
     this.scene_0 = null;
     this.d3Actor_0 = null;
     this.vector3_0 = null;
     this.bool_1 = false;
     this.cell_0 = null;
     this.list_0 = null;
     this.int_0 = 0;
     this.list_1 = null;
     this.ienumerable_0 = null;
     this.cell_1 = null;
     this.list_2 = null;
     this.int_1 = 0;
     this.list_3 = new List<Vector3>();
     this.int_2 = 0;
     this.int_3 = 0;
     //base..ctor();
     this.finderState_0 = Class46.FinderState.SearchForTargetScene;
     if (string.IsNullOrWhiteSpace(string_2))
     {
         IEnumerable<Scene> arg_B3_0 = Framework.Navigator.LoadedScenes;
         if (Class46.func_0 == null)
         {
             Class46.func_0 = new Func<Scene, bool>(Class46.smethod_1);
         }
         Scene scene = arg_B3_0.First(Class46.func_0);
         IEnumerable<Cell> arg_D5_0 = Framework.Navigator.AllCells;
         if (func == null)
         {
             func = new Func<Cell, bool>(this.method_3);
         }
         this.ienumerable_0 = arg_D5_0.Where(func);
         this.scene_0 = scene;
         this.string_0 = scene.SNOName;
         this.finderState_0 = Class46.FinderState.SearchForUnit;
     }
     else
     {
         this.string_0 = string_2;
     }
     if (string.IsNullOrWhiteSpace(string_3))
     {
         this.bool_0 = true;
         this.string_1 = "";
     }
     else
     {
         this.bool_0 = false;
         this.string_1 = string_3;
     }
 }
예제 #2
0
 internal bool method_0(D3Actor d3Actor_0, Vector3 vector3_0, float float_0)
 {
     float num = Vector3.DistanceSquared(vector3_0, d3Actor_0.Position);
     bool result;
     if (num > float_0)
     {
         result = false;
     }
     else
     {
         float num2 = Class44.smethod_0(vector3_0, d3Actor_0.Position);
         result = (num2 * num2 <= float_0);
     }
     return result;
 }
예제 #3
0
 internal override bool vmethod_0()
 {
     Class47.Class99 @class = new Class47.Class99();
     int arg_0B_0 = Environment.TickCount;
     for (int i = 0; i < Class47.list_1.Count; i++)
     {
         if (Class47.list_1[i].method_0())
         {
             Class47.list_1.RemoveAt(i--);
         }
     }
     bool result;
     if (Environment.TickCount < this.int_1)
     {
         result = true;
     }
     else
     {
         if (this.d3Actor_0 != null)
         {
             if (this.method_2(this.d3Actor_0))
             {
                 result = true;
                 return result;
             }
             this.d3Actor_0 = null;
         }
         List<D3Actor> list = new List<D3Actor>();
         @class.vector3_0 = Framework.Hero.Position;
         foreach (D3Actor current in Framework.Actors)
         {
             float num = 0f;
             if (this.method_1(current, out num) && base.method_0(current, @class.vector3_0, num * num))
             {
                 list.Add(current);
             }
         }
         this.d3Actor_0 = list.OrderBy(new Func<D3Actor, float>(@class.method_0)).FirstOrDefault<D3Actor>();
         result = (this.d3Actor_0 != null);
     }
     return result;
 }
예제 #4
0
 internal override bool vmethod_0()
 {
     Func<D3Actor, bool> func = null;
     bool result;
     if (GClass0.smethod_0().float_2 == 0f)
     {
         result = false;
     }
     else
     {
         if (this.int_1 > 0)
         {
             result = true;
         }
         else
         {
             for (int i = 0; i < Class48.list_1.Count; i++)
             {
                 if (Class48.list_1[i].method_0())
                 {
                     Class48.list_1.RemoveAt(i--);
                 }
             }
             if (this.d3Actor_0 != null)
             {
                 float num = 0f;
                 if (!this.method_1(this.d3Actor_0, out num))
                 {
                     this.d3Actor_0 = null;
                 }
             }
             if (this.d3Actor_0 != null)
             {
                 IEnumerable<D3Actor> arg_B8_0 = Framework.Actors;
                 if (func == null)
                 {
                     func = new Func<D3Actor, bool>(this.method_2);
                 }
                 bool flag = arg_B8_0.FirstOrDefault(func) == null;
                 float num = 0f;
                 if (!this.method_1(this.d3Actor_0, out num) || flag)
                 {
                     this.d3Actor_0 = null;
                 }
             }
             D3Actor d3Actor = this.d3Actor_0;
             List<D3Actor> list = Framework.Actors.ToList<D3Actor>();
             Vector3 position = Framework.Hero.Position;
             List<D3Actor> list2 = new List<D3Actor>();
             foreach (D3Actor current in list)
             {
                 float num2 = 0f;
                 if (this.method_1(current, out num2))
                 {
                     float num3 = Class44.smethod_0(position, current.Position);
                     if (num3 != 0f && num3 < num2)
                     {
                         if (InjectedWindow.Instance.class71_0.UseCustomItemFactors && InjectedWindow.Instance.class71_0.CustomItemFactors != null)
                         {
                             float num4 = Class100.smethod_1(current);
                             if (num4 < InjectedWindow.Instance.class71_0.CustomItemFactors_MinimumValue)
                             {
                                 Class48.list_1.Add(new Class97(current.Modelname, 0, true));
                                 GClass0.smethod_0().method_5("Banning item: " + current.Modelname + ", because its calculated value is too bad.");
                                 result = false;
                                 return result;
                             }
                         }
                         list2.Add(current);
                     }
                 }
             }
             IEnumerable<D3Actor> arg_22D_0 = list2;
             if (Class48.func_0 == null)
             {
                 Class48.func_0 = new Func<D3Actor, float>(Class48.smethod_1);
             }
             IOrderedEnumerable<D3Actor> source = arg_22D_0.OrderBy(Class48.func_0);
             this.d3Actor_0 = source.FirstOrDefault<D3Actor>();
             if (this.d3Actor_0 == null && d3Actor != null)
             {
                 this.d3Actor_0 = d3Actor;
                 result = true;
             }
             else
             {
                 if (this.d3Actor_0 != null && d3Actor != null)
                 {
                     float num5 = Class44.smethod_0(position, this.d3Actor_0.Position);
                     float num6 = Class44.smethod_0(position, d3Actor.Position);
                     if (num5 == 0f || num6 == 0f)
                     {
                         result = true;
                     }
                     else
                     {
                         if (num6 + 10f < num5)
                         {
                             this.d3Actor_0 = d3Actor;
                         }
                         result = true;
                     }
                 }
                 else
                 {
                     result = false;
                 }
             }
         }
     }
     return result;
 }
예제 #5
0
 private static bool smethod_0(D3Actor d3Actor_1)
 {
     return d3Actor_1.Guid == Framework.LastHoverGUID;
 }
예제 #6
0
 private static void smethod_3()
 {
     (Environment.TickCount - Framework.int_0).smethod_0(0, 300);
     Framework.int_0 = Environment.TickCount;
     Class30.smethod_0("Hook start");
     try
     {
         lock (Framework.object_0)
         {
             Class30.smethod_0("Start RActors");
             Framework.Actors.Clear();
             uint num = 0u;
             uint rActors = Helper.smethod_1(Helper.smethod_1(22522396u) + 2224u);
             int num2 = -1;
             uint num3 = Framework.delegate22_0();
             Framework.Hero = null;
             while (Framework.IterateActors(rActors, ref num2, out num) != 0u)
             {
                 D3Actor d3Actor = new D3Actor(new IntPtr((long)((ulong)num)));
                 if (d3Actor.Guid == num3)
                 {
                     Framework.Hero = new HeroActor(new IntPtr((long)((ulong)num)));
                 }
                 if (!Class31.smethod_0(d3Actor.UInt32_0))
                 {
                     Framework.Actors.Add(d3Actor);
                 }
             }
             Class30.smethod_0("End RActors, start Scenes");
             if (Framework.IsIngame)
             {
                 Framework.Navigator.Pulse();
             }
             Class30.smethod_0("QuestData");
             D3QuestStatus.smethod_0();
             Class30.smethod_0("SyncActions");
             foreach (Action current in Framework.list_0.ToList<Action>())
             {
                 try
                 {
                     current();
                 }
                 catch
                 {
                 }
             }
             Framework.list_0.Clear();
             Framework.bool_0 = true;
         }
     }
     catch (Exception ex)
     {
         Framework.smethod_0("Error:" + ex.Message);
     }
     Class30.smethod_0("Engine start");
     if (Framework.eventHandler_0 != null)
     {
         Framework.eventHandler_0(null, null);
     }
     Class30.smethod_0("Engine end");
 }
예제 #7
0
 internal override void vmethod_1()
 {
     Func<D3Actor, bool> func = null;
     Func<Cell, float> func2 = null;
     this.bool_1 = true;
     if (this.int_0 > 0)
     {
         this.int_0--;
     }
     else
     {
         this.int_0 = 5;
         switch (this.finderState_0)
         {
         case Class46.FinderState.SearchForTargetScene:
             this.method_1();
             break;
         case Class46.FinderState.MoveToTargetScene:
             if (Framework.Scene.Contains(this.string_0))
             {
                 if (this.bool_0)
                 {
                     GClass0.smethod_0().method_5("Maze: Complete");
                 }
                 else
                 {
                     this.finderState_0 = Class46.FinderState.SearchForUnit;
                     GClass0.smethod_0().method_5("Maze: found target scene, now looking for: " + this.string_1);
                 }
             }
             else
             {
                 if (this.list_1 == null || this.int_2 != Class45.LastRan || this.int_3 != Class48.LastRan)
                 {
                     this.int_2 = Class45.LastRan;
                     this.int_3 = Class48.LastRan;
                     this.list_1 = Framework.Navigator.GetPath(Framework.Hero.Position, this.cell_1.Center, 10f, 20f);
                 }
                 while (this.list_1.Count > 0 && Framework.Hero.DistanceTo(this.list_1[0]) < 20f)
                 {
                     this.list_1.RemoveAt(0);
                 }
                 if (this.list_1.Count > 0)
                 {
                     Movement.MoveTo(this.list_1[0]);
                 }
                 else
                 {
                     this.finderState_0 = Class46.FinderState.SearchForTargetScene;
                 }
             }
             break;
         case Class46.FinderState.SearchForUnit:
         {
             IEnumerable<D3Actor> arg_1BA_0 = Framework.Actors;
             if (func == null)
             {
                 func = new Func<D3Actor, bool>(this.method_4);
             }
             this.d3Actor_0 = arg_1BA_0.FirstOrDefault(func);
             if (this.d3Actor_0 != null)
             {
                 this.finderState_0 = Class46.FinderState.MoveToUnit;
                 GClass0.smethod_0().method_5("Maze: Target found: " + this.string_1);
             }
             else
             {
                 if (this.cell_0 != null && Framework.Hero.DistanceTo(this.cell_0.Center) < 30f)
                 {
                     this.cell_0 = null;
                 }
                 if (this.cell_0 == null)
                 {
                     this.cell_0 = this.ienumerable_0.ElementAtOrDefault(Class46.random_0.Next(this.ienumerable_0.Count<Cell>()));
                 }
                 if (this.cell_0 != null)
                 {
                     Movement.MoveTo(this.cell_0.Center);
                 }
             }
             break;
         }
         case Class46.FinderState.MoveToUnit:
             if (this.cell_0 == null)
             {
                 IEnumerable<Cell> arg_2A5_0 = this.ienumerable_0;
                 if (func2 == null)
                 {
                     func2 = new Func<Cell, float>(this.method_5);
                 }
                 this.cell_0 = arg_2A5_0.OrderBy(func2).FirstOrDefault<Cell>();
             }
             if (this.cell_0 != null)
             {
                 this.list_0 = Framework.Navigator.GetPath(Framework.Hero.Position, this.cell_0.Center, 10f, 20f);
                 while (this.list_0.Count > 0 && Framework.Hero.DistanceTo(this.list_0[0]) < 20f)
                 {
                     this.list_0.RemoveAt(0);
                 }
                 if (this.list_0.Count > 0)
                 {
                     Movement.MoveTo(this.list_0[0]);
                 }
             }
             break;
         default:
             throw new InvalidOperationException("Maze internal state corrupted");
         }
     }
 }
예제 #8
0
 private bool method_3(D3Actor d3Actor_0)
 {
     return d3Actor_0.Modelname.Contains(this.string_0);
 }
예제 #9
0
 public static void RequestWaypointTeleport(int Index, D3Actor Waypoint)
 {
     Framework.smethod_1("Using a teleporter");
     if (Waypoint != null)
     {
         uint objectGuid = Waypoint.ObjectGuid;
         if (objectGuid != 4294967295u)
         {
             uint num = Framework.delegate1_0(objectGuid);
             if (num != 4294967295u)
             {
                 Struct7 @struct = new Struct7(Index, num);
                 IntPtr intPtr = Marshal.AllocHGlobal(16);
                 Marshal.StructureToPtr(@struct, intPtr, true);
                 Framework.delegate19_0(151u, intPtr, 16);
                 Marshal.FreeHGlobal(intPtr);
             }
         }
     }
 }
예제 #10
0
 private bool method_2(D3Actor d3Actor_0)
 {
     return d3Actor_0.Modelname == this.attributeViewer_0.string_0;
 }
예제 #11
0
 private static bool smethod_0(D3Actor d3Actor_1)
 {
     return d3Actor_1.Modelname.StartsWith("Waypoint");
 }
 public bool method_0(D3Actor d3Actor_0)
 {
     return (ulong)d3Actor_0.Guid == (ulong)((long)this.int_0);
 }
예제 #13
0
 public Class39(D3Actor d3Actor_1, float float_1, bool bool_1, int int_0)
 {
     this.Actor = d3Actor_1;
     this.DistanceSquared = float_1;
     this.DirectlyVisible = bool_1;
 }
 public void method_0()
 {
     float num = 3.40282347E+38f;
     foreach (D3Actor current in Framework.Actors)
     {
         if (current.IsD3Object && current.Guid != Framework.Hero.Guid && (current.Team == D3Team.HoverableNeutral || current.Team == D3Team.Friendly))
         {
             float num2 = current.DistanceToHero();
             if (num2 < num)
             {
                 this.d3Actor_0 = current;
                 num = num2;
             }
         }
     }
 }
예제 #15
0
 private static bool smethod_1(D3Actor d3Actor_0)
 {
     return d3Actor_0.UInt32_0 == 130400u;
 }
예제 #16
0
 private static bool smethod_4(D3Actor d3Actor_0)
 {
     return d3Actor_0.UInt32_0 == 195170u;
 }
예제 #17
0
 public void method_0()
 {
     foreach (D3Actor current in Framework.Actors)
     {
         if (current.IsD3Object && current.Guid != Framework.Hero.Guid && (current.Team == D3Team.HoverableNeutral || current.Team == D3Team.Friendly))
         {
             float num = current.DistanceToHero();
             if (num < this.float_0)
             {
                 this.d3Actor_0 = current;
                 this.float_0 = num;
             }
         }
     }
 }
예제 #18
0
 private static float smethod_1(D3Actor d3Actor_0)
 {
     return d3Actor_0.DistanceToHero();
 }
예제 #19
0
 public void method_0()
 {
     IEnumerable<D3Actor> arg_23_0 = Framework.Actors;
     if (ScriptEditor.Class76.func_0 == null)
     {
         ScriptEditor.Class76.func_0 = new Func<D3Actor, bool>(ScriptEditor.Class76.smethod_0);
     }
     this.d3Actor_0 = arg_23_0.FirstOrDefault(ScriptEditor.Class76.func_0);
 }
예제 #20
0
 public bool method_0(D3Actor d3Actor_0)
 {
     return d3Actor_0.Guid == this.uint_0;
 }
예제 #21
0
 private static bool smethod_0(D3Actor d3Actor_0)
 {
     return d3Actor_0.Modelname.Contains("Portal");
 }
예제 #22
0
 private bool method_4(D3Actor d3Actor_1)
 {
     return d3Actor_1.Modelname.Contains(this.string_1);
 }
예제 #23
0
 private bool method_0(D3Actor d3Actor_0)
 {
     return (ulong)d3Actor_0.UInt32_0 == (ulong)((long)this.int_0);
 }
예제 #24
0
 private static float smethod_1(D3Actor d3Actor_1)
 {
     return Class44.smethod_0(d3Actor_1.Position, Framework.Hero.Position);
 }
예제 #25
0
 public static uint GetServerGUID(D3Actor a)
 {
     uint result;
     if (a.IsD3Object)
     {
         result = Framework.delegate1_0(a.ObjectGuid);
     }
     else
     {
         result = 0u;
     }
     return result;
 }
예제 #26
0
 private bool method_1(D3Actor d3Actor_1, out float float_0)
 {
     Func<Class97, bool> func = null;
     Class48.Class101 @class = new Class48.Class101();
     @class.d3Actor_0 = d3Actor_1;
     float_0 = GClass0.smethod_0().float_2;
     bool result;
     if (@class.d3Actor_0 == null)
     {
         result = false;
     }
     else
     {
         if (Framework.Actors.FirstOrDefault(new Func<D3Actor, bool>(@class.method_0)) == null)
         {
             result = false;
         }
         else
         {
             if (Class48.list_1.FirstOrDefault(new Func<Class97, bool>(@class.method_1)) != null)
             {
                 result = false;
             }
             else
             {
                 if (@class.d3Actor_0.GetInt((D3Attribute)4294963682u) == 1)
                 {
                     result = false;
                 }
                 else
                 {
                     if (@class.d3Actor_0.GetFloat((D3Attribute)4294963307u) > 0f)
                     {
                         result = !InjectedWindow.Instance.class71_0.DontPickupPotions;
                     }
                     else
                     {
                         if (@class.d3Actor_0.GetInt((D3Attribute)4294963553u) == 1)
                         {
                             IEnumerable<Class97> arg_102_0 = Class48.list_1;
                             if (func == null)
                             {
                                 func = new Func<Class97, bool>(@class.method_2);
                             }
                             if (arg_102_0.FirstOrDefault(func) == null)
                             {
                                 Class48.list_1.Add(new Class97(@class.d3Actor_0.Modelname, 0, true));
                                 GClass0.smethod_0().method_5("Banning item: " + @class.d3Actor_0.Modelname + ", because it has already been operated");
                             }
                             result = false;
                         }
                         else
                         {
                             if (@class.d3Actor_0.GetInt((D3Attribute)4294963545u) == 1)
                             {
                                 result = false;
                             }
                             else
                             {
                                 if (@class.d3Actor_0.GetInt((D3Attribute)4294963257u) > InjectedWindow.Instance.class71_0.MinimumGoldToLoot)
                                 {
                                     result = true;
                                 }
                                 else
                                 {
                                     if (@class.d3Actor_0.GetInt((D3Attribute)4294963494u) >= (int)Class48.d3ItemRarity_0)
                                     {
                                         result = true;
                                     }
                                     else
                                     {
                                         foreach (Class42 current in Class48.list_0)
                                         {
                                             if (current.ModelId != -1 && (ulong)@class.d3Actor_0.UInt32_0 == (ulong)((long)current.ModelId))
                                             {
                                                 float_0 = current.method_0();
                                                 result = true;
                                                 return result;
                                             }
                                         }
                                         foreach (Class42 current in Class48.list_0)
                                         {
                                             if (current.ModelId == -1 && @class.d3Actor_0.Modelname.Contains(current.ModelNameSubstring))
                                             {
                                                 float_0 = current.method_0();
                                                 result = true;
                                                 return result;
                                             }
                                         }
                                         result = false;
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     return result;
 }
예제 #27
0
 public static bool UsePower_Target(uint ActionID, D3Actor target)
 {
     bool result;
     if (target == null)
     {
         Framework.smethod_0("UsePower: TARGET == NULL");
         result = false;
     }
     else
     {
         result = Framework.smethod_4(ActionID, target.ObjectGuid, target.Position, true);
     }
     return result;
 }
예제 #28
0
 private bool method_2(D3Actor d3Actor_1)
 {
     return d3Actor_1.Modelname == this.d3Actor_0.Modelname;
 }
예제 #29
0
 private bool method_2(D3Actor d3Actor_0)
 {
     bool result;
     if (d3Actor_0 == null)
     {
         result = false;
     }
     else
     {
         if (d3Actor_0.Team != D3Team.Diablo)
         {
             result = false;
         }
         else
         {
             if (d3Actor_0.GetFloat((D3Attribute)4294963302u) < 0.0011f)
             {
                 result = false;
             }
             else
             {
                 if (d3Actor_0.GetInt((D3Attribute)4294963292u) == 1)
                 {
                     result = false;
                 }
                 else
                 {
                     if (d3Actor_0.GetInt((D3Attribute)4294963431u) == 1)
                     {
                         result = false;
                     }
                     else
                     {
                         if (Class138.smethod_0(d3Actor_0.UInt32_0))
                         {
                             result = false;
                         }
                         else
                         {
                             foreach (Class41 current in Class45.list_3)
                             {
                                 if (d3Actor_0.Modelname == current.ActorName)
                                 {
                                     result = false;
                                     return result;
                                 }
                             }
                             result = true;
                         }
                     }
                 }
             }
         }
     }
     return result;
 }
예제 #30
0
 public bool method_0(D3Actor d3Actor_1)
 {
     return d3Actor_1.Guid == this.d3Actor_0.Guid && d3Actor_1.Modelname == this.d3Actor_0.Modelname;
 }