===== Building Information Functions ===== System functions that provide information about a building and its contents, and allow you to control the building UI. Unless otherwise stated, these functions refer to the building currently being accessed by the player. (This can be overriden using SetBuildingContext). ==== sysAmountInStocks ==== ^ Format | sysAmountInStocks( Item_Name_or_Num )| ^ Description | Returns the amount of the item currently in the building's stocks | ^ Example | ''**$amountInBuilding = sysAmountInStocks("Wood")**'' | ==== sysMaxAmountInStocks ==== ^ Format | sysMaxAmountInStocks ( Item_Name_or_Num )| ^ Description | Returns the maximum amount of the item currently allowed in the building's stocks. (This value is set in the building editor tool, or can be manually lowered by the building owner) | ^ Example | ''**$maxAmountInBuilding = sysMaxAmountInStocks("Wood")**'' | ==== sysGetBuyPrice ==== ^ Format | sysGetBuyPrice( Item ) | ^ Description | Returns the 'Buy Price' set for this item in the currently accessed building | ^ Returns | 'Buy Price' of the item in denari | ^ Notes | Related commands: *setbuyprice [BuildingID] [Item] [Price] | //Example//: Event( "AccessBuilding", "2" ) { $buyPrice = sysGetBuyPrice( "Flour" ) $buyPriceText = sysGetPriceText( $buyPrice ) osdcreate( OSDBUILDING, "BakeryOSD", "Bakery" ) osdadd( 200, 100, 200, 40, "Sell|Flour", "Buying flour ($buyPriceText)" ) osdactivate() } ==== sysGetSellPrice ==== ^ Format | sysGetSellPrice( Item_Name_or_Num )| ^ Description | Returns the price that the item is currently set for sale at (Or 0 if it is not currently for sale) ^ Returns | Price of the item in denari | //Example//: Event( "AccessBuilding", "12" ) { osdcreate( OSDBUILDING, "Building", "Example" ) $woodSellPrice = sysGetSellPrice( "Wood" ) if ( $woodSellPrice == 0 ) { osdadd( TEXT, 100, 100, 400, 0, "", "Not currently selling wood" ) } else { $woodSellPriceText = sysGetPriceText( $woodSellPrice ) osdadd( TEXT, 100, 100, 400, 0, "", "Currently selling wood at $woodSellPriceText" ) } osdactivate() } ==== sysGetEmployeeID ==== ^ Format | sysGetEmployeeID( Index ) | ^ Description | Returns the employee player ID for the currently accessed building. Buildings can have up to 16 employees. | ^ Returns | PlayerID of the employee or 0 if none is set for this index | ^ Notes | Buildings currently have 16 possible slots for employees, index parameter is 0 - 15 | //Example//: Event( "AccessBuilding", "13" ) { osdcreate( OSDBUILDING, "Building", "Example" ) $employeeID = sysGetEmployeeID( 0 ) if ( $employeeID != 0 ) { $employeeName = sysGetPlayerName( $employeeID ) osdadd( TEXT, 100, 100, 400, 0, "", "Employee : $employeeName" ) } else { osdadd( TEXT, 100, 100, 400, 0, "", "There is no-one currently employed at this building" ) } osdactivate() } ==== sysGetBuildingName ==== ^ Format | sysGetBuildingName( BuildingID ) | ^ Description | Returns the building name for a particular ID | ^ Returns | The building name | //Example//: Event( "UseItem", "Map" ) { $nearestTownID = sysGetNearestTown( $gPlayerWorldX, $gPlayerWorldY ) $nearestTownName = sysGetBuildingName( $nearestTownID ) *msg %PLAYER% The nearest town is $nearestTownName } ==== sysGetMaxJobs ==== TBD\\ ==== sysBuildingGetSoldItem ==== ==== sysBuildingGetMadeItem ==== ==== sysBuildingGetDemandedItem ==== ==== sysBuildingGetProducedItem ==== ==== sysBuildingGetTotalSold ==== ^ Format | sysBuildingGetTotalSold ( Item_Name_or_Num )| ^ Description | Returns the total amount of the item that has been sold (since the count was reset with *buildingresetsoldtotal). If item name is omitted or set to 0, a total of all items is provided. | ^ Example | ''**$totalSold = sysBuildingGetTotalSold ("Wood")**'' | ==== sysBuildingGetTotalMade ==== ^ Format | sysBuildingGetTotalMade ( Item_Name_or_Num )| ^ Description | Returns the total amount of the item that has been made (since the count was reset with *buildingresetmadetotal). If item name is omitted or set to 0, a total of all items is provided. | ^ Example | ''**$totalMade = sysBuildingGetTotalMade (0)**'' | ===== Related System Values ===== Various information the context building is provided through [[scripting:reference:system_values|System Values]] - relevant ones are: \\ \\ **$gBuildingX**, **$gBuildingY** : X,Y location of the building in map coords (default 0 -> 255)\\ **$gBuildingCode** : Building type code - the number of the building type in the buildings editor list\\ **$gBuildingNum**, **$gBuildingAccessNum** : Unique ID number of the specific building being accessed \\ **$gBuildingWorldX**, **$gBuildingWorldY** : X,Y location of the building in world coords\\ **$gBuildingTeam** : Team the building belongs to (or 0 if none)\\ **$gBuildingCapacity** : Capacity value of the building (e.g. for homes)\\ **$gBuildingSpaceRemaining** : Remaining capacity of the building (e.g. for homes)\\ **$gBuildingTown** : Town building num of the town the building is in (or 0 if the building is not in a town)\\ **$gBuildingScriptParam**, , **$gBuildingOwnerID**, **$gBuildingNumEmployees**, **$gBuildingMaxEmployees**, **$gBuildingSalePrice**, **$gBuildingWage**, **$gBuildingInvestment**, **$gBuildingEfficiency**, **$gBuildingScore**, **$gBuildingType**, **$gBuildingDamage**, ===== Collated Player Building Information ===== The following functions are somewhat different.. rather than being about a specific building, they return information about all the buildings a player currently owns. ==== sysPlayerBuildingsGetTotalMade ==== ^ Format | sysPlayerBuildingsGetTotalMade ( PlayerID, Item_Name_or_Num )| ^ Description | Returns the total amount of the item that has been made in the player's current owned buildings. The total count can be reset using *buildingresetmadetotal [building_num] [item_num]. | ^ Example | ''**$madeTotal = sysPlayerBuildingsGetTotalMade([PlayerID], "Bread")**'' | ==== sysPlayerBuildingsGetTotalSold ==== ^ Format | sysPlayerBuildingsGetTotalSold ( PlayerID, Item_Name_or_Num )| ^ Description | Returns the total amount of the item that has been sold from the player's current owned buildings. The total count can be reset using *buildingresetsoldtotal [building_num] [item_num] | ^ Example | ''**$madeTotal = sysPlayerBuildingsGetTotalSold([PlayerID], "Bread")**'' |