Blockland Forums > Modification Help
When A Player Steps Off A Brick
<< < (2/4) > >>
Placid:

--- Quote from: jes00 on June 04, 2012, 09:46:47 AM ---Care to explain?

--- End quote ---
if you don't know, events are coded by.. well, torque code. therefore, the zones created via someone's zone mod are not actually being created by the events, they're being created by code. you can make zones without events. if you want to know how i suggest you look at the zone events script, it'll probably help.
jes00:

--- Quote from: Port on June 04, 2012, 09:45:01 AM ---function fxDTSBrick::stopTouch( %this, %pl )
{
   // do something
}


When %pl (player) touches %obj (brick):

[*] cancel( %obj.stopTouch[ %pl ] );
[*] %obj.stopTouch[ %pl ] = %obj.schedule( tolerance, "stopTouch", %pl );

--- End quote ---
So like this?


--- Code: ---package Blah
{
function FxDTSBrick::stopTouch(%obj, %player)
{
%player.isTouchin[%obj] = false;
}

function FxDTSBrick::onPlayerTouch(%obj, %player)
{
parent::onPlayerTouch(%obj, %player);


%player.isTouchin[%obj] = true;

cancel(%obj.stopTouch[%player]);

%obj.stopTouch[%player] = %obj.schedule(50, "stopTouch", %player);
}
};
activatePackage(Blah);

--- End code ---
Then to check if their not touching the brick I can do if(!%player.isTouchin[%obj]) right?
Port:

--- Quote from: jes00 on June 04, 2012, 10:58:25 AM ---So like this?


--- Code: ---
--- End code ---
Then to check if their not touching the brick I can do if(!%player.isTouchin[%obj]) right?

--- End quote ---

Essentially. You don't need to package fxDTSBrick::stopTouch though.
jes00:

--- Quote from: Port on June 04, 2012, 11:10:45 AM ---You don't need to package fxDTSBrick::stopTouch though.

--- End quote ---
I know.

--- Quote from: Port on June 04, 2012, 11:10:45 AM ---Essentially.

--- End quote ---
Not working : /


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

package onPlayerFirstTouch
{
function FxDTSBrick::stopTouch(%obj, %player)
{
%player.isTouchin[%obj] = false;
}

function FxDTSBrick::onPlayerTouch(%obj, %player)
{
parent::onPlayerTouch(%obj, %player);


%player.isTouchin[%obj] = true;

cancel(%obj.stopTouch[%player]);

%obj.stopTouch[%player] = %obj.schedule(50, "stopTouch", %player);


if(!%player.isTouchin[%obj])
{
$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;
}
}

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

--- End code ---
phflack:

--- Code: --- if(!%player.isTouchin[%obj])
{
$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;
}
}

%this.processInputEvent(onPlayerFirstTouch, %player.client);
}

--- End code ---
this is never run, the if statement should always return false from

--- Code: ---%player.isTouchin[%obj] = true;

--- End code ---
Navigation
Message Index
Next page
Previous page

Go to full version