private byte[] loadBackgroundInfo(int charID) { MarginCharacter marginCharacter = Store.dbManager.MarginDbHandler.getCharInfo(charID); PacketContent pak = new PacketContent(); if (!isNewCreatedChar) { pak.addByteArray(StringUtils.hexStringToBytes("01000000640000007B0000006500000000000000000000006C000000000000002B010000")); } pak.addStringWithFixedSized(marginCharacter.firstname, 32); pak.addStringWithFixedSized(marginCharacter.lastname, 32); pak.addStringWithFixedSized(marginCharacter.background, 1024); // ToDo: Analyse it and (Rep zion => 82, Rep Machine 2, RepMero 81 //pak.addHexBytes("000000000000000000178604E40008AF2F0175020000A39F714A81FF81FF81FF670067006700000003000301310000B402320000B403380000B4044E0000000200510000001600520000001900540000001300"); pak.addUint32(marginCharacter.exp, 1); pak.addUint32(marginCharacter.cash, 1); pak.addUintShort(0x01); // Flag - always 1 pak.addUint32(200, 1); // CQ Points pak.addByteArray(TimeUtils.getCurrentTime()); //pak.addByteArray(StringUtils.hexStringToBytes("875D714A")); // Last Changed Timestamp - current its static - needs to be dynamic // Rputation Bytes (int16[7]) pak.addInt16(-116, 1); pak.addInt16(-117, 1); pak.addInt16(-20, 1); pak.addInt16(-59, 1); pak.addInt16(-58, 1); pak.addInt16(-57, 1); pak.addInt16(2, 1); pak.addByte(0x03); // 01 = onWorld , 00 = LA . In World you have to take care to not spawn the Character in LA State if (marginCharacter.districtId != 0) { pak.addByte(0x01); } else { pak.addByte(0x00); } pak.addHexBytes("0301310000b402320000b403380000b403510000000400520000000b00540000000100"); // The Last Part #if DEBUG if (isNewCreatedChar == true) { Output.WriteLine("Load Background Reply for Created Char:\n" + pak.returnFinalPacket()); } #endif return(pak.returnFinalPacket()); }
public void SendServerSettingString(WorldClient client, string key, string value) { PacketContent pak = new PacketContent(); pak.addUintShort((ushort)RPCResponseHeaders.SERVER_FEATURE_EVENT); int fullLen = key.Length + value.Length; pak.addInt16((short)fullLen, 1); pak.addSizedString(key); pak.addSizedString(value); client.messageQueue.addRpcMessage(pak.returnFinalPacket()); }