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

HolySaint

Постоялец
  • Публикаций

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

  • Посещение

  • Отзывы

    0%

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

  1. HolySaint

    AugmentShop

    Дек не работает если addFirstTalkId(NPC); удалить, а если оставить перебивает диалоги гм шопа. Как эту привязку удалить?
  2. HolySaint

    AugmentShop

    Помочь не чем? Только отдельного NPC ставить что ли?
  3. HolySaint

    AugmentShop

    И вот тут меня осенило... Когда я ставил этого NPC в скрипте была запись addFirstTalkId(NPC); и лежали файлы HTML рядом со скриптом, я не стал марочиться и ставить отдельного NPC удалил строчку addFirstTalkId(NPC); посмотрел как происходят запросы на баипасс изменил NPC id в настройке, запустил гс, заспаунил, проверил все работает и забыл! А когда пошли игроки тут то оно и всплыло! Но почему? Что решает строчка addFirstTalkId(NPC); ? ПОчему не принимает байпассы с ID с настроики? И если оставлять addFirstTalkId(NPC) она перебивает HTML гм шопа. Понаписал чего то...
  4. HolySaint

    AugmentShop

    Исходя из этапов значит нет, но все таки запускаются каким то образом html с выбором этих скилов.
  5. HolySaint

    AugmentShop

    Будут еще какие то идей? Я вот точно не понимаю почему так происходит?
  6. HolySaint

    AugmentShop

    Не канает) Те же самые права на других админах и не канает.
  7. HolySaint

    AugmentShop

    Расставил так не до конца, но даже так не проходит не одного этапа чистым твинком! Админом 1-вым чаром как обычно до конца все идет. package custom.AugmentShop; import ru.catssoftware.L2DatabaseFactory; import ru.catssoftware.gameserver.model.L2ItemInstance; import ru.catssoftware.gameserver.model.actor.instance.L2NpcInstance; import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance; import ru.catssoftware.gameserver.model.itemcontainer.Inventory; import ru.catssoftware.gameserver.model.quest.Quest; import ru.catssoftware.gameserver.model.quest.QuestState; import java.sql.Connection; import java.sql.PreparedStatement; public class AugmentShop extends Quest { private final static int ITEM_ID = 4037; /*id за продажу*/ private final static int ITEM_COUNT = 40; /*Укажите цену*/ private final static String qn = "AugmentShop"; private final static int NPC = 53; /*Укжите npc id;*/ public AugmentShop(int questId, String name, String descr) { super(questId, name, descr); addStartNpc(NPC); addTalkId(NPC); } @Override public String onAdvEvent(String event, L2NpcInstance npc, L2PcInstance player) { String htmltext = ""; player.sendMessage("Этап 1 пройден"); if (event.equalsIgnoreCase("active")) { htmltext = "active.htm"; } else if (event.equalsIgnoreCase("passive")) { htmltext = "passive.htm"; } else { player.sendMessage("Этап 2 пройден"); updateAugment(player, Integer.parseInt(event.substring(0,5)), Integer.parseInt(event.substring(6,10)), Integer.parseInt(event.substring(11,13))); } return htmltext; } @Override public String onFirstTalk(L2NpcInstance npc, L2PcInstance player) { String htmltext = ""; player.sendMessage("Этап 3 пройден"); QuestState qs = player.getQuestState(qn); if (qs == null) qs = newQuestState(player); htmltext = "main.htm"; player.sendMessage("Этап 4 пройден"); return htmltext; } public static void main(String[] args) { new AugmentShop(-1, qn, "AugmentShop"); } private static void updateAugment(L2PcInstance player, int attributes, int skill, int level) { player.sendMessage("Этап 5 пройден"); L2ItemInstance item = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND); if (player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND) == null) { player.sendMessage("Этап 6 пройден"); player.sendMessage("Вы должны надеть оружие."); player.sendMessage("Этап 7 пройден"); return; } if (item.isHeroItem()) { player.sendMessage("Этап 8 пройден"); player.sendMessage("Вы не можете вставить в геройское оружие Life Stone."); player.sendMessage("Этап 9 пройден"); return; } if (player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND).isAugmented()) { player.sendMessage("Этап 10 пройден"); player.sendMessage("Для начала удалите Life Stone!"); player.sendMessage("Этап 11 пройден"); return; } if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) < ITEM_COUNT) { player.sendMessage("Этап 12 пройден"); player.sendMessage("Грустно, но у вас нет Coin Of Luck. Или вам не хватает!"); player.sendMessage("Этап 13 пройден"); return; } Connection con = null; try { player.destroyItemByItemId("Consume", ITEM_ID, ITEM_COUNT, player, true); con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("REPLACE INTO item_attributes VALUES(?,?,?,?)"); statement.setInt(1, item.getObjectId()); statement.setInt(2, attributes*65536+1); statement.setInt(3, skill); statement.setInt(4, level); statement.executeUpdate(); player.sendMessage("Покупка прошла успешно. Вы должны перезайти теперь."); statement.close(); } catch (Exception e) { _log.warn("Не могли дополнить пунктом: "+item.getObjectId()+" "+ e); } finally { try { /*L2DatabaseFactory.close(con);*/ con.close(); } catch (Exception e) { } } } }
  8. HolySaint

    AugmentShop

    В обще понял как должно было быть, но вышло так что до updateAugment дело не доходит если пробовать с чистого твинка. А если все делать с админа с 1 чара на серве все как надо и этап 1 показывает в чат и ГС фиксирует все. Значит проблема еще где то начала всего этого.
  9. HolySaint

    AugmentShop

    Не пишет не чего и не где. Не в чат не в логи. private static void updateAugment(L2PcInstance player, int attributes, int skill, int level) { System.out.println("начало updateAugment()"); player.sendMessage("Этап 1 пройден");
  10. HolySaint

    AugmentShop

    Так? else { System.out.println("текст лога"); updateAugment(player, Integer.parseInt(event.substring(0,5)), Integer.parseInt(event.substring(6,10)), Integer.parseInt(event.substring(11,13))); System.out.println("текст лога"); }
  11. HolySaint

    AugmentShop

    Аааааааааа ну почему нельзя сразу ткнуть носом как надо? Спарсил 10 страниц гугла так и не понял куда это воткнуть. При копи пасте ГС матерится ошибками! Просто помогите и покажите дальше я буду знать, и в следующий раз буду вопрос ставить корректнее т.к уже буду понимать что меня научили это делать!
  12. HolySaint

    AugmentShop

    Прошу прощения за мою безграмотность, но куда это вставить?
  13. HolySaint

    AugmentShop

    Не могу сказать т.к не могу посмотреть. Как логирование включить?
  14. HolySaint

    AugmentShop

    Честно я не знаю как сделать что бы лог писался, но диалоги показывает все т.е выбор скила.
  15. HolySaint

    AugmentShop

    Всем привет. Не работает у всех AugmentShop за исключением 1 персонажа который был сделан первым и является админом. На нем все прекрасно работает вставляет любой скил в любую пушку, но остальным не ошибок не диалогов не показывает. Бывает что говорит "Выберите вещь, которую нужно улучшить." хотя чистая пуха одета. Что тут не так? package custom.AugmentShop; import ru.catssoftware.L2DatabaseFactory; import ru.catssoftware.gameserver.model.L2ItemInstance; import ru.catssoftware.gameserver.model.actor.instance.L2NpcInstance; import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance; import ru.catssoftware.gameserver.model.itemcontainer.Inventory; import ru.catssoftware.gameserver.model.quest.Quest; import ru.catssoftware.gameserver.model.quest.QuestState; import java.sql.Connection; import java.sql.PreparedStatement; public class AugmentShop extends Quest { private final static int ITEM_ID = 4037; /*id за продажу*/ private final static int ITEM_COUNT = 15; /*Укажите цену*/ private final static String qn = "AugmentShop"; private final static int NPC = 53; /*Укжите npc id;*/ public AugmentShop(int questId, String name, String descr) { super(questId, name, descr); addStartNpc(NPC); addTalkId(NPC); } @Override public String onAdvEvent(String event, L2NpcInstance npc, L2PcInstance player) { String htmltext = ""; if (event.equalsIgnoreCase("active")) { htmltext = "active.htm"; } else if (event.equalsIgnoreCase("passive")) { htmltext = "passive.htm"; } else { updateAugment(player, Integer.parseInt(event.substring(0,5)), Integer.parseInt(event.substring(6,10)), Integer.parseInt(event.substring(11,13))); } return htmltext; } @Override public String onFirstTalk(L2NpcInstance npc, L2PcInstance player) { String htmltext = ""; QuestState qs = player.getQuestState(qn); if (qs == null) qs = newQuestState(player); htmltext = "main.htm"; return htmltext; } public static void main(String[] args) { new AugmentShop(-1, qn, "AugmentShop"); } private static 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) { player.sendMessage("Вы должны надеть оружие."); return; } if (item.isHeroItem()) { player.sendMessage("Вы не можете вставить в геройское оружие Life Stone."); return; } if (player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND).isAugmented()) { player.sendMessage("Для начала удалите Life Stone!"); return; } if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) < ITEM_COUNT) { player.sendMessage("Грустно, но у вас нет Coin Of Luck. Или вам не хватает!"); return; } Connection con = null; try { player.destroyItemByItemId("Consume", ITEM_ID, ITEM_COUNT, player, true); con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("REPLACE INTO item_attributes VALUES(?,?,?,?)"); statement.setInt(1, item.getObjectId()); statement.setInt(2, attributes*65536+1); statement.setInt(3, skill); statement.setInt(4, level); statement.executeUpdate(); player.sendMessage("Покупка прошла успешно. Вы должны перезайти теперь."); statement.close(); } catch (Exception e) { _log.warn("Не могли дополнить пунктом: "+item.getObjectId()+" "+ e); } finally { try { /*L2DatabaseFactory.close(con);*/ con.close(); } catch (Exception e) { } } } }
  16. Гуглю прежде чем писать, но на примерах легче учиться. Благодарю.
  17. Я не мастер, я только учусь. Если делать так DELETE FROM droplist WHERE itemId='6673,8762'; удаляет все и у всех вот и пихаю так везде. Если даже использовать один ID все равно не удаляет.
  18. Пруфы 6673 и 8762 были добавлены ранее в дроп. CREATE TABLE `npc` ( `id` decimal(11,0) NOT NULL DEFAULT '0', `idTemplate` int(11) NOT NULL DEFAULT '0', `name` varchar(200) DEFAULT NULL, `serverSideName` int(1) DEFAULT '0', `title` varchar(45) DEFAULT '', `serverSideTitle` int(1) DEFAULT '0', `race` int(11) NOT NULL DEFAULT '-1', `collision_radius` decimal(5,2) DEFAULT NULL, `collision_height` decimal(5,2) DEFAULT NULL, `level` decimal(2,0) DEFAULT NULL, `sex` varchar(6) DEFAULT NULL, `type` varchar(20) DEFAULT NULL, `attackrange` int(11) DEFAULT NULL, `hp` decimal(8,0) DEFAULT NULL, `mp` decimal(8,0) DEFAULT NULL, `hpreg` decimal(8,2) DEFAULT NULL, `mpreg` decimal(5,2) DEFAULT NULL, `str` decimal(7,0) DEFAULT NULL, `con` decimal(7,0) DEFAULT NULL, `dex` decimal(7,0) DEFAULT NULL, `int` decimal(7,0) DEFAULT NULL, `wit` decimal(7,0) DEFAULT NULL, `men` decimal(7,0) DEFAULT NULL, `exp` decimal(9,0) DEFAULT NULL, `sp` decimal(8,0) DEFAULT NULL, `patk` decimal(5,0) DEFAULT NULL, `pdef` decimal(5,0) DEFAULT NULL, `matk` decimal(5,0) DEFAULT NULL, `mdef` decimal(5,0) DEFAULT NULL, `atkspd` decimal(3,0) DEFAULT NULL, `aggro` decimal(6,0) DEFAULT NULL, `matkspd` decimal(4,0) DEFAULT NULL, `rhand` decimal(5,0) DEFAULT NULL, `lhand` decimal(5,0) DEFAULT NULL, `armor` decimal(1,0) DEFAULT NULL, `walkspd` decimal(3,0) DEFAULT NULL, `runspd` decimal(3,0) DEFAULT NULL, `faction_id` varchar(40) DEFAULT NULL, `faction_range` decimal(4,0) DEFAULT NULL, `isUndead` int(11) DEFAULT '0', `absorb_level` decimal(2,0) DEFAULT '0', `absorb_type` enum('FULL_PARTY','LAST_HIT','PARTY_ONE_RANDOM') NOT NULL DEFAULT 'LAST_HIT', `ss` int(4) DEFAULT '0', `bss` int(4) DEFAULT '0', `ss_rate` int(3) DEFAULT '0', `AI` varchar(8) DEFAULT 'fighter', `drop_herbs` enum('true','false') NOT NULL DEFAULT 'false', PRIMARY KEY (`id`), KEY `I_npc_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `droplist` ( `mobId` int(11) NOT NULL DEFAULT '0', `itemId` int(11) NOT NULL DEFAULT '0', `min` int(11) NOT NULL DEFAULT '0', `max` int(11) NOT NULL DEFAULT '0', `category` int(11) NOT NULL DEFAULT '0', `chance` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`mobId`,`itemId`,`category`), KEY `key_mobId` (`mobId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  19. Всем привет. Подскажите не могу разобраться с запросом. Мне нужно удалить и дропа ЛС и ФА из всех мобов кроме РБ. DELETE FROM droplist WHERE itemId='6673,8762' FROM npc WHERE type='L2Monster'; - не работает. DELETE FROM droplist WHERE itemId='6673,8762' IN (SELECT id FROM npc WHERE type='L2Monster'); - выполняется, но не чего не удаляет. С меня +
  20. При установке на дедик и зажатий скила например battle heal на секунд 10 и отпустить начинаются лаги которые проходят только через 5-8 сек. Куда копнуть исправить?
  21. Импорты на свои переделай
  22. HolySaint

    Скилы от рб

    В клиенте надо это все править. Анимация у любого скила пропадет при большом касте.
  23. HolySaint

    Нужен спонсор

    Всем привет. Сделал тестовый сервер на приватной сборке l2jLovely. На большее денег нет. Может кто то захочет объединить усилия и вывести проект в свет, то пиши в данную тему или через контакты. Доход от доната 70 (инвестору) на 30. Нужная сумма около 25-35 тыс. рублей. Классический Lineage II Interlude MultiCraft x100 Рейты сервера XP/SP/Adena/Drop/Spoil: 100/100/100/200/200 ПА: x2 Начало игры 5кк аден, Топ НГ шмот. Время баффов 2 часа, 36 слотов, удобные профили Безопасная заточка +3, для цельной брони +4 - макс. на оружие +18, шанс - 65% - макс. на бронь +16, шанс - 65% Саб-класс без квеста, до 5-ти саб-классов Для получение нублесс статуса: - упращеный квест [реагенты в GM Shop] - по офу итем добившеи пати - уровень РБ 80 время возрождения 3 часа Период олимпиады 2 недели, начало в 18:00 - внеклассовые бои 5 регистраций игроков - классовые бои 9 регистраций игроков - ограничение заточки на олимпиаде +6 Осады замков каждые выходные - участвуют все замки - постоянная награда за замок 50 COL Все простые Raid Boss - 80 лвл - время возрождения Raid Boss 12 часов - Top-Grade LS: Level 76, Книги гигантов [шанс дропа 100%] - Клан яйца [шанс дропа 50%] Время возрождения Tyrannosaurus 5 минут - Top-Grade LS: Level 76 [шанс дропа 50%] Все Epic Boss - 80 лвл - время возрождения по офу - шанс выпадения эпик бижутерии по офу - на всех эпиках реализованы АОЕ и ПВП зоны Клановая система по офу Автоматические эвенты каждый час Награды и бонусы за победу в PvP Защита игрока после телепортации 5 сек Конвертация Adena/Gold Bar Дроп FA шанс 10% со всех мобов выше 76 ЛвЛ Шанс поймать скилл с ЛСа: Life - 3%, Mid - 5%, High - 7%, Top - 10% Реализованы осады фортов. Панель управления игроком команда .menu - Привязка аккаунта к компьютеру - Остановка опыта - Регистрация на эвенты - Класс-мастер - и другие полезные функции Mega Boss: - Находится он в локации School of Dark Arts [в центре] - Попасть в локацию можно с помощью Global GK - Респаун 24 часа с момента убийства - Рестор запрещен - Уводится он не будет - Статы босса приравниваются к антарасу с увеличенной регенерацией HP - Реализована PvP/AoE зона - Нублесс статус добившей пати - Хиро статус на сутки добившей пати - Buff Coin [итем для премиум баффа] добившей пати [разрешено иметь только один итем] - Премиум на сутки добившей пати - Coin of Luck - 1-5 [шанс 50%] - Nephilim Lord - 1 [шанс 50%] - Festival Adena - 200 - 500 [шанс 90%] - TOP: Life Stone 76 lvl - 1-5 [шанс 90%] - Book Of Giants - 1-5 [шанс 90%] - Blessed Scroll: Enchant Weapon [Grade A] - 1-5 - шанс 90%] - Blessed Scroll: Enchant Armor [Grade A] - 1-5 [шанс 90%] - Blessed Scroll: Enchant Weapon[Grade S] - 1-5 [шанс 90%] - Blessed Scroll: Enchant Armor [Grade S] - 1-5 [шанс 90%] - Draconic Bow - 1 [шанс 90%] - Arcana Mace - 1 [шанс 90%] - Saint Spear - 1 [шанс 90%] - Heavens Divider - 1 [шанс 90%] Авторестарт сервера 06:00 по Москве Патч: http://rghost.ru/7y7tGlRdl Демо WEB: http://62.109.20.60 На сервере включена авторегистрация. Гео дата отключена.
  24. Не знаю. Импорты проверь. Ники исправил?
×
×
  • Создать...