Blockland Forums > Modification Help
Processing onRelay.
(1/2) > >>
otto-san:
I'm trying to make a script that processes the input event onRelay on any bricks within a radius, I'm using a containerRadiusSearch to do this, and it doesn't seem to work. It only activates on the brick that the search is started at.

I tried processing a single brick in the console, and no matter what I did, it'd just process it on the brick that did the radius search, even when it wasn't included.


--- Code: ---if(isFile("Add-Ons/System_ReturnToBlockland/server.cs"))
{
if(!$RTB::RTBR_ServerControl_Hook)
exec("Add-Ons/System_ReturnToBlockland/RTBR_ServerControl_Hook.cs");
RTB_registerPref("Max. Radius","radiusRelay","$Pref::RadiusRelay::MaxRadius","int 1 100","Event_RadiusRelay", 32, 1, 1);
RTB_registerPref("Admin Only","radiusRelay","$Pref::RadiusRelay::AdminOnly","bool","Event_RadiusRelay", 0, 0, 1);
}

registerOutputEvent("fxDTSBrick", "radiusRelay", "int 0 "@$Pref::RadiusRelay::MaxRadius@" 0", 1);


function fxDTSBrick::radiusRelay(%brick, %radius, %client)
{
if(%radius > $Pref::RadiusRelay::MaxRadius)
%radius = $Pref::RadiusRelay::MaxRadius;
if(%radius <= 0)
return;
if($Pref::RadiusRelay::AdminOnly && (!%client.isAdmin && !%client.isSuperAdmin))
return;
%pos = %brick.position;
initContainerRadiusSearch(%pos, %radius, $TypeMasks::FxBrickObjectType);
for(%i = containerSearchNext(); %i != 0; %i = containerSearchNext())
{
if(%i != %brick)
%i.processInputEvent("OnRelay", %i);
}
}
--- End code ---
infiniteLoop:
Is that the valid arguments for process event?

You are saying %brick.processEvent(something, %brick)? Why are you putting brick in there again.
I could be wrong as I'm not at home to verify :/
Destiny/Zack0Wack0:
%brick.processInputEvent("onRelay",%client);
otto-san:

--- Quote from: Destiny/Zack0Wack0 on July 30, 2011, 10:47:40 PM ---%brick.processInputEvent("onRelay",%client);

--- End quote ---
Well, that makes sense, doesn't it!

Thanks.
otto-san:
It still only seems to affect the brick that activated it when doing the event, and if i processing onRelay from a brick that was in the radius.

If I try from one outside the radius, it seems to choose two random bricks other than the one that activated it and activate those.
Navigation
Message Index
Next page

Go to full version