-
Публикаций
165 -
Зарегистрирован
-
Посещение
-
Отзывы
0%
Тип контента
Профили
Форумы
Загрузки
Магазин
Инструкции
Весь контент HolySaint
-
Дек не работает если addFirstTalkId(NPC); удалить, а если оставить перебивает диалоги гм шопа. Как эту привязку удалить?
-
Помочь не чем? Только отдельного NPC ставить что ли?
-
И вот тут меня осенило... Когда я ставил этого NPC в скрипте была запись addFirstTalkId(NPC); и лежали файлы HTML рядом со скриптом, я не стал марочиться и ставить отдельного NPC удалил строчку addFirstTalkId(NPC); посмотрел как происходят запросы на баипасс изменил NPC id в настройке, запустил гс, заспаунил, проверил все работает и забыл! А когда пошли игроки тут то оно и всплыло! Но почему? Что решает строчка addFirstTalkId(NPC); ? ПОчему не принимает байпассы с ID с настроики? И если оставлять addFirstTalkId(NPC) она перебивает HTML гм шопа. Понаписал чего то...
-
Исходя из этапов значит нет, но все таки запускаются каким то образом html с выбором этих скилов.
-
Будут еще какие то идей? Я вот точно не понимаю почему так происходит?
-
Не канает) Те же самые права на других админах и не канает.
-
Расставил так не до конца, но даже так не проходит не одного этапа чистым твинком! Админом 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) { } } } }
-
В обще понял как должно было быть, но вышло так что до updateAugment дело не доходит если пробовать с чистого твинка. А если все делать с админа с 1 чара на серве все как надо и этап 1 показывает в чат и ГС фиксирует все. Значит проблема еще где то начала всего этого.
-
Не пишет не чего и не где. Не в чат не в логи. private static void updateAugment(L2PcInstance player, int attributes, int skill, int level) { System.out.println("начало updateAugment()"); player.sendMessage("Этап 1 пройден");
-
Так? 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("текст лога"); }
-
Аааааааааа ну почему нельзя сразу ткнуть носом как надо? Спарсил 10 страниц гугла так и не понял куда это воткнуть. При копи пасте ГС матерится ошибками! Просто помогите и покажите дальше я буду знать, и в следующий раз буду вопрос ставить корректнее т.к уже буду понимать что меня научили это делать!
-
Прошу прощения за мою безграмотность, но куда это вставить?
-
Не могу сказать т.к не могу посмотреть. Как логирование включить?
-
Честно я не знаю как сделать что бы лог писался, но диалоги показывает все т.е выбор скила.
-
Всем привет. Не работает у всех 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) { } } } }
-
Гуглю прежде чем писать, но на примерах легче учиться. Благодарю.
-
Я не мастер, я только учусь. Если делать так DELETE FROM droplist WHERE itemId='6673,8762'; удаляет все и у всех вот и пихаю так везде. Если даже использовать один ID все равно не удаляет.
-
Пруфы 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;
-
Всем привет. Подскажите не могу разобраться с запросом. Мне нужно удалить и дропа ЛС и ФА из всех мобов кроме РБ. 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'); - выполняется, но не чего не удаляет. С меня +
-
При установке на дедик и зажатий скила например battle heal на секунд 10 и отпустить начинаются лаги которые проходят только через 5-8 сек. Куда копнуть исправить?
-
Импорты на свои переделай
-
В клиенте надо это все править. Анимация у любого скила пропадет при большом касте.
-
Всем привет. Сделал тестовый сервер на приватной сборке 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 На сервере включена авторегистрация. Гео дата отключена.
-
хз все норм
-
Не знаю. Импорты проверь. Ники исправил?