akoraun 2 Опубликовано 10 ноября, 2018 (изменено) Хочу реализовать сеты (комплекты), как в Diablo. 1. Будет давать эффекты за каждый одетый итем из сета. Для этого я попробовал сделать так: String[] chest = null, chest_skills = null, legs = null, legs_skills = null, head = null, head_skills = null, gloves = null, gloves_skills = null, feet = null, feet_skills = null, skills = null, shield = null, shield_skills = null, enchant6skills = null; Element element = iterator.next(); int id = Integer.parseInt(element.attributeValue("id")); if(element.attributeValue("chest") != null) chest = element.attributeValue("chest").split(";"); if(element.attributeValue("chest_skills") != null) chest = element.attributeValue("chest_skills").split(";"); if(element.attributeValue("legs") != null) legs = element.attributeValue("legs").split(";"); if(element.attributeValue("legs_skills") != null) legs = element.attributeValue("legs_skills").split(";"); if(element.attributeValue("head") != null) head = element.attributeValue("head_").split(";"); if(element.attributeValue("head_skills") != null) head = element.attributeValue("head_skills").split(";"); if(element.attributeValue("gloves") != null) gloves = element.attributeValue("gloves").split(";"); if(element.attributeValue("gloves_skills") != null) gloves = element.attributeValue("gloves_skills").split(";"); if(element.attributeValue("feet") != null) feet = element.attributeValue("feet").split(";"); if(element.attributeValue("feet_skills") != null) feet = element.attributeValue("feet_skills").split(";"); if(element.attributeValue("skills") != null) skills = element.attributeValue("skills").split(";"); if(element.attributeValue("shield") != null) shield = element.attributeValue("shield").split(";"); if(element.attributeValue("shield_skills") != null) shield_skills = element.attributeValue("shield_skills").split(";"); if(element.attributeValue("enchant6skills") != null) enchant6skills = element.attributeValue("enchant6skills").split(";"); getHolder().addArmorSet(new ArmorSet(id, chest, legs, head, gloves, feet, skills, shield, shield_skills, enchant6skills)); } Но при компиляции никаких изменений в файле armor_sets.dtd не увидел: <?xml version='1.0' encoding='utf-8'?> <!ELEMENT list (set)*> <!ELEMENT set (#PCDATA)> <!ATTLIST set id CDATA #REQUIRED chest CDATA #REQUIRED legs CDATA #IMPLIED head CDATA #IMPLIED gloves CDATA #IMPLIED feet CDATA #IMPLIED skills CDATA #IMPLIED shield CDATA #IMPLIED shield_skills CDATA #IMPLIED enchant6skills CDATA #IMPLIED> В чем тут может быть дело? 2. Хочу сделать, что сетовыми будут не только слоты head, chest, legs, gloves, feet, но и: left_hand, right_hand, necklace, left_ear, right_ear, left_finger, right_finger, back, belt, right_bracelet, underwear. Здесь часть этого вопроса в исходнике. Допустим String[] chest = null, legs = null, head = null, gloves = null, feet = null, left_hand = null, right_hand = null, necklace = null, left_ear = null, right_ear = null, left_finger = null, right_finger = null, back = null, belt = null, right_bracelet = null, underwear = null, skills = null, shield = null, shield_skills = null, enchant6skills = null; Element element = iterator.next(); int id = Integer.parseInt(element.attributeValue("id")); if(element.attributeValue("chest") != null) chest = element.attributeValue("chest").split(";"); if(element.attributeValue("legs") != null) legs = element.attributeValue("legs").split(";"); if(element.attributeValue("head") != null) head = element.attributeValue("head").split(";"); if(element.attributeValue("gloves") != null) gloves = element.attributeValue("gloves").split(";"); if(element.attributeValue("feet") != null) feet = element.attributeValue("feet").split(";"); if(element.attributeValue("left_hand") != null) feet = element.attributeValue("left_hand").split(";"); if(element.attributeValue("right_hand") != null) feet = element.attributeValue("right_hand).split(";"); if(element.attributeValue("necklace") != null) feet = element.attributeValue("necklace").split(";"); if(element.attributeValue("left_ear") != null) feet = element.attributeValue("left_ear").split(";"); if(element.attributeValue("right_ear") != null) feet = element.attributeValue("right_ear").split(";"); if(element.attributeValue("left_finger") != null) feet = element.attributeValue("left_finger").split(";"); if(element.attributeValue("right_finger") != null) feet = element.attributeValue("right_finger").split(";"); if(element.attributeValue("back") != null) feet = element.attributeValue("back").split(";"); if(element.attributeValue("belt") != null) feet = element.attributeValue("belt").split(";"); if(element.attributeValue("right_bracelet") != null) feet = element.attributeValue("right_bracelet").split(";"); if(element.attributeValue("underwear") != null) feet = element.attributeValue("underwear").split(";"); if(element.attributeValue("skills") != null) skills = element.attributeValue("skills").split(";"); if(element.attributeValue("shield") != null) shield = element.attributeValue("shield").split(";"); if(element.attributeValue("shield_skills") != null) shield_skills = element.attributeValue("shield_skills").split(";"); if(element.attributeValue("enchant6skills") != null) enchant6skills = element.attributeValue("enchant6skills").split(";"); getHolder().addArmorSet(new ArmorSet(id, chest, legs, head, gloves, feet, left_hand, right_hand, necklace, left_ear, right_ear, left_finger, right_finger, back, belt, right_bracelet, underwear, skills, shield, shield_skills, enchant6skills)); } Прокатит ли такое? Изменено 10 ноября, 2018 пользователем akoraun Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Demoncool 1110 Опубликовано 10 ноября, 2018 прокатит, dtd мало где используется Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты