Серверные дополнения
Дополнения предназначенные для серверной части: датапаки, скрипты, эвенты, гмшопы и прочее
196 файлов
-
Отправлено
-
Отправлено
-
Отправлено
-
Отправлено
-
Отправлено
-
Отправлено
-
.epic интервал спавн
От serfan1
Чуть переделал скрипт .epic (люцера 2\ит.су). Все как на скрине
295 раз скачали
Отправлено
-
Water armor for interlude
От Meov
Всем привет.
Валялось на компе, может кому нужно.
Автора не знаю, к сожалению.
75 раз скачали
Обновлено
-
2 NPC
От Meov
Всем привет.
Выкладываю 2 прикольных НПЦ. Может кому пригодится
Если уже были- извиняйте
112 раза скачали
Отправлено
-
Spawnlist для PWSoft
От Edgar
Было скучно решил разобраться в проблеме с мобоами на PwSoft что моба видно, а атаковать его нельзя, потратил несколько часов ковыряясь в коде, понаписал тьму методов расчета z при спавне, в результате ответ был прост, спавнлист в PW сам по себе кривой. Спавн лист который в данной теме взять с l2jlovely и адаптирован под PW, на нем проблем с мобами нету.
125 раз скачали
Обновлено
-
[Buffer] Старый баффер классического вида
Перезаливаю старый классический баффер от MiddleMan, возможно кому пригодиться.
В архиве html, напутствия от автора по установке, и скрипт самого баффера (под свою сборку переделываем сами).
253 раза скачали
Отправлено
-
Desert eagle
От Satirist
Со старого патча l2deathgame
Три вида ( Heavy , Light , Robe )
96 раз скачали
Отправлено
-
Lineage 2 GeoData Maps Images Salvation 08.08.17
От webdes27
Недавно понадобилась карта квадратов новых хроник но прошерстив интернет не нашел не чего выше хф да и то за частую это хроники ниже выдаваемые за выше. Вот и пришлось в ручную собирать все до кучи, да не тут то было, в последних хрониках иконки всех городов вынесены отдельно от карты и ко всему ещё и с левым фоном который убирается альфой в унреале. Подшаманив повырезав иконки наложив нумерацию квадратов, сетку, вырезанные иконки и подписав все города в ручную получилось что то вот такое, что я и выкладываю вам на обозрение, не идеал но делалось в спехе, может кому и пригодится.
Карта под последние руофф хроники актуальные на 08.07.18
Автор: webdes27
214 раза скачали
Обновлено
-
платные моды lucera2
От
KAZARВсе платные моды которые продовал рут)) либы закодированные, но для умельцев же не составит труда
315 раз скачали
Отправлено
-
Отправлено
-
[PWSOFT] Noobles RaidBoss Teleport
От Supporttw
[PWSOFT] Noobles RaidBoss Teleport - Телепорт по рейдбоссам только для нублесов за Coin of luck
ИД итема и стоимость настраивать здесь nobleTPRaid.java [L2ItemInstance coin = player.getInventory().getItemByItemId(4037);]
82 раза скачали
Отправлено
-
Пароль на персонажа (для люцероподобных)
Доброе утро/день/вечер (смотря кто - когда читает), ув.Пользователи форума!
В прошлом году делал для своего сервера (пароль для персонажей). Брал исходник из шары у †DeMoN†™ и слегка изменил его.
Теперь до ввода дополнительного пароля, персонажу вешается блокировка чата и запрещается торговля.
Так-же добавлены команды: ".cblock" ".cunblock" для блокировки и разблокировки персонажа.
В яве - только учусь, так что, за кракозябры в коде - извеняюсь !
================================================
Папку: "Passkey" копируем в папку в корень "html"
#Создаем в: "ru\catssoftware\gameserver\handler\voicedcommandhandlers\" новый документ: "CharPassKey.java"
Показать контент package ru.catssoftware.gameserver.handler.voicedcommandhandlers; import ru.catssoftware.gameserver.handler.IVoicedCommandHandler; import ru.catssoftware.gameserver.handler.VoicedCommandHandler; import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance; import ru.catssoftware.gameserver.model.restriction.AvailableRestriction; import ru.catssoftware.gameserver.model.restriction.ObjectRestrictions; import ru.catssoftware.gameserver.model.restriction.RestrictionBindClassException; import ru.catssoftware.gameserver.network.serverpackets.NpcHtmlMessage; public class CharPassKey implements IVoicedCommandHandler { public CharPassKey() { } private static final String[] VOICED_COMMANDS = { "cblock", "cunblock" }; public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target) { // Check activeChar if (activeChar == null) return false; if (command.startsWith("cunblock")) { NpcHtmlMessage html = new NpcHtmlMessage(activeChar.getObjectId()); html.setFile("data/html/passkey/charunblock.htm"); activeChar.sendPacket(html); } if (command.startsWith("cblock")) { activeChar.setIsParalyzed(true); activeChar.setTradeRefusal(true); activeChar.sendMessage("[!] Вам заблокирован чат - до аутентификации персонажа."); activeChar.sendMessage("[!] Если вы случайно закрыли окно, введите: .cunblock."); NpcHtmlMessage html = new NpcHtmlMessage(activeChar.getObjectId()); html.setFile("data/html/passkey/charblock.htm"); activeChar.sendPacket(html); if (activeChar == null) return false; try { ObjectRestrictions.getInstance().addRestriction(activeChar, AvailableRestriction.PlayerChat); } catch (RestrictionBindClassException e) { return false; } } return false; } public String getDescription(String command) { if(command.equals("")) return ""; return null; } public String[] getVoicedCommandList() { return VOICED_COMMANDS; } }
Hide
#В: "ru\catssoftware\gameserver\network\clientpackets\EnterWorld.java" добавляем следующее:
Показать контент import ru.catssoftware.gameserver.cache.HtmCache; import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance; import ru.catssoftware.gameserver.model.restriction.AvailableRestriction; import ru.catssoftware.gameserver.model.restriction.ObjectRestrictions; import ru.catssoftware.gameserver.model.restriction.RestrictionBindClassException; import ru.catssoftware.gameserver.network.serverpackets.NpcHtmlMessage; public static void enablePasskey(L2PcInstance activeChar) { activeChar.setIsParalyzed(true); activeChar.setTradeRefusal(true); String str; NpcHtmlMessage localNpcHtmlMessage; if (RequestBypassToServer.getPassKeyEnable(activeChar)) { activeChar.sendMessage("[!] Если вы случайно закрыли окно, введите: .cunblock."); str = HtmCache.getInstance().getHtm("data/html/passkey/login.htm", activeChar); localNpcHtmlMessage = new NpcHtmlMessage(1); localNpcHtmlMessage.setHtml(str); activeChar.sendPacket(localNpcHtmlMessage); localNpcHtmlMessage = null; if (activeChar == null) return; try { ObjectRestrictions.getInstance().addRestriction(activeChar, AvailableRestriction.PlayerChat); } catch (RestrictionBindClassException e) { return; } } else { str = HtmCache.getInstance().getHtm("data/html/passkey/setup.htm", activeChar); localNpcHtmlMessage = new NpcHtmlMessage(1); localNpcHtmlMessage.setHtml(str); activeChar.sendPacket(localNpcHtmlMessage); localNpcHtmlMessage = null; if (activeChar == null) return; try { ObjectRestrictions.getInstance().addRestriction(activeChar, AvailableRestriction.PlayerChat); } catch (RestrictionBindClassException e) { return; } } }
Hide
#В: "ru\catssoftware\gameserver\network\clientpackets\EnterWorld.java" добавляем:
Показать контент import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.StringTokenizer; import ru.catssoftware.Config; import ru.catssoftware.gameserver.cache.HtmCache; import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance; import ru.catssoftware.gameserver.model.restriction.AvailableRestriction; import ru.catssoftware.gameserver.model.restriction.ObjectRestrictions; import ru.catssoftware.gameserver.model.restriction.RestrictionBindClassException; import ru.catssoftware.gameserver.network.serverpackets.NpcHtmlMessage; import ru.catssoftware.tools.codec.Base64; import ru.catssoftware.L2DatabaseFactory; else if (_command.equalsIgnoreCase("pkrecovery")) { String msg = HtmCache.getInstance().getHtm("data/html/passkey/recovery.htm",activeChar); NpcHtmlMessage html = new NpcHtmlMessage(1); html.setHtml(msg); html.replace("%question%", getPassKeyQuestion(activeChar)); activeChar.sendPacket(html); html = null; } else if (_command.startsWith("pkset")) { StringTokenizer st = new StringTokenizer(_command, "]"); if (st.countTokens() != 5) { activeChar.sendMessage("[!] Вы ввели не все данные."); String msg = HtmCache.getInstance().getHtm("data/html/passkey/setup.htm",activeChar); NpcHtmlMessage html = new NpcHtmlMessage(1); html.setHtml(msg); activeChar.sendPacket(html); html = null; return; } String newCommand = st.nextToken(); String pass1 = st.nextToken(); pass1 = pass1.substring(1, pass1.length() - 1); String pass2 = st.nextToken(); pass2 = pass2.substring(1, pass2.length() - 1); String question = st.nextToken(); question = question.substring(1, question.length() - 1); String answer = st.nextToken(); answer = answer.substring(1, answer.length()); if (pass1 == null || pass2 == null || question == null || answer == null) { activeChar.sendMessage("[!] Вы ввели недопустимые символы."); String msg = HtmCache.getInstance().getHtm("data/html/passkey/setup.htm",activeChar); NpcHtmlMessage html = new NpcHtmlMessage(1); html.setHtml(msg); activeChar.sendPacket(html); html = null; return; } if (!pass1.equals(pass2)) { activeChar.sendMessage("[!] Пароли не совпадают. Пожалуйста, проверьте."); activeChar.sendMessage("[!] pass1 = " + pass1 + "."); activeChar.sendMessage("[!] pass2 = " + pass2 + "."); activeChar.sendMessage("[!] Question = " + question + "."); activeChar.sendMessage("[!] answer = " + answer + "."); String msg = HtmCache.getInstance().getHtm("data/html/passkey/setup.htm",activeChar); NpcHtmlMessage html = new NpcHtmlMessage(1); html.setHtml(msg); activeChar.sendPacket(html); html = null; return; } insertPassKeyInformation(activeChar, pass1, question, answer); activeChar.sendMessage("[!] Установлена двухфакторная аутентификация!"); String msg = HtmCache.getInstance().getHtm("data/html/passkey/login.htm",activeChar); NpcHtmlMessage html = new NpcHtmlMessage(1); html.setHtml(msg); activeChar.sendPacket(html); html = null; } else if (_command.startsWith("pklogin")) { StringTokenizer st = new StringTokenizer(_command, " "); if (st.countTokens() != 2) { activeChar.sendMessage("[!] Допущена ошибка при вводе пароля."); String msg = HtmCache.getInstance().getHtm("data/html/passkey/login.htm",activeChar); NpcHtmlMessage html = new NpcHtmlMessage(1); html.setHtml(msg); activeChar.sendPacket(html); html = null; return; } String newCommand = st.nextToken(); String pass = st.nextToken(); Connection con = null; String query = "SELECT passkey FROM passkey WHERE obj_Id = ?"; String pwdindb = "error"; try { con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement ps = con.prepareStatement(query); ps.setInt(1, activeChar.getObjectId()); ResultSet rs = ps.executeQuery(); while (rs.next()) pwdindb = rs.getString(1); rs.close(); ps.close(); ps = null; rs = null; } catch (Exception e) { e.printStackTrace(); } finally { try { con.close(); } catch (SQLException e) { e.printStackTrace(); } con = null; } if (pwdindb.equals(encodePass(pass))) { activeChar.setIsParalyzed(false); activeChar.setTradeRefusal(false); try { ObjectRestrictions.getInstance().removeRestriction(activeChar, AvailableRestriction.PlayerChat); } catch (Exception e) { e.printStackTrace(); return; } } else { activeChar.sendMessage("[!] Неправильный пароль от персонажа."); String msg = HtmCache.getInstance().getHtm("data/html/passkey/login.htm",activeChar); NpcHtmlMessage html = new NpcHtmlMessage(1); html.setHtml(msg); activeChar.sendPacket(html); html = null; return; } } else if (_command.startsWith("pkrec")) { StringTokenizer st = new StringTokenizer(_command, " "); if (st.countTokens() != 4) { activeChar.sendMessage("[!] Допущена ошибка при вводе данных!"); String msg = HtmCache.getInstance().getHtm("data/html/passkey/recovery.htm",activeChar); NpcHtmlMessage html = new NpcHtmlMessage(1); html.setHtml(msg); html.replace("%question%", getPassKeyQuestion(activeChar)); activeChar.sendPacket(html); html = null; return; } String newCommand = st.nextToken(); String answer = st.nextToken(); String pass1 = st.nextToken(); String pass2 = st.nextToken(); if (!pass1.equals(pass2)) { activeChar.sendMessage("[!] Пароли не совпадают. Пожалуйста, проверьте."); String msg = HtmCache.getInstance().getHtm("data/html/passkey/recovery.htm",activeChar); NpcHtmlMessage html = new NpcHtmlMessage(1); html.setHtml(msg); html.replace("%question%", getPassKeyQuestion(activeChar)); activeChar.sendPacket(html); html = null; return; } Connection con = null; String query = "SELECT answer FROM passkey WHERE obj_Id = ?"; String anwindb = "error"; try { con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement ps = con.prepareStatement(query); ps.setInt(1, activeChar.getObjectId()); ResultSet rs = ps.executeQuery(); while (rs.next()) anwindb = rs.getString(1); rs.close(); ps.close(); ps = null; rs = null; } catch (Exception e) { e.printStackTrace(); } finally { try { con.close(); } catch (SQLException e) { e.printStackTrace(); } con = null; } if (anwindb.equals(answer)) { updPassKey(activeChar, pass1); activeChar.sendMessage(82 раза скачали
Отправлено
-
Код для Fake Player
От DjTPAX1
Простой код для вашего сервера, это код для Fake Player
372 раза скачали
Отправлено
-
L2JRoboto-master
От DjTPAX1
L2j Roboto
Так что, как я уже сказал, я бы поделился фальшивым игровым движком, над которым я начал работать.
Это WIP, поэтому НЕ используйте его в какой-либо производственной среде.
Я только разделяю это, потому что кто-то может быть заинтересован в том, чтобы дать руку.
Особенности
Выполненные функции:
Только атакующая логика для ботов для ботов (планируйте сделать ее настраиваемой даже игрой) Задача автоматического масштабирования логики, чтобы иметь меньше итераций в большем количестве задач Буфф-боты с автоповтором Soulshots / Spiritshots с автозаполнением Стрелки / Кости с автозаполнением Один AI за класс (всего лишь несколько реализованных на данный момент) Случайная атака, выбранная с вероятностью
команды
// fakes - открывает панель управления поддельных игроков (вероятно, изменится на // roboto) // spawnrandom - порождает случайный бот с AI по умолчанию
Как установить
L2jRoboto имеет минимальные зависимости
Найдите папку patch.diff в папке dist
242 раза скачали
Отправлено
-
Три варианта для получения статуса Барон
От
OrmJevilТри варианта для получения статуса Барон.
Тестил на PWSOFT.
Установка
файл 50004.html (Закинуть в gameserver\data\html\merchant)
Файл 2017_n3w (Закинуть в gameserver\data\jscript\quests)
Дописать строчку в этой же папки __init__ строчка '2017_n3w',
Закинуть файл N3W.utx в клиент в папку systextures
в Архиве нет SQL ( сделать секунду)
ID NPC 50004
Редактировать Скрипт
идем сюда gameserver\data\jscript\quests\2017_n3w
открываем файл __init__ (блокнот или notepad++ или что то другое)
Далее все написано в скрипте.
Скрипт загрузился без ошибок если в GS это:
47 раз скачали
Отправлено
-
Azino 777
От
OrmJevilОпять приступы шизофрении!
Скрипта Лохотрона у меня нет (Но в Шаре он где-то есть ), кидаю только HTML и Клиент часть.
Всем Добра и Поднять Бабла !
azino777.rar
58 раз скачали
Отправлено
-
Forgotten Duals для Interlude
От shalenkoel
Дуалы S грейда для Interlud сервера
архив включает в себя:
1. клиентскую часть
2. файл базы данных
3. статы и мультиселл для маммона
Скрины и инструкция есть внутри.
64 раза скачали
Обновлено
-
Скрипт Баф с мобов
От Edgar
Скрипт Баф с мобов, можно поставить как новогодний ивент)
84 раза скачали
Отправлено
-
Noblesse.java
От
JavaBoysДанный скрипт предназначен для того, что-бы после смерти не спадали эффекты бафов.
92 раза скачали
Обновлено
-
Отправлено