function CityRPGXATMBrickData::parseData(%this, %brick, %client, %triggerStatus, %text)
{
if(%triggerStatus !$= "")
{
if(%triggerStatus == true && %client.stage $= "")
{
messageClient(%client, '', "\c6Welcome to BlockATM.");
if(CityRPGXData.getData(%client.bl_id).valueBank > 0)
{
messageClient(%client, '', "\c6- You have \c3$" @ CityRPGXData.getData(%client.bl_id).valueBank SPC "\c6in your account.");
}
messageClient(%client, '', "\c31 \c6- Withdraw money.");
messageClient(%client, '', "\c32 \c6- Hack ATM.");
%client.stage = 0;
}
if(%triggerStatus == false && %client.stage !$= "")
{
messageClient(%client, '', "\c6Logging out..");
%client.stage = "";
}
return;
}
%input = strLwr(%text);
if(mFloor(%client.stage) == 0)
{
if(strReplace(%input, "1", "") !$= %input || strReplace(%input, "one", "") !$= %input)
{
%client.stage = 1.1;
messageClient(%client, '', "\c6Withdraw amount:");
return;
}
if(strReplace(%input, "2", "") !$= %input || strReplace(%input, "two", "") !$= %input)
{
%client.stage = 1.2;
if(CityRPGXData.getData(%client.bl_id).valueEducation >= $CityRPGX::pref::hack::education)
{
%stealchance = getRandom(1,2);
%caughtchance = getRandom(1,4);
%lockoutchance = getRandom(1,3);
%beencaught = 0;
for(%a = 0; %a < ClientGroup.getCount(); %a++)
{
%subClient = ClientGroup.getObject(%a);
if(isObject(%subClient.player) && isObject(%client.player) && %subClient != %client)
{
if(VectorDist(%subClient.player.getPosition(), %client.player.getPosition()) <= 30)
{
if(isObject(JobSO.job[1]) != 1)
%beencaught = 0;
else if(isObject(JobSO.job[1]) != 16)
%beencaught = 0;
else if(isObject(JobSO.job[1]) != 17)
%beencaught = 0;
else if(isObject(JobSO.job[1]) != 18)
%beencaught = 0;
else
%beencaught = 1;
}
}
}
if(%beencaught == 0)
{
messageAll('',"\c3" @ %client.name @ "\c6 has been caught attempting to hack an ATM!");
CityRPGXData.getData(%client.bl_id).valueDemerits += $CityRPGX::pref::hack::demerits;
return;
}
else if(%this.hackable)
{
if(%stealchance == 1)
{
if(%lockoutchance != 1)
{
%stolen = getRandom($CityRPGX::pref::hack::stealmin,$CityRPGX::pref::hack::stealmax);
messageClient(%client,'',"\c6You managed to steal \c3$" @ %stolen @ "\c6 from the ATM.");
CityRPGXData.getData(%client.bl_id).valueMoney += %stolen;
if(%caughtchance == 1)
{
messageAll('',"\c3" @ %client.name @ "\c6 has been caught hacking an ATM!");
CityRPGXData.getData(%client.bl_id).valueDemerits += $CityRPGX::pref::hack::demerits;
}
}
else
{
%this.hackable = 0;
messageClient(%client,'',"\c6Your attempt failed, and you have been locked out of the machine.");
%revivetime = $CityRPGX::pref::hack::revivetime * 60000;
schedule(%revivetime, 0, %this.hackable++);
}
}
else
{
messageClient(%client,'',"\c6Your software malfunctioned. The machine is still hackable.");
}
}
else
{
messageClient(%client,'',"\c6You are locked out of this machine.");
}
}
else
{
messageClient(%client,'',"\c6Your education level must be \c3" @ $CityRPGX::pref::hack::education @ "\c6.");
}
return;
}
messageClient(%client, '', "\c3" @ %text SPC "\c6is not a valid option!");
return;
}
if(mFloor(%client.stage) == 1)
{
if(%client.stage == 1.1)
{
if(mFloor(%input) < 1)
{
messageClient(%client, '', "\c6Error.");
return;
}
if(CityRPGXData.getData(%client.bl_id).valueBank - mFloor(%input) < 0)
{
if(CityRPGXData.getData(%client.bl_id).valueATM < 1)
{
messageClient(%client, '', "\c6Insufficient funds.");
%brick.trigger.getDatablock().onLeaveTrigger(%brick.trigger, (isObject(%client.player) ? %client.player : 0));
return;
}
%input = CityRPGXData.getData(%client.bl_id).valueATM;
}
messageClient(%client, '', "\c6You have withdrawn \c3$" @ mFloor(%input) @ "\c6.");
%brick.trigger.getDatablock().onLeaveTrigger(%brick.trigger, (isObject(%client.player) ? %client.player : 0));
CityRPGXData.getData(%client.bl_id).valueBank -= mFloor(%input);
CityRPGXData.getData(%client.bl_id).valueMoney += mFloor(%input);
%client.SetInfo();
}
return;
}
}
Yeah I don't get it either. I'll probably rewrite this, since it makes so little sense.