|
|
(25 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
− | == Object type format ==
| + | {{Template:MovedToWebpage|https://vcmi.eu/modders/Map_Object_Format/}} |
− | | |
− | ''Current draft. WiP.''
| |
− | | |
− | <syntaxhighlight lang="javascript">
| |
− | | |
− | {
| |
− | "objectTypes":
| |
− | [
| |
− |
| |
− | "myCoolObject":{
| |
− | //numeric ID, mandatory for h3/wog objects, shall be unique is defined
| |
− | //not recommended for VCMI objects, shall be unique is defined, default: engine defined
| |
− | "id":689,
| |
− |
| |
− | | |
− | //if true, activable tiles are not visitable, but activable from neighbouring tile.
| |
− | //default false
| |
− | "blockVisit" : true,
| |
− | | |
− | //if true object can be visited from top
| |
− | //default false
| |
− | "topVisitable" : false,
| |
− | | |
− | //range of numeric sub id`s, mapped to this object type. Optional for h3/wog objects.
| |
− | //not recommended for VCMI objects.
| |
− | "subIdMax":0,
| |
− | "subIdMin":1,
| |
− | | |
− | //defaults for objects of this type (see below)
| |
− | //optional
| |
− | //Note: objects of same type that have random object, should have identical masks
| |
− | "instance":
| |
− | {
| |
− | "mask":[
| |
− | "00000000",
| |
− | "00000000",
| |
− | "00000000",
| |
− | "0000VVVV",
| |
− | "0000VBBB",
| |
− | "0000VBBA"],
| |
− | }
| |
− | | |
− | }
| |
− | | |
− | ]
| |
− | }
| |
− | | |
− | | |
− | </syntaxhighlight>
| |
− | | |
− | '''Example:'''
| |
− | | |
− | <syntaxhighlight lang="javascript">
| |
− | | |
− | {
| |
− | "objectTypes":
| |
− | [
| |
− |
| |
− | "artifact":{
| |
− | "id":5,
| |
− | "blockVisit" : true
| |
− | },
| |
− | | |
− | "treasureChest":{
| |
− | "id":101,
| |
− | "subIdMax":0,
| |
− | "blockVisit" : true
| |
− | },
| |
− | | |
− | "treasureChestWoG":{
| |
− | "id":101,
| |
− | "subIdMin":1,
| |
− | "blockVisit" : true
| |
− | },
| |
− | | |
− | "pyramid": {
| |
− | "id":63,
| |
− | "subIdMax":0 //subtype 0
| |
− | },
| |
− | | |
− | "wogObject": {
| |
− | "id":63,
| |
− | "subIdMin":1 //subtype> 0
| |
− | }
| |
− | | |
− | ]
| |
− | }
| |
− | | |
− | </syntaxhighlight>
| |
− | | |
− | == Object format ==
| |
− | | |
− | ''Current draft. WiP.''
| |
− | | |
− | * Used by editor, RMG, (???) by engine for random new objects.
| |
− | * analogue of "ZOBJCTS.TXT", "ZEOBJTS.TXT", "ZAOBJTS.TXT" from WoG.
| |
− | | |
− | <syntaxhighlight lang="javascript">
| |
− | | |
− | {"objects":[ | |
− | | |
− | {
| |
− | //mandatory
| |
− | //resource ID of animation, relative to SPRITES(def file or json file (*) )
| |
− | "animation":"DEFNAME",
| |
− |
| |
− | //mandatory
| |
− | //bit mask of passability. (???) use more readable array and|or predefined templates
| |
− | "passability":[
| |
− | "11111111",
| |
− | "11111111",
| |
− | "11111111",
| |
− | "11111111",
| |
− | "11111111",
| |
− | "11111110"],
| |
− | | |
− | //mandatory
| |
− | //bit mask of activatable tiles (???) use more readable array and|or predefined templates
| |
− | "actions": [
| |
− | "00000000",
| |
− | "00000000",
| |
− | "00000000",
| |
− | "00000000",
| |
− | "00000000",
| |
− | "00000001"],
| |
− | | |
− | // mandatory
| |
− | // list of tiles from which this object is visible, mostly needed for server
| |
− | // to detect if object is visible by player
| |
− | "visibility": [
| |
− | "000",
| |
− | "001",
| |
− | "011"],
| |
− | | |
− | //alternative to actions, passability, visiblity
| |
− | // 0=not visible, passable
| |
− | // V=visible, passable
| |
− | // B=blocked, visible
| |
− | // A=activable, visible, passable depending on blockVisit flag of object type.
| |
− | //top and left leading zeros are optional and in fact ignored
| |
− | //bottom, right corner of mask = bottom right corner of animation frame
| |
− | //animation shall not exceed visible mask space
| |
− | "mask":[
| |
− | "00000000",
| |
− | "00000000",
| |
− | "00000000",
| |
− | "0000VVVV",
| |
− | "0000VBBB",
| |
− | "0000VBBA"],
| |
− | | |
− | //mandatory (?)
| |
− | "id":"objectType", //object type from object type config. (!) Only string id`s.
| |
− | | |
− | //allowed terrain types to place object too, can be overridden in editor. Affects also RMG.
| |
− | "landscape":["dirt", "sand"],
| |
− | | |
− | // List of tags that can be used to locate object in map editor
| |
− | "tags":["dirt", "sand", "mine"],
| |
− | | |
− | //mandatory
| |
− | //numeric ((?) needed) or full string object id
| |
− | //(?) id not required if subid in full identifier
| |
− | "subId":34,//or "objectType.objectName" f.e. "creature.pikeman"
| |
− |
| |
− | //
| |
− | "group":"",
| |
− | | |
− | //optional, default false,
| |
− | "isOverlay": true, //false, true
| |
− | | |
− | //zindex, optional, default 0,
| |
− | //NOTE: overlay objects are always lower than non overlays
| |
− | "zIndex": 0//
| |
− | | |
− | }
| |
− | | |
− | ]}
| |
− | | |
− | </syntaxhighlight>
| |
− | | |
− | | |
− | {{Modding}}
| |