Your code should have the following parts:
various trigger and brick datablocks
myTriggerData::onEnterTrigger(%this, %trigger, %obj)
myTriggerData::onLeaveTrigger(%this, %trigger, %obj, %a)
myBrick::parseData(%this, %brick, %cl, %triggerStatus, %text)
package myPackage
{
function serverCmdmessageSent(%cl, %text)
};
This is an example I once wrote for a Jail RP, based heavily on code written by Iban for his city RPG
datablock fxDTSBrickData(BlackMarketBrick : brick2x4FData)
{
category = "Special";
subCategory = "JailRP";
uiName = "Black Market Brick";
JailRPBrickAdmin = true;
BlackMarket = true;
triggerDatablock = JailRPInputTriggerData;
triggerSize = "2 4 1";
trigger = 0;
};
datablock triggerData(JailRPInputTriggerData)
{
tickPeriodMS = 500;
parent = 0;
};
datablock PlayerData(PlayerJailRPArmor : PlayerStandardArmor)
{
canJet = false;
uiName = "Sprinter";
sprinter = true;
};
package JailRP
{
function serverCmdmessageSent(%cl, %text)
{
if(isObject(%cl.player) && isObject(%cl.JailRPTrigger) && isObject(%cl.JailRPTrigger.parent) && %cl.JailRPTrigger.parent.getDatablock().BlackMarket)
%cl.JailRPTrigger.parent.getDatablock().parseData(%cl.JailRPTrigger.parent, %cl, "", %text);
else
parent::serverCmdmessageSent(%cl, %text);
}
};
function JailRPInputTriggerData::onEnterTrigger(%this, %trigger, %obj)
{
if(!isObject(%obj.client))
{
return;
}
%obj.client.JailRPTrigger = %trigger;
%trigger.parent.getDatablock().parseData(%trigger.parent, %obj.client, true, "");
}
function JailRPInputTriggerData::onLeaveTrigger(%this, %trigger, %obj, %a)
{
if(!isObject(%obj.client))
{
return;
}
if(%obj.client.JailRPTrigger == %trigger)
{
%trigger.parent.getDatablock().parseData(%trigger.parent, %obj.client, false, "");
%obj.client.JailRPTrigger = "";
}
}
function BlackMarketBrick::parseData(%this, %brick, %cl, %triggerStatus, %text)
{
if(!$JailRP::active)
return;
if(%cl.tdmteam == 1 || !$JailRP::BlackMarket::Open)
return;
if(%triggerStatus !$= "")
{
if(%triggerStatus == true && %cl.BMstage $= "")
{
messageClient(%cl, '', "\c6This is the Black Market. What do you want?");
messageClient(%cl, '', "\c1You currently have \c2"@%cl.JailRPC@" \c1dollars.");
messageClient(%cl, '', "\c31 \c6- Gamble.");
messageClient(%cl, '', "\c32 \c6- Shop.");
messageClient(%cl, '', "\c33 \c6- Community Fund.");
%cl.BMstage = 0;
}
if(%triggerStatus == false && %cl.BMstage !$= "")
{
messageClient(%cl, '', "\c6See ya 'round, Buddy.");
%cl.BMstage = "";
}
return;
}
%input = strLwr(%text);
if(mFloor(%cl.BMstage) == 0)
{
//etc...
}
}