Blockland Forums > Modification Help
Toppling entire structures with fakeKillBrick.
Mr. Wallet:
I helped him on ietherpad
Nexus:
--- Quote from: otto-san on August 29, 2011, 10:57:54 PM ---I may just be too tired to think, but this is the code I have right now.
--- Code: ---function testTopple(%obj) { if(%obj.getClassName() $= "fxDTSBrick") { for(%i = 0; %i < %obj.getNumUpBricks(); %i++) { %obj.getUpBrick(%i).fakeKillBrick("0 0 0", 15); } } }
--- End code ---
--- End quote ---
Up bricks are only the bricks that are touching a brick on top. This is what I did for my Client_Duplicator:
--- Code: ---for(%a=0; %a<buildbot_SavingSO.brickcount; %a++)
{
if(%a >= $buildbot::maxdup)
{
buildbot_SavingSO.brickcount = %a;
break;
}
%homebrick = buildbot_SavingSO.brick[%a];
if(%a) //don't want to get bricks below first one.
{
for(%b=0; %b<%homebrick.getnumdownbricks(); %b++)
{
%testbrick = %homebrick.getdownbrick(%b);
if(buildbot_SavingSO.brickid[%testbrick] $= "")
{
buildbot_SavingSO.brick[buildbot_SavingSO.brickcount] = %testbrick;
buildbot_SavingSO.brickid[%testbrick] = true;
buildbot_SavingSO.brickcount++;
}
}
}
for(%b=0; %b<%homebrick.getnumupbricks(); %b++)
{
%testbrick = %homebrick.getupbrick(%b);
if(buildbot_SavingSO.brickid[%testbrick] $= "")
{
buildbot_SavingSO.brick[buildbot_SavingSO.brickcount] = %testbrick;
buildbot_SavingSO.brickid[%testbrick] = true;
buildbot_SavingSO.brickcount++;
}
}
}
--- End code ---
To adapt this code, you would the loop through all the bricks that were added to buildbot_savingso and fake kill them.
otto-san:
I was adapting it into something that looks similar to that. Thanks to the both of you.
Destiny/Zack0Wack0:
It won't be laggy unless it's a massive structure, and note that there's a limit to the amount of fake killed bricks that will have physics applied to them.
Chrono:
--- Quote from: Destiny/Zack0Wack0 on August 30, 2011, 03:51:20 AM ---It won't be laggy unless it's a massive structure, and note that there's a limit to the amount of fake killed bricks that will have physics applied to them.
--- End quote ---
Wasn't it 400? Let me double check.
Edit: Close.
$pref::Physics::MaxBricks = 300;
This is what it gets set to when you set it to 'best'.
I'm not sure if tweaking this would do anything.