Перейти к содержанию

KOltin

Пользователи
  • Публикаций

    16
  • Зарегистрирован

  • Посещение

  • Отзывы

    N/A

Весь контент KOltin

  1. Кривое отображение в мультиселлах. Не сходятся строчки с иконками.
  2. Собственно подскажите возможно ли это?
  3. KOltin

    Дисконекты

    Установили лимит одновременных соединений - 400. Также сократили время ожидания, после которого соединение будет закрываться автоматически, если соединение неактивно. Сейчас это значение составляет 180 секунд.
  4. KOltin

    рейтинг ммо

    короче все намного проще. http и https
  5. KOltin

    рейтинг ммо

    ну он как БЭ доступен в инете. любой может зайти на него.
  6. KOltin

    рейтинг ммо

    нет. для того чтобы добавить сервер в топ.
  7. KOltin

    рейтинг ммо

    Добрый день. Подскажите пожалуйста что значит на ММОТОПЕ сделать сайт сервера доступным?
  8. KOltin

    ПА скилы

    в том то и дело что релог не помогает
  9. KOltin

    ПА скилы

    package custom.ServiceManager; import java.io.File; import java.io.FileReader; import java.io.LineNumberReader; import java.util.HashMap; import java.util.Map; import ru.catssoftware.gameserver.datatables.ItemTable; import ru.catssoftware.gameserver.handler.IVoicedCommandHandler; import ru.catssoftware.gameserver.handler.VoicedCommandHandler; 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.util.Log; //import javolution.text.TextBuilder; import ru.catssoftware.gameserver.network.serverpackets.PlaySound; import ru.catssoftware.gameserver.network.serverpackets.PledgeSkillList; import ru.catssoftware.gameserver.datatables.SkillTable; public class ServiceManager extends Quest { private static String qn = "ServiceManager"; private static class Price { private int[] _itemId; private int[] _prices; public Price(int[] items, int[] count) { _itemId = items; _prices = count; } } private static Map<Integer, Price> _premiumPrice = new HashMap<Integer, Price>(); private static Map<Integer, Price> _heroPrice = new HashMap<Integer, Price>(); private static Price _colorPrice = new Price(new int[]{4037}, new int[]{10}); private static Price _NoblesPrice = new Price(new int[]{4037}, new int[]{3}); private static Price _ClanSkills = new Price(new int[]{4037}, new int[]{35}); //private static Price _setNamePrice = new Price(new int[]{4037}, new int[]{10}); private static Price _nullPK = new Price(new int[]{4037}, new int[]{10}); private static Price _clanlvl8 = new Price(new int[]{4037}, new int[]{15}); private static Price _crp10k = new Price(new int[]{4037}, new int[]{3}); private String colorTable = ""; private String colorTable2 = ""; public ServiceManager() { super(-1, qn, "quests"); // ================= ЦЕНЫ НА ДВОРЯНСТВО ======== // дни, new Price(new int[] {через , ИД предметов},new int[] {через , количество}); _premiumPrice.put(1, new Price(new int[]{4037}, new int[]{3})); _premiumPrice.put(3, new Price(new int[]{4037}, new int[]{7})); _premiumPrice.put(7, new Price(new int[]{4037}, new int[]{15})); // ================ ЦЕНЫ НА ГЕРОИЗМ =============== _heroPrice.put(3, new Price(new int[]{4037}, new int[]{12})); _heroPrice.put(7, new Price(new int[]{4037}, new int[]{28})); _heroPrice.put(14, new Price(new int[]{4037}, new int[]{50})); _heroPrice.put(21, new Price(new int[]{4037}, new int[]{70})); _heroPrice.put(31, new Price(new int[]{4037}, new int[]{100})); // Таблица цветов из 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"); colorTable += "<tr>"; colorTable2 += "<tr>"; for (int i = 0; i < colors.length; i++) { colorTable += "<td><a action=\"bypass -h Quest " + qn + " color " + colors[i] + "\"><font color=\"" + colors[i] + "\">%name%</font></a></td>"; colorTable2 += "<td><a action=\"bypass -h Quest " + qn + " color2 " + colors[i] + "\"><font color=\"" + colors[i] + "\">%name%</font></a></td>"; } colorTable += "</tr>"; colorTable2 += "</tr>"; } lnr.close(); } catch (Exception e) { System.out.println("Error reading " + f.getParent() + "/colors.table"); } } private boolean checkMoney(L2PcInstance player, Price price) { for (int i = 0; i < price._itemId.length; 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 < price._itemId.length; i++) // Отнимаем средства у населения { if (!player.destroyItemByItemId(qn, price._itemId[i], price._prices[i], 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 = "<html><body><br>Покупка премиума:<br><center>"; for (int days : _premiumPrice.keySet()) { html += "<a action=\"bypass -h Quest " + qn + " premium " + days + "\">На " + days + " дней</a> -"; Price price = _premiumPrice.get(days); for (int i = 0; i < price._itemId.length; i++) { // Формируем список стоимости if (i != 0) // Добавляем , { html += ","; } html += price._prices[i] + " " + ItemTable.getInstance().getTemplate(price._itemId[i]).getName(); } } html += "</center></body></html>"; return html; } else if (args[0].equals("herolist")) { // Список достпуного геройства, аналогично премиуму return "herolist.htm"; } else if (args[0].equals("nothing")) { // Список достпуного геройства, аналогично премиуму return "nothing.htm"; } else if (args[0].equals("premium")) { // Выдаем премиум if (player.getPremiumService() != 0) // Проверяем а не премимум ли чар? { return "already-premium"+player.getLang()+".htm"; } int numDays = 0; Price price = null; try { numDays = Integer.parseInt(args[1]); // В Java массивы нумеруются с 0 price = _premiumPrice.get(numDays); // Ищем цену в списке цен } catch (Exception e) { price = null; } if (price == null) // Не нашли. Что-то тут не то... { return "invalid-param"+player.getLang()+".htm"; } if (!checkMoney(player, price)) // Проверяем деньги { return "no-money"+player.getLang()+".htm"; } PcAction.addPremiumServices(player, numDays, player.getAccountName()); // Выдаем премиум Log.donate("Premium", player.getFingerPrints()); // Показываем .premium меню IVoicedCommandHandler premium = VoicedCommandHandler.getInstance().getVoicedCommandHandler("premium"); if (premium != null) { premium.useVoicedCommand("premium", player, null); } else { return "success"+player.getLang()+".htm"; } } else if (args[0].equals("noblese")) { // Дворянство if (player.isNoble()) // Игрок уже нубл { return "already-noble"+player.getLang()+".htm"; } if (!checkMoney(player, _NoblesPrice)) // Проверяем Деньги { return "no-money"+player.getLang()+".htm"; } player.setNoble(true); // Даем нубла Log.donate("Noble", player.getFingerPrints()); return "success"+player.getLang()+".htm"; } else if (args[0].equals("service")) { return "service"+player.getLang()+".htm"; } else if (args[0].equals("shop")) { return "shop"+player.getLang()+".htm"; } else if (args[0].equals("nullpk")) { return "nullpk"+player.getLang()+".htm"; } else if (args[0].equals("clan")) { return "clan"+player.getLang()+".htm"; } else if (args[0].equals("skills")) { if (!player.isClanLeader()) // Игрок не кланлидер { return "noclan-leader"+player.getLang()+".htm"; } if (!checkMoney(player, _ClanSkills)) // Проверяем Деньги { return "no-money"+player.getLang()+".htm"; } player.getClan().addNewSkill(SkillTable.getInstance().getInfo(370,3)); player.getClan().addNewSkill(SkillTable.getInstance().getInfo(371,3)); player.getClan().addNewSkill(SkillTable.getInstance().getInfo(372,3)); player.getClan().addNewSkill(SkillTable.getInstance().getInfo(373,3)); player.getClan().addNewSkill(SkillTable.getInstance().getInfo(374,3)); player.getClan().addNewSkill(SkillTable.getInstance().getInfo(375,3)); player.getClan().addNewSkill(SkillTable.getInstance().getInfo(376,3)); player.getClan().addNewSkill(SkillTable.getInstance().getInfo(377,3)); player.getClan().addNewSkill(SkillTable.getInstance().getInfo(378,3)); player.getClan().addNewSkill(SkillTable.getInstance().getInfo(379,3)); player.getClan().addNewSkill(SkillTable.getInstance().getInfo(380,3)); player.getClan().addNewSkill(SkillTable.getInstance().getInfo(381,3)); player.getClan().addNewSkill(SkillTable.getInstance().getInfo(382,3)); player.getClan().addNewSkill(SkillTable.getInstance().getInfo(383,3)); player.getClan().addNewSkill(SkillTable.getInstance().getInfo(384,3)); player.getClan().addNewSkill(SkillTable.getInstance().getInfo(385,3)); player.getClan().addNewSkill(SkillTable.getInstance().getInfo(386,3)); player.getClan().addNewSkill(SkillTable.getInstance().getInfo(387,3)); player.getClan().addNewSkill(SkillTable.getInstance().getInfo(388,3)); player.getClan().addNewSkill(SkillTable.getInstance().getInfo(389,3)); player.getClan().addNewSkill(SkillTable.getInstance().getInfo(390,3)); player.getClan().addNewSkill(SkillTable.getInstance().getInfo(391,1)); player.getClan().broadcastToOnlineMembers(new PledgeSkillList(player.getClan())); player.sendPacket(new PlaySound("ItemSound.quest_finish")); Log.donate("HeroStatus", player.getFingerPrints()); return "success"+player.getLang()+".htm"; } else if (args[0].equals("hero")) { // Геройство if (player.isHero()) { return "already-hero"+player.getLang()+".htm"; } int numDays = 0; Price price = null; try { numDays = Integer.parseInt(args[1]); // В Java массивы нумеруются с 0 price = _premiumPrice.get(numDays); // Ищем цену в списке цен } catch (Exception e) { price = null; } if (price == null) // Не нашли. Что-то тут не то... { return "invalid-param"+player.getLang()+".htm"; } if (!checkMoney(player, price)) // Проверяем Деньги { return "no-money"+player.getLang()+".htm"; } PcAction.addHeroStatus(player, numDays); // Даем героя России. Log.donate("HeroStatus", player.getFingerPrints()); return "success"+player.getLang()+".htm"; } else if (args[0].equals("colorlist")) { // Список цветов String prices = ""; for (int i = 0; i < _colorPrice._itemId.length; i++) // Проверяем средства { prices += _colorPrice._prices[i] + " " + ItemTable.getInstance().getItemName(_colorPrice._itemId[i]) + "<br>"; } return "<html><body><center>Цвет ника<br><br>Стоимость услуги: " + prices + "<br>" + "<button value=\"Продолжить\" action=\"bypass -h Quest ServiceManager colorlistok\" width=93 height=22 back=\"saitan.But2\" fore=\"saitan.But3\"></center></body></html>."; } else if (args[0].equals("colorlistok")) { // Список цветов String html = "<html><body><br>Выбор цвета<table width=220>"; html += (colorTable.replace("%name%", player.getName())); html += "</table></body></html>"; return html; } else if (args[0].equals("color")) { //Смена цвета if (!checkMoney(player, _colorPrice)) { return "no-money"+player.getLang()+".htm"; } int color = 0; /* try { String nicknamess = (new TextBuilder(""+args[1])).reverse().toString(); color = Integer.decode((new StringBuilder()).append("0x").append(nicknamess).toString()); } catch (Exception e) { color = 0; } if (color == 0) // Не нашли. Что-то тут не то... { return "invalid-param"+player.getLang()+".htm"; } */ try { color = Integer.parseInt(args[1], 16); // Получаем цвет и меняем старший и младший байты } catch (Exception e) { color = 0; } if (color == 0) // Не нашли. Что-то тут не то... { return "invalid-param.htm"; } color = (color & 0xFF) << 16 | (color & 0xff0000) >> 16 | (color & 0xff00); // Меняем цвет и посылаем всем пакет что цвет сменен player.getAppearance().setNameColor(color); player.broadcastFullInfo(); Log.donate("Color", player.getFingerPrints() + ", NameColor: " + args[1]); return "success"+player.getLang()+".htm"; } else if (args[0].equals("colorlist2")) { // Список цветов String prices = ""; for (int i = 0; i < _colorPrice._itemId.length; i++) // Проверяем средства { prices += _colorPrice._prices[i] + " " + ItemTable.getInstance().getItemName(_colorPrice._itemId[i]) + "<br>"; } return "<html><body><center>Цвет ника<br><br>Стоимость услуги: " + prices + "<br>" + "<button value=\"Продолжить\" action=\"bypass -h Quest ServiceManager colorlist2ok\" width=93 height=22 back=\"saitan.But2\" fore=\"saitan.But3\"></center></body></html>."; } else if (args[0].equals("colorlist2ok")) { // Список цветов String html = "<html><body><br>Выбор цвета<table width=220>"; html += (colorTable2.replace("%name%", player.getName())); html += "</table></body></html>"; return html; } else if (args[0].equals("color2")) { //Смена цвета if (!checkMoney(player, _colorPrice)) { return "no-money"+player.getLang()+".htm"; } int color = 0; /* try { String nicknamess = (new TextBuilder(""+args[1])).reverse().toString(); color = Integer.decode((new StringBuilder()).append("0x").append(nicknamess).toString()); } catch (Exception e) { color = 0; } if (color == 0) // Не нашли. Что-то тут не то... { return "invalid-param"+player.getLang()+".htm"; } */ try { color = Integer.parseInt(args[1], 16); // Получаем цвет и меняем старший и младший байты } catch (Exception e) { color = 0; } if (color == 0) // Не нашли. Что-то тут не то... { return "invalid-param.htm"; } color = (color & 0xFF) << 16 | (color & 0xff0000) >> 16 | (color & 0xff00); // Меняем цвет и посылаем всем пакет что цвет сменен player.getAppearance().setTitleColor(color); player.broadcastFullInfo(); Log.donate("Color", player.getFingerPrints() + ", TitleColor: " + args[1]); return "success"+player.getLang()+".htm"; } else if (args[0].equals("htmsetname")) { // Смена ника return "setnamehtm"+player.getLang()+".htm"; } else if (args[0].equals("setname")) { // Смена ника /*String nick = args[1]; if (nick.contains("?") || nick.contains("/") || nick.contains(";") || nick.contains(" ") || nick.contains(",")) { player.sendMessage("Ник не может содержать ? или ; или , или /");//Проверили на некоторые символы, вернули страницу ошибки return "invalid-param.htm"; } if (player.isClanLeader()) { player.sendMessage("Передайте клан другому персонажу на время смены ника!");//Проверили на Клство return "invalid-param.htm"; } if (!checkMoney(player, _setNamePrice)) // Проверяем Деньги { return "no-money.htm"; } player.setName(nick);// даем новый ник player.broadcastFullInfo(); player.sendMessage("Ваш ник удачно изменен на " + nick); return "success.htm";*/ return "invalid-param"+player.getLang()+".htm"; } else if (args[0].equals("nullpk")) { // Обнуление пк и кармы String prices = ""; for (int i = 0; i < _nullPK._itemId.length; i++) // Проверяем средства { prices += _nullPK._prices[i] + " " + ItemTable.getInstance().getItemName(_nullPK._itemId[i]) + "<br>"; } return "<html><body><center>Обнуление ПК<br><br>Стоимость услуги: " + prices + "<br>" + "<button value=\"Продолжить\" action=\"bypass -h Quest ServiceManager nullpkok\" width=93 height=22 back=\"saitan.But2\" fore=\"saitan.But3\"></body></center></html>."; } else if (args[0].equals("nullpkok")) { // Обнуление пк и кармы if (player.getPkKills() == 0) { // У игрока 0 пк player.sendMessage("У вас 0 ПК"); return "invalid-param"+player.getLang()+".htm"; } if (!checkMoney(player, _nullPK)) // Проверяем Деньги { return "no-money"+player.getLang()+".htm"; } player.setPkKills(0); // Обнуляем ПК player.setKarma(0); // Обнуляем карму player.sendMessage("Теперь у вас 0 ПК и 0 кармы!"); Log.donate("nullpk", player.getFingerPrints()); //return "<html><body><center><br><br>Теперь у вас 0 ПК и 0 кармы!<img src=\"l2ui.squaregray\" width=\"295\" height=\"1\"><br><br><tr><td><button value=\"Назад\" action=\"bypass -h Quest ServiceManager\" width=93 height=22 back=\"saitan.But2\" fore=\"saitan.But3\"></td></tr></center></body></html>."; return "success"+player.getLang()+".htm"; } else if (args[0].equals("clanlvl8")) { // 8 clan lvl if (player.getClan() == null || player.getClan().getLevel() < 5) //клан больше 5? { player.sendMessage("Уровень клана должен быть 5 или выше!"); //return "invalid-param"+player.getLang()+".htm"; return "<html><body><center><br><br>Уровень клана должен быть 5 или выше!<img src=\"l2ui.squaregray\" width=\"295\" height=\"1\"><br><br><tr><td><button value=\"Назад\" action=\"bypass -h Quest ServiceManager\" width=93 height=22 back=\"saitan.But2\" fore=\"saitan.But3\"></td></tr></center></body></html>."; } if (player.getClan() == null || player.getClan().getLevel() >= 8) //клан больше 5? { player.sendMessage("Уровень клана должен быть меньше 8 лвл!"); //return "invalid-param"+player.getLang()+".htm"; return "<html><body><center><br><br>Уровень клана должен быть меньше 8 лвл!<img src=\"l2ui.squaregray\" width=\"295\" height=\"1\"><br><br><tr><td><button value=\"Назад\" action=\"bypass -h Quest ServiceManager\" width=93 height=22 back=\"saitan.But2\" fore=\"saitan.But3\"></td></tr></center></body></html>."; } if (!checkMoney(player, _clanlvl8)) // Проверяем Деньги { return "no-money"+player.getLang()+".htm"; } player.getClan().changeLevel(8); // Делаем 8 лвл клану player.getClan().store(); player.sendMessage("Уровень клана: "+player.getClan().getLevel()+" лвл."); Log.donate("clanlvl8", player.getFingerPrints()); return "success"+player.getLang()+".htm"; } else if (args[0].equals("crp10k")) { // клан 10k crp if (player.getClan() == null || player.getClan().getLevel() <= 5) //клан больше 5? { player.sendMessage("Уровень клана должен быть 6 или выше!"); //return "invalid-param"+player.getLang()+".htm"; return "<html><body><center><br><br>Уровень клана должен быть 5 или выше!<img src=\"l2ui.squaregray\" width=\"295\" height=\"1\"><br><br><tr><td><button value=\"Назад\" action=\"bypass -h Quest ServiceManager\" width=93 height=22 back=\"saitan.But2\" fore=\"saitan.But3\"></td></tr></center></body></html>."; } if (!checkMoney(player, _crp10k)) // Проверяем Деньги { return "no-money"+player.getLang()+".htm"; } player.getClan().setReputationScore(player.getClan().getReputationScore() + 10000, true); // даем 10к крп //player.getClan().store(); player.sendMessage("Репутация клана: "+player.getClan().getReputationScore()+" очков."); Log.donate("crp10k", player.getFingerPrints()); return "success"+player.getLang()+".htm"; } else if (event.startsWith("lang")) { try { player.setChatLanguage(Integer.parseInt(event.substring(5))); } catch (Exception e) { } } return "hello"+player.getLang()+".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 "hello"+player.getLang()+".htm"; } public static void main(String[] args) { ServiceManager ps = new ServiceManager(); ps.addFirstTalkId(50016); // Мы не хотим писать диалог для этого НПЦ ps.addStartNpc(50016); // Автоматический контроль состояния квеста ps.addTalkId(50016); // NPC с которым можно говорить. } }
  10. KOltin

    ПА скилы

    Добрый всем день. При покупке ПА не добавляется скил ноблеса, появляется он только после ап лвла. в какую сторону копать подскажите?)
  11. KOltin

    Дроп FA

    спасибо нашел в файле settings_test.properties # Список итемов, запрещенных к дропу # Пример = 4037,6673 #!!Для отключения = off ForbiddenDropItems = 4037,6673
  12. KOltin

    Дроп FA

    Всем здрасте. Небольшая проблемка которую походу сам буду очень долго решать. Не дропается FA. Добавляю в базу custom droplist дроп ФА с определенного моба - эффекта ноль. Добавляю в базу droplist дроп ФА с определенного моба - эффекта ноль. Добавляю дроп ФА через шифт - эффекта ноль. Хотя тот же Silver Shilen при добавлении дропается без проблем (хотя шанс стоит 100%, а падает все равно не с каждого моба (через моба или два))
  13. есть еще варианты?
  14. Exception in thread "main" java.lang.RuntimeException: java.net.BindException: Cannot assign requested address: bind at ru.catssoftware.gameserver.L2GameServer.<init>(L2GameServer.java:543) at ru.catssoftware.gameserver.L2GameServer.main(L2GameServer.java:186) Caused by: java.net.BindException: Cannot assign requested address: bind at sun.nio.ch.Net.bind0(Native Method) at sun.nio.ch.Net.bind(Unknown Source) at sun.nio.ch.Net.bind(Unknown Source) at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source) at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source) at ru.catssoftware.commons.lw.net.SelectorThread.openServerSocket(SelectorThread.java:79) at ru.catssoftware.gameserver.L2GameServer.<init>(L2GameServer.java:538) ... 1 more всем добра. в чем трабла с ГС?))
×
×
  • Создать...