static void Main(string[] args) { SecondLife client; if (args.Length == 0 || (args.Length < 4 && args[0] != "--printmap")) { Console.WriteLine("Usage: sldump [--printmap] [--decrypt] [inputfile] [outputfile] " + "[--protocol] [firstname] [lastname] [password] [seconds (0 for infinite)]"); return; } if (args[0] == "--decrypt") { try { ProtocolManager.DecodeMapFile(args[1], args[2]); } catch (Exception e) { Console.WriteLine(e.ToString()); } return; } client = new SecondLife(); if (args[0] == "--printmap") { ProtocolManager protocol; try { protocol = new ProtocolManager("message_template.msg", client); } catch (Exception e) { // Error initializing the client, probably missing file(s) Console.WriteLine(e.ToString()); return; } protocol.PrintMap(); return; } // Setup the packet callback and disconnect event handler client.Network.RegisterCallback(PacketType.Default, new NetworkManager.PacketCallback(DefaultHandler)); client.Network.OnDisconnected += new NetworkManager.DisconnectCallback(DisconnectHandler); if (!client.Network.Login(args[0], args[1], args[2], "sldump", "*****@*****.**")) { // Login failed Console.WriteLine("Error logging in: " + client.Network.LoginError); return; } // Login was successful Console.WriteLine("Message of the day: " + client.Network.LoginValues["message"]); // Throttle packets that we don't want all the way down client.Throttle.Land = 0; client.Throttle.Wind = 0; client.Throttle.Cloud = 0; client.Throttle.Texture = 0; client.Throttle.Set(); int start = Environment.TickCount; int milliseconds = Int32.Parse(args[3]) * 1000; bool forever = (milliseconds > 0) ? false : true; while (true) { System.Threading.Thread.Sleep(100); if (!forever && Environment.TickCount - start > milliseconds) { break; } } client.Network.Logout(); }
static void Main(string[] args) { SecondLife client; if (args.Length == 0 || (args.Length < 3 && args[0] != "--printmap")) { Console.WriteLine("Usage: sldump [--printmap] [--decrypt] [inputfile] [outputfile] [--protocol] [firstname] " + "[lastname] [password]"); return; } if (args[0] == "--decrypt") { try { ProtocolManager.DecodeMapFile(args[1], args[2]); } catch (Exception e) { Console.WriteLine(e.ToString()); } return; } client = new SecondLife(); if (args[0] == "--printmap") { ProtocolManager protocol; try { protocol = new ProtocolManager("message_template.msg", client); } catch (Exception e) { // Error initializing the client, probably missing file(s) Console.WriteLine(e.ToString()); return; } protocol.PrintMap(); return; } // Setup the packet callback and disconnect event handler client.Network.RegisterCallback(PacketType.Default, new PacketCallback(DefaultHandler)); client.Network.OnDisconnected += new DisconnectCallback(DisconnectHandler); Dictionary<string, object> loginParams = NetworkManager.DefaultLoginValues(args[0], args[1], args[2], "0", "last", "Win", "0", "sldump", "*****@*****.**"); // An example of how to pass additional options to the login server //loginParams["id0"] = "65e142a8d3c1ee6632259f111cb168c9"; //loginParams["viewer_digest"] = "0e63550f-0991-a092-3158-b4206e728ffa"; if (!client.Network.Login(loginParams/*, "http://127.0.0.1:8080/"*/)) { // Login failed Console.WriteLine("Error logging in: " + client.Network.LoginError); return; } // Login was successful Console.WriteLine("Message of the day: " + client.Network.LoginValues["message"]); while (true) { client.Tick(); } }