Author Topic: When A Player Steps Off A Brick  (Read 1016 times)



I would recommend using triggers:
http://forum.blockland.us/index.php?topic=192400.0
I don't know what to set the trigger shape and stuff to.

Code: [Select]
registerInputEvent("FxDTSBrick","onPlayerFirstTouch","Self fxDTSBrick" TAB "Player Player" TAB "Client GameConnection" TAB "MiniGame MiniGame");

package onPlayerFirstTouch
{
function FxDTSBrick::onPlayerTouch(%obj, %player)
{
if($Sim::Time - %player.lastTouchTime[%obj] > 0.3)
%obj.onPlayerFirstTouch(%obj,%player);

%player.lastTouchTime[%obj] = $Sim::Time;

return parent::onPlayerTouch(%obj, %player);
}

function FxDTSBrick::onPlayerFirstTouch(%obj, %player)
{
$InputTarget_["Self"] = %obj;
$InputTarget_["Player"] = %player;
$InputTarget_["Client"] = %player.client;

if($Server::LAN)
$InputTarget_["MiniGame"] = getMiniGameFromObject(%player.client);
else
{
if(getMiniGameFromObject(%this) == getMiniGameFromObject(%player.client))
$InputTarget_["MiniGame"] = getMiniGameFromObject(%obj);
else
$InputTarget_["MiniGame"] = 0;
}

%obj.processInputEvent(onPlayerFirstTouch, %player.client);
}
};
activatePackage(onPlayerFirstTouch);

At least for "on first touch" you don't need triggers or schedules.

(Note that onPlayerTouch only registers for one player at a time. If you step on a brick then someone else jumps on and off it can count as you leaving it in between - this way is consistent with how events work but not other uses e.g. capture points which check multiple players)

You might be able to save one timer/last touched brick instead of one variable per brick unless one player can trigger touch events on two bricks at once.
« Last Edit: June 05, 2012, 04:24:04 PM by Space Guy »