Jump to content

Серверные дополнения

Sign in to follow this  

Дополнения предназначенные для серверной части: датапаки, скрипты, эвенты, гмшопы и прочее

176 files

  1. Free

    Арена над Аденом Interlude

    Крутящаяся арена над аденом.
    Добавляем в клиент.
    //loc Можно подлететь на виверне) её видно с города если поднять камеру)
     геодаты нет, возможны провалы под текстуры если бегать с гм хастом, если без, вродь не проваливается)

    7 downloads

    Submitted

  2. Free

    Броня. шара

    Армор. Может кому пригодится

    5 downloads

    Submitted

  3. Free

    Пак NPC 7 штук

    Ковыряю по-тихоньку старый HDD,что нахожу- кидаю в шару. 
    Если ещё нужно выкладывать дайте знать

    7 downloads

    Submitted

  4. Free

    Cursed Weapons ByAuraKyriad

    Просто еще один пак доп.оружия
     

    28 downloads

    Submitted

  5. Free

    Kepka

    Хроники:Gracia Final

    6 downloads

    Submitted

  6. Free

    Bereti

    Хроники:Gracia Final

    4 downloads

    Submitted

  7. Free

    Lineage 2 Goddess of Destruction cloak

    Хроники:Gracia Final

    4 downloads

    Submitted

  8. Free

    Thundercats-Cloak-Admins-Cloak-SuperHaste

    Хроники:Freya

    6 downloads

    Submitted

  9. Free

    33 Cloak for Gracia Final

    Хроники:Gracia Final

    10 downloads

    Submitted

  10. Free

    Cloaks Eve

    Хроники: Gracia Final

    4 downloads

    Submitted

  11. Free

    Antharas Cloak

    Хроники: Gracia Final

    1 download

    Submitted

  12. Free

    .epic интервал спавн

    Чуть переделал скрипт .epic (люцера 2\ит.су). Все как на скрине 

    88 downloads

    Submitted

  13. Free

    Water armor for interlude

    Всем привет. 
    Валялось на компе, может кому нужно. 
    Автора не знаю, к сожалению. 

    22 downloads

    Updated

  14. Free

    2 NPC

    Всем привет. 
    Выкладываю 2 прикольных НПЦ. Может кому пригодится
    Если уже были- извиняйте

    39 downloads

    Submitted

  15. Free

    Spawnlist для PWSoft

    Было скучно решил разобраться в проблеме с мобоами на PwSoft что моба видно, а атаковать его нельзя, потратил несколько часов ковыряясь в коде, понаписал тьму методов расчета z при спавне, в результате ответ был прост, спавнлист в PW сам по себе кривой. Спавн лист который в данной теме взять с l2jlovely и адаптирован под PW, на нем проблем с мобами нету.

    57 downloads

    Updated

  16. Free

    [Buffer] Старый баффер классического вида

    Перезаливаю старый классический баффер от MiddleMan, возможно кому пригодиться.
    В архиве html, напутствия от автора по установке, и скрипт самого баффера (под свою сборку переделываем сами).

    90 downloads

    Submitted

  17. Free

    Desert eagle

    Со старого патча  l2deathgame
    Три вида ( Heavy , Light , Robe )

    36 downloads

    Submitted

  18. Free

    Lineage 2 GeoData Maps Images Salvation 08.08.17

    Недавно понадобилась карта квадратов новых хроник но прошерстив интернет не нашел не чего выше хф да и то за частую это хроники ниже выдаваемые за выше. Вот и пришлось в ручную собирать все до кучи, да не тут то было, в последних хрониках иконки всех городов вынесены отдельно от карты и ко всему ещё и с левым фоном который убирается альфой в унреале.  Подшаманив повырезав иконки наложив нумерацию квадратов, сетку, вырезанные иконки и подписав все города в ручную получилось что то вот такое, что я и выкладываю вам на обозрение, не идеал но делалось в спехе, может кому и пригодится. 
    Карта под последние руофф хроники актуальные на 08.07.18
    Автор: webdes27

    71 downloads

    Updated

  19. Free

    платные моды lucera2

    Все платные моды которые продовал рут)) либы закодированные, но для умельцев же не составит труда

    187 downloads

    Submitted

  20. Free

    Top Raking

    dla L2jlovely ,u  lucera 

    112 downloads

    Submitted

  21. Free

    [PWSOFT] Noobles RaidBoss Teleport

    [PWSOFT] Noobles RaidBoss Teleport - Телепорт по рейдбоссам только для нублесов за Coin of luck
    ИД итема и стоимость настраивать здесь nobleTPRaid.java [L2ItemInstance coin = player.getInventory().getItemByItemId(4037);]

    45 downloads

    Submitted

  22. Free

    Пароль на персонажа (для люцероподобных)

    Доброе утро/день/вечер (смотря кто - когда читает), ув.Пользователи форума!
    В прошлом году делал для своего сервера (пароль для персонажей). Брал исходник из шары у †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(

    55 downloads

    Submitted

  23. Free

    Код для Fake Player

    Простой код для вашего сервера, это код для Fake Player

    231 downloads

    Submitted

  24. Free

    L2JRoboto-master

    L2j Roboto
     
    Так что, как я уже сказал, я бы поделился фальшивым игровым движком, над которым я начал работать.
    Это WIP, поэтому НЕ используйте его в какой-либо производственной среде.
    Я только разделяю это, потому что кто-то может быть заинтересован в том, чтобы дать руку.
     
    Особенности
    Выполненные функции:
    Только атакующая логика для ботов для ботов (планируйте сделать ее настраиваемой даже игрой) Задача автоматического масштабирования логики, чтобы иметь меньше итераций в большем количестве задач Буфф-боты с автоповтором Soulshots / Spiritshots с автозаполнением Стрелки / Кости с автозаполнением Один AI за класс (всего лишь несколько реализованных на данный момент) Случайная атака, выбранная с вероятностью  
    команды
    // fakes - открывает панель управления поддельных игроков (вероятно, изменится на // roboto) // spawnrandom - порождает случайный бот с AI по умолчанию  
    Как установить
    L2jRoboto имеет минимальные зависимости
    Найдите папку patch.diff в папке dist

    156 downloads

    Submitted

  25. Free

    Три варианта для получения статуса Барон

    Три варианта для получения статуса Барон.
    Тестил на 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 это:

    26 downloads

    Submitted

Sign in to follow this  

×
×
  • Create New...