modding:xml:api_version
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
modding:xml:api_version [2012/08/11 23:08] – created gpm | modding:xml:api_version [2024/10/22 20:28] (current) – wolfy | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | Every extension declares the version of Transcendence that it is compatible with. This allows the Transcendence engine to maintain the greatest level of compatibility while still adding new features and evolving the API. | ||
+ | Starting with Transcendence version 1.08e, the method for declaring the compatibility version has itself changed. An extension using 1.1+ features must declare itself compatible by adding a new property in its root element: | ||
+ | |||
+ | < | ||
+ | | ||
+ | ... | ||
+ | > | ||
+ | ... | ||
+ | |||
+ | Where {version} is a the version number of the API that the extension is compatible with. If the extension runs on an //earlier// engine that doesn' | ||
+ | |||
+ | For example, an extension with apiVersion=" | ||
+ | |||
+ | Extensions may still use the older **version** property to specify that they wish to be compatible with older versions. | ||
+ | |||
+ | The following API versions are implemented: | ||
+ | |||
+ | ====API Version 53==== | ||
+ | |||
+ | Transcendence 1.9 | ||
+ | |||
+ | ====API Version 52==== | ||
+ | ====API Version 51==== | ||
+ | ====API Version 50==== | ||
+ | ====API Version 49==== | ||
+ | ====API Version 48==== | ||
+ | ====API Version 47==== | ||
+ | ====API Version 46==== | ||
+ | ====API Version 45==== | ||
+ | ====API Version 44==== | ||
+ | ====API Version 43==== | ||
+ | ====API Version 42==== | ||
+ | ====API Version 41==== | ||
+ | ====API Version 40==== | ||
+ | ====API Version 39==== | ||
+ | ====API Version 38==== | ||
+ | ====API Version 37==== | ||
+ | ====API Version 36==== | ||
+ | ====API Version 35==== | ||
+ | ====API Version 34==== | ||
+ | |||
+ | Transcendence 1.7 Beta 5 | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | ====API Version 33==== | ||
+ | |||
+ | Transcendence 1.7 Beta 4 | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | ====API Version 32==== | ||
+ | |||
+ | Transcendence 1.7 Beta 3 | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | ====API Version 31==== | ||
+ | |||
+ | Transcendence 1.7 Beta 1 | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | ====API Version 30==== | ||
+ | |||
+ | Transcendence 1.7 Alpha 2 | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | ====API Version 29==== | ||
+ | |||
+ | Transcendence 1.7 stream | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | ====API Version 27==== | ||
+ | ====API Version 26==== | ||
+ | ====API Version 25==== | ||
+ | ====API Version 24==== | ||
+ | ====API Version 23==== | ||
+ | ====API Version 22==== | ||
+ | ====API Version 22==== | ||
+ | Transcendence 1.3 and above. | ||
+ | |||
+ | ====API Version 14==== | ||
+ | Transcendence 1.2 Beta 1 and above. | ||
+ | |||
+ | === Dynamic Effects === | ||
+ | Dynamic effects are visual effects whose parameters are modified at runtime. A dynamic effect uses the < | ||
+ | |||
+ | < | ||
+ | instance=" | ||
+ | > | ||
+ | < | ||
+ | <Ray | ||
+ | | ||
+ | ... | ||
+ | > | ||
+ | |||
+ | < | ||
+ | < | ||
+ | | ||
+ | ... | ||
+ | | ||
+ | { | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | ) | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | In the above example, the parameters for the <Ray> effect are being set by the < | ||
+ | |||
+ | The **instance** parameter on < | ||
+ | |||
+ | * creator: The effect parameters are defined each time the effect is created (e.g., when the weapon is fired). | ||
+ | * game: The effect parameters are defined once at the beginning of the game and shared. For example, if multiple weapons use the same effect, all will use the same parameters. | ||
+ | * owner: The effect parameters are defined once per effect owner. For example, if multiple weapons use the same effect, the effect will be defined separately for each weapon. | ||
+ | |||
+ | NOTE: As of API version 14, only the <Ray> effect supports dynamic effects. | ||
+ | |||
+ | === Enhancement Devices === | ||
+ | In previous APIs the < | ||
+ | |||
+ | The < | ||
+ | |||
+ | * type: This is a user-defined string representing the type of enhancement. Only a single enhancement of each type will be applied. | ||
+ | * criteria: This is an item criteria specifying the set of devices that will be enhanced by this device. | ||
+ | * enhancement: | ||
+ | * " | ||
+ | * " | ||
+ | * " | ||
+ | |||
+ | === New Functions === | ||
+ | |||
+ | * (cnvDrawLine): | ||
+ | * (objGetArmorRepairPrice obj armorItem hpToRepair): | ||
+ | * (objGetArmorReplacePrice obj armorItem): Returns the price to replace one of the player ship's armor segments with the given item. NOTE: This function calls < | ||
+ | * (objGetPlayerPriceAdj obj [data]): Returns the player price adjustment (see < | ||
+ | * (scrGetListCursor) and (scrSetListCursor). | ||
+ | * (sysMatches [nodeID] criteria): Returns True if the given nodeID matches the given criteria. | ||
+ | * (typeof exp): Returns the type. | ||
+ | * (typMatches unid criteria): Returns True if the given design type matches the given criteria. | ||
+ | |||
+ | === Updated Functions === | ||
+ | |||
+ | * plyGetKeyEventStat has two new stats: ' | ||
+ | * scrSetData: Data set now persists across nested screens. E.g., if screen A calls nested screen B then all the data set by screen A remains when screen B closes. | ||
+ | * sysGetNodes: | ||
+ | * unvFindObj: Now returns the object name (and name flags) also. | ||
+ | |||
+ | === Global Events === | ||
+ | |||
+ | * < | ||
+ | * aService: The service that the player is using. One of the following: priceOfferedToPlayer, | ||
+ | * aProviderObj: | ||
+ | * gItem: The item involved in the service (if any). | ||
+ | * gData: Any custom data passed in to (objGetPlayerPriceAdj). | ||
+ | |||
+ | === Missions === | ||
+ | |||
+ | * maxAppearing parameter on < | ||
+ | |||
+ | === Object Ascension === | ||
+ | Object ascension is used to move objects (stations and ship) across systems. At any time while in a system, you may call (sysAscendObject obj) on any object (except the player ship). The object will disappear from the current system and remain in the " | ||
+ | |||
+ | At any time in any other system, you may call (sysDescendObject objID pos) on a previously ascended object (you must use an object ID, returned by objGetID, instead of the object pointer). The ascended object will descend to the current system and continue operating as normal. | ||
+ | |||
+ | There is a new AI setting parameter: ascendOnGate=" | ||
+ | |||
+ | === Object Events === | ||
+ | |||
+ | * < | ||
+ | * < | ||
+ | |||
+ | === Object Properties === | ||
+ | |||
+ | * ' | ||
+ | * ' | ||
+ | * ' | ||
+ | * You may use the " | ||
+ | |||
+ | === Ship Classes === | ||
+ | |||
+ | * Added thrustRatio= parameter to < | ||
+ | * < | ||
+ | |||
+ | === Ship Interior === | ||
+ | For capital ships and freighters you may use an < | ||
+ | |||
+ | The interior of a ship consists of one or more // | ||
+ | |||
+ | When damage penetrates the ship's armor, we check to see which compartment it hit (by position). That compartment takes the damage. If the compartment at that position already has 0 hit points, or if no compartment could be found at that position, damage passes to any compartment with a null position (any compartment that encompasses the whole ship). | ||
+ | |||
+ | When all compartments reach 0 hit points, the ship is destroyed. | ||
+ | |||
+ | A compartment may specify a type to define its purpose. Depending on the type, additional effects may occur when the compartment is damaged. The following types are implemented in API version 14: | ||
+ | |||
+ | * cargo: A cargo compartment holds the ship's cargo. When this compartment is hit, there is a chance that some items in the cargo hold will be damaged or destroyed. The chance increases as the compartment loses hit points. | ||
+ | * general: If the type is " | ||
+ | * mainDrive: This compartment holds the ship's engines. When this compartment is hit, there is a chance that the main engines will be damaged. If they are damaged, the engines will drop to half-speed. The engines will be repaired after some amount of time (1-2 minutes of real time). | ||
+ | |||
+ | If a ship has interior structure, devices are automatically subject to damage. If a device is hit and if the armor in that position has been reduced to 0, there is a chance that the device will be damaged permanently. | ||
+ | |||
+ | === Ship Orders === | ||
+ | |||
+ | * (shpOrder shipObj ' | ||
+ | * (shpOrder shipObj ' | ||
+ | * (shpOrder shipObj ' | ||
+ | |||
+ | === Miscellaneous === | ||
+ | |||
+ | * < | ||
+ | * linkedFire=" | ||
+ | * Removed " | ||
+ | * < | ||
+ | * Stations are now affected by custom damage. | ||
+ | |||
+ | ====API Version 13==== | ||
+ | Trascendence 1.2 Alpha 1 and above. | ||
+ | |||
+ | === Devices === | ||
+ | |||
+ | * Added hpBonus to < | ||
+ | |||
+ | === Stations === | ||
+ | |||
+ | * Added maxLightRadius= parameter to stars (< | ||
+ | * Added < | ||
+ | * Added < | ||
+ | * Added < | ||
+ | * Added < | ||
+ | * Added < | ||
+ | * Added < | ||
+ | * Added maxAppearing parameter to < | ||
+ | |||
+ | === System Definition === | ||
+ | |||
+ | * Added aOrbit variable to < | ||
+ | * Added < | ||
+ | * Added radius= and angle= to < | ||
+ | * Added minDist= and maxDist= to < | ||
+ | * Added minDist= and maxDist= to < | ||
+ | * Added count= to < | ||
+ | * < | ||
+ | * Added " | ||
+ | * Deprecated < | ||
+ | |||
+ | === New and Changed Functions === | ||
+ | |||
+ | * (msnFireEvent) | ||
+ | * (msnGetProperty): | ||
+ | * (msnGetProperty): | ||
+ | * (msnGetProperty): | ||
+ | * (msnGetStaticData) | ||
+ | * (objGetProperty): | ||
+ | * (objGetProperty): | ||
+ | * (objGetProperty): | ||
+ | * (sysOrbitPos) | ||
+ | * (typFind): Added isEnemyOf: | ||
+ | * (typTranslate) | ||
+ | * (unvFindObj) | ||
+ | |||
+ | === Miscellanous === | ||
+ | |||
+ | * Added < | ||
+ | * < | ||
+ | |||
+ | === Core Libraries === | ||
+ | |||
+ | * Added stK-TypeStar to Universe library | ||
+ | * Added stNebulaStar to Universe library | ||
+ | * Non-random star systems now create extra stargates if needed. | ||
+ | * Only nodes with " | ||
+ | * Added " | ||
+ | * Added dsPRGReful screen | ||
+ | * srvFindRepairArmor checks for < | ||
+ | * Added dsRPGDeliveryMission | ||
+ | |||
+ | ====API Version 12==== | ||
+ | Transcendence 1.08e and above. | ||
+ | |||
+ | * **apiVersion** property used to specify compatibility version. | ||
+ | * Player ship classes must use " | ||
+ | * Engine validates existence of sound references. I.e., types cannot refer to non-existent sound UNIDs. | ||
+ | * An extension/ | ||
+ | |||
+ | ====API Version 1.1==== | ||
+ | Transcendence 1.04 and above. | ||
+ | |||
+ | NOTE: You must use **version=" | ||
+ | |||
+ | ====API Version 1.0=== | ||
+ | Transcendence 1.0 and above. | ||
+ | |||
+ | NOTE: You must use **version=" | ||
+ | |||
+ | * For version 1.0 and below, when defining weapons, passthrough should not equal " | ||
+ | * For version 1.0 and below, when defining < | ||
+ | * For version 1.0 and below, when defining weapons, the shield damage modified used a different calculation because we only allocated 3 bits for the damage range.e. |