JustRain 4 Опубликовано 6 апреля, 2013 (изменено) Интересует реализация fakeplayers под исходы l2jlink(l2jfrozen) Нашел под другие исходы код с проставленными путями, добавил всё как написано,изменил импорты,компиляция - ок. Добавляю в таблицу Id персонажей, сервер запускается без ошибок, но в игре ничего не происходит. Возможно отличаются какие-то названия. Копался-копался, не мог понять в чем беда, сделал всё по новой, проверяя каждый свой шаг - всё тоже самое. Подскажите, или дайте направление в чем именно копать - буду очень благодарен. Index: java/com/descja/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- java/com/descja/gameserver/model/actor/instance/L2PcInstance.java (revision 38) +++ java/com/descja/gameserver/model/actor/instance/L2PcInstance.java (revision 38) private long _chatBanTimer = 0L; private ScheduledFuture<?> _chatBanTask = null; private boolean _isOffline = false; + private boolean _isFakePlayer = false; public void setOffline(boolean set) { _isOffline = set; } + public boolean isFakePlayer() + { + return _isFakePlayer; + } =================================================================== Index: java/com/descja/FakePlayers.java =================================================================== --- java/com/descja/FakePlayers.java (revision 0) +++ java/com/descja/FakePlayers.java (revision 0) package com.descja; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.descja.Config; import com.descja.gameserver.model.actor.instance.L2PcInstance; import com.descja.gameserver.network.L2GameClient; import com.descja.gameserver.network.L2GameClient.GameClientState; import com.descja.gameserver.thread.LoginServerThread; import com.descja.util.ResourceUtil; import com.descja.util.database.L2DatabaseFactory; public class FakePlayers { private static final Log _log = LogFactory.getLog(FakePlayers.class.getName()); private static final String CLEAR_OFFLINE_TABLE = "DELETE FROM fake_players"; private static final String LOAD_OFFLINE_STATUS = "SELECT * FROM fake_players"; private static FakePlayers _instance; public static FakePlayers getInstance() { if(_instance == null) { _instance = new FakePlayers(); } return _instance; } private FakePlayers() { storeFakePlayers(); } public static void storeFakePlayers() { _log.info("FakePlayers: Activated"); Connection con = null; int nPlayers = 0; try { con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement stm = con.prepareStatement(LOAD_OFFLINE_STATUS); ResultSet rs = stm.executeQuery(); while(rs.next()) { L2PcInstance player = null; try { L2GameClient client = new L2GameClient(null); player = L2PcInstance.load(rs.getInt("charId")); client.setActiveChar(player); client.setAccountName(player.getAccountNamePlayer()); client.setState(GameClientState.IN_GAME); player.setClient(client); player.isFakePlayer(); player.spawnMe(player.getX(), player.getY(), player.getZ()); LoginServerThread.getInstance().addGameServerLogin(player.getAccountName(), client); if(Config.FAKE_PLAYERS_SIT) { player.sitDown(); } player.setOnlineStatus(true); player.restoreEffects(); player.broadcastUserInfo(); nPlayers++; } catch(Exception e) { _log.error("Fake Players Engine: Error loading player: "+player,e); if(player != null) { player.deleteMe(); } } } rs.close(); stm.close(); _log.info("Loaded: " +nPlayers+ " Fake Players"); } catch(Exception e) { _log.error("Fake Players Engine : Error while loading player: ",e); } finally { ResourceUtil.closeConnection(con); } } } =================================================================== Index: java/com/descja/gameserver/GameServer.java =================================================================== --- java/com/descja/gameserver/GameServer.java (revision 53) +++ java/com/descja/gameserver/GameServer.java (revision 53) +import com.descja.FakePlayers; private static void loadCharacters() { Util.printSection("Characters"); ClanTable.getInstance(); CharTemplateTable.getInstance(); LevelUpData.getInstance(); } + //DescJa Fake Players// + private static void loadWhiteAttack() + { + if(Config.FAKE_PLAYERS) + { + Util.printSection("Fake Characters"); + FakePlayers.getInstance(); + } + } + //DescJa Fake Players// =================================================================== Index: java/com/descja/Config.java =================================================================== --- java/com/descja/Config.java (revision 162) +++ java/com/descja/Config.java (revision 162) + /*DescJa*/ + public static boolean FAKE_PLAYERS_SIT; + public static boolean FAKE_PLAYERS; + //FakePlayers.ini// + public static void FakePlayersConfig() + { + try + { + L2Properties p = new L2Properties(ConfigFiles.FakePlayers_INI); + + FAKE_PLAYERS = TypeFormat.parseBoolean(FakePlayers.getProperty("FakePlayers", "False")); + FAKE_PLAYERS_SIT = TypeFormat.parseBoolean(FakePlayers.getProperty("FakePlayersSit", "False")); + + p.clear(); + } + catch(Exception e) + { + _log.warn("Failed to load " + ConfigFiles.FakePlayers_INI); + } + } + /*DescJa*/ =================================================================== Index: java/com/descja/util/services/ConfigFiles.java =================================================================== --- java/com/descja/util/services/ConfigFiles.java +++ java/com/descja/util/services/ConfigFiles.java + public static final String FakePlayers_INI = "./config/FakePlayers.ini"; =================================================================== Index: config/FakePlayers.ini =================================================================== --- config/FakePlayers.ini +++ config/FakePlayers.ini +#============================================ +# Fake Players Mod # +#============================================ + +# Enable Fake Players System +# Default: False +FakePlayers = False + +# Fake Players Sit Down +# Default: False +FakePlayersSit = False CREATE TABLE `fake_players` ( `charId` decimal(11,0) NOT NULL DEFAULT '0', PRIMARY KEY (`charId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Изменено 6 апреля, 2013 пользователем JustRain Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
mouse 23 Опубликовано 9 апреля, 2013 Запусти сервер в дебаге и посмотри по шагам, почему не происходит спавна чара. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
webdes27 78 Опубликовано 27 апреля, 2014 (изменено) есть у кого библиотека логера? А то с данным исходником на aCis не возможно скомпилить потому что там логер по другому реализован! Конечно можно переписать под свой, но не хотелось бы! Хотелось посмотреть библиотеку с этим логером! Если не сложно залейте пожалста! Или скиньте сборку если она шаровая. Чистую без нароботок или подскажите название, хоть посмотрю что да как. Изменено 27 апреля, 2014 пользователем webdes27 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
webdes27 78 Опубликовано 27 апреля, 2014 (изменено) И как она вообще работать должна?Я не вижу в таблице фейк нпц не координат где он должен быть расположен не чего! Даже характеристик самого нпц фейкового, в чём одет к примеру! И каким образом его спавнить и под каким ид или как вообще система работает, не чего не понял по коду, как будто он не весь)) Ну про спавн то понятно вроди бы player.spawnMe(player.getX(), player.getY(), player.getZ()); считывает координаты с самого плеера! Если правельно понял. Но как вызывать правельно нпц! Прикрепил diff под aCis но я так и не понял как он работает! FakePlayer.rar Изменено 27 апреля, 2014 пользователем webdes27 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты