DoublePost
Because I decided to do it.
I updated the download, so you can just click the link above.
At kalphiter's request, I just ripped most of this out of the OnPlayerSpawn event.
registerInputEvent("fxDTSBrick", "onReset", "Self fxDTSBrick" TAB "Player player" TAB "Client gameConnection");
$MinigameReset::List = inputEvent_GetInputEventIdx("onReset");
package MinigameReset
{
function MinigameSO::reset(%this, %client)
{
for(%i=0;%i<getWordCount($MinigameReset::List2);%i++)
{
%brick = getWord($MinigameReset::List2,%i);
if(isObject(%brick))
{
$inputTarget_self = %brick;
$inputTarget_client = %client;
$inputTarget_player = %client.player;
$inputTarget_miniGame = (isObject(getMiniGameFromObject(%client)))?getMiniGameFromObject(%client):0;
%brick.processInputEvent("OnReset", %client);
}
}
Parent::reset(%this, %client);
}
function serverCmdAddEvent(%client,%delay,%input,%target,%a,%b,%output,%para1,%para2,%para3,%para4)
{
if(%input == $MinigameReset::List)
{
$MinigameReset::List2 = addItemToList($MinigameReset::List2,%client.wrenchBrick);
}
return Parent::serverCmdAddEvent(%client,%delay,%input,%target,%a,%b,%output,%para1,%para2,%para3,%para4);
}
function serverCmdClearEvents(%client)
{
if(hasItemOnList($MinigameReset::List2,%client.wrenchBrick))
{
$MinigameReset::List2 = removeItemFromList($MinigameReset::List2,%client.wrenchBrick);
}
Parent::serverCmdClearEvents(%client);
}
function fxDtsBrick::onDeath(%brick)
{
if(hasItemOnList($MinigameReset::List2,%brick))
{
$MinigameReset::List2 = removeItemFromList($MinigameReset::List2,%brick);
}
Parent::onDeath(%brick);
}
};
activatePackage(MinigameReset);
function addItemToList(%string,%item)
{
if(hasItemOnList(%string,%item))
return %string;
if(%string $= "")
return %item;
else
return %string SPC %item;
}
function hasItemOnList(%string,%item)
{
for(%i=0;%i<getWordCount(%string);%i++)
{
if(getWord(%string,%i) $= %item)
return 1;
}
return 0;
}
function removeItemFromList(%string,%item)
{
if(!hasItemOnList(%string,%item))
return %string;
for(%i=0;%i<getWordCount(%string);%i++)
{
if(getWord(%string,%i) $= %item)
{
if(%i $= 0)
return getWords(%string,1,getWordCount(%string));
else if(%i $= getWordCount(%string)-1)
return getWords(%string,0,%i-1);
else
return getWords(%string,0,%i-1) SPC getWords(%string,%i+1,getWordCount(%string));
}
}
}