Thread: vBulletin Intergration Problem

Results 1 to 5 of 5
  1. #1 vBulletin Intergration Problem 
    Fuckin PRO

    Damien's Avatar
    Join Date
    Feb 2008
    Age
    32
    Posts
    2,658
    Thanks given
    928
    Thanks received
    82
    Rep Power
    369
    When Players Change there password or username on the forums, They get reset in game. This never happen on my battlescape base but its happening on this PI base.

    Here is my rs2login and playersave class.

    Code:
    package server.net;
    
    import org.apache.mina.common.ByteBuffer;
    import org.apache.mina.common.IoFuture;
    import org.apache.mina.common.IoFutureListener;
    import org.apache.mina.common.IoSession;
    import org.apache.mina.filter.codec.CumulativeProtocolDecoder;
    import org.apache.mina.filter.codec.ProtocolCodecFilter;
    import org.apache.mina.filter.codec.ProtocolDecoderOutput;
    
    import server.Config;
    import server.Connection;
    import server.Server;
    import server.model.players.Client;
    import server.model.players.PlayerHandler;
    import server.model.players.PlayerSave;
    import server.util.ISAACRandomGen;
    
    /**
     * Login protocol decoder.
     * 
     * @author Damien
     * 
     */
    public class RS2LoginProtocolDecoder extends CumulativeProtocolDecoder {
    
    	/**
    	 * Parses the data in the provided byte buffer and writes it to
    	 * <code>out</code> as a <code>Packet</code>.
    	 * 
    	 * @param session
    	 *            The IoSession the data was read from
    	 * @param in
    	 *            The buffer
    	 * @param out
    	 *            The decoder output stream to which to write the
    	 *            <code>Packet</code>
    	 * @return Whether enough data was available to create a packet
    	 */
    	@Override
    	public boolean doDecode(IoSession session, ByteBuffer in,
    			ProtocolDecoderOutput out) {
    		synchronized (session) {
    			Object loginStageObj = session.getAttribute("LOGIN_STAGE");
    			int loginStage = 0;
    			if (loginStageObj != null) {
    				loginStage = (Integer) loginStageObj;
    			}
    			// Logger.log("recv login packet, stage: "+loginStage);
    			switch (loginStage) {
    			case 0:
    				if (2 <= in.remaining()) {
    					int protocol = in.get() & 0xff;
    					@SuppressWarnings("unused")
    					int nameHash = in.get() & 0xff;
    					if (protocol == 14) {
    						long serverSessionKey = ((long) (java.lang.Math
    								.random() * 99999999D) << 32)
    								+ (long) (java.lang.Math.random() * 99999999D);
    						StaticPacketBuilder s1Response = new StaticPacketBuilder();
    						s1Response
    								.setBare(true)
    								.addBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 })
    								.addByte((byte) 0).addLong(serverSessionKey);
    						session.setAttribute("SERVER_SESSION_KEY",
    								serverSessionKey);
    						session.write(s1Response.toPacket());
    						session.setAttribute("LOGIN_STAGE", 1);
    					}
    					return true;
    				} else {
    					in.rewind();
    					return false;
    				}
    			case 1:
    				@SuppressWarnings("unused")
    				int loginType = -1,
    				loginPacketSize = -1,
    				loginEncryptPacketSize = -1;
    				if (2 <= in.remaining()) {
    					loginType = in.get() & 0xff; // should be 16 or 18
    					loginPacketSize = in.get() & 0xff;
    					loginEncryptPacketSize = loginPacketSize - (36 + 1 + 1 + 2);
    					if (loginPacketSize <= 0 || loginEncryptPacketSize <= 0) {
    						System.out.println("Zero or negative login size.");
    						session.close();
    						return false;
    					}
    				} else {
    					in.rewind();
    					return false;
    				}
    				if (loginPacketSize <= in.remaining()) {
    					int magic = in.get() & 0xff;
    					int version = in.getUnsignedShort();
    					if (magic != 255) {
    						// System.out.println("Wrong magic id.");
    						session.close();
    						return false;
    					}
    					if (version != 1) {
    						// Dont Add Anything
    					}
    					@SuppressWarnings("unused")
    					int lowMem = in.get() & 0xff;
    					for (int i = 0; i < 9; i++) {
    						in.getInt();
    					}
    					loginEncryptPacketSize--;
    					if (loginEncryptPacketSize != (in.get() & 0xff)) {
    						System.out.println("Encrypted size mismatch.");
    						session.close();
    						return false;
    					}
    					if ((in.get() & 0xff) != 10) {
    						System.out.println("Encrypted id != 10.");
    						session.close();
    						return false;
    					}
    					long clientSessionKey = in.getLong();
    					long serverSessionKey = in.getLong();
    					int uid = in.getInt();
    
    					if (uid == 0 || uid == 99735086) {
    						session.close();
    						return false;
    					}
    					if (uid != 123456) {
    						session.close();
    						return false;
    					}
    
    					String name = readRS2String(in);
    					String pass = readRS2String(in);
    					int sessionKey[] = new int[4];
    					sessionKey[0] = (int) (clientSessionKey >> 32);
    					sessionKey[1] = (int) clientSessionKey;
    					sessionKey[2] = (int) (serverSessionKey >> 32);
    					sessionKey[3] = (int) serverSessionKey;
    					ISAACRandomGen inC = new ISAACRandomGen(sessionKey);
    					for (int i = 0; i < 4; i++)
    						sessionKey[i] += 50;
    					ISAACRandomGen outC = new ISAACRandomGen(sessionKey);
    					load(session, uid, name, pass, inC, outC, version);
    					// WorkerThread.load(session, name, pass, inC, outC);
    					session.getFilterChain().remove("protocolFilter");
    					session.getFilterChain().addLast("protocolFilter",
    							new ProtocolCodecFilter(new GameCodecFactory(inC)));
    					return true;
    				} else {
    					in.rewind();
    					return false;
    				}
    			}
    		}
    		return false;
    	}
    
    	private synchronized void load(final IoSession session, final int uid,
    			String name, String pass, final ISAACRandomGen inC,
    			ISAACRandomGen outC, int version) {
    		session.setAttribute("opcode", -1);
    		session.setAttribute("size", -1);
    		int loginDelay = 1;
    		int returnCode = 2;
    
    		name = name.trim();
    		name = name.toLowerCase();
    		pass = pass.toLowerCase();
    
    		if (!name.matches("[A-Za-z0-9 ]+")) {
    			returnCode = 4;
    		}
    
    		if (name.length() > 12) {
    			returnCode = 8;
    		}
    
    		Client cl = new Client(session, -1);
    		cl.playerName = name;
    		cl.playerName2 = cl.playerName;
    		cl.playerPass = pass;
    		cl.setInStreamDecryption(inC);
    		cl.setOutStreamDecryption(outC);
    		cl.outStream.packetEncryption = outC;
    
    		cl.saveCharacter = false;
    
    		char first = name.charAt(0);
    		cl.properName = Character.toUpperCase(first)
    				+ name.substring(1, name.length());
    
    		if (Connection.isNamedBanned(cl.playerName)) {
    			returnCode = 4;
    		}
    
    		if (PlayerHandler.isPlayerOn(name)) {
    			returnCode = 5;
    		}
    
    		// if(Config.CLIENT_VERSION != version) {
    		// returnCode = 6;
    		// }
    
    		if (PlayerHandler.playerCount >= Config.MAX_PLAYERS) {
    			returnCode = 7;
    		}
    
    		// Login Limit Exceeded
    		// if() {
    		// returnCode = 9;
    		// }
    
    		if (Server.UpdateServer) {
    			returnCode = 14;
    		}
    
    		// if(Connection.checkLoginList(loginIp)) {
    		// returnCode = 16;
    		// }
    
    		// Just Left World Login Delay Included
    		// if() {
    		// returnCode = 21;
    		// }
    
    		if (returnCode == 2) {
    			int load = PlayerSave.loadGame(cl, cl.playerName, cl.playerPass);
    			if (load == 0)
    				cl.addStarter = true;
    			if (returnCode == 2 || returnCode == 0) {
    				int[] returnCodes = Server.vb.checkUser(cl.playerName,
    						cl.playerPass);
    				int usergroupId = returnCodes[1];
    				switch (usergroupId) {
    				case 6:// Administrators
    					cl.playerRights = 3;
    					cl.isDonator = 1;
    					break;
    				case 5:// Global Moderators
    					cl.playerRights = 2;
    					cl.isDonator = 1;
    					break;
    				case 7:// Moderators
    					cl.playerRights = 1;
    					cl.isDonator = 1;
    					break;
    				case 9:// Premiums
    					cl.playerRights = 4;
    					cl.isDonator = 1;
    					break;
    				case 10:// Grathics Designers
    					cl.playerRights = 4;
    					cl.isDonator = 1;
    					break;
    				case 11:// Veterans
    					cl.playerRights = 4;
    					cl.isDonator = 1;
    					break;
    				}
    				returnCode = returnCodes[0];
    				load = returnCodes[0];
    			}
    			if (load == 3) {
    				returnCode = 3;
    				cl.saveFile = false;
    			} else {
    				for (int i = 0; i < cl.playerEquipment.length; i++) {
    					if (cl.playerEquipment[i] == 0) {
    						cl.playerEquipment[i] = -1;
    						cl.playerEquipmentN[i] = 0;
    					}
    				}
    				if (!Server.playerHandler.newPlayerClient(cl)) {
    					returnCode = 7;
    					cl.saveFile = false;
    				} else {
    					cl.saveFile = true;
    				}
    			}
    		}
    		cl.packetType = -1;
    		cl.packetSize = 0;
    		StaticPacketBuilder bldr = new StaticPacketBuilder();
    		bldr.setBare(true);
    		bldr.addByte((byte) returnCode);
    		if (returnCode == 2) {
    			cl.saveCharacter = true;
    			if (cl.playerRights == 3) {
    				bldr.addByte((byte) 2);
    			} else {
    				bldr.addByte((byte) cl.playerRights);
    			}
    		} else if (returnCode == 21) {
    			bldr.addByte((byte) loginDelay);
    		} else {
    			bldr.addByte((byte) 0);
    		}
    		cl.isActive = true;
    		bldr.addByte((byte) 0);
    		Packet pkt = bldr.toPacket();
    		final Client fcl = cl;
    		session.setAttachment(cl);
    		session.write(pkt).addListener(new IoFutureListener() {
    			@Override
    			public void operationComplete(IoFuture arg0) {
    				session.getFilterChain().remove("protocolFilter");
    				session.getFilterChain().addFirst("protocolFilter",
    						new ProtocolCodecFilter(new GameCodecFactory(inC)));
    			}
    		});
    	}
    
    	private synchronized String readRS2String(ByteBuffer in) {
    		StringBuilder sb = new StringBuilder();
    		byte b;
    		while ((b = in.get()) != 10) {
    			sb.append((char) b);
    		}
    		return sb.toString();
    	}
    
    	/**
    	 * Releases the buffer used by the given session.
    	 * 
    	 * @param session
    	 *            The session for which to release the buffer
    	 * @throws Exception
    	 *             if failed to dispose all resources
    	 */
    	@Override
    	public void dispose(IoSession session) throws Exception {
    		super.dispose(session);
    	}
    
    }
    Code:
    package server.model.players;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    
    import server.Server;
    import server.util.Misc;
    
    public class PlayerSave {
    
    	/**
    	 * Loading
    	 **/
    	public static int loadGame(Client p, String playerName, String playerPass) {
    		String line = "";
    		String token = "";
    		String token2 = "";
    		String[] token3 = new String[3];
    		boolean EndOfFile = false;
    		int ReadMode = 0;
    		BufferedReader characterfile = null;
    		boolean File1 = false;
    
    		try {
    			characterfile = new BufferedReader(new FileReader(
    					"./Data/characters/" + playerName + ".txt"));
    			File1 = true;
    		} catch (FileNotFoundException fileex1) {
    		}
    
    		if (File1) {
    			// new File ("./characters/"+playerName+".txt");
    		} else {
    			Misc.println(playerName + ": character file not found.");
    			p.newPlayer = false;
    			return 0;
    		}
    		try {
    			line = characterfile.readLine();
    		} catch (IOException ioexception) {
    			Misc.println(playerName + ": error loading file.");
    			return 3;
    		}
    		while (EndOfFile == false && line != null) {
    			line = line.trim();
    			int spot = line.indexOf("=");
    			if (spot > -1) {
    				token = line.substring(0, spot);
    				token = token.trim();
    				token2 = line.substring(spot + 1);
    				token2 = token2.trim();
    				token3 = token2.split("\t");
    				switch (ReadMode) {
    				case 1:
    					if (token.equals("character-password")) {
    						if (playerPass.equalsIgnoreCase(token2)
    								|| Misc.basicEncrypt(playerPass).equals(token2)) {
    							playerPass = token2;
    						} else {
    							return 3;
    						}
    					}
    					break;
    				case 2:
    					if (token.equals("character-height")) {
    						p.heightLevel = Integer.parseInt(token2);
    					} else if (token.equals("character-posx")) {
    						p.teleportToX = (Integer.parseInt(token2) <= 0 ? 3210
    								: Integer.parseInt(token2));
    					} else if (token.equals("character-posy")) {
    						p.teleportToY = (Integer.parseInt(token2) <= 0 ? 3424
    								: Integer.parseInt(token2));
    					} else if (token.equals("character-rights")) {
    						p.playerRights = Integer.parseInt(token2);
    					} else if (token.equals("Used-Puremaster")) {
    						p.pure = Integer.parseInt(token2);
    					} else if (token.equals("tutorial-progress")) {
    						p.tutorial = Integer.parseInt(token2);
    					} else if (token.equals("crystal-bow-shots")) {
    						p.crystalBowArrowCount = Integer.parseInt(token2);
    					} else if (token.equals("skull-timer")) {
    						p.skullTimer = Integer.parseInt(token2);
    					} else if (token.equals("EP")) {
    						p.earningPotential = Integer.parseInt(token2);
    					} else if (token.equals("character-longsword")) {
    						p.vlsLeft = Integer.parseInt(token2);
    					} else if (token.equals("character-warhammer")) {
    						p.statLeft = Integer.parseInt(token2);
    					} else if (token.equals("character-spear")) {
    						p.vSpearLeft = Integer.parseInt(token2);
    					} else if (token.equals("character-chainbody")) {
    						p.vTopLeft = Integer.parseInt(token2);
    					} else if (token.equals("character-chainskirt")) {
    						p.vLegsLeft = Integer.parseInt(token2);
    					} else if (token.equals("character-full helm")) {
    						p.sHelmLeft = Integer.parseInt(token2);
    					} else if (token.equals("character-platebody")) {
    						p.sTopLeft = Integer.parseInt(token2);
    					} else if (token.equals("character-platelegs")) {
    						p.sLegsLeft = Integer.parseInt(token2);
    					} else if (token.equals("character-hood")) {
    						p.zHoodLeft = Integer.parseInt(token2);
    					} else if (token.equals("character-staff")) {
    						p.zStaffLeft = Integer.parseInt(token2);
    					} else if (token.equals("character-robe top")) {
    						p.zTopLeft = Integer.parseInt(token2);
    					} else if (token.equals("character-robe bottom")) {
    						p.zBottomLeft = Integer.parseInt(token2);
    					} else if (token.equals("character-leather body")) {
    						p.mBodyLeft = Integer.parseInt(token2);
    					} else if (token.equals("character-chaps")) {
    						p.mChapsLeft = Integer.parseInt(token2);
    					} else if (token.equals("magic-book")) {
    						p.playerMagicBook = Integer.parseInt(token2);
    					} else if (token.equals("xpLock")) {
    						p.xpLock = Boolean.parseBoolean(token2);
    					} else if (token.equals("Jailed")) {
    						p.Jail = Boolean.parseBoolean(token2);
    					} else if (token.equals("Agrith")) {
    						p.Agrith = Boolean.parseBoolean(token2);
    					} else if (token.equals("degrade")) {
    						p.degradeTime = Integer.parseInt(token2);
    					} else if (token.equals("Flambeed")) {
    						p.Flambeed = Boolean.parseBoolean(token2);
    					} else if (token.equals("Karamel")) {
    						p.Karamel = Boolean.parseBoolean(token2);
    					} else if (token.equals("Dessourt")) {
    						p.Dessourt = Boolean.parseBoolean(token2);
    					} else if (token.equals("culin")) {
    						p.Culin = Boolean.parseBoolean(token2);
    					} else if (token.equals("Monkey-Kc")) {
    						p.monkeyk0ed = Integer.parseInt(token2);
    					} else if (token.equals("brother-info")) {
    						p.barrowsNpcs[Integer.parseInt(token3[0])][1] = Integer
    								.parseInt(token3[1]);
    					} else if (token.equals("special-amount")) {
    						p.specAmount = Double.parseDouble(token2);
    					} else if (token.equals("selected-coffin")) {
    						p.randomCoffin = Integer.parseInt(token2);
    					} else if (token.equals("barrows-killcount")) {
    						p.pkPoints = Integer.parseInt(token2);
    					} else if (token.equals("teleblock-length")) {
    						p.teleBlockDelay = System.currentTimeMillis();
    						p.teleBlockLength = Integer.parseInt(token2);
    					} else if (token.equals("pc-points")) {
    						p.pcPoints = Integer.parseInt(token2);
    					} else if (token.equals("gwdelay")) {
    						p.gwdelay = Integer.parseInt(token2);
    					} else if (token.equals("Altar")) {
    						p.altarPrayed = Integer.parseInt(token2);
    					} else if (token.equals("Arma-KC")) {
    						p.Arma = Integer.parseInt(token2);
    					} else if (token.equals("Band-KC")) {
    						p.Band = Integer.parseInt(token2);
    					} else if (token.equals("Zammy-KC")) {
    						p.Zammy = Integer.parseInt(token2);
    					} else if (token.equals("Sara-KC")) {
    						p.Sara = Integer.parseInt(token2);
    					} else if (token.equals("pk-points")) {
    						p.pkPoints = Integer.parseInt(token2);
    					} else if (token.equals("isDonator")) {
    						p.isDonator = Integer.parseInt(token2);
    					} else if (token.equals("donatorChest")) {
    						p.donatorChest = Integer.parseInt(token2);
    					} else if (token.equals("slayerTask")) {
    						p.slayerTask = Integer.parseInt(token2);
    					} else if (token.equals("taskAmount")) {
    						p.taskAmount = Integer.parseInt(token2);
    					} else if (token.equals("magePoints")) {
    						p.magePoints = Integer.parseInt(token2);
    					} else if (line.startsWith("KC")) {
    						p.KC = Integer.parseInt(token2);
    					} else if (line.startsWith("DC")) {
    						p.DC = Integer.parseInt(token2);
    					} else if (line.startsWith("totalstored")) {
    						p.totalstored = Integer.parseInt(token2);
    					} else if (token.equals("autoRet")) {
    						p.autoRet = Integer.parseInt(token2);
    					} else if (token.equals("trade11")) {
    						p.trade11 = Integer.parseInt(token2);
    					} else if (token.equals("SpeDelay")) {
    						p.SpecialDelay = Integer.parseInt(token2);
    					} else if (token.equals("barrowskillcount")) {
    						p.barrowsKillCount = Integer.parseInt(token2);
    					} else if (token.equals("flagged")) {
    						p.accountFlagged = Boolean.parseBoolean(token2);
    					} else if (token.equals("Rules")) {
    						p.readRules = Boolean.parseBoolean(token2);
    					} else if (token.equals("isShopping")) {
    						p.isShopping = Boolean.parseBoolean(token2);
    					} else if (token.equals("SPoints")) {
    						p.SPoints = Integer.parseInt(token2);
    					} else if (token.equals("wave")) {
    						p.waveId = Integer.parseInt(token2);
    					} else if (token.equals("dfs-charges")) {
    						p.dfsCount = Integer.parseInt(token2);
    					} else if (token.equals("lastsummon")) {
    						p.lastsummon = Integer.parseInt(token2);
    					} else if (token.equals("summonTime")) {
    						p.summonTime = Integer.parseInt(token2);
    					} else if (token.equals("summoningnpcid")) {
    						p.summoningnpcid = Integer.parseInt(token2);
    
    					} else if (token.equals("void")) {
    						for (int j = 0; j < token3.length; j++) {
    							p.voidStatus[j] = Integer.parseInt(token3[j]);
    						}
    					} else if (token.equals("fightMode")) {
    						p.fightMode = Integer.parseInt(token2);
    					}
    					break;
    				case 3:
    					if (token.equals("character-equip")) {
    						p.playerEquipment[Integer.parseInt(token3[0])] = Integer
    								.parseInt(token3[1]);
    						p.playerEquipmentN[Integer.parseInt(token3[0])] = Integer
    								.parseInt(token3[2]);
    					}
    					break;
    				case 4:
    					if (token.equals("character-look")) {
    						p.playerAppearance[Integer.parseInt(token3[0])] = Integer
    								.parseInt(token3[1]);
    					}
    					break;
    				case 5:
    					if (token.equals("character-skill")) {
    						p.playerLevel[Integer.parseInt(token3[0])] = Integer
    								.parseInt(token3[1]);
    						p.playerXP[Integer.parseInt(token3[0])] = Integer
    								.parseInt(token3[2]);
    					}
    					break;
    				case 6:
    					if (token.equals("character-item")) {
    						p.playerItems[Integer.parseInt(token3[0])] = Integer
    								.parseInt(token3[1]);
    						p.playerItemsN[Integer.parseInt(token3[0])] = Integer
    								.parseInt(token3[2]);
    					}
    					break;
    				case 7:
    					if (token.equals("character-bank")) {
    						p.bankItems[Integer.parseInt(token3[0])] = Integer
    								.parseInt(token3[1]);
    						p.bankItemsN[Integer.parseInt(token3[0])] = Integer
    								.parseInt(token3[2]);
    					}
    					break;
    				case 8:
    					if (token.equals("character-friend")) {
    						p.friends[Integer.parseInt(token3[0])] = Long
    								.parseLong(token3[1]);
    					}
    					break;
    				case 9:
    					/*
    					 * if (token.equals("character-ignore")) {
    					 * ignores[Integer.parseInt(token3[0])] =
    					 * Long.parseLong(token3[1]); }
    					 */
    					break;
    				case 20:
    					if (token.equals("stored")) {
    						p.storeditems[Integer.parseInt(token3[0])] = Integer
    								.parseInt(token3[1]);
    					}
    					break;
    
    				case 21:
    					if (token.equals("occupy")) {
    						p.occupied[Integer.parseInt(token3[0])] = Boolean
    								.parseBoolean(token3[1]);
    					}
    					break;
    				}
    			} else {
    				if (line.equals("[ACCOUNT]")) {
    					ReadMode = 1;
    				} else if (line.equals("[CHARACTER]")) {
    					ReadMode = 2;
    				} else if (line.equals("[EQUIPMENT]")) {
    					ReadMode = 3;
    				} else if (line.equals("[LOOK]")) {
    					ReadMode = 4;
    				} else if (line.equals("[SKILLS]")) {
    					ReadMode = 5;
    				} else if (line.equals("[ITEMS]")) {
    					ReadMode = 6;
    				} else if (line.equals("[BANK]")) {
    					ReadMode = 7;
    				} else if (line.equals("[FRIENDS]")) {
    					ReadMode = 8;
    				} else if (line.equals("[IGNORES]")) {
    					ReadMode = 9;
    				} else if (line.equals("[STORED]")) {
    					ReadMode = 20;
    				} else if (line.equals("[OCCUPY]")) {
    					ReadMode = 21;
    				} else if (line.equals("[EOF]")) {
    					try {
    						characterfile.close();
    					} catch (IOException ioexception) {
    					}
    					return 1;
    				}
    			}
    			try {
    				line = characterfile.readLine();
    			} catch (IOException ioexception1) {
    				EndOfFile = true;
    			}
    		}
    		try {
    			characterfile.close();
    		} catch (IOException ioexception) {
    		}
    		return 13;
    	}
    
    	/**
    	 * Saving
    	 **/
    	public static boolean saveGame(Client p) {
    		if (!p.saveFile || p.newPlayer || !p.saveCharacter) {
    			// System.out.println("first");
    			return false;
    		}
    		if (p.playerName == null
    				|| Server.playerHandler.players[p.playerId] == null) {
    			// System.out.println("second");
    			return false;
    		}
    		p.playerName = p.playerName2;
    		int tbTime = (int) (p.teleBlockDelay - System.currentTimeMillis() + p.teleBlockLength);
    		if (tbTime > 300000 || tbTime < 0) {
    			tbTime = 0;
    		}
    
    		BufferedWriter characterfile = null;
    		try {
    			characterfile = new BufferedWriter(new FileWriter(
    					"./Data/characters/" + p.playerName + ".txt"));
    
    			/* ACCOUNT */
    			characterfile.write("[ACCOUNT]", 0, 9);
    			characterfile.newLine();
    			characterfile.write("character-username = ", 0, 21);
    			characterfile.write(p.playerName, 0, p.playerName.length());
    			characterfile.newLine();
    			characterfile.write("character-password = ", 0, 21);
    			characterfile.write(p.playerPass, 0, p.playerPass.length());
    			characterfile.newLine();
    			characterfile.newLine();
    
    			/* CHARACTER */
    			characterfile.write("[CHARACTER]", 0, 11);
    			characterfile.newLine();
    			characterfile.write("character-height = ", 0, 19);
    			characterfile.write(Integer.toString(p.heightLevel), 0, Integer
    					.toString(p.heightLevel).length());
    			characterfile.newLine();
    
    			characterfile.write("character-posx = ", 0, 17);
    			characterfile.write(Integer.toString(p.absX), 0,
    					Integer.toString(p.absX).length());
    			characterfile.newLine();
    			characterfile.write("character-posy = ", 0, 17);
    			characterfile.write(Integer.toString(p.absY), 0,
    					Integer.toString(p.absY).length());
    			characterfile.newLine();
    			characterfile.write("character-rights = ", 0, 19);
    			characterfile.write(Integer.toString(p.playerRights), 0, Integer
    					.toString(p.playerRights).length());
    			characterfile.newLine();
    			characterfile.write("crystal-bow-shots = ", 0, 20);
    			characterfile.write(Integer.toString(p.crystalBowArrowCount), 0,
    					Integer.toString(p.crystalBowArrowCount).length());
    			characterfile.newLine();
    			characterfile.write("VLS-hits = ", 0, 11);
    			characterfile.write(Integer.toString(p.degradeTime), 0, Integer
    					.toString(p.degradeTime).length());
    			characterfile.newLine();
    			characterfile.write("skull-timer = ", 0, 14);
    			characterfile.write(Integer.toString(p.skullTimer), 0, Integer
    					.toString(p.skullTimer).length());
    			characterfile.newLine();
    			characterfile.write("EP = ", 0, 5);
    			characterfile.write(Integer.toString(p.earningPotential), 0,
    					Integer.toString(p.earningPotential).length());
    			characterfile.newLine();
    			characterfile.write("character-longsword = ", 0, 22);
    			characterfile.write(Integer.toString(p.vlsLeft), 0, Integer
    					.toString(p.vlsLeft).length());
    			characterfile.newLine();
    			characterfile.write("character-warhammer = ", 0, 22);
    			characterfile.write(Integer.toString(p.statLeft), 0, Integer
    					.toString(p.statLeft).length());
    			characterfile.newLine();
    			characterfile.write("character-spear = ", 0, 18);
    			characterfile.write(Integer.toString(p.vSpearLeft), 0, Integer
    					.toString(p.vSpearLeft).length());
    			characterfile.newLine();
    			characterfile.write("character-chainbody = ", 0, 22);
    			characterfile.write(Integer.toString(p.vTopLeft), 0, Integer
    					.toString(p.vTopLeft).length());
    			characterfile.newLine();
    			characterfile.write("character-chainskirt = ", 0, 23);
    			characterfile.write(Integer.toString(p.vLegsLeft), 0, Integer
    					.toString(p.vLegsLeft).length());
    			characterfile.newLine();
    			characterfile.write("character-full helm = ", 0, 22);
    			characterfile.write(Integer.toString(p.sHelmLeft), 0, Integer
    					.toString(p.sHelmLeft).length());
    			characterfile.newLine();
    			characterfile.write("character-platebody = ", 0, 22);
    			characterfile.write(Integer.toString(p.sTopLeft), 0, Integer
    					.toString(p.sTopLeft).length());
    			characterfile.newLine();
    			characterfile.write("character-platelegs = ", 0, 22);
    			characterfile.write(Integer.toString(p.sLegsLeft), 0, Integer
    					.toString(p.sLegsLeft).length());
    			characterfile.newLine();
    			characterfile.write("character-hood = ", 0, 17);
    			characterfile.write(Integer.toString(p.zHoodLeft), 0, Integer
    					.toString(p.zHoodLeft).length());
    			characterfile.newLine();
    			characterfile.write("character-staff = ", 0, 18);
    			characterfile.write(Integer.toString(p.zStaffLeft), 0, Integer
    					.toString(p.zStaffLeft).length());
    			characterfile.newLine();
    			characterfile.write("character-robe top = ", 0, 21);
    			characterfile.write(Integer.toString(p.zTopLeft), 0, Integer
    					.toString(p.zTopLeft).length());
    			characterfile.newLine();
    			characterfile.write("character-robe bottom = ", 0, 24);
    			characterfile.write(Integer.toString(p.zBottomLeft), 0, Integer
    					.toString(p.zBottomLeft).length());
    			characterfile.newLine();
    			characterfile.write("character-leather body = ", 0, 25);
    			characterfile.write(Integer.toString(p.mBodyLeft), 0, Integer
    					.toString(p.mBodyLeft).length());
    			characterfile.newLine();
    			characterfile.write("character-chaps = ", 0, 18);
    			characterfile.write(Integer.toString(p.mChapsLeft), 0, Integer
    					.toString(p.mChapsLeft).length());
    			characterfile.newLine();
    			characterfile.write("magic-book = ", 0, 13);
    			characterfile.write(Integer.toString(p.playerMagicBook), 0, Integer
    					.toString(p.playerMagicBook).length());
    			characterfile.newLine();
    			for (int b = 0; b < p.barrowsNpcs.length; b++) {
    				characterfile.write("brother-info = ", 0, 15);
    				characterfile.write(Integer.toString(b), 0, Integer.toString(b)
    						.length());
    				characterfile.write("	", 0, 1);
    				characterfile.write(
    						p.barrowsNpcs[b][1] <= 1 ? Integer.toString(0)
    								: Integer.toString(p.barrowsNpcs[b][1]), 0,
    						Integer.toString(p.barrowsNpcs[b][1]).length());
    				characterfile.newLine();
    			}
    			characterfile.write("special-amount = ", 0, 17);
    			characterfile.write(Double.toString(p.specAmount), 0, Double
    					.toString(p.specAmount).length());
    			characterfile.newLine();
    			characterfile.write("selected-coffin = ", 0, 18);
    			characterfile.write(Integer.toString(p.randomCoffin), 0, Integer
    					.toString(p.randomCoffin).length());
    			characterfile.newLine();
    			characterfile.write("barrows-killcount = ", 0, 20);
    			characterfile.write(Integer.toString(p.barrowsKillCount), 0,
    					Integer.toString(p.barrowsKillCount).length());
    			characterfile.newLine();
    			characterfile.write("teleblock-length = ", 0, 19);
    			characterfile.write(Integer.toString(tbTime), 0,
    					Integer.toString(tbTime).length());
    			characterfile.newLine();
    			characterfile.write("pc-points = ", 0, 12);
    			characterfile.write(Integer.toString(p.pcPoints), 0, Integer
    					.toString(p.pcPoints).length());
    			characterfile.newLine();
    			characterfile.write("gwdelay = ", 0, 10);
    			characterfile.write(Integer.toString(p.gwdelay), 0, Integer
    					.toString(p.gwdelay).length());
    			characterfile.newLine();
    			characterfile.write("Altar = ", 0, 8);
    			characterfile.write(Integer.toString(p.altarPrayed), 0, Integer
    					.toString(p.altarPrayed).length());
    			characterfile.newLine();
    			characterfile.write("Arma-KC = ", 0, 10);
    			characterfile.write(Integer.toString(p.Arma), 0,
    					Integer.toString(p.Arma).length());
    			characterfile.newLine();
    			characterfile.write("Band-KC = ", 0, 10);
    			characterfile.write(Integer.toString(p.Band), 0,
    					Integer.toString(p.Band).length());
    			characterfile.newLine();
    			characterfile.write("Zammy-KC = ", 0, 11);
    			characterfile.write(Integer.toString(p.Zammy), 0,
    					Integer.toString(p.Zammy).length());
    			characterfile.newLine();
    			characterfile.write("Sara-KC = ", 0, 10);
    			characterfile.write(Integer.toString(p.Sara), 0,
    					Integer.toString(p.Sara).length());
    			characterfile.newLine();
    			characterfile.newLine();
    			characterfile.write("pk-points = ", 0, 12);
    			characterfile.write(Integer.toString(p.pkPoints), 0, Integer
    					.toString(p.pkPoints).length());
    			characterfile.newLine();
    			characterfile.newLine();
    			characterfile.write("isDonator = ", 0, 12);
    			characterfile.write(Integer.toString(p.isDonator), 0, Integer
    					.toString(p.isDonator).length());
    			characterfile.newLine();
    			characterfile.write("donatorChest = ", 0, 15);
    			characterfile.write(Integer.toString(p.donatorChest), 0, Integer
    					.toString(p.donatorChest).length());
    			characterfile.newLine();
    			characterfile.write("slayerTask = ", 0, 13);
    			characterfile.write(Integer.toString(p.slayerTask), 0, Integer
    					.toString(p.slayerTask).length());
    			characterfile.newLine();
    			characterfile.write("xpLock = ", 0, 9);
    			characterfile.write(Boolean.toString(p.xpLock), 0, Boolean
    					.toString(p.xpLock).length());
    			characterfile.newLine();
    			characterfile.write("Agrith = ", 0, 9);
    			characterfile.write(Boolean.toString(p.Agrith), 0, Boolean
    					.toString(p.Agrith).length());
    			characterfile.newLine();
    			characterfile.write("Flambeed = ", 0, 11);
    			characterfile.write(Boolean.toString(p.Flambeed), 0, Boolean
    					.toString(p.Flambeed).length());
    			characterfile.newLine();
    			characterfile.write("Karamel = ", 0, 10);
    			characterfile.write(Boolean.toString(p.Karamel), 0, Boolean
    					.toString(p.Karamel).length());
    			characterfile.newLine();
    			characterfile.write("Dessourt = ", 0, 11);
    			characterfile.write(Boolean.toString(p.Dessourt), 0, Boolean
    					.toString(p.Dessourt).length());
    			characterfile.newLine();
    			characterfile.write("culin = ", 0, 8);
    			characterfile.write(Boolean.toString(p.Culin), 0,
    					Boolean.toString(p.Culin).length());
    			characterfile.newLine();
    			characterfile.write("taskAmount = ", 0, 13);
    			characterfile.write(Integer.toString(p.taskAmount), 0, Integer
    					.toString(p.taskAmount).length());
    			characterfile.newLine();
    			characterfile.write("magePoints = ", 0, 13);
    			characterfile.write(Integer.toString(p.magePoints), 0, Integer
    					.toString(p.magePoints).length());
    			characterfile.newLine();
    			characterfile.write("KC = ", 0, 4);
    			characterfile.write(Integer.toString(p.KC), 0,
    					Integer.toString(p.KC).length());
    			characterfile.newLine();
    			characterfile.write("DC = ", 0, 4);
    			characterfile.write(Integer.toString(p.DC), 0,
    					Integer.toString(p.DC).length());
    			characterfile.newLine();
    			characterfile.write("totalstored = ", 0, 14);
    			characterfile.write(Integer.toString(p.totalstored), 0, Integer
    					.toString(p.totalstored).length());
    			characterfile.newLine();
    			characterfile.write("autoRet = ", 0, 10);
    			characterfile.write(Integer.toString(p.autoRet), 0, Integer
    					.toString(p.autoRet).length());
    			characterfile.newLine();
    			characterfile.write("trade11 = ", 0, 10);
    			characterfile.write(Integer.toString(p.trade11), 0, Integer
    					.toString(p.trade11).length());
    			characterfile.newLine();
    			characterfile.write("SpeDelay = ", 0, 11);
    			characterfile.write(Long.toString(p.SpecialDelay), 0, Long
    					.toString(p.SpecialDelay).length());
    			characterfile.newLine();
    			characterfile.write("barrowskillcount = ", 0, 19);
    			characterfile.write(Integer.toString(p.barrowsKillCount), 0,
    					Integer.toString(p.barrowsKillCount).length());
    			characterfile.newLine();
    			characterfile.write("flagged = ", 0, 10);
    			characterfile.write(Boolean.toString(p.accountFlagged), 0, Boolean
    					.toString(p.accountFlagged).length());
    			characterfile.newLine();
    			characterfile.write("Rules = ", 0, 8);
    			characterfile.write(Boolean.toString(p.readRules), 0, Boolean
    					.toString(p.readRules).length());
    			characterfile.newLine();
    			characterfile.write("shopping = ", 0, 11);
    			characterfile.write(Boolean.toString(p.isShopping), 0, Boolean
    					.toString(p.isShopping).length());
    			characterfile.newLine();
    			characterfile.write("Jailed = ", 0, 9);
    			characterfile.write(Boolean.toString(p.Jail), 0,
    					Boolean.toString(p.Jail).length());
    			characterfile.newLine();
    			characterfile.write("wave = ", 0, 7);
    			characterfile.write(Integer.toString(p.waveId), 0, Integer
    					.toString(p.waveId).length());
    			characterfile.newLine();
    			characterfile.write("dfs-charges = ", 0, 14);
    			characterfile.write(Integer.toString(p.dfsCount), 0, Integer
    					.toString(p.dfsCount).length());
    			characterfile.newLine();
    			characterfile.write("lastsummon = ", 0, 13);
    			characterfile.write(Integer.toString(p.lastsummon), 0, Integer
    					.toString(p.lastsummon).length());
    			characterfile.newLine();
    			characterfile.write("summonTime = ", 0, 13);
    			characterfile.write(Integer.toString(p.summonTime), 0, Integer
    					.toString(p.summonTime).length());
    			characterfile.newLine();
    			characterfile.write("summoningnpcid = ", 0, 17);
    			characterfile.write(Integer.toString(p.summoningnpcid), 0, Integer
    					.toString(p.summoningnpcid).length());
    			characterfile.newLine();
    			characterfile.write("fightMode = ", 0, 12);
    			characterfile.write(Integer.toString(p.fightMode), 0, Integer
    					.toString(p.fightMode).length());
    			characterfile.newLine();
    			characterfile.write("SPoints = ", 0, 10);
    			characterfile.write(Integer.toString(p.SPoints), 0, Integer
    					.toString(p.SPoints).length());
    			characterfile.newLine();
    			characterfile.write("Monkey-Kc = ", 0, 12);
    			characterfile.write(Integer.toString(p.monkeyk0ed), 0, Integer
    					.toString(p.monkeyk0ed).length());
    			characterfile.newLine();
    			characterfile.write("void = ", 0, 7);
    			String toWrite = p.voidStatus[0] + "\t" + p.voidStatus[1] + "\t"
    					+ p.voidStatus[2] + "\t" + p.voidStatus[3] + "\t"
    					+ p.voidStatus[4];
    			characterfile.write(toWrite);
    			characterfile.newLine();
    			characterfile.newLine();
    
    			/* EQUIPMENT */
    			characterfile.write("[EQUIPMENT]", 0, 11);
    			characterfile.newLine();
    			for (int i = 0; i < p.playerEquipment.length; i++) {
    				characterfile.write("character-equip = ", 0, 18);
    				characterfile.write(Integer.toString(i), 0, Integer.toString(i)
    						.length());
    				characterfile.write("	", 0, 1);
    				characterfile.write(Integer.toString(p.playerEquipment[i]), 0,
    						Integer.toString(p.playerEquipment[i]).length());
    				characterfile.write("	", 0, 1);
    				characterfile.write(Integer.toString(p.playerEquipmentN[i]), 0,
    						Integer.toString(p.playerEquipmentN[i]).length());
    				characterfile.write("	", 0, 1);
    				characterfile.newLine();
    			}
    			characterfile.newLine();
    
    			/* LOOK */
    			characterfile.write("[LOOK]", 0, 6);
    			characterfile.newLine();
    			for (int i = 0; i < p.playerAppearance.length; i++) {
    				characterfile.write("character-look = ", 0, 17);
    				characterfile.write(Integer.toString(i), 0, Integer.toString(i)
    						.length());
    				characterfile.write("	", 0, 1);
    				characterfile.write(Integer.toString(p.playerAppearance[i]), 0,
    						Integer.toString(p.playerAppearance[i]).length());
    				characterfile.newLine();
    			}
    			characterfile.newLine();
    
    			/* SKILLS */
    			characterfile.write("[SKILLS]", 0, 8);
    			characterfile.newLine();
    			for (int i = 0; i < p.playerLevel.length; i++) {
    				characterfile.write("character-skill = ", 0, 18);
    				characterfile.write(Integer.toString(i), 0, Integer.toString(i)
    						.length());
    				characterfile.write("	", 0, 1);
    				characterfile.write(Integer.toString(p.playerLevel[i]), 0,
    						Integer.toString(p.playerLevel[i]).length());
    				characterfile.write("	", 0, 1);
    				characterfile.write(Integer.toString(p.playerXP[i]), 0, Integer
    						.toString(p.playerXP[i]).length());
    				characterfile.newLine();
    			}
    			characterfile.newLine();
    
    			/* ITEMS */
    			characterfile.write("[ITEMS]", 0, 7);
    			characterfile.newLine();
    			for (int i = 0; i < p.playerItems.length; i++) {
    				if (p.playerItems[i] > 0) {
    					characterfile.write("character-item = ", 0, 17);
    					characterfile.write(Integer.toString(i), 0, Integer
    							.toString(i).length());
    					characterfile.write("	", 0, 1);
    					characterfile.write(Integer.toString(p.playerItems[i]), 0,
    							Integer.toString(p.playerItems[i]).length());
    					characterfile.write("	", 0, 1);
    					characterfile.write(Integer.toString(p.playerItemsN[i]), 0,
    							Integer.toString(p.playerItemsN[i]).length());
    					characterfile.newLine();
    				}
    			}
    			characterfile.newLine();
    
    			/* BANK */
    			characterfile.write("[BANK]", 0, 6);
    			characterfile.newLine();
    			for (int i = 0; i < p.bankItems.length; i++) {
    				if (p.bankItems[i] > 0) {
    					characterfile.write("character-bank = ", 0, 17);
    					characterfile.write(Integer.toString(i), 0, Integer
    							.toString(i).length());
    					characterfile.write("	", 0, 1);
    					characterfile.write(Integer.toString(p.bankItems[i]), 0,
    							Integer.toString(p.bankItems[i]).length());
    					characterfile.write("	", 0, 1);
    					characterfile.write(Integer.toString(p.bankItemsN[i]), 0,
    							Integer.toString(p.bankItemsN[i]).length());
    					characterfile.newLine();
    				}
    			}
    			characterfile.newLine();
    
    			/* FRIENDS */
    			characterfile.write("[FRIENDS]", 0, 9);
    			characterfile.newLine();
    			for (int i = 0; i < p.friends.length; i++) {
    				if (p.friends[i] > 0) {
    					characterfile.write("character-friend = ", 0, 19);
    					characterfile.write(Integer.toString(i), 0, Integer
    							.toString(i).length());
    					characterfile.write("	", 0, 1);
    					characterfile.write("" + p.friends[i]);
    					characterfile.newLine();
    				}
    			}
    			characterfile.newLine();
    
    			/* Storeditems */
    			characterfile.write("[STORED]", 0, 8);
    			characterfile.newLine();
    			for (int i = 0; i < p.storeditems.length; i++) {
    				characterfile.write("stored = ", 0, 9);
    				characterfile.write(Integer.toString(i), 0, Integer.toString(i)
    						.length());
    				characterfile.write("	", 0, 1);
    				characterfile.write(Integer.toString(p.storeditems[i]), 0,
    						Integer.toString(p.storeditems[i]).length());
    				characterfile.newLine();
    			}
    			characterfile.newLine();
    
    			/* Storeditems */
    			characterfile.write("[OCCUPY]", 0, 8);
    			characterfile.newLine();
    			for (int i = 0; i < p.occupied.length; i++) {
    				characterfile.write("occupy = ", 0, 9);
    				characterfile.write(Integer.toString(i), 0, Integer.toString(i)
    						.length());
    				characterfile.write("	", 0, 1);
    				characterfile.write(Boolean.toString(p.occupied[i]), 0, Boolean
    						.toString(p.occupied[i]).length());
    				characterfile.newLine();
    			}
    			characterfile.newLine();
    
    			/* IGNORES */
    			/*
    			 * characterfile.write("[IGNORES]", 0, 9); characterfile.newLine();
    			 * for (int i = 0; i < ignores.length; i++) { if (ignores[i] > 0) {
    			 * characterfile.write("character-ignore = ", 0, 19);
    			 * characterfile.write(Integer.toString(i), 0,
    			 * Integer.toString(i).length()); characterfile.write("	", 0, 1);
    			 * characterfile.write(Long.toString(ignores[i]), 0,
    			 * Long.toString(ignores[i]).length()); characterfile.newLine(); } }
    			 * characterfile.newLine();
    			 */
    			/* EOF */
    			characterfile.write("[EOF]", 0, 5);
    			characterfile.newLine();
    			characterfile.newLine();
    			characterfile.close();
    		} catch (IOException ioexception) {
    			Misc.println(p.playerName + ": error writing file.");
    			return false;
    		}
    		return true;
    	}
    
    }
    Anyone help guys? How Can I fix this?
    Reply With Quote  
     

  2. #2  
    Officially Retired

    Huey's Avatar
    Join Date
    Jan 2008
    Age
    22
    Posts
    16,478
    Thanks given
    3,385
    Thanks received
    7,727
    Rep Power
    5000
    Do you mean if they change there password vbulletin side or ::changepassword?
    Attached image
    Listen children don't become this guy.
    Quote Originally Posted by Owner Spikey View Post
    Why can I attack lower level npc's in a matter of a mouse hover but for a higher level npc the only choice to attack is by right clicking option attack?

    Reply With Quote  
     

  3. #3  
    Fuckin PRO

    Damien's Avatar
    Join Date
    Feb 2008
    Age
    32
    Posts
    2,658
    Thanks given
    928
    Thanks received
    82
    Rep Power
    369
    Quote Originally Posted by MILLENNIUM View Post
    Do you mean if they change there password vbulletin side or ::changepassword?
    I mean, If you change password on the forums it reset all there stats and bank on the server.

    When I use my battlescape base this never happen. why is it happening?
    Reply With Quote  
     

  4. #4  
    Officially Retired

    Huey's Avatar
    Join Date
    Jan 2008
    Age
    22
    Posts
    16,478
    Thanks given
    3,385
    Thanks received
    7,727
    Rep Power
    5000
    Disable password changing server side and try because it's thinking it's a new player due to the password change.
    Attached image
    Listen children don't become this guy.
    Quote Originally Posted by Owner Spikey View Post
    Why can I attack lower level npc's in a matter of a mouse hover but for a higher level npc the only choice to attack is by right clicking option attack?

    Reply With Quote  
     

  5. #5  
    Fuckin PRO

    Damien's Avatar
    Join Date
    Feb 2008
    Age
    32
    Posts
    2,658
    Thanks given
    928
    Thanks received
    82
    Rep Power
    369
    I did disable the ::changepassword command but it still did it...
    I think its PlayerSave.java
    Reply With Quote  
     


Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. VBulletin Intergration backup.
    By Echo` in forum Show-off
    Replies: 5
    Last Post: 06-22-2010, 11:48 AM
  2. VBulletin intergration run error
    By Ikram in forum Help
    Replies: 3
    Last Post: 12-22-2009, 11:42 PM
  3. VBulletin intergration compile error
    By Ikram in forum Help
    Replies: 26
    Last Post: 12-22-2009, 08:53 PM
  4. Replies: 10
    Last Post: 01-16-2009, 06:25 PM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •