Посмотрите какой html string идет после формирования в скрипте DressMe.Всем доброго времени суток!
Поставил я на сборку RusAcis 3.5 мод.
команду .dressme
все вроде хорошо, но иконки не отображаются. подскажите пожалуйста где колупать.
Посмотрите какой html string идет после формирования в скрипте DressMe.
- + public static void showDressMeMainPage(Player player)
- + {
- + NpcHtmlMessage htm = new NpcHtmlMessage(1);
- + String text = HtmCache.getInstance().getHtm("data/html/dressme/index.htm");
- +
- + htm.setHtml(text);
- +
- + {
- + htm.replace("%time%", sdf.format(new Date(System.currentTimeMillis())));
- + htm.replace("%dat%", (new SimpleDateFormat("dd/MM/yyyy")).format(new Date(System.currentTimeMillis())));
- +
- + }
- +
- + player.sendPacket(htm);
- + }
- +
- + static SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
- +
- + private static void showSkinList(Player player, String type, int page)
- + {
- + NpcHtmlMessage html = new NpcHtmlMessage(1);
- +
- + html.setFile("data/html/dressme/allskins.htm");
- +
- + html.replace("%time%", sdf.format(new Date(System.currentTimeMillis())));
- + html.replace("%dat%", (new SimpleDateFormat("dd/MM/yyyy")).format(new Date(System.currentTimeMillis())));
- +
- + final int ITEMS_PER_PAGE = 8;
- +
- + int myPage = 1;
- + int i = 0;
- + int shown = 0;
- + boolean hasMore = false;
- + int itemId = 0;
- +
- + final StringBuilder sb = new StringBuilder();
- +
- + List<SkinPackage> tempList = null;
- + switch (type.toLowerCase())
- + {
- + case "armor":
- + tempList = DressMeData.getInstance().getArmorSkinOptions().values().stream().filter(s -> !player.hasArmorSkin(s.getId())).collect(Collectors.toList());
- + break;
- + case "weapon":
- + tempList = DressMeData.getInstance().getWeaponSkinOptions().values().stream().filter(s -> !player.hasWeaponSkin(s.getId())).collect(Collectors.toList());
- + break;
- + case "hair":
- + tempList = DressMeData.getInstance().getHairSkinOptions().values().stream().filter(s -> !player.hasHairSkin(s.getId())).collect(Collectors.toList());
- + break;
- + case "face":
- + tempList = DressMeData.getInstance().getFaceSkinOptions().values().stream().filter(s -> !player.hasFaceSkin(s.getId())).collect(Collectors.toList());
- + break;
- + case "shield":
- + tempList = DressMeData.getInstance().getShieldSkinOptions().values().stream().filter(s -> !player.hasShieldSkin(s.getId())).collect(Collectors.toList());
- + break;
- + }
- +
- + if (tempList != null && !tempList.isEmpty())
- + {
- + for (SkinPackage sp : tempList)
- + {
- + if (sp == null)
- + {
- + continue;
- + }
- +
- + if (shown == ITEMS_PER_PAGE)
- + {
- + hasMore = true;
- + break;
- + }
- +
- + if (myPage != page)
- + {
- + i++;
- + if (i == ITEMS_PER_PAGE)
- + {
- + myPage++;
- + i = 0;
- + }
- + continue;
- + }
- +
- + if (shown == ITEMS_PER_PAGE)
- + {
- + hasMore = true;
- + break;
- + }
- +
- + switch (type.toLowerCase())
- + {
- + case "armor":
- + itemId = sp.getChestId();
- + break;
- + case "weapon":
- + itemId = sp.getWeaponId();
- + break;
- + case "hair":
- + itemId = sp.getHairId();
- + break;
- + case "face":
- + itemId = sp.getFaceId();
- + break;
- + case "shield":
- + itemId = sp.getShieldId();
- + break;
- + }
- +
- + sb.append("<table border=0 cellspacing=0 cellpadding=2 height=36><tr>");
- + sb.append("<td width=32 align=center>" + "<button width=32 height=32 back=" + Item.getItemIcon(itemId) + " fore=" + Item.getItemIcon(itemId) + ">" + "</td>");
- + sb.append("<td width=124>" + sp.getName() + "<br1> <font color=999999>Price:</font> <font color=339966>" + Item.getItemNameById(sp.getPriceId()) + "</font> (<font color=LEVEL>" + sp.getPriceCount() + "</font>)</td>");
- + sb.append("<td align=center width=65>" + "<button value=\"Buy\" action=\"bypass -h dressme " + page + " buyskin " + sp.getId() + " " + type + " " + itemId + "\" width=65 height=19 back=L2UI_ch3.smallbutton2_over fore=L2UI_ch3.smallbutton2>" + "</td>");
- + sb.append("<td align=center width=65>" + "<button value=\"Try\" action=\"bypass -h dressme " + page + " tryskin " + sp.getId() + " " + type + "\" width=65 height=19 back=L2UI_ch3.smallbutton2_over fore=L2UI_ch3.smallbutton2>" + "</td>");
- +
- + sb.append("</tr></table>");
- + sb.append("<img src=\"L2UI.Squaregray\" width=\"300\" height=\"1\">");
- + shown++;
- + }
- + }
- +
- + sb.append("<table width=300><tr>");
- + sb.append("<td align=center width=70>" + (page > 1 ? "<button value=\"< PREV\" action=\"bypass -h dressme " + (page - 1) + " skinlist " + type + "\" width=65 height=19 back=L2UI_ch3.smallbutton2_over fore=L2UI_ch3.smallbutton2>" : "") + "</td>");
- + sb.append("<td align=center width=140>Page: " + page + "</td>");
- + sb.append("<td align=center width=70>" + (hasMore ? "<button value=\"NEXT >\" action=\"bypass -h dressme " + (page + 1) + " skinlist " + type + "\" width=65 height=19 back=L2UI_ch3.smallbutton2_over fore=L2UI_ch3.smallbutton2>" : "") + "</td>");
- + sb.append("</tr></table>");
- +
- + html.replace("%showList%", sb.toString());
- + player.sendPacket(html);
- + }
- +
- + private static void showMySkinList(Player player, int page)
- + {
- + NpcHtmlMessage html = new NpcHtmlMessage(1);
- + html.setFile("data/html/dressme/myskins.htm");
- +
- + html.replace("%time%", sdf.format(new Date(System.currentTimeMillis())));
- + html.replace("%dat%", (new SimpleDateFormat("dd/MM/yyyy")).format(new Date(System.currentTimeMillis())));
- +
- + final int ITEMS_PER_PAGE = 8;
- + int itemId = 0;
- +
- + int myPage = 1;
- + int i = 0;
- + int shown = 0;
- + boolean hasMore = false;
- +
- + final StringBuilder sb = new StringBuilder();
- +
- + List<SkinPackage> armors = DressMeData.getInstance().getArmorSkinOptions().values().stream().filter(s -> player.hasArmorSkin(s.getId())).collect(Collectors.toList());
- + List<SkinPackage> weapons = DressMeData.getInstance().getWeaponSkinOptions().values().stream().filter(s -> player.hasWeaponSkin(s.getId())).collect(Collectors.toList());
- + List<SkinPackage> hairs = DressMeData.getInstance().getHairSkinOptions().values().stream().filter(s -> player.hasHairSkin(s.getId())).collect(Collectors.toList());
- + List<SkinPackage> faces = DressMeData.getInstance().getFaceSkinOptions().values().stream().filter(s -> player.hasFaceSkin(s.getId())).collect(Collectors.toList());
- + List<SkinPackage> shield = DressMeData.getInstance().getShieldSkinOptions().values().stream().filter(s -> player.hasShieldSkin(s.getId())).collect(Collectors.toList());
- +
- + List<SkinPackage> list = Stream.concat(armors.stream(), weapons.stream()).collect(Collectors.toList());
- + shield.stream().collect(Collectors.toList());
- + List<SkinPackage> list2 = Stream.concat(hairs.stream(), shield.stream()).collect(Collectors.toList());
- + List<SkinPackage> list3 = faces.stream().collect(Collectors.toList());
- +
- + List<SkinPackage> allLists = Stream.concat(list.stream(),Stream.concat(list2.stream(), list3.stream())).collect(Collectors.toList());
- +
- + if (!allLists.isEmpty())
- + {
- + for (SkinPackage sp : allLists)
- + {
- + if (sp == null)
- + {
- + continue;
- + }
- +
- + if (shown == ITEMS_PER_PAGE)
- + {
- + hasMore = true;
- + break;
- + }
- +
- + if (myPage != page)
- + {
- + i++;
- + if (i == ITEMS_PER_PAGE)
- + {
- + myPage++;
- + i = 0;
- + }
- + continue;
- + }
- +
- + if (shown == ITEMS_PER_PAGE)
- + {
- + hasMore = true;
- + break;
- + }
- +
- + switch (sp.getType().toLowerCase())
- + {
- + case "armor":
- + itemId = sp.getChestId();
- + break;
- + case "weapon":
- + itemId = sp.getWeaponId();
- + break;
- + case "hair":
- + itemId = sp.getHairId();
- + break;
- + case "face":
- + itemId = sp.getFaceId();
- + break;
- + case "shield":
- + itemId = sp.getShieldId();
- + break;
- + }
- +
- + sb.append("<table border=0 cellspacing=0 cellpadding=2 height=36><tr>");
- + sb.append("<td width=32 align=center>" + "<button width=32 height=32 back=" + Item.getItemIcon(itemId) + " fore=" + Item.getItemIcon(itemId) + ">" + "</td>");
- + sb.append("<td width=124>" + sp.getName() + "</td>");
- + sb.append("<td align=center width=65>" + "<button value=\"Equip\" action=\"bypass -h dressme " + page + " setskin " + sp.getId() + " " + sp.getType() + " " + itemId + "\" width=65 height=19 back=L2UI_ch3.smallbutton2_over fore=L2UI_ch3.smallbutton2>" + "</td>");
- + sb.append("<td align=center width=65>" + "<button value=\"Remove\" action=\"bypass -h dressme " + page + " clean " + sp.getType() + "\" width=65 height=19 back=L2UI_ch3.smallbutton2_over fore=L2UI_ch3.smallbutton2>" + "</td>");
- + sb.append("</tr></table>");
- + sb.append("<img src=\"L2UI.Squaregray\" width=\"300\" height=\"1\">");
- + shown++;
- + }
- + }
- +
- + sb.append("<table width=300><tr>");
- + sb.append("<td align=center width=70>" + (page > 1 ? "<button value=\"< PREV\" action=\"bypass -h dressme " + (page - 1) + " myskinlist\" width=65 height=19 back=L2UI_ch3.smallbutton2_over fore=L2UI_ch3.smallbutton2>" : "") + "</td>");
- + sb.append("<td align=center width=140>Page: " + page + "</td>");
- + sb.append("<td align=center width=70>" + (hasMore ? "<button value=\"NEXT >\" action=\"bypass -h dressme " + (page + 1) + " myskinlist\" width=65 height=19 back=L2UI_ch3.smallbutton2_over fore=L2UI_ch3.smallbutton2>" : "") + "</td>");
- + sb.append("</tr></table>");
- +
- + html.replace("%showList%", sb.toString());
- + player.sendPacket(html);
- + }
- +
- + public static boolean checkWeapons(Player player, ItemInstance skin, WeaponType weapon1, WeaponType weapon2)
- + {
- + if (player.getActiveWeaponItem().getItemType() == weapon1 && skin.getItem().getItemType() != weapon2)
- + {
- + return false;
- + }
- +
- + return true;
- + }
- +
- }
Извините тут я не понял как это проверить. Знаний очень мало. Возможно это?Проверьте какие оно картинки возвращает.Код:Item.getItemIcon(itemId)
public static String getItemIcon(int itemId)
{
if (_Icons != null && !_Icons.isEmpty())
{
return _Icons.get(itemId);
}
return null;
}
@SuppressWarnings("resource")
private static void loadIcons()
{
_Icons = new HashMap<>();
Connection con = null;
try
{
con = ConnectionPool.getConnection();
PreparedStatement statement = con.prepareStatement("SELECT * FROM item_icons");
ResultSet rset = statement.executeQuery();
while (rset.next())
{
int itemId = rset.getInt("itemId");
String itemIcon = rset.getString("itemIcon");
_Icons.put(itemId, itemIcon);
}
Тут если честно Что вам ответить я не знаю. Знаний в Java ноль.там что отдельная мапа для хранения всех иконок предметов?
интересно какая религия не позволила хранить данные об иконке в темплейтах самих предметов.
это же русацисытам что отдельная мапа для хранения всех иконок предметов?
интересно какая религия не позволила хранить данные об иконке в темплейтах самих предметов.
Таблица = item_icons имеет какую-то информацию?Извините тут я не понял как это проверить. Знаний очень мало. Возможно это?
В базе данных? Ее там вообще нету.Таблица = item_icons имеет какую-то информацию?
ну тогда иконок не будет.В базе данных? Ее там вообще нету.
items
items_delayed
items_on_ground
Все что есть. Если я вас правильно понял.
Думаю в таблице итемс должны быть иконки, как у всех.В базе данных? Ее там вообще нету.
items
items_delayed
items_on_ground
Все что есть. Если я вас правильно понял.
ну тогда иконок не будет.
В items есть ли какое-то поле с названиями по типу icon.
что там долбаться, знаний у человека хватило только чтоб сборку запустить, а я не знаю что такое этот ваш абобус.в глаза видимо долбитесь
<item id="100" type="Weapon" name="Voodoo Doll">
<set name="icon" val="icon.weapon_voodoo_doll_i00" />
<set name="is_magical" val="true" />
<set name="default_action" val="equip" />
<set name="weapon_type" val="ETC" />
<set name="bodypart" val="rhand" />
<set name="random_damage" val="10" />
<set name="attack_range" val="40" />
<set name="damage_range" val="0;0;40;120" />
<set name="material" val="WOOD" />
<set name="weight" val="630" />
<set name="price" val="244000" />
<set name="soulshots" val="2" />
<set name="spiritshots" val="2" />
<for>
<set stat="pAtk" val="25" />
<set stat="mAtk" val="28" />
<set stat="rCrit" val="8" />
<set stat="pAtkSpd" val="379" />
</for>
</item>
В мобиусе иконки предметов в бд в отдельной таблице?)что там долбаться, знаний у человека хватило только чтоб сборку запустить, а я не знаю что такое этот ваш абобус.
В мобиусе иконки предметов в бд в отдельной таблице?)
Я нашел в XMLв глаза видимо долбитесь
<item id="100" type="Weapon" name="Voodoo Doll">
<set name="icon" val="icon.weapon_voodoo_doll_i00" />
<set name="is_magical" val="true" />
<set name="default_action" val="equip" />
<set name="weapon_type" val="ETC" />
<set name="bodypart" val="rhand" />
<set name="random_damage" val="10" />
<set name="attack_range" val="40" />
<set name="damage_range" val="0;0;40;120" />
<set name="material" val="WOOD" />
<set name="weight" val="630" />
<set name="price" val="244000" />
<set name="soulshots" val="2" />
<set name="spiritshots" val="2" />
<for>
<set stat="pAtk" val="25" />
<set stat="mAtk" val="28" />
<set stat="rCrit" val="8" />
<set stat="pAtkSpd" val="379" />
</for>
</item>
Спасибо, сейчас попробую.Ну попробуйте что-то типо
item.getItem().getItemIcon();
или item.getTemprate().getItemIcon();
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?