/// <summary> /// Initialize the File Manager by the given Hellgate path. /// </summary> /// <param name="hellgatePath">Path to the Hellgate installation.</param> /// <param name="clientVersion">Specifies which DataFileMap to use.</param> public FileManager(String hellgatePath, ClientVersions clientVersion = ClientVersions.SinglePlayer) { ClientVersion = clientVersion; HellgatePath = hellgatePath; Language = Config.StringsLanguage; // check if we're actually loading from the resurrection .dat files if (ClientVersion == ClientVersions.SinglePlayer) { String versionDat = Path.Combine(hellgatePath, "Version.dat"); if (File.Exists(versionDat)) { ClientVersion = ClientVersions.Resurrection; } } IsVersionTestCenter = (ClientVersion == ClientVersions.TestCenter); IsVersionResurrection = (ClientVersion == ClientVersions.Resurrection); IsVersionMod = (ClientVersion == ClientVersions.Mod); // load file table Reload(); }
public static void AdjustPacketSizeByVersion(ClientVersions version) { if (version >= ClientVersions.CV_500A) { _packetsTable[0x0B] = 0x07; _packetsTable[0x16] = -1; _packetsTable[0x31] = -1; } else { _packetsTable[0x0B] = 0x10A; _packetsTable[0x16] = 0x01; _packetsTable[0x31] = 0x01; } if (version >= ClientVersions.CV_5090) { _packetsTable[0xE1] = -1; } else { _packetsTable[0xE1] = 0x09; } if (version >= ClientVersions.CV_6013) { _packetsTable[0xE3] = -1; _packetsTable[0xE6] = 0x05; _packetsTable[0xE7] = 0x0C; _packetsTable[0xE8] = 0x0D; _packetsTable[0xE9] = 0x4B; _packetsTable[0xEA] = 0x03; } else { _packetsTable[0xE3] = 0x4D; _packetsTable[0xE6] = -1; _packetsTable[0xE7] = -1; _packetsTable[0xE8] = -1; _packetsTable[0xE9] = -1; _packetsTable[0xEA] = -1; } if (version >= ClientVersions.CV_6017) { _packetsTable[0x08] = 0x0F; _packetsTable[0x25] = 0x15; } else { _packetsTable[0x08] = 0x0E; _packetsTable[0x25] = 0x14; } if (version >= ClientVersions.CV_6060) { _packetsTable[0xEE] = 0x2000; _packetsTable[0xEF] = 0x2000; _packetsTable[0xF1] = 0x09; } else { _packetsTable[0xEE] = -1; _packetsTable[0xEF] = 0x15; _packetsTable[0xF1] = -1; } if (version >= ClientVersions.CV_60142) { _packetsTable[0xB9] = 0x05; } else { _packetsTable[0xB9] = 0x03; } if (version >= ClientVersions.CV_7000) { _packetsTable[0xEE] = 0x0A; //0x2000; _packetsTable[0xEF] = 0x15; //0x2000; } else { _packetsTable[0xEE] = -1; _packetsTable[0xEF] = 0x15; } if (version >= ClientVersions.CV_7090) { _packetsTable[0x24] = 0x09; _packetsTable[0x99] = 0x1E; _packetsTable[0xBA] = 0x0A; _packetsTable[0xF3] = 0x1A; _packetsTable[0xF1] = 0x09; _packetsTable[0xF2] = 0x19; } else { _packetsTable[0x24] = 0x07; _packetsTable[0x99] = 0x1A; _packetsTable[0xBA] = 0x06; _packetsTable[0xF3] = 0x18; _packetsTable[0xF1] = -1; _packetsTable[0xF2] = -1; } if (version >= ClientVersions.CV_70180) { _packetsTable[0x00] = 0x6A; } else { _packetsTable[0x00] = 0x68; } }
private ClientVersions GetVersions() { ClientVersions result = new ClientVersions(); int.TryParse(Context.QueryString["g"], out result.Game); int.TryParse(Context.QueryString["f"], out result.Floor); int.TryParse(Context.QueryString["p"], out result.Player); return result; }