Gatsby 269 Опубликовано 3 января, 2014 Появляется при любом изменении в коде. В оригинале работает норм. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BLaCkSHaRk 45 Опубликовано 3 января, 2014 colorsid у тебя строковый параметр, а должен быть числовой Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SoFace 315 Опубликовано 3 января, 2014 Товарищ @BLaCkSHaRk, все верно сказал. Но, ТС, выложи весь код. Чтобы сразу решить проблему. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gatsby 269 Опубликовано 3 января, 2014 (изменено) package custom.servicem; import java.io.File; import java.io.FileReader; import java.io.LineNumberReader; import java.util.HashMap; import java.util.Map; import java.sql.SQLException; import java.sql.Connection; import java.sql.PreparedStatement; import ru.catssoftware.gameserver.network.SystemChatChannelId; import ru.catssoftware.gameserver.network.serverpackets.CreatureSay; import ru.catssoftware.gameserver.datatables.CharNameTable; import ru.catssoftware.gameserver.datatables.ItemTable; import ru.catssoftware.gameserver.handler.IVoicedCommandHandler; import ru.catssoftware.gameserver.handler.VoicedCommandHandler; import ru.catssoftware.gameserver.model.L2World; import ru.catssoftware.gameserver.datatables.SkillTable; import ru.catssoftware.gameserver.network.serverpackets.PledgeSkillList; import ru.catssoftware.gameserver.model.actor.instance.L2NpcInstance; import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance; import ru.catssoftware.gameserver.model.quest.Quest; import ru.catssoftware.gameserver.model.quest.QuestState; import ru.catssoftware.gameserver.util.PcAction; import ru.catssoftware.gameserver.model.itemcontainer.Inventory; import ru.catssoftware.L2DatabaseFactory; import ru.catssoftware.gameserver.model.L2ItemInstance; public class ServiceManager extends Quest { private static String qn = "ServiceManager"; private final static int ID_NPC_MANAGER = 50024; // ID Менеджера (NPC) private static class Price { private int []_itemId; private int []_prices; public Price(int []items, int[]count) { _itemId = items; _prices = count; } } /** * Настройки смены ника: */ int priceChangeNameId = 9303; int priceChangeNameCount = 15; int priceChangeColorNameId = 9303; int priceChangeColorNameCount = 10; int priceItemIdAugment = 4037; int priceItemCountAugment = 40; int attributes; int skill; int level; int ItemIdClan = 9303; int ClanLevel6 = 5; int ClanLevel7 = 5; int ClanLevel8 = 5; int ClanCrpPrice = 5; int ClanCrpCount = 10000; int ClanSkillsCount = 30; String str = ""; private static Map _premiumPrice = new HashMap(); private static Map _heroPrice = new HashMap(); private static Price _NoblesPrice = new Price(new int[] {9303}, new int [] {5}); private String colorTable = " Смена цвета: [color="74bff5"]"+priceChangeColorNameCount+" "+(ItemTable.getInstance().getItemName(priceChangeColorNameId))+"[/color] "; public ServiceManager() { super(-1,qn,"custom"); // ================= ЦЕНЫ РќРђ ДВОРЯНСТВО ======== // РґРЅРё, new Price(new int[] {через , РР” предметов},new int[] {через , количество}); _premiumPrice.put(1,new Price(new int[] { 9303},new int[] {1})); _premiumPrice.put(7,new Price(new int[] { 9303},new int[] {5})); _premiumPrice.put(14,new Price(new int[] { 9303},new int[] {10})); _premiumPrice.put(31,new Price(new int[] { 9303},new int[] {20})); // ================ ЦЕНЫ РќРђ ГЕРОРР—Рњ =============== _heroPrice.put(1, new Price(new int[] { 9303},new int[] {2})); _heroPrice.put(7, new Price(new int[] {9303},new int[] {15})); _heroPrice.put(31, new Price(new int[] {9303},new int[] {50})); // ================ Список цветов ника и титула =============== /* _colorPrice.put(1, new ColorId(new int[] {FFFF00},new int[] {голубым})); _colorPrice.put(2, new ColorId(new int[] {000000},new int[] {черным})); _colorPrice.put(3, new ColorId(new int[] {FF0000},new int[] {синим})); _colorPrice.put(4, new ColorId(new int[] {FF00FF},new int[] {розовым})); _colorPrice.put(5, new ColorId(new int[] {808080},new int[] {серым})); _colorPrice.put(6, new ColorId(new int[] {008000},new int[] {зеленым})); _colorPrice.put(7, new ColorId(new int[] {00FF00},new int[] {лаймовым})); _colorPrice.put(8, new ColorId(new int[] {800000},new int[] {темно-синим})); _colorPrice.put(9, new ColorId(new int[] {008080},new int[] {оливковым})); _colorPrice.put(10, new ColorId(new int[] {800080},new int[] {пурпурным})); _colorPrice.put(11, new ColorId(new int[] {808000},new int[] {сине-зелёным})); _colorPrice.put(12, new ColorId(new int[] {FFFFFF},new int[] {белым})); _colorPrice.put(13, new ColorId(new int[] {00FFFF},new int[] {желтым})); _colorPrice.put(14, new ColorId(new int[] {C0C0C0},new int[] {серебряным})); _colorPrice.put(15, new ColorId(new int[] {17A0D4},new int[] {золотым})); */ // Таблица цветов из colors.table File f = new File(getScriptFile()); try { LineNumberReader lnr = new LineNumberReader(new FileReader(f.getParent()+"/colors.table")); String line; while((line=lnr.readLine())!=null) { String []colors = line.split("\t"); for(int i=0;i[color="\""+colors[i]+"\""]Выбрать цвет титула[/color] "; } } catch(Exception e) { System.out.println("Error reading "+f.getParent()+"/colors.table"); } } public void criticalTo(L2PcInstance player, String text) { CreatureSay cs = new CreatureSay(0, SystemChatChannelId.Chat_Critical_Announce, "", text); player.sendPacket(cs); } private void updateAugment(L2PcInstance player, int attributes, int skill, int level) { L2ItemInstance item = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND); if (player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND) == null) { criticalTo(player, "Вы должны одеть оружие."); } else if (player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND).isAugmented()) { criticalTo(player, "В оружие уже присутствует аугументация."); } else if (!checkMoney(player, priceItemIdAugment, priceItemCountAugment, true)) { criticalTo(player, "У Вас недостаточно денег."); } else { try { Connection con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement stm = con.prepareStatement("REPLACE INTO item_attributes VALUES(?,?,?,?)"); stm.setInt(1, item.getObjectId()); stm.setInt(2, attributes*65536+1); stm.setInt(3, skill); stm.setInt(4, level); stm.execute(); criticalTo(player, "Аугументация прошла успешно. Вам нужно перезайти."); stm.close(); } catch (SQLException e) { _log.error("error creating augment shop data table ", e); } } } private boolean checkMoney(L2PcInstance player, Price price) { for(int i=0;i if(player.getInventory().getItemByItemId(price._itemId[i])==null || player.getInventory().getItemByItemId(price._itemId[i]).getCount() < price._prices[i]) { return false; // Нет денег? Сории } for(int i=0;i if(!player.destroyItemByItemId(qn, price._itemId[i], price._prices[i], null, true)) { return false; } return true; } private boolean checkMoney(L2PcInstance player, int itemId, int count, boolean destroy) { if(player.getInventory().getItemByItemId(itemId)==null || player.getInventory().getItemByItemId(itemId).getCount() < count) return false; // Нет денег? Сории if(destroy && !player.destroyItemByItemId(qn, itemId, count, null, true)) return false; return true; } @Override public String onAdvEvent(String event, L2NpcInstance npc, L2PcInstance player) { String []args = event.split(" "); // Разбираем строку параметров if(args[0].equals("premiumlist")) { // Формируем список доступных дней премиума String html = " Покупка премиума: "; for(int days : _premiumPrice.keySet()) { html+="[url=""]Покупка Геройства:[/url] [url=""] Price price = _heroPrice.get(days); for(int i=0;i if(i!=0) // Добавляем , html+=","; html+=price._prices[i]+" "+ItemTable.getInstance().getTemplate(price._itemId[i]).getName(); } } html+="[/url] [url=""]Смена имени: [color="74bff5"]"+priceChangeNameCount+" "+(ItemTable.getInstance().getItemName(priceChangeNameId))+"[/color]"; htmltext += "[img=\] [img=\] "; htmltext += " Введите желаемое имя: "; htmltext += " "; htmltext += " "; return colorTable; } else if(args[0].equals("clanlist")) { String html = "clanlist.htm"; return html; } else if(args[0].equals("active")) { String htmltext = "active.htm"; return htmltext; } else if(args[0].equals("passive")) { String htmltext = "passive.htm"; return htmltext; } else if(args[0].equals("chance")) { String htmltext = "chance.htm"; return htmltext; } return "donate.htm"; } @Override public String onFirstTalk(L2NpcInstance npc, L2PcInstance player) { return onTalk(npc, player); } @Override public String onTalk(L2NpcInstance npc, L2PcInstance player) { QuestState qs = player.getQuestState(qn); if(qs==null) qs = newQuestState(player); return "donate.htm"; } public static void main(String[] args) { ServiceManager ps = new ServiceManager(); ps.addFirstTalkId(ID_NPC_MANAGER); // Мы не хотим писать диалог для этого НПЦ ps.addStartNpc(ID_NPC_MANAGER); // Автоматический контроль состояния квеста ps.addTalkId(ID_NPC_MANAGER); // NPC с которым можно говорить. } } Изменено 3 января, 2014 пользователем Gatsby 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты