Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Injection.Packets;
- using PlayUO;
- using PlayUO.Assets;
- using PlayUO.Profiles;
- using SallosLauncher;
- using SharpDX.Direct3D9;
- using System;
- using System.Collections;
- using System.Diagnostics;
- using System.Net;
- using System.Runtime.CompilerServices;
- using System.Threading;
- using System.Windows;
- using System.Windows.Forms;
- using Ultima.Data;
- namespace Injection
- {
- public sealed class Seed : Engine
- {
- public const uint Value = 3232235779;
- private static Injection.PacketHandlers Initializer
- {
- get;
- set;
- }
- internal static string Password
- {
- get;
- set;
- }
- internal static string Username
- {
- get;
- set;
- }
- static Seed()
- {
- Seed.Initializer = new Injection.PacketHandlers();
- }
- public Seed()
- {
- }
- [STAThread]
- private static void Initialize()
- {
- AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(Engine.CurrentDomain_UnhandledException);
- AppDomain.CurrentDomain.DomainUnload += new EventHandler((object o, EventArgs ea) => Music.Destroy());
- try
- {
- Engine.m_FileManager = new PlayUO.FileManager();
- if (Engine.m_FileManager.Error)
- {
- Engine.m_FileManager = null;
- GC.Collect();
- throw new InvalidOperationException("Unable to initialize file manager.");
- }
- Seed.MainA();
- }
- catch (Exception exception)
- {
- Engine.HandleException(exception);
- throw;
- }
- }
- [STAThread]
- public static new void Main(string[] args)
- {
- bool? nullable = (new MainWindow()).ShowDialog();
- if ((nullable.GetValueOrDefault() ? false : nullable.HasValue))
- {
- Environment.Exit(1);
- }
- string[] username = new string[] { "108.61.224.83", "2593", Seed.Username, Seed.Password };
- args = username;
- switch ((int)args.Length)
- {
- case 0:
- {
- Seed.Print("Server address not set.");
- Seed.Print("Server port not set.");
- Seed.Print("Username not set.");
- Seed.Print("Password not set.", true);
- return;
- }
- case 1:
- {
- Seed.Print("Server port not set.");
- Seed.Print("Username not set.");
- Seed.Print("Password not set.", true);
- return;
- }
- case 2:
- {
- Seed.Print("Username not set.");
- Seed.Print("Password not set.", true);
- return;
- }
- case 3:
- {
- Seed.Print("Password not set.", true);
- return;
- }
- }
- string[] strArrays = new string[] { "-ticket", args[0], args[1], args[2], args[3] };
- args = strArrays;
- if (Seed.Verify(args))
- {
- Seed.Parse(args);
- Seed.Initialize();
- }
- }
- private static void MainA()
- {
- if (Engine._ticket != null)
- {
- uint num = 0;
- Engine.WantDirectory("data/");
- Engine.WantDirectory("data/ultima/");
- Engine.WantDirectory("data/ultima/logs/");
- PlayUO.Debug.Trace("Entered Main()");
- PlayUO.Debug.Block("Environment");
- PlayUO.Debug.Trace("Operating System = '{0}'", Environment.OSVersion);
- PlayUO.Debug.Trace(".NET Framework = '{0}'", Environment.Version);
- PlayUO.Debug.Trace("Base Directory = '{0}'", Engine.m_FileManager.BasePath(""));
- PlayUO.Debug.Trace("Data Directory = '{0}'", Engine.m_FileManager.ResolveMUL(""));
- PlayUO.Debug.EndBlock();
- Engine.m_Timers = new ArrayList();
- Engine.m_Journal = new ArrayList();
- Engine.m_Pings = new Queue();
- Engine.m_LoadQueue = new Queue();
- Engine.m_MapLoadQueue = new Queue();
- MacroHandlers.Setup();
- PlayUO.Debug.Block("Main()");
- Engine.m_ClickTimer = new PlayUO.Timer(new OnTick(Engine.ClickTimer_OnTick), SystemInformation.DoubleClickTime);
- PlayUO.Debug.Try("Initializing Display");
- Engine.m_Display = new Display();
- Preferences.Current.Layout.Apply(false);
- Engine.m_Display.KeyPreview = true;
- Engine.m_Display.Show();
- Preferences.Current.Layout.Apply(false);
- Preferences.Current.Layout.Update();
- PlayUO.Debug.EndTry();
- System.Windows.Forms.Application.DoEvents();
- PlayUO.Debug.Block("Initializing DirectX");
- Engine.InitDX();
- PlayUO.Debug.EndBlock();
- Engine.m_Loading = true;
- Engine.m_Ingame = false;
- PlayUO.Cursor.Hourglass = true;
- Engine.DrawNow();
- PlayUO.Debug.TimeBlock("Initializing Animations");
- Engine.m_Animations = new Animations();
- PlayUO.Debug.EndBlock();
- Engine.m_Font = new PlayUO.Font[10];
- Engine.m_UniFont = new UnicodeFont[3];
- PlayUO.Debug.TimeBlock("Initializing Gumps");
- Engine.m_Gumps = new Gumps();
- PlayUO.Debug.EndBlock();
- Engine.m_DefaultFont = Engine.GetUniFont(3);
- Engine.m_DefaultHue = Hues.Load(946);
- Renderer.SetText("");
- Macros.Reset();
- Engine.LoadParticles();
- Renderer.FilterEnable = false;
- Renderer.SetTexture(Engine.m_Rain);
- try
- {
- Engine.m_Device.ValidateDevice(1);
- }
- catch (Exception exception1)
- {
- Exception exception = exception1;
- Engine.m_Rain.Dispose();
- Engine.m_Rain = PlayUO.Texture.Empty;
- Engine.m_SkillUp.Dispose();
- Engine.m_SkillUp = Hues.Default.GetGump(2435);
- Engine.m_SkillDown.Dispose();
- Engine.m_SkillDown = Hues.Default.GetGump(2437);
- Engine.m_SkillLocked.Dispose();
- Engine.m_SkillLocked = Hues.Default.GetGump(2092);
- Engine.m_Slider.Dispose();
- Engine.m_Slider = Hues.Default.GetGump(2117);
- for (int i = 0; i < (int)Engine.m_Snow.Length; i++)
- {
- Engine.m_Snow[i].Dispose();
- Engine.m_Snow[i] = PlayUO.Texture.Empty;
- }
- for (int j = 0; j < (int)Engine.m_Edge.Length; j++)
- {
- Engine.m_Edge[j].Dispose();
- Engine.m_Edge[j] = PlayUO.Texture.Empty;
- }
- PlayUO.Debug.Trace("ValidateDevice() failed on 32-bit textures");
- PlayUO.Debug.Error(exception);
- }
- Renderer.SetTexture(null);
- Engine.m_Effects = new PlayUO.Effects();
- Engine.m_Loading = false;
- PlayUO.Point client = Engine.m_Display.PointToClient(System.Windows.Forms.Cursor.Position);
- Engine.m_EventOk = true;
- Engine.MouseMove(Engine.m_Display, new MouseEventArgs(Control.MouseButtons, 0, client.X, client.Y, 0));
- Compression.CheckCache();
- Engine.Setup();
- Engine.MouseMoveQueue();
- Engine.m_EventOk = false;
- Preferences.Current.Layout.Update();
- Engine.DrawNow();
- Engine.m_MoveDelay = new TimeDelay(0f);
- Engine.m_LastOverCheck = new TimeDelay(0.1f);
- Engine.m_NewFrame = new TimeDelay(0.05f);
- Engine.m_SleepMode = new TimeDelay(7.5f);
- Engine.m_EventOk = true;
- bool flag = false;
- Animations.StartLoading();
- Engine.Unlock();
- DateTime now = DateTime.Now;
- int ticks = Engine.Ticks;
- bool flag1 = true;
- if (Animations.IsLoading)
- {
- do
- {
- Engine.DrawNow();
- }
- while (!Animations.WaitLoading());
- }
- PlayUO.Debug.Trace("Connecting to {0}:{1}", Engine._ticket._ipAddress, Engine._ticket._port);
- if (!Network.Connect(new LoginCrypto(num), new IPEndPoint(Engine._ticket._ipAddress, Engine._ticket._port)))
- {
- throw new InvalidOperationException("Unable to connect.");
- }
- Engine.m_ServerName = Engine._ticket._ipAddress.ToString();
- Network.Send(new PLoginSeedEx(Seed.Value));
- Network.Send(new Injection.Packets.PPE_Login(Seed.Username, Seed.Password));
- Engine.PingRequest(false);
- Compression.CheckCache();
- Stopwatch stopwatch = new Stopwatch();
- while (!Engine.exiting)
- {
- stopwatch.Start();
- Engine.m_SetTicks = false;
- int ticks1 = Engine.Ticks;
- Macros.Slice();
- ActionContext.InvokeQueue();
- if (Gumps.Invalidated)
- {
- if (Engine.m_LastMouseArgs != null)
- {
- Engine.MouseMove(Engine.m_Display, Engine.m_LastMouseArgs);
- }
- Gumps.Invalidated = false;
- }
- if (Engine.m_MouseMoved)
- {
- Engine.MouseMoveQueue();
- }
- if (Engine.m_NewFrame.ElapsedReset())
- {
- Renderer.m_Frames = Renderer.m_Frames + 1;
- Engine.m_Redraw = false;
- Renderer.Draw();
- stopwatch.Reset();
- stopwatch.Start();
- }
- else if (Engine.m_Redraw || Engine.m_PumpFPS || Engine.amMoving && Options.Current.SmoothWalk && Engine.IsMoving())
- {
- Engine.m_Redraw = false;
- Renderer.Draw();
- stopwatch.Reset();
- stopwatch.Start();
- }
- if (flag1 && Engine.m_Ingame && Party.State == PartyState.Joined && DateTime.Now >= now)
- {
- now = DateTime.Now + TimeSpan.FromSeconds(0.5);
- Network.Send(new Injection.Packets.PPE_QueryPartyLocs());
- }
- Thread.Sleep((World.Player == null || !World.Player.IsMoving ? 1 : 0));
- Engine.DoEvents();
- if (Engine.m_Ingame && !World.HasIdentified)
- {
- Mobile player = World.Player;
- if (player != null && !player.Flags[MobileFlag.Hidden])
- {
- player.OnSingleClick();
- World.HasIdentified = true;
- }
- }
- if (Network.Slice())
- {
- Network.Flush();
- Engine.TickTimers();
- if (Engine.amMoving && Engine.m_Ingame)
- {
- Engine.DoWalk(Engine.movingDir, false);
- }
- if (Engine.m_LoadQueue.Count > 0)
- {
- for (int k = 0; Engine.m_LoadQueue.Count > 0 && k < 6; k++)
- {
- ((ILoader)Engine.m_LoadQueue.Dequeue()).Load();
- }
- }
- if (Engine.m_MapLoadQueue.Count <= 0)
- {
- continue;
- }
- Engine.Preload((Worker)Engine.m_MapLoadQueue.Dequeue());
- }
- else
- {
- flag = true;
- break;
- }
- }
- PlayUO.Profiles.Config.Current.Save();
- Thread.Sleep(5);
- if (Engine.m_Display != null && !Engine.m_Display.IsDisposed)
- {
- Engine.m_Display.Hide();
- }
- Thread.Sleep(5);
- System.Windows.Forms.Application.DoEvents();
- Thread.Sleep(5);
- System.Windows.Forms.Application.DoEvents();
- Engine.m_Animations.Dispose();
- if (Engine.m_ItemArt != null)
- {
- Engine.m_ItemArt.Dispose();
- }
- if (Engine.m_LandArt != null)
- {
- Engine.m_LandArt.Dispose();
- }
- if (Engine.m_TextureArt != null)
- {
- Engine.m_TextureArt.Dispose();
- }
- Engine.m_Gumps.Dispose();
- if (Engine.m_Sounds != null)
- {
- Engine.m_Sounds.Dispose();
- }
- if (Engine.m_Multis != null)
- {
- Engine.m_Multis.Dispose();
- }
- Engine.m_FileManager.Dispose();
- PlayUO.Cursor.Dispose();
- Music.Dispose();
- Hues.Dispose();
- GRadar.Dispose();
- if (Engine._imageCache != null)
- {
- Engine._imageCache.Dispose();
- Engine._imageCache = null;
- }
- if (Engine.m_Rain != null)
- {
- Engine.m_Rain.Dispose();
- Engine.m_Rain = null;
- }
- if (Engine.m_Slider != null)
- {
- Engine.m_Slider.Dispose();
- Engine.m_Slider = null;
- }
- if (Engine.m_SkillUp != null)
- {
- Engine.m_SkillUp.Dispose();
- Engine.m_SkillUp = null;
- }
- if (Engine.m_SkillDown != null)
- {
- Engine.m_SkillDown.Dispose();
- Engine.m_SkillDown = null;
- }
- if (Engine.m_SkillLocked != null)
- {
- Engine.m_SkillLocked.Dispose();
- Engine.m_SkillLocked = null;
- }
- if (Engine.m_Snow != null)
- {
- for (int l = 0; l < 12; l++)
- {
- if (Engine.m_Snow[l] != null)
- {
- Engine.m_Snow[l].Dispose();
- Engine.m_Snow[l] = null;
- }
- }
- Engine.m_Snow = null;
- }
- if (Engine.m_Edge != null)
- {
- for (int m = 0; m < 8; m++)
- {
- if (Engine.m_Edge[m] != null)
- {
- Engine.m_Edge[m].Dispose();
- Engine.m_Edge[m] = null;
- }
- }
- Engine.m_Edge = null;
- }
- if (Engine.m_WinScrolls != null)
- {
- for (int n = 0; n < (int)Engine.m_WinScrolls.Length; n++)
- {
- if (Engine.m_WinScrolls[n] != null)
- {
- Engine.m_WinScrolls[n].Dispose();
- Engine.m_WinScrolls[n] = null;
- }
- }
- Engine.m_WinScrolls = null;
- }
- if (Engine.m_FormX != null)
- {
- Engine.m_FormX.Dispose();
- Engine.m_FormX = null;
- }
- if (Engine.m_Font != null)
- {
- for (int o = 0; o < 10; o++)
- {
- if (Engine.m_Font[o] != null)
- {
- Engine.m_Font[o].Dispose();
- Engine.m_Font[o] = null;
- }
- }
- Engine.m_Font = null;
- }
- if (Engine.m_UniFont != null)
- {
- int length = (int)Engine.m_UniFont.Length;
- for (int p = 0; p < length; p++)
- {
- if (Engine.m_UniFont[p] != null)
- {
- Engine.m_UniFont[p].Dispose();
- Engine.m_UniFont[p] = null;
- }
- }
- Engine.m_UniFont = null;
- }
- if (Engine.m_MidiTable != null)
- {
- Engine.m_MidiTable.Dispose();
- Engine.m_MidiTable = null;
- }
- if (Engine.m_ContainerBoundsTable != null)
- {
- Engine.m_ContainerBoundsTable.Dispose();
- Engine.m_ContainerBoundsTable = null;
- }
- PlayUO.Texture.DisposeAll();
- PlayUO.Debug.EndBlock();
- if (flag)
- {
- PlayUO.Debug.Trace("Network error caused termination");
- }
- Network.Close();
- PlayUO.Debug.Dispose();
- Speech.Dispose();
- Map.Shutdown();
- Archives.Shutdown();
- Engine.m_LoadQueue = null;
- Engine.m_MapLoadQueue = null;
- Engine.m_DefaultFont = null;
- Engine.m_DefaultHue = null;
- Engine.m_Display = null;
- Engine.m_Encoder = null;
- Engine.m_Effects = null;
- Engine.m_Skills = null;
- Engine.m_Features = null;
- Engine.m_Animations = null;
- Engine.m_LandArt = null;
- Engine.m_TextureArt = null;
- Engine.m_ItemArt = null;
- Engine.m_Gumps = null;
- Engine.m_Sounds = null;
- Engine.m_Multis = null;
- Engine.m_FileManager = null;
- Engine.m_Display = null;
- Engine.m_Font = null;
- Engine.m_UniFont = null;
- Engine.m_Device = null;
- Engine.m_MoveDelay = null;
- Engine.m_Text = null;
- Engine.m_Font = null;
- Engine.m_UniFont = null;
- Engine.m_NewFrame = null;
- Engine.m_SleepMode = null;
- Engine.m_Timers = null;
- Engine.m_SkillsGump = null;
- Engine.m_JournalGump = null;
- Engine.m_Journal = null;
- Engine.m_FileManager = null;
- Engine.m_Encoder = null;
- Engine.m_DefaultFont = null;
- Engine.m_DefaultHue = null;
- Engine.m_Random = null;
- Engine._movementKeys = null;
- Engine.m_Prompt = null;
- Engine.m_Pings = null;
- Engine.m_PingTimer = null;
- Engine.m_MultiList = null;
- Engine.m_AllNames = null;
- Engine.m_LastOverCheck = null;
- Engine.m_LastMouseArgs = null;
- Engine.m_LastAttacker = null;
- }
- }
- private static void Parse(string[] args)
- {
- int length = (int)args.Length;
- int num = 0;
- while (num < length)
- {
- int num1 = num;
- num = num1 + 1;
- if (!string.Equals(args[num1], "-ticket", StringComparison.OrdinalIgnoreCase))
- {
- continue;
- }
- if (Engine._ticket != null)
- {
- throw new InvalidOperationException("Authentication ticket already specified.");
- }
- if (num + 4 > (int)args.Length)
- {
- throw new InvalidOperationException("Malformed authentication ticket specified.");
- }
- Engine._ticket = new AuthenticationTicket();
- int num2 = num;
- num = num2 + 1;
- Engine._ticket._ipAddress = IPAddress.Parse(args[num2]);
- int num3 = num;
- num = num3 + 1;
- Engine._ticket._port = int.Parse(args[num3]);
- int num4 = num;
- num = num4 + 1;
- Seed.Username = args[num4];
- int num5 = num;
- num = num5 + 1;
- Seed.Password = args[num5];
- }
- }
- private static void Print(string message)
- {
- Seed.Print(message, false);
- }
- private static void Print(string message, bool readKey)
- {
- Console.WriteLine("* {0}", message);
- if (readKey)
- {
- Console.ReadKey();
- }
- }
- private static bool Verify(string[] args)
- {
- if (args == null || (int)args.Length != 5)
- {
- throw new ArgumentException("Invalid Arguments");
- }
- return true;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement