public void Move(Location loc, Boolean wait = false, double accuracy = 0.5) { byte[] WP = { 0x60, //pushad 0xB8, /*2*/ 0x00,0x00, 0x00, 0x00, //mov eax, BA 0x8B, 0x00, //mox eax, [eax] 0x8B, 0x40, 0x1C, //mov eax, [eax + 1C] 0x8B, 0x70, 0x34, //mov esi, [eax + 0x34] 0x8B, 0x8E, 0x00, 0x00, 0x00, 0x00, //mov ecx, [esi + ACTION] 0x6A, 0x01, //push 1 0xB8, /*23*/ 0x00,0x00, 0x00, 0x00, //mov eax, action_1 0xFF, 0xD0, //call eax 0x8D, 0x54, 0x24, 0x38, //lea edx, [esp + 0x38] 0x8B, 0xD8, //mov ebx, eax 0x52, //push edx 0x6A, /*37*/ 0x00, //push walk_mode 0x8B, 0xCB, //mov ecx, ebx 0xB8, /*41*/ 0x00,0x00, 0x00, 0x00, //mov eax, action_2 0xFF, 0xD0, //call eax 0x8B, 0x8E, 0x00, 0x00, 0x00, 0x00, //mov ecx, [esi + ACTION] 0xB8, /*54*/ 0x00,0x00, 0x00, 0x00, //mov eax, x 0x89, 0x43, 0x20, //mov [ebx + 0x20], eax 0xB8, /*62*/ 0x00,0x00, 0x00, 0x00, //mov eax, z 0x89, 0x43, 0x24, //mov [ebx + 0x24], eax 0xB8, /*70*/ 0x00,0x00, 0x00, 0x00, //mov eax, y 0x89, 0x43, 0x28, //mov [ebx + 0x28], eax 0x6A, 0x00, //push 0 0x53, //push ebx 0x6A, 0x01, //push 1 0xB8, /*83*/ 0x00,0x00, 0x00, 0x00, //mov eax, action_3 0xFF, 0xD0, //call eax 0x61, 0xC3 //popad, ret }; Packet P = new Packet(HNDL, WP); P.Copy(OFS.BA, 2, 4); P.Copy(OFS.GetUInt("Player_Action_Struct"), 16, 4); P.Copy(OFS.GetUInt("Player_Action_Struct"), 49, 4); P.Copy(OFS.GetUInt("action_1"), 23, 4); P.Copy(OFS.GetUInt("action_2"), 41, 4); P.Copy(OFS.GetUInt("action_3"), 83, 4); P.Copy(loc.x, 54, 4); P.Copy(loc.y, 70, 4); P.Copy(loc.z, 62, 4); if (GetVar("WalkMode") == 2) { P.Copy(GetVar("WalkMode"), 37, 1); } P.Execute(); if (wait) { while (LOC.GetDistance(loc) > accuracy) { LoadLocation(); System.Threading.Thread.Sleep(200); } } }
public void Move(Location loc, Boolean wait = false, double accuracy = 0.5) { byte[] WP = { 0x60, //pushad 0xB8, /*2*/ 0x00,0x00, 0x00, 0x00, //mov eax, BA 0x8B, 0x00, //mox eax, dword ptr [eax] 0x8B, 0x40, 0x1C, //mov eax, dword ptr[eax + 1C] 0x8B, 0x78, 0x34, //mov edi, dword ptr[eax + 0x34] 0x8B, 0x8F, 0xC4, 0x15, 0x00, 0x00, //mov ecx, dword ptr[edi + 0x154C] 0x6A, 0x01, //push 1 0xB8, /*23*/ 0x00,0x00, 0x00, 0x00, //mov eax, action_1 0xFF, 0xD0, //call eax 0x8D, 0x54, 0x24, 0x1C, //lea edx, dword ptr[esp + 0x1C] 0x8B, 0xD8, //mov ebx, eax 0x52, //push edx 0x68, /*37*/ 0x00,0x00, 0x00, 0x00, //push walk_mode 0x8B, 0xCB, //mov ecx, ebx 0xB8, /*44*/ 0x00,0x00, 0x00, 0x00, //mov eax, action_2 0xFF, 0xD0, //call eax 0x8B, 0x8F, 0xC4, 0x15, 0x00, 0x00, //mov ecx, dword ptr [edi + 0x154C] 0xB8, /*57*/ 0x00,0x00, 0x00, 0x00, //mov eax, x 0x89, 0x43, 0x20, //mov dword ptr[ebx + 0x20], eax 0xB8, /*65*/ 0x00,0x00, 0x00, 0x00, //mov eax, z 0x89, 0x43, 0x24, //mov dword ptr[ebx + 0x24], eax 0xB8, /*73*/ 0x00,0x00, 0x00, 0x00, //mov eax, y 0x89, 0x43, 0x28, //mov dword ptr[ebx + 0x28], eax 0x6A, 0x00, //push 0 0x53, //push ebx 0x6A, 0x01, //push 1 0xB8, /*86*/ 0x00,0x00, 0x00, 0x00, //mov eax, action_3 0xFF, 0xD0, //call eax 0x61, //popad 0xC3 //ret }; Packet P = new Packet(HNDL, WP); P.Copy(OFS.BA, 2, 4); P.Copy(OFS.GetUInt("Player_Action_Struct"), 16, 4); P.Copy(OFS.GetUInt("Player_Action_Struct"), 52, 4); P.Copy(OFS.GetUInt("action_1"), 23, 4); P.Copy(OFS.GetUInt("action_2"), 44, 4); P.Copy(OFS.GetUInt("action_3"), 86, 4); P.Copy(loc.x, 57, 4); P.Copy(loc.y, 73, 4); P.Copy(loc.z, 65, 4); int WalkMode = Memory.RD(HNDL, CSP + OFS.GetInt("Player_WalkMode")); P.Copy(WalkMode > 0 ? 1 : 0, 37, 4); P.Execute(); if (wait) { while (LOC.GetDistance(loc) > accuracy) { LoadLocation(); System.Threading.Thread.Sleep(200); } } }