Wes Owner
Posts : 74 Join date : 2009-09-01 Age : 29 Location : Usa,Ohio,Defiance
| Subject: Fix Xlog! Please Sat Oct 31, 2009 2:28 pm | |
| Base Tested On: Deltascape Difficulty: 3.0 Declare This In Player.Java public boolean xlogging = false; public int xloggingTimer = -1; Open Client.Java - Quote :
if(xlogging && xloggingTimer == -1) { xloggingTimer = 40; } if(xlogging && xloggingTimer == 0) { xloggingTimer = -1; xlogging = false; disconnected = true; } if(xloggingTimer > 0) { xloggingTimer--; }
Open PlayerHandler.Java - Quote :
for (int i = 0; i < maxPlayers; i++) { try { if (players[i] == null || !players[i].isActive) continue;
players[i].preProcessing(); players[i].process(); while(players[i].packetProcess()); players[i].postProcessing(); players[i].getNextPlayerMovement();
if (players[i].disconnected && !players[i].xlogging) { if(players[i].inCombat) { players[i].xlogging = true; } else { client p = (client) players[i]; if (p.inTrade) { client p2 = (client) players[p.trade_reqId]; p.declineTrade(); p2.declineTrade(); } removePlayer(players[i]); players[i] = null; } } } catch (Exception e) { players[i].disconnected = true; e.printStackTrace(); } }
Then... - Quote :
// loop through all players and do the updating stuff for (int i = 0; i < maxPlayers; i++) {
if (players[i] == null || !players[i].isActive) continue;
try { if (players[i].disconnected && !players[i].xlogging) { if(players[i].inCombat) { players[i].xlogging = true; } else { if (players[i].savefile == true) { if (saveGame(players[i])) { System.out.println("Game saved for player "+ players[i].playerName); } else { System.out.println("Could not save for "+ players[i].playerName); } } else { System.out.println("Did not save for "+ players[i].playerName); } removePlayer(players[i]); players[i] = null; } } else { if (!players[i].initialized) { players[i].initialize(); players[i].initialized = true; } else { players[i].update(); } } } catch(Exception e) { e.printStackTrace(); } }
Again Then... - Quote :
public void removePlayer(Player plr){ if (plr == null || plr.xlogging || plr.inCombat) return; if (plr.Privatechat != 2) { // PM System for (int i = 1; i < maxPlayers; i++) { if ((players[i] == null) || (players[i].isActive == false) || (players[i].playerName == null)) continue; players[i].pmupdate(plr.playerId, 0); } } plr.destruct(); }
Open Client.Java And Find This In The Run() Method - Quote :
while(!disconnected
Add This Under The Loop - Quote :
if(inCombat || xlogging) disconnected = false
| |
|