Author Topic: 2018/10/20 - Blockland r1991-r1997  (Read 5319 times)

next major update needs a modter terrain generator
it needs terrain and interiors + modter terrain gen

it needs terrain and interiors + modter terrain gen
it needs to autorevoke anyone that complains about maps being gone

terrain and interiors sucked anyways fight me

Retail Blockland has had shadows and shaders 1 year longer than it had interiors and terrain.

Retail Blockland has had shadows and shaders 1 year longer than it had interiors and terrain.
top 10 bruh moments

I'm experiencing callback errors in console when being killed by a ball in mid-air - I assume this happens with any vehicle because there is no client for the name/sfx

Note: I was playing on LAN with a clean install of blockland "portable" (runMe.bat) when I discovered this

Hey Badspot do this
Code: [Select]
function loadClientAddOns()
{
exec("base/server/crapOns_Cache.cs");
echo("");

%search = "Add-Ons/*/client.cs";
%sorter = new GuiTextListCtrl();

%i = 0;
for(%file = findFirstFile(%search); isFile(%file); %file = findNextFile(%search))
{
%fileName = getSubStr(filePath(%file), 8, strLen(filePath(%file)) - 8);

%sorter.addRow(%i, %fileName);

%i++;
}

%sorter.sort(0, 1);
%count = %sorter.rowCount();

for(%i = 0; %i < %count; %i++)
{
%fileName = %sorter.getRowText(%i);

echo("Client checking Add-On:" SPC %fileName);

if(clientIsValidAddOn(%fileName, true))
{
if(ClientVerifyAddOnScripts(%fileName))
{
if(isFile(%zip = "Add-Ons/" @ %fileName @ ".zip"))
%crc = "\c1(CRC :" @ getFileCRC(%zip) @ ")";

echo("\c4Loading Add-On:" SPC %fileName SPC %crc);

%crc = "";

exec("Add-Ons/" @ %fileName @ "/client.cs");
}
}

echo("");
}

%sorter.delete();
}

function updateAddOnList()
{
echo("");
echo("");
echo("--------- Updating Add-On List ---------");

exec("config/server/ADD_ON_LIST.cs");
exec("base/server/crapOns_Cache.cs");

if(isObject($FixAddOnSorting::Sorter))
$FixAddOnSorting::Sorter.delete();

%search = "Add-Ons/*/server.cs";

$FixAddOnSorting::Sorter = new GuiTextListCtrl();

%i = 0;
for(%file = findFirstFile(%search); isFile(%file); %file = findNextFile(%search))
{
%fileName = getSubStr(filePath(%file), 8, strLen(filePath(%file)) - 8);

if($AddOn__[%fileName])
{
$FixAddOnSorting::Sorter.addRow(%i, %fileName);

%i++;
}
}

$FixAddOnSorting::Sorter.sort(0, 1);
%count = $FixAddOnSorting::Sorter.rowCount();

for(%i = 0; %i < %count; %i++)
{
%fileName = $FixAddOnSorting::Sorter.getRowText(%i);

echo("Checking Add-On" SPC %fileName);

if(!isValidAddOn(%fileName, 1))
{
$FixAddOnSorting::Sorter.removeRow(%i);
}
}

echo("");
}

function loadAddOns()
{
updateAddOnList();

echo("---------  Loading Add-Ons ---------");

if(!isObject($FixAddOnSorting::Sorter))
return;

%count = $FixAddOnSorting::Sorter.rowCount();

for(%i = 0; %i < %count; %i++)
{
%fileName = $FixAddOnSorting::Sorter.getRowText(%i);

if(isValidAddOn(%fileName, true))
{
if(isFile(%zip = "Add-Ons/" @ %fileName @ ".zip"))
%crc = "\c1(CRC :" @ getFileCRC(%zip) @ ")";

echo("\c4Loading Add-On:" SPC %fileName SPC %crc);

%crc = "";

if(VerifyAddOnScripts(%fileName))
{
%preCount = getDataBlockGroupSize();

exec("Add-Ons/" @ %fileName @ "/server.cs");

%dataAdded = getDataBlockGroupSize() - %preCount;

echo("\c1" @ %dataAdded SPC "datablocks added.");
}
}

echo("");
}

echo("");

$FixAddOnSorting::Sorter.delete();
}

function customGameGui::sortAddOnList(%gui)
{
%sorter = new GuiTextListCtrl();
%count = $CustomGameGui::AddOnCount;

for(%i = 0; %i < %count; %i++)
{
%sorter.addRow(%i, $CustomGameGui::AddOn[%i]);
}

%sorter.sort(0, 0);

for(%i = 0; %i < %count; %i++)
{
$CustomGameGui::AddOn[%i] = %sorter.getRowText(%i);
}

%sorter.delete();
}

package Client_FixAddOnSorting
{
function customGameGui::populateAddOnList(%gui)
{
parent::populateAddonList(%gui);

%gui.sortAddOnList();
}
};
activatePackage(Client_FixAddOnSorting);
Fixes the client and server add on execute order for Linux, and the Macs that have that problem too. Also fixes the custom game GUI add-on list that's messed up by the same thing.
« Last Edit: November 30, 2018, 07:19:41 AM by jes00 »

Hey Badspot do this
*code snip*
Fixes the client and server add on execute order for Linux, and the Macs that have that problem too. Also fixes the custom game GUI add-on list that's messed up by the same thing.

Shouldn't you also delete the object used to sort the list?

Also, if you want Badspot to fix this, why can't he do it internally which is faster?

Other than that, this is a great suggestion and I wonder why it hasn't been fixed already.

Shouldn't you also delete the object used to sort the list?
Whoops.
Also, if you want Badspot to fix this, why can't he do it internally which is faster?
¯\_(ツ)_/¯
He can just plug this right in if he wants to be lazy :P
« Last Edit: November 30, 2018, 07:24:11 AM by jes00 »