more changes
This commit is contained in:
parent
ea49872a1c
commit
ca92fdb3d2
33
CSView.lua
33
CSView.lua
|
|
@ -1,3 +1,36 @@
|
||||||
|
_G.rawset=nil
|
||||||
|
function readonlytable(table)
|
||||||
|
return setmetatable({}, {
|
||||||
|
__index = table,
|
||||||
|
__newindex = function(table, key, value)
|
||||||
|
error("Attempt to modify read-only table")
|
||||||
|
end,
|
||||||
|
__metatable = false
|
||||||
|
});
|
||||||
|
end
|
||||||
|
|
||||||
|
function readonlytablechildren(table)
|
||||||
|
for i,v in pairs(table) do
|
||||||
|
if type(v)=="table" and table[i]~=_G._G then
|
||||||
|
readonlytablechildren(table[i])
|
||||||
|
table[i] = readonlytable(table[i])
|
||||||
|
end
|
||||||
|
if type(v)=="userdata" then
|
||||||
|
local mt = getmetatable(table[i])
|
||||||
|
if mt~=nil and mt~=false then
|
||||||
|
mt.__metatable=false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
readonlytablechildren(_G)
|
||||||
|
_G._G = readonlytable(_G)
|
||||||
|
mt = getmetatable(game.Changed)
|
||||||
|
mt.__metatable=false
|
||||||
|
mt = getmetatable("curse you roblox")
|
||||||
|
mt.__metatable=false
|
||||||
|
|
||||||
--function made by rbxbanland
|
--function made by rbxbanland
|
||||||
function newWaitForChild(newParent,name)
|
function newWaitForChild(newParent,name)
|
||||||
local returnable = nil
|
local returnable = nil
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,6 @@ using System.Linq;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Xml.Linq;
|
|
||||||
using NAudio.Wave;
|
|
||||||
using Mono.Nat;
|
using Mono.Nat;
|
||||||
|
|
||||||
namespace NovetusLauncher
|
namespace NovetusLauncher
|
||||||
|
|
@ -280,6 +278,9 @@ namespace NovetusLauncher
|
||||||
|
|
||||||
public static void ReloadLoadtextValue()
|
public static void ReloadLoadtextValue()
|
||||||
{
|
{
|
||||||
|
//Temporarily removed until i can figure out a way to better integrate this.
|
||||||
|
|
||||||
|
/*
|
||||||
if (GlobalVars.IsWebServerOn == true)
|
if (GlobalVars.IsWebServerOn == true)
|
||||||
{
|
{
|
||||||
string extra = GlobalVars.Custom_Extra_SelectionIsHat == true ? GlobalVars.WebServer_HatDir + GlobalVars.Custom_Extra : GlobalVars.WebServer_ExtraDir + GlobalVars.Custom_Extra;
|
string extra = GlobalVars.Custom_Extra_SelectionIsHat == true ? GlobalVars.WebServer_HatDir + GlobalVars.Custom_Extra : GlobalVars.WebServer_ExtraDir + GlobalVars.Custom_Extra;
|
||||||
|
|
@ -300,6 +301,7 @@ namespace NovetusLauncher
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
*/
|
||||||
GlobalVars.loadtext = "'" + GlobalVars.Custom_Hat1ID_Offline + "','" +
|
GlobalVars.loadtext = "'" + GlobalVars.Custom_Hat1ID_Offline + "','" +
|
||||||
GlobalVars.Custom_Hat2ID_Offline + "','" +
|
GlobalVars.Custom_Hat2ID_Offline + "','" +
|
||||||
GlobalVars.Custom_Hat3ID_Offline + "'," +
|
GlobalVars.Custom_Hat3ID_Offline + "'," +
|
||||||
|
|
@ -318,7 +320,7 @@ namespace NovetusLauncher
|
||||||
GlobalVars.Custom_Extra + "', false";
|
GlobalVars.Custom_Extra + "', false";
|
||||||
|
|
||||||
GlobalVars.sololoadtext = GlobalVars.loadtext;
|
GlobalVars.sololoadtext = GlobalVars.loadtext;
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void ReadClientValues(string clientpath)
|
public static void ReadClientValues(string clientpath)
|
||||||
|
|
@ -2005,77 +2007,6 @@ namespace NovetusLauncher
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Stream for looping playback
|
|
||||||
/// </summary>
|
|
||||||
public class LoopStream : WaveStream
|
|
||||||
{
|
|
||||||
WaveStream sourceStream;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Creates a new Loop stream
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="sourceStream">The stream to read from. Note: the Read method of this stream should return 0 when it reaches the end
|
|
||||||
/// or else we will not loop to the start again.</param>
|
|
||||||
public LoopStream(WaveStream sourceStream)
|
|
||||||
{
|
|
||||||
this.sourceStream = sourceStream;
|
|
||||||
this.EnableLooping = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Use this to turn looping on or off
|
|
||||||
/// </summary>
|
|
||||||
public bool EnableLooping { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Return source stream's wave format
|
|
||||||
/// </summary>
|
|
||||||
public override WaveFormat WaveFormat
|
|
||||||
{
|
|
||||||
get { return sourceStream.WaveFormat; }
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// LoopStream simply returns
|
|
||||||
/// </summary>
|
|
||||||
public override long Length
|
|
||||||
{
|
|
||||||
get { return sourceStream.Length; }
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// LoopStream simply passes on positioning to source stream
|
|
||||||
/// </summary>
|
|
||||||
public override long Position
|
|
||||||
{
|
|
||||||
get { return sourceStream.Position; }
|
|
||||||
set { sourceStream.Position = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public override int Read(byte[] buffer, int offset, int count)
|
|
||||||
{
|
|
||||||
int totalBytesRead = 0;
|
|
||||||
|
|
||||||
while (totalBytesRead < count)
|
|
||||||
{
|
|
||||||
int bytesRead = sourceStream.Read(buffer, offset + totalBytesRead, count - totalBytesRead);
|
|
||||||
if (bytesRead == 0 || sourceStream.Position > sourceStream.Length)
|
|
||||||
{
|
|
||||||
if (sourceStream.Position == 0 || !EnableLooping)
|
|
||||||
{
|
|
||||||
// something wrong with the source stream
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
// loop
|
|
||||||
sourceStream.Position = 0;
|
|
||||||
}
|
|
||||||
totalBytesRead += bytesRead;
|
|
||||||
}
|
|
||||||
return totalBytesRead;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class GlobalVars
|
public static class GlobalVars
|
||||||
{
|
{
|
||||||
public static string RootPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
|
public static string RootPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
|
||||||
|
|
|
||||||
|
|
@ -117,7 +117,6 @@ namespace NovetusLauncher
|
||||||
this.label11 = new System.Windows.Forms.Label();
|
this.label11 = new System.Windows.Forms.Label();
|
||||||
this.label12 = new System.Windows.Forms.Label();
|
this.label12 = new System.Windows.Forms.Label();
|
||||||
this.label16 = new System.Windows.Forms.Label();
|
this.label16 = new System.Windows.Forms.Label();
|
||||||
this.button24 = new System.Windows.Forms.Button();
|
|
||||||
this.tabControl1.SuspendLayout();
|
this.tabControl1.SuspendLayout();
|
||||||
this.tabPage1.SuspendLayout();
|
this.tabPage1.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit();
|
||||||
|
|
@ -204,7 +203,7 @@ namespace NovetusLauncher
|
||||||
// label31
|
// label31
|
||||||
//
|
//
|
||||||
this.label31.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
this.label31.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.label31.Location = new System.Drawing.Point(267, 5);
|
this.label31.Location = new System.Drawing.Point(267, 5);
|
||||||
this.label31.Name = "label31";
|
this.label31.Name = "label31";
|
||||||
this.label31.Size = new System.Drawing.Size(120, 13);
|
this.label31.Size = new System.Drawing.Size(120, 13);
|
||||||
|
|
@ -226,23 +225,23 @@ namespace NovetusLauncher
|
||||||
//
|
//
|
||||||
this.numericUpDown1.Location = new System.Drawing.Point(267, 21);
|
this.numericUpDown1.Location = new System.Drawing.Point(267, 21);
|
||||||
this.numericUpDown1.Maximum = new decimal(new int[] {
|
this.numericUpDown1.Maximum = new decimal(new int[] {
|
||||||
65535,
|
65535,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0});
|
0});
|
||||||
this.numericUpDown1.Minimum = new decimal(new int[] {
|
this.numericUpDown1.Minimum = new decimal(new int[] {
|
||||||
1,
|
1,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0});
|
0});
|
||||||
this.numericUpDown1.Name = "numericUpDown1";
|
this.numericUpDown1.Name = "numericUpDown1";
|
||||||
this.numericUpDown1.Size = new System.Drawing.Size(120, 20);
|
this.numericUpDown1.Size = new System.Drawing.Size(120, 20);
|
||||||
this.numericUpDown1.TabIndex = 18;
|
this.numericUpDown1.TabIndex = 18;
|
||||||
this.numericUpDown1.Value = new decimal(new int[] {
|
this.numericUpDown1.Value = new decimal(new int[] {
|
||||||
53640,
|
53640,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0});
|
0});
|
||||||
this.numericUpDown1.ValueChanged += new System.EventHandler(this.NumericUpDown1ValueChanged);
|
this.numericUpDown1.ValueChanged += new System.EventHandler(this.NumericUpDown1ValueChanged);
|
||||||
//
|
//
|
||||||
// button19
|
// button19
|
||||||
|
|
@ -289,7 +288,7 @@ namespace NovetusLauncher
|
||||||
// label3
|
// label3
|
||||||
//
|
//
|
||||||
this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.label3.Location = new System.Drawing.Point(16, 5);
|
this.label3.Location = new System.Drawing.Point(16, 5);
|
||||||
this.label3.Name = "label3";
|
this.label3.Name = "label3";
|
||||||
this.label3.Size = new System.Drawing.Size(241, 13);
|
this.label3.Size = new System.Drawing.Size(241, 13);
|
||||||
|
|
@ -342,7 +341,7 @@ namespace NovetusLauncher
|
||||||
this.label17.Size = new System.Drawing.Size(382, 36);
|
this.label17.Size = new System.Drawing.Size(382, 36);
|
||||||
this.label17.TabIndex = 58;
|
this.label17.TabIndex = 58;
|
||||||
this.label17.Text = "NOTE: If you changed the server port, go to the CONSOLE and type \"webserver resta" +
|
this.label17.Text = "NOTE: If you changed the server port, go to the CONSOLE and type \"webserver resta" +
|
||||||
"rt\" or \"restart\" to restart the web server or restart the launcher.";
|
"rt\" or \"restart\" to restart the web server or restart the launcher.";
|
||||||
this.label17.TextAlign = System.Drawing.ContentAlignment.TopCenter;
|
this.label17.TextAlign = System.Drawing.ContentAlignment.TopCenter;
|
||||||
//
|
//
|
||||||
// checkBox4
|
// checkBox4
|
||||||
|
|
@ -418,46 +417,46 @@ namespace NovetusLauncher
|
||||||
//
|
//
|
||||||
this.numericUpDown3.Location = new System.Drawing.Point(217, 161);
|
this.numericUpDown3.Location = new System.Drawing.Point(217, 161);
|
||||||
this.numericUpDown3.Maximum = new decimal(new int[] {
|
this.numericUpDown3.Maximum = new decimal(new int[] {
|
||||||
256,
|
256,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0});
|
0});
|
||||||
this.numericUpDown3.Minimum = new decimal(new int[] {
|
this.numericUpDown3.Minimum = new decimal(new int[] {
|
||||||
1,
|
1,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0});
|
0});
|
||||||
this.numericUpDown3.Name = "numericUpDown3";
|
this.numericUpDown3.Name = "numericUpDown3";
|
||||||
this.numericUpDown3.Size = new System.Drawing.Size(49, 20);
|
this.numericUpDown3.Size = new System.Drawing.Size(49, 20);
|
||||||
this.numericUpDown3.TabIndex = 49;
|
this.numericUpDown3.TabIndex = 49;
|
||||||
this.numericUpDown3.Value = new decimal(new int[] {
|
this.numericUpDown3.Value = new decimal(new int[] {
|
||||||
12,
|
12,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0});
|
0});
|
||||||
this.numericUpDown3.ValueChanged += new System.EventHandler(this.NumericUpDown3ValueChanged);
|
this.numericUpDown3.ValueChanged += new System.EventHandler(this.NumericUpDown3ValueChanged);
|
||||||
//
|
//
|
||||||
// numericUpDown2
|
// numericUpDown2
|
||||||
//
|
//
|
||||||
this.numericUpDown2.Location = new System.Drawing.Point(81, 161);
|
this.numericUpDown2.Location = new System.Drawing.Point(81, 161);
|
||||||
this.numericUpDown2.Maximum = new decimal(new int[] {
|
this.numericUpDown2.Maximum = new decimal(new int[] {
|
||||||
65535,
|
65535,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0});
|
0});
|
||||||
this.numericUpDown2.Minimum = new decimal(new int[] {
|
this.numericUpDown2.Minimum = new decimal(new int[] {
|
||||||
1,
|
1,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0});
|
0});
|
||||||
this.numericUpDown2.Name = "numericUpDown2";
|
this.numericUpDown2.Name = "numericUpDown2";
|
||||||
this.numericUpDown2.Size = new System.Drawing.Size(63, 20);
|
this.numericUpDown2.Size = new System.Drawing.Size(63, 20);
|
||||||
this.numericUpDown2.TabIndex = 48;
|
this.numericUpDown2.TabIndex = 48;
|
||||||
this.numericUpDown2.Value = new decimal(new int[] {
|
this.numericUpDown2.Value = new decimal(new int[] {
|
||||||
53640,
|
53640,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0});
|
0});
|
||||||
this.numericUpDown2.ValueChanged += new System.EventHandler(this.NumericUpDown2ValueChanged);
|
this.numericUpDown2.ValueChanged += new System.EventHandler(this.NumericUpDown2ValueChanged);
|
||||||
//
|
//
|
||||||
// label29
|
// label29
|
||||||
|
|
@ -716,8 +715,8 @@ namespace NovetusLauncher
|
||||||
// richTextBox1
|
// richTextBox1
|
||||||
//
|
//
|
||||||
this.richTextBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
this.richTextBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||||
| System.Windows.Forms.AnchorStyles.Left)
|
| System.Windows.Forms.AnchorStyles.Left)
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.richTextBox1.BackColor = System.Drawing.SystemColors.ControlText;
|
this.richTextBox1.BackColor = System.Drawing.SystemColors.ControlText;
|
||||||
this.richTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
this.richTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||||
this.richTextBox1.ForeColor = System.Drawing.Color.White;
|
this.richTextBox1.ForeColor = System.Drawing.Color.White;
|
||||||
|
|
@ -742,8 +741,8 @@ namespace NovetusLauncher
|
||||||
// richTextBox2
|
// richTextBox2
|
||||||
//
|
//
|
||||||
this.richTextBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
this.richTextBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||||
| System.Windows.Forms.AnchorStyles.Left)
|
| System.Windows.Forms.AnchorStyles.Left)
|
||||||
| System.Windows.Forms.AnchorStyles.Right)));
|
| System.Windows.Forms.AnchorStyles.Right)));
|
||||||
this.richTextBox2.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
this.richTextBox2.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
||||||
this.richTextBox2.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
this.richTextBox2.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||||
this.richTextBox2.Location = new System.Drawing.Point(3, 3);
|
this.richTextBox2.Location = new System.Drawing.Point(3, 3);
|
||||||
|
|
@ -1019,17 +1018,6 @@ namespace NovetusLauncher
|
||||||
this.label16.Size = new System.Drawing.Size(2, 65);
|
this.label16.Size = new System.Drawing.Size(2, 65);
|
||||||
this.label16.TabIndex = 51;
|
this.label16.TabIndex = 51;
|
||||||
//
|
//
|
||||||
// button24
|
|
||||||
//
|
|
||||||
this.button24.Font = new System.Drawing.Font("Segoe UI Symbol", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
|
||||||
this.button24.Location = new System.Drawing.Point(390, 75);
|
|
||||||
this.button24.Name = "button24";
|
|
||||||
this.button24.Size = new System.Drawing.Size(22, 22);
|
|
||||||
this.button24.TabIndex = 52;
|
|
||||||
this.button24.Text = "⬛";
|
|
||||||
this.button24.UseVisualStyleBackColor = true;
|
|
||||||
this.button24.Click += new System.EventHandler(this.Button24Click);
|
|
||||||
//
|
|
||||||
// MainForm
|
// MainForm
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
|
@ -1037,7 +1025,6 @@ namespace NovetusLauncher
|
||||||
this.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
this.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
||||||
this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||||
this.ClientSize = new System.Drawing.Size(417, 366);
|
this.ClientSize = new System.Drawing.Size(417, 366);
|
||||||
this.Controls.Add(this.button24);
|
|
||||||
this.Controls.Add(this.label16);
|
this.Controls.Add(this.label16);
|
||||||
this.Controls.Add(this.label12);
|
this.Controls.Add(this.label12);
|
||||||
this.Controls.Add(this.label28);
|
this.Controls.Add(this.label28);
|
||||||
|
|
@ -1079,9 +1066,9 @@ namespace NovetusLauncher
|
||||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
this.PerformLayout();
|
||||||
|
|
||||||
}
|
}
|
||||||
private System.Windows.Forms.Label label17;
|
private System.Windows.Forms.Label label17;
|
||||||
private System.Windows.Forms.Button button24;
|
|
||||||
private System.Windows.Forms.CheckBox checkBox4;
|
private System.Windows.Forms.CheckBox checkBox4;
|
||||||
private System.Windows.Forms.Button button6;
|
private System.Windows.Forms.Button button6;
|
||||||
private System.Windows.Forms.TextBox textBox3;
|
private System.Windows.Forms.TextBox textBox3;
|
||||||
|
|
|
||||||
|
|
@ -12,11 +12,8 @@ using System.Drawing;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Threading;
|
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using NAudio.Wave;
|
|
||||||
using NAudio.Wave.SampleProviders;
|
|
||||||
using Mono.Nat;
|
using Mono.Nat;
|
||||||
|
|
||||||
namespace NovetusLauncher
|
namespace NovetusLauncher
|
||||||
|
|
@ -27,8 +24,6 @@ namespace NovetusLauncher
|
||||||
public partial class MainForm : Form
|
public partial class MainForm : Form
|
||||||
{
|
{
|
||||||
DiscordRpc.EventHandlers handlers;
|
DiscordRpc.EventHandlers handlers;
|
||||||
private WaveOutEvent outputDevice;
|
|
||||||
private AudioFileReader audioFile;
|
|
||||||
|
|
||||||
public MainForm()
|
public MainForm()
|
||||||
{
|
{
|
||||||
|
|
@ -211,47 +206,6 @@ namespace NovetusLauncher
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void StartMusic()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
string file = GlobalVars.DataPath + "\\music\\music.mp3";
|
|
||||||
|
|
||||||
if (File.Exists(file))
|
|
||||||
{
|
|
||||||
if (outputDevice == null)
|
|
||||||
{
|
|
||||||
outputDevice = new WaveOutEvent();
|
|
||||||
}
|
|
||||||
if (audioFile == null)
|
|
||||||
{
|
|
||||||
audioFile = new AudioFileReader(file);
|
|
||||||
LoopStream loop = new LoopStream(audioFile);
|
|
||||||
outputDevice.Init(loop);
|
|
||||||
}
|
|
||||||
outputDevice.Play();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
button24.Visible = false;
|
|
||||||
button24.Enabled = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
ConsolePrint("NAudio: Failed to play music. (" + ex.Message + ")", 2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void EndMusic()
|
|
||||||
{
|
|
||||||
outputDevice.Stop();
|
|
||||||
outputDevice.Dispose();
|
|
||||||
outputDevice = null;
|
|
||||||
audioFile.Dispose();
|
|
||||||
audioFile = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
|
void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (tabControl1.SelectedTab == tabControl1.TabPages["tabPage2"])//your specific tabname
|
if (tabControl1.SelectedTab == tabControl1.TabPages["tabPage2"])//your specific tabname
|
||||||
|
|
@ -390,7 +344,6 @@ namespace NovetusLauncher
|
||||||
InitUPnP();
|
InitUPnP();
|
||||||
StartDiscord();
|
StartDiscord();
|
||||||
StartWebServer();
|
StartWebServer();
|
||||||
StartMusic();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainFormClose(object sender, CancelEventArgs e)
|
void MainFormClose(object sender, CancelEventArgs e)
|
||||||
|
|
@ -1499,19 +1452,5 @@ namespace NovetusLauncher
|
||||||
{
|
{
|
||||||
MessageBox.Show("Please restart the Novetus launcher for UPnP to take effect.","Novetus - UPnP", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
MessageBox.Show("Please restart the Novetus launcher for UPnP to take effect.","Novetus - UPnP", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Button24Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
if (outputDevice.PlaybackState == PlaybackState.Playing)
|
|
||||||
{
|
|
||||||
outputDevice.Pause();
|
|
||||||
button24.Text = "▶";
|
|
||||||
}
|
|
||||||
else if (outputDevice.PlaybackState == PlaybackState.Paused)
|
|
||||||
{
|
|
||||||
outputDevice.Play();
|
|
||||||
button24.Text = "⬛";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -6,7 +6,7 @@
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<RootNamespace>NovetusLauncher</RootNamespace>
|
<RootNamespace>NovetusLauncher</RootNamespace>
|
||||||
<AssemblyName>NovetusLauncher</AssemblyName>
|
<AssemblyName>Novetus</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||||
<TargetFrameworkProfile>
|
<TargetFrameworkProfile>
|
||||||
</TargetFrameworkProfile>
|
</TargetFrameworkProfile>
|
||||||
|
|
@ -47,9 +47,6 @@
|
||||||
<Reference Include="Mono.Nat">
|
<Reference Include="Mono.Nat">
|
||||||
<HintPath>..\packages\Mono.Nat.1.2.24.0\lib\net40\Mono.Nat.dll</HintPath>
|
<HintPath>..\packages\Mono.Nat.1.2.24.0\lib\net40\Mono.Nat.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="NAudio">
|
|
||||||
<HintPath>..\packages\NAudio.1.8.5\lib\net35\NAudio.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core">
|
<Reference Include="System.Core">
|
||||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="Mono.Nat" version="1.2.24.0" targetFramework="net40" />
|
<package id="Mono.Nat" version="1.2.24.0" targetFramework="net40" />
|
||||||
<package id="NAudio" version="1.8.5" targetFramework="net40" />
|
|
||||||
</packages>
|
</packages>
|
||||||
Binary file not shown.
|
|
@ -1,14 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
|
|
||||||
<metadata>
|
|
||||||
<id>NAudio</id>
|
|
||||||
<version>1.8.5</version>
|
|
||||||
<authors>Mark Heath</authors>
|
|
||||||
<owners>Mark Heath</owners>
|
|
||||||
<licenseUrl>https://github.com/naudio/NAudio/blob/master/license.txt</licenseUrl>
|
|
||||||
<projectUrl>https://github.com/naudio/NAudio</projectUrl>
|
|
||||||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
|
||||||
<description>NAudio, an audio library for .NET</description>
|
|
||||||
<tags>C# .NET audio sound</tags>
|
|
||||||
</metadata>
|
|
||||||
</package>
|
|
||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
|
@ -29,8 +29,8 @@ Name: "desktopicon"; Description: "Create a icon on your Desktop"; GroupDescript
|
||||||
Name: "quicklaunchicon"; Description: "Create a icon on your Quick Launch Menu"; GroupDescription: "Icons"; Flags: unchecked; OnlyBelowVersion: 0,6.1
|
Name: "quicklaunchicon"; Description: "Create a icon on your Quick Launch Menu"; GroupDescription: "Icons"; Flags: unchecked; OnlyBelowVersion: 0,6.1
|
||||||
|
|
||||||
[Files]
|
[Files]
|
||||||
Source: "Novetus\NovetusLauncher.exe"; DestDir: "{app}"; Flags: ignoreversion
|
Source: "Novetus\Novetus.exe"; DestDir: "{app}"; Flags: ignoreversion
|
||||||
Source: "Novetus\NovetusLauncher.exe.config"; DestDir: "{app}"; Flags: ignoreversion
|
Source: "Novetus\Novetus.exe.config"; DestDir: "{app}"; Flags: ignoreversion
|
||||||
Source: "Novetus\README.TXT"; DestDir: "{app}"; Flags: ignoreversion
|
Source: "Novetus\README.TXT"; DestDir: "{app}"; Flags: ignoreversion
|
||||||
Source: "Novetus\changelog.txt"; DestDir: "{app}"; Flags: ignoreversion
|
Source: "Novetus\changelog.txt"; DestDir: "{app}"; Flags: ignoreversion
|
||||||
Source: "Novetus\info.txt"; DestDir: "{app}"; Flags: ignoreversion
|
Source: "Novetus\info.txt"; DestDir: "{app}"; Flags: ignoreversion
|
||||||
|
|
@ -42,18 +42,18 @@ Source: "Novetus\shareddata\*"; DestDir: "{app}\shareddata"; Flags: ignoreversio
|
||||||
Source: "Novetus\_redist\*"; DestDir: "{app}\_redist"; Flags: ignoreversion recursesubdirs createallsubdirs
|
Source: "Novetus\_redist\*"; DestDir: "{app}\_redist"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||||
|
|
||||||
[Icons]
|
[Icons]
|
||||||
Name: "{group}\Novetus {#AppVer}"; Filename: "{app}\NovetusLauncher.exe"
|
Name: "{group}\Novetus {#AppVer}"; Filename: "{app}\Novetus.exe"
|
||||||
Name: "{group}\Utilities\Novetus Client SDK"; Filename: "{app}\NovetusLauncher.exe" Parameters: "-clientinfo"
|
Name: "{group}\Utilities\Novetus Client SDK"; Filename: "{app}\Novetus.exe" Parameters: "-clientinfo"
|
||||||
Name: "{group}\Utilities\Novetus Item SDK"; Filename: "{app}\NovetusLauncher.exe" Parameters: "-itemmaker"
|
Name: "{group}\Utilities\Novetus Item SDK"; Filename: "{app}\Novetus.exe" Parameters: "-itemmaker"
|
||||||
Name: "{group}\Utilities\Quick Configure"; Filename: "{app}\NovetusLauncher.exe" Parameters: "-quickconfigure"
|
Name: "{group}\Utilities\Quick Configure"; Filename: "{app}\Novetus.exe" Parameters: "-quickconfigure"
|
||||||
Name: "{group}\Utilities\ClientScript Documentation"; Filename: "{app}\NovetusLauncher.exe" Parameters: "-documentation"
|
Name: "{group}\Utilities\ClientScript Documentation"; Filename: "{app}\Novetus.exe" Parameters: "-documentation"
|
||||||
Name: "{group}\Uninstall Novetus {#AppVer}"; Filename: "{uninstallexe}"
|
Name: "{group}\Uninstall Novetus {#AppVer}"; Filename: "{uninstallexe}"
|
||||||
Name: "{commondesktop}\Novetus {#AppVer}"; Filename: "{app}\NovetusLauncher.exe"; Tasks: desktopicon
|
Name: "{commondesktop}\Novetus {#AppVer}"; Filename: "{app}\Novetus.exe"; Tasks: desktopicon
|
||||||
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Novetus {#AppVer}"; Filename: "{app}\NovetusLauncher.exe"; Tasks: quicklaunchicon
|
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Novetus {#AppVer}"; Filename: "{app}\Novetus.exe"; Tasks: quicklaunchicon
|
||||||
|
|
||||||
[Run]
|
[Run]
|
||||||
Filename: "{app}\_redist\netframework40install.exe"; Description: "Install .NET Framework 4.0"; Flags: nowait postinstall skipifsilent
|
Filename: "{app}\_redist\netframework40install.exe"; Description: "Install .NET Framework 4.0"; Flags: nowait postinstall skipifsilent
|
||||||
Filename: "{app}\_redist\vcredist2005install32.exe"; Description: "Install Visual C++ 2005 Redistributable (32-bit)"; Flags: nowait postinstall skipifsilent
|
Filename: "{app}\_redist\vcredist2005install32.exe"; Description: "Install Visual C++ 2005 Redistributable (32-bit)"; Flags: nowait postinstall skipifsilent
|
||||||
Filename: "{app}\NovetusLauncher.exe"; Description: "Play Novetus"; Flags: nowait postinstall skipifsilent unchecked
|
Filename: "{app}\Novetus.exe"; Description: "Play Novetus"; Flags: nowait postinstall skipifsilent unchecked
|
||||||
Filename: "{app}\README.TXT"; Description: "View the README file"; Flags: postinstall shellexec skipifsilent unchecked
|
Filename: "{app}\README.TXT"; Description: "View the README file"; Flags: postinstall shellexec skipifsilent unchecked
|
||||||
Filename: "{app}\changelog.txt"; Description: "View the changelog"; Flags: postinstall shellexec skipifsilent unchecked
|
Filename: "{app}\changelog.txt"; Description: "View the changelog"; Flags: postinstall shellexec skipifsilent unchecked
|
||||||
|
|
@ -5,6 +5,39 @@ settings().Network.PhysicsReplicationUpdateRate = 1000000
|
||||||
settings().Network.SendRate = 1000000
|
settings().Network.SendRate = 1000000
|
||||||
settings().Network.PhysicsSend = 1 -- 1==RoundRobin
|
settings().Network.PhysicsSend = 1 -- 1==RoundRobin
|
||||||
|
|
||||||
|
_G.rawset=nil
|
||||||
|
function readonlytable(table)
|
||||||
|
return setmetatable({}, {
|
||||||
|
__index = table,
|
||||||
|
__newindex = function(table, key, value)
|
||||||
|
error("Attempt to modify read-only table")
|
||||||
|
end,
|
||||||
|
__metatable = false
|
||||||
|
});
|
||||||
|
end
|
||||||
|
|
||||||
|
function readonlytablechildren(table)
|
||||||
|
for i,v in pairs(table) do
|
||||||
|
if type(v)=="table" and table[i]~=_G._G then
|
||||||
|
readonlytablechildren(table[i])
|
||||||
|
table[i] = readonlytable(table[i])
|
||||||
|
end
|
||||||
|
if type(v)=="userdata" then
|
||||||
|
local mt = getmetatable(table[i])
|
||||||
|
if mt~=nil and mt~=false then
|
||||||
|
mt.__metatable=false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
readonlytablechildren(_G)
|
||||||
|
_G._G = readonlytable(_G)
|
||||||
|
mt = getmetatable(game.Changed)
|
||||||
|
mt.__metatable=false
|
||||||
|
mt = getmetatable("curse you roblox")
|
||||||
|
mt.__metatable=false
|
||||||
|
|
||||||
--function made by rbxbanland
|
--function made by rbxbanland
|
||||||
function newWaitForChild(newParent,name)
|
function newWaitForChild(newParent,name)
|
||||||
local returnable = nil
|
local returnable = nil
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,39 @@
|
||||||
settings().Network.maxDataModelSendBuffer = 1000000
|
settings().Network.maxDataModelSendBuffer = 1000000
|
||||||
settings().Network.sendRate = 1000000
|
settings().Network.sendRate = 1000000
|
||||||
|
|
||||||
|
_G.rawset=nil
|
||||||
|
function readonlytable(table)
|
||||||
|
return setmetatable({}, {
|
||||||
|
__index = table,
|
||||||
|
__newindex = function(table, key, value)
|
||||||
|
error("Attempt to modify read-only table")
|
||||||
|
end,
|
||||||
|
__metatable = false
|
||||||
|
});
|
||||||
|
end
|
||||||
|
|
||||||
|
function readonlytablechildren(table)
|
||||||
|
for i,v in pairs(table) do
|
||||||
|
if type(v)=="table" and table[i]~=_G._G then
|
||||||
|
readonlytablechildren(table[i])
|
||||||
|
table[i] = readonlytable(table[i])
|
||||||
|
end
|
||||||
|
if type(v)=="userdata" then
|
||||||
|
local mt = getmetatable(table[i])
|
||||||
|
if mt~=nil and mt~=false then
|
||||||
|
mt.__metatable=false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
readonlytablechildren(_G)
|
||||||
|
_G._G = readonlytable(_G)
|
||||||
|
mt = getmetatable(game.Changed)
|
||||||
|
mt.__metatable=false
|
||||||
|
mt = getmetatable("curse you roblox")
|
||||||
|
mt.__metatable=false
|
||||||
|
|
||||||
--function made by rbxbanland
|
--function made by rbxbanland
|
||||||
function newWaitForChild(newParent,name)
|
function newWaitForChild(newParent,name)
|
||||||
local returnable = nil
|
local returnable = nil
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,39 @@ settings().Network.PhysicsReplicationUpdateRate = 1000000
|
||||||
settings().Network.SendRate = 1000000
|
settings().Network.SendRate = 1000000
|
||||||
settings().Network.PhysicsSend = 1 -- 1==RoundRobin
|
settings().Network.PhysicsSend = 1 -- 1==RoundRobin
|
||||||
|
|
||||||
|
_G.rawset=nil
|
||||||
|
function readonlytable(table)
|
||||||
|
return setmetatable({}, {
|
||||||
|
__index = table,
|
||||||
|
__newindex = function(table, key, value)
|
||||||
|
error("Attempt to modify read-only table")
|
||||||
|
end,
|
||||||
|
__metatable = false
|
||||||
|
});
|
||||||
|
end
|
||||||
|
|
||||||
|
function readonlytablechildren(table)
|
||||||
|
for i,v in pairs(table) do
|
||||||
|
if type(v)=="table" and table[i]~=_G._G then
|
||||||
|
readonlytablechildren(table[i])
|
||||||
|
table[i] = readonlytable(table[i])
|
||||||
|
end
|
||||||
|
if type(v)=="userdata" then
|
||||||
|
local mt = getmetatable(table[i])
|
||||||
|
if mt~=nil and mt~=false then
|
||||||
|
mt.__metatable=false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
readonlytablechildren(_G)
|
||||||
|
_G._G = readonlytable(_G)
|
||||||
|
mt = getmetatable(game.Changed)
|
||||||
|
mt.__metatable=false
|
||||||
|
mt = getmetatable("curse you roblox")
|
||||||
|
mt.__metatable=false
|
||||||
|
|
||||||
--function made by rbxbanland
|
--function made by rbxbanland
|
||||||
function newWaitForChild(newParent,name)
|
function newWaitForChild(newParent,name)
|
||||||
local returnable = nil
|
local returnable = nil
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,39 @@ settings().Network.PhysicsSend = 1
|
||||||
settings().Network.NetworkOwnerRate = 30
|
settings().Network.NetworkOwnerRate = 30
|
||||||
settings().Network.PhysicsSendRate = 30
|
settings().Network.PhysicsSendRate = 30
|
||||||
|
|
||||||
|
_G.rawset=nil
|
||||||
|
function readonlytable(table)
|
||||||
|
return setmetatable({}, {
|
||||||
|
__index = table,
|
||||||
|
__newindex = function(table, key, value)
|
||||||
|
error("Attempt to modify read-only table")
|
||||||
|
end,
|
||||||
|
__metatable = false
|
||||||
|
});
|
||||||
|
end
|
||||||
|
|
||||||
|
function readonlytablechildren(table)
|
||||||
|
for i,v in pairs(table) do
|
||||||
|
if type(v)=="table" and table[i]~=_G._G then
|
||||||
|
readonlytablechildren(table[i])
|
||||||
|
table[i] = readonlytable(table[i])
|
||||||
|
end
|
||||||
|
if type(v)=="userdata" then
|
||||||
|
local mt = getmetatable(table[i])
|
||||||
|
if mt~=nil and mt~=false then
|
||||||
|
mt.__metatable=false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
readonlytablechildren(_G)
|
||||||
|
_G._G = readonlytable(_G)
|
||||||
|
mt = getmetatable(game.Changed)
|
||||||
|
mt.__metatable=false
|
||||||
|
mt = getmetatable("curse you roblox")
|
||||||
|
mt.__metatable=false
|
||||||
|
|
||||||
--function made by rbxbanland
|
--function made by rbxbanland
|
||||||
function newWaitForChild(newParent,name)
|
function newWaitForChild(newParent,name)
|
||||||
local returnable = nil
|
local returnable = nil
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,39 @@ settings().Network.ReceiveRate = 60
|
||||||
settings().Network.NetworkOwnerRate = 30
|
settings().Network.NetworkOwnerRate = 30
|
||||||
pcall(function() game:GetService("ScriptContext").ScriptsDisabled = false end)
|
pcall(function() game:GetService("ScriptContext").ScriptsDisabled = false end)
|
||||||
|
|
||||||
|
_G.rawset=nil
|
||||||
|
function readonlytable(table)
|
||||||
|
return setmetatable({}, {
|
||||||
|
__index = table,
|
||||||
|
__newindex = function(table, key, value)
|
||||||
|
error("Attempt to modify read-only table")
|
||||||
|
end,
|
||||||
|
__metatable = false
|
||||||
|
});
|
||||||
|
end
|
||||||
|
|
||||||
|
function readonlytablechildren(table)
|
||||||
|
for i,v in pairs(table) do
|
||||||
|
if type(v)=="table" and table[i]~=_G._G then
|
||||||
|
readonlytablechildren(table[i])
|
||||||
|
table[i] = readonlytable(table[i])
|
||||||
|
end
|
||||||
|
if type(v)=="userdata" then
|
||||||
|
local mt = getmetatable(table[i])
|
||||||
|
if mt~=nil and mt~=false then
|
||||||
|
mt.__metatable=false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
readonlytablechildren(_G)
|
||||||
|
_G._G = readonlytable(_G)
|
||||||
|
mt = getmetatable(game.Changed)
|
||||||
|
mt.__metatable=false
|
||||||
|
mt = getmetatable("curse you roblox")
|
||||||
|
mt.__metatable=false
|
||||||
|
|
||||||
--function made by rbxbanland
|
--function made by rbxbanland
|
||||||
function newWaitForChild(newParent,name)
|
function newWaitForChild(newParent,name)
|
||||||
local returnable = nil
|
local returnable = nil
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,39 @@ end))
|
||||||
|
|
||||||
pcall(function() game:GetService("ScriptContext").ScriptsDisabled = false end)
|
pcall(function() game:GetService("ScriptContext").ScriptsDisabled = false end)
|
||||||
|
|
||||||
|
_G.rawset=nil
|
||||||
|
function readonlytable(table)
|
||||||
|
return setmetatable({}, {
|
||||||
|
__index = table,
|
||||||
|
__newindex = function(table, key, value)
|
||||||
|
error("Attempt to modify read-only table")
|
||||||
|
end,
|
||||||
|
__metatable = false
|
||||||
|
});
|
||||||
|
end
|
||||||
|
|
||||||
|
function readonlytablechildren(table)
|
||||||
|
for i,v in pairs(table) do
|
||||||
|
if type(v)=="table" and table[i]~=_G._G then
|
||||||
|
readonlytablechildren(table[i])
|
||||||
|
table[i] = readonlytable(table[i])
|
||||||
|
end
|
||||||
|
if type(v)=="userdata" then
|
||||||
|
local mt = getmetatable(table[i])
|
||||||
|
if mt~=nil and mt~=false then
|
||||||
|
mt.__metatable=false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
readonlytablechildren(_G)
|
||||||
|
_G._G = readonlytable(_G)
|
||||||
|
mt = getmetatable(game.Changed)
|
||||||
|
mt.__metatable=false
|
||||||
|
mt = getmetatable("curse you roblox")
|
||||||
|
mt.__metatable=false
|
||||||
|
|
||||||
--function made by rbxbanland
|
--function made by rbxbanland
|
||||||
function newWaitForChild(newParent,name)
|
function newWaitForChild(newParent,name)
|
||||||
local returnable = nil
|
local returnable = nil
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue