initial commit

This commit is contained in:
Bitl 2017-07-27 10:49:29 -07:00
parent f0285b3de4
commit 934f42614c
77 changed files with 38075 additions and 0 deletions

View File

@ -0,0 +1,55 @@
; Script generated by the Inno Script Studio Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "Origins06"
#define MyAppVersion "1.0.0.0"
#define MyAppPublisher "Bitl"
#define MyAppURL "http://or06.000webhostapp.com"
#define MyAppExeName "Origins06_Installer.exe"
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{65E21311-941A-44E6-904F-168BE26A11DB}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName=C:\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
OutputDir=.
OutputBaseFilename=Origins06_setup
SetupIconFile=C:\newdesktop\modding\Origins06\Origins06_logo.ico
Compression=lzma2/ultra64
SolidCompression=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Files]
Source: "C:\newdesktop\modding\Origins06\Origins06\Origins06_Installer.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\newdesktop\modding\Origins06\Origins06\AppSettings.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\newdesktop\modding\Origins06\Origins06\copyrights.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\newdesktop\modding\Origins06\Origins06\fmodex.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\newdesktop\modding\Origins06\Origins06\Origins06_Client.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\newdesktop\modding\Origins06\Origins06\Origins06_Launcher.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\newdesktop\modding\Origins06\Origins06\Origins06_Server.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\newdesktop\modding\Origins06\Origins06\ReflectionMetadata.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\newdesktop\modding\Origins06\Origins06\rgmain.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\newdesktop\modding\Origins06\Origins06\rgpar.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\newdesktop\modding\Origins06\Origins06\SciLexer.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\newdesktop\modding\Origins06\Origins06\Microsoft.VC90.MFC\*"; DestDir: "{app}\Microsoft.VC90.MFC"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\newdesktop\modding\Origins06\Origins06\Microsoft.VC90.CRT\*"; DestDir: "{app}\Microsoft.VC90.CRT"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\newdesktop\modding\Origins06\Origins06\content\*"; DestDir: "{app}\content"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "Install URI (Required for Games)"; Flags: nowait postinstall skipifsilent

View File

@ -0,0 +1,146 @@
body
{
font: normal 8pt/normal 'Comic Sans MS' , Verdana, sans-serif;
margin-top: 0;
text-transform: none;
text-decoration: none;
}
#Container
{
margin: 0 auto;
width: 900px;
}
#Header
{
margin: 0 auto;
border-top: solid 1px #000;
color: White;
font: normal 12px/normal Verdana, sans-serif;
font-weight: bold;
width: 900px;
text-align: center;
}
#Header a, #Header a:visited, #Header a:active
{
color: White;
text-decoration: none;
}
#Header a:hover
{
color: White;
text-decoration: underline;
}
#Banner
{
background-color: #6e99c9;
border-bottom: solid 1px #000;
border-left: solid 1px #000;
border-right: solid 1px #000;
height: 72px;
text-align: center;
}
#Banner #Logo
{
float: center;
margin: 0;
text-align: center;
width: 293px;
}
#Header .Navigation
{
clear: both;
background-color: #6e99c9;
border-bottom: solid 1px #000;
border-left: solid 1px #000;
border-right: solid 1px #000;
color: #fff;
font-family: 'Comic Sans MS' , Verdana, sans-serif;
font-size: 12pt;
font-weight: normal;
line-height: 2em;
text-decoration: none;
}
#Body
{
margin: 10px 0;
width: 900px;
}
#Footer
{
font: normal 12px/normal Verdana, sans-serif;
margin-top: 10px;
width: 900px;
text-align: center;
font-weight: bold;
}
input[type="text"]
{
border: dashed 2px Gray;
font-family: Verdana, Sans-Serif;
font-size: 1.2em;
padding: 5px;
}
input[type="submit"]
{
background-color: #F5CD2F;
color: #000;
height: 1.5em;
font-family: Comic Sans MS;
font-size: 15px;
font-weight: bold;
}
#SplashContainer
{
}
#SplashContainer h2
{
font-size: x-large;
margin: 0px 0 5px 0;
}
#SplashContainer h3
{
letter-spacing: normal;
margin: 0px 0 5px 0;
}
#SplashContainer #MainPanel
{
background-color: #eee;
border: solid 1px #000;
float: right;
margin: 0 0 10px 0;
padding: 10px;
position: relative;
text-align: left;
width: 877px;
}
#SplashContainer #ElementInsert
{
background-color: #ddd;
border: solid 1px #000;
float: right;
margin: 0 0 10px 0;
padding: 10px;
position: relative;
text-align: left;
width: 856px;
}
#SplashContainer #genlink {
color: red;
}

View File

@ -0,0 +1,148 @@
body
{
font: normal 8pt/normal 'Comic Sans MS' , Verdana, sans-serif;
color: White;
margin-top: 0;
text-transform: none;
text-decoration: none;
background-color: #1a1a1a;
}
#Container
{
margin: 0 auto;
width: 900px;
}
#Header
{
margin: 0 auto;
border-top: solid 1px #000;
color: White;
font: normal 12px/normal Verdana, sans-serif;
font-weight: bold;
width: 900px;
text-align: center;
}
#Header a, #Header a:visited, #Header a:active
{
color: White;
text-decoration: none;
}
#Header a:hover
{
color: White;
text-decoration: underline;
}
#Banner
{
background-color: #6e99c9;
border-bottom: solid 1px #000;
border-left: solid 1px #000;
border-right: solid 1px #000;
height: 72px;
text-align: center;
}
#Banner #Logo
{
float: center;
margin: 0;
text-align: center;
width: 293px;
}
#Header .Navigation
{
clear: both;
background-color: #6e99c9;
border-bottom: solid 1px #000;
border-left: solid 1px #000;
border-right: solid 1px #000;
color: #fff;
font-family: 'Comic Sans MS' , Verdana, sans-serif;
font-size: 12pt;
font-weight: normal;
line-height: 2em;
text-decoration: none;
}
#Body
{
margin: 10px 0;
width: 900px;
}
#Footer
{
font: normal 12px/normal Verdana, sans-serif;
margin-top: 10px;
width: 900px;
text-align: center;
font-weight: bold;
}
input[type="text"]
{
border: dashed 2px #353535;
font-family: Verdana, Sans-Serif;
font-size: 1.2em;
padding: 5px;
}
input[type="submit"]
{
background-color: #B3B2AF;
color: #000;
height: 1.5em;
font-family: Comic Sans MS;
font-size: 15px;
font-weight: bold;
}
#SplashContainer
{
}
#SplashContainer h2
{
font-size: x-large;
margin: 0px 0 5px 0;
}
#SplashContainer h3
{
letter-spacing: normal;
margin: 0px 0 5px 0;
}
#SplashContainer #MainPanel
{
background-color: #989898;
border: solid 1px #000;
float: right;
margin: 0 0 10px 0;
padding: 10px;
position: relative;
text-align: left;
width: 877px;
}
#SplashContainer #ElementInsert
{
background-color: #7D7D7D;
border: solid 1px #000;
float: right;
margin: 0 0 10px 0;
padding: 10px;
position: relative;
text-align: left;
width: 856px;
}
#SplashContainer #genlink {
color: red;
}

View File

@ -0,0 +1,145 @@
body
{
font: normal 8pt/normal Verdana, sans-serif;
color: White;
margin-top: 0;
text-transform: none;
text-decoration: none;
background-color: #1a1a1a;
}
#Container
{
margin: 0 auto;
width: 900px;
}
#Header
{
margin: 0 auto;
color: White;
font: normal 12px/normal Verdana, sans-serif;
font-weight: bold;
width: 900px;
text-align: center;
}
#Header a, #Header a:visited, #Header a:active
{
color: White;
text-decoration: none;
}
#Header a:hover
{
color: White;
text-decoration: underline;
}
#Banner
{
background-color: #989898;
border-left: solid 2px #B6B6B6;
border-right: solid 2px #B6B6B6;
border-top: solid 2px #B6B6B6;
height: 72px;
text-align: center;
}
#Banner #Logo
{
float: center;
margin: 0;
text-align: center;
width: 293px;
}
#Header .Navigation
{
background-color: #989898;
border-left: solid 2px #B6B6B6;
border-right: solid 2px #B6B6B6;
border-bottom: solid 2px #B6B6B6;
font-family: Verdana, sans-serif;
font-size: 12pt;
font-weight: normal;
line-height: 2em;
text-decoration: none;
}
#Body
{
margin: 10px 0;
width: 900px;
}
#Footer
{
font: normal 12px/normal Verdana, sans-serif;
margin-top: 10px;
width: 900px;
text-align: center;
font-weight: bold;
}
input[type="text"]
{
border: dashed 2px #353535;
font-family: Verdana, Sans-Serif;
font-size: 1.2em;
padding: 5px;
}
input[type="submit"]
{
background-color: #B3B2AF;
color: #000;
height: 1.5em;
font-family: Verdana;
font-size: 15px;
font-weight: bold;
}
#SplashContainer
{
}
#SplashContainer h2
{
font-size: x-large;
margin: 0px 0 5px 0;
}
#SplashContainer h3
{
letter-spacing: normal;
margin: 0px 0 5px 0;
}
#SplashContainer #MainPanel
{
background-color: #989898;
border: solid 2px #B6B6B6;
float: right;
margin: 0 0 10px 0;
padding: 10px;
position: relative;
text-align: left;
width: 877px;
}
#SplashContainer #ElementInsert
{
background-color: #7D7D7D;
border: solid 2px #868686;
float: right;
margin: 0 0 10px 0;
padding: 10px;
position: relative;
text-align: left;
width: 856px;
}
#SplashContainer #genlink {
color: red;
}

View File

@ -0,0 +1,143 @@
body
{
font: normal 8pt/normal Verdana, sans-serif;
margin-top: 0;
text-transform: none;
text-decoration: none;
}
#Container
{
margin: 0 auto;
width: 900px;
}
#Header
{
margin: 0 auto;
color: Black;
font: normal 12px/normal Verdana, sans-serif;
font-weight: bold;
width: 900px;
text-align: center;
}
#Header a, #Header a:visited, #Header a:active
{
color: Black;
text-decoration: none;
}
#Header a:hover
{
color: Black;
text-decoration: underline;
}
#Banner
{
background-color: #eee;
border-left: solid 2px #d1d1d1;
border-right: solid 2px #d1d1d1;
border-top: solid 2px #d1d1d1;
height: 72px;
text-align: center;
}
#Banner #Logo
{
float: center;
margin: 0;
text-align: center;
width: 293px;
}
#Header .Navigation
{
background-color: #eee;
border-left: solid 2px #d1d1d1;
border-right: solid 2px #d1d1d1;
border-bottom: solid 2px #d1d1d1;
font-family: Verdana, sans-serif;
font-size: 12pt;
font-weight: normal;
line-height: 2em;
text-decoration: none;
}
#Body
{
margin: 10px 0;
width: 900px;
}
#Footer
{
font: normal 12px/normal Verdana, sans-serif;
margin-top: 10px;
width: 900px;
text-align: center;
font-weight: bold;
}
input[type="text"]
{
border: dashed 2px Gray;
font-family: Verdana, Sans-Serif;
font-size: 1.2em;
padding: 5px;
}
input[type="submit"]
{
background-color: #e0dfdb;
color: #000;
height: 1.5em;
font-family: Verdana;
font-size: 15px;
font-weight: bold;
}
#SplashContainer
{
}
#SplashContainer h2
{
font-size: x-large;
margin: 0px 0 5px 0;
}
#SplashContainer h3
{
letter-spacing: normal;
margin: 0px 0 5px 0;
}
#SplashContainer #MainPanel
{
background-color: #eee;
border: solid 2px #d1d1d1;
float: right;
margin: 0 0 10px 0;
padding: 10px;
position: relative;
text-align: left;
width: 877px;
}
#SplashContainer #ElementInsert
{
background-color: #ddd;
border: solid 2px #ccc;
float: right;
margin: 0 0 10px 0;
padding: 10px;
position: relative;
text-align: left;
width: 856px;
}
#SplashContainer #genlink {
color: red;
}

View File

@ -0,0 +1,294 @@
settings().Rendering.frameRateManager = 2;
settings().Rendering.graphicsMode = 2;
settings().Network.MaxSendBuffer = 1000000;
settings().Network.PhysicsReplicationUpdateRate = 1000000;
settings().Network.SendRate = 1000000;
rbxversion = version();
print("Origins06 version '" .. rbxversion .. "' loaded.");
--function made by rbxbanland
function newWaitForChild(newParent,name)
local returnable = nil
if newParent:FindFirstChild(name) then
returnable = newParent:FindFirstChild(name)
else
repeat wait() returnable = newParent:FindFirstChild(name) until returnable ~= nil
end
return returnable
end
--we aren't doing anything with shirts or t-shirts or pants yet, we're only doing hats.
function LoadCharacterNew(playerApp,newChar)
local charparts = {[1] = newWaitForChild(newChar,"Head"),[2] = newWaitForChild(newChar,"Torso"),[3] = newWaitForChild(newChar,"Left Arm"),[4] = newWaitForChild(newChar,"Right Arm"),[5] = newWaitForChild(newChar,"Left Leg"),[6] = newWaitForChild(newChar,"Right Leg")}
for _,newVal in pairs(playerApp:GetChildren()) do
pcall(function()
charparts[newVal.ColorIndex.Value].BrickColor = newVal.Value
end)
end
end
function PlayerColors(Player,SkinPattern,LegsPattern,TorsoPattern)
HeadColor=BrickColor.DarkGray();
TorsoColor=BrickColor.DarkGray();
LArmColor=BrickColor.DarkGray();
LLegColor=BrickColor.DarkGray();
RArmColor=BrickColor.DarkGray();
RLegColor=BrickColor.DarkGray();
if (Player.Name == "Bitl" and Player.userId == 1915355) then
HeadColor=BrickColor.Red();
TorsoColor=BrickColor.Red();
LArmColor=BrickColor.Red();
LLegColor=BrickColor.Red();
RArmColor=BrickColor.DarkGray();
RLegColor=BrickColor.DarkGray();
elseif (Player.Name == "P4ris" and Player.userId == 69) then
HeadColor=BrickColor.DarkGray();
TorsoColor=BrickColor.DarkGray();
LArmColor=BrickColor.DarkGray();
LLegColor=BrickColor.DarkGray();
RArmColor=BrickColor.DarkGray();
RLegColor=BrickColor.DarkGray();
elseif (Player.Name == "The Living Bee" and Player.userId == 2) then
HeadColor=BrickColor.new("Cool yellow");
TorsoColor=BrickColor.White();
LArmColor=BrickColor.new("Cool yellow");
LLegColor=BrickColor.White();
RArmColor=BrickColor.new("Cool yellow");
RLegColor=BrickColor.White();
else
if (SkinPattern==1) then
HeadColor=BrickColor.Yellow();
LArmColor=BrickColor.Yellow();
RArmColor=BrickColor.Yellow();
elseif (SkinPattern==2) then
HeadColor=BrickColor.new("Cool yellow");
LArmColor=BrickColor.new("Cool yellow");
RArmColor=BrickColor.new("Cool yellow");
elseif (SkinPattern==3) then
HeadColor=BrickColor.new("Medium red");
LArmColor=BrickColor.new("Medium red");
RArmColor=BrickColor.new("Medium red");
elseif (SkinPattern==4) then
HeadColor=BrickColor.new("Light reddish violet");
LArmColor=BrickColor.new("Light reddish violet");
RArmColor=BrickColor.new("Light reddish violet");
elseif (SkinPattern==5) then
HeadColor=BrickColor.new("Dark orange");
LArmColor=BrickColor.new("Dark orange");
RArmColor=BrickColor.new("Dark orange");
elseif (SkinPattern==6) then
HeadColor=BrickColor.new("Nougat");
LArmColor=BrickColor.new("Nougat");
RArmColor=BrickColor.new("Nougat");
end
if (LegsPattern==1) then
RLegColor=BrickColor.new("Br. yellowish green");
LLegColor=BrickColor.new("Br. yellowish green");
elseif (LegsPattern==2) then
LLegColor=BrickColor.new("Pastel Blue");
RLegColor=BrickColor.new("Pastel Blue");
elseif (LegsPattern==3) then
LLegColor=BrickColor.Blue();
RLegColor=BrickColor.Blue();
elseif (LegsPattern==4) then
LLegColor=BrickColor.White();
RLegColor=BrickColor.White();
elseif (LegsPattern==5) then
LLegColor=BrickColor.new("Light blue");
RLegColor=BrickColor.new("Light blue");
end
if (TorsoPattern==1) then
TorsoColor=BrickColor.new("Medium stone grey");
elseif (TorsoPattern==2) then
TorsoColor=BrickColor.DarkGray();
elseif (TorsoPattern==3) then
TorsoColor=BrickColor.White();
elseif (TorsoPattern==4) then
TorsoColor=BrickColor.Red();
elseif (TorsoPattern==5) then
TorsoColor=BrickColor.Green();
elseif (TorsoPattern==6) then
TorsoColor=BrickColor.Blue();
elseif (TorsoPattern==7) then
TorsoColor=BrickColor.new("Light blue");
elseif (TorsoPattern==8) then
TorsoColor=BrickColor.new("Pastel Blue");
end
end
InitalizeClientAppearance(Player,HeadColor,TorsoColor,LArmColor,RArmColor,LLegColor,RLegColor);
end
function InitalizeClientAppearance(Player,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID)
local newCharApp = Instance.new("IntValue",Player);
newCharApp.Name = "Appearance";
--BODY COLORS
for i=1,6,1 do
local BodyColor = Instance.new("BrickColorValue",newCharApp);
if (i == 1) then
if (HeadColorID ~= nil) then
BodyColor.Value = HeadColorID;
else
BodyColor.Value = BrickColor.DarkGray();
end
BodyColor.Name = "HeadColor";
elseif (i == 2) then
if (TorsoColorID ~= nil) then
BodyColor.Value = TorsoColorID;
else
BodyColor.Value = BrickColor.DarkGray();
end
BodyColor.Name = "TorsoColor";
elseif (i == 3) then
if (LeftArmColorID ~= nil) then
BodyColor.Value = LeftArmColorID;
else
BodyColor.Value = BrickColor.DarkGray();
end
BodyColor.Name = "LeftArmColor";
elseif (i == 4) then
if (RightArmColorID ~= nil) then
BodyColor.Value = RightArmColorID;
else
BodyColor.Value = BrickColor.DarkGray();
end
BodyColor.Name = "RightArmColor";
elseif (i == 5) then
if (LeftLegColorID ~= nil) then
BodyColor.Value = LeftLegColorID;
else
BodyColor.Value = BrickColor.DarkGray();
end
BodyColor.Name = "LeftLegColor";
elseif (i == 6) then
if (RightLegColorID ~= nil) then
BodyColor.Value = RightLegColorID;
else
BodyColor.Value = BrickColor.DarkGray();
end
BodyColor.Name = "RightLegColor";
end
local indexValue = Instance.new("NumberValue");
indexValue.Name = "ColorIndex";
indexValue.Parent = BodyColor;
indexValue.Value = i;
end
end
function CSR06Server(Port,PlayerLimit)
Server = game:GetService("NetworkServer")
RunService = game:GetService("RunService")
Server:start(Port, 20)
RunService:run();
game:GetService("Players").MaxPlayers = PlayerLimit;
game:GetService("Players").PlayerAdded:connect(function(Player)
if (game:GetService("Players").NumPlayers > game:GetService("Players").MaxPlayers) then
local message = Instance.new("Message")
message.Text = "You were kicked. Reason: Too many players on server."
message.Parent = Player
wait(2)
Player:remove()
print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' kicked. Reason: Too many players on server.");
else
print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' added");
Player:LoadCharacter();
LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character);
end
while true do
wait(0.001)
if (Player.Character ~= nil) then
if (Player.Character.Humanoid.Health == 0) then
wait(5)
Player:LoadCharacter()
LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character);
elseif (Player.Character.Parent == nil) then
wait(5)
Player:LoadCharacter() -- to make sure nobody is deleted.
LoadCharacterNew(newWaitForChild(Player,"Appearance"),Player.Character);
end
end
end
end)
game:GetService("Players").PlayerRemoving:connect(function(Player)
print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' leaving")
end)
game:GetService("RunService"):Run();
pcall(function() game.Close:connect(function() Server:Stop(); end) end);
Server.IncommingConnection:connect(IncommingConnection);
end
function CSR06Connect(UserID,ServerIP,ServerPort,PlayerName,SkinPattern,LegsPattern,TorsoPattern)
pcall(function() game:SetPlaceID(-1, false) end);
local suc, err = pcall(function()
client = game:GetService("NetworkClient")
player = game:GetService("Players"):CreateLocalPlayer(UserID)
player:SetSuperSafeChat(false);
pcall(function() player:SetUnder13(false) end);
pcall(function() player:SetAccountAge(365) end);
player.CharacterAppearance=0;
pcall(function() player.Name=PlayerName or ""; end);
game:GetService("Visit");
PlayerColors(player,SkinPattern,LegsPattern,TorsoPattern);
end)
local function dieerror(errmsg)
game:SetMessage(errmsg)
wait(math.huge)
end
if not suc then
dieerror(err)
end
local function disconnect(peer,lostconnection)
game:SetMessage("You have lost connection to the game")
end
local function connected(url, replicator)
replicator.Disconnection:connect(disconnect)
local marker = nil
local suc, err = pcall(function()
game:SetMessageBrickCount()
marker = replicator:SendMarker()
end)
if not suc then
dieerror(err)
end
marker.Received:connect(function()
local suc, err = pcall(function()
game:ClearMessage()
end)
if not suc then
dieerror(err)
end
end)
end
local function rejected()
dieerror("Failed to connect to the Game. (Connection rejected)")
end
local function failed(peer, errcode, why)
dieerror("Failed to connect to the Game. (ID="..errcode.." ["..why.."])")
end
local suc, err = pcall(function()
game:SetMessage("Connecting to server...");
client.ConnectionAccepted:connect(connected)
client.ConnectionRejected:connect(rejected)
client.ConnectionFailed:connect(failed)
client:Connect(ServerIP,ServerPort, 0, 20)
game.GuiRoot.MainMenu["Toolbox"]:Remove()
game.GuiRoot.MainMenu["Edit Mode"]:Remove()
game.GuiRoot.RightPalette.ReportAbuse:Remove()
game.GuiRoot.ChatMenuPanel:Remove()
end)
if not suc then
local x = Instance.new("Message")
x.Text = err
x.Parent = workspace
wait(math.huge)
end
end
_G.CSR06Server=CSR06Server;
_G.CSR06Connect=CSR06Connect;

View File

@ -0,0 +1,78 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" id="pee">
<head>
<title>Origins06</title>
<link rel="stylesheet" type="text/css" href="css/Origins06_normal.css" title="normal"/>
<link rel="stylesheet" type="text/css" href="css/Origins06_dark.css" title="dark">
<link rel="stylesheet" type="text/css" href="css/Origins06_classic.css" title="classic">
<link rel="stylesheet" type="text/css" href="css/Origins06_classicdark.css" title="classicdark">
<link rel="Shortcut Icon" type="image/ico" href="images/icon.ico"/>
<script type="text/javascript" src="js/js_funcs.js"></script>
</head>
<body onload="set_style_from_cookie()">
<div id="Container">
<div id="Header">
<div id="Banner">
<center><div id="Logo"><a id="logo" title="Origins06" href="index.php" style="display:inline-block;cursor:pointer;"><img src="images/Logo.png" border="0" id="img" alt="Origins06"/></a></div></center>
</div>
<div class="Navigation">
<span><a id="Games" class="MenuItem" href="games.php">Games</a></span>
<span class="Separator"> | </span>
<span><a id="HostServer" class="MenuItem" href="hostserver.php">Host Server</a></span>
</div>
</div>
<div id="Body">
<div id="SplashContainer">
<div id="MainPanel">
<center>
<h2>Games</h2>
<?php
$con = new mysqli("localhost", "origins0_root", "", "origins0_games");
if (mysqli_connect_errno())
{
printf("Connect failed: %s\n", mysqli_connect_error());
}
$sql="SELECT * FROM games";
$result=$con->query($sql);
if (!$result)
{
printf("Error: %s\n", $con->error);
}
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
{
echo "<div id='ElementInsert'>";
echo "<center>";
echo "<h3><b>".$row['name']."</b></h3>";
echo "<h3><b>Map: ".$row['map']."</b></h3>";
echo "<h3><b>Player Limit: ".$row['playerlimit']."</b></h3>";
date_default_timezone_set('America/Phoenix');
$date = date('m/d/Y h:i:s a', time());
echo "<h3><b> Creation Time: ".$date."</b></h3>";
$stringbuild = $row['ip']."|".$row['port'];
$encryptstring = base64_encode($stringbuild);
$url = "Origins06://".$encryptstring;
echo "<form action='".$url."'>";
echo "<div id='JoinButton'><input type='submit' value='Join'/></div>";
echo "</form>";
echo "</center>";
echo "</div>";
echo " ";
}
$con->close();
?>
</center>
</div>
</div>
</div>
<div id="Footer">
Origins06 does not knowingly host copyrighted content. If you host a server, we store your IP address, but it is not publicly distributed to users on the site.
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,73 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" id="pee">
<head>
<title>Origins06</title>
<link rel="stylesheet" type="text/css" href="css/Origins06_normal.css" title="normal"/>
<link rel="stylesheet" type="text/css" href="css/Origins06_dark.css" title="dark">
<link rel="stylesheet" type="text/css" href="css/Origins06_classic.css" title="classic">
<link rel="stylesheet" type="text/css" href="css/Origins06_classicdark.css" title="classicdark">
<link rel="Shortcut Icon" type="image/ico" href="images/icon.ico"/>
<script type="text/javascript" src="js/js_funcs.js"></script>
</head>
<body onload="set_style_from_cookie()">
<?php
$con = new mysqli("localhost", "origins0_root", "", "origins0_games");
if (mysqli_connect_errno())
{
printf("Connect failed: %s\n", mysqli_connect_error());
}
$namefixed = mysqli_real_escape_string($con,$_POST['name']);
$ipcrypt = base64_encode($_POST['ip']);
$sql="INSERT INTO games (name, map, ip, port, playerlimit)
VALUES
('$namefixed','$_POST[map]','$ipcrypt','$_POST[port]','$_POST[playerlimit]')";
if (!$con->query($sql))
{
printf("Error: %s\n", $con->error);
}
$con->close();
$port=$_POST['port'];
$playerlimit=$_POST['playerlimit'];
?>
<div id="Container">
<div id="Header">
<div id="Banner">
<center><div id="Logo"><a id="logo" title="Origins06" href="index.php" style="display:inline-block;cursor:pointer;"><img src="images/Logo.png" border="0" id="img" alt="Origins06"/></a></div></center>
</div>
<div class="Navigation">
<span><a id="Games" class="MenuItem" href="games.php">Games</a></span>
<span class="Separator"> | </span>
<span><a id="HostServer" class="MenuItem" href="hostserver.php">Host Server</a></span>
</div>
</div>
<div id="Body">
<div id="SplashContainer">
<div id="MainPanel">
<center>
<h2>Host Server</h2>
<div id="ElementInsert">
<center>
<h3>Put this URL into your command bar. If your server works, it'll show up in the Games page.</h3>
<div id="genlink"><b>dofile('localhost/Origins06_site/functions.php'); _G.CSR06Server(<?php echo $port ?>,<?php echo $playerlimit ?>);</b></div>
</center>
</div>
</center>
</div>
</div>
</div>
<div id="Footer">
Origins06 does not knowingly host copyrighted content. If you host a server, we store your IP address, but it is not publicly distributed to users on the site.
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,58 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" id="pee">
<head>
<title>Origins06</title>
<link rel="stylesheet" type="text/css" href="css/Origins06_normal.css" title="normal"/>
<link rel="stylesheet" type="text/css" href="css/Origins06_dark.css" title="dark">
<link rel="stylesheet" type="text/css" href="css/Origins06_classic.css" title="classic">
<link rel="stylesheet" type="text/css" href="css/Origins06_classicdark.css" title="classicdark">
<link rel="Shortcut Icon" type="image/ico" href="images/icon.ico"/>
<script type="text/javascript" src="js/js_funcs.js"></script>
</head>
<body onload="set_style_from_cookie()">
<div id="Container">
<div id="Header">
<div id="Banner">
<center><div id="Logo"><a id="logo" title="Origins06" href="index.php" style="display:inline-block;cursor:pointer;"><img src="images/Logo.png" border="0" id="img" alt="Origins06"/></a></div></center>
</div>
<div class="Navigation">
<span><a id="Games" class="MenuItem" href="games.php">Games</a></span>
<span class="Separator"> | </span>
<span><a id="HostServer" class="MenuItem" href="hostserver.php">Host Server</a></span>
</div>
</div>
<div id="Body">
<div id="SplashContainer">
<div id="MainPanel">
<center>
<h2>Host Server</h2>
<b>* = Required</b>
<div id="ElementInsert">
<form action="getservercode.php" method="post">
<center>
<h3>Server Name: *</h3>
<input type="text" name="name" /><br><br>
<h3>Map Name: *</h3>
<input type="text" name="map" /><br><br>
<h3>IP Address: *</h3>
<input type="text" name="ip" value=<?php print $_SERVER['REMOTE_ADDR']; ?> /><br><br>
<h3>Port: *</h3>
<input type="text" name="port" value="53640"/><br><br>
<h3>Player Limit: *</h3>
<input type="text" name="playerlimit" value="12"/><br><br>
<input type="submit" value="Get server code"/>
</center>
</form>
</div>
</center>
</div>
</div>
</div>
<div id="Footer">
Origins06 does not knowingly host copyrighted content. If you host a server, we store your IP address, but it is not publicly distributed to users on the site.
</div>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

View File

@ -0,0 +1,46 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" id="pee">
<head>
<title>Origins06</title>
<link rel="stylesheet" type="text/css" href="css/Origins06_normal.css" title="normal"/>
<link rel="stylesheet" type="text/css" href="css/Origins06_dark.css" title="dark">
<link rel="stylesheet" type="text/css" href="css/Origins06_classic.css" title="classic">
<link rel="stylesheet" type="text/css" href="css/Origins06_classicdark.css" title="classicdark">
<link rel="Shortcut Icon" type="image/ico" href="images/icon.ico"/>
<script type="text/javascript" src="js/js_funcs.js"></script>
</head>
<body onload="set_style_from_cookie()">
<div id="Container">
<div id="Header">
<div id="Banner">
<center><div id="Logo"><a id="logo" title="Origins06" href="index.php" style="display:inline-block;cursor:pointer;"><img src="images/Logo.png" border="0" id="img" alt="Origins06"/></a></div></center>
</div>
<div class="Navigation">
<span><a id="Games" class="MenuItem" href="games.php">Games</a></span>
<span class="Separator"> | </span>
<span><a id="HostServer" class="MenuItem" href="hostserver.php">Host Server</a></span>
</div>
</div>
<div id="Body">
<div id="SplashContainer">
<div id="MainPanel">
<center>
<h2>Welcome to Origins06!</h2>
<form>
<input type="submit" onclick="switch_style('normal'); return false;" name="theme" value="Light" id="normal">
<input type="submit" onclick="switch_style('dark'); return false;" name="theme" value="Dark" id="dark">
<input type="submit" onclick="switch_style('classic'); return false;" name="theme" value="Classic Light" id="classic">
<input type="submit" onclick="switch_style('classicdark'); return false;" name="theme" value="Classic Dark" id="classicdark">
</form>
</center>
</div>
</div>
</div>
<div id="Footer">
Origins06 does not knowingly host copyrighted content. If you host a server, we store your IP address, but it is not publicly distributed to users on the site.
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,60 @@
// *** TO BE CUSTOMISED ***
var style_cookie_name = "style" ;
var style_cookie_duration = 30 ;
var style_domain = "localhost" ;
// *** END OF CUSTOMISABLE SECTION ***
// You do not need to customise anything below this line
function switch_style ( css_title )
{
// You may use this script on your site free of charge provided
// you do not remove this notice or the URL below. Script from
// https://www.thesitewizard.com/javascripts/change-style-sheets.shtml
var i, link_tag ;
for (i = 0, link_tag = document.getElementsByTagName("link") ;
i < link_tag.length ; i++ ) {
if ((link_tag[i].rel.indexOf( "stylesheet" ) != -1) &&
link_tag[i].title) {
link_tag[i].disabled = true ;
if (link_tag[i].title == css_title) {
link_tag[i].disabled = false ;
}
}
set_cookie( style_cookie_name, css_title,
style_cookie_duration, style_domain );
}
}
function set_style_from_cookie()
{
var css_title = get_cookie( style_cookie_name );
if (css_title.length) {
switch_style( css_title );
}
}
function set_cookie ( cookie_name, cookie_value,
lifespan_in_days, valid_domain )
{
// https://www.thesitewizard.com/javascripts/cookies.shtml
var domain_string = valid_domain ?
("; domain=" + valid_domain) : '' ;
document.cookie = cookie_name +
"=" + encodeURIComponent( cookie_value ) +
"; max-age=" + 60 * 60 *
24 * lifespan_in_days +
"; path=/" + domain_string ;
}
function get_cookie ( cookie_name )
{
// https://www.thesitewizard.com/javascripts/cookies.shtml
var cookie_string = document.cookie ;
if (cookie_string.length != 0) {
var cookie_value = cookie_string.match (
'(^|;)[\s]*' +
cookie_name +
'=([^;]*)' );
return decodeURIComponent ( cookie_value[2] ) ;
}
return '' ;
}

View File

@ -0,0 +1,61 @@
-- phpMyAdmin SQL Dump
-- version 4.6.4
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: Jun 08, 2017 at 01:12 AM
-- Server version: 5.7.14
-- PHP Version: 5.6.25
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `origins06_games`
--
CREATE DATABASE IF NOT EXISTS `origins06_games` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `origins06_games`;
-- --------------------------------------------------------
--
-- Table structure for table `games`
--
CREATE TABLE `games` (
`id` int(11) NOT NULL,
`name` text,
`map` text,
`ip` text,
`port` int(11) NOT NULL DEFAULT '53640',
`playerlimit` int(11) NOT NULL DEFAULT '12'
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Indexes for dumped tables
--
--
-- Indexes for table `games`
--
ALTER TABLE `games`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `games`
--
ALTER TABLE `games`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

View File

@ -0,0 +1,15 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.4
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Origins06_Launcher", "R06_Launcher\Origins06_Launcher.csproj", "{5B8B96E3-7332-4A5C-BEAE-4EAAE0216841}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Launcher|Any CPU = Launcher|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{5B8B96E3-7332-4A5C-BEAE-4EAAE0216841}.Launcher|Any CPU.Build.0 = Release|Any CPU
{5B8B96E3-7332-4A5C-BEAE-4EAAE0216841}.Launcher|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,73 @@
using System;
using System.Security.Cryptography;
///<summary>
/// Represents a pseudo-random number generator, a device that produces random data.
///</summary>
class CryptoRandom : RandomNumberGenerator
{
private static RandomNumberGenerator r;
///<summary>
/// Creates an instance of the default implementation of a cryptographic random number generator that can be used to generate random data.
///</summary>
public CryptoRandom()
{
r = RandomNumberGenerator.Create();
}
///<summary>
/// Fills the elements of a specified array of bytes with random numbers.
///</summary>
///<param name=”buffer”>An array of bytes to contain random numbers.</param>
public override void GetBytes(byte[] buffer)
{
r.GetBytes(buffer);
}
///
/// Fills an array of bytes with a cryptographically strong random sequence of nonzero values.
///
/// The array to fill with cryptographically strong random nonzero bytes
public override void GetNonZeroBytes(byte[] data)
{
r.GetNonZeroBytes(data);
}
///<summary>
/// Returns a random number between 0.0 and 1.0.
///</summary>
public double NextDouble()
{
byte[] b = new byte[4];
r.GetBytes(b);
return (double)BitConverter.ToUInt32(b, 0) / UInt32.MaxValue;
}
///<summary>
/// Returns a random number within the specified range.
///</summary>
///<param name=”minValue”>The inclusive lower bound of the random number returned.</param>
///<param name=”maxValue”>The exclusive upper bound of the random number returned. maxValue must be greater than or equal to minValue.</param>
public int Next(int minValue, int maxValue)
{
return (int)Math.Round(NextDouble() * (maxValue - minValue - 1)) + minValue;
}
///<summary>
/// Returns a nonnegative random number.
///</summary>
public int Next()
{
return Next(0, Int32.MaxValue);
}
///<summary>
/// Returns a nonnegative random number less than the specified maximum
///</summary>
///<param name=”maxValue”>The inclusive upper bound of the random number returned. maxValue must be greater than or equal 0</param>
public int Next(int maxValue)
{
return Next(0, maxValue);
}
}

View File

@ -0,0 +1,10 @@

public static class GlobalVars
{
public static string SharedArgs;
public static string Name = "Player";
public static int UserID = 0;
public static bool ReadyToLaunch = false;
public static string JoinLink = "http://or06.000webhostapp.com/functions.php";
public static string ClientMD5 = "BA8B6DEE0BFD27D2D716F4122F8D6C6E";
}

View File

@ -0,0 +1,107 @@
/*
* Created by SharpDevelop.
* User: BITL
* Date: 5/21/2017
* Time: 4:36 PM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
namespace Origins06_Launcher
{
partial class MainForm
{
/// <summary>
/// Designer variable used to keep track of non-visual components.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Disposes resources used by the form.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing) {
if (components != null) {
components.Dispose();
}
}
base.Dispose(disposing);
}
/// <summary>
/// This method is required for Windows Forms designer support.
/// Do not change the method contents inside the source code editor. The Forms designer might
/// not be able to load this method if it was changed manually.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.label1 = new System.Windows.Forms.Label();
this.progressBar1 = new System.Windows.Forms.ProgressBar();
this.label2 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
//
// pictureBox1
//
this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
this.pictureBox1.Location = new System.Drawing.Point(8, 27);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(260, 108);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
//
// label1
//
this.label1.Font = new System.Drawing.Font("Arial Black", 11.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.Location = new System.Drawing.Point(12, 150);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(256, 23);
this.label1.TabIndex = 1;
this.label1.Text = "Initializing....";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// progressBar1
//
this.progressBar1.Location = new System.Drawing.Point(12, 193);
this.progressBar1.Name = "progressBar1";
this.progressBar1.Size = new System.Drawing.Size(256, 23);
this.progressBar1.Style = System.Windows.Forms.ProgressBarStyle.Marquee;
this.progressBar1.TabIndex = 2;
//
// label2
//
this.label2.Location = new System.Drawing.Point(12, 173);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(256, 17);
this.label2.TabIndex = 3;
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.Control;
this.ClientSize = new System.Drawing.Size(280, 234);
this.Controls.Add(this.label2);
this.Controls.Add(this.progressBar1);
this.Controls.Add(this.label1);
this.Controls.Add(this.pictureBox1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "MainForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.TopMost = true;
this.Load += new System.EventHandler(this.MainFormLoad);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.ResumeLayout(false);
}
private System.Windows.Forms.Label label2;
private System.Windows.Forms.ProgressBar progressBar1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.PictureBox pictureBox1;
}
}

View File

@ -0,0 +1,132 @@
/*
* Created by SharpDevelop.
* User: BITL
* Date: 5/21/2017
* Time: 4:36 PM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.Win32;
using System.IO;
using System.Diagnostics;
using System.Threading;
using System.Text.RegularExpressions;
using System.Reflection;
using System.Security.Cryptography;
using System.Text;
namespace Origins06_Launcher
{
/// <summary>
/// Description of MainForm.
/// </summary>
public partial class MainForm : Form
{
public MainForm()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
//
// TODO: Add constructor code after the InitializeComponent() call.
//
}
void MainFormLoad(object sender, EventArgs e)
{
string EXEName = System.AppDomain.CurrentDomain.FriendlyName;
if (EXEName.Equals("Origins06_Installer.exe"))
{
try
{
label1.Text = "Installing URI...";
string loadstring = Environment.CurrentDirectory + Path.DirectorySeparatorChar + "Origins06_Launcher.exe";
RegisterURLProtocol("Origins06", loadstring, "Origins06 Client");
progressBar1.Style = ProgressBarStyle.Blocks;
for (int i=0; i<100; i+=10)
{
progressBar1.Value += 10;
}
label1.Text = "Installation Complete!";
label2.Text = "You can now play games. You may now close this window.";
}
catch (Exception)
{
label1.Text = "Installation Failed.";
label2.Text = "Did you launch the launcher as administrator?";
}
}
else
{
if (!File.Exists(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\PlayerConfig.txt"))
{
NameForm name = new NameForm();
name.ShowDialog();
System.Threading.Timer timer = new System.Threading.Timer(new TimerCallback(CheckIfFinished), null, 1, 0);
}
else
{
SecurityFuncs.ReadConfigValues();
GlobalVars.ReadyToLaunch = true;
System.Threading.Timer timer = new System.Threading.Timer(new TimerCallback(CheckIfFinished), null, 1, 0);
}
}
}
void StartGame()
{
//File.WriteAllText(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\arglog.txt", GlobalVars.SharedArgs);
string ExtractedArg = GlobalVars.SharedArgs.Replace("origins06://", "").Replace("origins06", "").Replace("origins", "").Replace(":", "").Replace("/", "").Replace("?", "");
//File.WriteAllText(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\arglog2.txt", ExtractedArg);
string ConvertedArg = SecurityFuncs.Base64Decode(ExtractedArg);
string[] SplitArg = ConvertedArg.Split('|');
string ip = SecurityFuncs.Base64Decode(SplitArg[0]);
bool IsValid = SecurityFuncs.checkClientMD5();
if (IsValid == true)
{
//temp domain
string luafile = GlobalVars.JoinLink;
string exefile = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\Origins06_Client.exe";
string quote = "\"";
string args = "-script " + quote + "dofile('" + luafile + "'); _G.CSR06Connect(" + GlobalVars.UserID + ",'" + ip + "'," + SplitArg[1] + ",'" + GlobalVars.Name + "'," + SecurityFuncs.GeneratePlayerSkinColor() + "," + SecurityFuncs.GeneratePlayerLegColor() + "," + SecurityFuncs.GeneratePlayerTorsoColor() + ");" + quote;
Process.Start(exefile, args);
this.Close();
}
else
{
label1.Text = "Cannot launch client.";
label2.Text = "The client has been detected as modified.";
}
}
private void CheckIfFinished(object state)
{
if (GlobalVars.ReadyToLaunch == false)
{
System.Threading.Timer timer = new System.Threading.Timer(new TimerCallback(CheckIfFinished), null, 1, 0);
}
else
{
label1.Text = "Launching Game...";
label2.Text = "Your game is now loading...";
StartGame();
}
}
private static void RegisterURLProtocol(string protocolName, string applicationPath, string description)
{
RegistryKey subKey = Registry.ClassesRoot.CreateSubKey(protocolName);
subKey.SetValue((string) null, (object) description);
subKey.SetValue("URL Protocol", (object) string.Empty);
Registry.ClassesRoot.CreateSubKey(protocolName + "\\Shell");
Registry.ClassesRoot.CreateSubKey(protocolName + "\\Shell\\open");
Registry.ClassesRoot.CreateSubKey(protocolName + "\\Shell\\open\\command").SetValue((string) null, (object) ("\"" + applicationPath + "\" \"%1\""));
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,93 @@
/*
* Created by SharpDevelop.
* User: BITL
* Date: 6/4/2017
* Time: 5:24 PM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
namespace Origins06_Launcher
{
partial class NameForm
{
/// <summary>
/// Designer variable used to keep track of non-visual components.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Disposes resources used by the form.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing) {
if (components != null) {
components.Dispose();
}
}
base.Dispose(disposing);
}
/// <summary>
/// This method is required for Windows Forms designer support.
/// Do not change the method contents inside the source code editor. The Forms designer might
/// not be able to load this method if it was changed manually.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(NameForm));
this.textBox1 = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(12, 28);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(260, 20);
this.textBox1.TabIndex = 0;
this.textBox1.TextChanged += new System.EventHandler(this.TextBox1TextChanged);
//
// label1
//
this.label1.Location = new System.Drawing.Point(124, 9);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(37, 16);
this.label1.TabIndex = 1;
this.label1.Text = "Name";
this.label1.TextAlign = System.Drawing.ContentAlignment.TopCenter;
//
// button1
//
this.button1.Location = new System.Drawing.Point(106, 54);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 2;
this.button1.Text = "Launch!";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.Button1Click);
//
// NameForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.Control;
this.ClientSize = new System.Drawing.Size(284, 85);
this.Controls.Add(this.button1);
this.Controls.Add(this.label1);
this.Controls.Add(this.textBox1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "NameForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Load += new System.EventHandler(this.NameFormLoad);
this.ResumeLayout(false);
this.PerformLayout();
}
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox textBox1;
}
}

View File

@ -0,0 +1,66 @@
/*
* Created by SharpDevelop.
* User: BITL
* Date: 6/4/2017
* Time: 5:24 PM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Drawing;
using System.Windows.Forms;
using System.IO;
using System.Reflection;
namespace Origins06_Launcher
{
/// <summary>
/// Description of NameForm.
/// </summary>
public partial class NameForm : Form
{
public NameForm()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
//
// TODO: Add constructor code after the InitializeComponent() call.
//
}
void TextBox1TextChanged(object sender, EventArgs e)
{
GlobalVars.Name = textBox1.Text;
}
void NameFormLoad(object sender, EventArgs e)
{
if (!File.Exists(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\PlayerConfig.txt"))
{
SecurityFuncs.GeneratePlayerID();
SecurityFuncs.WriteConfigValues();
SecurityFuncs.ReadConfigValues();
}
else
{
SecurityFuncs.ReadConfigValues();
}
textBox1.Text = GlobalVars.Name;
}
void Button1Click(object sender, EventArgs e)
{
this.Close();
}
protected override void OnFormClosing(FormClosingEventArgs e)
{
base.OnFormClosing(e);
SecurityFuncs.WriteConfigValues();
GlobalVars.ReadyToLaunch = true;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
<OpenCoverSettings />

View File

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<PropertyGroup>
<ProjectGuid>{5B8B96E3-7332-4A5C-BEAE-4EAAE0216841}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<OutputType>WinExe</OutputType>
<RootNamespace>Origins06_Launcher</RootNamespace>
<AssemblyName>Origins06_Launcher</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<AppDesignerFolder>Properties</AppDesignerFolder>
<ApplicationIcon>Resources\Origins06_logo.ico</ApplicationIcon>
<NoWin32Manifest>False</NoWin32Manifest>
<SignAssembly>False</SignAssembly>
<DelaySign>False</DelaySign>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
<NoStdLib>False</NoStdLib>
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<WarningLevel>4</WarningLevel>
<RunCodeAnalysis>False</RunCodeAnalysis>
<SourceAnalysisOverrideSettingsFile>C:\Users\BITL\AppData\Roaming\ICSharpCode/SharpDevelop4\Settings.SourceAnalysis</SourceAnalysisOverrideSettingsFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'AnyCPU' ">
<PlatformTarget>x86</PlatformTarget>
<BaseAddress>4194304</BaseAddress>
<RegisterForComInterop>False</RegisterForComInterop>
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
<FileAlignment>4096</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<OutputPath>bin\Debug\</OutputPath>
<DebugSymbols>True</DebugSymbols>
<DebugType>Full</DebugType>
<Optimize>False</Optimize>
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
<DefineConstants>DEBUG;TRACE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<OutputPath>bin\Release\</OutputPath>
<DebugSymbols>False</DebugSymbols>
<DebugType>None</DebugType>
<Optimize>False</Optimize>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
<DefineConstants>TRACE</DefineConstants>
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>
<StartAction>Project</StartAction>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="CryptoRandom.cs" />
<Compile Include="GlobalVars.cs" />
<Compile Include="MainForm.cs" />
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="NameForm.cs" />
<Compile Include="NameForm.Designer.cs">
<DependentUpon>NameForm.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SecurityFuncs.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="NameForm.resx">
<DependentUpon>NameForm.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@ -0,0 +1,43 @@
/*
* Created by SharpDevelop.
* User: BITL
* Date: 5/21/2017
* Time: 4:36 PM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Windows.Forms;
namespace Origins06_Launcher
{
/// <summary>
/// Class with program entry point.
/// </summary>
internal sealed class Program
{
static string ProcessInput(string s)
{
return s;
}
/// <summary>
/// Program entry point.
/// </summary>
[STAThread]
private static void Main(string[] args)
{
string EXEName = System.AppDomain.CurrentDomain.FriendlyName;
if (EXEName.Equals("Origins06_Launcher.exe"))
{
foreach (string s in args)
{
GlobalVars.SharedArgs = ProcessInput(s);
}
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
}

View File

@ -0,0 +1,31 @@
#region Using directives
using System;
using System.Reflection;
using System.Runtime.InteropServices;
#endregion
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Origins06_Launcher")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Origins06_Launcher")]
[assembly: AssemblyCopyright("Copyright 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// This sets the default COM visibility of types in the assembly to invisible.
// If you need to expose a type to COM, use [ComVisible(true)] on that type.
[assembly: ComVisible(false)]
// The assembly version has following format :
//
// Major.Minor.Build.Revision
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.*")]

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -0,0 +1,153 @@
/*
* Created by SharpDevelop.
* User: BITL
* Date: 6/6/2017
* Time: 11:12 AM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.IO;
using System.Diagnostics;
using System.Threading;
using System.Reflection;
using System.Security.Cryptography;
using System.Text;
namespace Origins06_Launcher
{
/// <summary>
/// Description of SecurityFuncs.
/// </summary>
public class SecurityFuncs
{
public SecurityFuncs()
{
}
public static void WriteConfigValues()
{
string[] lines = {
GlobalVars.Name.ToString(),
GlobalVars.UserID.ToString()
};
File.WriteAllText(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\PlayerConfig.txt", Base64Encode(string.Join("|",lines)));
}
public static void ReadConfigValues()
{
string line1;
using(StreamReader reader = new StreamReader(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\PlayerConfig.txt"))
{
line1 = reader.ReadLine();
}
string ConvertedLine = Base64Decode(line1);
string[] result = ConvertedLine.Split('|');
GlobalVars.Name = result[0];
GlobalVars.UserID = Convert.ToInt32(result[1]);
if (GlobalVars.UserID == 0)
{
GeneratePlayerID();
}
}
public static void GeneratePlayerID()
{
CryptoRandom random = new CryptoRandom();
int randomID = 0;
int randIDmode = random.Next(0,7);
if (randIDmode == 0)
{
randomID = random.Next(0, 99);
}
else if (randIDmode == 1)
{
randomID = random.Next(0, 999);
}
else if (randIDmode == 2)
{
randomID = random.Next(0, 9999);
}
else if (randIDmode == 3)
{
randomID = random.Next(0, 99999);
}
else if (randIDmode == 4)
{
randomID = random.Next(0, 999999);
}
else if (randIDmode == 5)
{
randomID = random.Next(0, 9999999);
}
else if (randIDmode == 6)
{
randomID = random.Next(0, 99999999);
}
else if (randIDmode == 7)
{
randomID = random.Next();
}
//2147483647 is max id.
GlobalVars.UserID = randomID;
}
public static int GeneratePlayerSkinColor()
{
CryptoRandom random = new CryptoRandom();
int randmode = random.Next(1,6);
return randmode;
}
public static int GeneratePlayerLegColor()
{
CryptoRandom random = new CryptoRandom();
int randmode = random.Next(1,5);
return randmode;
}
public static int GeneratePlayerTorsoColor()
{
CryptoRandom random = new CryptoRandom();
int randmode = random.Next(1,8);
return randmode;
}
public static string Base64Decode(string base64EncodedData)
{
var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData);
return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
}
public static string Base64Encode(string plainText)
{
var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);
return System.Convert.ToBase64String(plainTextBytes);
}
public static bool checkClientMD5()
{
using (var md5 = MD5.Create())
{
using (var stream = File.OpenRead(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\Origins06_Client.exe"))
{
byte[] hash = md5.ComputeHash(stream);
string clientMD5 = BitConverter.ToString(hash).Replace("-", "");
if (clientMD5.Equals(GlobalVars.ClientMD5))
{
return true;
}
else
{
return false;
}
}
}
}
}
}

View File

@ -0,0 +1,6 @@
C:\Users\BITL\Documents\SharpDevelop Projects\R06_Launcher\R06_Launcher\obj\Release\Origins06_Launcher.csprojResolveAssemblyReference.cache
C:\Users\BITL\Documents\SharpDevelop Projects\R06_Launcher\R06_Launcher\obj\Release\Origins06_Launcher.MainForm.resources
C:\Users\BITL\Documents\SharpDevelop Projects\R06_Launcher\R06_Launcher\obj\Release\Origins06_Launcher.NameForm.resources
C:\Users\BITL\Documents\SharpDevelop Projects\R06_Launcher\R06_Launcher\obj\Release\Origins06_Launcher.csproj.GenerateResource.Cache
C:\Users\BITL\Documents\SharpDevelop Projects\R06_Launcher\R06_Launcher\bin\Release\Origins06_Launcher.exe
C:\Users\BITL\Documents\SharpDevelop Projects\R06_Launcher\R06_Launcher\obj\Release\Origins06_Launcher.exe

688
Origins06/character.rbxm Normal file
View File

@ -0,0 +1,688 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.roblox.com/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Model" referent="RBX0">
<Properties>
<token name="Controller">7</token>
<bool name="ControllerFlagShown">true</bool>
<CoordinateFrame name="ModelInPrimary">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">erik.cassel</string>
<Ref name="PrimaryPart">RBX1</Ref>
<bool name="archivable">true</bool>
</Properties>
<Item class="Part" referent="RBX1">
<Properties>
<bool name="Anchored">false</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">24</int>
<CoordinateFrame name="CFrame">
<X>0</X>
<Y>4.5</Y>
<Z>-0.5</Z>
<R00>-1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>-1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<token name="Controller">0</token>
<bool name="ControllerFlagShown">true</bool>
<bool name="DraggingV1">false</bool>
<float name="Elasticity">0.5</float>
<token name="FormFactor">0</token>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<string name="Name">Head</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">0</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<bool name="archivable">true</bool>
<token name="shape">1</token>
<Vector3 name="size">
<X>2</X>
<Y>1</Y>
<Z>1</Z>
</Vector3>
</Properties>
<Item class="SpecialMesh" referent="RBX2">
<Properties>
<Content name="MeshId"><null></null></Content>
<token name="MeshType">0</token>
<string name="Name">Mesh</string>
<Vector3 name="Scale">
<X>1.25</X>
<Y>1.25</Y>
<Z>1.25</Z>
</Vector3>
<Content name="TextureId"><null></null></Content>
<Vector3 name="VertexColor">
<X>1</X>
<Y>1</Y>
<Z>1</Z>
</Vector3>
<bool name="archivable">true</bool>
</Properties>
</Item>
<Item class="Texture" referent="RBX3">
<Properties>
<token name="Face">5</token>
<string name="Name">face</string>
<float name="Shiny">20</float>
<float name="Specular">0</float>
<Content name="Texture"><url>rbxasset://textures\face.png</url></Content>
<bool name="archivable">true</bool>
</Properties>
</Item>
<Item class="Weld" referent="RBX4">
<Properties>
<CoordinateFrame name="C0">
<X>0</X>
<Y>0.5</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<CoordinateFrame name="C1">
<X>0</X>
<Y>-0.200000003</Y>
<Z>0.150000006</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">HeadWeld</string>
<Ref name="Part0">RBX1</Ref>
<Ref name="Part1">null</Ref>
<bool name="archivable">true</bool>
</Properties>
</Item>
<Item class="Weld" referent="RBX5">
<Properties>
<CoordinateFrame name="C0">
<X>0</X>
<Y>0.5</Y>
<Z>0</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<CoordinateFrame name="C1">
<X>0</X>
<Y>-0.200000003</Y>
<Z>0.150000006</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<string name="Name">HeadWeld</string>
<Ref name="Part0">RBX1</Ref>
<Ref name="Part1">null</Ref>
<bool name="archivable">true</bool>
</Properties>
</Item>
</Item>
<Item class="Part" referent="RBX6">
<Properties>
<bool name="Anchored">false</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">23</int>
<CoordinateFrame name="CFrame">
<X>0</X>
<Y>3</Y>
<Z>-0.5</Z>
<R00>-1</R00>
<R01>0</R01>
<R02>-0</R02>
<R10>-0</R10>
<R11>1</R11>
<R12>-0</R12>
<R20>-0</R20>
<R21>0</R21>
<R22>-1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<token name="Controller">0</token>
<bool name="ControllerFlagShown">true</bool>
<bool name="DraggingV1">false</bool>
<float name="Elasticity">0.5</float>
<token name="FormFactor">0</token>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">0</float>
<float name="LeftParamB">0</float>
<token name="LeftSurface">2</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<string name="Name">Torso</string>
<float name="Reflectance">0</float>
<float name="RightParamA">0</float>
<float name="RightParamB">0</float>
<token name="RightSurface">2</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<bool name="archivable">true</bool>
<token name="shape">1</token>
<Vector3 name="size">
<X>2</X>
<Y>2</Y>
<Z>1</Z>
</Vector3>
</Properties>
<Item class="Texture" referent="RBX7">
<Properties>
<token name="Face">5</token>
<string name="Name">roblox</string>
<float name="Shiny">20</float>
<float name="Specular">0</float>
<Content name="Texture"><url>rbxasset://textures\tshirt.png</url></Content>
<bool name="archivable">true</bool>
</Properties>
</Item>
</Item>
<Item class="Part" referent="RBX8">
<Properties>
<bool name="Anchored">false</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">24</int>
<CoordinateFrame name="CFrame">
<X>1.5</X>
<Y>3</Y>
<Z>-0.5</Z>
<R00>-1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>-1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<token name="Controller">0</token>
<bool name="ControllerFlagShown">true</bool>
<bool name="DraggingV1">false</bool>
<float name="Elasticity">0.5</float>
<token name="FormFactor">0</token>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<string name="Name">Left Arm</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<bool name="archivable">true</bool>
<token name="shape">1</token>
<Vector3 name="size">
<X>1</X>
<Y>2</Y>
<Z>1</Z>
</Vector3>
</Properties>
<Item class="Script" referent="RBX9">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<string name="Source">while true do--while its told its true it will happen
script.Parent.CanCollide=true--script.Parent.(whatever) meens that its talking about the script effecting the
--parent, which is the brick, changing whatever setting in the brick its told too change. and the true/false is
--setting the setting to something else useing whatever unit it uses.
wait(0)--this is how long it will wait until going to the next piece of the script below it or will restart it.
script.Parent.CanCollide = false
end</string>
<bool name="archivable">true</bool>
</Properties>
</Item>
</Item>
<Item class="Part" referent="RBX10">
<Properties>
<bool name="Anchored">false</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">4</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">24</int>
<CoordinateFrame name="CFrame">
<X>-1.5</X>
<Y>3</Y>
<Z>-0.5</Z>
<R00>-1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>-1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<token name="Controller">0</token>
<bool name="ControllerFlagShown">true</bool>
<bool name="DraggingV1">false</bool>
<float name="Elasticity">0.5</float>
<token name="FormFactor">0</token>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<string name="Name">Right Arm</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<bool name="archivable">true</bool>
<token name="shape">1</token>
<Vector3 name="size">
<X>1</X>
<Y>2</Y>
<Z>1</Z>
</Vector3>
</Properties>
<Item class="Script" referent="RBX11">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<string name="Source">while true do--while its told its true it will happen
script.Parent.CanCollide=true--script.Parent.(whatever) meens that its talking about the script effecting the
--parent, which is the brick, changing whatever setting in the brick its told too change. and the true/false is
--setting the setting to something else useing whatever unit it uses.
wait(0)--this is how long it will wait until going to the next piece of the script below it or will restart it.
script.Parent.CanCollide = false
end</string>
<bool name="archivable">true</bool>
</Properties>
</Item>
</Item>
<Item class="Part" referent="RBX12">
<Properties>
<bool name="Anchored">false</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">0</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">119</int>
<CoordinateFrame name="CFrame">
<X>0.5</X>
<Y>1</Y>
<Z>-0.5</Z>
<R00>-1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>-1</R22>
</CoordinateFrame>
<bool name="CanCollide">false</bool>
<token name="Controller">0</token>
<bool name="ControllerFlagShown">true</bool>
<bool name="DraggingV1">false</bool>
<float name="Elasticity">0.5</float>
<token name="FormFactor">0</token>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<string name="Name">Left Leg</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<bool name="archivable">true</bool>
<token name="shape">1</token>
<Vector3 name="size">
<X>1</X>
<Y>2</Y>
<Z>1</Z>
</Vector3>
</Properties>
<Item class="Script" referent="RBX13">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<string name="Source">while true do--while its told its true it will happen
script.Parent.CanCollide=true--script.Parent.(whatever) meens that its talking about the script effecting the
--parent, which is the brick, changing whatever setting in the brick its told too change. and the true/false is
--setting the setting to something else useing whatever unit it uses .
wait(0)--this is how long it will wait until going to the next piece of the script below it or will restart it.
script.Parent.CanCollide=false--script.Parent.(whatever) meens that its talking about the script effecting the
--parent, which is the brick, changing whatever setting in the brick its told too change. and the true/false is
--setting the setting to something else useing whatever unit it uses.
wait(0)--this is how long it will wait until going to the next piece of the script below it or will restart it.
end
while true do--while its told its true it will happen
script.Parent.CanCollide=true--script.Parent.(whatever) meens that its talking about the script effecting the
--parent, which is the brick, changing whatever setting in the brick its told too change. and the true/false is
--setting the setting to something else useing whatever unit it uses .
wait(0)--this is how long it will wait until going to the next piece of the script below it or will restart it.
script.Parent.CanCollide=false--script.Parent.(whatever) meens that its talking about the script effecting the
--parent, which is the brick, changing whatever setting in the brick its told too change. and the true/false is
--setting the setting to something else useing whatever unit it uses.
wait(0)--this is how long it will wait until going to the next piece of the script below it or will restart it.
end
</string>
<bool name="archivable">true</bool>
</Properties>
</Item>
</Item>
<Item class="Part" referent="RBX14">
<Properties>
<bool name="Anchored">false</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">0</token>
<token name="BottomSurfaceInput">0</token>
<int name="BrickColor">119</int>
<CoordinateFrame name="CFrame">
<X>-0.5</X>
<Y>1</Y>
<Z>-0.5</Z>
<R00>-1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>-1</R22>
</CoordinateFrame>
<bool name="CanCollide">false</bool>
<token name="Controller">0</token>
<bool name="ControllerFlagShown">true</bool>
<bool name="DraggingV1">false</bool>
<float name="Elasticity">0.5</float>
<token name="FormFactor">0</token>
<float name="Friction">0.300000012</float>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">true</bool>
<string name="Name">Right Leg</string>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">3</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<bool name="archivable">true</bool>
<token name="shape">1</token>
<Vector3 name="size">
<X>1</X>
<Y>2</Y>
<Z>1</Z>
</Vector3>
</Properties>
<Item class="Script" referent="RBX15">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Script</string>
<string name="Source">while true do--while its told its true it will happen
script.Parent.CanCollide=true--script.Parent.(whatever) meens that its talking about the script effecting the
--parent, which is the brick, changing whatever setting in the brick its told too change. and the true/false is
--setting the setting to something else useing whatever unit it uses .
wait(0)--this is how long it will wait until going to the next piece of the script below it or will restart it.
script.Parent.CanCollide=false--script.Parent.(whatever) meens that its talking about the script effecting the
--parent, which is the brick, changing whatever setting in the brick its told too change. and the true/false is
--setting the setting to something else useing whatever unit it uses.
wait(0)--this is how long it will wait until going to the next piece of the script below it or will restart it.
end
while true do--while its told its true it will happen
script.Parent.CanCollide=true--script.Parent.(whatever) meens that its talking about the script effecting the
--parent, which is the brick, changing whatever setting in the brick its told too change. and the true/false is
--setting the setting to something else useing whatever unit it uses .
wait(0)--this is how long it will wait until going to the next piece of the script below it or will restart it.
script.Parent.CanCollide=false--script.Parent.(whatever) meens that its talking about the script effecting the
--parent, which is the brick, changing whatever setting in the brick its told too change. and the true/false is
--setting the setting to something else useing whatever unit it uses.
wait(0)--this is how long it will wait until going to the next piece of the script below it or will restart it.
end
</string>
<bool name="archivable">true</bool>
</Properties>
</Item>
</Item>
<Item class="Humanoid" referent="RBX16">
<Properties>
<float name="Health">100</float>
<bool name="Jump">false</bool>
<float name="MaxHealth">100</float>
<string name="Name">Humanoid</string>
<bool name="Sit">false</bool>
<bool name="Strafe">false</bool>
<Vector3 name="TargetPoint">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<Vector3 name="WalkDirection">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<float name="WalkRotationalVelocity">0</float>
<Ref name="WalkToPart">null</Ref>
<Vector3 name="WalkToPoint">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<bool name="archivable">true</bool>
</Properties>
</Item>
</Item>
</roblox>

BIN
Origins06/comics.fnt Normal file

Binary file not shown.

View File

@ -0,0 +1,16 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.roblox.com/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Script" referent="RBX0">
<Properties>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<string name="Name">Animate</string>
<string name="Source">-- Now with exciting TeamColors HACK!
</string>
<bool name="archivable">true</bool>
</Properties>
</Item>
</roblox>

BIN
Origins06/tshirt.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -0,0 +1,18 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.4
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RBX2008Launcher", "RBX2008Launcher\RBX2008Launcher.csproj", "{F92FFBED-2767-4676-9711-BB89CDA58A43}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F92FFBED-2767-4676-9711-BB89CDA58A43}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F92FFBED-2767-4676-9711-BB89CDA58A43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F92FFBED-2767-4676-9711-BB89CDA58A43}.Release|Any CPU.Build.0 = Release|Any CPU
{F92FFBED-2767-4676-9711-BB89CDA58A43}.Release|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,7 @@
public static class GlobalVars
{
public static string ClientDir = "";
public static string Map = "Baseplate.rbxl";
public static string PlayerName = "Player";
public static bool CloseOnLaunch = true;
}

View File

@ -0,0 +1,161 @@
/*
* Created by SharpDevelop.
* User: BITL-Gaming
* Date: 10/7/2016
* Time: 3:01 PM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
namespace RBXLegacyLauncher
{
partial class MainForm
{
/// <summary>
/// Designer variable used to keep track of non-visual components.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Disposes resources used by the form.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing) {
if (components != null) {
components.Dispose();
}
}
base.Dispose(disposing);
}
/// <summary>
/// This method is required for Windows Forms designer support.
/// Do not change the method contents inside the source code editor. The Forms designer might
/// not be able to load this method if it was changed manually.
/// </summary>
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.listBox1 = new System.Windows.Forms.ListBox();
this.checkBox1 = new System.Windows.Forms.CheckBox();
this.button3 = new System.Windows.Forms.Button();
this.button5 = new System.Windows.Forms.Button();
this.textBox2 = new System.Windows.Forms.TextBox();
this.label15 = new System.Windows.Forms.Label();
this.button2 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// label1
//
this.label1.Location = new System.Drawing.Point(100, 57);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(70, 18);
this.label1.TabIndex = 1;
this.label1.Text = "Map List";
this.label1.TextAlign = System.Drawing.ContentAlignment.TopCenter;
//
// listBox1
//
this.listBox1.FormattingEnabled = true;
this.listBox1.Location = new System.Drawing.Point(12, 73);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(264, 134);
this.listBox1.TabIndex = 0;
this.listBox1.SelectedIndexChanged += new System.EventHandler(this.ListBox1SelectedIndexChanged);
//
// checkBox1
//
this.checkBox1.Checked = true;
this.checkBox1.CheckState = System.Windows.Forms.CheckState.Checked;
this.checkBox1.Location = new System.Drawing.Point(12, 35);
this.checkBox1.Name = "checkBox1";
this.checkBox1.Size = new System.Drawing.Size(158, 19);
this.checkBox1.TabIndex = 5;
this.checkBox1.Text = "Close Launcher on Launch";
this.checkBox1.UseCompatibleTextRendering = true;
this.checkBox1.UseVisualStyleBackColor = true;
this.checkBox1.CheckedChanged += new System.EventHandler(this.CheckBox1CheckedChanged);
//
// button3
//
this.button3.Location = new System.Drawing.Point(12, 240);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(264, 24);
this.button3.TabIndex = 6;
this.button3.Text = "Launch ROBLOX Studio";
this.button3.UseVisualStyleBackColor = true;
this.button3.Click += new System.EventHandler(this.Button3Click);
//
// button5
//
this.button5.Location = new System.Drawing.Point(192, 35);
this.button5.Name = "button5";
this.button5.Size = new System.Drawing.Size(84, 32);
this.button5.TabIndex = 10;
this.button5.Text = "Save Config";
this.button5.UseVisualStyleBackColor = true;
this.button5.Click += new System.EventHandler(this.Button5Click);
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(96, 9);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(180, 20);
this.textBox2.TabIndex = 11;
this.textBox2.Text = "Player";
this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.textBox2.TextChanged += new System.EventHandler(this.TextBox2TextChanged);
//
// label15
//
this.label15.Location = new System.Drawing.Point(12, 12);
this.label15.Name = "label15";
this.label15.Size = new System.Drawing.Size(87, 15);
this.label15.TabIndex = 12;
this.label15.Text = "PLAYER NAME:";
//
// button2
//
this.button2.Location = new System.Drawing.Point(12, 210);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(264, 24);
this.button2.TabIndex = 2;
this.button2.Text = "LAUNCH GAME";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.Button2Click);
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.ControlLightLight;
this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
this.ClientSize = new System.Drawing.Size(288, 275);
this.Controls.Add(this.label15);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.button5);
this.Controls.Add(this.button3);
this.Controls.Add(this.checkBox1);
this.Controls.Add(this.button2);
this.Controls.Add(this.listBox1);
this.Controls.Add(this.label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.MaximizeBox = false;
this.Name = "MainForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "RBX2008 Launcher";
this.Load += new System.EventHandler(this.MainFormLoad);
this.ResumeLayout(false);
this.PerformLayout();
}
private System.Windows.Forms.Label label15;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.Button button5;
private System.Windows.Forms.Button button3;
private System.Windows.Forms.CheckBox checkBox1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.ListBox listBox1;
private System.Windows.Forms.Label label1;
}
}

View File

@ -0,0 +1,143 @@
/*
* Created by SharpDevelop.
* User: BITL-Gaming
* Date: 10/7/2016
* Time: 3:01 PM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Threading;
namespace RBXLegacyLauncher
{
/// <summary>
/// Description of MainForm.
/// </summary>
public partial class MainForm : Form
{
public MainForm()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
//
// TODO: Add constructor code after the InitializeComponent() call.
//
}
void Button2Click(object sender, EventArgs e)
{
string luafile = GlobalVars.ClientDir + @"\\game.lua";
string rbxexe = GlobalVars.ClientDir + @"\\RobloxApp.exe";
string mapfile = GlobalVars.ClientDir + @"\\maps\\" + GlobalVars.Map;
string settingsluafile = GlobalVars.ClientDir + @"\\game.lua";
string quote = "\"";
string args = "";
args = "-script " + quote + "dofile('" + settingsluafile + "'); game:Load('" + mapfile + "'); wait(0.001); dofile('" + luafile + "'); _G.Play('" + GlobalVars.PlayerName + "');" + quote;
Process.Start(rbxexe, args);
WriteConfigValues();
if (GlobalVars.CloseOnLaunch == true)
{
this.Close();
}
}
void MainFormLoad(object sender, EventArgs e)
{
if (!File.Exists("config.txt"))
{
WriteConfigValues();
}
GlobalVars.ClientDir = Path.Combine(Environment.CurrentDirectory, @"client");
GlobalVars.ClientDir = GlobalVars.ClientDir.Replace(@"\",@"\\");
GlobalVars.Map = "Baseplate.rbxl";
string mapdir = GlobalVars.ClientDir + @"\\maps\\";
DirectoryInfo dinfo = new DirectoryInfo(mapdir);
FileInfo[] Files = dinfo.GetFiles("*.rbxl");
foreach( FileInfo file in Files )
{
listBox1.Items.Add(file.Name);
}
listBox1.SelectedItem = GlobalVars.Map;
ReadConfigValues();
}
void ReadConfigValues()
{
string line1, line2;
using(StreamReader reader = new StreamReader("config.txt"))
{
line1 = reader.ReadLine();
line2 = reader.ReadLine();
}
bool bline1 = Convert.ToBoolean(line1);
GlobalVars.CloseOnLaunch = bline1;
GlobalVars.PlayerName = line2;
if (GlobalVars.CloseOnLaunch == true)
{
checkBox1.Checked = true;
}
else if (GlobalVars.CloseOnLaunch == false)
{
checkBox1.Checked = false;
}
textBox2.Text = GlobalVars.PlayerName;
}
void WriteConfigValues()
{
string[] lines = { GlobalVars.CloseOnLaunch.ToString(), GlobalVars.PlayerName.ToString() };
File.WriteAllLines("config.txt", lines);
}
void ListBox1SelectedIndexChanged(object sender, EventArgs e)
{
GlobalVars.Map = listBox1.SelectedItem.ToString();
}
void CheckBox1CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked == true)
{
GlobalVars.CloseOnLaunch = true;
}
else if (checkBox1.Checked == false)
{
GlobalVars.CloseOnLaunch = false;
}
}
void Button5Click(object sender, EventArgs e)
{
WriteConfigValues();
}
void TextBox2TextChanged(object sender, EventArgs e)
{
GlobalVars.PlayerName = textBox2.Text;
}
void Button3Click(object sender, EventArgs e)
{
string rbxexe = GlobalVars.ClientDir + @"\\RobloxApp.exe";
Process.Start(rbxexe);
WriteConfigValues();
if (GlobalVars.CloseOnLaunch == true)
{
this.Close();
}
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,31 @@
/*
* Created by SharpDevelop.
* User: BITL-Gaming
* Date: 10/7/2016
* Time: 3:01 PM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Windows.Forms;
namespace RBXLegacyLauncher
{
/// <summary>
/// Class with program entry point.
/// </summary>
internal sealed class Program
{
/// <summary>
/// Program entry point.
/// </summary>
[STAThread]
private static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
}

View File

@ -0,0 +1,31 @@
#region Using directives
using System;
using System.Reflection;
using System.Runtime.InteropServices;
#endregion
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("RBXLegacyLauncher")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("RBXLegacyLauncher")]
[assembly: AssemblyCopyright("Copyright 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// This sets the default COM visibility of types in the assembly to invisible.
// If you need to expose a type to COM, use [ComVisible(true)] on that type.
[assembly: ComVisible(false)]
// The assembly version has following format :
//
// Major.Minor.Build.Revision
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.*")]

View File

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<PropertyGroup>
<ProjectGuid>{F92FFBED-2767-4676-9711-BB89CDA58A43}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<OutputType>WinExe</OutputType>
<RootNamespace>RBX2008Launcher</RootNamespace>
<AssemblyName>RBX2008Launcher</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
<AppDesignerFolder>Properties</AppDesignerFolder>
<ApplicationIcon>Resources\RBXLegacyIcon.ico</ApplicationIcon>
<NoWin32Manifest>False</NoWin32Manifest>
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
<NoStdLib>False</NoStdLib>
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'AnyCPU' ">
<PlatformTarget>x86</PlatformTarget>
<BaseAddress>4194304</BaseAddress>
<RegisterForComInterop>False</RegisterForComInterop>
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
<FileAlignment>4096</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<OutputPath>bin\Debug\</OutputPath>
<DebugSymbols>True</DebugSymbols>
<DebugType>Full</DebugType>
<Optimize>False</Optimize>
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
<DefineConstants>DEBUG;TRACE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<OutputPath>bin\Release\</OutputPath>
<DebugSymbols>False</DebugSymbols>
<DebugType>None</DebugType>
<Optimize>True</Optimize>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
<DefineConstants>TRACE</DefineConstants>
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="GlobalVars.cs" />
<Compile Include="MainForm.cs" />
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>

15
RBX2008/game.lua Normal file
View File

@ -0,0 +1,15 @@
function Play(PlayerName)
local plr = game.Players:CreateLocalPlayer(0);
plr.Name = PlayerName;
game:GetService("Visit");
game:GetService("RunService"):run();
plr:LoadCharacter();
while true do wait(0.001)
if plr.Character.Humanoid.Health == 0 then
wait(5);
plr:LoadCharacter();
end
end
end
_G.Play=Play;

1
RBX2008/settings.lua Normal file
View File

@ -0,0 +1 @@
settings().Rendering.frameRateManager = 2;

View File

@ -0,0 +1,18 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.4
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RBXPri2Launcher", "RBXPri2Launcher\RBXPri2Launcher.csproj", "{F92FFBED-2767-4676-9711-BB89CDA58A43}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F92FFBED-2767-4676-9711-BB89CDA58A43}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F92FFBED-2767-4676-9711-BB89CDA58A43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F92FFBED-2767-4676-9711-BB89CDA58A43}.Release|Any CPU.Build.0 = Release|Any CPU
{F92FFBED-2767-4676-9711-BB89CDA58A43}.Release|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,204 @@
/*
* Created by SharpDevelop.
* User: BITL-Gaming
* Date: 11/28/2016
* Time: 7:55 AM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
namespace RBXPri2Launcher
{
partial class ClientinfoEditor
{
/// <summary>
/// Designer variable used to keep track of non-visual components.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Disposes resources used by the form.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing) {
if (components != null) {
components.Dispose();
}
}
base.Dispose(disposing);
}
/// <summary>
/// This method is required for Windows Forms designer support.
/// Do not change the method contents inside the source code editor. The Forms designer might
/// not be able to load this method if it was changed manually.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ClientinfoEditor));
this.checkBox1 = new System.Windows.Forms.CheckBox();
this.checkBox2 = new System.Windows.Forms.CheckBox();
this.textBox1 = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.checkBox5 = new System.Windows.Forms.CheckBox();
this.button3 = new System.Windows.Forms.Button();
this.checkBox3 = new System.Windows.Forms.CheckBox();
this.label3 = new System.Windows.Forms.Label();
this.textBox2 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// checkBox1
//
this.checkBox1.Location = new System.Drawing.Point(9, 34);
this.checkBox1.Name = "checkBox1";
this.checkBox1.Size = new System.Drawing.Size(307, 24);
this.checkBox1.TabIndex = 0;
this.checkBox1.Text = "Allows players to set custom names";
this.checkBox1.UseVisualStyleBackColor = true;
this.checkBox1.CheckedChanged += new System.EventHandler(this.CheckBox1CheckedChanged);
//
// checkBox2
//
this.checkBox2.Location = new System.Drawing.Point(9, 53);
this.checkBox2.Name = "checkBox2";
this.checkBox2.Size = new System.Drawing.Size(307, 20);
this.checkBox2.TabIndex = 1;
this.checkBox2.Text = "Allows the launcher to set custom IDs";
this.checkBox2.UseVisualStyleBackColor = true;
this.checkBox2.CheckedChanged += new System.EventHandler(this.CheckBox2CheckedChanged);
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(8, 176);
this.textBox1.Multiline = true;
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(310, 155);
this.textBox1.TabIndex = 4;
this.textBox1.TextChanged += new System.EventHandler(this.TextBox1TextChanged);
//
// label1
//
this.label1.Location = new System.Drawing.Point(8, 157);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(92, 16);
this.label1.TabIndex = 5;
this.label1.Text = "Client Description";
//
// label2
//
this.label2.Location = new System.Drawing.Point(8, 9);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(307, 30);
this.label2.TabIndex = 6;
this.label2.Text = "Check the check boxes corresponding to what your client supports.";
//
// button1
//
this.button1.Location = new System.Drawing.Point(166, 366);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(154, 30);
this.button1.TabIndex = 7;
this.button1.Text = "Save";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.Button1Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(8, 366);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(150, 30);
this.button2.TabIndex = 10;
this.button2.Text = "Load";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.Button2Click);
//
// checkBox5
//
this.checkBox5.Location = new System.Drawing.Point(9, 71);
this.checkBox5.Name = "checkBox5";
this.checkBox5.Size = new System.Drawing.Size(310, 20);
this.checkBox5.TabIndex = 11;
this.checkBox5.Text = "Loads assets from servers online";
this.checkBox5.UseVisualStyleBackColor = true;
this.checkBox5.CheckedChanged += new System.EventHandler(this.CheckBox5CheckedChanged);
//
// button3
//
this.button3.Location = new System.Drawing.Point(8, 337);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(312, 23);
this.button3.TabIndex = 12;
this.button3.Text = "New clientinfo.txt";
this.button3.UseVisualStyleBackColor = true;
this.button3.Click += new System.EventHandler(this.Button3Click);
//
// checkBox3
//
this.checkBox3.Location = new System.Drawing.Point(9, 89);
this.checkBox3.Name = "checkBox3";
this.checkBox3.Size = new System.Drawing.Size(175, 20);
this.checkBox3.TabIndex = 13;
this.checkBox3.Text = "Client uses a single EXE to run";
this.checkBox3.UseVisualStyleBackColor = true;
this.checkBox3.CheckedChanged += new System.EventHandler(this.CheckBox3CheckedChanged);
//
// label3
//
this.label3.Location = new System.Drawing.Point(8, 112);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(65, 13);
this.label3.TabIndex = 14;
this.label3.Text = "Client MD5";
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(9, 128);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(311, 20);
this.textBox2.TabIndex = 15;
this.textBox2.TextChanged += new System.EventHandler(this.TextBox2TextChanged);
//
// ClientinfoEditor
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.ControlLightLight;
this.ClientSize = new System.Drawing.Size(332, 403);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.label3);
this.Controls.Add(this.checkBox3);
this.Controls.Add(this.button3);
this.Controls.Add(this.checkBox5);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.checkBox2);
this.Controls.Add(this.checkBox1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "ClientinfoEditor";
this.Text = "Clientinfo Editor";
this.Load += new System.EventHandler(this.ClientinfoCreatorLoad);
this.ResumeLayout(false);
this.PerformLayout();
}
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.CheckBox checkBox3;
private System.Windows.Forms.Button button3;
private System.Windows.Forms.CheckBox checkBox5;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.CheckBox checkBox2;
private System.Windows.Forms.CheckBox checkBox1;
}
}

View File

@ -0,0 +1,195 @@
/*
* Created by SharpDevelop.
* User: BITL-Gaming
* Date: 11/28/2016
* Time: 7:55 AM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Drawing;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Threading;
namespace RBXPri2Launcher
{
/// <summary>
/// Description of ClientinfoCreator.
/// </summary>
public partial class ClientinfoEditor : Form
{
public ClientinfoEditor()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
//
// TODO: Add constructor code after the InitializeComponent() call.
//
}
void CheckBox1CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked == true)
{
GlobalVars.ClientCreator_UsesPlayerName = true;
}
else if (checkBox1.Checked == false)
{
GlobalVars.ClientCreator_UsesPlayerName = false;
}
}
void CheckBox2CheckedChanged(object sender, EventArgs e)
{
if (checkBox2.Checked == true)
{
GlobalVars.ClientCreator_UsesID = true;
}
else if (checkBox2.Checked == false)
{
GlobalVars.ClientCreator_UsesID = false;
}
}
void TextBox1TextChanged(object sender, EventArgs e)
{
GlobalVars.ClientCreator_SelectedClientDesc = textBox1.Text;
}
void Button2Click(object sender, EventArgs e)
{
using (var ofd = new OpenFileDialog())
{
ofd.Filter = "Text files (*.txt)|*.txt";
ofd.FilterIndex = 2;
ofd.FileName = "clientinfo.txt";
ofd.Title = "Load clientinfo.txt";
if (ofd.ShowDialog() == DialogResult.OK)
{
string line1;
string Decryptline1, Decryptline2, Decryptline3, Decryptline4, Decryptline5, Decryptline6;
using(StreamReader reader = new StreamReader(ofd.FileName))
{
line1 = reader.ReadLine();
}
if (!SecurityFuncs.IsBase64String(line1))
return;
string ConvertedLine = SecurityFuncs.Base64Decode(line1);
string[] result = ConvertedLine.Split('|');
Decryptline1 = SecurityFuncs.Base64Decode(result[0]);
Decryptline2 = SecurityFuncs.Base64Decode(result[1]);
Decryptline3 = SecurityFuncs.Base64Decode(result[2]);
Decryptline4 = SecurityFuncs.Base64Decode(result[3]);
Decryptline5 = SecurityFuncs.Base64Decode(result[4]);
Decryptline6 = SecurityFuncs.Base64Decode(result[5]);
Boolean bline1 = Convert.ToBoolean(Decryptline1);
GlobalVars.ClientCreator_UsesPlayerName = bline1;
Boolean bline2 = Convert.ToBoolean(Decryptline2);
GlobalVars.ClientCreator_UsesID = bline2;
Boolean bline3 = Convert.ToBoolean(Decryptline3);
GlobalVars.ClientCreator_LoadsAssetsOnline = bline3;
Boolean bline4 = Convert.ToBoolean(Decryptline4);
GlobalVars.ClientCreator_LegacyMode = bline4;
GlobalVars.ClientCreator_SelectedClientMD5 = Decryptline5;
GlobalVars.ClientCreator_SelectedClientDesc = Decryptline6;
checkBox1.Checked = GlobalVars.ClientCreator_UsesPlayerName;
checkBox2.Checked = GlobalVars.ClientCreator_UsesID;
checkBox5.Checked = GlobalVars.ClientCreator_LoadsAssetsOnline;
checkBox3.Checked = GlobalVars.ClientCreator_LegacyMode;
textBox2.Text = GlobalVars.ClientCreator_SelectedClientMD5.ToUpper();
textBox1.Text = GlobalVars.ClientCreator_SelectedClientDesc;
}
}
}
void Button1Click(object sender, EventArgs e)
{
using (var sfd = new SaveFileDialog())
{
sfd.Filter = "Text files (*.txt)|*.txt";
sfd.FilterIndex = 2;
sfd.FileName = "clientinfo.txt";
sfd.Title = "Save clientinfo.txt";
if (sfd.ShowDialog() == DialogResult.OK)
{
string[] lines = {
SecurityFuncs.Base64Encode(GlobalVars.ClientCreator_UsesPlayerName.ToString()),
SecurityFuncs.Base64Encode(GlobalVars.ClientCreator_UsesID.ToString()),
SecurityFuncs.Base64Encode(GlobalVars.ClientCreator_LoadsAssetsOnline.ToString()),
SecurityFuncs.Base64Encode(GlobalVars.ClientCreator_LegacyMode.ToString()),
SecurityFuncs.Base64Encode(GlobalVars.ClientCreator_SelectedClientMD5.ToString()),
SecurityFuncs.Base64Encode(GlobalVars.ClientCreator_SelectedClientDesc.ToString())
};
File.WriteAllText(sfd.FileName, SecurityFuncs.Base64Encode(string.Join("|",lines)));
}
}
}
void ClientinfoCreatorLoad(object sender, EventArgs e)
{
}
void CheckBox5CheckedChanged(object sender, EventArgs e)
{
if (checkBox5.Checked == true)
{
GlobalVars.ClientCreator_LoadsAssetsOnline = true;
}
else if (checkBox5.Checked == false)
{
GlobalVars.ClientCreator_LoadsAssetsOnline = false;
}
}
void Button3Click(object sender, EventArgs e)
{
GlobalVars.ClientCreator_UsesPlayerName = false;
GlobalVars.ClientCreator_UsesID = false;
GlobalVars.ClientCreator_LoadsAssetsOnline = false;
GlobalVars.ClientCreator_LegacyMode = false;
GlobalVars.ClientCreator_SelectedClientDesc = "";
GlobalVars.ClientCreator_SelectedClientMD5 = "";
checkBox1.Checked = GlobalVars.ClientCreator_UsesPlayerName;
checkBox2.Checked = GlobalVars.ClientCreator_UsesID;
checkBox5.Checked = GlobalVars.ClientCreator_LoadsAssetsOnline;
checkBox3.Checked = GlobalVars.ClientCreator_LegacyMode;
textBox2.Text = GlobalVars.ClientCreator_SelectedClientMD5.ToUpper();
textBox1.Text = GlobalVars.ClientCreator_SelectedClientDesc;
}
void CheckBox3CheckedChanged(object sender, EventArgs e)
{
if (checkBox3.Checked == true)
{
GlobalVars.ClientCreator_LegacyMode = true;
}
else if (checkBox3.Checked == false)
{
GlobalVars.ClientCreator_LegacyMode = false;
}
}
void TextBox2TextChanged(object sender, EventArgs e)
{
textBox2.Text = textBox2.Text.ToUpper();
GlobalVars.ClientCreator_SelectedClientMD5 = textBox2.Text.ToUpper();
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,73 @@
using System;
using System.Security.Cryptography;
///<summary>
/// Represents a pseudo-random number generator, a device that produces random data.
///</summary>
class CryptoRandom : RandomNumberGenerator
{
private static RandomNumberGenerator r;
///<summary>
/// Creates an instance of the default implementation of a cryptographic random number generator that can be used to generate random data.
///</summary>
public CryptoRandom()
{
r = RandomNumberGenerator.Create();
}
///<summary>
/// Fills the elements of a specified array of bytes with random numbers.
///</summary>
///<param name=”buffer”>An array of bytes to contain random numbers.</param>
public override void GetBytes(byte[] buffer)
{
r.GetBytes(buffer);
}
///
/// Fills an array of bytes with a cryptographically strong random sequence of nonzero values.
///
/// The array to fill with cryptographically strong random nonzero bytes
public override void GetNonZeroBytes(byte[] data)
{
r.GetNonZeroBytes(data);
}
///<summary>
/// Returns a random number between 0.0 and 1.0.
///</summary>
public double NextDouble()
{
byte[] b = new byte[4];
r.GetBytes(b);
return (double)BitConverter.ToUInt32(b, 0) / UInt32.MaxValue;
}
///<summary>
/// Returns a random number within the specified range.
///</summary>
///<param name=”minValue”>The inclusive lower bound of the random number returned.</param>
///<param name=”maxValue”>The exclusive upper bound of the random number returned. maxValue must be greater than or equal to minValue.</param>
public int Next(int minValue, int maxValue)
{
return (int)Math.Round(NextDouble() * (maxValue - minValue - 1)) + minValue;
}
///<summary>
/// Returns a nonnegative random number.
///</summary>
public int Next()
{
return Next(0, Int32.MaxValue);
}
///<summary>
/// Returns a nonnegative random number less than the specified maximum
///</summary>
///<param name=”maxValue”>The inclusive upper bound of the random number returned. maxValue must be greater than or equal 0</param>
public int Next(int maxValue)
{
return Next(0, maxValue);
}
}

View File

@ -0,0 +1,35 @@
public static class GlobalVars
{
public static string ClientDir = "";
public static string ScriptsDir = "";
public static string MapsDir = "";
public static string CustomPlayerDir = "";
public static string IP = "localhost";
public static string Version = "";
public static string MD5 = "";
//server settings.
public static string Map = "Baseplate.rbxl";
public static int MapID = 0;
public static int RobloxPort = 53640;
public static int DefaultRobloxPort = 53640;
//player settings
public static int UserID = 0;
public static string PlayerName = "Player";
//launcher settings.
public static bool CloseOnLaunch = false;
//client shit
public static string SelectedClient = "";
public static bool UsesPlayerName = false;
public static bool UsesID = true;
public static string SelectedClientDesc = "";
public static bool LoadsAssetsOnline = false;
public static bool LegacyMode = false;
public static string SelectedClientMD5 = "";
//clientinfocreator
public static bool ClientCreator_UsesPlayerName = false;
public static bool ClientCreator_UsesID = false;
public static bool ClientCreator_LoadsAssetsOnline = false;
public static string ClientCreator_SelectedClientDesc = "";
public static bool ClientCreator_LegacyMode = false;
public static string ClientCreator_SelectedClientMD5 = "";
}

View File

@ -0,0 +1,187 @@
/*
* Created by SharpDevelop.
* User: BITL
* Date: 6/13/2017
* Time: 10:24 AM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Threading;
using System.Reflection;
using System.Security.Cryptography;
using System.Text;
namespace RBXPri2Launcher
{
/// <summary>
/// Description of LauncherFuncs.
/// </summary>
public class LauncherFuncs
{
public LauncherFuncs()
{
}
public static void ReadConfigValues(string cfgpath)
{
string line1;
string Decryptline1, Decryptline2, Decryptline3, Decryptline4, Decryptline5, Decryptline6;
using(StreamReader reader = new StreamReader(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\config.txt"))
{
line1 = reader.ReadLine();
}
if (!SecurityFuncs.IsBase64String(line1))
return;
string ConvertedLine = SecurityFuncs.Base64Decode(line1);
string[] result = ConvertedLine.Split('|');
Decryptline1 = SecurityFuncs.Base64Decode(result[0]);
Decryptline2 = SecurityFuncs.Base64Decode(result[1]);
Decryptline3 = SecurityFuncs.Base64Decode(result[2]);
Decryptline4 = SecurityFuncs.Base64Decode(result[3]);
Decryptline5 = SecurityFuncs.Base64Decode(result[4]);
Decryptline6 = SecurityFuncs.Base64Decode(result[5]);
bool bline1 = Convert.ToBoolean(Decryptline1);
GlobalVars.CloseOnLaunch = bline1;
int iline2 = Convert.ToInt32(Decryptline2);
GlobalVars.UserID = iline2;
GlobalVars.PlayerName = Decryptline3;
GlobalVars.SelectedClient = Decryptline4;
GlobalVars.Map = Decryptline5;
int iline6 = Convert.ToInt32(Decryptline6);
GlobalVars.RobloxPort = iline6;
}
public static void WriteConfigValues(string cfgpath)
{
string[] lines = {
SecurityFuncs.Base64Encode(GlobalVars.CloseOnLaunch.ToString()),
SecurityFuncs.Base64Encode(GlobalVars.UserID.ToString()),
SecurityFuncs.Base64Encode(GlobalVars.PlayerName.ToString()),
SecurityFuncs.Base64Encode(GlobalVars.SelectedClient.ToString()),
SecurityFuncs.Base64Encode(GlobalVars.Map.ToString()),
SecurityFuncs.Base64Encode(GlobalVars.RobloxPort.ToString())
};
File.WriteAllText(cfgpath, SecurityFuncs.Base64Encode(string.Join("|",lines)));
}
public static void ResetConfigValues()
{
GlobalVars.CloseOnLaunch = false;
GlobalVars.UserID = 0;
GlobalVars.PlayerName = "Player";
GlobalVars.SelectedClient = "Mid-2008";
GlobalVars.Map = "Baseplate.rbxl";
GlobalVars.RobloxPort = 53640;
}
public static void ReadClientValues(string clientpath)
{
string line1;
string Decryptline1, Decryptline2, Decryptline3, Decryptline4, Decryptline5, Decryptline6;
using(StreamReader reader = new StreamReader(clientpath))
{
line1 = reader.ReadLine();
}
if (!SecurityFuncs.IsBase64String(line1))
return;
string ConvertedLine = SecurityFuncs.Base64Decode(line1);
string[] result = ConvertedLine.Split('|');
Decryptline1 = SecurityFuncs.Base64Decode(result[0]);
Decryptline2 = SecurityFuncs.Base64Decode(result[1]);
Decryptline3 = SecurityFuncs.Base64Decode(result[2]);
Decryptline4 = SecurityFuncs.Base64Decode(result[3]);
Decryptline5 = SecurityFuncs.Base64Decode(result[4]);
Decryptline6 = SecurityFuncs.Base64Decode(result[5]);
bool bline1 = Convert.ToBoolean(Decryptline1);
GlobalVars.UsesPlayerName = bline1;
bool bline2 = Convert.ToBoolean(Decryptline2);
GlobalVars.UsesID = bline2;
bool bline3 = Convert.ToBoolean(Decryptline3);
GlobalVars.LoadsAssetsOnline = bline3;
bool bline4 = Convert.ToBoolean(Decryptline4);
GlobalVars.LegacyMode = bline4;
GlobalVars.SelectedClientMD5 = Decryptline5;
GlobalVars.SelectedClientDesc = Decryptline6;
GlobalVars.MD5 = GlobalVars.SelectedClientMD5;
}
public static void GeneratePlayerID()
{
CryptoRandom random = new CryptoRandom();
int randomID = 0;
int randIDmode = random.Next(0,7);
if (randIDmode == 0)
{
randomID = random.Next(0, 99);
}
else if (randIDmode == 1)
{
randomID = random.Next(0, 999);
}
else if (randIDmode == 2)
{
randomID = random.Next(0, 9999);
}
else if (randIDmode == 3)
{
randomID = random.Next(0, 99999);
}
else if (randIDmode == 4)
{
randomID = random.Next(0, 999999);
}
else if (randIDmode == 5)
{
randomID = random.Next(0, 9999999);
}
else if (randIDmode == 6)
{
randomID = random.Next(0, 99999999);
}
else if (randIDmode == 7)
{
randomID = random.Next();
}
//2147483647 is max id.
GlobalVars.UserID = randomID;
}
public static bool IsProcessOpen(string name)
{
foreach (Process clsProcess in Process.GetProcesses())
{
if (clsProcess.ProcessName.Contains(name))
{
return true;
}
}
return false;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,689 @@
/*
* Created by SharpDevelop.
* User: BITL-Gaming
* Date: 10/7/2016
* Time: 3:01 PM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Threading;
namespace RBXPri2Launcher
{
/// <summary>
/// Description of MainForm.
/// </summary>
public partial class MainForm : Form
{
public MainForm()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
//
// TODO: Add constructor code after the InitializeComponent() call.
//
}
void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
if (tabControl1.SelectedTab == tabControl1.TabPages["tabPage2"])//your specific tabname
{
string mapdir = GlobalVars.MapsDir;
DirectoryInfo dinfo = new DirectoryInfo(mapdir);
FileInfo[] Files = dinfo.GetFiles("*.rbxl");
foreach( FileInfo file in Files )
{
listBox1.Items.Add(file.Name);
}
listBox1.SelectedItem = GlobalVars.Map;
listBox2.Items.Clear();
listBox3.Items.Clear();
listBox4.Items.Clear();
}
else if (tabControl1.SelectedTab == tabControl1.TabPages["tabPage3"])//your specific tabname
{
string clientdir = GlobalVars.ClientDir;
DirectoryInfo dinfo = new DirectoryInfo(clientdir);
DirectoryInfo[] Dirs = dinfo.GetDirectories();
foreach( DirectoryInfo dir in Dirs )
{
listBox2.Items.Add(dir.Name);
}
listBox2.SelectedItem = GlobalVars.SelectedClient;
listBox1.Items.Clear();
listBox3.Items.Clear();
listBox4.Items.Clear();
}
else if (tabControl1.SelectedTab == tabControl1.TabPages["tabPage6"])//your specific tabname
{
string[] lines_server = File.ReadAllLines("servers.txt");
string[] lines_ports = File.ReadAllLines("ports.txt");
listBox3.Items.AddRange(lines_server);
listBox4.Items.AddRange(lines_ports);
listBox1.Items.Clear();
listBox2.Items.Clear();
}
else
{
listBox1.Items.Clear();
listBox2.Items.Clear();
listBox3.Items.Clear();
listBox4.Items.Clear();
}
}
void Button1Click(object sender, EventArgs e)
{
WriteConfigValues();
Process.Start("sudppipe.exe", "-p " + GlobalVars.IP + " " + GlobalVars.RobloxPort + " " + GlobalVars.RobloxPort);
StartClient();
if (GlobalVars.CloseOnLaunch == true)
{
this.Close();
}
}
void Button2Click(object sender, EventArgs e)
{
WriteConfigValues();
StartServer();
if (GlobalVars.CloseOnLaunch == true)
{
this.Close();
}
}
void MainFormLoad(object sender, EventArgs e)
{
string[] lines = File.ReadAllLines("info.txt"); //File is in System.IO
string version = lines[0];
string[] defaultclient = File.ReadAllLines("info.txt");
string defcl = defaultclient[1];
GlobalVars.SelectedClient = defcl;
ConsolePrint("RBXPri2 Launcher version " + version + " loaded. Initializing config.", 4);
if (File.Exists("changelog.txt"))
{
richTextBox2.Text = File.ReadAllText("changelog.txt");
}
else
{
ConsolePrint("ERROR 4 - changelog.txt not found.", 2);
}
if (!File.Exists("config.txt"))
{
ConsolePrint("WARNING 1 - config.txt not found. Creating one with default values.", 5);
WriteConfigValues();
}
if (!File.Exists("servers.txt"))
{
ConsolePrint("WARNING 2 - servers.txt not found. Creating empty file.", 5);
File.Create("servers.txt").Dispose();
}
if (!File.Exists("ports.txt"))
{
ConsolePrint("WARNING 3 - ports.txt not found. Creating empty file.", 5);
File.Create("ports.txt").Dispose();
}
GlobalVars.ClientDir = Path.Combine(Environment.CurrentDirectory, @"clients");
GlobalVars.ClientDir = GlobalVars.ClientDir.Replace(@"\",@"\\");
GlobalVars.ScriptsDir = Path.Combine(Environment.CurrentDirectory, @"scripts");
GlobalVars.ScriptsDir = GlobalVars.ScriptsDir.Replace(@"\",@"\\");
GlobalVars.MapsDir = Path.Combine(Environment.CurrentDirectory, @"maps");
GlobalVars.MapsDir = GlobalVars.MapsDir.Replace(@"\",@"\\");
GlobalVars.CustomPlayerDir = Path.Combine(Environment.CurrentDirectory, @"charcustom");
GlobalVars.CustomPlayerDir = GlobalVars.CustomPlayerDir.Replace(@"\",@"\\");
label5.Text = Environment.CurrentDirectory;
label8.Text = Application.ProductVersion;
GlobalVars.IP = "localhost";
GlobalVars.Map = "Baseplate.rbxl";
label11.Text = version;
GlobalVars.Version = version;
ReadConfigValues();
}
void ReadConfigValues()
{
LauncherFuncs.ReadConfigValues("config.txt");
if (GlobalVars.CloseOnLaunch == true)
{
checkBox1.Checked = true;
}
else if (GlobalVars.CloseOnLaunch == false)
{
checkBox1.Checked = false;
}
if (GlobalVars.UserID == 0)
{
GeneratePlayerID();
WriteConfigValues();
}
else
{
textBox5.Text = GlobalVars.UserID.ToString();
}
textBox2.Text = GlobalVars.PlayerName;
label26.Text = GlobalVars.SelectedClient;
label28.Text = GlobalVars.Map;
listBox1.SelectedItem = GlobalVars.Map;
textBox4.Text = GlobalVars.RobloxPort.ToString();
label37.Text = GlobalVars.IP;
label38.Text = GlobalVars.RobloxPort.ToString();
ConsolePrint("Config loaded.", 3);
ReadClientValues(GlobalVars.SelectedClient);
}
void WriteConfigValues()
{
LauncherFuncs.WriteConfigValues("config.txt");
ConsolePrint("Config Saved.", 3);
}
void ReadClientValues(string ClientName)
{
string clientpath = GlobalVars.ClientDir + @"\\" + ClientName + @"\\clientinfo.txt";
if (!File.Exists(clientpath))
{
ConsolePrint("ERROR 1 - No clientinfo.txt detected with the client you chose. The client either cannot be loaded, or it is not available.", 2);
MessageBox.Show("No clientinfo.txt detected with the client you chose. The client either cannot be loaded, or it is not available.","RBXPri2 Launcher - Error while loading client", MessageBoxButtons.OK, MessageBoxIcon.Error);
GlobalVars.SelectedClient = "2008";
}
LauncherFuncs.ReadClientValues(clientpath);
if (GlobalVars.UsesPlayerName == true)
{
textBox2.Enabled = true;
}
else if (GlobalVars.UsesPlayerName == false)
{
textBox2.Enabled = false;
}
if (GlobalVars.UsesID == true)
{
textBox5.Enabled = true;
button4.Enabled = true;
}
else if (GlobalVars.UsesID == false)
{
textBox5.Enabled = false;
button4.Enabled = false;
}
if (GlobalVars.LoadsAssetsOnline == false)
{
label30.Visible = false;
}
else if (GlobalVars.LoadsAssetsOnline == true)
{
label30.Visible = true;
}
textBox6.Text = GlobalVars.SelectedClientDesc;
label26.Text = GlobalVars.SelectedClient;
ConsolePrint("Client '" + GlobalVars.SelectedClient + "' successfully loaded.", 3);
}
void GeneratePlayerID()
{
LauncherFuncs.GeneratePlayerID();
textBox5.Text = Convert.ToString(GlobalVars.UserID);
}
void TextBox1TextChanged(object sender, EventArgs e)
{
GlobalVars.IP = textBox1.Text;
label37.Text = GlobalVars.IP;
}
void ListBox1SelectedIndexChanged(object sender, EventArgs e)
{
GlobalVars.Map = listBox1.SelectedItem.ToString();
label28.Text = GlobalVars.Map;
}
void CheckBox1CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked == true)
{
GlobalVars.CloseOnLaunch = true;
}
else if (checkBox1.Checked == false)
{
GlobalVars.CloseOnLaunch = false;
}
}
void Button4Click(object sender, EventArgs e)
{
GeneratePlayerID();
}
void Button5Click(object sender, EventArgs e)
{
WriteConfigValues();
MessageBox.Show("Config Saved!");
}
void TextBox2TextChanged(object sender, EventArgs e)
{
GlobalVars.PlayerName = textBox2.Text;
}
void ListBox2SelectedIndexChanged(object sender, EventArgs e)
{
GlobalVars.SelectedClient = listBox2.SelectedItem.ToString();
ReadClientValues(GlobalVars.SelectedClient);
}
void Button6Click(object sender, EventArgs e)
{
ClientinfoEditor cie = new ClientinfoEditor();
cie.Show();
}
void Button7Click(object sender, EventArgs e)
{
WriteConfigValues();
MessageBox.Show("Config Saved!");
}
void TextBox4TextChanged(object sender, EventArgs e)
{
int parsedValue;
if (int.TryParse(textBox4.Text, out parsedValue))
{
if (textBox4.Text.Equals(""))
{
//set it to the normal port, 53640. it wouldn't make any sense if we set it to 0.
GlobalVars.RobloxPort = GlobalVars.DefaultRobloxPort;
}
else
{
GlobalVars.RobloxPort = Convert.ToInt32(textBox4.Text);
}
}
else
{
GlobalVars.RobloxPort = GlobalVars.DefaultRobloxPort;
}
label38.Text = GlobalVars.RobloxPort.ToString();
}
void TextBox5TextChanged(object sender, EventArgs e)
{
int parsedValue;
if (int.TryParse(textBox5.Text, out parsedValue))
{
if (textBox5.Text.Equals(""))
{
GlobalVars.UserID = 0;
}
else
{
GlobalVars.UserID = Convert.ToInt32(textBox5.Text);
}
}
else
{
GlobalVars.UserID = 0;
}
}
void Button9Click(object sender, EventArgs e)
{
ResetConfigValues();
MessageBox.Show("Config Reset!");
}
void ListBox3SelectedIndexChanged(object sender, EventArgs e)
{
GlobalVars.IP = listBox3.SelectedItem.ToString();
textBox1.Text = GlobalVars.IP;
label37.Text = GlobalVars.IP;
}
void ListBox4SelectedIndexChanged(object sender, EventArgs e)
{
GlobalVars.RobloxPort = Convert.ToInt32(listBox4.SelectedItem.ToString());
textBox4.Text = GlobalVars.RobloxPort.ToString();
label38.Text = GlobalVars.RobloxPort.ToString();
}
void Button10Click(object sender, EventArgs e)
{
File.AppendAllText("servers.txt", GlobalVars.IP + Environment.NewLine);
}
void Button11Click(object sender, EventArgs e)
{
File.AppendAllText("ports.txt", GlobalVars.RobloxPort + Environment.NewLine);
}
void Button12Click(object sender, EventArgs e)
{
if (listBox3.SelectedIndex >= 0)
{
TextLineRemover.RemoveTextLines(new List<string> { listBox3.SelectedItem.ToString() }, "servers.txt", "servers.tmp");
listBox3.Items.Clear();
string[] lines_server = File.ReadAllLines("servers.txt");
listBox3.Items.AddRange(lines_server);
}
}
void Button13Click(object sender, EventArgs e)
{
if (listBox4.SelectedIndex >= 0)
{
TextLineRemover.RemoveTextLines(new List<string> { listBox4.SelectedItem.ToString() }, "ports.txt", "ports.tmp");
listBox4.Items.Clear();
string[] lines_ports = File.ReadAllLines("ports.txt");
listBox4.Items.AddRange(lines_ports);
}
}
void Button14Click(object sender, EventArgs e)
{
File.Create("servers.txt").Dispose();
listBox3.Items.Clear();
string[] lines_server = File.ReadAllLines("servers.txt");
listBox3.Items.AddRange(lines_server);
}
void Button15Click(object sender, EventArgs e)
{
File.Create("ports.txt").Dispose();
listBox4.Items.Clear();
string[] lines_ports = File.ReadAllLines("ports.txt");
listBox4.Items.AddRange(lines_ports);
}
void Button16Click(object sender, EventArgs e)
{
File.AppendAllText("servers.txt", GlobalVars.IP + Environment.NewLine);
listBox3.Items.Clear();
string[] lines_server = File.ReadAllLines("servers.txt");
listBox3.Items.AddRange(lines_server);
}
void Button17Click(object sender, EventArgs e)
{
File.AppendAllText("ports.txt", GlobalVars.RobloxPort + Environment.NewLine);
listBox4.Items.Clear();
string[] lines_ports = File.ReadAllLines("ports.txt");
listBox4.Items.AddRange(lines_ports);
}
void Button20Click(object sender, EventArgs e)
{
ServerInfo infopanel = new ServerInfo();
infopanel.Show();
}
void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
//Command proxy
int totalLines = richTextBox1.Lines.Length;
if (totalLines > 0)
{
string lastLine = richTextBox1.Lines[totalLines - 1];
if (e.KeyCode == Keys.Enter)
{
richTextBox1.AppendText(Environment.NewLine);
ConsoleProcessCommands(lastLine);
e.Handled = true;
}
}
if ( e.Modifiers == Keys.Control )
{
switch(e.KeyCode)
{
case Keys.C:
case Keys.X:
case Keys.V:
case Keys.Z:
e.Handled = true;
break;
default:
break;
}
}
}
void ResetConfigValues()
{
LauncherFuncs.ResetConfigValues();
WriteConfigValues();
ReadConfigValues();
}
void ConsolePrint(string text, int type)
{
richTextBox1.AppendText("[" + DateTime.Now.ToShortTimeString() + "]", Color.White);
richTextBox1.AppendText(" - ", Color.White);
if (type == 1)
{
richTextBox1.AppendText(text, Color.White);
}
else if (type == 2)
{
richTextBox1.AppendText(text, Color.Red);
}
else if (type == 3)
{
richTextBox1.AppendText(text, Color.Lime);
}
else if (type == 4)
{
richTextBox1.AppendText(text, Color.Aqua);
}
else if (type == 5)
{
richTextBox1.AppendText(text, Color.Yellow);
}
richTextBox1.AppendText(Environment.NewLine);
}
void StartClient()
{
string rbxexe = "";
if (GlobalVars.LegacyMode == true)
{
rbxexe = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\RobloxApp.exe";
}
else
{
rbxexe = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\RobloxApp_client.exe";
}
string quote = "\"";
string args = "";
if (GlobalVars.UsesPlayerName == true && GlobalVars.UsesID == true)
{
args = "-script " + quote + "game:GetService('NetworkClient'):PlayerConnect(" + GlobalVars.UserID + ",'localhost'," + GlobalVars.RobloxPort + ") game.Players.LocalPlayer.Name = '" + GlobalVars.PlayerName + "' game.Players.LocalPlayer.CharacterAppearanceId = '" + GlobalVars.UserID + "'" + quote;
}
else if (GlobalVars.UsesPlayerName == false && GlobalVars.UsesID == true)
{
args = "-script " + quote + "game:GetService('NetworkClient'):PlayerConnect(" + GlobalVars.UserID + ",'localhost'," + GlobalVars.RobloxPort + ") game.Players.LocalPlayer.CharacterAppearanceId = '" + GlobalVars.UserID + "'" + quote;
}
else if (GlobalVars.UsesPlayerName == true && GlobalVars.UsesID == false)
{
args = "-script " + quote + "game:GetService('NetworkClient'):PlayerConnect(0,'localhost'," + GlobalVars.RobloxPort + ") game.Players.LocalPlayer.Name = '" + GlobalVars.PlayerName + "'" + quote;
}
else if (GlobalVars.UsesPlayerName == false && GlobalVars.UsesID == false)
{
args = "-script " + quote + "game:GetService('NetworkClient'):PlayerConnect(0,'localhost'," + GlobalVars.RobloxPort + ")" + quote;
}
try
{
ConsolePrint("Client Loaded.", 4);
if (SecurityFuncs.checkClientMD5(GlobalVars.SelectedClient) == true)
{
Process.Start(rbxexe, args);
}
}
catch (Exception ex)
{
ConsolePrint("ERROR 2 - Failed to launch RBXPri2. (" + ex.Message + ")", 2);
DialogResult result2 = MessageBox.Show("Failed to launch RBXPri2. (Error: " + ex.Message + ")","RBXPri2 Launcher - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
void StartServer()
{
string mapfile = GlobalVars.MapsDir + @"\\" + GlobalVars.Map;
string rbxexe = GlobalVars.ClientDir + @"\\" + GlobalVars.SelectedClient + @"\\RobloxApp.exe";
string quote = "\"";
string args = "";
if (GlobalVars.MapID > 0)
{
args = "-script " + quote + "game:LoadWorld(" + GlobalVars.MapID + ")" + quote;
}
else
{
args = quote + mapfile + quote;
}
try
{
ConsolePrint("Server Loaded.", 4);
Process.Start(rbxexe, args);
}
catch (Exception ex)
{
ConsolePrint("ERROR 2 - Failed to launch RBXPri2. (" + ex.Message + ")", 2);
DialogResult result2 = MessageBox.Show("Failed to launch RBXPri2. (Error: " + ex.Message + ")","RBXPri2 Launcher - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
void ConsoleProcessCommands(string command)
{
if (command.Equals("rbxpri2 server"))
{
StartServer();
}
else if (command.Equals("rbxpri2 client"))
{
Process.Start("sudppipe.exe", "-p " + GlobalVars.IP + " " + GlobalVars.RobloxPort + " " + GlobalVars.RobloxPort);
StartClient();
}
else if (command.Equals("rbxpri2 config save"))
{
WriteConfigValues();
}
else if (command.Equals("rbxpri2 config load"))
{
ReadConfigValues();
}
else if (command.Equals("rbxpri2 config reset"))
{
ResetConfigValues();
}
else if (command.Equals("rbxpri2 help"))
{
ConsoleRBXPri2Help(0);
}
else if (command.Equals("rbxpri2"))
{
ConsoleRBXPri2Help(0);
}
else if (command.Equals("rbxpri2 config"))
{
ConsoleRBXPri2Help(1);
}
else if (command.Equals("config"))
{
ConsoleRBXPri2Help(1);
}
else if (command.Equals("help"))
{
ConsoleRBXPri2Help(0);
}
else
{
ConsolePrint("ERROR 3 - Command is either not registered or valid", 2);
}
}
void ConsoleRBXPri2Help(int page)
{
if (page == 1)
{
ConsolePrint("rbxpri2 config", 2);
ConsolePrint("-------------------------", 1);
ConsolePrint("= save | Saves the config file", 3);
ConsolePrint("= load | Reloads the config file", 3);
ConsolePrint("= reset | Resets the config file", 3);
}
else
{
ConsolePrint("rbxpri2", 2);
ConsolePrint("---------", 1);
ConsolePrint("= client | Loads client with launcher settings", 3);
ConsolePrint("= server | Loads server with launcher settings", 3);
ConsolePrint("= config", 3);
ConsolePrint("-- save | Saves the config file", 4);
ConsolePrint("-- load | Reloads the config file", 4);
ConsolePrint("-- reset | Resets the config file", 4);
}
}
protected override void OnFormClosing(FormClosingEventArgs e)
{
base.OnFormClosing(e);
WriteConfigValues();
}
void Button21Click(object sender, EventArgs e)
{
try
{
string loadstring = Environment.CurrentDirectory + Path.DirectorySeparatorChar + System.AppDomain.CurrentDomain.FriendlyName;
SecurityFuncs.RegisterURLProtocol("RBXPri2", loadstring, "RBXPri2 URI");
ConsolePrint("URI Successfully Installed!", 3);
DialogResult result1 = MessageBox.Show("URI Successfully Installed!","RBXPri2 Launcher - Install URI", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
ConsolePrint("ERROR 5 - Failed to install URI. (" + ex.Message + ")", 2);
DialogResult result2 = MessageBox.Show("Failed to install URI. (Error: " + ex.Message + ")","RBXPri2 Launcher - Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
void TextBox3TextChanged(object sender, EventArgs e)
{
int parsedValue;
if (int.TryParse(textBox3.Text, out parsedValue))
{
if (textBox3.Text.Equals(""))
{
GlobalVars.MapID = 0;
}
else
{
GlobalVars.MapID = Convert.ToInt32(textBox3.Text);
}
}
else
{
GlobalVars.MapID = 0;
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,36 @@
/*
* Created by SharpDevelop.
* User: BITL-Gaming
* Date: 10/7/2016
* Time: 3:01 PM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Windows.Forms;
namespace RBXPri2Launcher
{
/// <summary>
/// Class with program entry point.
/// </summary>
internal sealed class Program
{
static string ProcessInput(string s)
{
return s;
}
/// <summary>
/// Program entry point.
/// </summary>
[STAThread]
private static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
}

View File

@ -0,0 +1,31 @@
#region Using directives
using System;
using System.Reflection;
using System.Runtime.InteropServices;
#endregion
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("RBXLegacyLauncher")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("RBXLegacyLauncher")]
[assembly: AssemblyCopyright("Copyright 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// This sets the default COM visibility of types in the assembly to invisible.
// If you need to expose a type to COM, use [ComVisible(true)] on that type.
[assembly: ComVisible(false)]
// The assembly version has following format :
//
// Major.Minor.Build.Revision
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.*")]

View File

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<PropertyGroup>
<ProjectGuid>{F92FFBED-2767-4676-9711-BB89CDA58A43}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<OutputType>WinExe</OutputType>
<RootNamespace>RBXPri2Launcher</RootNamespace>
<AssemblyName>RBXPri2Launcher</AssemblyName>
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
<AppDesignerFolder>Properties</AppDesignerFolder>
<ApplicationIcon>Resources\RBXPri2.ico</ApplicationIcon>
<NoWin32Manifest>False</NoWin32Manifest>
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
<NoStdLib>False</NoStdLib>
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'AnyCPU' ">
<PlatformTarget>x86</PlatformTarget>
<BaseAddress>4194304</BaseAddress>
<RegisterForComInterop>False</RegisterForComInterop>
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
<FileAlignment>4096</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<OutputPath>bin\Debug\</OutputPath>
<DebugSymbols>True</DebugSymbols>
<DebugType>Full</DebugType>
<Optimize>False</Optimize>
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
<DefineConstants>DEBUG;TRACE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<OutputPath>bin\Release\</OutputPath>
<DebugSymbols>False</DebugSymbols>
<DebugType>None</DebugType>
<Optimize>True</Optimize>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
<DefineConstants>TRACE</DefineConstants>
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="ClientinfoCreator.cs" />
<Compile Include="ClientinfoCreator.Designer.cs">
<DependentUpon>ClientinfoCreator.cs</DependentUpon>
</Compile>
<Compile Include="CryptoRandom.cs" />
<Compile Include="LauncherFuncs.cs" />
<Compile Include="RichTextBoxExtensions.cs" />
<Compile Include="SecurityFuncs.cs" />
<Compile Include="ServerInfo.cs" />
<Compile Include="ServerInfo.Designer.cs">
<DependentUpon>ServerInfo.cs</DependentUpon>
</Compile>
<Compile Include="TextLineRemover.cs" />
<Compile Include="GlobalVars.cs" />
<Compile Include="MainForm.cs" />
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="ClientinfoCreator.resx">
<DependentUpon>ClientinfoCreator.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ServerInfo.resx">
<DependentUpon>ServerInfo.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
// you need this once (only), and it must be in this namespace
namespace System.Runtime.CompilerServices
{
[AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class
| AttributeTargets.Method)]
public sealed class ExtensionAttribute : Attribute {}
}
public static class RichTextBoxExtensions
{
public static void AppendText(this RichTextBox box, string text, Color color)
{
box.SelectionStart = box.TextLength;
box.SelectionLength = 0;
box.SelectionColor = color;
box.AppendText(text);
box.SelectionColor = box.ForeColor;
}
}

View File

@ -0,0 +1,87 @@
/*
* Created by SharpDevelop.
* User: BITL
* Date: 6/12/2017
* Time: 5:10 PM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.IO;
using System.Diagnostics;
using System.Threading;
using System.Reflection;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
using Microsoft.Win32;
namespace RBXPri2Launcher
{
/// <summary>
/// Description of SecurityFuncs.
/// </summary>
public class SecurityFuncs
{
public SecurityFuncs()
{
}
public static string Base64Decode(string base64EncodedData)
{
var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData);
return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
}
public static string Base64Encode(string plainText)
{
var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);
return System.Convert.ToBase64String(plainTextBytes);
}
public static bool IsBase64String(string s)
{
s = s.Trim();
return (s.Length % 4 == 0) && Regex.IsMatch(s, @"^[a-zA-Z0-9\+/]*={0,3}$", RegexOptions.None);
}
public static void RegisterURLProtocol(string protocolName, string applicationPath, string description)
{
RegistryKey subKey = Registry.ClassesRoot.CreateSubKey(protocolName);
subKey.SetValue((string) null, (object) description);
subKey.SetValue("URL Protocol", (object) string.Empty);
Registry.ClassesRoot.CreateSubKey(protocolName + "\\Shell");
Registry.ClassesRoot.CreateSubKey(protocolName + "\\Shell\\open");
Registry.ClassesRoot.CreateSubKey(protocolName + "\\Shell\\open\\command").SetValue((string) null, (object) ("\"" + applicationPath + "\" \"%1\""));
}
public static bool checkClientMD5(string client)
{
string rbxexe = "";
if (GlobalVars.LegacyMode == true)
{
rbxexe = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\clients\\" + client + "\\RobloxApp.exe";
}
else
{
rbxexe = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\clients\\" + client + "\\RobloxApp_client.exe";
}
using (var md5 = MD5.Create())
{
using (var stream = File.OpenRead(rbxexe))
{
byte[] hash = md5.ComputeHash(stream);
string clientMD5 = BitConverter.ToString(hash).Replace("-", "");
if (clientMD5.Equals(GlobalVars.MD5))
{
return true;
}
else
{
return false;
}
}
}
}
}
}

View File

@ -0,0 +1,75 @@
/*
* Created by SharpDevelop.
* User: BITL
* Date: 5/14/2017
* Time: 9:14 AM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
namespace RBXPri2Launcher
{
partial class ServerInfo
{
/// <summary>
/// Designer variable used to keep track of non-visual components.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Disposes resources used by the form.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing) {
if (components != null) {
components.Dispose();
}
}
base.Dispose(disposing);
}
/// <summary>
/// This method is required for Windows Forms designer support.
/// Do not change the method contents inside the source code editor. The Forms designer might
/// not be able to load this method if it was changed manually.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ServerInfo));
this.textBox1 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.textBox1.BackColor = System.Drawing.SystemColors.ControlLightLight;
this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.textBox1.Location = new System.Drawing.Point(2, 3);
this.textBox1.Multiline = true;
this.textBox1.Name = "textBox1";
this.textBox1.ReadOnly = true;
this.textBox1.Size = new System.Drawing.Size(501, 256);
this.textBox1.TabIndex = 0;
//
// ServerInfo
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.AutoScroll = true;
this.BackColor = System.Drawing.SystemColors.ControlLightLight;
this.ClientSize = new System.Drawing.Size(504, 262);
this.Controls.Add(this.textBox1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MinimumSize = new System.Drawing.Size(520, 300);
this.Name = "ServerInfo";
this.Text = "Server Info";
this.Load += new System.EventHandler(this.ServerInfoLoad);
this.ResumeLayout(false);
this.PerformLayout();
}
private System.Windows.Forms.TextBox textBox1;
}
}

View File

@ -0,0 +1,63 @@
/*
* Created by SharpDevelop.
* User: BITL
* Date: 5/14/2017
* Time: 9:14 AM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Net;
namespace RBXPri2Launcher
{
/// <summary>
/// Description of ServerInfo.
/// </summary>
public partial class ServerInfo : Form
{
public ServerInfo()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
//
// TODO: Add constructor code after the InitializeComponent() call.
//
}
void ServerInfoLoad(object sender, EventArgs e)
{
textBox1.AppendText("Client: " + GlobalVars.SelectedClient);
textBox1.AppendText(Environment.NewLine);
textBox1.AppendText("IP: " + GetExternalIPAddress());
textBox1.AppendText("Port: " + GlobalVars.RobloxPort.ToString());
textBox1.AppendText(Environment.NewLine);
textBox1.AppendText("Map: " + GlobalVars.Map);
textBox1.AppendText(Environment.NewLine);
textBox1.AppendText("Version: RBXPri2: " + GlobalVars.Version);
}
string GetExternalIPAddress()
{
string ipAddress;
using (WebClient wc = new WebClient())
{
try
{
ipAddress = wc.DownloadString("http://icanhazip.com/");
}
catch (Exception)
{
ipAddress = "localhost" + Environment.NewLine;
}
}
return ipAddress;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,94 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Diagnostics;
using System.Threading;
public static class TextLineRemover
{
public static void RemoveTextLines(IList<string> linesToRemove, string filename, string tempFilename)
{
// Initial values
int lineNumber = 0;
int linesRemoved = 0;
DateTime startTime = DateTime.Now;
// Read file
using (var sr = new StreamReader(filename))
{
// Write new file
using (var sw = new StreamWriter(tempFilename))
{
// Read lines
string line;
while ((line = sr.ReadLine()) != null)
{
lineNumber++;
// Look for text to remove
if (!ContainsString(line, linesToRemove))
{
// Keep lines that does not match
sw.WriteLine(line);
}
else
{
// Ignore lines that DO match
linesRemoved++;
InvokeOnRemovedLine(new RemovedLineArgs { RemovedLine = line, RemovedLineNumber = lineNumber});
}
}
}
}
// Delete original file
File.Delete(filename);
// ... and put the temp file in its place.
File.Move(tempFilename, filename);
// Final calculations
DateTime endTime = DateTime.Now;
InvokeOnFinished(new FinishedArgs {LinesRemoved = linesRemoved, TotalLines = lineNumber, TotalTime = endTime.Subtract(startTime)});
}
private static bool ContainsString(string line, IEnumerable<string> linesToRemove)
{
foreach (var lineToRemove in linesToRemove)
{
if(line.Contains(lineToRemove))
return true;
}
return false;
}
public static event RemovedLine OnRemovedLine;
public static event Finished OnFinished;
public static void InvokeOnFinished(FinishedArgs args)
{
Finished handler = OnFinished;
if (handler != null) handler(null, args);
}
public static void InvokeOnRemovedLine(RemovedLineArgs args)
{
RemovedLine handler = OnRemovedLine;
if (handler != null) handler(null, args);
}
}
public delegate void Finished(object sender, FinishedArgs args);
public class FinishedArgs
{
public int TotalLines { get; set; }
public int LinesRemoved { get; set; }
public TimeSpan TotalTime { get; set; }
}
public delegate void RemovedLine(object sender, RemovedLineArgs args);
public class RemovedLineArgs
{
public string RemovedLine { get; set; }
public int RemovedLineNumber { get; set; }
}

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727" />
</startup>
</configuration>