redid 2006s/2006s-shaders in 2007e, improved stability.
|
Before Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 251 B |
|
After Width: | Height: | Size: 262 B |
|
After Width: | Height: | Size: 251 B |
|
After Width: | Height: | Size: 248 B |
|
After Width: | Height: | Size: 253 B |
|
After Width: | Height: | Size: 248 B |
|
After Width: | Height: | Size: 246 B |
|
After Width: | Height: | Size: 252 B |
|
After Width: | Height: | Size: 251 B |
|
After Width: | Height: | Size: 227 B |
|
After Width: | Height: | Size: 227 B |
|
After Width: | Height: | Size: 227 B |
|
After Width: | Height: | Size: 269 B |
|
After Width: | Height: | Size: 269 B |
|
After Width: | Height: | Size: 269 B |
|
After Width: | Height: | Size: 283 B |
|
After Width: | Height: | Size: 290 B |
|
After Width: | Height: | Size: 314 B |
|
After Width: | Height: | Size: 290 B |
|
After Width: | Height: | Size: 250 B |
|
After Width: | Height: | Size: 234 B |
|
After Width: | Height: | Size: 222 B |
|
After Width: | Height: | Size: 234 B |
|
After Width: | Height: | Size: 229 B |
|
After Width: | Height: | Size: 229 B |
|
After Width: | Height: | Size: 229 B |
|
After Width: | Height: | Size: 231 B |
|
After Width: | Height: | Size: 227 B |
|
After Width: | Height: | Size: 231 B |
|
After Width: | Height: | Size: 253 B |
|
|
@ -34,6 +34,7 @@ class CharacterCustomizationShared
|
|||
public PictureBox Hat1Image, Hat2Image, Hat3Image, HeadImage, TShirtImage, ShirtImage, PantsImage, FaceImage, ExtraItemImage, IconImage;
|
||||
public ListView ColorView;
|
||||
private ImageList ColorImageList;
|
||||
public bool closeOnLaunch = false;
|
||||
#endregion
|
||||
|
||||
#region Constructor
|
||||
|
|
@ -42,7 +43,7 @@ class CharacterCustomizationShared
|
|||
|
||||
}
|
||||
|
||||
public void InitColors()
|
||||
public bool InitColors()
|
||||
{
|
||||
try
|
||||
{
|
||||
|
|
@ -51,7 +52,7 @@ class CharacterCustomizationShared
|
|||
PartColorList = PartColorLoader.GetPartColors();
|
||||
PartColorListConv = new List<PartColor>();
|
||||
PartColorListConv.AddRange(PartColorList);
|
||||
return;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -66,13 +67,19 @@ class CharacterCustomizationShared
|
|||
|
||||
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);
|
||||
Parent.Close();
|
||||
return false;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Form Event Functions
|
||||
public void InitForm()
|
||||
{
|
||||
if (closeOnLaunch)
|
||||
{
|
||||
Parent.Close();
|
||||
return;
|
||||
}
|
||||
|
||||
if (File.Exists(GlobalPaths.ConfigDir + "\\" + GlobalPaths.ContentProviderXMLName))
|
||||
{
|
||||
contentProviders = OnlineClothing.GetContentProviders();
|
||||
|
|
@ -542,13 +549,22 @@ class CharacterCustomizationShared
|
|||
|
||||
public void ApplyPreset(int head, int torso, int larm, int rarm, int lleg, int rleg)
|
||||
{
|
||||
ColorView.SelectedIndices.Clear();
|
||||
ChangeColorOfPart("Head", head, PartColorListConv.Find(x => x.ColorID == head).ColorObject);
|
||||
ChangeColorOfPart("Torso", torso, PartColorListConv.Find(x => x.ColorID == torso).ColorObject);
|
||||
ChangeColorOfPart("Left Arm", larm, PartColorListConv.Find(x => x.ColorID == larm).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);
|
||||
try
|
||||
{
|
||||
ColorView.SelectedIndices.Clear();
|
||||
ChangeColorOfPart("Head", head, PartColorListConv.Find(x => x.ColorID == head).ColorObject);
|
||||
ChangeColorOfPart("Torso", torso, PartColorListConv.Find(x => x.ColorID == torso).ColorObject);
|
||||
ChangeColorOfPart("Left Arm", larm, PartColorListConv.Find(x => x.ColorID == larm).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()
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ public partial class CharacterCustomizationCompact : Form
|
|||
{
|
||||
InitializeComponent();
|
||||
InitCompactForm();
|
||||
characterCustomizationForm.InitColors();
|
||||
characterCustomizationForm.closeOnLaunch = !characterCustomizationForm.InitColors();
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
|
|
|||
|
|
@ -15,10 +15,9 @@ public partial class CharacterCustomizationExtended : Form
|
|||
#region Constructor
|
||||
public CharacterCustomizationExtended()
|
||||
{
|
||||
InitializeComponent();
|
||||
InitializeComponent();
|
||||
InitExtendedForm();
|
||||
characterCustomizationForm.InitColors();
|
||||
|
||||
characterCustomizationForm.closeOnLaunch = !characterCustomizationForm.InitColors();
|
||||
Size = new Size(671, 337);
|
||||
panel2.Size = new Size(568, 302);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,8 @@ Changes from 1.3 Pre-Release 4:
|
|||
- Added "%args%" as the default ClientScript example.
|
||||
- Improved the Green Screen map.
|
||||
- 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:
|
||||
- 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.
|
||||
|
|
@ -191,8 +192,9 @@ Changes from 1.2.4.1:
|
|||
- 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.
|
||||
- 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
|
||||
2011 - Survive The End Of The World (Survive The End Of Roblox)
|
||||
- Added the following items:
|
||||
Hats:
|
||||
Biology Textbook
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@ showServerNotifications = true
|
|||
--function made by rbxbanland
|
||||
function newWaitForChild(newParent,name)
|
||||
local returnable = nil
|
||||
if newParent:FindFirstChild(name) then
|
||||
returnable = newParent:FindFirstChild(name)
|
||||
if newParent:findFirstChild(name) then
|
||||
returnable = newParent:findFirstChild(name)
|
||||
else
|
||||
repeat wait() returnable = newParent:FindFirstChild(name) until returnable ~= nil
|
||||
repeat wait() returnable = newParent:findFirstChild(name) until returnable ~= nil
|
||||
end
|
||||
return returnable
|
||||
end
|
||||
|
|
@ -30,8 +30,8 @@ function newWaitForChildSecurity(newParent,name)
|
|||
local loadAttempts = 0
|
||||
local maxAttempts = 5
|
||||
while loadAttempts < maxAttempts do
|
||||
if newParent:FindFirstChild(name) then
|
||||
returnable = newParent:FindFirstChild(name)
|
||||
if newParent:findFirstChild(name) then
|
||||
returnable = newParent:findFirstChild(name)
|
||||
break
|
||||
end
|
||||
wait()
|
||||
|
|
@ -47,8 +47,8 @@ function newWaitForChildSecurity(newParent,name)
|
|||
end
|
||||
|
||||
function LoadCharacterNew(playerApp,newChar)
|
||||
PlayerService = game:GetService("Players")
|
||||
Player = PlayerService:GetPlayerFromCharacter(newChar)
|
||||
PlayerService = game:service("Players")
|
||||
Player = PlayerService:playerFromCharacter(newChar)
|
||||
|
||||
local function kick()
|
||||
KickPlayer(Player, "Modified Client")
|
||||
|
|
@ -58,18 +58,18 @@ function LoadCharacterNew(playerApp,newChar)
|
|||
kick()
|
||||
end
|
||||
|
||||
if (not Player:FindFirstChild("Appearance")) then
|
||||
if (not Player:findFirstChild("Appearance")) then
|
||||
kick()
|
||||
end
|
||||
|
||||
if ((playerApp:GetChildren() == 0) or (playerApp:GetChildren() == nil)) then
|
||||
if ((playerApp:children() == 0) or (playerApp:children() == nil)) then
|
||||
kick()
|
||||
end
|
||||
|
||||
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")}
|
||||
for _,newVal in pairs(playerApp:GetChildren()) do
|
||||
for _,newVal in pairs(playerApp:children()) do
|
||||
if (newVal.Name == "Body Color") then
|
||||
pcall(function()
|
||||
charparts[newVal.ColorIndex.Value].BrickColor = newVal.Value
|
||||
|
|
@ -138,15 +138,15 @@ function LoadSecurity(playerApp,Player,ServerSecurityLocation)
|
|||
kick()
|
||||
end
|
||||
|
||||
if (not Player:FindFirstChild("Security")) then
|
||||
if (not Player:findFirstChild("Security")) then
|
||||
kick()
|
||||
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()
|
||||
end
|
||||
|
||||
for _,newVal in pairs(playerApp:GetChildren()) do
|
||||
for _,newVal in pairs(playerApp:children()) do
|
||||
if (newVal.Name == "ClientEXEMD5") then
|
||||
if (newVal.Value ~= ServerSecurityLocation.Security.ClientEXEMD5.Value or newVal.Value == "") then
|
||||
kick()
|
||||
|
|
@ -198,11 +198,11 @@ function LoadTripcode(Player)
|
|||
KickPlayer(Player, "Modified Client")
|
||||
end
|
||||
|
||||
if (not Player:FindFirstChild("Tripcode")) then
|
||||
if (not Player:findFirstChild("Tripcode")) then
|
||||
kick()
|
||||
end
|
||||
|
||||
for _,newVal in pairs(Player:GetChildren()) do
|
||||
for _,newVal in pairs(Player:children()) do
|
||||
if (newVal.Name == "Tripcode") then
|
||||
if (newVal.Value == "") then
|
||||
kick()
|
||||
|
|
@ -217,31 +217,31 @@ function PingMasterServer(online, ServerBrowserAddress, ServerBrowserName, Serve
|
|||
game:httpGet(pingURL .. "&online=" .. online)
|
||||
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)
|
||||
Server = game:GetService("NetworkServer")
|
||||
RunService = game:GetService("RunService")
|
||||
PlayerService = game:GetService("Players")
|
||||
game:GetService("Visit"):SetUploadUrl("")
|
||||
Server = game:service("NetworkServer")
|
||||
RunService = game:service("RunService")
|
||||
PlayerService = game:service("Players")
|
||||
game:service("Visit"):setUploadUrl("")
|
||||
Server:start(Port, 20)
|
||||
RunService:run()
|
||||
showServerNotifications = Notifications
|
||||
game.Workspace:InsertContent("rbxasset://Fonts//libraries.rbxm")
|
||||
game.Workspace:insertContent("rbxasset://Fonts//libraries.rbxm")
|
||||
if (showServerNotifications) then
|
||||
PlayerService.MaxPlayers = PlayerLimit + 1
|
||||
PlayerService.maxPlayers = PlayerLimit + 1
|
||||
--create a fake player to record connections and disconnections
|
||||
notifyPlayer = game:GetService("Players"):CreateLocalPlayer(-1)
|
||||
notifyPlayer = game:service("Players"):createLocalPlayer(-1)
|
||||
notifyPlayer.Name = "[SERVER]"
|
||||
else
|
||||
PlayerService.MaxPlayers = PlayerLimit
|
||||
PlayerService.maxPlayers = PlayerLimit
|
||||
end
|
||||
PlayerService.PlayerAdded:connect(function(Player)
|
||||
PlayerService.ChildAdded:connect(function(Player)
|
||||
Player.Chatted:connect(function(msg)
|
||||
print(Player.Name.."; "..msg)
|
||||
end)
|
||||
|
||||
if (PlayerService.NumPlayers > PlayerService.MaxPlayers) then
|
||||
if (PlayerService.numPlayers > PlayerService.maxPlayers) then
|
||||
KickPlayer(Player, "Too many players on server.")
|
||||
else
|
||||
print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' added")
|
||||
|
|
@ -259,15 +259,15 @@ function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Noti
|
|||
end
|
||||
|
||||
-- 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"
|
||||
end
|
||||
|
||||
coroutine.resume(coroutine.create(function()
|
||||
while Player ~= nil do
|
||||
wait(0.1)
|
||||
if (Player.Character:FindFirstChild("Humanoid") and (Player.Character.Humanoid.Health == 0)) then
|
||||
if (Player.Character.Humanoid.Health == 0) then
|
||||
if (Player.Character ~= nil) then
|
||||
if (Player.Character:findFirstChild("Humanoid") and (Player.Character.Humanoid.Health == 0)) then
|
||||
wait(5)
|
||||
Player:LoadCharacter()
|
||||
LoadCharacterNew(newWaitForChildSecurity(Player,"Appearance"),Player.Character)
|
||||
|
|
@ -289,20 +289,21 @@ function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Noti
|
|||
InitalizeSecurityValues(game.Lighting,ClientEXEMD5,LauncherMD5,ClientScriptMD5)
|
||||
PingMasterServer(1, ServerBrowserAddress, ServerBrowserName, ServerIP, Port, Client)
|
||||
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
|
||||
|
||||
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()
|
||||
client = game:GetService("NetworkClient")
|
||||
player = game:GetService("Players"):CreateLocalPlayer(UserID)
|
||||
client = game:service("NetworkClient")
|
||||
player = game:service("Players"):createLocalPlayer(UserID)
|
||||
InitalizeSecurityValues(player,ClientEXEMD5,LauncherMD5,ClientScriptMD5)
|
||||
InitalizeTripcode(player,Tripcode)
|
||||
player:SetSuperSafeChat(false)
|
||||
pcall(function() player:SetUnder13(false) end)
|
||||
pcall(function() player:SetAccountAge(365) end)
|
||||
player:SetAdminMode(true)
|
||||
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)
|
||||
end)
|
||||
|
||||
|
|
@ -352,11 +353,11 @@ function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,He
|
|||
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()
|
||||
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
|
||||
|
|
@ -368,18 +369,19 @@ function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,He
|
|||
end
|
||||
|
||||
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)
|
||||
game:GetService("RunService"):run()
|
||||
game.Workspace:InsertContent("rbxasset://Fonts//libraries.rbxm")
|
||||
local plr = game.Players:createLocalPlayer(UserID)
|
||||
game:service("RunService"):run()
|
||||
game.Workspace:insertContent("rbxasset://Fonts//libraries.rbxm")
|
||||
plr.Name = PlayerName
|
||||
plr:SetAdminMode(true)
|
||||
plr:LoadCharacter()
|
||||
InitalizeClientAppearance(plr,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID)
|
||||
LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character,false)
|
||||
game:GetService("Visit"):SetUploadUrl("")
|
||||
game:service("Visit"):setUploadUrl("")
|
||||
while true do
|
||||
wait(0.001)
|
||||
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)
|
||||
plr:LoadCharacter()
|
||||
LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character)
|
||||
|
|
@ -398,4 +400,4 @@ end
|
|||
_G.CSServer=CSServer
|
||||
_G.CSConnect=CSConnect
|
||||
_G.CSSolo=CSSolo
|
||||
_G.CSStudio=CSStudio
|
||||
_G.CSStudio=CSStudio
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@ showServerNotifications = true
|
|||
--function made by rbxbanland
|
||||
function newWaitForChild(newParent,name)
|
||||
local returnable = nil
|
||||
if newParent:FindFirstChild(name) then
|
||||
returnable = newParent:FindFirstChild(name)
|
||||
if newParent:findFirstChild(name) then
|
||||
returnable = newParent:findFirstChild(name)
|
||||
else
|
||||
repeat wait() returnable = newParent:FindFirstChild(name) until returnable ~= nil
|
||||
repeat wait() returnable = newParent:findFirstChild(name) until returnable ~= nil
|
||||
end
|
||||
return returnable
|
||||
end
|
||||
|
|
@ -30,8 +30,8 @@ function newWaitForChildSecurity(newParent,name)
|
|||
local loadAttempts = 0
|
||||
local maxAttempts = 5
|
||||
while loadAttempts < maxAttempts do
|
||||
if newParent:FindFirstChild(name) then
|
||||
returnable = newParent:FindFirstChild(name)
|
||||
if newParent:findFirstChild(name) then
|
||||
returnable = newParent:findFirstChild(name)
|
||||
break
|
||||
end
|
||||
wait()
|
||||
|
|
@ -47,8 +47,8 @@ function newWaitForChildSecurity(newParent,name)
|
|||
end
|
||||
|
||||
function LoadCharacterNew(playerApp,newChar)
|
||||
PlayerService = game:GetService("Players")
|
||||
Player = PlayerService:GetPlayerFromCharacter(newChar)
|
||||
PlayerService = game:service("Players")
|
||||
Player = PlayerService:playerFromCharacter(newChar)
|
||||
|
||||
local function kick()
|
||||
KickPlayer(Player, "Modified Client")
|
||||
|
|
@ -58,18 +58,18 @@ function LoadCharacterNew(playerApp,newChar)
|
|||
kick()
|
||||
end
|
||||
|
||||
if (not Player:FindFirstChild("Appearance")) then
|
||||
if (not Player:findFirstChild("Appearance")) then
|
||||
kick()
|
||||
end
|
||||
|
||||
if ((playerApp:GetChildren() == 0) or (playerApp:GetChildren() == nil)) then
|
||||
if ((playerApp:children() == 0) or (playerApp:children() == nil)) then
|
||||
kick()
|
||||
end
|
||||
|
||||
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")}
|
||||
for _,newVal in pairs(playerApp:GetChildren()) do
|
||||
for _,newVal in pairs(playerApp:children()) do
|
||||
if (newVal.Name == "Body Color") then
|
||||
pcall(function()
|
||||
charparts[newVal.ColorIndex.Value].BrickColor = newVal.Value
|
||||
|
|
@ -138,15 +138,15 @@ function LoadSecurity(playerApp,Player,ServerSecurityLocation)
|
|||
kick()
|
||||
end
|
||||
|
||||
if (not Player:FindFirstChild("Security")) then
|
||||
if (not Player:findFirstChild("Security")) then
|
||||
kick()
|
||||
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()
|
||||
end
|
||||
|
||||
for _,newVal in pairs(playerApp:GetChildren()) do
|
||||
for _,newVal in pairs(playerApp:children()) do
|
||||
if (newVal.Name == "ClientEXEMD5") then
|
||||
if (newVal.Value ~= ServerSecurityLocation.Security.ClientEXEMD5.Value or newVal.Value == "") then
|
||||
kick()
|
||||
|
|
@ -198,11 +198,11 @@ function LoadTripcode(Player)
|
|||
KickPlayer(Player, "Modified Client")
|
||||
end
|
||||
|
||||
if (not Player:FindFirstChild("Tripcode")) then
|
||||
if (not Player:findFirstChild("Tripcode")) then
|
||||
kick()
|
||||
end
|
||||
|
||||
for _,newVal in pairs(Player:GetChildren()) do
|
||||
for _,newVal in pairs(Player:children()) do
|
||||
if (newVal.Name == "Tripcode") then
|
||||
if (newVal.Value == "") then
|
||||
kick()
|
||||
|
|
@ -217,31 +217,31 @@ function PingMasterServer(online, ServerBrowserAddress, ServerBrowserName, Serve
|
|||
game:httpGet(pingURL .. "&online=" .. online)
|
||||
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)
|
||||
Server = game:GetService("NetworkServer")
|
||||
RunService = game:GetService("RunService")
|
||||
PlayerService = game:GetService("Players")
|
||||
game:GetService("Visit"):SetUploadUrl("")
|
||||
Server = game:service("NetworkServer")
|
||||
RunService = game:service("RunService")
|
||||
PlayerService = game:service("Players")
|
||||
game:service("Visit"):setUploadUrl("")
|
||||
Server:start(Port, 20)
|
||||
RunService:run()
|
||||
showServerNotifications = Notifications
|
||||
game.Workspace:InsertContent("rbxasset://Fonts//libraries.rbxm")
|
||||
game.Workspace:insertContent("rbxasset://Fonts//libraries.rbxm")
|
||||
if (showServerNotifications) then
|
||||
PlayerService.MaxPlayers = PlayerLimit + 1
|
||||
PlayerService.maxPlayers = PlayerLimit + 1
|
||||
--create a fake player to record connections and disconnections
|
||||
notifyPlayer = game:GetService("Players"):CreateLocalPlayer(-1)
|
||||
notifyPlayer = game:service("Players"):createLocalPlayer(-1)
|
||||
notifyPlayer.Name = "[SERVER]"
|
||||
else
|
||||
PlayerService.MaxPlayers = PlayerLimit
|
||||
PlayerService.maxPlayers = PlayerLimit
|
||||
end
|
||||
PlayerService.PlayerAdded:connect(function(Player)
|
||||
PlayerService.ChildAdded:connect(function(Player)
|
||||
Player.Chatted:connect(function(msg)
|
||||
print(Player.Name.."; "..msg)
|
||||
end)
|
||||
|
||||
if (PlayerService.NumPlayers > PlayerService.MaxPlayers) then
|
||||
if (PlayerService.numPlayers > PlayerService.maxPlayers) then
|
||||
KickPlayer(Player, "Too many players on server.")
|
||||
else
|
||||
print("Player '" .. Player.Name .. "' with ID '" .. Player.userId .. "' added")
|
||||
|
|
@ -259,7 +259,7 @@ function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Noti
|
|||
end
|
||||
|
||||
-- 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"
|
||||
end
|
||||
|
||||
|
|
@ -267,7 +267,7 @@ function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Noti
|
|||
while Player ~= nil do
|
||||
wait(0.1)
|
||||
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)
|
||||
Player:LoadCharacter()
|
||||
LoadCharacterNew(newWaitForChildSecurity(Player,"Appearance"),Player.Character)
|
||||
|
|
@ -289,20 +289,21 @@ function CSServer(Port,PlayerLimit,ClientEXEMD5,LauncherMD5,ClientScriptMD5,Noti
|
|||
InitalizeSecurityValues(game.Lighting,ClientEXEMD5,LauncherMD5,ClientScriptMD5)
|
||||
PingMasterServer(1, ServerBrowserAddress, ServerBrowserName, ServerIP, Port, Client)
|
||||
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
|
||||
|
||||
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()
|
||||
client = game:GetService("NetworkClient")
|
||||
player = game:GetService("Players"):CreateLocalPlayer(UserID)
|
||||
client = game:service("NetworkClient")
|
||||
player = game:service("Players"):createLocalPlayer(UserID)
|
||||
InitalizeSecurityValues(player,ClientEXEMD5,LauncherMD5,ClientScriptMD5)
|
||||
InitalizeTripcode(player,Tripcode)
|
||||
player:SetSuperSafeChat(false)
|
||||
pcall(function() player:SetUnder13(false) end)
|
||||
pcall(function() player:SetAccountAge(365) end)
|
||||
player:SetAdminMode(true)
|
||||
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)
|
||||
end)
|
||||
|
||||
|
|
@ -352,11 +353,11 @@ function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,He
|
|||
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()
|
||||
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
|
||||
|
|
@ -368,18 +369,19 @@ function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,He
|
|||
end
|
||||
|
||||
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)
|
||||
game:GetService("RunService"):run()
|
||||
game.Workspace:InsertContent("rbxasset://Fonts//libraries.rbxm")
|
||||
local plr = game.Players:createLocalPlayer(UserID)
|
||||
game:service("RunService"):run()
|
||||
game.Workspace:insertContent("rbxasset://Fonts//libraries.rbxm")
|
||||
plr.Name = PlayerName
|
||||
plr:SetAdminMode(true)
|
||||
plr:LoadCharacter()
|
||||
InitalizeClientAppearance(plr,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,HeadID,ItemID)
|
||||
LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character,false)
|
||||
game:GetService("Visit"):SetUploadUrl("")
|
||||
game:service("Visit"):setUploadUrl("")
|
||||
while true do
|
||||
wait(0.001)
|
||||
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)
|
||||
plr:LoadCharacter()
|
||||
LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character)
|
||||
|
|
@ -398,4 +400,4 @@ end
|
|||
_G.CSServer=CSServer
|
||||
_G.CSConnect=CSConnect
|
||||
_G.CSSolo=CSSolo
|
||||
_G.CSStudio=CSStudio
|
||||
_G.CSStudio=CSStudio
|
||||
|
|
|
|||
|
|
@ -143,14 +143,6 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso
|
|||
indexValue.Parent = BodyColor
|
||||
indexValue.Value = i
|
||||
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
|
||||
local newItem = Instance.new("StringValue",newCharApp)
|
||||
if (ItemID ~= nil) then
|
||||
|
|
|
|||
|
|
@ -74,7 +74,6 @@ function LoadCharacterNew(playerApp,newChar)
|
|||
pcall(function()
|
||||
charparts[newVal.ColorIndex.Value].BrickColor = newVal.Value
|
||||
end)
|
||||
|
||||
elseif (newVal.Name == "Extra") then
|
||||
pcall(function()
|
||||
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.Value = i
|
||||
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
|
||||
local newItem = Instance.new("StringValue",newCharApp)
|
||||
if (ItemID ~= nil) then
|
||||
|
|
|
|||