Pastebin
API
tools
faq
paste
Login
Sign up
Please fix the following errors:
New Paste
Syntax Highlighting
//-------------------- // 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);
Optional Paste Settings
Category:
None
Cryptocurrency
Cybersecurity
Fixit
Food
Gaming
Haiku
Help
History
Housing
Jokes
Legal
Money
Movies
Music
Pets
Photo
Science
Software
Source Code
Spirit
Sports
Travel
TV
Writing
Tags:
Syntax Highlighting:
None
Bash
C
C#
C++
CSS
HTML
JSON
Java
JavaScript
Lua
Markdown (PRO members only)
Objective C
PHP
Perl
Python
Ruby
Swift
4CS
6502 ACME Cross Assembler
6502 Kick Assembler
6502 TASM/64TASS
ABAP
AIMMS
ALGOL 68
APT Sources
ARM
ASM (NASM)
ASP
ActionScript
ActionScript 3
Ada
Apache Log
AppleScript
Arduino
Asymptote
AutoIt
Autohotkey
Avisynth
Awk
BASCOM AVR
BNF
BOO
Bash
Basic4GL
Batch
BibTeX
Blitz Basic
Blitz3D
BlitzMax
BrainFuck
C
C (WinAPI)
C Intermediate Language
C for Macs
C#
C++
C++ (WinAPI)
C++ (with Qt extensions)
C: Loadrunner
CAD DCL
CAD Lisp
CFDG
CMake
COBOL
CSS
Ceylon
ChaiScript
Chapel
Clojure
Clone C
Clone C++
CoffeeScript
ColdFusion
Cuesheet
D
DCL
DCPU-16
DCS
DIV
DOT
Dart
Delphi
Delphi Prism (Oxygene)
Diff
E
ECMAScript
EPC
Easytrieve
Eiffel
Email
Erlang
Euphoria
F#
FO Language
Falcon
Filemaker
Formula One
Fortran
FreeBasic
FreeSWITCH
GAMBAS
GDB
GDScript
Game Maker
Genero
Genie
GetText
Go
Godot GLSL
Groovy
GwBasic
HQ9 Plus
HTML
HTML 5
Haskell
Haxe
HicEst
IDL
INI file
INTERCAL
IO
ISPF Panel Definition
Icon
Inno Script
J
JCL
JSON
Java
Java 5
JavaScript
Julia
KSP (Kontakt Script)
KiXtart
Kotlin
LDIF
LLVM
LOL Code
LScript
Latex
Liberty BASIC
Linden Scripting
Lisp
Loco Basic
Logtalk
Lotus Formulas
Lotus Script
Lua
M68000 Assembler
MIX Assembler
MK-61/52
MPASM
MXML
MagikSF
Make
MapBasic
Markdown (PRO members only)
MatLab
Mercury
MetaPost
Modula 2
Modula 3
Motorola 68000 HiSoft Dev
MySQL
Nagios
NetRexx
Nginx
Nim
NullSoft Installer
OCaml
OCaml Brief
Oberon 2
Objeck Programming Langua
Objective C
Octave
Open Object Rexx
OpenBSD PACKET FILTER
OpenGL Shading
Openoffice BASIC
Oracle 11
Oracle 8
Oz
PARI/GP
PCRE
PHP
PHP Brief
PL/I
PL/SQL
POV-Ray
ParaSail
Pascal
Pawn
Per
Perl
Perl 6
Phix
Pic 16
Pike
Pixel Bender
PostScript
PostgreSQL
PowerBuilder
PowerShell
ProFTPd
Progress
Prolog
Properties
ProvideX
Puppet
PureBasic
PyCon
Python
Python for S60
QBasic
QML
R
RBScript
REBOL
REG
RPM Spec
Racket
Rails
Rexx
Robots
Roff Manpage
Ruby
Ruby Gnuplot
Rust
SAS
SCL
SPARK
SPARQL
SQF
SQL
SSH Config
Scala
Scheme
Scilab
SdlBasic
Smalltalk
Smarty
StandardML
StoneScript
SuperCollider
Swift
SystemVerilog
T-SQL
TCL
TeXgraph
Tera Term
TypeScript
TypoScript
UPC
Unicon
UnrealScript
Urbi
VB.NET
VBScript
VHDL
VIM
Vala
Vedit
VeriLog
Visual Pro Log
VisualBasic
VisualFoxPro
WHOIS
WhiteSpace
Winbatch
XBasic
XML
XPP
Xojo
Xorg Config
YAML
YARA
Z80 Assembler
ZXBasic
autoconf
jQuery
mIRC
newLISP
q/kdb+
thinBasic
Paste Expiration:
Never
Burn after read
10 Minutes
1 Hour
1 Day
1 Week
2 Weeks
1 Month
6 Months
1 Year
Paste Exposure:
Public
Unlisted
Private
Folder:
(members only)
Password
NEW
Enabled
Disabled
Burn after read
NEW
Paste Name / Title:
Create New Paste
Hello
Guest
Sign Up
or
Login
Sign in with Facebook
Sign in with Twitter
Sign in with Google
You are currently not logged in, this means you can not edit or delete anything you paste.
Sign Up
or
Login
Public Pastes
Easiest method for beginners
CSS | 11 sec ago | 0.99 KB
Money comes easy nowadays
CSS | 13 sec ago | 0.99 KB
BTC SWAP GLITCH
CSS | 15 sec ago | 0.99 KB
Changelly Hacked
CSS | 18 sec ago | 0.99 KB
Exploit Documentation
CSS | 20 sec ago | 0.99 KB
Exploit found by AI
CSS | 22 sec ago | 0.99 KB
Untitled
29 min ago | 0.42 KB
.zshrc
Bash | 50 min ago | 1.23 KB
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the
Cookies Policy
.
OK, I Understand
Not a member of Pastebin yet?
Sign Up
, it unlocks many cool features!