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

kick

Заблокирован
  • Публикаций

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

  • Посещение

  • Победитель дней

    3
  • Отзывы

    0%

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

  1. kick

    Бан

    ipban есть вродебы файлик в логине ну или в админ панели гдето должно быть
  2. и тут я пропустил неспицально 7)идём сюда Исходники\dist\gameserver\data\html-ru\scripts\events и излвекаем сюда архив скачать P.S в скором ивент будет нападение монстров на город для OverWorld
  3. прошу прозения забыл последний пункт sql залить скачать Модераторы добавьте пожалуйста 15 пунктом
  4. Благодаря данному эвенту, ваши игроки смогут провести бой 1х1 в коллизее, сделав ставки на свою победу и быть уверенными, что всё пройдёт честно и безошибочно. Если вдруг в течение боя победитель не определится, вы можете настроить эвент так, что победителем выйдет тот, у кого осталось больше HP. Каждый боя проходит в своём рефлекшене (инстансе), следовательно одновременно может проводиться неограниченное количество боёв, которые никак друг другу не помешают. скриншоты: Скрытый текст Устанавливаем: 1)скачиваем ивент скачать 2)извлекаем Исходники\dist\gameserver\data\scripts\events 3)теперь качаем модель npc скачать 4)извлекаем скачаный архив Исходники\dist\gameserver\data\scripts\npc\model\events 5)теперь идём сюда Исходники\gameserver\src\main\java\l2p\gameserver открываем config.java ниже public static final String EXT_FILE = "config/ext.properties"; добавляем строчку public static final String EVENT_FIGHT_CLUB_FILE = "config/FightClub.properties"; потом ниже этого public static final String GM_ACCESS_FILES_DIR = "config/GMAccess.d/"; добавляйте Скрытый текст // //FightClub // public static boolean FIGHT_CLUB_ENABLED; public static int MINIMUM_LEVEL_TO_PARRICIPATION; public static int MAXIMUM_LEVEL_TO_PARRICIPATION; public static int MAXIMUM_LEVEL_DIFFERENCE; public static String[] ALLOWED_RATE_ITEMS; public static int PLAYERS_PER_PAGE; public static int ARENA_TELEPORT_DELAY; public static boolean CANCEL_BUFF_BEFORE_FIGHT; public static boolean UNSUMMON_PETS; public static boolean UNSUMMON_SUMMONS; public static boolean REMOVE_CLAN_SKILLS; public static boolean REMOVE_HERO_SKILLS; public static int TIME_TO_PREPARATION; public static int FIGHT_TIME; public static boolean ALLOW_DRAW; public static int TIME_TELEPORT_BACK; public static boolean FIGHT_CLUB_ANNOUNCE_RATE; P.S устанавливается на исходы овера P.S.S если нужна помощь пишите Автор КиК
  5. ultrakill могу тебе на л2п ит скинуть там наподобие этого там пишешь .lock окно выскакиевает и вводишь сколько дней и нажимаешь установить блокировку по ипу
  6. нет я написал то что для оверворлд и для оверподобных сори несмогу сделать
  7. RegisterGameServer для сервера оверворлд *Нужны исходники OverWorld или оверподобных команд Начнём: 1)идём сюда Исходники\loginserver\src\main\java\l2p\loginserver и создаём такой текстовой документ GameServerRegister.java и с таким содержанием: Скрытый текст package l2p.loginserver; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintStream; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import l2p.commons.dbutils.DbUtils; import l2p.loginserver.Config; import l2p.loginserver.database.L2DatabaseFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class GameServerRegister { private final static Logger _log = LoggerFactory.getLogger(GameServerRegister.class); public static void main(String[] paramArrayOfString) { Config.load(); Connection con = null; PreparedStatement statement = null; ResultSet rset = null; int i = 0; while(i == 0) { System.out.println(); System.out.println("1. List GameServers"); System.out.println("2. Add GameServer"); System.out.println("3. Del GameServer"); System.out.println("4. Exit"); System.out.print("Enter: "); try { InputStreamReader localInputStreamReader1 = new InputStreamReader(System.in); BufferedReader localBufferedReader1 = new BufferedReader(localInputStreamReader1); con = L2DatabaseFactory.getInstance().getConnection(); int j = Integer.parseInt(localBufferedReader1.readLine()); switch(j) { case 1: System.out.println("\n=========== Registered GameServers =============\n"); statement = con.prepareStatement("SELECT * FROM gameservers"); rset = statement.executeQuery(); while(rset.next()) { System.out.println("ID: " + rset.getInt("server_id")); System.out.println("IP: " + rset.getString("host")); System.out.println(); } System.out.println("================================================"); break; case 2: System.out.println("\n============= Register GameServer =============="); System.out.print("Enter GameServer Id: "); InputStreamReader localInputStreamReader2 = new InputStreamReader(System.in); BufferedReader localBufferedReader2 = new BufferedReader(localInputStreamReader2); int regId = Integer.parseInt(localBufferedReader2.readLine()); System.out.print("Enter GameServer IP: "); localInputStreamReader2 = new InputStreamReader(System.in); localBufferedReader2 = new BufferedReader(localInputStreamReader2); String regIp = localBufferedReader2.readLine(); statement = con.prepareStatement("REPLACE INTO gameservers VALUES (?, ?)"); statement.setInt(1, regId); statement.setString(2, regIp); statement.execute(); System.out.println("GameServer registered"); System.out.println("================================================"); break; case 3: System.out.println("\n============= Deleted GameServer ==============="); System.out.print("Enter GameServer Id: "); InputStreamReader localInputStreamReader3 = new InputStreamReader(System.in); BufferedReader localBufferedReader3 = new BufferedReader(localInputStreamReader3); int delId = Integer.parseInt(localBufferedReader3.readLine()); statement = con.prepareStatement("DELETE FROM gameservers WHERE server_id = ?"); statement.setInt(1, delId); statement.execute(); System.out.println("GameServer ID:" + delId + " deleted"); System.out.println("================================================"); break; case 4: i = 1; } } catch(Exception e) { _log.error("", e); } finally { DbUtils.closeQuietly(con, statement, rset); } } } } 2)Исходники\dist\loginserver и создаём RegisterGameServer.bat с содержимым Скрытый текст @echo off title Kick: Game Server Registration... :start echo Starting Game Server Registration. echo. java -server -Dfile.encoding=UTF-8 -Xms1024m -Xmx1024m -cp config;./*l2p.loginserver.GameServerRegister pause Автор КиК
  8. Сервис представляет собой голосовую команду, после ввода которой открывается меню, в котором вы должны выбрать требующуюся опцию. Вы можете выбрать, по какому компоненту ПК будет выполнена привязка (CPU/HDD/BIOS) или комбинировать их. Для установки данного модуля требуется исходный код сервера. Скрытый текст * требуется наличие LameGuard * требуется наличие исходного кода OverWorld или оверподобный Установка: 1)идём в Исходники\gameserver\src\main\java\l2p\gameserver\handler\voicecommands\impl 2)создаём текстовый документ и переименовываем его в Security.java и вставляем код для тех кому лень скачиваем файл и закидываем сюда Исходники\gameserver\src\main\java\l2p\gameserver\handler\voicecommands\impl скачать Скрытый текст package l2p.gameserver.handler.voicecommands.impl; import l2p.gameserver.Config; import l2p.gameserver.handler.voicecommands.IVoicedCommandHandler; import l2p.gameserver.model.Player; import l2p.gameserver.loginservercon.LoginServerCommunication; import l2p.gameserver.lock.gspackets.ChangeAllowedHwid; import l2p.gameserver.lock.gspackets.ChangeAllowedIp; import l2p.gameserver.serverpackets.NpcHtmlMessage; public class Security implements IVoicedCommandHandler { private String[] _commandList = { "lock", "unlock", "lockIp", "lockHwid", "unlockIp", "unlockHwid" }; @Override public boolean useVoicedCommand(String command, Player activeChar, String target) { if(command.equalsIgnoreCase("lock")) { NpcHtmlMessage html = new NpcHtmlMessage(activeChar.getObjectId()); html.setFile("command/lock/lock.htm"); html.replace("%ip_block%", IpBlockStatus()); html.replace("%hwid_block%", HwidBlockStatus()); html.replace("%hwid_val%", HwidBlockBy()); html.replace("%curIP%", activeChar.getIP()); activeChar.sendPacket(html); return true; } else if(command.equalsIgnoreCase("lockIp")) { if(!Config.ALLOW_IP_LOCK) return true; AuthServerCommunication.getInstance().sendPacket(new ChangeAllowedIp(activeChar.getAccountName(), activeChar.getIP())); NpcHtmlMessage html = new NpcHtmlMessage(activeChar.getObjectId()); html.setFile("command/lock/lock_ip.htm"); html.replace("%curIP%", activeChar.getIP()); activeChar.sendPacket(html); return true; } else if(command.equalsIgnoreCase("lockHwid")) { if(!Config.ALLOW_HWID_LOCK) return true; AuthServerCommunication.getInstance().sendPacket(new ChangeAllowedHwid(activeChar.getAccountName(), activeChar.getNetConnection().getHWID())); NpcHtmlMessage html = new NpcHtmlMessage(activeChar.getObjectId()); html.setFile("command/lock/lock_hwid.htm"); activeChar.sendPacket(html); return true; } else if(command.equalsIgnoreCase("unlockIp")) { AuthServerCommunication.getInstance().sendPacket(new ChangeAllowedIp(activeChar.getAccountName(), "")); NpcHtmlMessage html = new NpcHtmlMessage(activeChar.getObjectId()); html.setFile("command/lock/unlock_ip.htm"); html.replace("%curIP", activeChar.getIP()); activeChar.sendPacket(html); return true; } else if(command.equalsIgnoreCase("unlockHwid")) { AuthServerCommunication.getInstance().sendPacket(new ChangeAllowedHwid(activeChar.getAccountName(), "")); NpcHtmlMessage html = new NpcHtmlMessage(activeChar.getObjectId()); html.setFile("command/lock/unlock_hwid.htm"); activeChar.sendPacket(html); return true; } return true; } private String IpBlockStatus() { if(Config.ALLOW_IP_LOCK) return "Разрешено"; else return "Запрещено"; } private String HwidBlockStatus() { if(Config.ALLOW_HWID_LOCK) return "Разрешено"; return "Запрещено"; } private String HwidBlockBy() { String result = "(CPU/HDD)"; switch(Config.HWID_LOCK_MASK) { case 2: result = "(HDD)"; break; case 4: result = "(BIOS)"; break; case 6: result = "(BIOS/HDD)"; break; case 8: result = "(CPU)"; break; case 10: result = "(CPU/HDD)"; break; case 12: result = "(CPU/BIOS)"; break; case 14: result = "(CPU/HDD/BIOS)"; break; case 1: case 3: case 5: case 7: case 9: case 11: case 13: default: result = "(unknown)"; } return result; } @Override public String[] getVoicedCommandList() { return _commandList; } } 3)идём Исходники\gameserver\src\main\java\l2p\gameserver\handler\voicecommands открываем VoicedCommandHandler.java нажимаем сtrl+a и удаляем и вставляем это Скрытый текст package l2p.gameserver.handler.voicecommands; import java.util.HashMap; import java.util.Map; import l2p.commons.data.xml.AbstractHolder; import l2p.gameserver.handler.voicecommands.impl.Cfg; import l2p.gameserver.handler.voicecommands.impl.Debug; import l2p.gameserver.handler.voicecommands.impl.Hellbound; import l2p.gameserver.handler.voicecommands.impl.Help; import l2p.gameserver.handler.voicecommands.impl.Offline; import l2p.gameserver.handler.voicecommands.impl.Repair; import l2p.gameserver.handler.voicecommands.impl.ServerInfo; import l2p.gameserver.handler.voicecommands.impl.Wedding; import l2p.gameserver.handler.voicecommands.impl.WhoAmI; import l2p.gameserver.handler.voicecommands.impl.Security; public class VoicedCommandHandler extends AbstractHolder { private static final VoicedCommandHandler _instance = new VoicedCommandHandler(); public static VoicedCommandHandler getInstance() { return _instance; } private Map<String, IVoicedCommandHandler> _datatable = new HashMap<String, IVoicedCommandHandler>(); private VoicedCommandHandler() { registerVoicedCommandHandler(new Help()); registerVoicedCommandHandler(new Hellbound()); registerVoicedCommandHandler(new Cfg()); registerVoicedCommandHandler(new Offline()); registerVoicedCommandHandler(new Repair()); registerVoicedCommandHandler(new ServerInfo()); registerVoicedCommandHandler(new Wedding()); registerVoicedCommandHandler(new WhoAmI()); registerVoicedCommandHandler(new Debug()); registerVoicedCommandHandler(new Security()); } public void registerVoicedCommandHandler(IVoicedCommandHandler handler) { String[] ids = handler.getVoicedCommandList(); for(String element : ids) _datatable.put(element, handler); } public IVoicedCommandHandler getVoicedCommandHandler(String voicedCommand) { String command = voicedCommand; if(voicedCommand.indexOf(" ") != -1) command = voicedCommand.substring(0, voicedCommand.indexOf(" ")); return _datatable.get(command); } @Override public int size() { return _datatable.size(); } @Override public void clear() { _datatable.clear(); } } 4)скачиваем архив lock и извлекаем его в Исходники\gameserver\src\main\java\l2p\gameserver скачать 5)идём в Исходники\gameserver\src\main\java\l2p\gameserver\network и открываем GameClient и видим вот эти импорты import org.slf4j.Logger; import org.slf4j.LoggerFactory; вставляем ниже них тут же находим код он находится в самом низу Скрытый текст @Override public String toString() { return _state + " IP: " + getIpAddr() + (_login == null ? "" : " Account: " + _login) + (_activeChar == null ? "" : " Player : " + _activeChar); и выше него вставляем Скрытый текст @SuppressWarnings("deprecation") public void checkHwid(String allowedHwid) { if((!allowedHwid.equalsIgnoreCase("")) && (getHWID() != null) && (!HWID.isEquals(Utils.asByteArray(getHWID()), Utils.asByteArray(allowedHwid), Config.HWID_LOCK_MASK))) closeNow(false); } тут же удаляем в самой последней строчке вот этот знак Скрытый текст } и вставляем вот это Скрытый текст private String hwid; private int instances; private int patch; private boolean isProtected; public String getHWID() { return hwid; } public int getInstanceCount() { return instances; } public int getPatchVersion() { return patch; } public boolean isProtected() { return isProtected; } public void setHWID(String hwid) { this.hwid = hwid; } public void setInstanceCount(int instances) { this.instances = instances; } public void setPatchVersion(int patch) { this.patch = patch; } public void setProtected(boolean isProtected) { this.isProtected = isProtected; } } 6)идём сюда Исходники\gameserver\src\main\java\l2p\gameserver и открываем Config.java вставляем Скрытый текст // //Lock // public static boolean ALLOW_IP_LOCK; public static boolean ALLOW_HWID_LOCK; public static int HWID_LOCK_MASK; это можно вставить сразу после public static final String GM_ACCESS_FILES_DIR = "config/GMAccess.d/"; потом ищем вот эту строчку public static void loadServerConfig() выше этой строки вставляем GAME_SERVER_LOGIN_HOST = serverSettings.getProperty("LoginHost", "127.0.0.1"); 7)идём сюда Исходники\dist\gameserver\config\default и открываем server.properties и в самый низ вставляем вот это Скрытый текст # ---------------------------------------------------------------------------# # Сервис привязки аккаунта к IP и Hwid # ---------------------------------------------------------------------------# # Разрешить игрокам привязывать аккаунт к IP # Привязка осуществляется с помощью команды .lock # По умолчанию: True AllowLockIP = true # Разрешить игрокам привязывать аккаунт к HWid # Работает только в случае когда стоит LameGuard # Привязка осуществляется с помощью команды .lock # По умолчанию: True AllowLockHwid = true # Битовая маска привязки аккаунта по HWid # 2 - HDD # 4 - BIOS # 8 - CPU # Пример: HWIDBan = 10 (привязка по HWID будет считатся только по HDD и CPU) # Пример: HWIDBan = 14 (привязка по HWID будет считатся по HDD, CPU и BIOS) HwidLockMask = 14 # ---------------------------------------------------------------------------# скачиваем скачать идём сюда Исходники\dist\gameserver\data\html-ru\command и извлекаем архив 9)скачиваем библиотеку Скачать lameguard и кладём её вод сюда Исходники\lib 10)прописываем в батнике GameServer: com.LameGuard.LameGuard перед l2p пример: Скрытый текст @echo off :start echo Starting L2s GameServer. echo. java -server -Dfile.encoding=UTF-8 -Xmx1G -cp config;./* com.LameGuard.LameGuard l2p.gameserver.GameServer REM Debug ... REM java -Dfile.encoding=UTF-8 -cp config;./* -Xmx1G -Xnoclassgc -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=7456 l2s.gameserver.GameServer if ERRORLEVEL 2 goto restart if ERRORLEVEL 1 goto error goto end :restart echo. echo Server restarted ... echo. goto start :error echo. echo Server terminated abnormaly ... echo. :end echo. echo Server terminated ... echo. pause Вот практически и всё 11)идём сюда Исходники\loginserver\src\main\java\l2p\loginserver\gameservercon и вставляем то что щас скачаете Скачать 12)идём сюда Исходники\loginserver\src\main\java\l2p\loginserver\gameservercon и открываем PacketHandler после : import l2p.loginserver.gameservercon.gspackets.SetAccountInfo; добавляем: import l2p.loginserver.gameservercon.gspackets.ChangeAccessLevel; import l2p.loginserver.gameservercon.gspackets.ChangeAllowedHwid; после: Скрытый текст case 0x05: packet = new SetAccountInfo(); break; ниже добавляем: Скрытый текст case 0x07: packet = new ChangeAllowedIp(); break; case 0x09: packet = new ChangeAllowedHwid(); break; 13)Исходники\dist\loginserver открываем батник логин сервера и ставим то что мы ставили в стартгамесервер 14)компилим сборку заходим в игру пишим .lock и должно выскочить такое окошко 15) Залить sql в БД - скачать P.S буду радовать ещё такими фишками на серв P.S.S если будут ошибки пишете помогу исправить Автор КиК
  9. kick

    Вопрос По Железкам

    моэно в сборке для unix систем настроить так что заддосить не смогут 1.3кк обращений в час. на сервер и нифига ему небудет
  10. могу скинуть свой хайф файв на овере там больше чем на самом овере есть
×
×
  • Создать...