Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //--------------------
- // Name: CityRP
- // Type: RP
- // Version: 1.3
- // Author: Jookia
- //--------------------
- // Update 1.1
- // Fixed a real estate bug.
- // No longer can reset while having a loan.
- // Updated the bank disclaimer.
- // Added ^cast command.
- // Save file is generated at start.
- // Added a few missing prefs.
- // Fixed a bug with not being able to see bottomprint when first spawned.
- // Update 1.2
- // Added a datablock.CityRPCanSpawn variable.
- // Changing maps keeps minigame.
- // Default interest set to 1.01.
- // Update 1.3
- // Added some RTB stuff.
- package CityRP
- {
- function CityRP(%mode, %data)
- {
- if(%mode == 1)
- {
- if(!isObject(CityRPData))
- {
- new scriptObject(CityRPData)
- {
- class = Sassy;
- dataFile = "config/server/PeopleMods/CityRPData.dat";
- };
- $CityRP::jobs::name[$CityRP::jobs++] = "Civilian";
- $CityRP::jobs::initialInvestment[$CityRP::jobs] = 0;
- $CityRP::jobs::pay[$CityRP::jobs] = 20;
- $CityRP::jobs::tools[$CityRP::jobs] = "hammerItem wrenchItem printGun";
- $CityRP::jobs::items[$CityRP::jobs] = false;
- $CityRP::jobs::law[$CityRP::jobs] = false;
- $CityRP::jobs::pickpocket[$CityRP::jobs] = false;
- $CityRP::jobs::name[$CityRP::jobs++] = "Shop Keeper";
- $CityRP::jobs::initialInvestment[$CityRP::jobs] = 100;
- $CityRP::jobs::pay[$CityRP::jobs] = 40;
- $CityRP::jobs::tools[$CityRP::jobs] = "hammerItem wrenchItem printGun";
- $CityRP::jobs::items[$CityRP::jobs] = true;
- $CityRP::jobs::law[$CityRP::jobs] = false;
- $CityRP::jobs::pickpocket[$CityRP::jobs] = false;
- $CityRP::jobs::name[$CityRP::jobs++] = "Criminal";
- $CityRP::jobs::initialInvestment[$CityRP::jobs] = 150;
- $CityRP::jobs::pay[$CityRP::jobs] = 20;
- $CityRP::jobs::tools[$CityRP::jobs] = "hammerItem wrenchItem printGun";
- $CityRP::jobs::items[$CityRP::jobs] = false;
- $CityRP::jobs::law[$CityRP::jobs] = false;
- $CityRP::jobs::pickpocket[$CityRP::jobs] = true;
- $CityRP::jobs::name[$CityRP::jobs++] = "Policeman";
- $CityRP::jobs::initialInvestment[$CityRP::jobs] = 150;
- $CityRP::jobs::pay[$CityRP::jobs] = 50;
- $CityRP::jobs::tools[$CityRP::jobs] = "hammerItem wrenchItem printGun CityRPBatonItem";
- $CityRP::jobs::items[$CityRP::jobs] = false;
- $CityRP::jobs::law[$CityRP::jobs] = true;
- $CityRP::jobs::pickpocket[$CityRP::jobs] = false;
- $CityRP::prices::vehicleSpawn = 500;
- $CityRP::prices::addItemSpawn = 25;
- $CityRP::prices::jailingBonus = 25;
- $CityRP::prices::reset = 1000;
- $CityRP::prices::maxLoan = 5000;
- $CityRP::prices::loanPay = 25;
- $CityRP::demerits::demoteLevel = 250;
- $CityRP::demerits::wantedLevel = 50;
- $CityRP::demerits::pickpocketing = 60;
- $CityRP::demerits::hittingInnocents = 25;
- $CityRP::demerits::attemptedMurder = 25;
- $CityRP::demerits::murder = 75;
- $CityRP::other::tickSpeed = 5;
- $CityRP::other::interest = 1.01;
- $CityRP::other::interestTick = 5;
- $CityRP::other::maxInterest = 10000;
- $CityRP::other::commandSymbol = "^";
- if(isFile("config/server/PeopleMods/CityRPPrefs.cs"))
- {
- exec("config/server/PeopleMods/CityRPPrefs.cs");
- }
- export("$CityRP::*", "config/server/PeopleMods/CityRPPrefs.cs", false);
- $CityRP_temp::spawnPoints = "";
- $CityRP_temp::loadedDatablocks = true;
- exec("config/server/PeopleMods/CityRPPrefs.cs");
- if(isFile("add-ons/system_ReturnToBlockland/server.cs") && !$CityRP_temp::loadedRTBPrefs)
- {
- if(!$RTB::RTBS_ServerControl)
- {
- exec("add-ons/system_ReturnToBlockland/RTBR_ServerControl_Hook.cs");
- }
- RTB_registerPref("Demote Demerits", "CityRP", "$CityRP::demerits::demoteLevel", "int 1 1000", "CityRP", $CityRP::demerits::demoteLevel, false, false);
- RTB_registerPref("Wanted Demerits", "CityRP", "$CityRP::demerits::wantedLevel", "int 1 1000", "CityRP", $CityRP::demerits::wantedLevel, false, false);
- RTB_registerPref("Pickpocket Demerits", "CityRP", "$CityRP::demerits::pickpocketing", "int 1 1000", "CityRP", $CityRP::demerits::pickpocketing, false, false);
- RTB_registerPref("Hitting Innocent Demerits", "CityRP", "$CityRP::demerits::hittingInnocents", "int 1 1000", "CityRP", $CityRP::demerits::hittingInnocents, false, false);
- RTB_registerPref("Attempted Murder Demerits", "CityRP", "$CityRP::demerits::attemptedMurder", "int 1 1000", "CityRP", $CityRP::demerits::attemptedMurder, false, false);
- RTB_registerPref("Murder Demerits", "CityRP", "$CityRP::demerits::murder", "int 1 1000", "CityRP", $CityRP::demerits::murder, false, false);
- RTB_registerPref("Vehicle Spawn Price", "CityRP", "$CityRP::prices::vehicleSpawn", "int 0 10000", "CityRP", $CityRP::prices::vehicleSpawn, false, true);
- RTB_registerPref("Base Item Spawn Price", "CityRP", "$CityRP::prices::addItemSpawn", "int 0 10000", "CityRP", $CityRP::prices::addItemSpawn, false, true);
- RTB_registerPref("Jailing Bonus Price", "CityRP", "$CityRP::prices::jailingBonus", "int 0 10000", "CityRP", $CityRP::prices::jailingBonus, false, true);
- RTB_registerPref("Reset Price", "CityRP", "$CityRP::prices::reset", "int 0 10000", "CityRP", $CityRP::prices::reset, false, true);
- RTB_registerPref("Maximum Loan", "CityRP", "$CityRP::prices::maxLoan", "int 0 10000", "CityRP", $CityRP::prices::maxLoan, false, true);
- RTB_registerPref("Loan Pay", "CityRP", "$CityRP::prices::loanPay", "int 0 10000", "CityRP", $CityRP::prices::loanPay, false, true);
- RTB_registerPref("Tick Speed", "CityRP", "$CityRP::other::tickSpeed", "int 1 10", "CityRP", $CityRP::other::tickSpeed, false, true);
- RTB_registerPref("Interest", "CityRP", "$CityRP::other::interest", "int 0 5", "CityRP", $CityRP::other::interest, false, true);
- RTB_registerPref("Interest Stop", "CityRP", "$CityRP::other::maxInterest", "int 0 100000", "CityRP", $CityRP::other::maxInterest, false, true);
- RTB_registerPref("Interest Tick", "CityRP", "$CityRP::other::interestTick", "int 0 100", "CityRP", $CityRP::other::interestTick, false, true);
- activatePackage(RTB_Goodies);
- $CityRP_temp::loadedRTBPrefs = true;
- }
- if(!CityRPData.loadedSaveFile)
- {
- CityRPData.addValue("money", 100);
- CityRPData.addValue("jobID", 1);
- CityRPData.addValue("demerits", 0);
- CityRPData.addValue("bankData", "0 0 0");
- CityRPData.addValue("jailData", "0 0");
- CityRPData.addValue("lotData", "0");
- CityRPData.saveData();
- }
- else
- {
- for(%a = 1; %a <= CityRPData.dataCount; %a++)
- {
- if(CityRPData.data[%a].valueJobID > $CityRP::jobs || CityRPData.data[%a].valueJobID < 0)
- {
- CityRPData.data[%a].valueJobID = 1;
- }
- }
- }
- registerInputEvent("fxDTSBrick", "onEnterLot", "Self fxDTSBrick\tPlayer player\tClient gameConnection\tMiniGame miniGame");
- registerInputEvent("fxDTSBrick", "onLeaveLot", "Self fxDTSBrick\tPlayer player\tClient gameConnection\tMiniGame miniGame");
- CityRPData.tickCount = 0;
- CityRPData.scheduleTick = schedule($CityRP::other::tickSpeed * 60000, false, "CityRP", 2);
- }
- else
- {
- for(%a = 1; %a <= CityRPData.dataCount; %a++)
- {
- if(CityRPData.data[%a].valueJobID > $CityRP::jobs || CityRPData.data[%a].valueJobID < 0)
- {
- CityRPData.data[%a].valueJobID = 0;
- }
- }
- }
- if(!isObject(CityRPHelp))
- {
- new scriptObject(CityRPHelp)
- {
- class = Hellen;
- };
- }
- if(!isObject(CityRPMini))
- {
- new scriptObject(CityRPMini)
- {
- class = miniGameSO;
- brickDamage = true;
- brickRespawnTime = 10000;
- colorIdx = -1;
- enableBuilding = true;
- enablePainting = true;
- enableWand = true;
- fallingDamage = true;
- inviteOnly = true;
- points_plantBrick = 0;
- points_breakBrick = 0;
- points_die = -1;
- points_killPlayer = 1;
- points_killSelf = -1;
- playerDatablock = playerNoJet;
- respawnTime = 5000;
- selfDamage = true;
- playersUseOwnBricks = false;
- useAllPlayersBricks = true;
- useSpawnBricks = false;
- VehicleDamage = true;
- vehicleRespawnTime = 5000;
- weaponDamage = true;
- numMembers = 0;
- };
- }
- for(%a = 1; %a <= $CityRP::jobs; %a++)
- {
- if(isObject("CityRPJob" @ %a @ "SpawnBrickData"))
- {
- continue;
- }
- datablock fxDtsBrickData(CityRPSpawnBrickData : brickSpawnPointData)
- {
- category = "PeopleMods";
- subCategory = "CityRP Admin";
- uiName = $CityRP::jobs::name[%a] SPC "Spawn";
- specialBrickType = "";
- CityRPBrickType = 3;
- CityRPBrickAdmin = true;
- spawnData = "jobSpawn" SPC %a;
- };
- CityRPSpawnBrickData.setName("CityRPJob" @ %a @ "SpawnBrickData");
- }
- }
- if(%mode == 2)
- {
- if(CityRPData.scheduleTick)
- {
- cancel(CityRPData.scheduleTick);
- }
- CityRPData.tickCount++;
- for(%a = 0; %a <= CityRPData.dataCount; %a++)
- {
- if(CityRPData.tickCount % $CityRP::other::interestTick == 0 && getWord(CityRPData.data[%a].valueBankData, 0) < $CityRP::other::maxInterest)
- {
- CityRPData.data[%a].valueBankData = mFloor(getWord(CityRPData.data[%a].valueBankData, 0) * $CityRP::other::interest) SPC getWords(CityRPData.data[%a].valueBankData, 1, 2);
- }
- if(!isObject(findClientByBL_ID(CityRPData.data[%a].ID)))
- {
- continue;
- }
- %client = findClientByBL_ID(CityRPData.data[%a].ID);
- if(getWord(CityRPData.getData(%client.bl_id).valueJailData, 1) > 0)
- {
- CityRPData.getData(%client.bl_id).valueJailData = 1 SPC getWord(CityRPData.getData(%client.bl_id).valueJailData, 1) - 1;
- if(getWord(CityRPData.getData(%client.bl_id).valueJailData, 1) < 1)
- {
- messageClient(%client, '', "\c6You're free.");
- if(isObject(%client.player))
- {
- %client.player.delete();
- %client.spawnPlayer();
- }
- continue;
- }
- messageClient(%client, '', "\c6You now have \c3" @ getWord(CityRPData.getData(%client.bl_id).valueJailData, 1) SPC "\c6tick" @ ((getWord(CityRPData.getData(%client.bl_id).valueJailData, 1) == 1) ? "" : "s") SPC "until you get out of jail.");
- %client.CityRP(1);
- continue;
- }
- if($CityRP::jobs::pay[CityRPData.getData(%client.bl_id).valueJobID] > 0)
- {
- CityRPData.getData(%client.bl_id).valueMoney += $CityRP::jobs::pay[CityRPData.getData(%client.bl_id).valueJobID];
- messageClient(%client, '', "\c6You have been paid \c3$" @ $CityRP::jobs::pay[CityRPData.getData(%client.bl_id).valueJobID] @ "\c6.");
- }
- if(%client.brickGroup.taxes > 0)
- {
- CityRPData.getData(%client.bl_id).valueMoney -= %client.brickGroup.taxes;
- if(CityRPData.getData(%client.bl_id).valueMoney < 0)
- {
- CityRPData.getData(%client.bl_id).valueMoney = 0;
- }
- messageClient(%client, '', "\c6You have paid \c3$" @ %client.brickGroup.taxes SPC "\c6in taxes.");
- }
- if(getWord(CityRPData.getData(%client.bl_id).valueBankData, 2) > 0 && CityRPData.getData(%client.bl_id).valueMoney > 0)
- {
- %paid = $CityRP::prices::loanPay;
- if(getWord(CityRPData.getData(%client.bl_id).valueBankData, 1) < $CityRP::prices::loanPay)
- {
- %paid = getWord(CityRPData.getData(%client.bl_id).valueBankData, 1);
- }
- if(CityRPData.getData(%client.bl_id).valueMoney < %paid)
- {
- %paid = CityRPData.getData(%client.bl_id).valueMoney;
- }
- messageClient(%client, '', "\c6You have paid \c3$" @ %paid SPC "\c6towards your loan.");
- CityRPData.getData(%client.bl_id).valueMoney -= %paid;
- if(getWord(CityRPData.getData(%client.bl_id).valueBankData, 1) - %paid < 1)
- {
- CityRPData.getData(%client.bl_id).valueBankData = getWord(CityRPData.getData(%client.bl_id).valueBankData, 0) SPC 0 SPC 0;
- }
- else
- {
- CityRPData.getData(%client.bl_id).valueBankData = getWord(CityRPData.getData(%client.bl_id).valueBankData, 0) SPC getWord(CityRPData.getData(%client.bl_id).valueBankData, 1) - %paid SPC getWord(CityRPData.getData(%client.bl_id).valueBankData, 2);
- }
- }
- %client.CityRP(1);
- }
- CityRPData.saveData();
- CityRPData.scheduleTick = schedule($CityRP::other::tickSpeed * 60000, false, "CityRP", 2);
- }
- if(%mode == 3)
- {
- %letter = strLwr(getSubStr(%data, 0, 1));
- if(%letter $= "a" || %letter $= "e" || %letter $= "i" || %letter $= "o" || %letter $= "u")
- {
- return "an";
- }
- return "a";
- }
- if(%mode == 4)
- {
- for(%a = 0; %a < getWordCount($CityRP_temp::spawnPoints); %a++)
- {
- %brick = getWord($CityRP_temp::spawnPoints, %a);
- if(strLwr(%brick.getDatablock().spawnData) !$= strLwr(%data) && getWord(strLwr(%data), 0) !$= strLwr("personalSpawn"))
- {
- continue;
- }
- if(getWord(strLwr(%data), 0) $= strLwr("personalSpawn") && (strLwr(%brick.getDatablock().spawnData) !$= strLwr("personalSpawn") || getBrickGroupFromObject(%brick).bl_id != getWord(strLwr(%data), 1)))
- {
- continue;
- }
- %possibleSpawns = (%possibleSpawns $= "") ? %brick : %possibleSpawns SPC %brick;
- }
- if(%possibleSpawns !$= "")
- {
- %spawnBrick = getWord(%possibleSpawns, getRandom(0, getWordCount(%possibleSpawns) - 1));
- return vectorSub(%spawnBrick.getWorldBoxCenter(), "0 0" SPC (%spawnBrick.getDatablock().brickSizeZ - 3) * 0.1) SPC getWords(%spawnBrick.getTransform(), 3, 6);
- }
- return false;
- }
- }
- function fxDtsBrick::CityRP(%brick, %mode, %data)
- {
- if(%mode == 1 && !isObject(%brick.trigger))
- {
- %datablock = %brick.getDatablock();
- %scale = getWord(%datablock.triggerSize, 0) / 2 SPC getWord(%datablock.triggerSize, 1) / 2 SPC getWord(%datablock.triggerSize, 2) / 2;
- if(mFloor(getWord(%brick.rotation, 3)) == 90)
- {
- %scale = getWord(%datablock.triggerSize, 1) / 2 SPC getWord(%datablock.triggerSize, 0) / 2 SPC getWord(%datablock.triggerSize, 2) / 2;
- }
- %brick.trigger = new trigger()
- {
- datablock = %datablock.triggerDatablock;
- position = getWords(%brick.getWorldBoxCenter(), 0, 1) SPC getWord(%brick.getWorldBoxCenter(), 2) + ((getWord(%datablock.triggerSize, 2) / 4) + (%datablock.brickSizeZ * 0.1));
- rotation = "1 0 0 0";
- scale = %scale;
- polyhedron = "-0.5000000 -0.5000000 -0.5000000 1.0000000 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
- parent = %brick;
- };
- if(%brick.getDatablock().CityRPBrickType == 1)
- {
- %boxSize = getWord(%scale, 0) / 2.5 SPC getWord(%scale, 1) / 2.5 SPC getWord(%scale, 2) / 2.5;
- initContainerBoxSearch(%brick.trigger.getWorldBoxCenter(), %boxSize, $typeMasks::playerObjectType);
- while(isObject(%player = containerSearchNext()))
- {
- %brick.trigger.getDatablock().onEnterTrigger(%brick.trigger, %player);
- }
- getBrickGroupFromObject(%brick).taxes += %brick.getDatablock().taxAmount;
- if(isObject(getBrickGroupFromObject(%brick).client))
- {
- getBrickGroupFromObject(%brick).client.CityRP(1);
- }
- }
- }
- if(%mode == 2 && isObject(%brick.trigger))
- {
- for(%a = 0; %a < clientGroup.getCount(); %a++)
- {
- if(isObject(clientGroup.getObject(%a).player) && clientGroup.getObject(%a).CityRPTrigger == %brick.trigger)
- {
- %brick.trigger.getDatablock().onLeaveTrigger(%brick.trigger, clientGroup.getObject(%a).player, true);
- }
- }
- %boxSize = getWord(%brick.trigger.scale, 0) / 2.5 SPC getWord(%brick.trigger.scale, 1) / 2.5 SPC getWord(%brick.trigger.scale, 2) / 2.5;
- initContainerBoxSearch(%brick.trigger.getWorldBoxCenter(), %boxSize, $typeMasks::playerObjectType);
- while(isObject(%player = containerSearchNext()))
- {
- %brick.trigger.getDatablock().onLeaveTrigger(%brick.trigger, %player);
- }
- %brick.trigger.delete();
- if(%brick.getDatablock().CityRPBrickType == 1)
- {
- getBrickGroupFromObject(%brick).taxes -= %brick.getDatablock().taxAmount;
- if(isObject(getBrickGroupFromObject(%brick).client))
- {
- getBrickGroupFromObject(%brick).client.CityRP(1);
- }
- if(%brick.getName() !$= "")
- {
- %data = CityRPData.getData(getBrickGroupFromObject(%brick).bl_id).valueLotData;
- %newData = getWord(%data, 0) - 1;
- for(%a = 1; %a < getWordCount(%data); %a++)
- {
- if(%cancelNext)
- {
- %cancelNext = false;
- continue;
- }
- %newData = %newData SPC getWord(%data, %a);
- if(%a % 2 == 0)
- {
- continue;
- }
- %newBrick = "_" @ getWord(%data, %a);
- if(isObject(%newBrick) && %newBrick $= %brick.getName())
- {
- %found = true;
- %newData = getWords(%newData, 0, getWordCount(%newData) - 2);
- %cancelNext = true;
- }
- }
- if(%found)
- {
- CityRPData.getData(getBrickGroupFromObject(%brick).bl_id).valueLotData = %newData;
- }
- }
- }
- }
- if(%mode == 3)
- {
- if(isObject(%data) && getWord(%data, 1))
- {
- if(strReplace(%data.brickList, %brick, "") !$= %data.brickList)
- {
- return;
- }
- %data.brickCount++;
- %data.brickList = %data.brickList SPC %brick;
- for(%a = 0; %a < %brick.getNumUpBricks(); %a++)
- {
- %brick.getUpBrick(%a).CityRP(3, %data SPC 1);
- }
- for(%b = 0; %b < %brick.getNumDownBricks(); %b++)
- {
- %brick.getDownBrick(%b).CityRP(3, %data SPC 1);
- }
- return;
- }
- getBrickGroupFromObject(%brick).taxes -= %brick.getDatablock().taxAmount;
- %data.taxes += %brick.getDatablock().taxAmount;
- if(isObject(getBrickGroupFromObject(%brick).client))
- {
- getBrickGroupFromObject(%brick).client.CityRP(1);
- }
- if(isObject(%data.client))
- {
- %data.client.CityRP(1);
- }
- %dataStore = new scriptObject()
- {
- brickCount = 1;
- brickList = %brick;
- };
- for(%a = 0; %a < %brick.getNumUpBricks(); %a++)
- {
- %brick.getUpBrick(%a).CityRP(3, %dataStore SPC 1);
- }
- for(%b = 0; %b < %dataStore.brickCount; %b++)
- {
- %brick = getWord(%dataStore.brickList, %b);
- %oldGroup = getBrickGroupFromObject(%brick);
- %oldGroup.remove(%brick);
- %data.add(%brick);
- if(%brick.getName() !$= "")
- {
- %name = %brick.getName();
- %oldGroup.removeNTName(%name);
- %data.addNTName(%name);
- }
- }
- %dataStore.delete();
- %boxSize = getWord(%brick.trigger.scale, 0) / 2.5 SPC getWord(%brick.trigger.scale, 1) / 2.5 SPC getWord(%brick.trigger.scale, 2) / 2.5;
- initContainerBoxSearch(%brick.trigger.getWorldBoxCenter(), %boxSize, $typeMasks::playerObjectType);
- while(isObject(%player = containerSearchNext()))
- {
- if(isObject(%player.client))
- {
- %player.client.CityRP(1);
- }
- }
- }
- }
- function gameConnection::CityRP(%this, %mode, %data)
- {
- if(%mode == 1)
- {
- if(isObject(%this.player))
- {
- %tag = $CityRP::jobs::name[CityRPData.getData(%this.bl_id).valueJobID];
- if(getWord(CityRPData.getData(%this.bl_id).valueJailData, 1) > 0)
- {
- %tag = getWord(CityRPData.getData(%this.bl_id).valueJailData, 1) SPC "\c6Tick" @ ((getWord(CityRPData.getData(%this.bl_id).valueJailData, 1) == 1) ? "" : "s");
- }
- %this.player.setShapeName("[" @ %tag @ "]" SPC %this.name);
- }
- %this.CityRPPrint = "\c6Money: \c3$" @ CityRPData.getData(%this.bl_id).valueMoney SPC "\c6Job: \c3" @ $CityRP::jobs::name[CityRPData.getData(%this.bl_id).valueJobID] SPC "\c6Income: \c3$" @ $CityRP::jobs::pay[CityRPData.getData(%this.bl_id).valueJobID] SPC "\c6Taxes: \c3$" @ ((%this.brickGroup.taxes > 0) ? %this.brickGroup.taxes : "0") @ (isObject(%this.CityRPLotTrigger) ? "<just:right>\c6Owner: \c3" @ getBrickGroupFromObject(%this.CityRPLotTrigger.parent).name : "");
- commandToClient(%this, 'bottomPrint', %this.cityRPPrint);
- }
- if(%mode == 2)
- {
- if(getWord(CityRPData.getData(%this.bl_id).valueJailData, 1) > 0)
- {
- return;
- }
- %demerits = mFloor(%data);
- %currentDemerits = CityRPData.getData(%this.bl_id).valueDemerits;
- CityRPData.getData(%this.bl_id).valueDemerits += %demerits;
- if(CityRPData.getData(%this.bl_id).valueDemerits >= $CityRP::demerits::demoteLevel)
- {
- CityRPData.getData(%this.bl_id).valueJailData = 1 SPC 0;
- if(!$CityRP::jobs::law[CityRPData.getData(%this.bl_id).valueJobID])
- {
- return;
- }
- messageClient(%this, '', "\c6You have been demoted to" SPC CityRP(3, $CityRP::jobs::name[1]) SPC "\c3" @ $CityRP::jobs::name[1] @ "\c6.");
- CityRPData.getData(%this.bl_id).valueJobID = 1;
- %this.CityRP(1);
- if(isObject(%this.player))
- {
- serverCmdunUseTool(%this);
- %this.player.giveDefaultEquipment();
- }
- }
- }
- if(%mode == 3)
- {
- %rawTicks = (mFloor(CityRPData.getData(%this.bl_id).valueDemerits / ($CityRP::other::tickSpeed * 50)) > 0) ? mFloor(CityRPData.getData(%this.bl_id).valueDemerits / ($CityRP::other::tickSpeed * 50)) : 1;
- %ticks = %rawTicks;
- if(%ticks > 6)
- {
- %ticks = 6;
- }
- messageAll('', "\c3" @ %data.name SPC "\c6has jailed \c3" @ %this.name SPC "\c6for \c3" @ %ticks SPC"\c6tick" @ ((%ticks == 1) ? "" : "s") @ ".", 5);
- commandToClient(%this, 'centerPrint', "\c3" @ %data.name SPC "\c6has jailed you for \c3" @ %ticks SPC"\c6tick" @ ((%ticks == 1) ? "" : "s") @ ".", 5);
- commandToClient(%data, 'centerPrint', "\c6You have jailed \c3" @ %this.name SPC "\c6for \c3" @ %ticks SPC"\c6tick" @ ((%ticks == 1) ? "" : "s") @ ". You now have \c3$" @ CityRPData.getData(%data.bl_id).valueMoney + ($CityRP::prices::jailingBonus * %ticks) @ "\c6.", 5);
- CityRPData.getData(%this.bl_id).valueJailData = 1 SPC %ticks;
- CityRPData.getData(%this.bl_id).valueDemerits = 0;
- CityRPData.getData(%data.bl_id).valueMoney += $CityRP::prices::jailingBonus * %ticks;
- %data.CityRP(1);
- if($CityRP::jobs::law[CityRPData.getData(%this.bl_id).valueJobID])
- {
- messageClient(%this, '', "\c6You have been demoted to" SPC CityRP(3, $CityRP::jobs::name[1]) SPC "\c3" @ $CityRP::jobs::name[1] SPC "\c6since you were jailed.");
- CityRPData.getData(%this.bl_id).valueJobID = 1;
- }
- if(isObject(%this.player.tempBrick))
- {
- %this.player.tempBrick.delete();
- }
- %this.player.delete();
- %this.spawnPlayer();
- }
- }
- function gameConnection::onClientEnterGame(%this)
- {
- parent::onClientEnterGame(%this);
- if(!isObject(CityRPData.getData(%this.bl_id)))
- {
- CityRPData.addData(%this.bl_id);
- }
- %this.CityRP(1);
- }
- function gameConnection::spawnPlayer(%this)
- {
- parent::spawnPlayer(%this);
- if(CityRP(4, "jobSpawn 1"))
- {
- %spawn = CityRP(4, "jobSpawn 1");
- }
- if(CityRP(4, "jobSpawn" SPC CityRPData.getData(%this.bl_id).valueJobID))
- {
- %spawn = CityRP(4, "jobSpawn" SPC CityRPData.getData(%this.bl_id).valueJobID);
- }
- if(CityRP(4, "personalSpawn" SPC %this.bl_id))
- {
- %spawn = CityRP(4, "personalSpawn" SPC %this.bl_id);
- }
- if(getWord(CityRPData.getData(%this.bl_id).valueJailData, 1) > 0 && CityRP(4, "jailSpawn"))
- {
- %spawn = CityRP(4, "jailSpawn");
- }
- if(%spawn !$= "")
- {
- %this.player.setTransform(%spawn);
- }
- %this.player.giveDefaultEquipment();
- if(!isObject(CityRPMini))
- {
- CityRP(1);
- }
- CityRPMini.addMember(%this);
- }
- function gameConnection::onDeath(%this, %killerPlayer, %killer, %damageType, %damageLoc)
- {
- if(isObject(%this.CityRPTrigger))
- {
- %this.CityRPTrigger.getDatablock().onLeaveTrigger(%this.CityRPTrigger, %this.player);
- }
- if(isObject(%this.CityRPLotTrigger))
- {
- %this.CityRPLotTrigger.getDatablock().onLeaveTrigger(%this.CityRPLotTrigger, %this.player);
- }
- %this.CityRP(1);
- if(getWord(CityRPData.getData(%this.bl_id).valueJailData, 1) < 1)
- {
- if(%this.player.currTool)
- {
- serverCmddropTool(%this, %this.player.currTool);
- }
- if(isObject(%killer) && %killer != %this)
- {
- commandToClient(%killer, 'centerPrint', "\c6You have commited a crime. [\c3Murder\c6]", 1);
- %killer.CityRP(2, $CityRP::demerits::murder);
- }
- }
- parent::onDeath(%this, %this, %killer, %damageType, %unknownA);
- }
- function serverCmdmessageSent(%client, %text)
- {
- if(getSubStr(%text, 0, 1) $= $CityRP::other::commandSymbol)
- {
- if(%client.lastCityRPCommand + 0.01 > $sim::time)
- {
- return;
- }
- %command = getWord(getSubStr(%text, 1, strLen(%text) - 1), 0);
- %args = getSubStr(%text, strLen(%command) + 2, strLen(%text) - 1);
- %lastCommand = %client.lastCityRPCommand;
- %client.lastCityRPCommand = $sim::time;
- if(%command $= "giveMoney")
- {
- %money = mFloor(getWord(%args, 0));
- if(%money < 1)
- {
- messageClient(%client, '', "\c6You must enter a valid amount of money to give.");
- return;
- }
- if(CityRPData.getData(%client.bl_id).valueMoney - %money < 0)
- {
- messageClient(%client, '', "\c6You don't have that much money to give.");
- return;
- }
- if(!isObject(%client.player))
- {
- messageClient(%client, '', "\c6Spawn first before you use this command.");
- return;
- }
- %target = containerRayCast(%client.player.getEyePoint(), vectorAdd(vectorScale(vectorNormalize(%client.player.getEyeVector()), 8), %client.player.getEyePoint()), $typeMasks::playerObjectType).client;
- if(!isObject(%target))
- {
- messageClient(%client, '', "\c6You must be looking at and be in a reasonable distance of the player in order to give them money.");
- return;
- }
- messageClient(%client, '', "\c6You give \c3$" @ %money SPC "\c6to \c3" @ %target.name @ "\c6.");
- messageClient(%target, '', "\c3" @ %client.name SPC "\c6has given you \c3$" @ %money @ "\c6.");
- CityRPData.getData(%client.bl_id).valueMoney -= %money;
- CityRPData.getData(%target.bl_id).valueMoney += %money;
- %client.CityRP(1);
- %target.CityRP(1);
- return;
- }
- if(%command $= "grantMoney")
- {
- if(!%client.isAdmin)
- {
- messageClient(%client, '', "\c6You must be admin to use the this command.");
- return;
- }
- %money = mFloor(getWord(%args, 0));
- if(%money < 1)
- {
- messageClient(%client, '', "\c6You must enter a valid amount of money to grant.");
- return;
- }
- if(!isObject(%client.player) && !isObject(findClientByName(getWords(%args, 1, getWordCount(%args) - 1))))
- {
- messageClient(%client, '', "\c6Spawn first before you use this command or enter a valid player's name.");
- return;
- }
- if(getWords(%args, 1, getWordCount(%args) - 1) !$= "")
- {
- %target = findClientByName(getWords(%args, 1, getWordCount(%args) - 1));
- }
- if(!isObject(%target) && isObject(%client.player))
- {
- %target = containerRayCast(%client.player.getEyePoint(), vectorAdd(vectorScale(vectorNormalize(%client.player.getEyeVector()), 8), %client.player.getEyePoint()), $typeMasks::playerObjectType).client;
- }
- if(!isObject(%target))
- {
- messageClient(%client, '', "\c6You must be looking at or enter the name of the player in order to grant to them.");
- return;
- }
- messageClient(%client, '', "\c6You grant \c3$" @ %money SPC "\c6to \c3" @ %target.name @ "\c6.");
- messageClient(%target, '', "\c3" @ %client.name @ "\c6 has granted you \c3$" @ %money @ "\c6.");
- CityRPData.getData(%target.bl_id).valueMoney += %money;
- %target.CityRP(1);
- return;
- }
- if(%command $= "deductMoney")
- {
- if(!%client.isAdmin)
- {
- messageClient(%client, '', "\c6You must be admin to use the this command.");
- return;
- }
- %money = mFloor(getWord(%args, 0));
- if(%money < 1)
- {
- messageClient(%client, '', "\c6You must enter a valid amount of money to deduct.");
- return;
- }
- if(!isObject(%client.player) && !isObject(findClientByName(getWords(%args, 1, getWordCount(%args) - 1))))
- {
- messageClient(%client, '', "\c6Spawn first before you use this command or enter a valid player's name.");
- return;
- }
- if(getWords(%args, 1, getWordCount(%args) - 1) !$= "")
- {
- %target = findClientByName(getWords(%args, 1, getWordCount(%args) - 1));
- }
- if(!isObject(%target) && isObject(%client.player))
- {
- %target = containerRayCast(%client.player.getEyePoint(), vectorAdd(vectorScale(vectorNormalize(%client.player.getEyeVector()), 8), %client.player.getEyePoint()), $typeMasks::playerObjectType).client;
- }
- if(!isObject(%target))
- {
- messageClient(%client, '', "\c6You must be looking at or enter the name of the player in order to deduct money from them.");
- return;
- }
- if(CityRPData.getData(%target.bl_id).valueMoney - %money < 0)
- {
- %money = CityRPData.getData(%target.bl_id).valueMoney;
- }
- messageClient(%client, '', "\c6You deduct \c3$" @ %money SPC "\c6from \c3" @ %target.name @ "\c6.");
- messageClient(%target, '', "\c3" @ %client.name @ "\c6 has deducted \c3$" @ %money @ "\c6 from you.");
- CityRPData.getData(%target.bl_id).valueMoney -= %money;
- %target.CityRP(1);
- return;
- }
- if(%command $= "stats")
- {
- messageClient(%client, '', "\c3" @ %client.name SPC "\c6- Money: \c3$" @ CityRPData.getData(%client.bl_id).valueMoney SPC "\c6Bank: \c3$" @ getWord(CityRPData.getData(%client.bl_id).valueBankData, 0) SPC "\c6Job: \c3" @ $CityRP::jobs::name[CityRPData.getData(%client.bl_id).valueJobID] SPC "\c6Income: \c3" @ $CityRP::jobs::pay[CityRPData.getData(%client.bl_id).valueJobID] SPC "\c6Tax: \c3" @ ((%client.brickGroup.taxes > 0) ? %client.brickGroup.taxes : "0"));
- messageClient(%client, '', "\c6- Clean Record: \c3" @ ((getWord(CityRPData.getData(%client.bl_id).valueJailData, 0)) ? "No" : "Yes") SPC "\c6Demerits: \c3" @ CityRPData.getData(%client.bl_id).valueDemerits SPC "\c6Jail Time: \c3" @ getWord(CityRPData.getData(%client.bl_id).valueJailData, 1) SPC "\c6Tick" @ ((getWord(CityRPData.getData(%client.bl_id).valueJailData, 1) == 1) ? "" : "s"));
- return;
- }
- if(%command $= "checkAccount")
- {
- if(!%client.isAdmin)
- {
- messageClient(%client, '', "\c6You must be admin to use the \c3" @ %command SPC "\c6command.");
- return;
- }
- if(!isObject(%client.player) && !isObject(findClientByName(getWords(%args, 1, getWordCount(%args) - 1))))
- {
- messageClient(%client, '', "\c6Spawn first before you use this command.");
- return;
- }
- if(getWords(%args, 0, getWordCount(%args) - 1) !$= "")
- {
- %target = findClientByName(getWords(%args, 0, getWordCount(%args) - 1));
- }
- if(!isObject(%target) && isObject(%client.player))
- {
- %target = containerRayCast(%client.player.getEyePoint(), vectorAdd(vectorScale(vectorNormalize(%client.player.getEyeVector()), 8), %client.player.getEyePoint()), $typeMasks::playerObjectType).client;
- }
- if(!isObject(%target))
- {
- for(%a = 0; %a < clientGroup.getCount(); %a++)
- {
- %target = clientGroup.getObject(%a);
- if(!isObject(CityRPData.getData(%target.bl_id)))
- {
- continue;
- }
- messageClient(%client, '', "\c3" @ %target.name SPC "\c6- Money: \c3$" @ CityRPData.getData(%target.bl_id).valueMoney SPC "\c6Bank: \c3$" @ getWord(CityRPData.getData(%target.bl_id).valueBankData, 0) SPC "\c6Job: \c3" @ $CityRP::jobs::name[CityRPData.getData(%target.bl_id).valueJobID] SPC "\c6Income: \c3" @ $CityRP::jobs::pay[CityRPData.getData(%target.bl_id).valueJobID] SPC "\c6Tax: \c3" @ ((%target.brickGroup.taxes > 0) ? %target.brickGroup.taxes : "0"));
- messageClient(%client, '', "\c6- Clean Record: \c3" @ ((getWord(CityRPData.getData(%target.bl_id).valueJailData, 0)) ? "No" : "Yes") SPC "\c6Demerits: \c3" @ CityRPData.getData(%target.bl_id).valueDemerits SPC "\c6Jail Time: \c3" @ getWord(CityRPData.getData(%target.bl_id).valueJailData, 1) SPC "\c6Tick" @ ((getWord(CityRPData.getData(%target.bl_id).valueJailData, 1) == 1) ? "" : "s"));
- }
- return;
- }
- messageClient(%client, '', "\c3" @ %target.name SPC "\c6- Money: \c3$" @ CityRPData.getData(%target.bl_id).valueMoney SPC "\c6Bank: \c3$" @ getWord(CityRPData.getData(%target.bl_id).valueBankData, 0) SPC "\c6Job: \c3" @ $CityRP::jobs::name[CityRPData.getData(%target.bl_id).valueJobID] SPC "\c6Income: \c3" @ $CityRP::jobs::pay[CityRPData.getData(%target.bl_id).valueJobID] SPC "\c6Tax: \c3" @ ((%target.brickGroup.taxes > 0) ? %target.brickGroup.taxes : "0"));
- messageClient(%client, '', "\c6- Clean Record: \c3" @ ((getWord(CityRPData.getData(%target.bl_id).valueJailData, 0)) ? "No" : "Yes") SPC "\c6Demerits: \c3" @ CityRPData.getData(%target.bl_id).valueDemerits SPC "\c6Jail Time: \c3" @ getWord(CityRPData.getData(%target.bl_id).valueJailData, 1) SPC "\c6Tick" @ ((getWord(CityRPData.getData(%target.bl_id).valueJailData, 1) == 1) ? "" : "s"));
- return;
- }
- if(%command $= "job")
- {
- if(strLwr(getWords(%args, 0, getWordCount(%args) - 1)) $= "")
- {
- messageClient(%client, '', "\c6Type \c3^help jobs\c6 to see a list of jobs.");
- return;
- }
- if(strLwr(getWords(%args, 0, getWordCount(%args) - 1)) $= strLwr($CityRP::jobs::name[CityRPData.getData(%client.bl_id).valueJobID]))
- {
- messageClient(%client, '', "\c6You are already" SPC CityRP(3, $CityRP::jobs::name[CityRPData.getData(%client.bl_id).valueJobID]) SPC "\c3" @ $CityRP::jobs::name[CityRPData.getData(%client.bl_id).valueJobID] @ "\c6.");
- return;
- }
- for(%a = 1; %a <= $CityRP::jobs; %a++)
- {
- if(strLwr(getWords(%args, 0, getWordCount(%args) - 1)) $= strLwr($CityRP::jobs::name[%a]))
- {
- if($CityRP::jobs::law[%a] && getWord(CityRPData.getData(%client.bl_id).valueJailData, 0) == 1)
- {
- messageClient(%client, '', "\c6You don't have a clean criminal record. You can't become" SPC CityRP(3, $CityRP::jobs::name[%a]) SPC "\c3" @ $CityRP::jobs::name[%a] @ "\c6.");
- return;
- }
- if(mFloor($CityRP::jobs::initialInvestment[%a]) > 0)
- {
- if(CityRPData.getData(%client.bl_id).valueMoney < mFloor($CityRP::jobs::initialInvestment[%a]))
- {
- messageClient(%client, '', "\c6You need at least \c3$" @ mFloor($CityRP::jobs::initialInvestment[%a]) SPC "\c6in order to apply for this job.");
- return;
- }
- messageClient(%client, '', "\c6You have paid \c3$" @ mFloor($CityRP::jobs::initialInvestment[%a]) @ "\c6 to become" SPC CityRP(3, $CityRP::jobs::name[%a]) SPC "\c3" @ $CityRP::jobs::name[%a] @ "\c6.");
- }
- else
- {
- messageClient(%client, '', "\c6You are now" SPC CityRP(3, $CityRP::jobs::name[%a]) SPC "\c3" @ $CityRP::jobs::name[%a] @ "\c6.");
- }
- if($CityRP::jobs::items[CityRPData.getData(%client.bl_id).valueJobID] == 1)
- {
- %brickGroup = "brickGroup_" @ %client.bl_id;
- %display = false;
- for(%b = 0; %b < %brickGroup.getCount(); %b++)
- {
- if(!isObject(%brickGroup.getObject(%b).item))
- {
- continue;
- }
- %brickGroup.getObject(%b).setItem(0, (isObject(%brickGroup.client) ? %brickGroup.client : 0), true);
- %display = true;
- }
- if(%display)
- {
- messageClient(%client, '', "\c6Since you are no longer" SPC CityRP(3, $CityRP::jobs::name[CityRPData.getData(%client.bl_id).valueJobID]) SPC $CityRP::jobs::name[CityRPData.getData(%client.bl_id).valueJobID] @ ", your item spawns have been removed.");
- }
- }
- CityRPData.getData(%client.bl_id).valueMoney -= mFloor($CityRP::jobs::initialInvestment[%a]);
- CityRPData.getData(%client.bl_id).valueJobID = %a;
- if(isObject(%client.player))
- {
- serverCmdunUseTool(%client);
- %client.player.giveDefaultEquipment();
- }
- %client.CityRP(1);
- return;
- }
- }
- messageClient(%client, '', "\c6Invalid job '\c3" @ getWords(%args, 0, getWordCount(%args) - 1) @ "\c6'. Type \c3^job\c6 to see a list of the jobs.");
- return;
- }
- if(%command $= "cast")
- {
- if(strLwr(getWord(strLwr(%args), getWordCount(%args) - 1)) $= "sandwich")
- {
- messageClient(%client, '', "\c6You cast a sandwich, but Iban takes it away from you!");
- }
- return;
- }
- if(%command $= "help")
- {
- %section = strLwr(getWord(strLwr(%args), getWordCount(%args) - 1));
- if(%section $= "admin")
- {
- if(!%client.isAdmin)
- {
- messageClient(%client, '', "\c6You must be admin to use this help section!");
- }
- else
- {
- CityRPHelp.displayHelp(%client, "main_admin");
- }
- return;
- }
- if(%section $= "jobs")
- {
- messageClient(%client, '', "\c6Type \c3^job\c6 then one of the jobs below to become that job.");
- for(%a = 1; %a <= $CityRP::jobs; %a++)
- {
- messageClient(%client, '', "\c3" @ $CityRP::jobs::name[%a] SPC "\c6- Inital Investment: \c3" @ $CityRP::jobs::initialInvestment[%a] SPC "\c6Pay: \c3" @ $CityRP::jobs::pay[%a] SPC "\c6Items: \c3" SPC (($CityRP::jobs::items[%a] == 1) ? "Yes" : "No") SPC "\c6Law: \c3" SPC (($CityRP::jobs::law[%a]) ? "Yes" : "No"));
- }
- return;
- }
- if(%section $= "lots")
- {
- messageClient(%client, '', "\c6This is a list of lots you can plant.");
- for(%a = 0; %a < datablockGroup.getCount(); %a++)
- {
- %datablock = datablockGroup.getObject(%a);
- if(%datablock.CityRPBrickType == 1)
- {
- messageClient(%client, '', "\c3" @ %datablock.uiName SPC "\c6- Size: \c3" @ %datablock.brickSizeX @ "x" @ %datablock.brickSizeY SPC "\c6Cost: \c3" @ %datablock.initialPrice SPC "\c6Tax: \c3" SPC %datablock.taxAmount);
- }
- }
- return;
- }
- if(%section $= "items")
- {
- messageClient(%client, '', "\c6This is a list of item prices.");
- for(%a = 0; %a < datablockGroup.getCount(); %a++)
- {
- %datablock = datablockGroup.getObject(%a);
- if((strLwr(%datablock.getClassName()) !$= strLwr("itemData") && strLwr(%datablock.getClassName()) !$= "weapon") || %datablock.uiName $= "")
- {
- continue;
- }
- if(!%datablock.CityRPCanSpawn && %datablock.CityRPCanSpawn !$= "")
- {
- continue;
- }
- %price = (isObject(%datablock.image) && isObject(%datablock.image.projectile)) ? mFloor(%datablock.image.projectile.directDamage) : 0;
- %price2 = (isObject(%datablock.image) && isObject(%datablock.image.projectile) && isObject(%datablock.image.projectile.explosion)) ? mFloor(%datablock.image.projectile.explosion.radiusDamage) : 0;
- messageClient(%client, '', "\c3" @ %datablock.uiName SPC "\c6- Price: \c3$" @ $CityRP::prices::addItemSpawn + (%price + %price2));
- }
- return;
- }
- if(%section !$= "")
- {
- %error = CityRPHelp.displayHelp(%client, %section);
- if(!%error)
- {
- messageClient(%client, '', "\c6Invalid help section '\c3" @ getWord(strLwr(%args), getWordCount(%args) - 1) @ "\c6'.");
- }
- return;
- }
- CityRPHelp.displayHelp(%client, "main");
- return;
- }
- if(%command $= "reset")
- {
- if(CityRPData.getData(%client.bl_id).valueMoney - $CityRP::prices::reset < 0)
- {
- messageClient(%client, '', "\c6You need at least \c3$" @ $CityRP::prices::reset SPC "\c6to do that.");
- return;
- }
- if(getWord(CityRPData.getData(%client.bl_id).valueBankData, 2) > 0)
- {
- messageClient(%client, '', "\c6You are still paying off your loan of \c3$" @ getWord(CityRPData.getData(%client.bl_id).valueBankData, 2) @ "\c6!");
- return;
- }
- messageClient(%client, '', "\c6Your account has been reset.");
- CityRPData.removeData(%client.bl_id);
- CityRPData.addData(%client.bl_id);
- %client.CityRP(1);
- if(isObject(%client.player))
- {
- %client.player.delete();
- %client.spawnPlayer();
- }
- return;
- }
- messageClient(%client, '', "\c6Invalid command '\c3" @ %command @ "\c6'.");
- %client.lastCityRPCommand = %lastCommand;
- return;
- }
- if(isObject(%client.player) && isObject(%client.CityRPTrigger) && isObject(%client.CityRPTrigger.parent) && %client.CityRPTrigger.parent.getDatablock().CityRPBrickType == 2)
- {
- if(%client.lastCityRPCommand + 0.01 > $sim::time)
- {
- return;
- }
- %client.CityRPTrigger.parent.getDatablock().parseData(%client.CityRPTrigger.parent, %client, "", %text);
- %client.lastCityRPCommand = $sim::time;
- return;
- }
- if(getWord(CityRPData.getData(%client.bl_id).valueJailData, 1) > 0)
- {
- messageClient(%client, '', "\c6You can't talk while in jail.");
- return;
- }
- parent::serverCmdmessageSent(%client, %text);
- }
- function serverCmdteamMessageSent(%client, %text)
- {
- %minigame = %client.minigame;
- %client.minigame = "";
- parent::serverCmdteamMessageSent(%client, %text);
- %client.minigame = %minigame;
- }
- function serverCmdcreateMiniGame(%client)
- {
- return;
- }
- function serverCmdleaveMiniGame(%client)
- {
- return;
- }
- function serverCmddropTool(%client, %toolID)
- {
- if(getWord(CityRPData.getData(%client.bl_id).valueJailData, 1) > 0)
- {
- messageClient(%client, '', "\c6You can't drop tools while in jail.");
- return;
- }
- parent::serverCmddropTool(%client, %toolID);
- }
- function serverCmdsuicide(%client)
- {
- if(getWord(CityRPData.getData(%client.bl_id).valueJailData, 1) > 0)
- {
- messageClient(%client, '', "\c6You can't suicide while in jail.");
- return;
- }
- parent::serverCmdsuicide(%client);
- }
- function fxDtsBrick::onPlant(%brick)
- {
- parent::onPlant(%brick);
- if(isObject($loadingBricks_client) && !isObject($loadBrick_fileObj))
- {
- if(%brick.getDatablock().CityRPBrickType == 1 || %brick.getDatablock().CityRPBrickType == 2)
- {
- %brick.schedule(1, "CityRP", 1);
- }
- if(%brick.getDatablock().CityRPBrickType == 3)
- {
- $CityRP_temp::spawnPoints = ($CityRP_temp::spawnPoints $= "") ? %brick : $CityRP_temp::spawnPoints SPC %brick;
- }
- return;
- }
- if(!isObject(getBrickGroupFromObject(%brick).client))
- {
- if(%brick.getDatablock().CityRPBrickType == 1)
- {
- %brick.schedule(0, "delete");
- }
- if(%brick.getDatablock().CityRPBrickType == 2)
- {
- %brick.schedule(0, "CityRP", 1);
- }
- if(%brick.getDatablock().CityRPBrickType == 3)
- {
- $CityRP_temp::spawnPoints = ($CityRP_temp::spawnPoints $= "") ? %brick : $CityRP_temp::spawnPoints SPC %brick;
- }
- return;
- }
- %boxSize = getWord(%brick.getDatablock().brickSizeX, 1) / 2.5 SPC getWord(%brick.getDatablock().brickSizeY, 0) / 2.5 SPC getWord(%brick.getDatablock().brickSizeZ, 2) / 2.5;
- if(mFloor(getWord(%brick.rotation, 3)) == 90)
- {
- %boxSize = getWord(%brick.getDatablock().brickSizeY, 1) / 2.5 SPC getWord(%brick.getDatablock().brickSizeX, 0) / 2.5 SPC getWord(%brick.getDatablock().brickSizeZ, 2) / 2.5;
- }
- %client = getBrickGroupFromObject(%brick).client;
- initContainerBoxSearch(%brick.getWorldBoxCenter(), %boxSize, $typeMasks::triggerObjectType);
- while(isObject(%potentialTrigger = containerSearchNext()))
- {
- %trigger = %potentialTrigger;
- if(%trigger.getDatablock() == CityRPLotTriggerData.getID())
- {
- if(%brick.getDatablock().CityRPBrickType == 1)
- {
- %brick.schedule(0, "delete");
- return;
- }
- if(getTrustLevel(%trigger.parent, %client.player) < 1)
- {
- commandToClient(%client, 'centerPrint', (getBrickGroupFromObject(%trigger.parent).name $= "") ? "\c1BL_ID:" SPC getBrickGroupFromObject(%trigger.parent).bl_id : getBrickGroupFromObject(%trigger.parent).name SPC "\c0does not trust you enough to do that.", 1);
- %brick.schedule(0, "delete");
- return;
- }
- }
- }
- if(!%client.isAdmin && %brick.getDatablock().CityRPBrickAdmin)
- {
- commandToClient(%client, 'centerPrint', "\c3You must be admin to plant this brick!", 3);
- %brick.schedule(0, "delete");
- return;
- }
- if(!%client.isAdmin && !isObject(%trigger) && %brick.getDatablock().CityRPBrickType != 1)
- {
- %brick.schedule(0, "delete");
- return;
- }
- if(%brick.getDatablock().CityRPBrickType == 1)
- {
- if(CityRPData.getData(%client.bl_id).valueMoney < mFloor(%brick.getDatablock().initialPrice))
- {
- messageClient(%client, '', "\c6You need at least \c3$" @ mFloor(%brick.getDatablock().initialPrice) SPC "\c6in order to plant this lot!");
- %brick.schedule(0, "delete");
- return;
- }
- messageClient(%client, '', "\c6You have paid \c3$" @ mFloor(%brick.getDatablock().initialPrice) @ "\c6 to plant this lot.");
- CityRPData.getData(%client.bl_id).valueMoney -= mFloor(%brick.getDatablock().initialPrice);
- }
- if(!isObject(CityRPData.getData(getBrickGroupFromObject(%brick).bl_id)))
- {
- CityRPData.addData(getBrickGroupFromObject(%brick).bl_id);
- }
- if(%brick.getDatablock().brickType == 2)
- {
- if(CityRPData.getData(%client.bl_id).valueMoney < mFloor($CityRP::prices::vehicleSpawn))
- {
- messageClient(%client, '', "\c6You need at least \c3$" @ mFloor($CityRP::prices::vehicleSpawn) SPC "\c6in order to plant this vehicle spawn!");
- %brick.schedule(0, "delete");
- return;
- }
- messageClient(%client, '', "\c6You have paid \c3$" @ mFloor($CityRP::prices::vehicleSpawn) @ "\c6 to plant this vehicle spawn.");
- CityRPData.getData(%client.bl_id).valueMoney -= mFloor($CityRP::prices::vehicleSpawn);
- }
- if(%brick.getDatablock().CityRPBrickType == 1 || %brick.getDatablock().CityRPBrickType == 2)
- {
- %brick.schedule(0, "CityRP", 1);
- }
- if(%brick.getDatablock().CityRPBrickType == 3)
- {
- $CityRP_temp::spawnPoints = ($CityRP_temp::spawnPoints $= "") ? %brick : $CityRP_temp::spawnPoints SPC %brick;
- }
- %client.CityRP(1);
- }
- function fxDtsBrick::onDeath(%brick)
- {
- if(%brick.getDatablock().CityRPBrickType == 1 || %brick.getDatablock().CityRPBrickType == 2)
- {
- %brick.CityRP(2);
- }
- if(%brick.getDatablock().CityRPBrickType == 3)
- {
- if(getWord($CityRP_temp::spawnPoints, 0) == %brick)
- {
- $CityRP_temp::spawnPoints = strReplace($CityRP_temp::spawnPoints, %brick @ ((getWordCount($CityRP_temp::spawnPoints) == 1) ? "" : " "), "");
- }
- else
- {
- $CityRP_temp::spawnPoints = strReplace($CityRP_temp::spawnPoints, " " @ %brick, "");
- }
- }
- parent::onDeath(%brick);
- }
- function fxDtsBrick::onRemove(%brick)
- {
- if(%brick.getDatablock().CityRPBrickType == 1 || %brick.getDatablock().CityRPBrickType == 2)
- {
- %brick.CityRP(2);
- }
- if(%brick.getDatablock().CityRPBrickType == 3)
- {
- if(getWord($CityRP_temp::spawnPoints, 0) == %brick)
- {
- $CityRP_temp::spawnPoints = strReplace($CityRP_temp::spawnPoints, %brick @ ((getWordCount($CityRP_temp::spawnPoints) == 1) ? "" : " "), "");
- }
- else
- {
- $CityRP_temp::spawnPoints = strReplace($CityRP_temp::spawnPoints, " " @ %brick, "");
- }
- }
- parent::onRemove(%brick);
- }
- function fxDtsBrick::setName(%brick, %name)
- {
- %oldName = %brick.getName();
- if(isObject(%name) && (%brick.getDatablock().CityRPBrickType == 1 || %name.getDatablock().CityRPBrickType == 1))
- {
- %a = 2;
- while(isObject(%name @ %a))
- {
- %a++;
- }
- %name = %name @ %a;
- parent::setName(%brick, %name);
- return;
- }
- parent::setName(%brick, %name);
- if(%name !$= "")
- {
- for(%a = 1; %a <= CityRPData.dataCount; %a++)
- {
- if(getWord(CityRPData.data[%a].valueLotData, 0) == 0)
- {
- continue;
- }
- %data = CityRPData.data[%a].valueLotData;
- for(%b = 1; %b < getWordCount(%data); %b++)
- {
- if(%b % 2 == 0)
- {
- continue;
- }
- if(strLwr(getWord(%data, %b)) $= strLwr(getSubStr(%name, 1, strLen(%name) - 1)))
- {
- %a = 2;
- while(isObject(%name @ %a))
- {
- %a++;
- }
- %name = %name @ %a;
- parent::setName(%brick, %name);
- return;
- }
- }
- }
- }
- if(%oldName !$= "")
- {
- if(%brick.getName() $= "")
- {
- %data = CityRPData.getData(getBrickGroupFromObject(%brick).bl_id).valueLotData;
- %newData = getWord(%data, 0) - 1;
- for(%a = 1; %a < getWordCount(%data); %a++)
- {
- if(%cancelNext)
- {
- %cancelNext = false;
- continue;
- }
- %newData = %newData SPC getWord(%data, %a);
- if(%a % 2 == 0)
- {
- continue;
- }
- %newBrick = "_" @ getWord(%data, %a);
- if(isObject(%newBrick) && %newBrick $= %oldName)
- {
- %newData = getWords(%newData, 0, getWordCount(%newData) - 2);
- %cancelNext = true;
- }
- }
- CityRPData.getData(getBrickGroupFromObject(%brick).bl_id).valueLotData = %newData;
- }
- else
- {
- CityRPData.getData(getBrickGroupFromObject(%brick).bl_id).valueLotData = strReplace(CityRPData.getData(getBrickGroupFromObject(%brick).bl_id).valueLotData, getSubStr(%oldName, 1, strLen(%oldName) - 1), getSubStr(%name, 1, strLen(%name) - 1));
- }
- }
- }
- function fxDtsBrick::setItem(%brick, %datablock, %client)
- {
- if(!isObject(%client))
- {
- %client = getBrickGroupFromObject(%brick).client;
- }
- if(!isObject(%client))
- {
- parent::spawnItem(%brick, %pos, %datablock, %client);
- return;
- }
- if(!isObject(%client) || (isObject($loadingBricks_client) && !isObject($loadBrick_fileObj)) || (isObject(%brick.item) && %brick.item.getDatablock() == %datablock))
- {
- parent::setItem(%brick, %datablock, %client);
- return;
- }
- if(!%datablock.CityRPCanSpawn && %datablock.CityRPCanSpawn !$= "")
- {
- return;
- }
- if(!isObject(%datablock) || (!%client.isAdmin && $CityRP::jobs::items[CityRPData.getData(%client.bl_id).valueJobID] == 0))
- {
- parent::setItem(%brick, 0, %client);
- return;
- }
- %price = (isObject(%datablock.image) && isObject(%datablock.image.projectile)) ? mFloor(%datablock.image.projectile.directDamage) : 0;
- %price2 = (isObject(%datablock.image) && isObject(%datablock.image.projectile) && isObject(%datablock.image.projectile.explosion)) ? mFloor(%datablock.image.projectile.explosion.radiusDamage) : 0;
- if((CityRPData.getData(%client.bl_id).valueMoney - ($CityRP::prices::addItemSpawn + (%price + %price2))) < 0)
- {
- messageClient(%client, '', "\c6You can't afford to spawn this item.");
- return;
- }
- messageClient(%client, '', "\c6You have paid \c3$" @ ($CityRP::prices::addItemSpawn + (%price + %price2)) @ "\c6 to spawn this item.");
- CityRPData.getData(%client.bl_id).valueMoney -= $CityRP::prices::addItemSpawn + (%price + %price2);
- %client.CityRP(1);
- parent::setItem(%brick, %datablock, %client);
- }
- function fxDtsBrick::spawnItem(%brick, %pos, %datablock, %client)
- {
- if(!isObject(%client))
- {
- %client = getBrickGroupFromObject(%brick).client;
- }
- if(!isObject(%client))
- {
- parent::spawnItem(%brick, %pos, %datablock, %client);
- return;
- }
- if(!isObject(%datablock) || (!%client.isAdmin && !$CityRP::jobs::items[CityRPData.getData(%client.bl_id).valueJobID]))
- {
- return;
- }
- if(!%datablock.CityRPCanSpawn && %datablock.CityRPCanSpawn !$= "")
- {
- return;
- }
- %price = (isObject(%datablock.image) && isObject(%datablock.image.projectile)) ? mFloor(%datablock.image.projectile.directDamage) : 0;
- %price2 = (isObject(%datablock.image) && isObject(%datablock.image.projectile) && isObject(%datablock.image.projectile.explosion)) ? mFloor(%datablock.image.projectile.explosion.radiusDamage) : 0;
- if((CityRPData.getData(%client.bl_id).valueMoney - ($CityRP::prices::addItemSpawn + (%price + %price2))) < 0)
- {
- messageClient(%client, '', "\c6You can't afford to spawn this item.");
- return;
- }
- messageClient(%client, '', "\c6You have paid \c3$" @ ($CityRP::prices::addItemSpawn + (%price + %price2)) @ "\c6 to spawn this item.");
- CityRPData.getData(%client.bl_id).valueMoney -= $CityRP::prices::addItemSpawn + (%price + %price2);
- %client.CityRP(1);
- parent::spawnItem(%brick, %pos, %datablock, %client);
- return;
- }
- function CityRPLotTriggerData::onEnterTrigger(%this, %trigger, %obj)
- {
- %trigger.parent.onEnterLot(%obj);
- if(!isObject(%obj.client))
- {
- return;
- }
- %obj.client.CityRPLotTrigger = %trigger;
- %obj.client.CityRP(1);
- }
- function CityRPLotTriggerData::onLeaveTrigger(%this, %trigger, %obj)
- {
- %trigger.parent.onLeaveLot(%obj);
- if(!isObject(%obj.client) || %obj.client.CityRPLotTrigger != %trigger)
- {
- return;
- }
- %obj.client.CityRPLotTrigger = "";
- %obj.client.CityRP(1);
- }
- function CityRPInputTriggerData::onEnterTrigger(%this, %trigger, %obj)
- {
- if(!isObject(%obj.client))
- {
- return;
- }
- %obj.client.CityRPTrigger = %trigger;
- %trigger.parent.getDatablock().parseData(%trigger.parent, %obj.client, true, "");
- }
- function CityRPInputTriggerData::onLeaveTrigger(%this, %trigger, %obj, %a)
- {
- if(!isObject(%obj.client))
- {
- return;
- }
- if(%obj.client.CityRPTrigger == %trigger)
- {
- %trigger.parent.getDatablock().parseData(%trigger.parent, %obj.client, false, "");
- %obj.client.CityRPTrigger = "";
- }
- }
- function CityRPBankBrickData::parseData(%this, %brick, %client, %triggerStatus, %text)
- {
- if(%triggerStatus !$= "")
- {
- if(%triggerStatus == true && %client.stage $= "")
- {
- messageClient(%client, '', "\c6Welcome! Please type the number corresponding to the options below.");
- messageClient(%client, '', "\c6Also, you have \c3$" @ getWord(CityRPData.getData(%client.bl_id).valueBankData, 0) SPC "\c6in the bank.");
- messageClient(%client, '', "\c31 \c6- Withdraw Money");
- messageClient(%client, '', "\c32 \c6- Deposit Money");
- messageClient(%client, '', "\c33 \c6- Take Loan");
- %client.stage = 0;
- }
- if(%triggerStatus == false && %client.stage !$= "")
- {
- messageClient(%client, '', "\c6Thanks, come again.");
- %client.stage = "";
- }
- return;
- }
- %input = strLwr(%text);
- if(%client.stage == 1.1)
- {
- if(mFloor(%input) < 1)
- {
- messageClient(%client, '', "\c6Please enter a valid amount of money to withdraw.");
- return;
- }
- if(getWord(CityRPData.getData(%client.bl_id).valueBankData, 0) - mFloor(%input) < 0)
- {
- if(getWord(CityRPData.getData(%client.bl_id).valueBankData, 0) < 1)
- {
- messageClient(%client, '', "\c6You don't have that much money in the bank to withdraw.");
- %brick.trigger.getDatablock().onLeaveTrigger(%brick.trigger, (isObject(%client.player) ? %client.player : 0));
- return;
- }
- %input = getWord(CityRPData.getData(%client.bl_id).valueBankData, 0);
- }
- messageClient(%client, '', "\c6You have withdrawn \c3$" @ mFloor(%input) @ "\c6.");
- CityRPData.getData(%client.bl_id).valueBankData = getWord(CityRPData.getData(%client.bl_id).valueBankData, 0) - mFloor(%input) SPC getWords(CityRPData.getData(%client.bl_id).valueBankData, 1, 2);
- CityRPData.getData(%client.bl_id).valueMoney += mFloor(%input);
- %client.CityRP(1);
- %brick.trigger.getDatablock().onLeaveTrigger(%brick.trigger, (isObject(%client.player) ? %client.player : 0));
- return;
- }
- if(%client.stage == 2.1)
- {
- if(mFloor(%input) < 1)
- {
- messageClient(%client, '', "\c6Please enter a valid amount of money to deposit.");
- return;
- }
- if(CityRPData.getData(%client.bl_id).valueMoney - mFloor(%input) < 0)
- {
- if(CityRPData.getData(%client.bl_id).valueMoney < 1)
- {
- messageClient(%client, '', "\c6You don't have that much money to deposit.");
- %brick.trigger.getDatablock().onLeaveTrigger(%brick.trigger, (isObject(%client.player) ? %client.player : 0));
- return;
- }
- %input = CityRPData.getData(%client.bl_id).valueMoney;
- }
- messageClient(%client, '', "\c6You have deposited \c3$" @ mFloor(%input) @ "\c6!");
- CityRPData.getData(%client.bl_id).valueBankData = getWord(CityRPData.getData(%client.bl_id).valueBankData, 0) + mFloor(%input) SPC getWords(CityRPData.getData(%client.bl_id).valueBankData, 1, 2);
- CityRPData.getData(%client.bl_id).valueMoney -= mFloor(%input);
- %client.CityRP(1);
- %brick.trigger.getDatablock().onLeaveTrigger(%brick.trigger, (isObject(%client.player) ? %client.player : 0));
- return;
- }
- if(%client.stage == 3.1)
- {
- if(mFloor(%input) < 1 || mFloor(%input) > $CityRP::prices::maxLoan)
- {
- messageClient(%client, '', "\c6Please enter a valid amount of money to loan.");
- return;
- }
- messageClient(%client, '', "\c6You have loaned \c3$" @ mFloor(%input) @ "\c6!");
- %brick.trigger.getDatablock().onLeaveTrigger(%brick.trigger, (isObject(%client.player) ? %client.player : 0));
- CityRPData.getData(%client.bl_id).valueBankData = getWord(CityRPData.getData(%client.bl_id).valueBankData, 0) SPC mFloor(%input) SPC mFloor(%input);
- CityRPData.getData(%client.bl_id).valueMoney += mFloor(%input);
- %client.CityRP(1);
- %brick.trigger.getDatablock().onLeaveTrigger(%brick.trigger, (isObject(%client.player) ? %client.player : 0));
- return;
- }
- if(strReplace(%input, "1", "") !$= %input || strReplace(%input, "one", "") !$= %input)
- {
- %client.stage = 1.1;
- messageClient(%client, '', "\c6Please enter the amount of money you wish to withdraw.");
- return;
- }
- if(strReplace(%input, "2", "") !$= %input || strReplace(%input, "two", "") !$= %input)
- {
- %client.stage = 2.1;
- messageClient(%client, '', "\c6Please enter the amount of money you wish to deposit.");
- return;
- }
- if(strReplace(%input, "3", "") !$= %input || strReplace(%input, "three", "") !$= %input)
- {
- if(getWord(CityRPData.getData(%client.bl_id).valueBankData, 2) > 0)
- {
- messageClient(%client, '', "\c6You are still paying off your loan of \c3$" @ getWord(CityRPData.getData(%client.bl_id).valueBankData, 2) @ "\c6!");
- return;
- }
- %client.stage = 3.1;
- messageClient(%client, '', "\c3DISCLAIMER");
- messageClient(%client, '', "\c6The maximum amount of money you can loan is \c3$" @ $CityRP::prices::maxLoan @ "\c6.");
- messageClient(%client, '', "\c6You pay back \c3$" @ $CityRP::prices::loanPay SPC "\c6of your loan every tick.");
- messageClient(%client, '', "\c6You can not reset your account while having a loan out.");
- messageClient(%client, '', "\c6This may send you into permanent debt.");
- messageClient(%client, '', " ");
- messageClient(%client, '', "\c6Please enter the amount of money you wish to loan.");
- return;
- }
- messageClient(%client, '', "\c3" @ %text SPC "\c6is not a valid option!");
- }
- function CityRPPoliceBrickData::parseData(%this, %brick, %client, %triggerStatus, %text)
- {
- if(%triggerStatus !$= "")
- {
- if(%triggerStatus == true)
- {
- messageClient(%client, '', "\c6Welcome! Please type the number corresponding to the options below.");
- if(CityRPData.getData(%client.bl_id).valueDemerits > 0)
- {
- messageClient(%client, '', "\c6Also, you have \c3" @ CityRPData.getData(%client.bl_id).valueDemerits SPC "\c6demerits.");
- }
- messageClient(%client, '', "\c31 \c6- View Online Criminals");
- if(CityRPData.getData(%client.bl_id).valueDemerits > 0)
- {
- messageClient(%client, '', "\c32 \c6- Pay Demerits (\c3$" @ CityRPData.getData(%client.bl_id).valueDemerits * 2 @ "\c6)");
- }
- }
- if(%triggerStatus == false)
- {
- messageClient(%client, '', "\c6Thanks, come again.");
- }
- return;
- }
- %input = strLwr(%text);
- if(strReplace(%input, "1", "") !$= %input || strReplace(%input, "one", "") !$= %input)
- {
- %noCriminals = true;
- for(%a = 0; %a < clientGroup.getCount(); %a++)
- {
- %criminal = clientGroup.getObject(%a);
- if(CityRPData.getData(%criminal.bl_id).valueDemerits >= $CityRP::demerits::wantedLevel)
- {
- messageClient(%client, '', "\c3" @ %criminal.name SPC "\c6- \c3" @ CityRPData.getData(%criminal.bl_id).valueDemerits);
- %noCriminals = false;
- }
- }
- if(%noCriminals)
- {
- messageClient(%client, '', "\c6There are no criminals online.");
- }
- %brick.trigger.getDatablock().onLeaveTrigger(%brick.trigger, (isObject(%client.player) ? %client.player : 0));
- return;
- }
- if((strReplace(%input, "2", "") !$= %input || strReplace(%input, "two", "") !$= %input) && CityRPData.getData(%client.bl_id).valueDemerits > 0)
- {
- if(CityRPData.getData(%client.bl_id).valueMoney - (CityRPData.getData(%client.bl_id).valueDemerits * 2) < 0)
- {
- messageClient(%client, '', "\c6You don't have enough money to do that.");
- return;
- }
- messageClient(%client, '', "\c6You have paid \c3$" @ CityRPData.getData(%client.bl_id).valueDemerits * 2 @ "\c6. You now have no \c6demerits.");
- CityRPData.getData(%client.bl_id).valueMoney -= CityRPData.getData(%client.bl_id).valueDemerits * 2;
- CityRPData.getData(%client.bl_id).valueDemerits = 0;
- %client.CityRP(1);
- %brick.trigger.getDatablock().onLeaveTrigger(%brick.trigger, (isObject(%client.player) ? %client.player : 0));
- return;
- }
- if((strReplace(%input, "3", "") !$= %input || strReplace(%input, "three", "") !$= %input) && CityRPData.getData(%client.bl_id).valueDemerits > 0)
- {
- if(CityRPData.getData(%client.bl_id).valueMoney - (CityRPData.getData(%client.bl_id).valueDemerits * 2) < 0)
- {
- messageClient(%client, '', "\c6You don't have enough money to do that.");
- return;
- }
- messageClient(%client, '', "\c6You have paid \c3$" @ CityRPData.getData(%client.bl_id).valueDemerits * 2 @ "\c6. You now have no \c6demerits.");
- CityRPData.getData(%client.bl_id).valueMoney -= CityRPData.getData(%client.bl_id).valueDemerits * 2;
- CityRPData.getData(%client.bl_id).valueDemerits = 0;
- %client.CityRP(1);
- %brick.trigger.getDatablock().onLeaveTrigger(%brick.trigger, (isObject(%client.player) ? %client.player : 0));
- return;
- }
- messageClient(%client, '', "\c3" @ %text SPC "\c6is not a valid option!");
- return;
- }
- function CityRPRealEstateBrickData::parseData(%this, %brick, %client, %triggerStatus, %text)
- {
- if(%triggerStatus !$= "")
- {
- if(%triggerStatus == true)
- {
- messageClient(%client, '', "\c6Welcome! Please type the number corresponding to the options below.");
- messageClient(%client, '', "\c31 \c6- View Lots");
- messageClient(%client, '', "\c32 \c6- Buy Lot");
- messageClient(%client, '', "\c33 \c6- Sell Lot");
- messageClient(%client, '', "\c34 \c6- Cancel Sale");
- %client.stage = 0;
- %client.pickedLot = "";
- }
- if(%triggerStatus == false)
- {
- messageClient(%client, '', "\c6Thanks, come again.");
- %client.stage = "";
- %client.pickedLot = "";
- }
- return;
- }
- %input = strLwr(%text);
- if(%client.stage == 2.1)
- {
- %found = false;
- for(%a = 1; %a <= CityRPData.dataCount; %a++)
- {
- if(getWord(CityRPData.data[%a].valueLotData, 0) == 0 || CityRPData.data[%a].ID == %client.bl_id)
- {
- continue;
- }
- %data = CityRPData.data[%a].valueLotData;
- for(%b = 1; %b < getWordCount(%data); %b++)
- {
- if(%b % 2 == 0)
- {
- continue;
- }
- if(strLwr(getWord(%data, %b)) $= %input)
- {
- %found = true;
- %newBrick = "_" @ getWord(%data, %b);
- %price = getWord(%data, %b + 1);
- %owner = getBrickGroupFromObject(%newBrick);
- }
- }
- }
- if(!%found)
- {
- messageClient(%client, '', "\c6Invalid lot '\c3" @ %text @ "\c6'.");
- return;
- }
- if(CityRPData.getData(%client.bl_id).valueMoney < %price)
- {
- messageClient(%client, '', "\c6You need at least \c3$" @ %price SPC "\c6to buy this lot.");
- %brick.trigger.getDatablock().onLeaveTrigger(%brick.trigger, (isObject(%client.player) ? %client.player : 0));
- return;
- }
- messageClient(%client, '', "\c3You have bought \c3" @ getSubStr(%newBrick, 1, strLen(%newBrick) - 1) SPC "\c6from \c3" @ %owner.name @ "\c6.");
- if(isObject(%owner.client))
- {
- messageClient(%owner.client, '', "\c3" @ %client.name SPC "\c6has bought \c3" @ getSubStr(%newBrick, 1, strLen(%newBrick) - 1) SPC "\c6from you.");
- }
- CityRPData.getData(%client.bl_id).valueMoney -= %price;
- CityRPData.getData(%owner.bl_id).valueMoney += %price;
- %newBrick.CityRP(3, %client.brickGroup);
- %data = CityRPData.getData(%owner.bl_id).valueLotData;
- %newData = getWord(%data, 0) - 1;
- for(%a = 1; %a < getWordCount(%data); %a++)
- {
- if(%cancelNext)
- {
- %cancelNext = false;
- continue;
- }
- %newData = %newData SPC getWord(%data, %a);
- if(%a % 2 == 0)
- {
- continue;
- }
- if(strLwr(getWord(%data, %a)) == %newBrick)
- {
- %newData = getWords(%newData, 0, getWordCount(%newData) - 2);
- %cancelNext = true;
- }
- }
- CityRPData.getData(%owner.bl_id).valueLotData = %newData;
- %brick.trigger.getDatablock().onLeaveTrigger(%brick.trigger, (isObject(%client.player) ? %client.player : 0));
- return;
- }
- if(%client.stage == 3.1)
- {
- if(%input $= "")
- {
- return;
- }
- %picked = false;
- %brickGroup = %client.brickGroup;
- for(%a = 0; %a < %brickGroup.getCount(); %a++)
- {
- if(%brickGroup.getObject(%a).getDatablock().CityRPBrickType == 1)
- {
- if(%brickGroup.getObject(%a).getName() $= "")
- {
- continue;
- }
- %brick = %brickGroup.getObject(%a);
- if(strLwr(getSubStr(%brick.getName(), 1, strLen(%brick.getName()) - 1)) $= %input)
- {
- if(strReplace(strLwr(CityRPData.getData(%client.bl_id).valueLotData), strLwr(getSubStr(%brick.getName(), 1, strLen(%brick.getName()) - 1)), "") !$= strLwr(CityRPData.getData(%client.bl_id).valueLotData))
- {
- continue;
- }
- %picked = true;
- %client.pickedBrick = %brickGroup.getObject(%a);
- }
- }
- }
- if(!%picked)
- {
- messageClient(%client, '', "\c6Invalid lot '\c3" @ %text @ "\c6'.");
- return;
- }
- %client.stage = 3.2;
- messageClient(%client, '', "\c6Please enter the amount you wish to sell the lot for.");
- return;
- }
- if(%client.stage == 3.2)
- {
- %price = mFloor(%input);
- if(%price < 1)
- {
- messageClient(%client, '', "\c6Please enter a valid price!");
- return;
- }
- messageClient(%client, '', "\c6Your offer has been put up.");
- if(getWord(CityRPData.getData(%client.bl_id).valueLotData, 0) > 0)
- {
- %rest = getWords(CityRPData.getData(%client.bl_id).valueLotData, 1, getWordCount(CityRPData.getData(%client.bl_id).valueLotData) - 1) @ " ";
- }
- CityRPData.getData(%client.bl_id).valueLotData = getWord(CityRPData.getData(%client.bl_id).valueLotData, 0) + 1 SPC %rest @ getSubStr(%client.pickedBrick.getName(), 1, strLen(%client.pickedBrick.getName()) - 1) SPC %price;
- %brick.trigger.getDatablock().onLeaveTrigger(%brick.trigger, (isObject(%client.player) ? %client.player : 0));
- return;
- }
- if(%client.stage == 4.1)
- {
- if(%input $= "")
- {
- return;
- }
- %picked = false;
- %data = CityRPData.getData(%client.bl_id).valueLotData;
- %newData = getWord(%data, 0) - 1;
- for(%a = 1; %a < getWordCount(%data); %a++)
- {
- if(%cancelNext)
- {
- %cancelNext = false;
- continue;
- }
- %newData = %newData SPC getWord(%data, %a);
- if(%a % 2 == 0)
- {
- continue;
- }
- if(strLwr(getWord(%data, %a)) $= %input)
- {
- %picked = true;
- %newData = getWords(%newData, 0, getWordCount(%newData) - 2);
- %cancelNext = true;
- }
- }
- if(!%picked)
- {
- messageClient(%client, '', "\c6Invalid lot '\c3" @ %text @ "\c6'.");
- return;
- }
- messageClient(%client, '', "\c6Your offer has been withdrawn.");
- CityRPData.getData(%client.bl_id).valueLotData = %newData;
- %brick.trigger.getDatablock().onLeaveTrigger(%brick.trigger, (isObject(%client.player) ? %client.player : 0));
- return;
- }
- if(strReplace(%input, "1", "") !$= %input || strReplace(%input, "one", "") !$= %input)
- {
- %found = false;
- for(%a = 1; %a <= CityRPData.dataCount; %a++)
- {
- if(getWord(CityRPData.data[%a].valueLotData, 0) == 0)
- {
- continue;
- }
- %data = CityRPData.data[%a].valueLotData;
- for(%b = 1; %b < getWordCount(%data); %b++)
- {
- if(%b % 2 == 0)
- {
- continue;
- }
- %newBrick = "_" @ getWord(%data, %b);
- if(isObject(%newBrick))
- {
- %found = true;
- messageClient(%client, '', "\c3" @ getWord(%data, %b) @ "\c6, \c3" @ %newBrick.getDatablock().uiName SPC "\c6- Price: \c3$" @ getWord(%data, %b + 1) SPC "\c6Owner: \c3" @ ("brickGroup_" @ CityRPData.data[%a].ID).name);
- }
- }
- }
- if(!%found)
- {
- messageClient(%client, '', "\c6There are no lots to display.");
- }
- %brick.trigger.getDatablock().onLeaveTrigger(%brick.trigger, (isObject(%client.player) ? %client.player : 0));
- return;
- }
- if((strReplace(%input, "2", "") !$= %input || strReplace(%input, "two", "") !$= %input))
- {
- messageClient(%client, '', "\c6Please enter the lot which you wish to buy.");
- %client.stage = 2.1;
- return;
- }
- if((strReplace(%input, "3", "") !$= %input || strReplace(%input, "three", "") !$= %input))
- {
- %nameLecture = true;
- %brick404 = true;
- %brickGroup = %client.brickGroup;
- for(%a = 0; %a < %brickGroup.getCount(); %a++)
- {
- if(%brickGroup.getObject(%a).getDatablock().CityRPBrickType == 1)
- {
- %brick = %brickGroup.getObject(%a);
- if(strReplace(strLwr(CityRPData.getData(%client.bl_id).valueLotData), strLwr(getSubStr(%brick.getName(), 1, strLen(%brick.getName()) - 1)), "") !$= strLwr(CityRPData.getData(%client.bl_id).valueLotData))
- {
- continue;
- }
- %brick404 = false;
- if(%brickGroup.getObject(%a).getName() !$= "")
- {
- %brick = %brickGroup.getObject(%a);
- %nameLecture = false;
- messageClient(%client, '', "\c6" @ getSubStr(%brick.getName(), 1, strLen(%brick.getName()) - 1) SPC "\c6- \c3" @ %brick.getDatablock().uiName);
- }
- }
- }
- if(%brick404)
- {
- messageClient(%client, '', "\c6There are no lots to display.");
- %brick.trigger.getDatablock().onLeaveTrigger(%brick.trigger, (isObject(%client.player) ? %client.player : 0));
- return;
- }
- if(%nameLecture)
- {
- messageClient(%client, '', "\c6You must give a name to one of your lots!");
- %brick.trigger.getDatablock().onLeaveTrigger(%brick.trigger, (isObject(%client.player) ? %client.player : 0));
- return;
- }
- messageClient(%client, '', "\c6Please enter the name of the lot you wish to sell.");
- %client.stage = 3.1;
- return;
- }
- if((strReplace(%input, "4", "") !$= %input || strReplace(%input, "four", "") !$= %input))
- {
- %data = CityRPData.getData(%client.bl_id).valueLotData;
- %found = false;
- for(%a = 1; %a < getWordCount(%data); %a++)
- {
- if(%a % 2 == 0)
- {
- continue;
- }
- %found = true;
- if(isObject("_" @ getWord(%data, %a)))
- {
- %brick = "_" @ getWord(%data, %a);
- messageClient(%client, '', "\c6" @ getWord(%data, %a) SPC "\c6- \c3" @ %brick.getDatablock().uiName);
- }
- else
- {
- messageClient(%client, '', "\c6" @ getWord(%data, %a) SPC "\c6- \c3Unknown Lot Type");
- }
- }
- if(!%found)
- {
- messageClient(%client, '', "\c6There are no lots to display.");
- return;
- }
- messageClient(%client, '', "\c6Please enter the name of the lot you wish to withdraw from sales.");
- %client.stage = 4.1;
- return;
- }
- messageClient(%client, '', "\c3" @ %text SPC "\c6is not a valid option!");
- return;
- }
- function fxDTSBrick::onEnterLot(%brick, %obj)
- {
- $inputTarget_self = %brick;
- $inputTarget_client = %obj.client;
- $inputTarget_player = %obj.client.player;
- $inputTarget_miniGame = (isObject(getMiniGameFromObject(%obj.client))) ? getMiniGameFromObject(%obj.client) : 0;
- %brick.processInputEvent("OnEnterLot", %obj.client);
- }
- function fxDTSBrick::onLeaveLot(%brick, %obj)
- {
- $inputTarget_self = %brick;
- $inputTarget_client = %obj.client;
- $inputTarget_player = %obj.client.player;
- $inputTarget_miniGame = (isObject(getMiniGameFromObject(%obj.client))) ? getMiniGameFromObject(%obj.client) : 0;
- %brick.processInputEvent("OnLeaveLot", %obj.client);
- }
- function weapon::onPickup(%this, %item, %obj)
- {
- parent::onPickup(%this, %item, %obj);
- if(isObject(%item.spawnBrick))
- {
- %item.spawnBrick.setItem(0, ((isObject(getBrickGroupFromObject(%item.spawnBrick).client)) ? getBrickGroupFromObject(%item.spawnBrick).client : 0), true);
- }
- }
- function itemData::onPickup(%this, %item, %obj)
- {
- parent::onPickup(%this, %item, %obj);
- if(isObject(%item.spawnBrick))
- {
- %item.spawnBrick.setItem(0, ((isObject(getBrickGroupFromObject(%item.spawnBrick).client)) ? getBrickGroupFromObject(%item.spawnBrick).client : 0), true);
- }
- }
- function player::playThread(%this, %slot, %thread)
- {
- if(%thread $= "armReadyRight" && getWord(CityRPData.getData(%this.client.bl_id).valueJailData, 1) > 0)
- {
- return;
- }
- parent::playThread(%this, %slot, %thread);
- }
- function player::mountImage(%this, %datablock, %slot)
- {
- if(getWord(CityRPData.getData(%this.client.bl_id).valueJailData, 1) > 0)
- {
- return;
- }
- parent::mountImage(%this, %datablock, %slot);
- }
- function player::giveDefaultEquipment(%this)
- {
- for(%a = 0; %a < %this.getDatablock().maxTools; %a++)
- {
- if(%a > getWordCount($CityRP::jobs::tools[CityRPData.getData(%this.client.bl_id).valueJobID]) - 1)
- {
- %this.tool[%a] = "";
- messageClient(%this.client, 'MsgItemPickup', "", %a, "");
- continue;
- }
- %this.tool[%a] = nameToID(getWord($CityRP::jobs::tools[CityRPData.getData(%this.client.bl_id).valueJobID], %a));
- messageClient(%this.client, 'MsgItemPickup', "", %a, nameToID(getWord($CityRP::jobs::tools[CityRPData.getData(%this.client.bl_id).valueJobID], %a)));
- }
- %this.maxWeapons = %this.getDatablock().maxTools;
- }
- function player::setDatablock(%this, %datablock)
- {
- if(%datablock != CityRPMini.playerDatablock.getID())
- {
- return;
- }
- parent::setDatablock(%this, %datablock);
- }
- function player::damage(%this, %obj, %pos, %damage, %damageType)
- {
- if(isObject(%obj) && isObject(%this.client) && isObject(%obj.client) && %this != %obj && %this.getDamageLevel() + %damage < %this.getDatablock().maxDamage && CityRPData.getData(%this.client.bl_id).valueDemerits < $CityRP::demerits::wantedLevel && getWord(CityRPData.getData(%this.client.bl_id).valueJailData, 1) < 1)
- {
- %client = ((%this.getType() & $typeMasks::vehicleObjectType) && isObject(%obj.getControllingClient())) ? %obj.getControllingClient() : %obj.client;
- if(%this.getDamageLevel() + %damage < %this.getDatablock().maxDamage)
- {
- commandToClient(%client, 'centerPrint', "\c6You have commited a crime. [\c3Attempted Murder\c6]", 1);
- %client.CityRP(2, $CityRP::demerits::attemptedMurder);
- }
- }
- parent::damage(%this, %obj, %pos, %damage, %damageType);
- }
- function player::activateStuff(%this)
- {
- parent::activateStuff(%this);
- %target = containerRayCast(%this.getEyePoint(), vectorAdd(vectorScale(vectorNormalize(%this.getEyeVector()), 8), %this.getEyePoint()), $typeMasks::all);
- if(isObject(%target) && %target.getType() & $typeMasks::playerObjectType && isObject(%target.client) && getWord(CityRPData.getData(%this.client.bl_id).valueJailData, 1) < 1 && getWord(CityRPData.getData(%target.client.bl_id).valueJailData, 1) < 1 && $CityRP::jobs::pickpocket[CityRPData.getData(%this.client.bl_id).valueJobID] && CityRPData.getData(%target.client.bl_id).valueMoney > 10 && %this.lastPickpocket + 2 < $sim::time)
- {
- %this.lastPickpocket = $sim::time;
- if(getRandom(0, 1))
- {
- return;
- }
- %amount = getRandom(1, 25);
- commandToClient(%this.client, 'centerPrint', "\c6You have commited a crime. [\c3Pickpocketing\c6]", 1);
- %this.client.CityRP(2, $CityRP::demerits::pickpocketing);
- messageClient(%this.client, '', "\c6You have stolen \c3$" @ %amount SPC "\c6from \c3" @ %target.client.name @ "\c6.");
- messageClient(%target.client, '', "\c3" @ %this.client.name SPC "\c6has stolen \c3$" @ %amount SPC "\c6from you.");
- CityRPData.getData(%this.client.bl_id).valueMoney += %amount;
- CityRPData.getData(%target.client.bl_id).valueMoney -= %amount;
- if(CityRPData.getData(%target.client.bl_id).valueMoney < 0)
- {
- CityRPData.getData(%target.client.bl_id).valueMoney = 0;
- }
- %this.client.CityRP(1);
- %target.client.CityRP(1);
- }
- }
- function commandToClient(%client, %command, %arg0, %arg1, %arg2, %arg3, %arg4, %arg5, %arg6, %arg7, %arg8, %arg9, %arg10)
- {
- if(strLwr(getTaggedString(%command)) $= strLwr("bottomPrint") && stripMLControlChars(getWord(%arg0, 0)) !$= "Money:")
- {
- if(%client.CityRPPrintSchedule)
- {
- cancel(%client.CityRPPrintSchedule);
- %client.CityRPPrintSchedule = "";
- }
- if(!mFloor(%arg1))
- {
- return;
- }
- if(mFloor(%arg1))
- {
- %client.CityRPPrintSchedule = %client.schedule(%arg1 * 1000, "CityRP", 1);
- }
- }
- parent::commandToClient(%client, %command, %arg0, %arg1, %arg2, %arg3, %arg4, %arg5, %arg6, %arg7, %arg8, %arg9, %arg10);
- }
- function CityRPBatonImage::onFire(%this, %obj, %slot)
- {
- parent::onFire(%this, %obj, %slot);
- %obj.playThread(2, "armAttack");
- }
- function CityRPBatonImage::onStopFire(%this, %obj, %slot)
- {
- %obj.playThread(2, "root");
- }
- function CityRPBatonProjectile::onCollision(%this, %obj, %col, %fade, %pos, %normal)
- {
- serverPlay3D(hammerHitSound, %pos);
- if((%col.getType() & $typeMasks::fxBrickObjectType))
- {
- if(isObject(%col.door))
- {
- %col.doorOpen();
- %col.schedule(3000, "doorClose");
- }
- return;
- }
- if((%col.getType() & $typeMasks::playerObjectType) && isObject(%col.client))
- {
- if(CityRPData.getData(%col.client.bl_id).valueDemerits < $CityRP::demerits::wantedLevel)
- {
- commandToClient(%obj.client, 'centerPrint', "\c6You have commited a crime. [\c3Hitting Innocents\c6]", 1);
- %obj.client.CityRP(2, $CityRP::demerits::hittingInnocents);
- return;
- }
- if(CityRPData.getData(%col.client.bl_id).valueDemerits >= $CityRP::demerits::wantedLevel)
- {
- %col.client.CityRP(3, %obj.client);
- }
- return;
- }
- }
- };
- package RTB_Goodies
- {
- function serverCmdRTB_updatePrefs(%client, %prefArray)
- {
- parent::serverCmdRTB_updatePrefs(%client, %prefArray);
- export("$CityRP::*","config/server/PeopleMods/CityRPPrefs.cs");
- }
- };
- if(!$server::dedicated || $server::lan)
- {
- if(!$server::dedicated)
- {
- echo("CityRP does not support non-dedicated servers. Terminating.");
- }
- if($server::lan)
- {
- echo("CityRP does not support LAN servers. Terminating.");
- }
- eval("package CityRP{function CityRP(){return;}};");
- eval("package RTB_Goodies{function serverCmdRTB_updatePrefs(){parent::serverCmdRTB_updatePrefs(%client, %prefArray);}};");
- return;
- }
- exec("./Sassy.cs");
- exec("./Hellen.cs");
- if(!$CityRP_temp::loadedDatablocks)
- {
- exec("./datablocks.cs");
- if(!$CityRP_temp::loadedDatablocks)
- {
- return;
- }
- }
- activatePackage(CityRP);
- CityRP(1);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement