Перейти к содержанию
Авторизация  
JustRain

Fakeplayers For L2Jfrozen

Рекомендуемые сообщения

Интересует реализация 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;

Изменено пользователем JustRain

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Запусти сервер в дебаге и посмотри по шагам, почему не происходит спавна чара.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

есть у кого библиотека логера? А то с данным исходником на aCis не возможно скомпилить потому что там логер по другому реализован! Конечно можно переписать под свой, но не хотелось бы! Хотелось посмотреть библиотеку с этим логером! Если не сложно залейте пожалста!

Или скиньте сборку если она шаровая. Чистую без нароботок или подскажите название, хоть посмотрю что да как.

Изменено пользователем webdes27

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И как она вообще работать должна?Я не вижу в таблице фейк нпц не координат где он должен быть расположен не чего! Даже характеристик самого нпц фейкового, в чём одет к примеру! И каким образом его спавнить и под каким ид или как вообще система работает, не чего не понял по коду, как будто он не весь))

 

 

Ну про спавн то понятно вроди бы player.spawnMe(player.getX(), player.getY(), player.getZ()); считывает координаты с самого плеера! Если правельно понял. Но как вызывать правельно нпц!

 

Прикрепил diff под aCis но я так и не понял как он работает!

FakePlayer.rar

Изменено пользователем webdes27

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...