Difference between revisions of "TYPEDEF"
m (→Built-in Types: some info on special tags TAG.BLOOD and TAG.MAXBLOOD) |
|||
(13 intermediate revisions by 6 users not shown) | |||
Line 27: | Line 27: | ||
* LINK = UID of a secondary key? | * LINK = UID of a secondary key? | ||
|- | |- | ||
− | | t_door or | + | | t_door or t_door_locked || 3 or 4 || This type is used for both unlocked and locked doors. They leverage the following properties: |
* MORE1 = UID of this door's key (if it has one) | * MORE1 = UID of this door's key (if it has one) | ||
* TDATA1 = ID for the sound it makes when double clicked | * TDATA1 = ID for the sound it makes when double clicked | ||
Line 36: | Line 36: | ||
'''Note:''' Keys, containers, and doors are interesting. If both a key and a door/container contain the same arbitrary MORE1 value, the key can be used to lock or unlock the door/container. That action changes the TYPE of the door/container to indicate whether it is locked or not. It also seems like LINK on the key can be set to the UID of a multi so that it can be used to open all doors/containers inside that multi. | '''Note:''' Keys, containers, and doors are interesting. If both a key and a door/container contain the same arbitrary MORE1 value, the key can be used to lock or unlock the door/container. That action changes the TYPE of the door/container to indicate whether it is locked or not. It also seems like LINK on the key can be set to the UID of a multi so that it can be used to open all doors/containers inside that multi. | ||
|- | |- | ||
− | | t_light_lit || 6 || This type is used for light sources that can be turned | + | | t_light_lit || 6 || This type is used for light sources that can be turned onIT_S or off. It leverages the following properties: |
* MOREY = Number of charges before the item is consumed | * MOREY = Number of charges before the item is consumed | ||
* MOREZ = Type of light pattern it will cast | * MOREZ = Type of light pattern it will cast | ||
Line 121: | Line 121: | ||
* TAG.OVERRIDE.SOUND_HIT = to override the sound this weapon makes when it hits | * TAG.OVERRIDE.SOUND_HIT = to override the sound this weapon makes when it hits | ||
* TAG.OVERRIDE.SOUND_MISS = to override the sound this weapon makes when it misses | * TAG.OVERRIDE.SOUND_MISS = to override the sound this weapon makes when it misses | ||
− | * | + | * AMMOANIMRENDER = to override the rendermode of the ANIM this item uses (yes, no TAGs) |
− | * | + | * AMMOTYPE = to override the type of ammo (TDATA3) this item uses (yes, no TAGs) |
− | * | + | * AMMOANIM = to override the ammo animation (TDATA4) this item uses (yes, no TAGs) |
+ | * AMMOANIMHUE = to override the color of the ammo animation this item uses (yes, no TAGs) | ||
|- | |- | ||
| t_wand || 16 || This type is used for magic wands. It leverages the following properties: | | t_wand || 16 || This type is used for magic wands. It leverages the following properties: | ||
Line 198: | Line 199: | ||
|- | |- | ||
| t_water || 30 || This type is used for water, which means it can be fished in or used to clean used bandages. | | t_water || 30 || This type is used for water, which means it can be fished in or used to clean used bandages. | ||
− | * MORE1 = The regiontype ID that determines what sorts of resources (fish etc) that it can produce | + | * MORE1 = The regiontype ID that determines what sorts of resources (fish etc) that it can produce. |
|- | |- | ||
| t_clothing || 31 || This type is used for all cloth based equip-able items. It is essentially identical to t_armor and t_armor_leather. It leverages the following properties: | | t_clothing || 31 || This type is used for all cloth based equip-able items. It is essentially identical to t_armor and t_armor_leather. It leverages the following properties: | ||
Line 217: | Line 218: | ||
| t_spawn_char || 34 || This type is used to spawn NPCs. Once it spawns its first creature, it will turn red and change its appearance to the ICON of the creature (or appear as a wisp if the spawn is set to use a template.) It leverages the following properties: | | t_spawn_char || 34 || This type is used to spawn NPCs. Once it spawns its first creature, it will turn red and change its appearance to the ICON of the creature (or appear as a wisp if the spawn is set to use a template.) It leverages the following properties: | ||
* AMOUNT = The maximum amount of NPCs the spawner should create | * AMOUNT = The maximum amount of NPCs the spawner should create | ||
− | * MORE1 = The creature ID or spawn template ID for what you want to spawn | + | * MORE1/SPAWNID* = The creature ID or spawn template ID for what you want to spawn |
− | * MORE2 = The current number of creatures spawned from this point | + | * MORE2/COUNT* = The current number of creatures spawned from this point |
− | * MOREX = The minimum time between spawns (in minutes) | + | * MOREX/TIMELO* = The minimum time between spawns (in minutes) |
− | * MOREY = The maximum time between spawns (in minutes) | + | * MOREY/TIMEHI* = The maximum time between spawns (in minutes) |
− | * MOREZ = The maximum distance away from the spawn to create the spawned NPC (this is also the maximum wander distance for the NPC) | + | * MOREZ/MAXDIST* = The maximum distance away from the spawn to create the spawned NPC (this is also the maximum wander distance for the NPC) |
− | '''Note:''' The spawn is considered active if the TIMER has a positive value, and when the timer reaches zero, it is automatically restarted using a random number between MOREX and | + | * AT*(R/W) = Access the object in the N position and reads/writes/executes the given text, eg: at.0.remove, <at.0.str>... |
+ | * ADDOBJ*(W) = Adds to the spawn an object with the given uid (must be a valid uid) | ||
+ | * DELOBJ*(W) = Deletes from the spawn an object with the given uid (must be a valid uid) | ||
+ | * START*(W) = Forces the spawn to start spawning | ||
+ | * STOP*(W) = Stops the spawn and removes everything it created | ||
+ | * RESET*(W) = Froces an STOP and then START it again | ||
+ | |||
+ | *X branch only | ||
+ | |||
+ | '''Note:''' The spawn is considered active if the TIMER has a positive value, and when the timer reaches zero, it is automatically restarted using a random number between MOREX and MOREY. | ||
|- | |- | ||
| t_game_piece || 35 || This type is used for game board pieces (checkers, chess, etc). They cannot be removed from the game, and they have no tile image outside of the game board gump. It leverages the following properties: | | t_game_piece || 35 || This type is used for game board pieces (checkers, chess, etc). They cannot be removed from the game, and they have no tile image outside of the game board gump. It leverages the following properties: | ||
Line 242: | Line 252: | ||
| t_moongate || 39 || This type is used for moongates. When stepped on they teleport the player to another location. It leverages the following properties: | | t_moongate || 39 || This type is used for moongates. When stepped on they teleport the player to another location. It leverages the following properties: | ||
* MOREP = The coordinates that the moongate leads to | * MOREP = The coordinates that the moongate leads to | ||
+ | * MORE1 = If set to 1, the smoke and sound is supressed | ||
+ | * MORE2 = If set to 1, NPCs (and pets?) cannot use it | ||
|- | |- | ||
| t_chair || 40 || This type is used for any sort of a chair item and it's only purpose is to trigger a sitting animation. | | t_chair || 40 || This type is used for any sort of a chair item and it's only purpose is to trigger a sitting animation. | ||
Line 253: | Line 265: | ||
|- | |- | ||
| t_tree || 44 || This type is chopped by lumberjacks to get logs. It leverages the following properties: | | t_tree || 44 || This type is chopped by lumberjacks to get logs. It leverages the following properties: | ||
+ | * MORE1 = The regiontype ID that determines what sorts of resources (fish etc) that it can produce. | ||
* FRUIT = ID of item gathered if double-clicked (usually logs) | * FRUIT = ID of item gathered if double-clicked (usually logs) | ||
|- | |- | ||
| t_rock || 45 || This type can be mined for ore. | | t_rock || 45 || This type can be mined for ore. | ||
− | * MORE1 = The regiontype ID that determines what sorts of resources (fish etc) that it can produce | + | * MORE1 = The regiontype ID that determines what sorts of resources (fish etc) that it can produce. |
|- | |- | ||
| t_carpentry_chop || 46 || A carpentry tool that can be used to craft carpentry objects as well as used to "chop" trees (like a saw?) | | t_carpentry_chop || 46 || A carpentry tool that can be used to craft carpentry objects as well as used to "chop" trees (like a saw?) | ||
|- | |- | ||
− | | || || | + | | t_multi || 47 || Multi part object like house or ship. |
− | + | * MORE1 is the UID of the player that created/owns the multi | |
− | + | |- | |
− | + | | t_reagent || 48 || Alchemy when clicked ? | |
− | + | |- | |
− | + | | t_ship || 49 || This is a ship multi. | |
− | + | * MORE1 is the UID of the player that created/owns the multi | |
− | + | * MORE2 contains the speed, anchor flag, direction of movement, and facing direction in each byte respectively | |
− | t_eq_trade_window | + | |- |
− | + | | t_ship_plank || 50 || Ship plank for players to get on a boat. | |
+ | * TDATA1 = is the itemID of the next open/closed state. | ||
+ | * MORE1 = the lock code. normally this is the same as the uid (magic lock=non UID) | ||
+ | * MORE2= 0-1000 = How hard to pick or magic unlock. (conflict with door ?) | ||
+ | * MOREX = type to become (IT_SHIP_SIDE or IT_SHIP_SIDE_LOCKED) | ||
+ | |- | ||
+ | | t_ship_side || 51 || Should extend to make a plank TDATA1 is the itemID of the next open/closed state. | ||
+ | * MORE1 = the lock code. normally this is the same as the uid (magic lock=non UID) | ||
+ | * MORE2= 0-1000 = How hard to pick or magic unlock. (conflict with door ?) | ||
+ | |- | ||
+ | | t_ship_side_locked || 52 || TDATA1 is the itemID of the next open/closed state. | ||
+ | * MORE1 = the lock code. normally this is the same as the uid (magic lock=non UID) | ||
+ | * MORE2= 0-1000 = How hard to pick or magic unlock. (conflict with door ?) | ||
+ | |- | ||
+ | | t_ship_tiller || 53 || Tiller man on the ship. | ||
+ | * MORE1 = the lock code. Normally this is the UID, except if uidLink is set. | ||
+ | * LINK = If this is set to the UID of a "multi" object (like a house) the key can open all doors/containers in that multi? | ||
+ | '''Note:''' Keys, containers, and doors are interesting. If both a key and a door/container contain the same arbitrary MORE1 value, the key can be used to lock or unlock the door/container. That action changes the TYPE of the door/container to indicate whether it is locked or not. It also seems like LINK on the key can be set to the UID of a multi so that it can be used to open all doors/containers inside that multi. | ||
+ | |- | ||
+ | | t_eq_trade_window || 54 || Container for the trade window. | ||
+ | |- | ||
+ | | t_fish || 55 || Fish can be cut up. Yields 4 * <Amount> when a bladed object is used on it. | ||
|- | |- | ||
| t_sign_gump || 56 || This type is used for simple signs (and things like grave stones). It leverages the following properties: | | t_sign_gump || 56 || This type is used for simple signs (and things like grave stones). It leverages the following properties: | ||
Line 275: | Line 309: | ||
* TDATA3 = The minimum gump size | * TDATA3 = The minimum gump size | ||
* TDATA4 = The maximum gump size | * TDATA4 = The maximum gump size | ||
+ | * MORE1 = the lock code. Normally this is the UID, except if uidLink is set. | ||
+ | * LINK = If this is set to the UID of a "multi" object (like a house) the key can open all doors/containers in that multi? | ||
+ | '''Note:''' Keys, containers, and doors are interesting. If both a key and a door/container contain the same arbitrary MORE1 value, the key can be used to lock or unlock the door/container. That action changes the TYPE of the door/container to indicate whether it is locked or not. It also seems like LINK on the key can be set to the UID of a multi so that it can be used to open all doors/containers inside that multi. | ||
|- | |- | ||
| t_stone_guild || 57 || This type is used for guild stones. It leverages the following properties: | | t_stone_guild || 57 || This type is used for guild stones. It leverages the following properties: | ||
Line 307: | Line 344: | ||
t_anvil 67 // = for repair. | t_anvil 67 // = for repair. | ||
t_port_locked 68 // = this portcullis must be triggered. | t_port_locked 68 // = this portcullis must be triggered. | ||
− | + | |- | |
+ | | t_spawn_item || 69 || This type is used to spawn items. Once it spawns its first item, it will turn red and change its appearance to the i_worldgem_lg ID item. It leverages the following properties: | ||
+ | * AMOUNT = The maximum amount of items the spawner should create | ||
+ | * MORE1/SPAWNID* = The item ID or spawn template ID for what you want to spawn | ||
+ | * MORE2/PILE* = The current number of items spawned from this point | ||
+ | * MOREX/TIMELO* = The minimum time between spawns (in minutes) | ||
+ | * MOREY/TIMEHI* = The maximum time between spawns (in minutes) | ||
+ | * MOREZ/MAXDIST* = The maximum distance away from the spawn to create the spawned item (this is also the maximum wander distance for the NPC) | ||
+ | * AT*(R/W) = Access the object in the N position and reads/writes/executes the given text, eg: at.0.remove, <at.0.str>... | ||
+ | * ADDOBJ*(W) = Adds to the spawn an object with the given uid (must be a valid uid) | ||
+ | * DELOBJ*(W) = Deletes from the spawn an object with the given uid (must be a valid uid) | ||
+ | * START*(W) = Forces the spawn to start spawning | ||
+ | * STOP*(W) = Stops the spawn and removes everything it created | ||
+ | * RESET*(W) = Froces an STOP and then START it again | ||
+ | |||
+ | *X branch only | ||
+ | |||
+ | '''Note:''' The spawn is considered active if the TIMER has a positive value, and when the timer reaches zero, it is automatically restarted using a random number between MOREX and MOREY. | ||
+ | |- | ||
+ | | || || | ||
t_telescope 70 // = big telescope pic. | t_telescope 70 // = big telescope pic. | ||
|- | |- | ||
Line 316: | Line 372: | ||
|- | |- | ||
| t_map || 73 || This type is used for cartography maps. It has the following properties: | | t_map || 73 || This type is used for cartography maps. It has the following properties: | ||
− | * MORE1L = The top coordinate | + | * MORE1L = The top coordinate. |
− | * MORE1H = The left coordinate | + | * MORE1H = The left coordinate. |
− | * MORE2L = The bottom coordinate | + | * MORE2L = The bottom coordinate. |
− | * MORE2H = The right coordinate | + | * MORE2H = The right coordinate. |
− | * MOREZ = A flag that indicates whether the map has pins or not | + | * MOREZ = A flag that indicates whether the map has pins or not. |
− | * MOREX and MOREY = The coordinates of the pin (I think) | + | * MOREX and MOREY = The coordinates of the pin (I think). |
+ | * TDATA1 = The map gump width. | ||
+ | * TDATA2 = The map gump height. | ||
|- | |- | ||
| t_eq_memory_obj || 74 || This type is used for character memories, and it really depends on the type of memory to know what each property really means, but here is a relatively good guide: | | t_eq_memory_obj || 74 || This type is used for character memories, and it really depends on the type of memory to know what each property really means, but here is a relatively good guide: | ||
Line 351: | Line 409: | ||
* TDATA4 = The maximum gump size | * TDATA4 = The maximum gump size | ||
|- | |- | ||
− | | t_cannon_muzzle || 80 || This type is used for the business end of the cannon. | + | | t_cannon_muzzle || 80 || This type is used for the business end of the cannon. It leverages the following properties: |
+ | * MORE2 = A mask of what is currently loaded in it. (0 = none, 1=powder, 2=shot) | ||
|- | |- | ||
− | | t_cannon || 81 || This type is used for the cannon control. | + | | t_cannon || 81 || This type is used for the cannon control. |
− | + | ||
|- | |- | ||
| t_cannon_ball || 82 || This is ammo for a t_cannon. | | t_cannon_ball || 82 || This is ammo for a t_cannon. | ||
Line 362: | Line 421: | ||
|- | |- | ||
| t_seed || 84 || This type is used for seeds. A seed can be created by using a dagger on a fruit (assuming the fruit is setup to have a seed.) A seed can be planted by double clicking it and targeting the ground (specifically t_dirt items). It leverages the following properties: | | t_seed || 84 || This type is used for seeds. A seed can be created by using a dagger on a fruit (assuming the fruit is setup to have a seed.) A seed can be planted by double clicking it and targeting the ground (specifically t_dirt items). It leverages the following properties: | ||
− | * TDATA1 = The ID of a t_crop item that will grow the fruit that this seed comes from | + | * TDATA1 = The ID of a t_crop item that will grow the fruit that this seed comes from. 0 is Nothing. |
+ | * TDATA2 = The art asset to use as the seed art asset. A copper coin is default. | ||
|- | |- | ||
| || || | | || || | ||
t_junk 85 // = never used | t_junk 85 // = never used | ||
− | t_crystal_ball 86 // | + | t_crystal_ball 86 // = Has no internal use. |
t_swamp 87 // = swamp (smelly) | t_swamp 87 // = swamp (smelly) | ||
|- | |- | ||
Line 374: | Line 434: | ||
* TDATA4 = The maximum gump size | * TDATA4 = The maximum gump size | ||
|- | |- | ||
− | | || || | + | | t_reagent_raw || 89 || Freshly grown reagents...not processed yet. A seed can be created by using a dagger on a raw reagent (assuming the raw reagent is setup to have a seed.) A seed can be planted by double clicking it and targeting the ground (specifically t_dirt items). It leverages the following properties: |
− | + | * TDATA1 = The ID of a t_crop item that will grow the fruit that this seed comes from. 0 is Nothing. | |
− | + | * TDATA2 = The art asset to use as the seed art asset. A copper coin is default. | |
− | + | |- | |
+ | | t_eq_client_linger || 90 || Change player to npc for a while. | ||
+ | |- | ||
+ | | t_snow || 91 || Snow | ||
|- | |- | ||
| t_it_stone || 92 || This type is an "item stone" that is used to generate items when the object is double clicked. It has the following properties: | | t_it_stone || 92 || This type is an "item stone" that is used to generate items when the object is double clicked. It has the following properties: | ||
Line 385: | Line 448: | ||
* MOREY = The total amount to deliver (0 = infinite, 0xFFFF = none left) | * MOREY = The total amount to deliver (0 = infinite, 0xFFFF = none left) | ||
|- | |- | ||
− | | || || | + | | t_unused_93 || 93 || This has no use. |
− | |||
|- | |- | ||
| t_explosion || 94 || This type is used for explosion animations. It leverages the following properties: | | t_explosion || 94 || This type is used for explosion animations. It leverages the following properties: | ||
Line 399: | Line 461: | ||
* MOREZ = The priority for this script (as a percent, this is the chance they want to "do" this task) | * MOREZ = The priority for this script (as a percent, this is the chance they want to "do" this task) | ||
|- | |- | ||
− | | || || | + | | t_web || 96 || Walk on this and transform into some other object. MORE1 is the amount of hits the web can take. |
− | + | |- | |
− | + | | t_grass || 97 || Can be eaten by grazing animals | |
− | + | * MORE1 = The regiontype ID that determines what sorts of resources (fish etc) that it can produce. | |
− | + | |- | |
+ | | t_arock || 98 || A rock or boulder. can be thrown by giants. | ||
+ | |- | ||
+ | | t_tracker || 99 || Points to a linked object. | ||
|- | |- | ||
| t_sound || 100 || This type is used to play sounds. It uses the following properties: | | t_sound || 100 || This type is used to play sounds. It uses the following properties: | ||
Line 425: | Line 490: | ||
|- | |- | ||
| t_spellbook || 107 || This type is used for the Magery spellbook. It leverages the following properties: | | t_spellbook || 107 || This type is used for the Magery spellbook. It leverages the following properties: | ||
− | * MORE1 = A bit mask of available spells in circles 0-4, so to add all those spells: set MORE1= | + | * MORE1 = A bit mask of available spells in circles 0-4, so to add all those spells: set MORE1=0ffffffff |
− | * MORE2 = A bit mask of available spells in circles 5-8, so to add all those spells: set MORE2= | + | * MORE2 = A bit mask of available spells in circles 5-8, so to add all those spells: set MORE2=0ffffffff |
'''Note:''' In older sphere versions, MOREX, MOREY, and MOREZ could be set to add additional spells (necro, etc), but recently these concepts may have been removed... same with these TDATA settings: | '''Note:''' In older sphere versions, MOREX, MOREY, and MOREZ could be set to add additional spells (necro, etc), but recently these concepts may have been removed... same with these TDATA settings: | ||
* TDATA2 = Required Strength to equip the book | * TDATA2 = Required Strength to equip the book | ||
Line 433: | Line 498: | ||
|- | |- | ||
| t_corpse || 108 || This type is a container used for all dead corpses. It leverages the following properties: | | t_corpse || 108 || This type is a container used for all dead corpses. It leverages the following properties: | ||
− | * MORE1 = The time of death | + | * <s>MORE1 = The time of death</s> TIMESTAMP seems to hold the time of death. |
+ | * MORE1 = Corpse is already carved? (0=not carved, 1=carved) | ||
* MORE2 = The UID of the individual character that landed the killing blow | * MORE2 = The UID of the individual character that landed the killing blow | ||
* MOREX & MOREY = Combined, these make up a single DWORD which specifies what type of creature this was | * MOREX & MOREY = Combined, these make up a single DWORD which specifies what type of creature this was | ||
Line 508: | Line 574: | ||
* TDATA4 = The maximum gump size | * TDATA4 = The maximum gump size | ||
|- | |- | ||
− | | || || | + | | t_table || 138 || doesn't really do anything. |
− | + | |- | |
− | + | | t_floor || 139 || | |
− | + | |- | |
− | + | | t_roof || 140 || | |
− | + | |- | |
− | + | | t_feather || 141 || a birds feather | |
− | + | |- | |
+ | | t_wool || 142 || wool cut from a sheep. | ||
+ | |- | ||
+ | | t_fur || 143 || | ||
+ | |- | ||
+ | | t_blood || 144 || blood of some creature | ||
|- | |- | ||
| t_foliage || 145 || This type is very similar to t_crops, the difference being the foliage does not disappear when the fruit is harvested. It leverages the following properties: | | t_foliage || 145 || This type is very similar to t_crops, the difference being the foliage does not disappear when the fruit is harvested. It leverages the following properties: | ||
Line 539: | Line 610: | ||
t_bedroll 158 | t_bedroll 158 | ||
t_bellows 159 | t_bellows 159 | ||
− | + | |- | |
− | + | | t_hide || 160 ||Made into leather. | |
− | + | * TDATA1 = Hold ID or DEFNAME of custom cut leather (or any item). | |
− | + | |- | |
− | + | | t_cloth_bolt || 161 || A bolt of cloth. | |
− | + | |- | |
− | + | | t_board || 162 || Logs are plained into decent lumber | |
− | + | |- | |
− | + | | t_pitcher || 163 || A pitcher holding a liquid of some kind. | |
− | + | *TDATA1 is a flag that indicates whether the container is empty or not. | |
− | + | |- | |
− | + | | t_pitcher_empty || 164 || An empty pitcher that can or did hold a liquid. | |
− | + | * TDATA1 is a flag that indicates whether the container is empty or not. | |
− | + | |- | |
− | + | | t_dye_vat || 165 || For dyeing items with. | |
− | + | |- | |
+ | | t_dye || 166 || Dyes to set colors on a t_dye_vat | ||
+ | |- | ||
+ | | t_potion_empty || 167 || Empty bottle. | ||
+ | |- | ||
+ | | t_mortar || 168 || Alchemists mortar and pestle. | ||
+ | |- | ||
+ | | t_hair_dye || 169 || Hair dye. | ||
+ | |- | ||
+ | | t_sewing_kit || 170 || Tailoring sewing kit. | ||
+ | |- | ||
+ | | t_tinker_tools || 171 || Tinker's tools. | ||
+ | |- | ||
+ | | t_wall || 172 || Wall of a structure. | ||
+ | |- | ||
+ | | t_window || 173 || Window for a structure. MOREZ is the light pattern | ||
+ | |- | ||
+ | | t_cotton || 174 || Cotton from the plant | ||
+ | |- | ||
+ | | t_bone || 175 || A bone from a corpse. | ||
|- | |- | ||
| t_eq_script || 176 || This type can have tags and can be equipped. Possibly used for memory objects that leverage @Equip and @UnEquip triggers. | | t_eq_script || 176 || This type can have tags and can be equipped. Possibly used for memory objects that leverage @Equip and @UnEquip triggers. | ||
|- | |- | ||
− | | || || | + | | t_ship_hold || 177 || A ships hold. |
− | + | * TDATA2 is the gumpID | |
− | + | * TDATA3 is the minimum gump size | |
− | + | * TDATA4 is the maximum gump size | |
+ | * MORE1 = the lock code. normally this is the same as the uid (magic lock=non UID) | ||
+ | * MORE2= 0-1000 = How hard to pick or magic unlock. (conflict with door ?) | ||
+ | |- | ||
+ | | t_ship_hold_lock || 178 || A locked ship's hold. | ||
+ | * MORE1 = the lock code. normally this is the same as the uid (magic lock=non UID) | ||
+ | * MORE2= 0-1000 = How hard to pick or magic unlock. (conflict with door ?) | ||
+ | |- | ||
+ | | t_lava || 179 || | ||
|- | |- | ||
| t_shield || 180 || This type is used to indicate the object is an equipable shield. It has the following properties: | | t_shield || 180 || This type is used to indicate the object is an equipable shield. It has the following properties: | ||
Line 584: | Line 682: | ||
| t_script || 183 || This type can have tags, but can NOT be equipped. | | t_script || 183 || This type can have tags, but can NOT be equipped. | ||
|- | |- | ||
− | | || || | + | | t_spellbook_necro || 184 || AOS Necromancy spellbook (should have MOREZ=100 by default) |
− | + | |- | |
− | + | | t_spellbook_pala || 185 || AOS Paladin spellbook (should have MOREZ=200 by default) | |
− | + | |- | |
− | + | | t_spellbook_extra || 186 || some spellbook for script purposes (MOREZ=basic offset) | |
− | + | |- | |
− | + | | t_spellbook_bushido || 187 || SE Bushido spellbook (should have MOREZ=400 by default) | |
− | + | |- | |
− | + | | t_spellbook_ninjitsu || 188 || SE Ninjitsu spellbook (should have MOREZ=500 by default) | |
− | + | |- | |
− | + | | t_spellbook_arcanist || 189 || ML Spellweaver spellbook (should have MOREZ=600 by default) | |
+ | |- | ||
+ | | t_multi_custom || 190 || Customisable multi | ||
+ | |- | ||
+ | | t_spellbook_mystic || 191 || SA Mysticism spellbook (should have MOREZ=677 by default) | ||
+ | |- | ||
+ | | t_hoverover || 192 || Hover-over item (CAN_C_HOVER can hover over blocking items) | ||
+ | |- | ||
+ | | t_spellbook_bard || 193 || SA Bard spellbook (should have MOREZ=700 by default) | ||
|} | |} | ||
Latest revision as of 23:19, 26 August 2022
Type definitions are the equivalent of EVENTS that can be attached to items. There are different properties that can be used to attach a type block to an item or set of items:
- item definitions via their TYPE and/or TEVENTS property.
- items via their TYPE and/or EVENTS property.
In addition to handling triggers, type definitions can also be used to define different types of terrain. This can be used to affect the return value of the TYPE property on map points, or for some hardcoded types such as t_rock it can be used to define which terrain IDs Sphere should consider to be rock when the mining skill is used.
Built-in Types
The built-in types are all listed in the sphere_defs.scp file. The table below only lists some of the built-in types and it is VERY weak on actual details...so use with care.
DEFNAME | Number | Description |
---|---|---|
t_normal | 0 | No built-in behavior. |
t_container and t_container_locked | 1 and 2 | These types are used for containers. They leverage the following properties:
|
t_door or t_door_locked | 3 or 4 | This type is used for both unlocked and locked doors. They leverage the following properties:
|
t_key | 5 | This type is used for keys. It leverages the following properties:
Note: Keys, containers, and doors are interesting. If both a key and a door/container contain the same arbitrary MORE1 value, the key can be used to lock or unlock the door/container. That action changes the TYPE of the door/container to indicate whether it is locked or not. It also seems like LINK on the key can be set to the UID of a multi so that it can be used to open all doors/containers inside that multi. |
t_light_lit | 6 | This type is used for light sources that can be turned onIT_S or off. It leverages the following properties:
|
t_light_out | 7 | This type is used for light sources that can be turned on or off. It leverages the following properties:
|
t_food | 8 | This type is used for edible food. It leverages the following properties:
Note: The following properties may also exist depending on your server version:
|
t_food_raw | 9 | This type is used for raw food. It leverages the following properties:
Note: The following properties may also exist depending on your server version:
|
t_armor | 10 | This type is used for armor. It leverages the following properties:
Note: Old versions of sphere stored remaining charges in MORE2, this is no longer true. |
t_weapon_mace_smith | 11 | This type is used for macefighting weapons that can also be used by blacksmiths to forge items. It leverages the following properties:
The following overrides can be set on a per item basis:
|
t_weapon_mace_sharp | 12 | This type is used for macefighting weapons that have sharp cutting edges. It leverages the following properties:
The following overrides can be set on a per item basis:
|
t_weapon_sword | 13 | This type is used for swordsmanship weapons. It leverages the following properties:
The following overrides can be set on a per item basis:
|
t_weapon_fence | 14 | This type is used for fencing weapons. It leverages the following properties:
The following overrides can be set on a per item basis:
|
t_weapon_bow | 15 | This type is used for archery weapons (bow or crossbow). It leverages the following properties:
The following overrides can be set on a per item basis:
|
t_wand | 16 | This type is used for magic wands. It leverages the following properties:
|
t_telepad | 17 | This type is used for teleport pads. It leverages the following properties:
|
t_switch | 18 | This type is used for switches. The way these things work is, when used, they trigger @DCLICK on the LINK object. It leverages the following properties:
|
t_book | 19 | This type is used for books of static or dynamic text. It leverages the following properties:
Note: we need more information on those flags... |
t_rune | 20 | This type is used for recall runes. It leverages the following properties:
|
t_booze | 21 | This type is used for alcohol (it causes a drunk effect when double clicked.) It leverages the following properties:
|
t_potion | 22 | This type is used for potions. It leverages the following properties:
|
t_fire | 23 | This type is used for fires (and ovens?). These items can be used to cook food, and they can burn you if stepped on. It leverages the following properties:
|
t_clock | 24 | This type is used to tell time (game time, not real time) when double clicked. The result comes out something like "half past eleven o'clock at night". From what I can tell there are no MORE or TDATA modifiers that affect the result. |
t_trap and t_trap_active | 25 and 26 | These types are used for traps that are triggered when walked on. They leverage the following properties:
|
t_musical | 27 | This type is used for musical instruments. It leverages the following properties:
|
t_spell | 28 | This type is used for magic spell effects. It leverages the following properties:
|
t_gem | 29 | This type is used for gems, and from what I can tell there is no built-in behavior for it. |
t_water | 30 | This type is used for water, which means it can be fished in or used to clean used bandages.
|
t_clothing | 31 | This type is used for all cloth based equip-able items. It is essentially identical to t_armor and t_armor_leather. It leverages the following properties:
Note: Old versions of sphere stored remaining charges in MORE2, this is no longer true. |
t_scroll | 32 | This type is used for scrolls. It leverages the following properties:
|
t_carpentry | 33 | This type is used by carpenters to craft items, and from what I can tell there is no built-in behavior for it. |
t_spawn_char | 34 | This type is used to spawn NPCs. Once it spawns its first creature, it will turn red and change its appearance to the ICON of the creature (or appear as a wisp if the spawn is set to use a template.) It leverages the following properties:
*X branch only Note: The spawn is considered active if the TIMER has a positive value, and when the timer reaches zero, it is automatically restarted using a random number between MOREX and MOREY. |
t_game_piece | 35 | This type is used for game board pieces (checkers, chess, etc). They cannot be removed from the game, and they have no tile image outside of the game board gump. It leverages the following properties:
|
t_portculis | 36 | This type is used for portcullis doors that raise and lower when double clicked. It leverages the following properties:
|
t_figurine | 37 | This type is used for shrunk NPCs (essentially magic figurines), that turn into a "pet" creature when double clicked. It leverages the following properties:
|
t_shrine | 38 | This type is used for shrines. They will resurrect a ghost when double-clicked by a ghost. |
t_moongate | 39 | This type is used for moongates. When stepped on they teleport the player to another location. It leverages the following properties:
|
t_chair | 40 | This type is used for any sort of a chair item and it's only purpose is to trigger a sitting animation. |
t_forge | 41 | This type is used by blacksmiths to smelt ore.... |
t_ore | 42 | This type is harvested by miners, and converted by blacksmiths (using a forge) into something else. It leverages the following properties:
|
t_log | 43 | This type is a raw material resource usually harvested from trees. |
t_tree | 44 | This type is chopped by lumberjacks to get logs. It leverages the following properties:
|
t_rock | 45 | This type can be mined for ore.
|
t_carpentry_chop | 46 | A carpentry tool that can be used to craft carpentry objects as well as used to "chop" trees (like a saw?) |
t_multi | 47 | Multi part object like house or ship.
|
t_reagent | 48 | Alchemy when clicked ? |
t_ship | 49 | This is a ship multi.
|
t_ship_plank | 50 | Ship plank for players to get on a boat.
|
t_ship_side | 51 | Should extend to make a plank TDATA1 is the itemID of the next open/closed state.
|
t_ship_side_locked | 52 | TDATA1 is the itemID of the next open/closed state.
|
t_ship_tiller | 53 | Tiller man on the ship.
Note: Keys, containers, and doors are interesting. If both a key and a door/container contain the same arbitrary MORE1 value, the key can be used to lock or unlock the door/container. That action changes the TYPE of the door/container to indicate whether it is locked or not. It also seems like LINK on the key can be set to the UID of a multi so that it can be used to open all doors/containers inside that multi. |
t_eq_trade_window | 54 | Container for the trade window. |
t_fish | 55 | Fish can be cut up. Yields 4 * <Amount> when a bladed object is used on it. |
t_sign_gump | 56 | This type is used for simple signs (and things like grave stones). It leverages the following properties:
Note: Keys, containers, and doors are interesting. If both a key and a door/container contain the same arbitrary MORE1 value, the key can be used to lock or unlock the door/container. That action changes the TYPE of the door/container to indicate whether it is locked or not. It also seems like LINK on the key can be set to the UID of a multi so that it can be used to open all doors/containers inside that multi. |
t_stone_guild | 57 | This type is used for guild stones. It leverages the following properties:
|
t_anim_active 58 // = active anium that will recycle when done. t_sand 59 // = sand on the beach t_cloth 60 // = bolt or folded cloth t_hair 61 // t_beard 62 // = just for grouping purposes. | ||
t_ingot | 63 | This type is used for ingots (when a blacksmith smelts ore, it turns into ingots. It leverages the following properties:
|
t_coin | 64 | This types is used for coins, gold or otherwise. |
t_crops | 65 | This type is used to grow plants that likely bear fruit. Double clicking a t_crop item will harvest the fruit if it is ripe. It leverages the following properties:
Note This type has unusual TIMER behavior in that regardless of the ATTR flags, the timer will restart when it reaches zero. |
t_drink | 66 | This type is used for non-alcoholic drinks. It leverages the following properties:
Note: There is an INI flag OF_DrinkIsFood (0x10000) that, if set, will increase FOOD level when the drink is consumed (like T_FOOD does) |
t_anvil 67 // = for repair. t_port_locked 68 // = this portcullis must be triggered. | ||
t_spawn_item | 69 | This type is used to spawn items. Once it spawns its first item, it will turn red and change its appearance to the i_worldgem_lg ID item. It leverages the following properties:
*X branch only Note: The spawn is considered active if the TIMER has a positive value, and when the timer reaches zero, it is automatically restarted using a random number between MOREX and MOREY. |
t_telescope 70 // = big telescope pic. | ||
t_bed | 71 | This type is used to indicate the item is a bed. I am not sure how it is used exactly, but it leverages the following properties:
|
t_gold | 72 | This type is used to indicate the object is a gold coin and can be used to purchase stuff. |
t_map | 73 | This type is used for cartography maps. It has the following properties:
|
t_eq_memory_obj | 74 | This type is used for character memories, and it really depends on the type of memory to know what each property really means, but here is a relatively good guide:
|
t_weapon_mace_staff 75 // = staff type of mace. or just other type of mace. | ||
t_eq_horse | 76 | This type is used for equipped horse object. Essentially it represents a riding horse to the client. It leverages the following properties:
|
t_comm_crystal | 77 | This type is used for communication crystals. |
t_game_board | 78 | This type is used as a container for game pieces (t_game_piece). It leverages the following properties:
|
t_trash_can | 79 | This type is used as a trash can container, and it deletes any object placed into it. It leverages the following properties:
|
t_cannon_muzzle | 80 | This type is used for the business end of the cannon. It leverages the following properties:
|
t_cannon | 81 | This type is used for the cannon control. |
t_cannon_ball | 82 | This is ammo for a t_cannon. |
t_armor_leather 83 // = non metallic armor (t_clothing) | ||
t_seed | 84 | This type is used for seeds. A seed can be created by using a dagger on a fruit (assuming the fruit is setup to have a seed.) A seed can be planted by double clicking it and targeting the ground (specifically t_dirt items). It leverages the following properties:
|
t_junk 85 // = never used t_crystal_ball 86 // = Has no internal use. t_swamp 87 // = swamp (smelly) | ||
t_message | 88 | This type is used for bulletin board messages. It leverages the following properties:
|
t_reagent_raw | 89 | Freshly grown reagents...not processed yet. A seed can be created by using a dagger on a raw reagent (assuming the raw reagent is setup to have a seed.) A seed can be planted by double clicking it and targeting the ground (specifically t_dirt items). It leverages the following properties:
|
t_eq_client_linger | 90 | Change player to npc for a while. |
t_snow | 91 | Snow |
t_it_stone | 92 | This type is an "item stone" that is used to generate items when the object is double clicked. It has the following properties:
|
t_unused_93 | 93 | This has no use. |
t_explosion | 94 | This type is used for explosion animations. It leverages the following properties:
|
t_eq_npc_script | 95 | This type is used to script NPC actions (in the form of a book). The sphere_defs.scp file says "get rid of this in favor of waiting on m_events" but it may still exist... if so, it leverages the following properties:
|
t_web | 96 | Walk on this and transform into some other object. MORE1 is the amount of hits the web can take. |
t_grass | 97 | Can be eaten by grazing animals
|
t_arock | 98 | A rock or boulder. can be thrown by giants. |
t_tracker | 99 | Points to a linked object. |
t_sound | 100 | This type is used to play sounds. It uses the following properties:
|
t_stone_town | 101 | This type is used for town stones. It leverages the following properties:
|
t_weapon_mace_crook 102 // t_weapon_mace_pick 103 // t_leather 104 // = leather or skins of some sort.(not wearable) t_ship_other 105 // = some other part of a ship. | ||
t_bboard | 106 | This type is a bulleting board container that holds t_message items. It leverages the following properties:
|
t_spellbook | 107 | This type is used for the Magery spellbook. It leverages the following properties:
Note: In older sphere versions, MOREX, MOREY, and MOREZ could be set to add additional spells (necro, etc), but recently these concepts may have been removed... same with these TDATA settings:
|
t_corpse | 108 | This type is a container used for all dead corpses. It leverages the following properties:
There are two special TAGs for corpses:
|
t_track_item 109 // - track a id or type of item. t_track_char 110 // = track a char or range of char id's t_weapon_arrow 111 // t_weapon_bolt 112 // t_eq_vendor_box 113 // = an equipped vendor box | ||
t_eq_bank_box | 114 | This type is a container that is used for the character bank. It leverages the following properties:
|
t_deed | 115 | This type is used to create something else when double clicked. It is perhaps the best solution for a player to place a multi part item like a house. When double clicked, it will prompt for a target location. It leverages the following properties:
|
t_loom | 116 | This type of device is used by weavers who turn wool or thread into bolts of cloth. It leverages the following properties:
|
t_bee_hive | 117 | This type is used for beehives. It leverages the following properties:
|
t_archery_butte | 118 | This type is used for practice archery targets. When double clicked, the target will first check if you have an archery weapon equipped and if so, it will return some ammo. It leverages the following properties:
|
t_eq_murder_count 119 // = my murder count flag. MORE1 contains the amount of time before it expires. t_eq_stuck 120 // we are stuck in a web t_trap_inactive 121 // = a safe trap. //t_unused_122 122 t_bandage 123 // = can be used for healing. t_campfire 124 // = this is a fire but a small one. t_map_blank 125 t_spy_glass 126 t_sextant 127 t_scroll_blank 128 | ||
t_fruit | 129 | This type is used for fruit. When double clicked, fruit will be eaten. Fruit can be grown from crops (t_crop). It leverages the following properties:
|
t_water_wash 130 // water that will not contain fish. (for washing or drinking) TDATA1 is a flag that indicates whether the container is empty or not t_weapon_axe 131 // not the same as a sword. but uses swordsmanship skill | ||
t_weapon_xbow | 132 | This type is used for crossbow weapons. It is essentially identical to t_weapon_bow. |
t_spellicon 133 t_door_open 134 t_meat_raw 135 // just a meaty part of a corpse. (uncooked meat) t_garbage 136 | ||
t_keyring | 137 | This type is a container used to store keys. It leverages the following properties:
|
t_table | 138 | doesn't really do anything. |
t_floor | 139 | |
t_roof | 140 | |
t_feather | 141 | a birds feather |
t_wool | 142 | wool cut from a sheep. |
t_fur | 143 | |
t_blood | 144 | blood of some creature |
t_foliage | 145 | This type is very similar to t_crops, the difference being the foliage does not disappear when the fruit is harvested. It leverages the following properties:
Note This type has unusual TIMER behavior in that regardless of the ATTR flags, the timer will restart when it reaches zero. |
t_grain 146 t_scissors 147 t_thread 148 t_yarn 149 t_spinwheel 150 t_bandage_blood 151 // = can't be used for healing. t_fish_pole 152 t_shaft 153 // bolt or arrow. t_lockpick 154 t_kindling 155 t_train_dummy 156 t_train_pickpocket 157 t_bedroll 158 t_bellows 159 | ||
t_hide | 160 | Made into leather.
|
t_cloth_bolt | 161 | A bolt of cloth. |
t_board | 162 | Logs are plained into decent lumber |
t_pitcher | 163 | A pitcher holding a liquid of some kind.
|
t_pitcher_empty | 164 | An empty pitcher that can or did hold a liquid.
|
t_dye_vat | 165 | For dyeing items with. |
t_dye | 166 | Dyes to set colors on a t_dye_vat |
t_potion_empty | 167 | Empty bottle. |
t_mortar | 168 | Alchemists mortar and pestle. |
t_hair_dye | 169 | Hair dye. |
t_sewing_kit | 170 | Tailoring sewing kit. |
t_tinker_tools | 171 | Tinker's tools. |
t_wall | 172 | Wall of a structure. |
t_window | 173 | Window for a structure. MOREZ is the light pattern |
t_cotton | 174 | Cotton from the plant |
t_bone | 175 | A bone from a corpse. |
t_eq_script | 176 | This type can have tags and can be equipped. Possibly used for memory objects that leverage @Equip and @UnEquip triggers. |
t_ship_hold | 177 | A ships hold.
|
t_ship_hold_lock | 178 | A locked ship's hold.
|
t_lava | 179 | |
t_shield | 180 | This type is used to indicate the object is an equipable shield. It has the following properties:
|
t_jewelry | 181 | This type is used for equpable jewelry. It leverages the following properties:
|
t_dirt | 182 | This type is used to represent a patch of dirt where something can be planted. |
t_script | 183 | This type can have tags, but can NOT be equipped. |
t_spellbook_necro | 184 | AOS Necromancy spellbook (should have MOREZ=100 by default) |
t_spellbook_pala | 185 | AOS Paladin spellbook (should have MOREZ=200 by default) |
t_spellbook_extra | 186 | some spellbook for script purposes (MOREZ=basic offset) |
t_spellbook_bushido | 187 | SE Bushido spellbook (should have MOREZ=400 by default) |
t_spellbook_ninjitsu | 188 | SE Ninjitsu spellbook (should have MOREZ=500 by default) |
t_spellbook_arcanist | 189 | ML Spellweaver spellbook (should have MOREZ=600 by default) |
t_multi_custom | 190 | Customisable multi |
t_spellbook_mystic | 191 | SA Mysticism spellbook (should have MOREZ=677 by default) |
t_hoverover | 192 | Hover-over item (CAN_C_HOVER can hover over blocking items) |
t_spellbook_bard | 193 | SA Bard spellbook (should have MOREZ=700 by default) |
Scripted TYPEDEFs
DEFNAME | File | Description |
---|---|---|
t_advance_gate | ??.scp | MORE = ID of character to change into |
Syntax
The syntax for defining a type is:
[TYPEDEF defname]
TERRAIN=id
TERRAIN=start_id, end_id
ON=trigger_name
script
ON=trigger_name
script
Any number of triggers can be handled by one TYPEDEF definition, however it is not possible to handle the same trigger twice without using multiple definitions.
The trigger name can be the name of any item trigger. The return value from the script can affect Sphere's hardcoded behaviour in different ways. See the documentation for the trigger to discover what parameters are passed in to each trigger and what the return values do.
Note: If the defname matches any of Sphere's hardcoded types (see 'typedefs' block in sphere_defs.scp), then the TYPEDEF can be used to override the behaviours of items of that type.
Examples
// // Water definition from default script pack. // [TYPEDEF t_water] TERRAIN = 0a8 0ab TERRAIN = 0136 0137
// // Makes an item speak when double clicked. // [TYPEDEF t_exampletype] ON=@DClick SAY I have been double clicked! RETURN 2