madarismenos Posted February 27, 2016 Posted February 27, 2016 (edited) Hello i Create one Easy code for your server's this is code for Fake player real time is have items and clan crest. He got the idea from the L2mafia, L2reality Soory for bad English Index: java/net/sf/l2j/gameserver/GameServer.java =================================================================== --- java/net/sf/l2j/gameserver/GameServer.java (revision 4) +++ java/net/sf/l2j/gameserver/GameServer.java (working copy) @@ -99,6 +99,7 @@ import net.sf.l2j.gameserver.instancemanager.games.MonsterRace; import net.sf.l2j.gameserver.model.L2Manor; import net.sf.l2j.gameserver.model.L2World; +import net.sf.l2j.gameserver.model.entity.FakeOnline; import net.sf.l2j.gameserver.model.entity.Hero; import net.sf.l2j.gameserver.model.olympiad.Olympiad; import net.sf.l2j.gameserver.model.olympiad.OlympiadGameManager; @@ -300,7 +301,7 @@ if (Config.ALT_FISH_CHAMPIONSHIP_ENABLED) FishingChampionshipManager.getInstance(); - + FakeOnline.restoreFakePlayers(); Util.printSection("System"); TaskManager.getInstance(); Runtime.getRuntime().addShutdownHook(Shutdown.getInstance()); Index: java/net/sf/l2j/gameserver/model/L2Clan.java =================================================================== --- java/net/sf/l2j/gameserver/model/L2Clan.java (revision 4) +++ java/net/sf/l2j/gameserver/model/L2Clan.java (working copy) @@ -2186,7 +2186,7 @@ member.broadcastUserInfo(); } - private void checkCrests() + public void checkCrests() { if (_crestId != 0) { Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 4) +++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -3118,7 +3118,7 @@ L2GameClient client = _client; if (client != null) { - if (client.isDetached()) + if (client.isDetached()|| client.isFakePlayer()) client.cleanMe(true); else { @@ -8890,6 +8890,17 @@ _validBypass2.add(bypass); } + public boolean fakeplayer = false; + + public boolean getfakeplayer() + { + return fakeplayer; + } + public void setfakeplayer(boolean fake) + { + fakeplayer = fake; + } + public synchronized boolean validateBypass(String cmd) { for (String bp : _validBypass) Index: java/net/sf/l2j/gameserver/model/entity/FakeOnline.java =================================================================== --- java/net/sf/l2j/gameserver/model/entity/FakeOnline.java (revision 0) +++ java/net/sf/l2j/gameserver/model/entity/FakeOnline.java (revision 0) @@ -0,0 +1,92 @@ +package net.sf.l2j.gameserver.model.entity; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.logging.Level; +import java.util.logging.Logger; + +import net.sf.l2j.L2DatabaseFactory; +import net.sf.l2j.gameserver.LoginServerThread; +import net.sf.l2j.gameserver.model.L2Clan; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; +import net.sf.l2j.gameserver.model.itemcontainer.ItemContainer; +import net.sf.l2j.gameserver.network.L2GameClient; +import net.sf.l2j.gameserver.network.L2GameClient.GameClientState; + +/** + * @author FOFAS + * + */ +public class FakeOnline +{ + private static Logger _log = Logger.getLogger(FakeOnline.class.getName()); + //select fake player + private static final String LOAD_OFFLINE_STATUS = "SELECT * FROM fakeplayer"; + //insert fake player + private static final String SET_OFFLINE_STATUS = "INSERT INTO fakeplayer (charId) VALUES (?)"; + + public static void restoreFakePlayers() + { + int nfakeplayer = 0; + try (Connection 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); + client.setFakePlayer(true); + player = L2PcInstance.restore(rs.getInt("charId")); + client.setActiveChar(player); + player.setOnlineStatus(true, false); + client.setAccountName(player.getAccountName()); + client.setState(GameClientState.IN_GAME); + player.setClient(client); + player.spawnMe(player.getX(), player.getY(), player.getZ()); + LoginServerThread.getInstance().addGameServerLogin(player.getAccountName(), client); + ItemContainer items = player.getInventory(); + items.restore(); + L2Clan clan = player.getClan(); + clan.checkCrests(); + player.setfakeplayer(true); + player.setOnlineStatus(true, true); + player.restoreEffects(); + player.broadcastUserInfo(); + nfakeplayer++; + } + catch (Exception e) + { + _log.log(Level.WARNING, "FakePlayer: Error loading trader: "+player,e); + if (player != null) + { + player.deleteMe(); + } + } + } + rs.close(); + stm.close(); + _log.info("Loaded: " +nfakeplayer+ " Fake player(s)"); + } + catch (Exception e) + { + _log.log(Level.WARNING, "FakePlayer: Error while loading FakePlayer: ",e); + } + } + + public static void setfakeplayers(L2PcInstance player) + { + try (Connection con = L2DatabaseFactory.getInstance().getConnection()) + { + PreparedStatement statement = con.prepareStatement(SET_OFFLINE_STATUS); + statement.setInt(1, player.getObjectId()); + statement.execute(); + statement.close(); + } + catch (Exception e) + {} + } +} Index: java/net/sf/l2j/gameserver/network/L2GameClient.java =================================================================== --- java/net/sf/l2j/gameserver/network/L2GameClient.java (revision 4) +++ java/net/sf/l2j/gameserver/network/L2GameClient.java (working copy) @@ -194,7 +194,7 @@ public void sendPacket(L2GameServerPacket gsp) { - if (_isDetached) + if (_isDetached || _isfakeplayer) return; getConnection().sendPacket(gsp); @@ -291,6 +291,18 @@ } } + private boolean _isfakeplayer = false; + + public boolean isFakePlayer() + { + return _isfakeplayer; + } + + public void setFakePlayer(boolean b) + { + _isfakeplayer = b; + } + public static void deleteCharByObjId(int objid) { if (objid < 0) @@ -489,6 +501,9 @@ public void closeNow() { _isDetached = true; // prevents more packets execution + + _isfakeplayer = true; + close(ServerClose.STATIC_PACKET); synchronized (this) { @@ -538,7 +553,7 @@ try { - if (getActiveChar() != null && !isDetached()) + if (getActiveChar() != null && !isDetached() || !isFakePlayer()) { setDetached(true); fast = !getActiveChar().isInCombat() && !getActiveChar().isLocked(); @@ -633,7 +648,7 @@ */ public boolean dropPacket() { - if (_isDetached) // detached clients can't receive any packets + if (_isDetached || _isfakeplayer) // detached clients can't receive any packets return true; // flood protection @@ -756,7 +771,7 @@ if (packet == null) // queue is empty return; - if (_isDetached) // clear queue immediately after detach + if (_isDetached || _isfakeplayer) // clear queue immediately after detach { _packetQueue.clear(); return; Index: Roar_gameserver/java/com/l2jfresh/gameserver/handler/VoicedCommandHandler.java =================================================================== --- Roar_gameserver/java/com/l2jfresh/gameserver/handler/VoicedCommandHandler.java (revision 62) +++ Roar_gameserver/java/com/l2jfresh/gameserver/handler/VoicedCommandHandler.java (working copy) @@ -22,6 +22,7 @@ import com.l2jfresh.gameserver.handler.voicedcommandhandlers.BankingCmd; import com.l2jfresh.gameserver.handler.voicedcommandhandlers.DMVoicedInfo; import com.l2jfresh.gameserver.handler.voicedcommandhandlers.Donator; +import com.l2jfresh.gameserver.handler.voicedcommandhandlers.FakePlayerOnline; import com.l2jfresh.gameserver.handler.voicedcommandhandlers.Leave; import com.l2jfresh.gameserver.handler.voicedcommandhandlers.OnlinePlayers; import com.l2jfresh.gameserver.handler.voicedcommandhandlers.Pin; @@ -67,6 +68,7 @@ + registerHandler(new FakePlayerOnline()); } public void registerHandler(IVoicedCommandHandler handler) Index: Roar_gameserver/java/com/l2jfresh/gameserver/handler/voicedcommandhandlers/FakePlayerOnline.java =================================================================== --- Roar_gameserver/java/com/l2jfresh/gameserver/handler/voicedcommandhandlers/FakePlayerOnline.java (revision 0) +++ Roar_gameserver/java/com/l2jfresh/gameserver/handler/voicedcommandhandlers/FakePlayerOnline.java (revision 0) @@ -0,0 +1,35 @@ +package com.l2jfresh.gameserver.handler.voicedcommandhandlers; + +import com.l2jfresh.gameserver.handler.IVoicedCommandHandler; +import com.l2jfresh.gameserver.model.actor.instance.L2PcInstance; +import com.l2jfresh.gameserver.model.custom.FakeOnline; + +/** + * @author FOFAS + * + */ +public class FakePlayerOnline implements IVoicedCommandHandler +{ + private static final String[] VOICED_COMMANDS = {"fakeplayer"}; + + @Override + public boolean useVoicedCommand(String command, L2PcInstance player, String target) + { + if (command.equalsIgnoreCase("fakeplayer")) + { + if (player != null) + { + FakeOnline.setfakeplayers(player); + player.setfakeplayer(true); + player.deleteMe(); + player.logout(); + } + } + return true; + } + @Override + public String[] getVoicedCommandList() + { + return VOICED_COMMANDS; + } +} Index: Roar_gameserver/java/com/l2jfresh/gameserver/handler/voicedcommandhandlers/FakePlayerOnline.java =================================================================== --- Roar_gameserver/java/com/l2jfresh/gameserver/handler/voicedcommandhandlers/FakePlayerOnline.java (revision 0) +++ Roar_gameserver/java/com/l2jfresh/gameserver/handler/voicedcommandhandlers/FakePlayerOnline.java (revision 0) @@ -0,0 +1,35 @@ +package com.l2jfresh.gameserver.handler.voicedcommandhandlers; + +import com.l2jfresh.gameserver.handler.IVoicedCommandHandler; +import com.l2jfresh.gameserver.model.actor.instance.L2PcInstance; +import com.l2jfresh.gameserver.model.custom.FakeOnline; + +/** + * @author FOFAS + * + */ +public class FakePlayerOnline implements IVoicedCommandHandler +{ + private static final String[] VOICED_COMMANDS = {"fakeplayer"}; + + @Override + public boolean useVoicedCommand(String command, L2PcInstance player, String target) + { + if (command.equalsIgnoreCase("fakeplayer")) + { + if (player != null) + { + FakeOnline.setfakeplayers(player); + player.setfakeplayer(true); + player.deleteMe(); + player.logout(); + } + } + return true; + } + @Override + public String[] getVoicedCommandList() + { + return VOICED_COMMANDS; + } +} Edited February 27, 2016 by madarismenos Quote
valentin Posted February 28, 2016 Posted February 28, 2016 only children headless implements,this command :/ a big mess to lie to your players bump! Quote
'Baggos' Posted February 29, 2016 Posted February 29, 2016 On 2/28/2016 at 10:36 PM, valentin said: only children headless implements,this command :/ a big mess to lie to your players bump! You're the first user of this code. So, do not try to be a smart. Btw, that's why lineage gonna be a missed game. Quote
StinkyMadness Posted March 3, 2016 Posted March 3, 2016 Hello i Create one Easy code for your server's +/** + * @author FOFAS + * + */ ????????? Quote
badangel3s Posted May 16, 2016 Posted May 16, 2016 Can you explain how it works? It creates player? Or just change the online players count? Quote
MeLDevGree Posted May 16, 2016 Posted May 16, 2016 On 5/16/2016 at 9:10 PM, badangel3s said: Can you explain how it works? It creates player? Or just change the online players count? this Quote
Rootware Posted September 26, 2016 Posted September 26, 2016 Bullshit. Only spawn players, like offline shop. Quote
kallone Posted November 26, 2017 Posted November 26, 2017 DROP TABLE IF EXISTS `fakeplayer`; CREATE TABLE `fakeplayer` ( `obj_Id` decimal(11,0) NOT NULL DEFAULT '0', PRIMARY KEY (`obj_Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Quote
pro3mad Posted February 4, 2018 Posted February 4, 2018 On 2/27/2016 at 5:20 AM, madarismenos said: Hello i Create one Easy code for your server's this is code for Fake player real time is have items and clan crest. He got the idea from the L2mafia, L2reality Soory for bad English Index: java/net/sf/l2j/gameserver/GameServer.java =================================================================== --- java/net/sf/l2j/gameserver/GameServer.java (revision 4) +++ java/net/sf/l2j/gameserver/GameServer.java (working copy) @@ -99,6 +99,7 @@ import net.sf.l2j.gameserver.instancemanager.games.MonsterRace; import net.sf.l2j.gameserver.model.L2Manor; import net.sf.l2j.gameserver.model.L2World; +import net.sf.l2j.gameserver.model.entity.FakeOnline; import net.sf.l2j.gameserver.model.entity.Hero; import net.sf.l2j.gameserver.model.olympiad.Olympiad; import net.sf.l2j.gameserver.model.olympiad.OlympiadGameManager; @@ -300,7 +301,7 @@ if (Config.ALT_FISH_CHAMPIONSHIP_ENABLED) FishingChampionshipManager.getInstance(); - + FakeOnline.restoreFakePlayers(); Util.printSection("System"); TaskManager.getInstance(); Runtime.getRuntime().addShutdownHook(Shutdown.getInstance()); Index: java/net/sf/l2j/gameserver/model/L2Clan.java =================================================================== --- java/net/sf/l2j/gameserver/model/L2Clan.java (revision 4) +++ java/net/sf/l2j/gameserver/model/L2Clan.java (working copy) @@ -2186,7 +2186,7 @@ member.broadcastUserInfo(); } - private void checkCrests() + public void checkCrests() { if (_crestId != 0) { Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 4) +++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -3118,7 +3118,7 @@ L2GameClient client = _client; if (client != null) { - if (client.isDetached()) + if (client.isDetached()|| client.isFakePlayer()) client.cleanMe(true); else { @@ -8890,6 +8890,17 @@ _validBypass2.add(bypass); } + public boolean fakeplayer = false; + + public boolean getfakeplayer() + { + return fakeplayer; + } + public void setfakeplayer(boolean fake) + { + fakeplayer = fake; + } + public synchronized boolean validateBypass(String cmd) { for (String bp : _validBypass) Index: java/net/sf/l2j/gameserver/model/entity/FakeOnline.java =================================================================== --- java/net/sf/l2j/gameserver/model/entity/FakeOnline.java (revision 0) +++ java/net/sf/l2j/gameserver/model/entity/FakeOnline.java (revision 0) @@ -0,0 +1,92 @@ +package net.sf.l2j.gameserver.model.entity; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.logging.Level; +import java.util.logging.Logger; + +import net.sf.l2j.L2DatabaseFactory; +import net.sf.l2j.gameserver.LoginServerThread; +import net.sf.l2j.gameserver.model.L2Clan; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; +import net.sf.l2j.gameserver.model.itemcontainer.ItemContainer; +import net.sf.l2j.gameserver.network.L2GameClient; +import net.sf.l2j.gameserver.network.L2GameClient.GameClientState; + +/** + * @author FOFAS + * + */ +public class FakeOnline +{ + private static Logger _log = Logger.getLogger(FakeOnline.class.getName()); + //select fake player + private static final String LOAD_OFFLINE_STATUS = "SELECT * FROM fakeplayer"; + //insert fake player + private static final String SET_OFFLINE_STATUS = "INSERT INTO fakeplayer (charId) VALUES (?)"; + + public static void restoreFakePlayers() + { + int nfakeplayer = 0; + try (Connection 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); + client.setFakePlayer(true); + player = L2PcInstance.restore(rs.getInt("charId")); + client.setActiveChar(player); + player.setOnlineStatus(true, false); + client.setAccountName(player.getAccountName()); + client.setState(GameClientState.IN_GAME); + player.setClient(client); + player.spawnMe(player.getX(), player.getY(), player.getZ()); + LoginServerThread.getInstance().addGameServerLogin(player.getAccountName(), client); + ItemContainer items = player.getInventory(); + items.restore(); + L2Clan clan = player.getClan(); + clan.checkCrests(); + player.setfakeplayer(true); + player.setOnlineStatus(true, true); + player.restoreEffects(); + player.broadcastUserInfo(); + nfakeplayer++; + } + catch (Exception e) + { + _log.log(Level.WARNING, "FakePlayer: Error loading trader: "+player,e); + if (player != null) + { + player.deleteMe(); + } + } + } + rs.close(); + stm.close(); + _log.info("Loaded: " +nfakeplayer+ " Fake player(s)"); + } + catch (Exception e) + { + _log.log(Level.WARNING, "FakePlayer: Error while loading FakePlayer: ",e); + } + } + + public static void setfakeplayers(L2PcInstance player) + { + try (Connection con = L2DatabaseFactory.getInstance().getConnection()) + { + PreparedStatement statement = con.prepareStatement(SET_OFFLINE_STATUS); + statement.setInt(1, player.getObjectId()); + statement.execute(); + statement.close(); + } + catch (Exception e) + {} + } +} Index: java/net/sf/l2j/gameserver/network/L2GameClient.java =================================================================== --- java/net/sf/l2j/gameserver/network/L2GameClient.java (revision 4) +++ java/net/sf/l2j/gameserver/network/L2GameClient.java (working copy) @@ -194,7 +194,7 @@ public void sendPacket(L2GameServerPacket gsp) { - if (_isDetached) + if (_isDetached || _isfakeplayer) return; getConnection().sendPacket(gsp); @@ -291,6 +291,18 @@ } } + private boolean _isfakeplayer = false; + + public boolean isFakePlayer() + { + return _isfakeplayer; + } + + public void setFakePlayer(boolean b) + { + _isfakeplayer = b; + } + public static void deleteCharByObjId(int objid) { if (objid < 0) @@ -489,6 +501,9 @@ public void closeNow() { _isDetached = true; // prevents more packets execution + + _isfakeplayer = true; + close(ServerClose.STATIC_PACKET); synchronized (this) { @@ -538,7 +553,7 @@ try { - if (getActiveChar() != null && !isDetached()) + if (getActiveChar() != null && !isDetached() || !isFakePlayer()) { setDetached(true); fast = !getActiveChar().isInCombat() && !getActiveChar().isLocked(); @@ -633,7 +648,7 @@ */ public boolean dropPacket() { - if (_isDetached) // detached clients can't receive any packets + if (_isDetached || _isfakeplayer) // detached clients can't receive any packets return true; // flood protection @@ -756,7 +771,7 @@ if (packet == null) // queue is empty return; - if (_isDetached) // clear queue immediately after detach + if (_isDetached || _isfakeplayer) // clear queue immediately after detach { _packetQueue.clear(); return; Index: Roar_gameserver/java/com/l2jfresh/gameserver/handler/VoicedCommandHandler.java =================================================================== --- Roar_gameserver/java/com/l2jfresh/gameserver/handler/VoicedCommandHandler.java (revision 62) +++ Roar_gameserver/java/com/l2jfresh/gameserver/handler/VoicedCommandHandler.java (working copy) @@ -22,6 +22,7 @@ import com.l2jfresh.gameserver.handler.voicedcommandhandlers.BankingCmd; import com.l2jfresh.gameserver.handler.voicedcommandhandlers.DMVoicedInfo; import com.l2jfresh.gameserver.handler.voicedcommandhandlers.Donator; +import com.l2jfresh.gameserver.handler.voicedcommandhandlers.FakePlayerOnline; import com.l2jfresh.gameserver.handler.voicedcommandhandlers.Leave; import com.l2jfresh.gameserver.handler.voicedcommandhandlers.OnlinePlayers; import com.l2jfresh.gameserver.handler.voicedcommandhandlers.Pin; @@ -67,6 +68,7 @@ + registerHandler(new FakePlayerOnline()); } public void registerHandler(IVoicedCommandHandler handler) Index: Roar_gameserver/java/com/l2jfresh/gameserver/handler/voicedcommandhandlers/FakePlayerOnline.java =================================================================== --- Roar_gameserver/java/com/l2jfresh/gameserver/handler/voicedcommandhandlers/FakePlayerOnline.java (revision 0) +++ Roar_gameserver/java/com/l2jfresh/gameserver/handler/voicedcommandhandlers/FakePlayerOnline.java (revision 0) @@ -0,0 +1,35 @@ +package com.l2jfresh.gameserver.handler.voicedcommandhandlers; + +import com.l2jfresh.gameserver.handler.IVoicedCommandHandler; +import com.l2jfresh.gameserver.model.actor.instance.L2PcInstance; +import com.l2jfresh.gameserver.model.custom.FakeOnline; + +/** + * @author FOFAS + * + */ +public class FakePlayerOnline implements IVoicedCommandHandler +{ + private static final String[] VOICED_COMMANDS = {"fakeplayer"}; + + @Override + public boolean useVoicedCommand(String command, L2PcInstance player, String target) + { + if (command.equalsIgnoreCase("fakeplayer")) + { + if (player != null) + { + FakeOnline.setfakeplayers(player); + player.setfakeplayer(true); + player.deleteMe(); + player.logout(); + } + } + return true; + } + @Override + public String[] getVoicedCommandList() + { + return VOICED_COMMANDS; + } +} Index: Roar_gameserver/java/com/l2jfresh/gameserver/handler/voicedcommandhandlers/FakePlayerOnline.java =================================================================== --- Roar_gameserver/java/com/l2jfresh/gameserver/handler/voicedcommandhandlers/FakePlayerOnline.java (revision 0) +++ Roar_gameserver/java/com/l2jfresh/gameserver/handler/voicedcommandhandlers/FakePlayerOnline.java (revision 0) @@ -0,0 +1,35 @@ +package com.l2jfresh.gameserver.handler.voicedcommandhandlers; + +import com.l2jfresh.gameserver.handler.IVoicedCommandHandler; +import com.l2jfresh.gameserver.model.actor.instance.L2PcInstance; +import com.l2jfresh.gameserver.model.custom.FakeOnline; + +/** + * @author FOFAS + * + */ +public class FakePlayerOnline implements IVoicedCommandHandler +{ + private static final String[] VOICED_COMMANDS = {"fakeplayer"}; + + @Override + public boolean useVoicedCommand(String command, L2PcInstance player, String target) + { + if (command.equalsIgnoreCase("fakeplayer")) + { + if (player != null) + { + FakeOnline.setfakeplayers(player); + player.setfakeplayer(true); + player.deleteMe(); + player.logout(); + } + } + return true; + } + @Override + public String[] getVoicedCommandList() + { + return VOICED_COMMANDS; + } +} Expand where I can add this code ? Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.