redid 2006s/2006s-shaders in 2007e, improved stability.

This commit is contained in:
Bitl 2021-09-15 17:38:30 -07:00
parent 2445d75903
commit d50716fcb1
40 changed files with 124 additions and 120 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

BIN
Graphics/2006S/2006S.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 B

BIN
Graphics/2006S/GROUP_16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

BIN
Graphics/2006S/LOCK_16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 B

BIN
Graphics/2006S/REDO_16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 B

BIN
Graphics/2006S/SAVE_16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

BIN
Graphics/2006S/UNDO_16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

View File

@ -34,6 +34,7 @@ class CharacterCustomizationShared
public PictureBox Hat1Image, Hat2Image, Hat3Image, HeadImage, TShirtImage, ShirtImage, PantsImage, FaceImage, ExtraItemImage, IconImage; public PictureBox Hat1Image, Hat2Image, Hat3Image, HeadImage, TShirtImage, ShirtImage, PantsImage, FaceImage, ExtraItemImage, IconImage;
public ListView ColorView; public ListView ColorView;
private ImageList ColorImageList; private ImageList ColorImageList;
public bool closeOnLaunch = false;
#endregion #endregion
#region Constructor #region Constructor
@ -42,7 +43,7 @@ class CharacterCustomizationShared
} }
public void InitColors() public bool InitColors()
{ {
try try
{ {
@ -51,7 +52,7 @@ class CharacterCustomizationShared
PartColorList = PartColorLoader.GetPartColors(); PartColorList = PartColorLoader.GetPartColors();
PartColorListConv = new List<PartColor>(); PartColorListConv = new List<PartColor>();
PartColorListConv.AddRange(PartColorList); PartColorListConv.AddRange(PartColorList);
return; return true;
} }
else else
{ {
@ -66,13 +67,19 @@ class CharacterCustomizationShared
Failure: Failure:
MessageBox.Show("The part colors cannot be loaded. The character customization menu will now close.", "Novetus - Cannot load part colors.", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show("The part colors cannot be loaded. The character customization menu will now close.", "Novetus - Cannot load part colors.", MessageBoxButtons.OK, MessageBoxIcon.Error);
Parent.Close(); return false;
} }
#endregion #endregion
#region Form Event Functions #region Form Event Functions
public void InitForm() public void InitForm()
{ {
if (closeOnLaunch)
{
Parent.Close();
return;
}
if (File.Exists(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ContentProviderXMLName)) if (File.Exists(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ContentProviderXMLName))
{ {
contentProviders = OnlineClothing.GetContentProviders(); contentProviders = OnlineClothing.GetContentProviders();
@ -542,13 +549,22 @@ class CharacterCustomizationShared
public void ApplyPreset(int head, int torso, int larm, int rarm, int lleg, int rleg) public void ApplyPreset(int head, int torso, int larm, int rarm, int lleg, int rleg)
{ {
ColorView.SelectedIndices.Clear(); try
ChangeColorOfPart("Head", head, PartColorListConv.Find(x => x.ColorID == head).ColorObject); {
ChangeColorOfPart("Torso", torso, PartColorListConv.Find(x => x.ColorID == torso).ColorObject); ColorView.SelectedIndices.Clear();
ChangeColorOfPart("Left Arm", larm, PartColorListConv.Find(x => x.ColorID == larm).ColorObject); ChangeColorOfPart("Head", head, PartColorListConv.Find(x => x.ColorID == head).ColorObject);
ChangeColorOfPart("Right Arm", rarm, PartColorListConv.Find(x => x.ColorID == rarm).ColorObject); ChangeColorOfPart("Torso", torso, PartColorListConv.Find(x => x.ColorID == torso).ColorObject);
ChangeColorOfPart("Left Leg", lleg, PartColorListConv.Find(x => x.ColorID == lleg).ColorObject); ChangeColorOfPart("Left Arm", larm, PartColorListConv.Find(x => x.ColorID == larm).ColorObject);
ChangeColorOfPart("Right Leg", rleg, PartColorListConv.Find(x => x.ColorID == rleg).ColorObject); ChangeColorOfPart("Right Arm", rarm, PartColorListConv.Find(x => x.ColorID == rarm).ColorObject);
ChangeColorOfPart("Left Leg", lleg, PartColorListConv.Find(x => x.ColorID == lleg).ColorObject);
ChangeColorOfPart("Right Leg", rleg, PartColorListConv.Find(x => x.ColorID == rleg).ColorObject);
}
catch(Exception ex)
{
MessageBox.Show("Failed to load required colors for the preset.", "Novetus - Preset Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
ResetColors();
GlobalFuncs.LogExceptions(ex);
}
} }
public void ResetColors() public void ResetColors()

View File

@ -17,7 +17,7 @@ public partial class CharacterCustomizationCompact : Form
{ {
InitializeComponent(); InitializeComponent();
InitCompactForm(); InitCompactForm();
characterCustomizationForm.InitColors(); characterCustomizationForm.closeOnLaunch = !characterCustomizationForm.InitColors();
} }
#endregion #endregion

View File

@ -15,10 +15,9 @@ public partial class CharacterCustomizationExtended : Form
#region Constructor #region Constructor
public CharacterCustomizationExtended() public CharacterCustomizationExtended()
{ {
InitializeComponent(); InitializeComponent();
InitExtendedForm(); InitExtendedForm();
characterCustomizationForm.InitColors(); characterCustomizationForm.closeOnLaunch = !characterCustomizationForm.InitColors();
Size = new Size(671, 337); Size = new Size(671, 337);
panel2.Size = new Size(568, 302); panel2.Size = new Size(568, 302);
} }

View File

@ -10,7 +10,8 @@ Changes from 1.3 Pre-Release 4:
- Added "%args%" as the default ClientScript example. - Added "%args%" as the default ClientScript example.
- Improved the Green Screen map. - Improved the Green Screen map.
- Added more options to the Super Safe Chat menu. - Added more options to the Super Safe Chat menu.
- Added more items (details in full changelog) - Rebuilt 2006S in 2007E.
- Added more items and maps (details in full changelog)
Changes from 1.2.4.1: Changes from 1.2.4.1:
- The OBJ2MeshV1GUI, The Asset Localizer, and the Item SDK have been merged to form the Asset SDK! - The OBJ2MeshV1GUI, The Asset Localizer, and the Item SDK have been merged to form the Asset SDK!
- Works with the Roblox Asset Delivery API! Note: Script assetss wil have to be downloaded manually in order to be used in scripts. - Works with the Roblox Asset Delivery API! Note: Script assetss wil have to be downloaded manually in order to be used in scripts.
@ -191,8 +192,9 @@ Changes from 1.2.4.1:
- Changed the console text font. - Changed the console text font.
- Updated mesh converter to a modified version of Coke's Obj2RBXMesh converter (https://github.com/Novetus/ObjToRBXMesh) to the Asset SDK. - Updated mesh converter to a modified version of Coke's Obj2RBXMesh converter (https://github.com/Novetus/ObjToRBXMesh) to the Asset SDK.
- Added 35 new hats from the 2007 hat pack! (https://itch.io/t/893195/2007-hat-pack-v1, credit to Bobi MJ) - Added 35 new hats from the 2007 hat pack! (https://itch.io/t/893195/2007-hat-pack-v1, credit to Bobi MJ)
- Added 1 place: - Added 2 maps:
2007 - millons of Roblox. Kill them 2007 - millons of Roblox. Kill them
2011 - Survive The End Of The World (Survive The End Of Roblox)
- Added the following items: - Added the following items:
Hats: Hats:
Biology Textbook Biology Textbook

View File

@ -3,10 +3,10 @@ showServerNotifications = true
--function made by rbxbanland --function made by rbxbanland
function newWaitForChild(newParent,name) function newWaitForChild(newParent,name)
local returnable = nil local returnable = nil
if newParent:FindFirstChild(name) then if newParent:findFirstChild(name) then
returnable = newParent:FindFirstChild(name) returnable = newParent:findFirstChild(name)
else else
repeat wait() returnable = newParent:FindFirstChild(name) until returnable ~= nil repeat wait() returnable = newParent:findFirstChild(name) until returnable ~= nil
end end
return returnable return returnable
end end
@ -30,8 +30,8 @@ function newWaitForChildSecurity(newParent,name)
local loadAttempts = 0 local loadAttempts = 0
local maxAttempts = 5 local maxAttempts = 5
while loadAttempts < maxAttempts do while loadAttempts < maxAttempts do
if newParent:FindFirstChild(name) then if newParent:findFirstChild(name) then
returnable = newParent:FindFirstChild(name) returnable = newParent:findFirstChild(name)
break break
end end
wait() wait()
@ -47,8 +47,8 @@ function newWaitForChildSecurity(newParent,name)
end end
function LoadCharacterNew(playerApp,newChar) function LoadCharacterNew(playerApp,newChar)
PlayerService = game:GetService("Players") PlayerService = game:service("Players")
Player = PlayerService:GetPlayerFromCharacter(newChar) Player = PlayerService:playerFromCharacter(newChar)
local function kick() local function kick()
KickPlayer(Player, "Modified Client") KickPlayer(Player, "Modified Client")
@ -58,18 +58,18 @@ function LoadCharacterNew(playerApp,newChar)
kick() kick()
end end
if (not Player:FindFirstChild("Appearance")) then if (not Player:findFirstChild("Appearance")) then
kick() kick()
end end
if ((playerApp:GetChildren() == 0) or (playerApp:GetChildren() == nil)) then if ((playerApp:children() == 0) or (playerApp:children() == nil)) then
kick() kick()
end end
local path = "rbxasset://../../../shareddata/charcustom/" local path = "rbxasset://../../../shareddata/charcustom/"
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")} 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 for _,newVal in pairs(playerApp:children()) do
if (newVal.Name == "Body Color") then if (newVal.Name == "Body Color") then
pcall(function() pcall(function()
charparts[newVal.ColorIndex.Value].BrickColor = newVal.Value charparts[newVal.ColorIndex.Value].BrickColor = newVal.Value
@ -138,15 +138,15 @@ function LoadSecurity(playerApp,Player,ServerSecurityLocation)
kick() kick()
end end
if (not Player:FindFirstChild("Security")) then if (not Player:findFirstChild("Security")) then
kick() kick()
end end
if (not playerApp:FindFirstChild("ClientEXEMD5") or not playerApp:FindFirstChild("LauncherMD5") or not playerApp:FindFirstChild("ClientScriptMD5")) then if (not playerApp:findFirstChild("ClientEXEMD5") or not playerApp:findFirstChild("LauncherMD5") or not playerApp:findFirstChild("ClientScriptMD5")) then
kick() kick()
end end
for _,newVal in pairs(playerApp:GetChildren()) do for _,newVal in pairs(playerApp:children()) do
if (newVal.Name == "ClientEXEMD5") then if (newVal.Name == "ClientEXEMD5") then
if (newVal.Value ~= ServerSecurityLocation.Security.ClientEXEMD5.Value or newVal.Value == "") then if (newVal.Value ~= ServerSecurityLocation.Security.ClientEXEMD5.Value or newVal.Value == "") then
kick() kick()
@ -198,11 +198,11 @@ function LoadTripcode(Player)
KickPlayer(Player, "Modified Client") KickPlayer(Player, "Modified Client")
end end
if (not Player:FindFirstChild("Tripcode")) then if (not Player:findFirstChild("Tripcode")) then
kick() kick()
end end
for _,newVal in pairs(Player:GetChildren()) do for _,newVal in pairs(Player:children()) do
if (newVal.Name == "Tripcode") then if (newVal.Name == "Tripcode") then
if (newVal.Value == "") then if (newVal.Value == "") then
kick() kick()
@ -217,31 +217,31 @@ function PingMasterServer(online, ServerBrowserAddress, ServerBrowserName, Serve
game:httpGet(pingURL .. "&online=" .. online) game:httpGet(pingURL .. "&online=" .. online)
end end
print("ROBLOX Client version '0.3.512.0' loaded.") print("ROBLOX Client version '0.3.368.0' loaded.")
function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Notifications,ServerBrowserName,ServerBrowserAddress,ServerIP,Client) function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Notifications,ServerBrowserName,ServerBrowserAddress,ServerIP,Client)
Server = game:GetService("NetworkServer") Server = game:service("NetworkServer")
RunService = game:GetService("RunService") RunService = game:service("RunService")
PlayerService = game:GetService("Players") PlayerService = game:service("Players")
game:GetService("Visit"):SetUploadUrl("") game:service("Visit"):setUploadUrl("")
Server:start(Port, 20) Server:start(Port, 20)
RunService:run() RunService:run()
showServerNotifications = Notifications showServerNotifications = Notifications
game.Workspace:InsertContent("rbxasset://Fonts//libraries.rbxm") game.Workspace:insertContent("rbxasset://Fonts//libraries.rbxm")
if (showServerNotifications) then if (showServerNotifications) then
PlayerService.MaxPlayers = PlayerLimit + 1 PlayerService.maxPlayers = PlayerLimit + 1
--create a fake player to record connections and disconnections --create a fake player to record connections and disconnections
notifyPlayer = game:GetService("Players"):CreateLocalPlayer(-1) notifyPlayer = game:service("Players"):createLocalPlayer(-1)
notifyPlayer.Name = "[SERVER]" notifyPlayer.Name = "[SERVER]"
else else
PlayerService.MaxPlayers = PlayerLimit PlayerService.maxPlayers = PlayerLimit
end end
PlayerService.PlayerAdded:connect(function(Player) PlayerService.ChildAdded:connect(function(Player)
Player.Chatted:connect(function(msg) Player.Chatted:connect(function(msg)
print(Player.Name.."; "..msg) print(Player.Name.."; "..msg)
end) end)
if (PlayerService.NumPlayers > PlayerService.MaxPlayers) then if (PlayerService.numPlayers > PlayerService.maxPlayers) then
KickPlayer(Player, "Too many players on server.") KickPlayer(Player, "Too many players on server.")
else else
print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' added") print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' added")
@ -259,15 +259,15 @@ function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Noti
end end
-- rename all Server replicators in NetworkServer to "ServerReplicator" -- rename all Server replicators in NetworkServer to "ServerReplicator"
for _,Child in pairs(Server:GetChildren()) do for _,Child in pairs(Server:children()) do
Child.Name = "ServerReplicator" Child.Name = "ServerReplicator"
end end
coroutine.resume(coroutine.create(function() coroutine.resume(coroutine.create(function()
while Player ~= nil do while Player ~= nil do
wait(0.1) wait(0.1)
if (Player.Character:FindFirstChild("Humanoid") and (Player.Character.Humanoid.Health == 0)) then if (Player.Character ~= nil) then
if (Player.Character.Humanoid.Health == 0) then if (Player.Character:findFirstChild("Humanoid") and (Player.Character.Humanoid.Health == 0)) then
wait(5) wait(5)
Player:LoadCharacter() Player:LoadCharacter()
LoadCharacterNew(newWaitForChildSecurity(Player,"Appearance"),Player.Character) LoadCharacterNew(newWaitForChildSecurity(Player,"Appearance"),Player.Character)
@ -289,20 +289,21 @@ function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Noti
InitalizeSecurityValues(game.Lighting,ClientEXEMD5,LauncherMD5,ClientScriptMD5) InitalizeSecurityValues(game.Lighting,ClientEXEMD5,LauncherMD5,ClientScriptMD5)
PingMasterServer(1, ServerBrowserAddress, ServerBrowserName, ServerIP, Port, Client) PingMasterServer(1, ServerBrowserAddress, ServerBrowserName, ServerIP, Port, Client)
Server.IncommingConnection:connect(IncommingConnection) Server.IncommingConnection:connect(IncommingConnection)
pcall(function() game.Close:connect(function() PingMasterServer(0, ServerBrowserAddress, ServerBrowserName, ServerIP, Port, Client) Server:Stop() end) end) pcall(function() game.Close:connect(function() PingMasterServer(0, ServerBrowserAddress, ServerBrowserName, ServerIP, Port, Client) Server:stop() end) end)
end end
function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Tripcode,Ticket) function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Tripcode,Ticket)
local suc, err = pcall(function() local suc, err = pcall(function()
client = game:GetService("NetworkClient") client = game:service("NetworkClient")
player = game:GetService("Players"):CreateLocalPlayer(UserID) player = game:service("Players"):createLocalPlayer(UserID)
InitalizeSecurityValues(player,ClientEXEMD5,LauncherMD5,ClientScriptMD5) InitalizeSecurityValues(player,ClientEXEMD5,LauncherMD5,ClientScriptMD5)
InitalizeTripcode(player,Tripcode) InitalizeTripcode(player,Tripcode)
player:SetSuperSafeChat(false) player:SetSuperSafeChat(false)
pcall(function() player:SetUnder13(false) end) pcall(function() player:SetUnder13(false) end)
pcall(function() player:SetAccountAge(365) end) pcall(function() player:SetAccountAge(365) end)
player:SetAdminMode(true)
pcall(function() player.Name=PlayerName or "" end) pcall(function() player.Name=PlayerName or "" end)
game:GetService("Visit"):SetUploadUrl("") game:service("Visit"):setUploadUrl("")
InitalizeClientAppearance(player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID) InitalizeClientAppearance(player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID)
end) end)
@ -352,11 +353,11 @@ function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,He
client.ConnectionAccepted:connect(connected) client.ConnectionAccepted:connect(connected)
client.ConnectionRejected:connect(rejected) client.ConnectionRejected:connect(rejected)
client.ConnectionFailed:connect(failed) client.ConnectionFailed:connect(failed)
client:Connect(ServerIP,ServerPort, 0, 20) client:connect(ServerIP,ServerPort, 0, 20)
game.GuiRoot.MainMenu["Toolbox"]:Remove() game.GuiRoot.MainMenu["Toolbox"]:remove()
game.GuiRoot.MainMenu["Edit Mode"]:Remove() game.GuiRoot.MainMenu["Edit Mode"]:remove()
game.GuiRoot.RightPalette.ReportAbuse:Remove() game.GuiRoot.RightPalette.ReportAbuse:remove()
game.GuiRoot.ChatMenuPanel:Remove() game.GuiRoot.ChatMenuPanel:remove()
end) end)
if not suc then if not suc then
@ -368,18 +369,19 @@ function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,He
end end
function CSSolo(UserID,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID) function CSSolo(UserID,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID)
local plr = game.Players:CreateLocalPlayer(UserID) local plr = game.Players:createLocalPlayer(UserID)
game:GetService("RunService"):run() game:service("RunService"):run()
game.Workspace:InsertContent("rbxasset://Fonts//libraries.rbxm") game.Workspace:insertContent("rbxasset://Fonts//libraries.rbxm")
plr.Name = PlayerName plr.Name = PlayerName
plr:SetAdminMode(true)
plr:LoadCharacter() plr:LoadCharacter()
InitalizeClientAppearance(plr,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID) InitalizeClientAppearance(plr,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID)
LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character,false) LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character,false)
game:GetService("Visit"):SetUploadUrl("") game:service("Visit"):setUploadUrl("")
while true do while true do
wait(0.001) wait(0.001)
if (plr.Character ~= nil) then if (plr.Character ~= nil) then
if (plr.Character:FindFirstChild("Humanoid") and (plr.Character.Humanoid.Health == 0)) then if (plr.Character:findFirstChild("Humanoid") and (plr.Character.Humanoid.Health == 0)) then
wait(5) wait(5)
plr:LoadCharacter() plr:LoadCharacter()
LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character) LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character)
@ -398,4 +400,4 @@ end
_G.CSServer=CSServer _G.CSServer=CSServer
_G.CSConnect=CSConnect _G.CSConnect=CSConnect
_G.CSSolo=CSSolo _G.CSSolo=CSSolo
_G.CSStudio=CSStudio _G.CSStudio=CSStudio

View File

@ -3,10 +3,10 @@ showServerNotifications = true
--function made by rbxbanland --function made by rbxbanland
function newWaitForChild(newParent,name) function newWaitForChild(newParent,name)
local returnable = nil local returnable = nil
if newParent:FindFirstChild(name) then if newParent:findFirstChild(name) then
returnable = newParent:FindFirstChild(name) returnable = newParent:findFirstChild(name)
else else
repeat wait() returnable = newParent:FindFirstChild(name) until returnable ~= nil repeat wait() returnable = newParent:findFirstChild(name) until returnable ~= nil
end end
return returnable return returnable
end end
@ -30,8 +30,8 @@ function newWaitForChildSecurity(newParent,name)
local loadAttempts = 0 local loadAttempts = 0
local maxAttempts = 5 local maxAttempts = 5
while loadAttempts < maxAttempts do while loadAttempts < maxAttempts do
if newParent:FindFirstChild(name) then if newParent:findFirstChild(name) then
returnable = newParent:FindFirstChild(name) returnable = newParent:findFirstChild(name)
break break
end end
wait() wait()
@ -47,8 +47,8 @@ function newWaitForChildSecurity(newParent,name)
end end
function LoadCharacterNew(playerApp,newChar) function LoadCharacterNew(playerApp,newChar)
PlayerService = game:GetService("Players") PlayerService = game:service("Players")
Player = PlayerService:GetPlayerFromCharacter(newChar) Player = PlayerService:playerFromCharacter(newChar)
local function kick() local function kick()
KickPlayer(Player, "Modified Client") KickPlayer(Player, "Modified Client")
@ -58,18 +58,18 @@ function LoadCharacterNew(playerApp,newChar)
kick() kick()
end end
if (not Player:FindFirstChild("Appearance")) then if (not Player:findFirstChild("Appearance")) then
kick() kick()
end end
if ((playerApp:GetChildren() == 0) or (playerApp:GetChildren() == nil)) then if ((playerApp:children() == 0) or (playerApp:children() == nil)) then
kick() kick()
end end
local path = "rbxasset://../../../shareddata/charcustom/" local path = "rbxasset://../../../shareddata/charcustom/"
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")} 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 for _,newVal in pairs(playerApp:children()) do
if (newVal.Name == "Body Color") then if (newVal.Name == "Body Color") then
pcall(function() pcall(function()
charparts[newVal.ColorIndex.Value].BrickColor = newVal.Value charparts[newVal.ColorIndex.Value].BrickColor = newVal.Value
@ -138,15 +138,15 @@ function LoadSecurity(playerApp,Player,ServerSecurityLocation)
kick() kick()
end end
if (not Player:FindFirstChild("Security")) then if (not Player:findFirstChild("Security")) then
kick() kick()
end end
if (not playerApp:FindFirstChild("ClientEXEMD5") or not playerApp:FindFirstChild("LauncherMD5") or not playerApp:FindFirstChild("ClientScriptMD5")) then if (not playerApp:findFirstChild("ClientEXEMD5") or not playerApp:findFirstChild("LauncherMD5") or not playerApp:findFirstChild("ClientScriptMD5")) then
kick() kick()
end end
for _,newVal in pairs(playerApp:GetChildren()) do for _,newVal in pairs(playerApp:children()) do
if (newVal.Name == "ClientEXEMD5") then if (newVal.Name == "ClientEXEMD5") then
if (newVal.Value ~= ServerSecurityLocation.Security.ClientEXEMD5.Value or newVal.Value == "") then if (newVal.Value ~= ServerSecurityLocation.Security.ClientEXEMD5.Value or newVal.Value == "") then
kick() kick()
@ -198,11 +198,11 @@ function LoadTripcode(Player)
KickPlayer(Player, "Modified Client") KickPlayer(Player, "Modified Client")
end end
if (not Player:FindFirstChild("Tripcode")) then if (not Player:findFirstChild("Tripcode")) then
kick() kick()
end end
for _,newVal in pairs(Player:GetChildren()) do for _,newVal in pairs(Player:children()) do
if (newVal.Name == "Tripcode") then if (newVal.Name == "Tripcode") then
if (newVal.Value == "") then if (newVal.Value == "") then
kick() kick()
@ -217,31 +217,31 @@ function PingMasterServer(online, ServerBrowserAddress, ServerBrowserName, Serve
game:httpGet(pingURL .. "&online=" .. online) game:httpGet(pingURL .. "&online=" .. online)
end end
print("ROBLOX Client version '0.3.512.0' loaded.") print("ROBLOX Client version '0.3.368.0' loaded.")
function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Notifications,ServerBrowserName,ServerBrowserAddress,ServerIP,Client) function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Notifications,ServerBrowserName,ServerBrowserAddress,ServerIP,Client)
Server = game:GetService("NetworkServer") Server = game:service("NetworkServer")
RunService = game:GetService("RunService") RunService = game:service("RunService")
PlayerService = game:GetService("Players") PlayerService = game:service("Players")
game:GetService("Visit"):SetUploadUrl("") game:service("Visit"):setUploadUrl("")
Server:start(Port, 20) Server:start(Port, 20)
RunService:run() RunService:run()
showServerNotifications = Notifications showServerNotifications = Notifications
game.Workspace:InsertContent("rbxasset://Fonts//libraries.rbxm") game.Workspace:insertContent("rbxasset://Fonts//libraries.rbxm")
if (showServerNotifications) then if (showServerNotifications) then
PlayerService.MaxPlayers = PlayerLimit + 1 PlayerService.maxPlayers = PlayerLimit + 1
--create a fake player to record connections and disconnections --create a fake player to record connections and disconnections
notifyPlayer = game:GetService("Players"):CreateLocalPlayer(-1) notifyPlayer = game:service("Players"):createLocalPlayer(-1)
notifyPlayer.Name = "[SERVER]" notifyPlayer.Name = "[SERVER]"
else else
PlayerService.MaxPlayers = PlayerLimit PlayerService.maxPlayers = PlayerLimit
end end
PlayerService.PlayerAdded:connect(function(Player) PlayerService.ChildAdded:connect(function(Player)
Player.Chatted:connect(function(msg) Player.Chatted:connect(function(msg)
print(Player.Name.."; "..msg) print(Player.Name.."; "..msg)
end) end)
if (PlayerService.NumPlayers > PlayerService.MaxPlayers) then if (PlayerService.numPlayers > PlayerService.maxPlayers) then
KickPlayer(Player, "Too many players on server.") KickPlayer(Player, "Too many players on server.")
else else
print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' added") print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' added")
@ -259,7 +259,7 @@ function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Noti
end end
-- rename all Server replicators in NetworkServer to "ServerReplicator" -- rename all Server replicators in NetworkServer to "ServerReplicator"
for _,Child in pairs(Server:GetChildren()) do for _,Child in pairs(Server:children()) do
Child.Name = "ServerReplicator" Child.Name = "ServerReplicator"
end end
@ -267,7 +267,7 @@ function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Noti
while Player ~= nil do while Player ~= nil do
wait(0.1) wait(0.1)
if (Player.Character ~= nil) then if (Player.Character ~= nil) then
if (Player.Character:FindFirstChild("Humanoid") and (Player.Character.Humanoid.Health == 0)) then if (Player.Character:findFirstChild("Humanoid") and (Player.Character.Humanoid.Health == 0)) then
wait(5) wait(5)
Player:LoadCharacter() Player:LoadCharacter()
LoadCharacterNew(newWaitForChildSecurity(Player,"Appearance"),Player.Character) LoadCharacterNew(newWaitForChildSecurity(Player,"Appearance"),Player.Character)
@ -289,20 +289,21 @@ function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Noti
InitalizeSecurityValues(game.Lighting,ClientEXEMD5,LauncherMD5,ClientScriptMD5) InitalizeSecurityValues(game.Lighting,ClientEXEMD5,LauncherMD5,ClientScriptMD5)
PingMasterServer(1, ServerBrowserAddress, ServerBrowserName, ServerIP, Port, Client) PingMasterServer(1, ServerBrowserAddress, ServerBrowserName, ServerIP, Port, Client)
Server.IncommingConnection:connect(IncommingConnection) Server.IncommingConnection:connect(IncommingConnection)
pcall(function() game.Close:connect(function() PingMasterServer(0, ServerBrowserAddress, ServerBrowserName, ServerIP, Port, Client) Server:Stop() end) end) pcall(function() game.Close:connect(function() PingMasterServer(0, ServerBrowserAddress, ServerBrowserName, ServerIP, Port, Client) Server:stop() end) end)
end end
function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Tripcode,Ticket) function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Tripcode,Ticket)
local suc, err = pcall(function() local suc, err = pcall(function()
client = game:GetService("NetworkClient") client = game:service("NetworkClient")
player = game:GetService("Players"):CreateLocalPlayer(UserID) player = game:service("Players"):createLocalPlayer(UserID)
InitalizeSecurityValues(player,ClientEXEMD5,LauncherMD5,ClientScriptMD5) InitalizeSecurityValues(player,ClientEXEMD5,LauncherMD5,ClientScriptMD5)
InitalizeTripcode(player,Tripcode) InitalizeTripcode(player,Tripcode)
player:SetSuperSafeChat(false) player:SetSuperSafeChat(false)
pcall(function() player:SetUnder13(false) end) pcall(function() player:SetUnder13(false) end)
pcall(function() player:SetAccountAge(365) end) pcall(function() player:SetAccountAge(365) end)
player:SetAdminMode(true)
pcall(function() player.Name=PlayerName or "" end) pcall(function() player.Name=PlayerName or "" end)
game:GetService("Visit"):SetUploadUrl("") game:service("Visit"):setUploadUrl("")
InitalizeClientAppearance(player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID) InitalizeClientAppearance(player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID)
end) end)
@ -352,11 +353,11 @@ function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,He
client.ConnectionAccepted:connect(connected) client.ConnectionAccepted:connect(connected)
client.ConnectionRejected:connect(rejected) client.ConnectionRejected:connect(rejected)
client.ConnectionFailed:connect(failed) client.ConnectionFailed:connect(failed)
client:Connect(ServerIP,ServerPort, 0, 20) client:connect(ServerIP,ServerPort, 0, 20)
game.GuiRoot.MainMenu["Toolbox"]:Remove() game.GuiRoot.MainMenu["Toolbox"]:remove()
game.GuiRoot.MainMenu["Edit Mode"]:Remove() game.GuiRoot.MainMenu["Edit Mode"]:remove()
game.GuiRoot.RightPalette.ReportAbuse:Remove() game.GuiRoot.RightPalette.ReportAbuse:remove()
game.GuiRoot.ChatMenuPanel:Remove() game.GuiRoot.ChatMenuPanel:remove()
end) end)
if not suc then if not suc then
@ -368,18 +369,19 @@ function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,He
end end
function CSSolo(UserID,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID) function CSSolo(UserID,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,IconType,ItemID)
local plr = game.Players:CreateLocalPlayer(UserID) local plr = game.Players:createLocalPlayer(UserID)
game:GetService("RunService"):run() game:service("RunService"):run()
game.Workspace:InsertContent("rbxasset://Fonts//libraries.rbxm") game.Workspace:insertContent("rbxasset://Fonts//libraries.rbxm")
plr.Name = PlayerName plr.Name = PlayerName
plr:SetAdminMode(true)
plr:LoadCharacter() plr:LoadCharacter()
InitalizeClientAppearance(plr,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID) InitalizeClientAppearance(plr,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID)
LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character,false) LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character,false)
game:GetService("Visit"):SetUploadUrl("") game:service("Visit"):setUploadUrl("")
while true do while true do
wait(0.001) wait(0.001)
if (plr.Character ~= nil) then if (plr.Character ~= nil) then
if (plr.Character:FindFirstChild("Humanoid") and (plr.Character.Humanoid.Health == 0)) then if (plr.Character:findFirstChild("Humanoid") and (plr.Character.Humanoid.Health == 0)) then
wait(5) wait(5)
plr:LoadCharacter() plr:LoadCharacter()
LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character) LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character)
@ -398,4 +400,4 @@ end
_G.CSServer=CSServer _G.CSServer=CSServer
_G.CSConnect=CSConnect _G.CSConnect=CSConnect
_G.CSSolo=CSSolo _G.CSSolo=CSSolo
_G.CSStudio=CSStudio _G.CSStudio=CSStudio

View File

@ -143,14 +143,6 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso
indexValue.Parent = BodyColor indexValue.Parent = BodyColor
indexValue.Value = i indexValue.Value = i
end end
--T-SHIRT
local newTShirt = Instance.new("StringValue",newCharApp)
if (TShirtID ~= nil) then
newTShirt.Value = TShirtID
else
newTShirt.Value = "NoTShirt.rbxm"
end
newTShirt.Name = "T-Shirt"
--EXTRA --EXTRA
local newItem = Instance.new("StringValue",newCharApp) local newItem = Instance.new("StringValue",newCharApp)
if (ItemID ~= nil) then if (ItemID ~= nil) then

View File

@ -74,7 +74,6 @@ function LoadCharacterNew(playerApp,newChar)
pcall(function() pcall(function()
charparts[newVal.ColorIndex.Value].BrickColor = newVal.Value charparts[newVal.ColorIndex.Value].BrickColor = newVal.Value
end) end)
elseif (newVal.Name == "Extra") then elseif (newVal.Name == "Extra") then
pcall(function() pcall(function()
local newItem = game.Workspace:insertContent(path.."custom/"..newVal.Value) local newItem = game.Workspace:insertContent(path.."custom/"..newVal.Value)
@ -144,14 +143,6 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso
indexValue.Parent = BodyColor indexValue.Parent = BodyColor
indexValue.Value = i indexValue.Value = i
end end
--T-SHIRT
local newTShirt = Instance.new("StringValue",newCharApp)
if (TShirtID ~= nil) then
newTShirt.Value = TShirtID
else
newTShirt.Value = "NoTShirt.rbxm"
end
newTShirt.Name = "T-Shirt"
--EXTRA --EXTRA
local newItem = Instance.new("StringValue",newCharApp) local newItem = Instance.new("StringValue",newCharApp)
if (ItemID ~= nil) then if (ItemID ~= nil) then