public BotClient() { AccountManager = new AccountManager("Accounts"); PokemonEvolver = new PokemonEvolver(this); MoveTeacher = new MoveTeacher(this); StaffAvoider = new StaffAvoider(this); AutoReconnector = new AutoReconnector(this); MovementResynchronizer = new MovementResynchronizer(this); Rand = new Random(); }
public BotClient() { AccountManager = new AccountManager("Accounts"); PokemonEvolver = new PokemonEvolver(this); MoveTeacher = new MoveTeacher(this); StaffAvoider = new StaffAvoider(this); AutoReconnector = new AutoReconnector(this); MovementResynchronizer = new MovementResynchronizer(this); Rand = new Random(); }
public BotClient() { AccountManager = new AccountManager("Accounts"); PokemonEvolver = new PokemonEvolver(this); MovementResynchronizer = new MovementResynchronizer(this); MoveTeacher = new MoveTeacher(this); AutoReconnector = new AutoReconnector(this); AutoLootBoxOpener = new AutoLootBoxOpener(this); QuestManager = new QuestManager(this); Settings = new UserSettings(); }
public BotClient() { AccountManager = new AccountManager("Accounts"); PokemonEvolver = new PokemonEvolver(this); MovementResynchronizer = new MovementResynchronizer(this); MoveTeacher = new MoveTeacher(this); AutoReconnector = new AutoReconnector(this); AutoLootBoxOpener = new AutoLootBoxOpener(this); QuestManager = new QuestManager(this); Settings = new UserSettings(); #if DEBUG byte[] bytes = new byte[] { 0x50, 0x6a, 0x03, 0xc2, 0xcf, 0x68, 0x90, 0xe6, 0xba, 0x32, 0x3c, 0x1a, 0x08, 0x00, 0x45, 0x00, 0x00, 0x28, 0x78, 0x91, 0x40, 0x00, 0x80, 0x06, 0x00, 0x00, 0xc0, 0xa8, 0x01, 0x0e, 0x5f, 0xb7, 0x30, 0x44, 0xed, 0x6f, 0x07, 0xdc, 0x54, 0x7f, 0x6b, 0x80, 0x7d, 0x82, 0x1a, 0x41, 0x50, 0x10, 0x01, 0x00, 0x51, 0xcc, 0x00, 0x00 }; var pc = Convert.ToBase64String(bytes); Console.WriteLine(pc); var packet = @"Battle Chp8LS1vbmxpbmV8cDF8MHxnaWJ1eWhpbHRvbioGeW93aXRhKgtnaWJ1eWhpbHRvbioLZ2lidXloaWx0b244WkgBUAFYAWBO"; var data = packet.Split(" ".ToCharArray()); byte[] array = Convert.FromBase64String(data[1]); var type = Type.GetType($"PSXAPI.Request.{data[0]}, PSXAPI"); if (type != null) { var proto = typeof(PSXAPI.Proto).GetMethod("Deserialize").MakeGenericMethod(new Type[] { type }).Invoke(null, new object[] { array }) as PSXAPI.IProto; Console.WriteLine(ToJsonString(proto)); //Console.WriteLine($"MapLoad: {(proto as PSXAPI.Request.BattleBroadcast).RequestID}, ID: {(proto as PSXAPI.Request.BattleBroadcast)._Name.ToString()}"); } else { type = Type.GetType($"PSXAPI.Response.{data[0]}, PSXAPI"); if (type != null) { var proto = typeof(PSXAPI.Proto).GetMethod("Deserialize").MakeGenericMethod(new Type[] { type }).Invoke(null, new object[] { array }) as PSXAPI.IProto; Console.WriteLine(ToJsonString(proto)); // Console.WriteLine($"MapLoad: {(proto as PSXAPI.Request.BattleBroadcast).RequestID}, ID: {(proto as PSXAPI.Request.BattleBroadcast)._Name.ToString()}"); } } #endif }
public BotClient() { AccountManager = new AccountManager("Accounts"); PokemonEvolver = new PokemonEvolver(this); MoveTeacher = new MoveTeacher(this); StaffAvoider = new StaffAvoider(this); AutoReconnector = new AutoReconnector(this); MovementResynchronizer = new MovementResynchronizer(this); Rand = new Random(); SliderOptions = new Dictionary <int, OptionSlider>(); TextOptions = new Dictionary <int, TextOption>(); }
public BotClient() { AccountManager = new AccountManager("Accounts"); PokemonEvolver = new PokemonEvolver(this); MoveTeacher = new MoveTeacher(this); StaffAvoider = new StaffAvoider(this); AutoReconnector = new AutoReconnector(this); IsTrainerBattlesActive = new IsTrainerBattlesActive(this); MovementResynchronizer = new MovementResynchronizer(this); Rand = new Random(); SliderOptions = new Dictionary <int, OptionSlider>(); TextOptions = new Dictionary <int, TextOption>(); countGMTele = 0; CallingPaueScript = false; }
public BotClient() { AccountManager = new AccountManager("Accounts"); PokemonEvolver = new PokemonEvolver(this); MoveTeacher = new MoveTeacher(this); StaffAvoider = new StaffAvoider(this); AutoReconnector = new AutoReconnector(this); MovementResynchronizer = new MovementResynchronizer(this); Rand = new Random(); Options = new OptionSlider[] { new OptionSlider("Option 1: ", "Custom option 1 for use in scripts", 1), new OptionSlider("Option 2: ", "Custom option 2 for use in scripts", 2), new OptionSlider("Option 3: ", "Custom option 3 for use in scripts", 3), new OptionSlider("Option 4: ", "Custom option 4 for use in scripts", 4), new OptionSlider("Option 5: ", "Custom option 5 for use in scripts", 5) }; }
private void Client_TeleportationOccuring(string map, int x, int y) { string message = "Position updated: [" + map + "] (" + x + ", " + y + ")"; if (Game.Map == null || Game.IsTeleporting) { message += " [OK]"; } else if (Game.MapName != map) { message += " [WARNING, different map] /!\\"; Script?.OnWarningMessage(true); } else { int distance = GameClient.DistanceBetween(x, y, Game.PlayerX, Game.PlayerY); if (distance < 8) { message += " [OK, lag, distance=" + distance + "]"; } else { message += " [WARNING, distance=" + distance + "] /!\\"; Script?.OnWarningMessage(false, distance); } Script?.OnMovementLag(distance); } if (message.Contains("OK")) { LogMessage(message, Brushes.LimeGreen); } if (message.Contains("WARNING")) { LogMessage(message, Brushes.OrangeRed); } MovementResynchronizer.Reset(); }
public bool MoveToCell(int x, int y, int requiredDistance = 0) { MovementResynchronizer.CheckMovement(x, y); Pathfinding path = new Pathfinding(Game); bool result; if (Game.PlayerX == x && Game.PlayerY == y) { result = path.MoveToSameCell(); } else { result = path.MoveTo(x, y, requiredDistance); } if (result) { MovementResynchronizer.ApplyMovement(x, y); } return(result); }
public BotClient(string xmlFile = "") { PokemonEvolver = new PokemonEvolver(this); MoveTeacher = new MoveTeacher(this); StaffAvoider = new StaffAvoider(this); AutoReconnector = new AutoReconnector(this); IsTrainerBattlesActive = new IsTrainerBattlesActive(this); MovementResynchronizer = new MovementResynchronizer(this); Rand = new Random(); SliderOptions = new Dictionary <int, OptionSlider>(); TextOptions = new Dictionary <int, TextOption>(); countGMTele = 0; CallingPaueScript = false; messageProcess = false; BeAwareOfStaff = false; NeedResync = false; StartScriptInstant = false; LanguageXmlFile = ""; if (!string.IsNullOrEmpty(xmlFile)) { LanguageXmlFile = xmlFile; } }
public BotClient() { AccountManager = new AccountManager("Accounts"); PokemonEvolver = new PokemonEvolver(this); MovementResynchronizer = new MovementResynchronizer(this); MoveTeacher = new MoveTeacher(this); AutoReconnector = new AutoReconnector(this); AutoLootBoxOpener = new AutoLootBoxOpener(this); QuestManager = new QuestManager(this); Settings = new UserSettings(); #if DEBUG byte[] bytes = new byte[] { 0x50, 0x6a, 0x03, 0xc2, 0xcf, 0x68, 0x90, 0xe6, 0xba, 0x32, 0x3c, 0x1a, 0x08, 0x00, 0x45, 0x00, 0x00, 0x28, 0x78, 0x91, 0x40, 0x00, 0x80, 0x06, 0x00, 0x00, 0xc0, 0xa8, 0x01, 0x0e, 0x5f, 0xb7, 0x30, 0x44, 0xed, 0x6f, 0x07, 0xdc, 0x54, 0x7f, 0x6b, 0x80, 0x7d, 0x82, 0x1a, 0x41, 0x50, 0x10, 0x01, 0x00, 0x51, 0xcc, 0x00, 0x00 }; var pc = Convert.ToBase64String(bytes); Console.WriteLine(pc); var enc = Poke1Protocol.StringCipher.EncryptOrDecryptToBase64Byte("username;)", "db2a1b6e-34d9-46ae-b319-d58bfc71011d"); var s64 = new PSXAPI.Request.Ack { Data = enc }; Console.WriteLine(Encoding.UTF8.GetString(s64.Data)); //var packet = @"InventoryPokemon CtEBChIJ8TZvO060XkYRhk8er86fOWQSjgEIowEQCxjPCyAkKgYIXRAZGBkqBggtECgYKCoGCCEQIxgjKgYIXxAUGBQwAjhoQAtSDAgTEAQYHyAJKAEwDloAYAJqEgm/i6xDrmcMTxGCrF/kjgIhyXISCb+LrEOuZwxPEYKsX+SOAiHJgAEEkAHDruOwAaIBBhACIAEwBqoBCwi+8s/AlfvlNhAFsAEDGgwIJBAMGBAgCygRMBEiBXhjb2RlKgV4Y29kZTIIS2VlbiBFeWU4swpAwA0Q////////////ARj///////////8BIP///////////wE="; //var packet = @"Transfer CAESEgnxNm87TrReRhGGTx6vzp85ZA=="; //var packet = @"Reorder ChIJ8TZvO060XkYRhk8er86fOWQKEgkmzfVu9CvLSRGQRb3nB/7fDAoSCfYOcUXnX0tPEaMc+TIXvZ2yChIJYRN0DkiWxU0RgB2UOdBYu10KEgnc3Xc6Zt6VQRG0ts8aa5F9XQ=="; var packet = @"Battle CgZ8c3BsaXQKCXxjaG9pY2V8fAo3fGNob2ljZXxtb3ZlIGJpdGUgMywgbW92ZSB0YWNrbGUgMywgbW92ZSB0aHVuZGVyZmFuZyAxfApAfGNob2ljZXx8bW92ZSBjbGVhcnNtb2cgMywgbW92ZSBkcmFnb25icmVhdGggMSwgbW92ZSBkb3VibGVoaXQgMgpufGNob2ljZXxtb3ZlIGJpdGUgMywgbW92ZSB0YWNrbGUgMywgbW92ZSB0aHVuZGVyZmFuZyAxfG1vdmUgY2xlYXJzbW9nIDMsIG1vdmUgZHJhZ29uYnJlYXRoIDEsIG1vdmUgZG91YmxlaGl0IDIKAXwKLHxtb3ZlfHAyYjogT25peHxEcmFnb24gQnJlYXRofHAxYTogQmxhc3RvaXNlCgZ8c3BsaXQKHXwtZGFtYWdlfHAxYTogQmxhc3RvaXNlfDEzLzQ4Ch18LWRhbWFnZXxwMWE6IEJsYXN0b2lzZXwyNC84OAodfC1kYW1hZ2V8cDFhOiBCbGFzdG9pc2V8MTMvNDgKHXwtZGFtYWdlfHAxYTogQmxhc3RvaXNlfDI0Lzg4Cht8LXN0YXR1c3xwMWE6IEJsYXN0b2lzZXxwYXIKKXxtb3ZlfHAxYTogQmxhc3RvaXNlfEJpdGV8cDJjOiBLYW5nYXNraGFuCgZ8c3BsaXQKHnwtZGFtYWdlfHAyYzogS2FuZ2Fza2hhbnwzNS80OAoefC1kYW1hZ2V8cDJjOiBLYW5nYXNraGFufDM1LzQ4Ch58LWRhbWFnZXxwMmM6IEthbmdhc2toYW58NzMvOTkKHnwtZGFtYWdlfHAyYzogS2FuZ2Fza2hhbnw3My85OQotfG1vdmV8cDJjOiBLYW5nYXNraGFufERvdWJsZSBIaXR8cDFiOiBOb2N0b3dsCgZ8c3BsaXQKG3wtZGFtYWdlfHAxYjogTm9jdG93bHwwIGZudAobfC1kYW1hZ2V8cDFiOiBOb2N0b3dsfDAgZm50Cht8LWRhbWFnZXxwMWI6IE5vY3Rvd2x8MCBmbnQKG3wtZGFtYWdlfHAxYjogTm9jdG93bHwwIGZudAoZfC1oaXRjb3VudHxwMWI6IE5vY3Rvd2x8MQoTfGZhaW50fHAxYjogTm9jdG93bAorfG1vdmV8cDJhOiBLb2ZmaW5nfENsZWFyIFNtb2d8cDFjOiBTbnViYnVsbAoefC1zdXBlcmVmZmVjdGl2ZXxwMWM6IFNudWJidWxsCgZ8c3BsaXQKHHwtZGFtYWdlfHAxYzogU251YmJ1bGx8MCBmbnQKHHwtZGFtYWdlfHAxYzogU251YmJ1bGx8MCBmbnQKHHwtZGFtYWdlfHAxYzogU251YmJ1bGx8MCBmbnQKHHwtZGFtYWdlfHAxYzogU251YmJ1bGx8MCBmbnQKGnwtY2xlYXJib29zdHxwMWM6IFNudWJidWxsChR8ZmFpbnR8cDFjOiBTbnViYnVsbAoBfAoHfHVwa2VlcBKxDAoCcDEQCRqoDAgJEAEoACgBKAE6mwwKAnAxEgJwMRqEAgoNcDE6IEJsYXN0b2lzZRIRQmxhc3RvaXNlLCBMMjksIE0aCTI0Lzg4IHBhciABKgoIORBTGD8gRChGMgRiaXRlMgp3YXRlcnB1bHNlMgh3YXRlcmd1bjIIYXF1YXRhaWw6B3RvcnJlbnRCAEoIcG9rZWJhbGxSBmZpdmF0b1j1w92UBGIYCgRCaXRlEgRiaXRlGBYgGSoGbm9ybWFsYiAKC1dhdGVyIFB1bHNlEgp3YXRlcnB1bHNlIBQqA2FueWIhCglXYXRlciBHdW4SCHdhdGVyZ3VuGBkgGSoGbm9ybWFsYh8KCUFxdWEgVGFpbBIIYXF1YXRhaWwgCioGbm9ybWFsGooCCgtwMTogTm9jdG93bBIPTm9jdG93bCwgTDIyLCBNGgUwIGZudCABKgoIHxAbGDAgMCgiMgtwc3ljaG9zaGlmdDIFZ3Jvd2wyBnRhY2tsZTIIaHlwbm9zaXM6CGluc29tbmlhQgBKB3Bva2JhbGxSBmZpdmF0b1jJwNqiBGInCgxQc3ljaG8gU2hpZnQSC3BzeWNob3NoaWZ0GAogCioGbm9ybWFsYiMKBUdyb3dsEgVncm93bBgoICgqD2FsbEFkamFjZW50Rm9lc2IcCgZUYWNrbGUSBnRhY2tsZRgaICMqBm5vcm1hbGIgCghIeXBub3NpcxIIaHlwbm9zaXMYFCAUKgZub3JtYWwagwIKDHAxOiBTbnViYnVsbBIQU251YmJ1bGwsIEwxMywgRhoFMCBmbnQgASoKCB0QFBgPIBIoDzIIdGFpbHdoaXAyC3RodW5kZXJmYW5nMgRiaXRlMgRsaWNrOgdydW5hd2F5QgBKB3Bva2JhbGxSBmZpdmF0b1i5oJ/vAmIqCglUYWlsIFdoaXASCHRhaWx3aGlwGB4gHioPYWxsQWRqYWNlbnRGb2VzYicKDFRodW5kZXIgRmFuZxILdGh1bmRlcmZhbmcYDiAPKgZub3JtYWxiGAoEQml0ZRIEYml0ZRgZIBkqBm5vcm1hbGIYCgRMaWNrEgRsaWNrGB4gHioGbm9ybWFsGvkBCgtwMTogUmF0dGF0YRIPUmF0dGF0YSwgTDE3LCBGGgUwIGZudCoKCBwQERgPIA4oHjIEYml0ZTIDY3V0MgtxdWlja2F0dGFjazILZm9jdXNlbmVyZ3k6B3J1bmF3YXlCAEoHcG9rYmFsbFIGZml2YXRvWP2nimBiGAoEQml0ZRIEYml0ZRgZIBkqBm5vcm1hbGIWCgNDdXQSA2N1dBgdIB4qBm5vcm1hbGInCgxRdWljayBBdHRhY2sSC3F1aWNrYXR0YWNrGB4gHioGbm9ybWFsYiUKDEZvY3VzIEVuZXJneRILZm9jdXNlbmVyZ3kYHiAeKgRzZWxmGvYBCgpwMTogTWVvd3RoEg5NZW93dGgsIEwxNCwgTRoFMCBmbnQqCggVEBAYEiASKB4yB3NjcmF0Y2gyBGJpdGUyB2Zha2VvdXQyCmZ1cnlzd2lwZXM6BnBpY2t1cEIASgdwb2tiYWxsUgZmaXZhdG9Yl7+e9gZiHgoHU2NyYXRjaBIHc2NyYXRjaBgiICMqBm5vcm1hbGIYCgRCaXRlEgRiaXRlGBkgGSoGbm9ybWFsYh8KCEZha2UgT3V0EgdmYWtlb3V0GAogCioGbm9ybWFsYiUKC0Z1cnkgU3dpcGVzEgpmdXJ5c3dpcGVzGA8gDyoGbm9ybWFsGoECCg5wMTogQmVsbHNwcm91dBISQmVsbHNwcm91dCwgTDEzLCBGGgUzOS8zOSoKCBkQDxgZIBAoEDIIdmluZXdoaXAyBmdyb3d0aDIEd3JhcDILc2xlZXBwb3dkZXI6CGdsdXR0b255QgBKB3Bva2JhbGxSBmZpdmF0b1jNiLaWAmIhCglWaW5lIFdoaXASCHZpbmV3aGlwGBkgGSoGbm9ybWFsYhoKBkdyb3d0aBIGZ3Jvd3RoGBQgFCoEc2VsZmIYCgRXcmFwEgR3cmFwGBQgFCoGbm9ybWFsYicKDFNsZWVwIFBvd2RlchILc2xlZXBwb3dkZXIYDyAPKgZub3JtYWwarAwKAnAyEAkaowwgATqeDAoCcDISAnAyGpICCgtwMjogS29mZmluZxIPS29mZmluZywgTDI1LCBNGgU0NC81NSABKgoIIRA0GCMgHSgWMglhc3N1cmFuY2UyCWNsZWFyc21vZzIGc2x1ZGdlMgxzZWxmZGVzdHJ1Y3Q6CGxldml0YXRlQgBKCHBva2ViYWxsWOCEnK4BYiIKCUFzc3VyYW5jZRIJYXNzdXJhbmNlGAkgCioGbm9ybWFsYiMKCkNsZWFyIFNtb2cSCWNsZWFyc21vZxgMIA8qBm5vcm1hbGIcCgZTbHVkZ2USBnNsdWRnZRgTIBQqBm5vcm1hbGIuCg1TZWxmLURlc3RydWN0EgxzZWxmZGVzdHJ1Y3QYBSAFKgthbGxBZGphY2VudBqOAgoIcDI6IE9uaXgSDE9uaXgsIEwyNSwgTRoFNDkvNTIgASoKCB0QVRgUIBgoKDIKcm9ja3BvbGlzaDIIZ3lyb2JhbGwyCXNtYWNrZG93bjIMZHJhZ29uYnJlYXRoOgZzdHVyZHlCAEoIcG9rZWJhbGxY8PfuqQViIwoLUm9jayBQb2xpc2gSCnJvY2twb2xpc2gYEyAUKgRzZWxmYiEKCUd5cm8gQmFsbBIIZ3lyb2JhbGwYBCAFKgZub3JtYWxiIwoKU21hY2sgRG93bhIJc21hY2tkb3duGA8gDyoGbm9ybWFsYikKDURyYWdvbiBCcmVhdGgSDGRyYWdvbmJyZWF0aBgRIBQqBm5vcm1hbBr2AQoOcDI6IEthbmdhc2toYW4SEkthbmdhc2toYW4sIEwyOSwgRhoFNzMvOTkgASoKCDwQOBgcIDMoMzIEYml0ZTIJZG91YmxlaGl0MgRyYWdlMgltZWdhcHVuY2g6CWVhcmx5YmlyZEIASghwb2tlYmFsbFjQ2qmwBWIYCgRCaXRlEgRiaXRlGBkgGSoGbm9ybWFsYiMKCkRvdWJsZSBIaXQSCWRvdWJsZWhpdBgJIAoqBm5vcm1hbGIYCgRSYWdlEgRyYWdlGBQgFCoGbm9ybWFsYiMKCk1lZ2EgUHVuY2gSCW1lZ2FwdW5jaBgUIBQqBm5vcm1hbBr+AQoKcDI6IE1lb3d0aBIOTWVvd3RoLCBMMjUsIE0aBTAgZm50KgoIGBAWGBkgGSg3MgpmdXJ5c3dpcGVzMgdzY3JlZWNoMgtmZWludGF0dGFjazIFdGF1bnQ6BnBpY2t1cEIASghwb2tlYmFsbFjJreblBmIlCgtGdXJ5IFN3aXBlcxIKZnVyeXN3aXBlcxgPIA8qBm5vcm1hbGIeCgdTY3JlZWNoEgdzY3JlZWNoGCggKCoGbm9ybWFsYicKDEZlaW50IEF0dGFjaxILZmVpbnRhdHRhY2sYEyAUKgZub3JtYWxiGgoFVGF1bnQSBXRhdW50GBQgFCoGbm9ybWFsGu8BCglwMjogRWthbnMSDUVrYW5zLCBMMjUsIE0aBTAgZm50KgoIIxAbGBkgHCgjMgRhY2lkMgZzcGl0dXAyCXN0b2NrcGlsZTIHc3dhbGxvdzoKaW50aW1pZGF0ZUIASghwb2tlYmFsbFjeibWZAWIhCgRBY2lkEgRhY2lkGB4gHioPYWxsQWRqYWNlbnRGb2VzYh0KB1NwaXQgVXASBnNwaXR1cBgKIAoqBm5vcm1hbGIgCglTdG9ja3BpbGUSCXN0b2NrcGlsZRgUIBQqBHNlbGZiHAoHU3dhbGxvdxIHc3dhbGxvdxgKIAoqBHNlbGYagQIKC3AyOiBSaHlob3JuEg9SaHlob3JuLCBMMjQsIE0aBTAgZm50KgoIKBA3GBMgEygRMglzY2FyeWZhY2UyCXNtYWNrZG93bjIFc3RvbXAyCGJ1bGxkb3plOghyb2NraGVhZEIASghwb2tlYmFsbFjxlL2hBWIjCgpTY2FyeSBGYWNlEglzY2FyeWZhY2UYCiAKKgZub3JtYWxiIwoKU21hY2sgRG93bhIJc21hY2tkb3duGA8gDyoGbm9ybWFsYhoKBVN0b21wEgVzdG9tcBgUIBQqBm5vcm1hbGIlCghCdWxsZG96ZRIIYnVsbGRvemUYFCAUKgthbGxBZGphY2VudCoGZml2YXRvKgZmaXZhdG8qBmZpdmF0byoGZml2YXRvKgZmaXZhdG8qBmZpdmF0b0ADWAFgbw=="; var data = packet.Split(" ".ToCharArray()); byte[] array = Convert.FromBase64String(data[1]); var type = Type.GetType($"PSXAPI.Request.{data[0]}, PSXAPI"); //goto RESP; if (type != null) { var proto = typeof(PSXAPI.Proto).GetMethod("Deserialize").MakeGenericMethod(new Type[] { type }).Invoke(null, new object[] { array }) as PSXAPI.IProto; //var s = proto as PSXAPI.Request.Ack; //string decodedString = Encoding.UTF8.GetString(s.Data); //Console.WriteLine(decodedString); if (proto is null) { goto RESP; } Console.WriteLine(ToJsonString(proto)); return; //Console.WriteLine($"MapLoad: {(proto as PSXAPI.Request.BattleBroadcast).RequestID}, ID: {(proto as PSXAPI.Request.BattleBroadcast)._Name.ToString()}"); } RESP: type = Type.GetType($"PSXAPI.Response.{data[0]}, PSXAPI"); if (type != null) { var proto = typeof(PSXAPI.Proto).GetMethod("Deserialize").MakeGenericMethod(new Type[] { type }).Invoke(null, new object[] { array }) as PSXAPI.IProto; Console.WriteLine(ToJsonString(proto)); // Console.WriteLine($"MapLoad: {(proto as PSXAPI.Request.BattleBroadcast).RequestID}, ID: {(proto as PSXAPI.Request.BattleBroadcast)._Name.ToString()}"); } #endif }
private void Client_TeleportationOccuring(string map, int x, int y) { string message = "Position updated: " + map + " (" + x + ", " + y + ")"; if (Game.Map == null || Game.IsTeleporting) { message += " [OK]"; } else if (Game.MapName != map) { Script.OnWarningMessage(true, Game.MapName); message += " [WARNING, different map] /!\\"; bool flagTele = map.ToLowerInvariant().Contains("pokecenter") ? false : true; bool anotherFlagTele = map.ToLowerInvariant().Contains("player") ? false : true; if (flagTele && anotherFlagTele && Game.PreviousMapBeforeTeleport != Game.MapName && countGMTele >= 2) { if (BeAwareOfStaff) { NeedResync = true; } PlayShoutNotification?.Invoke(); countGMTele = 0; } else if (Game.MapName.ToLowerInvariant().Contains("prof. antibans classroom")) { LogMessage("Bot got teleported to an unexpected Map, please check. This can be a GM/Admin/Mod teleport."); PlayShoutNotification?.Invoke(); if (BeAwareOfStaff) { NeedResync = true; } } } else { int distance = GameClient.DistanceBetween(x, y, Game.PlayerX, Game.PlayerY); if (distance < 8) { message += " [OK, lag, distance=" + distance + "]"; } else { Script.OnWarningMessage(false, string.Empty, distance); message += " [WARNING, distance=" + distance + "] /!\\"; countGMTele++; if (countGMTele > 2) { CheckTeleportion(1f); } } } if (message.Contains("[OK]")) { LogMessage(message); } if (message.Contains("WARNING")) { LogMessage(message); } MovementResynchronizer.Reset(); }