In this case, when checking to see if %obj is an object, it returns false even when what I believe to be the object (a brick) is there.
// Activate Data
function JobBrickData::Activate(%datablock, %client, %obj)
{
if (!isObject(%obj))
{
return;
}
messageClient(%client, '', "\c3Employment Office");
messageClient(%client, '', "\c31. \c6Job list");
messageClient(%client, '', "\c32. \c6Specify job");
messageClient(%client, '', "\c33. \c6Get job");
messageClient(%client, '', "\c34. \c6Apply for Shop-Keeping License");
%client.activateDatablock = %datablock;
%client.activateState = 0;
return true;
}
the function for that brick is defined here and it IS in a package
function Player::activateStuff(%player)
{
Parent::activateStuff(%player);
// Retreive target
%obj = %player.GetObjectFromPOW($TypeMasks::fxBrickObjectType);
if (!isObject(%obj))
return 0;
%client = %player.client;
if (!%client.isInRP())
return 0;
// Avoid player press too many times
if (!%client.CheckLastAction(%obj))
return 0;
// Brick
if (%obj.getType() & $TypeMasks::fxBrickObjectType)
{
%datablock = %obj.getDataBlock();
// Info brick
if (%datablock.isInfoBrick)
{
%mods = %client.RPGUIMods;
%mod = strlwr(%datablock.mod);
%cmd = %datablock.guiCmd;
%name = %datablock.getName();
if (isFunction(%name, "Activate"))
{
if (%datablock.Activate(%client, %obj) != false)
{
messageClient(%client, '', "\c30. \c6Exit");
%client.ThrowLastActive();
}
}
// Invalid
else
{
commandToClient(%client, 'centerPrint', "\c2Invalid clickable brick.", 2);
}
%client.lastAction = $sim::time;
}
}
return 1;
}