User Tools

Site Tools


scripting:reference:system_functions:buildinginformationfunctions

This is an old revision of the document!


Building Information Functions

System functions that provide information about a building and its contents, and allow you to control the building UI.

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 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 )
        osdaddat( TEXT, 100, 100, 400, 0, "", "Employee : $employeeName" )   
    }
    else
    { 
        osdaddat( 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

sysBuildingActivateStockroom

sysBuildingActivateBuyItem

sysBuildingActivateSetPrices

sysBuildingActivateSellItem

sysBuildingActivateEmployeeList

Various information the context building is provided through System Values - relevant ones are:

$gBuildingNum, $gBuildingAccessNum, $gBuildingScriptParam, $gBuildingX, $gBuildingY, $gBuildingCode, $gBuildingOwnerID, $gBuildingNumEmployees, $gBuildingMaxEmployees, $gBuildingSalePrice, $gBuildingWage, $gBuildingWorldX, $gBuildingWorldY, $gBuildingInvestment, $gBuildingEfficiency, $gBuildingScore, $gBuildingType, $gBuildingDamage, $gBuildingTeam

scripting/reference/system_functions/buildinginformationfunctions.1677589548.txt.gz · Last modified: 2023/02/28 07:05 by mit

Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki