public void c() { if ((this.f == this.d) && (this.g == this.e)) { this.h++; if (this.h > 80) { this.a[this.d] = true; this.a[this.e] = true; PluginCore.e(string.Format("Abandoned trying to stack/cram items {0}, {1} (Bugged item and/or pack)", this.d, this.e)); return; } } else { this.f = this.d; this.g = this.e; this.h = 0; } if (this.c) { PluginCore.cq.ax.get_Actions().MoveItem(this.d, this.e); } else { PluginCore.cq.ax.get_Actions().MoveItem(this.d, this.e, 0, true); } }
public aj.c b(cv A_0) { aj.a key = new aj.a(A_0); int num = PluginCore.cq.l.c["MyMonsters"].c(); for (int i = 0; i < num; i++) { string str = k.b(PluginCore.cq.l.c["MyMonsters"].a(i)[0]); if (str != "<DEFAULT>") { if (this.c.ContainsKey(key) && this.c[key].ContainsKey(i)) { if (this.c[key][i]) { PluginCore.e(string.Format("Entry \"{0}\" match! (Result cached)", str)); return(this.c(str)); } PluginCore.e(string.Format("Entry \"{0}\" does not match. (Result cached)", str)); } else { bool flag; if (dk.a(key, str, A_0, out flag)) { PluginCore.e(string.Format("Entry \"{0}\" match!", str)); return(this.c(str)); } PluginCore.e(string.Format("Entry \"{0}\" does not match.", str)); } } } PluginCore.e("No rules match selected monster, using default entry."); return(this.d()); }
public void b(int A_0) { if (this.b.ContainsKey(A_0)) { Dictionary <int, int> dictionary; int num2; (dictionary = this.b)[num2 = A_0] = dictionary[num2] + 1; } else { this.b[A_0] = 1; } if (this.b[A_0] > er.i("BlacklistMonsterAttemptCount")) { if (PluginCore.cq.n.f.ContainsKey(A_0)) { string str = "???"; cv cv = PluginCore.cq.p.d(A_0); if (cv != null) { str = cv.g(); } int num = er.i("BlacklistMonsterTimeoutSeconds"); PluginCore.e("Blacklisting unhittable monster " + str + " (" + A_0.ToString() + ") for " + num.ToString() + " seconds."); PluginCore.cq.n.f[A_0].a(TimeSpan.FromSeconds((double)num)); } this.b.Remove(A_0); } }
public void k() { PluginCore.cq.ay.w(); if (string.IsNullOrEmpty(this.n)) { this.k.b(); } else { if (!File.Exists(Path.Combine(PluginCore.ci, this.n))) { this.k.b(); this.k.a(this.n); } if (this.k.b(this.n)) { PluginCore.e("Loaded nav ruleset."); } else { this.k.b(); this.k.a(this.n); PluginCore.e("Failed to load nav ruleset."); } } PluginCore.cq.ay.ak(); PluginCore.cq.n.c(); PluginCore.cq.ay.l(); }
private void a() { if ((er.j("DeleteGhostMonstersByHPTracker") && PluginCore.cq.n.b) && (PluginCore.cq.an.h() != 0)) { cv cv = PluginCore.cq.p.d(PluginCore.cq.an.h()); if (cv != null) { string str = cv.g(); if (PluginCore.cq.x.e(str) > 0) { TimeSpan span = (TimeSpan)(DateTimeOffset.Now - PluginCore.cq.an.g()); if (span.TotalSeconds >= er.i("GhostDeleteHPTrackerSeconds")) { TimeSpan span2 = (TimeSpan)(DateTimeOffset.Now - PluginCore.cq.an.e()); if (span2.TotalSeconds >= er.i("GhostDeleteHPTrackerSeconds")) { int num = PluginCore.cq.an.h(); cv cv2 = PluginCore.cq.p.d(num); if ((cv2 != null) && (cv2.c() == ObjectClass.Monster)) { PluginCore.e("Deleting ghost monster " + cv2.g() + " (" + num.ToString() + ") due to HP tracker notification."); dh.d(num); } } } } } } }
public static void a(string A_0, k A_1) { string[] files = Directory.GetFiles(PluginCore.ci, "*.usd"); foreach (string str in files) { string[] strArray2 = str.Split(new char[] { '\\' }); string str2 = strArray2[strArray2.Length - 1]; if (str2 == PluginCore.cq.l.m) { er.b(A_0, A_1); } else { bf bf = new bf(str); v v = bf["Settings"].a(0, k.a(A_0)); if (v == null) { v v2 = new v(bf["Settings"]); v2[0] = k.a(A_0); v2[1] = A_1; bf["Settings"].c(v2); } else { v[1] = A_1; } bf.c(str); } } string[] strArray4 = new string[] { "Done saving setting ", A_0, " to all profiles. (Changed ", files.Length.ToString(), " profiles)" }; PluginCore.e(string.Concat(strArray4)); }
public void d() { if ((this.i != 0) && (this.j != this.i)) { this.m = this.i; PluginCore.cq.ax.get_Actions().UseItem(this.i, 0); if (this.e.ContainsKey(this.i)) { b5.a a = this.e[this.i]; a.j++; if (a.j >= er.i("BlacklistCorpseOpenAttemptCount")) { a.j = 0; a.k = DateTimeOffset.Now; cv cv = PluginCore.cq.p.d(this.i); string str = "???"; if (cv != null) { str = cv.e(); } PluginCore.e("Blacklisting unopenable corpse \"" + str + "\" for " + er.i("BlacklistCorpseOpenTimeoutSeconds").ToString() + " seconds."); } } } }
public void e() { foreach (dy dy in this.c) { PluginCore.e("(*." + dy.b.a + ") " + dy.d); } }
public void d() { this.b = false; int num = k.e(this.c["DBLastUpdateTime"].d()[0][1]); PluginCore.e("Checking for GameInfoDB update (DB age " + this.a((TimeSpan)(DateTimeOffset.UtcNow - a(num))) + ")."); this.e.a("http://auth.virindi.net/plugins/gamedb/get2.php?date=" + num.ToString() + "&dbver=" + this.a(this.c).ToString(), new ea.b(this.a)); }
protected override bool e() { if ((this.b <= DateTimeOffset.Now) && (PluginCore.cq.ax.get_Actions().get_BusyState() == 0)) { PluginCore.e("Executing chat command \"" + this.a + "\""); dh.h(this.a); return(false); } return(true); }
private bool a(string A_0) { this.h.a(A_0); if (this.h.b(A_0)) { PluginCore.e("Tell from " + A_0 + " ignored due to spam."); return(true); } return(false); }
public static void a(string A_0) { string str; if (((str = A_0) != null) && (str == "idqueue")) { a(); } else { PluginCore.e("Usage: \"/vt explain [command]\". Available commands: idqueue"); } }
public bool b() { if ([email protected] >= 0x2710) { PluginCore.e("Meta Error: Call stack overflow (recursive call loop?)."); PluginCore.e("Disabling Meta."); er.b("EnableMeta", k.a(false)); return(false); } [email protected](this.b); [email protected](this.a); return(false); }
public bool a() { if ([email protected] == 0) { PluginCore.e("Meta Error: Call stack underflow, cannot return."); PluginCore.e("Disabling Meta."); er.b("EnableMeta", k.a(false)); return(false); } string str = [email protected](); [email protected](str); return(false); }
public void o() { if ((PluginCore.cq.u.b(b0.a.a) > 0) && this.r) { PluginCore.e("Set default profile: Inventory scan canceled."); } this.r = false; PluginCore.cq.u.a(b0.a.a); this.c.d(this.e); this.a(); PluginCore.e("Loaded default settings."); if (PluginCore.cq.p.a("Splitting Tool").Count > 0) { PluginCore.e("Set default profile: Splitting Tool in inventory. Assuming you want to split old component peas."); PluginCore.PC.t(); } this.f(); }
private void a(int A_0) { string str = "<UNKNOWN>"; try { str = PluginCore.cq.p.d(A_0).e(); } catch { } PluginCore.e("Abandoned trying to combine item " + str + " (Bugged unsalvageable salvage bag)"); this.i.Add(A_0); if (this.h.ContainsKey(A_0)) { this.h.Remove(A_0); } }
public void StartMacro() { if (!PluginCore.ck) { a5.a(eChatType.Errors, "The macro encountered an exception on startup. Cannot continue."); } else if (PluginCore.cg == 0) { PluginCore.cq.c.StopMacro(); a5.a(eChatType.Errors, "Please wait until you are fully logged in."); } else if (!PluginCore.cq.ay.cl) { PluginCore.cq.c.StopMacro(); a5.a(eChatType.Errors, "Please wait until you are fully logged in."); } else { this.k = true; PluginCore.cq.n.b = true; PluginCore.cq.n.i.Clear(); PluginCore.cq.n.a = false; PluginCore.cq.n.r = 0; PluginCore.cq.g.d(); PluginCore.cq.n.c(); PluginCore.cq.n.n.a(); a2.e(); [email protected] = DateTimeOffset.Now; PluginCore.cq.ay.aq(); PluginCore.cq.ay.v.Checked = true; this.f.a(0x125); this.f.d(); ai.a(); this.k = false; PluginCore.e("Macro started."); foreach (ILogicRule rule in this.m) { rule.Running = false; } PluginCore.cq.aj.g(); this.TryPokeMacro(); } }
protected override bool e() { switch (this.f) { case c2.a.a: if (this.e == PluginCore.ch) { if (!PluginCore.cq.n.n.b(ActionLockType.ItemUse)) { int num = this.g(); if (num == 0) { PluginCore.e("Warning: cannot find portal object " + this.a + "! Continuing route at next point."); return(false); } this.d = PluginCore.cq.p.d(PluginCore.cq.p.f()).b(PluginCore.cq.ax.get_Actions()); PluginCore.cq.n.n.a(ActionLockType.ItemUse, TimeSpan.FromSeconds(3.0)); PluginCore.cq.ax.get_Actions().UseItem(num, 0); } return(true); } this.f = c2.a.b; return(true); case c2.a.b: if (PluginCore.ch < (this.e + 2L)) { return(true); } if (PluginCore.cq.p.d(PluginCore.cq.p.f()).b(PluginCore.cq.ax.get_Actions()).a(this.d, true) <= 0.0625) { PluginCore.e("Warning: use portal route came out of portal space too close to the origin point. Trying again..."); this.f = c2.a.a; this.e = PluginCore.ch; return(true); } return(false); } return(false); }
public bool d() { TimeSpan span = (TimeSpan)(DateTimeOffset.Now - this.i); if ((span > TimeSpan.FromSeconds(er.h("CorpseItemAppearanceTimeoutSeconds"))) && (this.h > 0)) { PluginCore.e("Abandoned attempting to loot corpse. Item appearance timeout occurred. (Empty corpse bug)"); this.h = 0; } if (this.h > 0) { return(false); } bool flag = false; foreach (int num in this.c.Keys) { if (this.c[num].c && !this.c[num].d) { flag = true; break; } } if (flag && (span > TimeSpan.FromSeconds(er.h("CorpseItemIDTimeoutSeconds")))) { PluginCore.e("Abandoned attempting to loot corpse. Unable to recieve ID for all items."); flag = false; } if (flag) { return(false); } if (this.d.Count > 0) { return(false); } return(true); }
public void b(int A_0) { if (this.b.ContainsKey(A_0)) { Dictionary <int, int> dictionary; int num; (dictionary = this.b)[num = A_0] = dictionary[num] + 1; } else { this.b[A_0] = 1; } if (this.b[A_0] > er.i("GhostMonsterSpellAttemptCount")) { cv cv = PluginCore.cq.p.d(A_0); if (((cv != null) && (cv.c() == ObjectClass.Monster)) && er.j("DeleteGhostMonsters")) { PluginCore.e("Deleting ghost monster " + cv.g() + " (" + A_0.ToString() + ")"); dh.d(A_0); } this.b.Remove(A_0); } }
private static void a() { b0.c c = new b0.c(PluginCore.cq.u); PluginCore.e("IDQueue overall category counts:"); foreach (KeyValuePair <b0.a, int> pair in c.d) { PluginCore.e(string.Format("{0}: {1}", (int)pair.Key, pair.Value)); } PluginCore.e("IDQueue entries:"); foreach (int num in c.a) { string str = "???"; if (PluginCore.cq.p.d(num) != null) { str = PluginCore.cq.p.d(num).g(); } StringBuilder builder = new StringBuilder(); builder.AppendFormat("{0} ({1})", str, num); builder.Append(": "); if (c.c.ContainsKey(num)) { builder.AppendFormat("Category {0}, ", (int)c.c[num]); } if (c.b.ContainsKey(num) && (c.b[num].Count > 0)) { builder.Append("[Callback], "); } builder.AppendFormat("IsGoodObj {0}, ", dh.b(num)); if (dh.b(num)) { builder.AppendFormat("ContainerZero {0}, ", PluginCore.cq.aw.get_WorldFilter().get_Item(num).get_Container() == 0); builder.AppendFormat("InRange {0}, ", dh.a(num, PluginCore.cg, true) <= PluginCore.cq.n.p); } a5.a(eChatType.CommandLine, builder.ToString()); } }
private bool f() { for (int i = this.b.Count - 1; i >= 0; i--) { int num2 = this.b[i]; if (!PluginCore.cq.p.b(num2, PluginCore.cq.ax)) { fc.a local1 = this.c[num2]; local1.b++; if (this.c[num2].b > 0x19) { this.c.Remove(num2); this.b.RemoveAt(i); PluginCore.e("Cannot salvage item " + num2.ToString() + " because it is no longer in the inventory."); } } else { fc.a local2 = this.c[num2]; local2.a++; if (this.c[num2].a > 80) { this.c.Remove(num2); this.b.RemoveAt(i); PluginCore.e("Cannot salvage item " + num2.ToString() + ", item may be bugged unsalvageable."); } else { this.e = num2; return(true); } } } this.e = 0; return(false); }
public void StopMacro() { try { foreach (ILogicRule rule in this.l) { rule.Running = false; } PluginCore.cq.n.b = false; PluginCore.cq.g.d(); this.f.f(); PluginCore.cq.ay.v.Checked = false; if (PluginCore.cq.n.c != 0) { PluginCore.cq.n.c = 0; PluginCore.PC.a(new MyList <int>(100)); } PluginCore.cq.ay.aq(); PluginCore.e("Macro stopped."); } catch { } }
public void q() { string str = "uTank2 SCF 1.06"; int num = 0; foreach (string str2 in Directory.GetFiles(PluginCore.ci, "*.uts")) { try { string[] strArray2 = str2.Split(new char[] { '\\' }); string str3 = strArray2[strArray2.Length - 1]; string str4 = str3.Split(new char[] { '.' })[0]; this.c.d(this.e); this.a(); StreamReader reader = new StreamReader(str2); if (reader.ReadLine() == str) { er.a("EnableLooting", k.a(Convert.ToBoolean(reader.ReadLine()))); er.a("EnableNav", k.a(Convert.ToBoolean(reader.ReadLine()))); er.a("NavCloseStopRange", k.a(Convert.ToDouble(reader.ReadLine()))); er.a("NavFarStopRange", k.a(Convert.ToDouble(reader.ReadLine()))); er.a("SpellDiffExcessThreshold-Hunt", k.a(Convert.ToInt32(reader.ReadLine()))); er.a("SpellDiffExcessThreshold-Buff", k.a(Convert.ToInt32(reader.ReadLine()))); er.a("ArrowheadFletchDiffExcessThreshold", k.a(Convert.ToInt32(reader.ReadLine()))); er.a("Recharge-Norm-HitP", k.a((int)Convert.ToSingle(reader.ReadLine()))); er.a("Recharge-Norm-Stam", k.a((int)Convert.ToSingle(reader.ReadLine()))); er.a("Recharge-Norm-Mana", k.a((int)Convert.ToSingle(reader.ReadLine()))); er.a("Recharge-NoTarg-HitP", k.a((int)Convert.ToSingle(reader.ReadLine()))); er.a("Recharge-NoTarg-Stam", k.a((int)Convert.ToSingle(reader.ReadLine()))); er.a("Recharge-NoTarg-Mana", k.a((int)Convert.ToSingle(reader.ReadLine()))); er.a("Recharge-Helper-HitP", k.a((int)Convert.ToSingle(reader.ReadLine()))); er.a("Recharge-Helper-Stam", k.a((int)Convert.ToSingle(reader.ReadLine()))); er.a("Recharge-Helper-Mana", k.a((int)Convert.ToSingle(reader.ReadLine()))); er.a("DoHelp", k.a(Convert.ToBoolean(reader.ReadLine()))); er.a("AttackDistance", k.a(Convert.ToDouble(reader.ReadLine()))); er.a("ApproachDistance", k.a(Convert.ToDouble(reader.ReadLine()))); er.a("RingDistance", k.a(Convert.ToDouble(reader.ReadLine()))); er.a("HelperDistanceHitP", k.a(Convert.ToDouble(reader.ReadLine()))); er.a("HelperDistanceStam", k.a(er.h("HelperDistanceHitP"))); er.a("HelperDistanceMana", k.a(er.h("HelperDistanceHitP"))); er.a("MinimumRingTargets", k.a(Convert.ToInt32(reader.ReadLine()))); er.a("CastDispelSelf", k.a(Convert.ToBoolean(reader.ReadLine()))); er.a("UseDispelItems", k.a(Convert.ToBoolean(reader.ReadLine()))); this.g.Clear(); int num2 = Convert.ToInt32(reader.ReadLine()); for (int i = 0; i < num2; i++) { string key = reader.ReadLine(); int num4 = Convert.ToInt32(reader.ReadLine()); this.g.Add(key, PluginCore.cq.e.b(num4)); } this.h.Clear(); int num5 = Convert.ToInt32(reader.ReadLine()); for (int j = 0; j < num5; j++) { string str7 = reader.ReadLine(); int num7 = Convert.ToInt32(reader.ReadLine()); this.h.Add(str7, (fz)num7); } PluginCore.cq.d.h(); int num8 = Convert.ToInt32(reader.ReadLine()); aj.c c = new aj.c(); c.a(reader); PluginCore.cq.d.a(c); for (int k = 0; k < num8; k++) { string str8 = reader.ReadLine(); aj.c c2 = new aj.c(); c2.a(reader); PluginCore.cq.d.a(str8, c2); } reader.Close(); this.b(); this.c.c(Path.Combine(PluginCore.ci, str4 + ".usd")); new FileInfo(str2).MoveTo(str2 + ".bak"); num++; } } catch (Exception exception) { ad.a(exception); } } if (num > 0) { PluginCore.e("Converted " + num.ToString() + " old 0.2.0.x profiles."); } }
private void a(bool A_0, TextReader A_1) { if (A_0) { try { bf bf = new bf(); bf.a(A_1); int num = bf.b() - 1; if (num > 0) { foreach (KeyValuePair <string, a0> pair in this.c) { int num2 = 0; for (int i = 0; i < pair.Value.a(); i++) { if (pair.Value.b(i)) { num2 = i; break; } } if (bf.ContainsKey(pair.Key)) { pair.Value.a(bf[pair.Key], num2); } } string str = Path.Combine(PluginCore.ci, "gameinfodb.ugd"); try { this.c.c(str); } catch { } PluginCore.cq.d.c(); PluginCore.e("GameInfoDB updated (" + num.ToString() + " changed records)."); } else { PluginCore.e("GameInfoDB is current."); } } catch (Exception exception) { PluginCore.e("GameInfoDB update failed due to an unknown error."); PluginCore.cq.n.a(exception.Message, e8.f); PluginCore.cq.n.a(exception.StackTrace, e8.f); } } else { PluginCore.e("GameInfoDB update failed (" + A_1.ReadToEnd() + ")."); } this.b = true; this.f(); if (this.a != null) { this.a(); } }
public void a(int A_0, bool A_1) { if (!A_1 || !dh.b(A_0)) { goto Label_045E; } WorldObject obj2 = PluginCore.cq.aw.get_WorldFilter().get_Item(A_0); if (((obj2.get_ObjectClass() == 6) || (obj2.get_ObjectClass() == 11)) || ((obj2.get_ObjectClass() == 0x1d) || (obj2.get_ObjectClass() == 0x10))) { string str; if (!obj2.Exists(0x11) || (((str = obj2.get_Name()) != null) && (((str == "Eternal Health Kit") || (str == "Eternal Stamina Kit")) || (str == "Eternal Mana Kit")))) { if (obj2.get_SpellCount() > 0) { MySpell spell = PluginCore.cq.e.b(obj2.Spell(0)); if ((spell == null) || (spell.Duration < 1200.0)) { goto Label_045E; } } string key = obj2.get_Name(); if (key != null) { int num2; if (bx.k == null) { Dictionary <string, int> dictionary1 = new Dictionary <string, int>(0x27); dictionary1.Add("Burning Coal", 0); dictionary1.Add("Enhanced Mucor", 1); dictionary1.Add("Gem of Impulse", 2); dictionary1.Add("Refreshing Water", 3); dictionary1.Add("Enhanced Health Elixir", 4); dictionary1.Add("Enhanced Mana Elixir", 5); dictionary1.Add("Black Market Health Elixir", 6); dictionary1.Add("Black Market Mana Elixir", 7); dictionary1.Add("Draught of Revitalization", 8); dictionary1.Add("Gonjoku's Mana Infusion", 9); dictionary1.Add("Harbinger Blood Infusion", 10); dictionary1.Add("Platinum Spirits", 11); dictionary1.Add("Potion of Black Fire", 12); dictionary1.Add("Potion of Destiny's Wind", 13); dictionary1.Add("Potion of Endless Vigor", 14); dictionary1.Add("Coral Fragment", 15); dictionary1.Add("Blue Gem", 0x10); dictionary1.Add("Black Page of Salt and Ash", 0x11); dictionary1.Add("Dull Gem", 0x12); dictionary1.Add("Gem of Black Fire", 0x13); dictionary1.Add("Gem of Harbinger's Acid Barrier", 20); dictionary1.Add("Gem of Harbinger's Flame Barrier", 0x15); dictionary1.Add("Gem of Harbinger's Frost Barrier", 0x16); dictionary1.Add("Gem of Harbinger's Lightning Barrier", 0x17); dictionary1.Add("Miyako's Moonstone", 0x18); dictionary1.Add("Priceless Ore", 0x19); dictionary1.Add("Rage of Grael Gem", 0x1a); dictionary1.Add("Red Gem", 0x1b); dictionary1.Add("Swamp Gem", 0x1c); dictionary1.Add("Essence of Cave Penguin", 0x1d); dictionary1.Add("Stout Lugian Ale", 30); dictionary1.Add("Hearty Lugian Loaf", 0x1f); dictionary1.Add("Pepper Jack Cheese", 0x20); dictionary1.Add("Tasty Pudding", 0x21); dictionary1.Add("Thick Lugian Stew", 0x22); dictionary1.Add("Light Infused Healing Kit", 0x23); dictionary1.Add("Sake", 0x24); dictionary1.Add("Slice of Royal Wedding Cake", 0x25); dictionary1.Add("Massive Mana Charge", 0x26); bx.k = dictionary1; } if (bx.k.TryGetValue(key, out num2)) { switch (num2) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: case 0x10: case 0x11: case 0x12: case 0x13: case 20: case 0x15: case 0x16: case 0x17: case 0x18: case 0x19: case 0x1a: case 0x1b: case 0x1c: case 0x1d: case 30: case 0x1f: case 0x20: case 0x21: case 0x22: case 0x23: case 0x24: case 0x25: case 0x26: goto Label_045E; } } } PluginCore.PC.h(A_0); } goto Label_045E; } if (!fn.a(obj2)) { goto Label_045E; } if ((obj2.get_ObjectClass() == 1) || (obj2.get_ObjectClass() == 9)) { SkillInfo o = null; try { int num = obj2.Values(0xd000020, 0); if (num != 0) { o = PluginCore.cq.aw.get_CharacterFilter().get_Underlying().get_Skill((eSkillID)num); if ((o.get_Training() != 1) && (o.get_Training() != null)) { goto Label_041F; } } goto Label_045E; } finally { if (o != null) { Marshal.ReleaseComObject(o); } } } Label_041F: if (obj2.Exists(0x69) && !obj2.Exists(0xab)) { if (CoreManager.get_Current().get_CharacterFilter().get_Level() >= 120) { goto Label_045E; } ai.a("Note: since you are under level 120, untinkered items are being auto-added to your items list."); } PluginCore.PC.l(A_0); Label_045E: if (this.r && (PluginCore.cq.u.b(b0.a.a) == 0)) { PluginCore.e("Set default profile: Done scanning inventory."); } }
public void f() { MyList <string> list = new MyList <string>(15); foreach (cv cv in PluginCore.cq.p.d()) { if (list.Contains(cv.g())) { continue; } bool flag = false; switch (cv.c()) { case ObjectClass.MeleeWeapon: flag = true; break; case ObjectClass.Armor: flag = true; break; case ObjectClass.Food: flag = true; list.Add(cv.g()); break; case ObjectClass.MissileWeapon: flag = true; break; case ObjectClass.Gem: flag = true; list.Add(cv.g()); break; case ObjectClass.ManaStone: flag = true; list.Add(cv.g()); break; case ObjectClass.HealingKit: flag = true; list.Add(cv.g()); break; case ObjectClass.WandStaffOrb: flag = true; break; } if (flag) { if (cv.j) { this.a(cv.k, true); } else { PluginCore.cq.u.a(cv.k, new b0.b(this.a), b0.a.a); } } } if (PluginCore.cq.u.b(b0.a.a) > 0) { PluginCore.e("Set default profile: Beginning inventory scan (" + PluginCore.cq.u.b(b0.a.a).ToString() + " items)."); this.r = true; } else { PluginCore.e("Set default profile: Inventory scan not needed."); } }
public void j() { if ((PluginCore.cq.u.b(b0.a.a) > 0) && this.r) { PluginCore.e("Set default profile: Inventory scan canceled."); } this.r = false; PluginCore.cq.u.a(b0.a.a); if (string.IsNullOrEmpty(this.m)) { this.o(); } else { string path = Path.Combine(PluginCore.ci, this.m); if (File.Exists(path)) { bool flag = true; try { this.c.b(path); if (this.c["MyMonsters"].a() <= 10) { this.c["MyMonsters"].b("Broadside", k.a(false)); } if (this.c["MyMonsters"].a() <= 11) { this.c["MyMonsters"].b("Fester", k.a(false)); } if (this.c["MyMonsters"].a() <= 12) { this.c["MyMonsters"].b("WeakeningCurse", k.a(false)); } if (this.c["MyMonsters"].a() <= 13) { this.c["MyMonsters"].b("FesteringCurse", k.a(false)); } if (this.c["MyMonsters"].a() <= 14) { this.c["MyMonsters"].b("Corruption", k.a(false)); } if (this.c["MyMonsters"].a() <= 15) { this.c["MyMonsters"].b("DestructiveCurse", k.a(false)); } if (this.c["MyMonsters"].a() <= 0x10) { this.c["MyMonsters"].b("Corrosion", k.a(false)); } if (this.c["MyMonsters"].a() <= 0x11) { this.c["MyMonsters"].b("Streak", k.a(false)); } if (this.c["MyMonsters"].a() <= 0x12) { this.c["MyMonsters"].b("SecondaryVuln", k.a(0x62)); } if (this.c["MyMonsters"].a() <= 0x13) { this.c["MyMonsters"].b("SecondaryEquip", k.a(0)); } if (!this.c.ContainsKey("ExtraBuffSpells")) { this.c.Add("ExtraBuffSpells", new a0(new string[] { "ExemplarId" })); } if (!this.c.ContainsKey("AntiExtraBuffSpells")) { this.c.Add("AntiExtraBuffSpells", new a0(new string[] { "ExemplarId" })); } if (!this.c.ContainsKey("ItemUseSpecifiers")) { this.c.Add("ItemUseSpecifiers", new a0(new string[] { "Object", "Uses" })); this.c["ItemUseSpecifiers"].c(0); } this.a(); } catch (Exception) { flag = false; } if (flag) { PluginCore.e("Loaded macro settings."); } else { this.o(); this.b(); this.c.c(path); } } else { this.o(); this.b(); this.c.c(path); } } PluginCore.cq.d.c(); PluginCore.cq.ay.w(); er.a(); PluginCore.cq.x.f(); }
private void a(object A_0, ChatTextInterceptEventArgs A_1) { try { string str; string str2; string str10; string str11; y.b b; int e; if ((PluginCore.cq.n.b && er.j("AutoFellowManagement")) && ((A_1.get_Color() == 3) && this.f.c())) { Match match = this.x.Match(A_1.get_Text()); if (match.Success) { str = match.Groups["name"].Value; str2 = match.Groups["msg"].Value; if (string.Compare(str2, "xp", true) == 0) { if (!this.a(str)) { foreach (KeyValuePair <int, ar.a> pair in this.f.a) { if (pair.Value.b == str) { PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] You are already in the fellowship. -v-"); return; } } if (this.j.Contains(str.ToLowerInvariant())) { PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Sorry, but you have been banned from this fellowship. -v-"); } else if (!this.l && !this.f.d()) { string str3 = "????"; if (this.f.a.ContainsKey(this.f.b())) { str3 = this.f.a[this.f.b()].b; } PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] I'm sorry, but the fellowship is closed and I am not the leader. The leader is currently: " + str3 + " -v-"); } else if (this.l) { if (this.k.Contains(str)) { if (this.m) { if (this.u.ContainsKey(str)) { if (!this.p.Contains(str)) { this.p.Add(str); } PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Please wait nearby. I will try to recruit you in a moment. -v-"); } else { int num = this.k.IndexOf(str) + 1; PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] You are already number " + num.ToString() + " of " + this.k.Count.ToString() + " on the waiting list. -v-"); } } else { PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Please wait nearby. I will try to recruit you in a moment. -v-"); } } else if (this.m) { this.k.Add(str); PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] The fellow is full, and I am the leader. I am adding you to the waiting list at position " + this.k.Count.ToString() + " -v-"); } else { this.k.Add(str); PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] I will recruit you in a moment. Please stand close to me. -v-"); } } else if ((!this.l && this.f.d()) && !this.a()) { if (!this.k.Contains(str)) { this.k.Add(str); } PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Please wait nearby. I will try to recruit you in a moment. -v-"); } else if ((!this.l && this.f.d()) && this.a()) { string str4 = "????"; if (this.f.a.ContainsKey(this.f.b())) { str4 = this.f.a[this.f.b()].b; } PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] I'm sorry, but the fellowship is full. The leader is currently: " + str4 + " -v-"); } } } else if (((string.Compare(str2, "line", true) == 0) || (string.Compare(str2, "list", true) == 0)) || (string.Compare(str2, "status", true) == 0)) { if (!this.a(str)) { if (this.l) { if (!this.m) { string[] strArray7 = new string[] { "/t ", str, ", [VT Fellow Manager] There is no waiting list. The fellowship has ", (this.f.a.Count + 1).ToString(), " members. -v-" }; PluginCore.cq.ah.b(string.Concat(strArray7)); } else if (this.k.Contains(str)) { int num2 = this.k.IndexOf(str) + 1; PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] You are number " + num2.ToString() + " of " + this.k.Count.ToString() + " on the waiting list. -v-"); } else { PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] The waiting list contains " + this.k.Count.ToString() + " players. You are not on it. -v-"); } } else { string str5; if (this.f.d()) { str5 = "open"; } else { str5 = "closed"; } string str6 = "????"; if (this.f.a.ContainsKey(this.f.b())) { str6 = this.f.a[this.f.b()].b; } PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] The leader is currently: " + str6 + ". The fellowship is " + str5 + ". -v-"); } } } else if (string.Compare(str2, "remove", true) == 0) { if (!this.a(str)) { string item = str; if (this.k.Contains(item)) { this.k.Remove(item); } if (this.p.Contains(item)) { this.p.Remove(item); } if (this.u.ContainsKey(item)) { this.u.Remove(item); } this.b(); PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] You have been removed from the list. -v-"); } } else if (string.Compare(str2, "leader", true) == 0) { if (!this.a(str)) { string str8; if (this.f.d()) { str8 = "open"; } else { str8 = "closed"; } if (this.l) { PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] I am the fellowship leader. The fellowship is " + str8 + ". -v-"); } else { string str9 = "????"; if (this.f.a.ContainsKey(this.f.b())) { str9 = this.f.a[this.f.b()].b; } PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] The leader is currently: " + str9 + ". The fellowship is " + str8 + ". -v-"); } } } else if (string.Compare(str2, "help", true) == 0) { if (!this.a(str)) { PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Available commands: xp, line, remove, leader, startvote, vote, location, help -v-"); } } else if (string.Compare(str2, "help startvote", true) == 0) { if (!this.a(str)) { PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Usage: startvote [votetype] [parameter]. Possible vote types: kick, ban, giveleader, setopen. -v-"); } } else if (string.Compare(str2, "help vote", true) == 0) { if (!this.a(str)) { PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Usage: vote [vote id] [yes/no] -v-"); } } else { if (!str2.StartsWith("startvote ")) { goto Label_1027; } if ((!this.a(str) && this.b(str)) && !this.j.Contains(str.ToLowerInvariant())) { if (this.q.ContainsKey(str) && (this.q[str] > DateTimeOffset.Now)) { string[] strArray13 = new string[] { "/t ", str, ", [VT Fellow Manager] You have initiated a vote too recently (wait another ", (this.q[str] - DateTimeOffset.Now).ToString(), "). -v-" }; PluginCore.cq.ah.b(string.Concat(strArray13)); } else { string[] strArray = str2.Split(new char[] { ' ' }); if (strArray.Length < 3) { PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Not enough parameters to startvote command. Tell me 'help startvote' for more information. -v-"); } else { str10 = strArray[1]; StringBuilder builder = new StringBuilder(); for (int i = 2; i < strArray.Length; i++) { if (i > 2) { builder.Append(" "); } builder.Append(strArray[i]); } str11 = builder.ToString(); b = new y.b { b = str11.ToLowerInvariant() }; if (string.Compare(str10, "kick", true) == 0) { if (!this.b(str11)) { PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Cannot vote to kick " + str11 + ", that player is not in the fellow. -v-"); return; } b.a = y.a.a; goto Label_0CE0; } if (string.Compare(str10, "ban", true) == 0) { if (!this.b(str11)) { PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Cannot vote to ban " + str11 + ", that player is not in the fellow. -v-"); return; } b.a = y.a.b; goto Label_0CE0; } if (string.Compare(str10, "giveleader", true) == 0) { if (!this.b(str11)) { PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Cannot vote to give leader to " + str11 + ", that player is not in the fellow. -v-"); return; } b.a = y.a.c; goto Label_0CE0; } if (string.Compare(str10, "setopen", true) == 0) { if ((str11 != "true") && (str11 != "false")) { PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] A setopen vote call must be followed by 'true' or 'false'. -v-"); return; } b.a = y.a.d; goto Label_0CE0; } PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Unknown vote type. Tell me 'help startvote' for more information. -v-"); } } } } } } return; Label_0CE0: e = 0; foreach (KeyValuePair <y.b, List <MyPair <string, bool> > > pair2 in this.r) { if (pair2.Key.a(b) == 0) { e = pair2.Key.e; break; } } if (e != 0) { PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] An identical vote is already in progress! (Vote ID " + e.ToString() + ") -v-"); } else { b.c = DateTimeOffset.Now + TimeSpan.FromMinutes(2.0); string[] strArray3 = new string[] { "/f [VT Fellow Manager] ", str, " has called a new vote: ", str10.ToLowerInvariant(), " ", str11, "! To vote, either tell me 'vote ", b.e.ToString(), " yes' or 'vote ", b.e.ToString(), " no'. You have ", 2.0.ToString(), " minutes. -v-" }; PluginCore.cq.ah.b(string.Concat(strArray3)); this.r.Add(b, new List <MyPair <string, bool> >()); MyPair <string, bool> pair3 = new MyPair <string, bool> { a = str, b = true }; this.r[b].Add(pair3); this.q[str] = DateTimeOffset.Now + TimeSpan.FromMinutes(4.0); PluginCore.cq.ah.b("/f [VT Fellow Manager] Vote total for '" + str10.ToLowerInvariant() + " " + str11 + "' (ID " + b.e.ToString() + "): 1/0 -v-"); PluginCore.e("Vote called by " + str + ": " + b.ToString() + ". [" + a.a("Vote Yes", new string[] { "fvote", b.e.ToString(), "yes" }) + "] [" + a.a("Vote No", new string[] { "fvote", b.e.ToString(), "no" }) + "] [" + a.a("Abort Vote", new string[] { "fvote", b.e.ToString(), "abort" }) + "]"); } return; Label_1027: if (str2.StartsWith("vote ")) { if ((!this.a(str) && this.b(str)) && !this.j.Contains(str.ToLowerInvariant())) { int num5; string[] strArray2 = str2.Split(new char[] { ' ' }); if ((strArray2.Length != 3) || !int.TryParse(strArray2[1], out num5)) { PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Invalid vote command. Votes should look like: vote idnumber yes, or: vote idnumber no -v-"); return; } bool flag = false; if (string.Compare(strArray2[2], "yes", true) == 0) { flag = true; } else if (string.Compare(strArray2[2], "no", true) == 0) { flag = false; } else { PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Invalid vote command. Votes should look like: vote idnumber yes, or: vote idnumber no -v-"); return; } y.b key = null; List <MyPair <string, bool> > list = null; foreach (KeyValuePair <y.b, List <MyPair <string, bool> > > pair4 in this.r) { if (pair4.Key.e == num5) { key = pair4.Key; list = pair4.Value; break; } } if (key == null) { PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Invalid vote ID number. Votes should look like: vote idnumber yes, or: vote idnumber no -v-"); return; } bool flag2 = false; foreach (MyPair <string, bool> pair5 in list) { if (pair5.a == str) { flag2 = true; pair5.b = flag; break; } } if (!flag2) { MyPair <string, bool> pair6 = new MyPair <string, bool> { a = str, b = flag }; list.Add(pair6); } int num6 = 0; int num7 = 0; foreach (MyPair <string, bool> pair7 in list) { if (pair7.b) { num6++; } else { num7++; } } PluginCore.cq.ah.b("/f [VT Fellow Manager] Vote total for " + key.ToString() + ": " + num6.ToString() + "/" + num7.ToString() + " -v-"); } } else { if ((string.Compare(str2, "location", true) != 0) || this.a(str)) { return; } bool flag3 = false; foreach (KeyValuePair <int, ar.a> pair8 in this.f.a) { if (pair8.Value.b == str) { flag3 = true; break; } } if (flag3) { PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] I am currently located in landcell: " + PluginCore.cq.p.d(PluginCore.cg).w.d().ToString("X8") + " -v-"); } else { PluginCore.cq.ah.b("/t " + str + ", [VT Fellow Manager] Sorry, I can only send my location to members of the fellowship. -v-"); } } } catch (Exception exception) { ad.a(exception); } }