Here you go: Decollisioner with comments to explain stuff.
function DeColProjectile::onCollision(%this,%obj,%col,%fade,%pos,%normal) //when the arrow hits something
{
if($Pref::server::Coladmin){ //if your preferences say you can
if(%obj.client.isadmin || %obj.client.issuperadmin){ //if you're an admin or superadmin
}else{
return;
}
}
if(%col.getclassname() $= "fxDTSBrick") //if the thing you hit is a brick
{
%trust = getTrustLevel(%obj.client, %col); //find out if you trust the brick's owner
if(%trust == 2 || %obj.client.issuperadmin){ //if you have full trust or are a super admin
if(%col.Colset == 0) //if the brick does collide
{
%col.setColliding(0); //make it not collide
messageClient(%obj.client,'',"Brick no longer collides!"); //tell them this
%col.Colset = 1; //set a variable to remember that
}else{
%col.setColliding(1);
%col.Colset = 0;
messageClient(%obj.client,'',"Brick now collides!"); //do the opposite
}
}else{
commandToClient(%obj.client, 'centerPrint', "" @ %col.client.name @ " does not trust you enough to do that."); //if you can't do this, tell them that
}
}
}
Everything after // is a comment.
That's all I'm helping you with.
Also, you have to change datablock names. If you change the bow to shoot lazers but it's still called 'bow', it'll overwrite it.