private void LoadAndInitializeScripts() { foreach (Scripts.EnhancedScript script in Scripts.EnhancedScripts.Values.ToList()) { script.Stop(); script.Reset(); } Scripts.EnhancedScripts.Clear(); scriptlistView.BeginUpdate(); scriptlistView.Items.Clear(); DataTable scriptTable = RazorEnhanced.Settings.Dataset.Tables["SCRIPTING"]; foreach (DataRow row in scriptTable.Rows) { string filename = (string)row["Filename"]; bool wait = (bool)row["Wait"]; bool loop = (bool)row["Loop"]; string status = (string)row["Status"]; bool passkey = (bool)row["HotKeyPass"]; Keys key = (Keys)Convert.ToInt32(row["HotKey"]); bool autostart = (bool)row["AutoStart"]; bool run = false; if (status == "Running") { run = true; } string result = LoadFromFile(filename, wait, loop, run, autostart); if (result == "Loaded") { ListViewItem listitem = new ListViewItem(); listitem.SubItems.Add(filename); listitem.SubItems.Add(status); if (loop) { listitem.SubItems.Add("Yes"); } else { listitem.SubItems.Add("No"); } if (autostart) { listitem.SubItems.Add("Yes"); } else { listitem.SubItems.Add("No"); } if (wait) { listitem.SubItems.Add("Yes"); } else { listitem.SubItems.Add("No"); } listitem.SubItems.Add(HotKey.KeyString(key)); if (passkey) { listitem.SubItems.Add("Yes"); } else { listitem.SubItems.Add("No"); } scriptlistView.Items.Add(listitem); row["Status"] = "Stopped"; } else { // 17/08/2020 Removed loading not exist script file // 2/15/2021 added back to avoid hotkey issue, // removed bad file entries at load in settings so should never happen ListViewItem listitem = new ListViewItem(); listitem.SubItems.Add("File Not Found"); listitem.SubItems.Add("Error"); listitem.SubItems.Add("No"); listitem.SubItems.Add("No"); listitem.SubItems.Add("No"); listitem.SubItems.Add(HotKey.KeyString(key)); listitem.SubItems.Add("No"); scriptlistView.Items.Add(listitem); row["Status"] = "Error"; } } scriptlistView.EndUpdate(); }
private static void TargetResponse(PacketReader p, PacketHandlerEventArgs args) { TargetInfo info = new TargetInfo(); info.Type = p.ReadByte(); info.TargID = p.ReadUInt32(); info.Flags = p.ReadByte(); info.Serial = p.ReadUInt32(); info.X = p.ReadUInt16(); info.Y = p.ReadUInt16(); info.Z = p.ReadInt16(); info.Gfx = p.ReadUInt16(); m_ClientTarget = false; // check for cancel if (info.X == 0xFFFF && info.X == 0xFFFF && (info.Serial <= 0 || info.Serial >= 0x80000000)) { m_HasTarget = false; if (m_Intercept) { args.Block = true; Timer.DelayedCallbackState(TimeSpan.Zero, m_OneTimeRespCallback, info).Start(); EndIntercept(); if (m_PreviousID != 0) { m_CurrentID = m_PreviousID; m_AllowGround = m_PreviousGround; m_CurFlags = m_PrevFlags; m_PreviousID = 0; ResendTarget(); } } else if (m_FilterCancel.Contains((uint)info.TargID) || info.TargID == LocalTargID) { args.Block = true; } m_FilterCancel.Clear(); return; } ClearQueue(); if (m_Intercept) { if (info.TargID == LocalTargID) { Timer.DelayedCallbackState(TimeSpan.Zero, m_OneTimeRespCallback, info).Start(); m_HasTarget = false; args.Block = true; if (m_PreviousID != 0) { m_CurrentID = m_PreviousID; m_AllowGround = m_PreviousGround; m_CurFlags = m_PrevFlags; m_PreviousID = 0; ResendTarget(); } m_FilterCancel.Clear(); return; } else { EndIntercept(); } } m_HasTarget = false; if (CheckHealPoisonTarg(m_CurrentID, info.Serial)) { ResendTarget(); args.Block = true; } if (info.Serial != World.Player.Serial) { if (info.Serial.IsValid) { // only let lasttarget be a non-ground target m_LastTarget = info; if (info.Flags == 1) { m_LastHarmTarg = info; } else if (info.Flags == 2) { m_LastBeneTarg = info; } LastTargetChanged(); } m_LastGroundTarg = info; // ground target is the true last target if (Macros.MacroManager.AcceptActions) { MacroManager.Action(new AbsoluteTargetAction(info)); } } else { if (Macros.MacroManager.AcceptActions) { KeyData hk = HotKey.Get((int)LocString.TargetSelf); if (hk != null) { MacroManager.Action(new HotKeyAction(hk)); } else { MacroManager.Action(new AbsoluteTargetAction(info)); } } } m_FilterCancel.Clear(); }
public void MakeDefault() { m_Props.Clear(); AddProperty("ShowMobNames", false); AddProperty("ShowCorpseNames", false); AddProperty("DisplaySkillChanges", false); AddProperty("TitleBarText", @"UO - {char} {crimtime}- {mediumstatbar} {bp} {bm} {gl} {gs} {mr} {ns} {ss} {sa} {aids}"); AddProperty("TitleBarDisplay", true); AddProperty("AutoSearch", true); AddProperty("NoSearchPouches", true); AddProperty("CounterWarnAmount", (int)5); AddProperty("CounterWarn", true); AddProperty("ObjectDelay", (int)600); AddProperty("ObjectDelayEnabled", true); AddProperty("AlwaysOnTop", false); AddProperty("SortCounters", true); AddProperty("QueueActions", false); AddProperty("QueueTargets", false); AddProperty("WindowX", (int)400); AddProperty("WindowY", (int)400); AddProperty("CountStealthSteps", true); AddProperty("SysColor", (int)0x03B1); AddProperty("WarningColor", (int)0x0025); AddProperty("ExemptColor", (int)0x0480); AddProperty("SpeechHue", (int)0x03B1); AddProperty("BeneficialSpellHue", (int)0x0005); AddProperty("HarmfulSpellHue", (int)0x0025); AddProperty("NeutralSpellHue", (int)0x03B1); AddProperty("ForceSpeechHue", false); AddProperty("ForceSpellHue", false); AddProperty("SpellFormat", @"{power} [{spell}]"); AddProperty("ShowNotoHue", true); AddProperty("Opacity", (int)100); AddProperty("AutoOpenCorpses", false); AddProperty("CorpseRange", (int)2); AddProperty("BlockDismount", false); AddProperty("CapFullScreen", false); AddProperty("CapPath", Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures), "RazorScreenShots")); AddProperty("CapTimeStamp", true); AddProperty("ImageFormat", "jpg"); AddProperty("UndressConflicts", true); AddProperty("HighlightReagents", true); AddProperty("Systray", false); AddProperty("TitlebarImages", true); AddProperty("SellAgentMax", (int)99); AddProperty("SkillListCol", (int)-1); AddProperty("SkillListAsc", false); AddProperty("AutoStack", true); AddProperty("ActionStatusMsg", true); AddProperty("RememberPwds", false); AddProperty("SpellUnequip", true); AddProperty("RangeCheckLT", true); AddProperty("LTRange", (int)12); AddProperty("ClientPrio", "Normal"); AddProperty("FilterSnoopMsg", true); AddProperty("OldStatBar", false); AddProperty("SmartLastTarget", false); AddProperty("LastTargTextFlags", true); //AddProperty("SmartCPU", false); AddProperty("LTHilight", (int)0); AddProperty("AutoFriend", false); AddProperty("AutoOpenDoors", true); AddProperty("MessageLevel", 0); AddProperty("ForceIP", ""); AddProperty("ForcePort", 0); AddProperty("ForceSizeEnabled", false); AddProperty("ForceSizeX", 1000); AddProperty("ForceSizeY", 800); AddProperty("PotionEquip", false); AddProperty("BlockHealPoison", true); AddProperty("SmoothWalk", false); AddProperty("Negotiate", true); AddProperty("MapX", 200); AddProperty("MapY", 200); AddProperty("MapW", 200); AddProperty("MapH", 200); AddProperty("LogPacketsByDefault", false); AddProperty("ShowHealth", true); AddProperty("HealthFmt", "[{0}%]"); AddProperty("ShowPartyStats", true); AddProperty("PartyStatFmt", "[{0}% / {1}%]"); AddProperty("HotKeyStop", false); AddProperty("DiffTargetByType", false); AddProperty("StepThroughMacro", false); // Map options /*AddProperty("ShowPlayerPosition", true); * AddProperty("TrackPlayerPosition", true); * AddProperty("ShowPartyMemberPositions", true); * AddProperty("TiltMap", true);*/ AddProperty("ShowTargetSelfLastClearOverhead", true); AddProperty("ShowOverheadMessages", false); AddProperty("CaptureMibs", false); //OverheadFormat AddProperty("OverheadFormat", "[{msg}]"); AddProperty("OverheadStyle", 1); AddProperty("GoldPerDisplay", false); AddProperty("LightLevel", 31); AddProperty("LogSkillChanges", false); AddProperty("StealthOverhead", false); AddProperty("ShowBuffDebuffOverhead", true); AddProperty("BuffDebuffFormat", "[{action}{name} ({duration}s)]"); AddProperty("BlockOpenCorpsesTwice", false); AddProperty("ScreenshotUploadNotifications", false); AddProperty("ScreenshotUploadClipboard", true); AddProperty("ScreenshotUploadOpenBrowser", true); AddProperty("ShowAttackTargetOverhead", true); AddProperty("RangeCheckTargetByType", false); AddProperty("RangeCheckDoubleClick", false); AddProperty("ShowContainerLabels", false); AddProperty("ContainerLabelFormat", "[{label}] ({type})"); AddProperty("ContainerLabelColor", 88); AddProperty("ContainerLabelStyle", 1); AddProperty("Season", 5); AddProperty("BlockTradeRequests", false); AddProperty("BlockPartyInvites", false); AddProperty("AutoAcceptParty", false); AddProperty("MaxLightLevel", 31); AddProperty("MinLightLevel", 0); AddProperty("MinMaxLightLevelEnabled", false); AddProperty("ShowStaticWalls", false); AddProperty("ShowStaticWallLabels", false); AddProperty("ShowTextTargetIndicator", false); AddProperty("ShowAttackTargetNewOnly", false); AddProperty("FilterDragonGraphics", false); AddProperty("FilterDrakeGraphics", false); AddProperty("DragonGraphic", 0); AddProperty("DrakeGraphic", 0); AddProperty("ShowDamageDealt", false); AddProperty("ShowDamageDealtOverhead", false); AddProperty("ShowDamageTaken", false); AddProperty("ShowDamageTakenOverhead", false); AddProperty("ShowInRazorTitleBar", false); AddProperty("RazorTitleBarText", "{name} on {account} ({profile} - {shard}) - Razor v{version}"); AddProperty("EnableUOAAPI", true); AddProperty("UOAMPath", string.Empty); AddProperty("UltimaMapperPath", string.Empty); AddProperty("TargetIndicatorFormat", "* Target *"); AddProperty("NextPrevTargetIgnoresFriends", false); AddProperty("StealthStepsFormat", "Steps: {step}"); AddProperty("ShowFriendOverhead", false); AddProperty("DisplaySkillChangesOverhead", false); AddProperty("GrabHotBag", "0"); // Enable it for OSI client by default, CUO turn it off AddProperty("MacroActionDelay", Client.IsOSI); AddProperty("AutoOpenDoorWhenHidden", false); AddProperty("DisableMacroPlayFinish", false); AddProperty("ShowBandageTimer", false); AddProperty("ShowBandageTimerFormat", "Bandage: {count}s"); AddProperty("ShowBandageTimerLocation", 0); AddProperty("OnlyShowBandageTimerEvery", false); AddProperty("OnlyShowBandageTimerSeconds", 1); AddProperty("ShowBandageTimerHue", 88); AddProperty("FriendOverheadFormat", "[Friend]"); AddProperty("FriendOverheadFormatHue", 0x03F); AddProperty("TargetIndicatorHue", 10); AddProperty("FilterSystemMessages", false); AddProperty("FilterRazorMessages", false); AddProperty("FilterDelay", 3.5); AddProperty("FilterOverheadMessages", false); AddProperty("OnlyNextPrevBeneficial", false); AddProperty("FriendlyBeneficialOnly", false); AddProperty("NonFriendlyHarmfulOnly", false); AddProperty("ShowBandageStart", false); AddProperty("BandageStartMessage", "Bandage: Starting"); AddProperty("ShowBandageEnd", false); AddProperty("BandageEndMessage", "Bandage: Ending"); AddProperty("BuffDebuffSeconds", 20); AddProperty("BuffHue", 88); AddProperty("DebuffHue", 338); AddProperty("DisplayBuffDebuffEvery", false); AddProperty("BuffDebuffFilter", string.Empty); AddProperty("BuffDebuffEveryXSeconds", false); AddProperty("CaptureOthersDeathDelay", 0.5); AddProperty("CaptureOwnDeathDelay", 0.5); AddProperty("CaptureOthersDeath", false); AddProperty("CaptureOwnDeath", false); AddProperty("TargetFilterEnabled", false); AddProperty("FilterDaemonGraphics", false); AddProperty("DaemonGraphic", 0); AddProperty("SoundFilterEnabled", false); AddProperty("ShowFilteredSound", false); AddProperty("ShowPlayingSoundInfo", false); AddProperty("ShowMusicInfo", false); AddProperty("AutoSaveScript", false); AddProperty("AutoSaveScriptPlay", false); AddProperty("HighlightFriend", false); AddProperty("ScriptTargetTypeRange", false); AddProperty("ScriptDClickTypeRange", false); AddProperty("ScriptFindTypeRange", false); Counter.Default(); Filter.DisableAll(); DressList.ClearAll(); HotKey.ClearAll(); Agent.ClearAll(); PasswordMemory.ClearAll(); FriendsManager.ClearAll(); DressList.ClearAll(); OverheadMessages.ClearAll(); ContainerLabels.ClearAll(); MacroVariables.ClearAll(); ScriptVariables.ClearAll(); FriendsManager.ClearAll(); }
public void Save() { string profileDir = Config.GetUserDirectory("Profiles"); string file = Path.Combine(profileDir, String.Format("{0}.xml", m_Name)); if (m_Name != "default" && !m_Warned) { try { m_Mutex = new System.Threading.Mutex(true, String.Format("Razor_Profile_{0}", m_Name)); if (!m_Mutex.WaitOne(10, false)) { throw new Exception("Can't grab profile mutex, must be in use!"); } } catch { //MessageBox.Show( Engine.ActiveWindow, Language.Format( LocString.ProfileInUse, m_Name ), "Profile In Use", MessageBoxButtons.OK, MessageBoxIcon.Warning ); //m_Warned = true; return; // refuse to overwrite profiles that we don't own. } } XmlTextWriter xml; try { xml = new XmlTextWriter(file, Encoding.Default); } catch { return; } xml.Formatting = Formatting.Indented; xml.IndentChar = '\t'; xml.Indentation = 1; xml.WriteStartDocument(true); xml.WriteStartElement("profile"); foreach (KeyValuePair <string, object> de in m_Props) { xml.WriteStartElement("property"); xml.WriteAttributeString("name", de.Key); if (de.Value == null) { xml.WriteAttributeString("type", "-null-"); } else { xml.WriteAttributeString("type", de.Value.GetType().FullName); xml.WriteString(de.Value.ToString()); } xml.WriteEndElement(); } xml.WriteStartElement("filters"); Filter.Save(xml); xml.WriteEndElement(); xml.WriteStartElement("counters"); Counter.SaveProfile(xml); xml.WriteEndElement(); xml.WriteStartElement("agents"); Agent.SaveProfile(xml); xml.WriteEndElement(); xml.WriteStartElement("dresslists"); DressList.Save(xml); xml.WriteEndElement(); xml.WriteStartElement("hotkeys"); HotKey.Save(xml); xml.WriteEndElement(); xml.WriteStartElement("passwords"); PasswordMemory.Save(xml); xml.WriteEndElement(); xml.WriteStartElement("overheadmessages"); OverheadMessages.Save(xml); xml.WriteEndElement(); xml.WriteStartElement("containerlabels"); ContainerLabels.Save(xml); xml.WriteEndElement(); xml.WriteStartElement("macrovariables"); MacroVariables.Save(xml); xml.WriteEndElement(); xml.WriteStartElement("scriptvariables"); ScriptVariables.Save(xml); xml.WriteEndElement(); xml.WriteStartElement("friends"); FriendsManager.Save(xml); xml.WriteEndElement(); xml.WriteStartElement("targetfilters"); TargetFilterManager.Save(xml); xml.WriteEndElement(); xml.WriteStartElement("soundfilters"); SoundMusicManager.Save(xml); xml.WriteEndElement(); xml.WriteEndElement(); // end profile section xml.Close(); }
//private DateTime m_LastActivate; public override bool OnMessage(MainForm razor, uint wParam, int lParam) { bool retVal = true; switch ((UONetMessage)(wParam & 0xFFFF)) { case UONetMessage.Ready: //Patch status if (lParam == (int)InitError.NO_MEMCOPY) { if (MessageBox.Show(Engine.ActiveWindow, Language.GetString(LocString.NoMemCpy), "No Client MemCopy", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No) { m_Ready = false; ClientProc = null; Engine.MainWindow.CanClose = true; Engine.MainWindow.Close(); break; } } byte *baseAddr = (byte *)GetSharedAddress().ToPointer(); m_InRecv = (Buffer *)baseAddr; m_OutRecv = (Buffer *)(baseAddr + sizeof(Buffer)); m_InSend = (Buffer *)(baseAddr + sizeof(Buffer) * 2); m_OutSend = (Buffer *)(baseAddr + sizeof(Buffer) * 3); m_TitleStr = (byte *)(baseAddr + sizeof(Buffer) * 4); SetServer(m_ServerIP, m_ServerPort); CommMutex = new Mutex(); #pragma warning disable 618 CommMutex.Handle = GetCommMutex(); #pragma warning restore 618 try { string path = Ultima.Files.GetFilePath("art.mul"); if (path != null && path != string.Empty) { SetDataPath(Path.GetDirectoryName(path)); } else { SetDataPath(Path.GetDirectoryName(Ultima.Files.Directory)); } } catch { SetDataPath(""); } if (Config.GetBool("OldStatBar")) { RequestStatbarPatch(true); } m_Ready = true; Engine.MainWindow.MainForm_EndLoad(); break; case UONetMessage.NotReady: m_Ready = false; FatalInit((InitError)lParam); ClientProc = null; Engine.MainWindow.CanClose = true; Engine.MainWindow.Close(); break; // Network events case UONetMessage.Recv: OnRecv(); break; case UONetMessage.Send: OnSend(); break; case UONetMessage.Connect: m_ConnStart = DateTime.UtcNow; try { m_LastConnection = new IPAddress((uint)lParam); } catch { } break; case UONetMessage.Disconnect: OnLogout(false); break; case UONetMessage.Close: OnLogout(true); ClientProc = null; Engine.MainWindow.CanClose = true; Engine.MainWindow.Close(); break; // Hot Keys case UONetMessage.Mouse: HotKey.OnMouse((ushort)(lParam & 0xFFFF), (short)(lParam >> 16)); break; case UONetMessage.KeyDown: retVal = HotKey.OnKeyDown(lParam, ModKeys.None); break; // Activation Tracking case UONetMessage.Activate: /*if ( Config.GetBool( "AlwaysOnTop" ) ) * { * if ( (lParam&0x0000FFFF) == 0 && (lParam&0xFFFF0000) != 0 && razor.WindowState != FormWindowState.Minimized && razor.Visible ) * {// if uo is deactivating and minimized and we are not minimized * if ( !razor.ShowInTaskbar && razor.Visible ) * razor.Hide(); * razor.WindowState = FormWindowState.Minimized; * m_LastActivate = DateTime.UtcNow; * } * else if ( (lParam&0x0000FFFF) != 0 && (lParam&0xFFFF0000) != 0 && razor.WindowState != FormWindowState.Normal ) * { // is UO is activating and minimized and we are minimized * if ( m_LastActivate+TimeSpan.FromSeconds( 0.2 ) < DateTime.UtcNow ) * { * if ( !razor.ShowInTaskbar && !razor.Visible ) * razor.Show(); * razor.WindowState = FormWindowState.Normal; * //SetForegroundWindow( FindUOWindow() ); * } * m_LastActivate = DateTime.UtcNow; * } * }*/ break; case UONetMessage.Focus: if (Config.GetBool("AlwaysOnTop")) { if (lParam != 0 && !razor.TopMost) { razor.TopMost = true; Platform.SetForegroundWindow(FindUOWindow()); } else if (lParam == 0 && razor.TopMost) { razor.TopMost = false; razor.SendToBack(); } } // always use smartness for the map window if (razor.MapWindow != null && razor.MapWindow.Visible) { if (lParam != 0 && !razor.MapWindow.TopMost) { razor.MapWindow.TopMost = true; Platform.SetForegroundWindow(FindUOWindow()); } else if (lParam == 0 && razor.MapWindow.TopMost) { razor.MapWindow.TopMost = false; razor.MapWindow.SendToBack(); } } break; case UONetMessage.DLL_Error: { string error = "Unknown"; switch ((UONetMessage)lParam) { case UONetMessage.StatBar: error = "Unable to patch status bar."; break; } MessageBox.Show(Engine.ActiveWindow, "An Error has occured : \n" + error, "Error Reported", MessageBoxButtons.OK, MessageBoxIcon.Warning); break; } case UONetMessage.OnTick: // Game engine tick Timer.Slice(); break; // Unknown default: MessageBox.Show(Engine.ActiveWindow, "Unknown message from uo client\n" + ((int)wParam).ToString(), "Error?"); break; } return(retVal); }
public bool Load() { if (m_Name == null || m_Name.Trim() == "") { return(false); } string path = Config.GetUserDirectory("Profiles"); string file = Path.Combine(path, String.Format("{0}.xml", m_Name)); if (!File.Exists(file)) { return(false); } XmlDocument doc = new XmlDocument(); try { doc.Load(file); } catch { MessageBox.Show(Engine.ActiveWindow, Language.Format(LocString.ProfileCorrupt, file), "Profile Load Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); return(false); } XmlElement root = doc["profile"]; if (root == null) { return(false); } Assembly exe = Assembly.GetCallingAssembly(); if (exe == null) { return(false); } foreach (XmlElement el in root.GetElementsByTagName("property")) { try { string name = el.GetAttribute("name"); string typeStr = el.GetAttribute("type"); string val = el.InnerText; if (typeStr == "-null-" || name == "LimitSize" || name == "VisRange") { //m_Props[name] = null; if (m_Props.ContainsKey(name)) { m_Props.Remove(name); } } else { Type type = Type.GetType(typeStr); if (type == null) { type = exe.GetType(typeStr); } if (m_Props.ContainsKey(name) || name == "ForceSize") { if (type == null) { m_Props.Remove(name); } else { m_Props[name] = GetObjectFromString(val, type); } } } } catch (Exception e) { MessageBox.Show(Engine.ActiveWindow, Language.Format(LocString.ProfileLoadEx, e.ToString()), "Profile Load Exception", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } Filter.Load(root["filters"]); Counter.LoadProfile(root["counters"]); Agent.LoadProfile(root["agents"]); DressList.Load(root["dresslists"]); TargetFilterManager.Load(root["targetfilters"]); SoundMusicManager.Load(root["soundfilters"]); FriendsManager.Load(root["friends"]); HotKey.Load(root["hotkeys"]); PasswordMemory.Load(root["passwords"]); OverheadMessages.Load(root["overheadmessages"]); ContainerLabels.Load(root["containerlabels"]); MacroVariables.Load(root["macrovariables"]); //imports previous absolutetargets and doubleclickvariables if present in profile if ((root.SelectSingleNode("absolutetargets") != null) || (root.SelectSingleNode("doubleclickvariables") != null)) { MacroVariables.Import(root); } ScriptVariables.Load(root["scriptvariables"]); GoldPerHourTimer.Stop(); DamageTracker.Stop(); if (m_Props.ContainsKey("ForceSize")) { try { int x, y; switch ((int)m_Props["ForceSize"]) { case 1: x = 960; y = 600; break; case 2: x = 1024; y = 768; break; case 3: x = 1152; y = 864; break; case 4: x = 1280; y = 720; break; case 5: x = 1280; y = 768; break; case 6: x = 1280; y = 800; break; case 7: x = 1280; y = 960; break; case 8: x = 1280; y = 1024; break; case 0: default: x = 800; y = 600; break; } SetProperty("ForceSizeX", x); SetProperty("ForceSizeY", y); if (x != 800 || y != 600) { SetProperty("ForceSizeEnabled", true); } m_Props.Remove("ForceSize"); } catch { } } //if ( !Language.Load( GetString( "Language" ) ) ) // MessageBox.Show( Engine.ActiveWindow, "Warning: Could not load language from profile, using current language instead.", "Language Error", MessageBoxButtons.OK, MessageBoxIcon.Warning ); return(true); }
static Spell() { string filename = Path.Combine(Config.GetInstallDirectory(), "spells.def"); m_SpellsByPower = new Dictionary <string, Spell>(64 + 10 + 16); m_SpellsByID = new Dictionary <int, Spell>(64 + 10 + 16); m_SpellsByName = new Dictionary <string, Spell>(64 + 10 + 16); if (!File.Exists(filename)) { MessageBox.Show(Engine.ActiveWindow, Language.GetString(LocString.NoSpells), "Spells.def", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } using (StreamReader reader = new StreamReader(filename)) { string line; while ((line = reader.ReadLine()) != null) { line = line.Trim(); if (line.Length <= 0 || line[0] == '#') { continue; } string[] split = line.Split('|'); try { if (split.Length >= 5) { string[] reags = new string[split.Length - 5]; for (int i = 5; i < split.Length; i++) { reags[i - 5] = split[i].ToLower().Trim(); } Spell s = new Spell(split[0].Trim()[0], Convert.ToInt32(split[1].Trim()), Convert.ToInt32(split[2].Trim()), /*split[3].Trim(),*/ split[4].Trim(), reags); m_SpellsByID[s.GetID()] = s; line = Language.GetString(s.Name); if (string.IsNullOrEmpty(line)) { line = split[3].Trim(); } if (!string.IsNullOrEmpty(line)) { m_SpellsByName[line.ToLower()] = s; } if (s.WordsOfPower != null && s.WordsOfPower.Trim().Length > 0) { m_SpellsByPower[s.WordsOfPower] = s; } } } catch { } } } HotKeyCallback = new HotKeyCallbackState(OnHotKey); foreach (Spell s in m_SpellsByID.Values) { HotKey.Add(HKCategory.Spells, HKSubCat.SpellOffset + s.Circle, s.Name, HotKeyCallback, (ushort)s.GetID()); } HotKey.Add(HKCategory.Spells, LocString.HealOrCureSelf, new HotKeyCallback(HealOrCureSelf)); HotKey.Add(HKCategory.Spells, LocString.MiniHealOrCureSelf, new HotKeyCallback(MiniHealOrCureSelf)); HotKey.Add(HKCategory.Spells, LocString.GHealOrCureSelf, new HotKeyCallback(GHealOrCureSelf)); HotKey.Add(HKCategory.Spells, LocString.Interrupt, new HotKeyCallback(Interrupt)); }
private static void InitNextPrevTargets() { //Next targets HotKey.Add(HKCategory.Targets, LocString.NextTarget, NextTarget); HotKey.Add(HKCategory.Targets, LocString.NextTargetFriend, NextTargetFriend); // Next humanoids HotKey.Add(HKCategory.Targets, LocString.NextTargetHumanoid, NextTargetHumanoid); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetEnemy, LocString.NextTargetEnemyHumanoid, NextTargetEnemyHumanoid); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetCriminal, LocString.NextTargetCriminalHumanoid, NextTargetCriminalHumanoid); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetMurderer, LocString.NextTargetMurdererHumanoid, NextTargetMurdererHumanoid); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetInnocent, LocString.NextTargetInnocentHumanoid, NextTargetInnocentHumanoid); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetFriendly, LocString.NextTargetFriendlyHumanoid, NextTargetFriendlyHumanoid); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetGrey, LocString.NextTargetGreyHumanoid, NextTargetGreyHumanoid); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetNonFriendly, LocString.NextTargetNonFriendlyHumanoid, NextTargetNonFriendlyHumanoid); // Next monsters HotKey.Add(HKCategory.Targets, LocString.NextTargetMonster, NextTargetMonster); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetEnemy, LocString.NextTargetEnemyMonster, NextTargetEnemyMonster); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetCriminal, LocString.NextTargetCriminalMonster, NextTargetCriminalMonster); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetMurderer, LocString.NextTargetMurdererMonster, NextTargetMurdererMonster); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetInnocent, LocString.NextTargetInnocentMonster, NextTargetInnocentMonster); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetFriendly, LocString.NextTargetFriendlyMonster, NextTargetFriendlyMonster); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetGrey, LocString.NextTargetGreyMonster, NextTargetGreyMonster); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetNonFriendly, LocString.NextTargetNonFriendlyMonster, NextTargetNonFriendlyMonster); //Previous targets HotKey.Add(HKCategory.Targets, LocString.PrevTarget, PrevTarget); HotKey.Add(HKCategory.Targets, LocString.PrevTargetHumanoid, PrevTargetHumanoid); HotKey.Add(HKCategory.Targets, LocString.PrevTargetMonster, PrevTargetMonster); HotKey.Add(HKCategory.Targets, LocString.PrevTargetFriend, PrevTargetFriend); // Previous humanoids HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetEnemy, LocString.PrevTargetEnemyHumanoid, PrevTargetEnemyHumanoid); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetFriendly, LocString.PrevTargetFriendlyHumanoid, PrevTargetFriendlyHumanoid); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetGrey, LocString.PrevTargetGreyHumanoid, PrevTargetGreyHumanoid); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetNonFriendly, LocString.PrevTargetNonFriendlyHumanoid, PrevTargetNonFriendlyHumanoid); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetCriminal, LocString.PrevTargetCriminalHumanoid, PrevTargetCriminalHumanoid); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetMurderer, LocString.PrevTargetMurdererHumanoid, PrevTargetMurdererHumanoid); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetInnocent, LocString.PrevTargetInnocentHumanoid, PrevTargetInnocentHumanoid); // Previous monsters HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetEnemy, LocString.PrevTargetEnemyMonster, PrevTargetEnemyMonster); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetFriendly, LocString.PrevTargetFriendlyMonster, PrevTargetFriendlyMonster); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetGrey, LocString.PrevTargetGreyMonster, PrevTargetGreyMonster); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetNonFriendly, LocString.PrevTargetNonFriendlyMonster, PrevTargetNonFriendlyMonster); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetCriminal, LocString.PrevTargetCriminalMonster, PrevTargetCriminalMonster); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetMurderer, LocString.PrevTargetMurdererMonster, PrevTargetMurdererMonster); HotKey.Add(HKCategory.Targets, HKSubCat.SubTargetInnocent, LocString.PrevTargetInnocentMonster, PrevTargetInnocentMonster); }
private static void TargetResponse(PacketReader p, PacketHandlerEventArgs args) { TargetInfo info = new TargetInfo { Type = p.ReadByte(), TargID = p.ReadUInt32(), Flags = p.ReadByte(), Serial = p.ReadUInt32(), X = p.ReadUInt16(), Y = p.ReadUInt16(), Z = p.ReadInt16(), Gfx = p.ReadUInt16() }; m_ClientTarget = false; OverheadTargetMessage(info); // check for cancel if (info.X == 0xFFFF && info.X == 0xFFFF && (info.Serial <= 0 || info.Serial >= 0x80000000)) { m_HasTarget = false; m_FromGrabHotKey = false; if (m_Intercept) { args.Block = true; Timer.DelayedCallbackState(TimeSpan.Zero, m_OneTimeRespCallback, info).Start(); EndIntercept(); if (m_PreviousID != 0) { m_CurrentID = m_PreviousID; m_AllowGround = m_PreviousGround; m_CurFlags = m_PrevFlags; m_PreviousID = 0; ResendTarget(); } } else if (m_FilterCancel.Contains((uint)info.TargID) || info.TargID == LocalTargID) { args.Block = true; } m_FilterCancel.Clear(); return; } ClearQueue(); if (m_Intercept) { if (info.TargID == LocalTargID) { Timer.DelayedCallbackState(TimeSpan.Zero, m_OneTimeRespCallback, info).Start(); m_HasTarget = false; m_FromGrabHotKey = false; args.Block = true; if (m_PreviousID != 0) { m_CurrentID = m_PreviousID; m_AllowGround = m_PreviousGround; m_CurFlags = m_PrevFlags; m_PreviousID = 0; ResendTarget(); } m_FilterCancel.Clear(); return; } else { EndIntercept(); } } m_HasTarget = false; if (CheckHealPoisonTarg(m_CurrentID, info.Serial)) { ResendTarget(); args.Block = true; } if (info.Serial != World.Player.Serial) { if (info.Serial.IsValid) { // only let lasttarget be a non-ground target m_LastTarget = info; if (info.Flags == 1) { m_LastHarmTarg = info; } else if (info.Flags == 2) { m_LastBeneTarg = info; } LastTargetChanged(); LastBeneficialTargetChanged(); LastHarmfulTargetChanged(); } m_LastGroundTarg = info; // ground target is the true last target if (Macros.MacroManager.AcceptActions) { MacroManager.Action(new AbsoluteTargetAction(info)); } ScriptManager.AddToScript(info.Serial == Serial.Zero ? $"target 0x0 {info.X} {info.Y} {info.Z}" : $"target {info.Serial}"); if (ScriptManager.Recording) { if (info.Serial == Serial.Zero) { } else { } } } else { if (Macros.MacroManager.AcceptActions) { KeyData hk = HotKey.Get((int)LocString.TargetSelf); if (hk != null) { MacroManager.Action(new HotKeyAction(hk)); ScriptManager.AddToScript($"hotkey '{hk.DispName}'"); } else { MacroManager.Action(new AbsoluteTargetAction(info)); ScriptManager.AddToScript($"target {info.Serial}"); } } } if (World.Player.LastSpell == 52 && !GateTimer.Running) { GateTimer.Start(); } m_FilterCancel.Clear(); }
public static void Initialize() { HotKey.Add(HKCategory.Misc, LocString.TakeSS, new HotKeyCallback(CaptureNow)); }
public static void Initialize() { try { File.Delete("DragDrop.log"); } catch {} HotKey.Add(HKCategory.Misc, LocString.DropCur, new HotKeyCallback(DropCurrent)); }
public void MakeDefault() { m_Props.Clear(); AddProperty("ShowMobNames", false); AddProperty("ShowCorpseNames", false); AddProperty("DisplaySkillChanges", false); AddProperty("TitleBarText", @"UO - {char} {crimtime}- {mediumstatbar} {bp} {bm} {gl} {gs} {mr} {ns} {ss} {sa} {aids}"); AddProperty("TitleBarDisplay", true); AddProperty("AutoSearch", true); AddProperty("NoSearchPouches", true); AddProperty("CounterWarnAmount", (int)5); AddProperty("CounterWarn", true); AddProperty("ObjectDelay", (int)600); AddProperty("AlwaysOnTop", false); AddProperty("SortCounters", true); AddProperty("QueueActions", true); AddProperty("QueueTargets", true); AddProperty("WindowX", (int)400); AddProperty("WindowY", (int)400); AddProperty("CountStealthSteps", true); AddProperty("AlwaysStealth", false); AddProperty("SysColor", (int)0x03B1); AddProperty("WarningColor", (int)0x0025); AddProperty("ExemptColor", (int)0x0480); AddProperty("SpeechHue", (int)0x03B1); AddProperty("BeneficialSpellHue", (int)0x0005); AddProperty("HarmfulSpellHue", (int)0x0025); AddProperty("NeutralSpellHue", (int)0x03B1); AddProperty("ForceSpeechHue", false); AddProperty("ForceSpellHue", false); AddProperty("SpellFormat", @"{power} [{spell}]"); AddProperty("ShowNotoHue", true); AddProperty("Opacity", (int)100); AddProperty("AutoOpenCorpses", false); AddProperty("CorpseRange", (int)2); AddProperty("FilterSpam", false); AddProperty("BlockDismount", false); AddProperty("UndressConflicts", true); AddProperty("HighlightReagents", true); AddProperty("TitlebarImages", true); AddProperty("SellAgentMax", (int)99); AddProperty("SkillListCol", (int)-1); AddProperty("SkillListAsc", false); AddProperty("AutoStack", false); AddProperty("ActionStatusMsg", true); AddProperty("RememberPwds", false); AddProperty("SpellUnequip", false); AddProperty("RangeCheckLT", true); AddProperty("LTRange", (int)12); AddProperty("FilterSnoopMsg", true); AddProperty("SmartLastTarget", false); AddProperty("LastTargTextFlags", true); AddProperty("LTHilight", (int)0); AddProperty("AutoFriend", false); AddProperty("MessageLevel", 0); AddProperty("ForceIP", ""); AddProperty("ForcePort", 0); AddProperty("PotionEquip", false); AddProperty("BlockHealPoison", false); AddProperty("SmoothWalk", false); AddProperty("Negotiate", true); AddProperty("MapX", 200); AddProperty("MapY", 200); AddProperty("MapW", 200); AddProperty("MapH", 200); AddProperty("ShowHealth", false); AddProperty("HealthFmt", "[{0}%]"); AddProperty("ShowPartyStats", false); AddProperty("PartyStatFmt", "[{0}% / {1}%]"); Counter.Default(); Filter.DisableAll(); DressList.ClearAll(); HotKey.ClearAll(); Agent.ClearAll(); }
public bool Load() { if (m_Name == null || m_Name.Trim() == "") { return(false); } string path = Config.GetUserDirectory("Profiles"); string file = Path.Combine(path, String.Format("{0}.xml", m_Name)); if (!File.Exists(file)) { return(false); } XmlDocument doc = new XmlDocument(); try { doc.Load(file); } catch { MessageBox.Show(Engine.ActiveWindow, Language.Format(LocString.ProfileCorrupt, file), "Profile Load Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); return(false); } XmlElement root = doc["profile"]; if (root == null) { return(false); } Assembly exe = Assembly.GetCallingAssembly(); if (exe == null) { return(false); } foreach (XmlElement el in root.GetElementsByTagName("property")) { try { string name = el.GetAttribute("name"); string typeStr = el.GetAttribute("type"); string val = el.InnerText; if (typeStr == "-null-" || name == "LimitSize" || name == "VisRange") { //m_Props[name] = null; if (m_Props.ContainsKey(name)) { m_Props.Remove(name); } } else { Type type = Type.GetType(typeStr); if (type == null) { type = exe.GetType(typeStr); } if (m_Props.ContainsKey(name)) { if (type == null) { m_Props.Remove(name); } else { m_Props[name] = GetObjectFromString(val, type); } } } } catch (Exception e) { MessageBox.Show(Engine.ActiveWindow, Language.Format(LocString.ProfileLoadEx, e.ToString()), "Profile Load Exception", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } Filter.Load(root["filters"]); Counter.LoadProfile(root["counters"]); Agent.LoadProfile(root["agents"]); DressList.Load(root["dresslists"]); HotKey.Load(root["hotkeys"]); return(true); }