summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgumi <git@gumi.ca>2018-01-28 14:06:40 -0500
committergumi <git@gumi.ca>2018-01-28 14:06:40 -0500
commitcccbedfcf42e504dfa9d889457b8daa11241ba47 (patch)
tree4eaf73e58cfa6469e238babdd1b0453769f94376
parenteb92490f1975fa3c582717a2d3fd68cdaf80b987 (diff)
downloadtools-cccbedfcf42e504dfa9d889457b8daa11241ba47.tar.gz
tools-cccbedfcf42e504dfa9d889457b8daa11241ba47.tar.bz2
tools-cccbedfcf42e504dfa9d889457b8daa11241ba47.tar.xz
tools-cccbedfcf42e504dfa9d889457b8daa11241ba47.zip
fix some errors in the xsd
-rw-r--r--client/tmw.xsd311
1 files changed, 286 insertions, 25 deletions
diff --git a/client/tmw.xsd b/client/tmw.xsd
index 693ffb5..bd232c3 100644
--- a/client/tmw.xsd
+++ b/client/tmw.xsd
@@ -451,7 +451,6 @@
</xs:sequence>
<xs:attribute name="image" type="xs:string" default="equipmentbox.png"/>
</xs:complexType>
-
<!--
EquipmentWindow::loadPage
-->
@@ -571,25 +570,20 @@
<xs:element name="status-effects" type="root_status-effects"/>
<xs:complexType name="root_status-effects">
<xs:sequence>
- <xs:element ref="its:rules" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="include"/>
<xs:element name="status-effect">
<xs:complexType>
+ <!-- legacy attribute only for old clients -->
<xs:attribute name="block-id" type="xs:int" use="optional"/>
<xs:attributeGroup ref="status_or_stun_attrs"/>
</xs:complexType>
</xs:element>
- <xs:element name="stun-effect">
- <xs:complexType>
- <xs:attributeGroup ref="status_or_stun_attrs"/>
- </xs:complexType>
- </xs:element>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:attributeGroup name="status_or_stun_attrs">
- <xs:attribute name="id" type="xs:int" use="required"/>
+ <xs:attribute name="id" type="xs:int" use="optional"/>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="start-message" type="xs:string" use="optional"/>
<xs:attribute name="start-audio" type="xs:string" use="optional"/>
@@ -600,6 +594,11 @@
<xs:attribute name="end-message" type="xs:string" use="optional"/>
<xs:attribute name="end-audio" type="xs:string" use="optional"/>
<xs:attribute name="end-particle" type="xs:string" use="optional"/>
+ <xs:attribute name="particle" type="xs:string" use="optional"/>
+ <xs:attribute name="option" type="xs:int" use="optional"/>
+ <xs:attribute name="opt1" type="xs:int" use="optional"/>
+ <xs:attribute name="opt2" type="xs:int" use="optional"/>
+ <xs:attribute name="opt3" type="xs:int" use="optional"/>
</xs:attributeGroup>
<!--
maps and tilesets omitted, they have a DTD from tiled
@@ -1389,8 +1388,6 @@
</xs:element>
</xs:choice>
</xs:complexType>
-
-
<!-- probably not all tags correct here -->
<xs:element name="elementals" type="root_elementals"/>
<xs:complexType name="root_elementals">
@@ -1440,7 +1437,6 @@
</xs:choice>
</xs:sequence>
</xs:complexType>
-
<xs:element name="equipmentslots" type="root_equipmentslots"/>
<xs:complexType name="root_equipmentslots">
<xs:sequence>
@@ -1454,7 +1450,6 @@
</xs:choice>
</xs:sequence>
</xs:complexType>
-
<xs:element name="groups" type="root_groups"/>
<xs:complexType name="root_groups">
<xs:sequence>
@@ -1463,8 +1458,8 @@
<xs:element name="group">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="commands" type="groups_commands" />
- <xs:element name="permissions" type="groups_permissions" />
+ <xs:element name="commands" type="groups_commands"/>
+ <xs:element name="permissions" type="groups_permissions"/>
</xs:choice>
<xs:attribute name="id" type="xs:int" use="required"/>
<xs:attribute name="name" type="xs:string" default=""/>
@@ -1501,7 +1496,6 @@
</xs:choice>
</xs:sequence>
</xs:complexType>
-
<!-- probably not all tags correct here -->
<xs:element name="homunculuses" type="root_homunculuses"/>
<xs:complexType name="root_homunculuses">
@@ -1552,7 +1546,6 @@
</xs:choice>
</xs:sequence>
</xs:complexType>
-
<xs:element name="horses" type="root_horses"/>
<xs:complexType name="horse_offset">
<xs:attribute name="direction" type="xs:string" use="required"/>
@@ -1570,7 +1563,7 @@
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="include"/>
- <xs:element name="horse" type="horse_node" />
+ <xs:element name="horse" type="horse_node"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
@@ -1589,8 +1582,8 @@
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="sprite" type="horse_sprite" />
- <xs:element name="offset" type="horse_offset" />
+ <xs:element name="sprite" type="horse_sprite"/>
+ <xs:element name="offset" type="horse_offset"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
@@ -1599,8 +1592,8 @@
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="sprite" type="horse_sprite" />
- <xs:element name="offset" type="horse_offset" />
+ <xs:element name="sprite" type="horse_sprite"/>
+ <xs:element name="offset" type="horse_offset"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
@@ -1608,7 +1601,6 @@
</xs:sequence>
<xs:attribute name="id" type="xs:int" use="required"/>
</xs:complexType>
-
<xs:element name="itemfields" type="root_itemfields"/>
<xs:complexType name="root_itemfields">
<xs:sequence>
@@ -1619,7 +1611,7 @@
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="field" type="itemfield_node" />
+ <xs:element name="field" type="itemfield_node"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
@@ -1628,7 +1620,7 @@
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="field" type="itemfield_node" />
+ <xs:element name="field" type="itemfield_node"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
@@ -1642,7 +1634,6 @@
<xs:attribute name="description" type="xs:string" use="required"/>
<xs:attribute name="signed" type="bool" default="true"/>
</xs:complexType>
-
<xs:element name="itemoptions" type="root_itemoptions"/>
<xs:complexType name="root_itemoptions">
<xs:sequence>
@@ -1674,4 +1665,274 @@
</xs:choice>
</xs:sequence>
</xs:complexType>
+ <xs:element name="languages" type="root_languages"/>
+ <xs:complexType name="root_languages">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="include"/>
+ <xs:element name="language">
+ <xs:complexType>
+ <xs:attribute name="id" type="xs:int" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="icon" type="xs:string" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="mercenaries" type="root_mercenaries"/>
+ <xs:complexType name="root_mercenaries">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="include"/>
+ <xs:element name="mercenary">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="sprite">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="variant" type="xs:int" default="0"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="particlefx" type="xs:string"/>
+ </xs:choice>
+ <xs:attribute name="id" type="xs:int" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="targetSelection" type="bool" default="true"/>
+ <xs:attributeGroup ref="being_basic_attributes"/>
+ <xs:attribute name="deadSortOffsetY" type="xs:int" default="31"/>
+ <xs:attribute name="startFollowDistance" type="xs:int" default="3"/>
+ <xs:attribute name="followDistance" type="xs:int" default="0"/>
+ <xs:attribute name="warpDistance" type="xs:int" default="11"/>
+ <xs:attribute name="walkSpeed" type="xs:int" default="0"/>
+ <xs:attribute name="offsetX" type="xs:int" default="0"/>
+ <xs:attribute name="offsetY" type="xs:int" default="1"/>
+ <xs:attribute name="sitOffsetX" type="xs:int" default="0"/>
+ <xs:attribute name="sitOffsetY" type="xs:int" default="1"/>
+ <xs:attribute name="moveOffsetX" type="xs:int" default="0"/>
+ <xs:attribute name="moveOffsetY" type="xs:int" default="1"/>
+ <xs:attribute name="deadOffsetX" type="xs:int" default="0"/>
+ <xs:attribute name="deadOffsetY" type="xs:int" default="1"/>
+ <xs:attribute name="attackOffsetX" type="xs:int" use="optional"/>
+ <xs:attribute name="attackOffsetY" type="xs:int" use="optional"/>
+ <xs:attribute name="thinkTime" type="xs:int" default="500"/>
+ <xs:attribute name="directionType" type="xs:int" default="1"/>
+ <xs:attribute name="sitDirectionType" type="xs:int" default="1"/>
+ <xs:attribute name="deadDirectionType" type="xs:int" default="1"/>
+ <xs:attribute name="attackDirectionType" type="xs:int" default="4"/>
+ <xs:attribute name="removeMessage" type="xs:string" use="optional"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="network" type="root_network"/>
+ <xs:complexType name="root_network">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="include"/>
+ <xs:element name="inpackets" type="network_inpackets"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="network_inpackets">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="include"/>
+ <xs:element name="fakepacket">
+ <xs:complexType>
+ <xs:attribute name="id" type="xs:int" use="required"/>
+ <xs:attribute name="len" type="xs:int" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="removepacket">
+ <xs:complexType>
+ <xs:attribute name="id" type="xs:int" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="dialogs" type="root_npc_dialogs"/>
+ <xs:complexType name="root_npc_dialogs">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="dialog" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="menu" type="npc_dialogs_menu"/>
+ <xs:element name="inventory" type="npc_dialogs_inventory"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="hideText" type="bool"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element ref="include"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="npc_dialogs_menu">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="button">
+ <xs:complexType>
+ <xs:attribute name="name" type="xs:string" default=""/>
+ <xs:attribute name="value" type="xs:string" use="required"/>
+ <xs:attribute name="x" type="xs:int" default="0"/>
+ <xs:attribute name="y" type="xs:int" default="0"/>
+ <xs:attribute name="image" type="xs:string" default=""/>
+ <xs:attribute name="imageWidth" type="xs:int" default="16"/>
+ <xs:attribute name="imageHeight" type="xs:int" default="16"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="image">
+ <xs:complexType>
+ <xs:attribute name="image" type="xs:string" use="required"/>
+ <xs:attribute name="x" type="xs:int" default="0"/>
+ <xs:attribute name="y" type="xs:int" default="0"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="text">
+ <xs:complexType>
+ <xs:attribute name="text" type="xs:string" use="required"/>
+ <xs:attribute name="x" type="xs:int" default="0"/>
+ <xs:attribute name="y" type="xs:int" default="0"/>
+ <xs:attribute name="width" type="xs:int" default="20"/>
+ <xs:attribute name="height" type="xs:int" default="20"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="npc_dialogs_inventory">
+ <xs:attribute name="cell" type="xs:string" default=""/>
+ <xs:attribute name="columns" type="xs:int" default="10000"/>
+ </xs:complexType>
+ <xs:element name="skillunits" type="root_skillunits"/>
+ <xs:complexType name="root_skillunits">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="skillunit">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="include"/>
+ <xs:element name="particlefx" type="xs:string"/>
+ <xs:element name="sprite">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="variant" type="xs:int" default="0"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute name="id" type="xs:int" use="required"/>
+ <xs:attribute name="name" type="xs:string" default="skill"/>
+ <xs:attribute name="targetSelection" type="bool" default="true"/>
+ <xs:attributeGroup ref="being_basic_attributes"/>
+ <xs:attribute name="deadSortOffsetY" type="xs:int" default="31"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="stats" type="root_stats"/>
+ <xs:complexType name="root_stats">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="include"/>
+ <xs:element name="basic">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="stat">
+ <xs:complexType>
+ <xs:attribute name="id" type="xs:int" use="optional"/>
+ <xs:attribute name="attr" type="xs:string" use="required"/>
+ <xs:attribute name="tag" type="xs:string" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="extended">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="stat">
+ <xs:complexType>
+ <xs:attribute name="id" type="xs:int" use="optional"/>
+ <xs:attribute name="attr" type="xs:string" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="page">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="stat">
+ <xs:complexType>
+ <xs:attribute name="id" type="xs:int" use="optional"/>
+ <xs:attribute name="attr" type="xs:string" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="texts" type="root_texts"/>
+ <xs:complexType name="root_texts">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="include"/>
+ <xs:element name="text">
+ <xs:complexType>
+ <xs:attribute name="show" type="bool" default="false"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="badges" type="root_badges"/>
+ <xs:complexType name="root_badges">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="include"/>
+ <xs:element name="guild" type="badges_list"/>
+ <xs:element name="party" type="badges_list"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="badges_list">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="include"/>
+ <xs:element name="badge">
+ <xs:complexType>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="image" type="xs:string" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
</xs:schema>