barsuuk Опубликовано 18 декабря, 2017 Поделиться Опубликовано 18 декабря, 2017 Всем привет! уже неделю бьюсь над загадкой, у меня есть старый код, но рабочий на всех играх с которыми я работал)) код рисует боксы, линии и тд на оверлее, рисую с помощью SharpDx на C#. Проблема заключается в том, что когда в поле зрения попадает враг, то игра вылетает, если провернуть тоже самое, но с ботами, то вылет произойдет через некоторое время, не пойму почему вылетает игра, а не чит, ведь я не пишу ничего в игру, а только читаю координаты, номер команды и матрицу. функция W2S Скрытый текст private ScreenVector WorldToScreen(float x, float y, float z) { float w; float sx; float sy; sx = VMatrix.M11 * x + VMatrix.M12 * y + VMatrix.M13 * z + VMatrix.M14; sy = VMatrix.M21 * x + VMatrix.M22 * y + VMatrix.M23 * z + VMatrix.M24; w = VMatrix.M41 * x + VMatrix.M42 * y + VMatrix.M43 * z + VMatrix.M44; if (w < 0.01f) return new ScreenVector() { Result = false, X = 0, Y = 0 }; float invw = 1f / w; sx *= invw; sy *= invw; int width = WHwindow.Width; int height = WHwindow.Height; float xt = width / 2; float yt = height / 2; xt += 0.5f * sx * width + 0.5f; yt -= 0.5f * sy * height + 0.5f; sx = xt; sy = yt; return new ScreenVector() { Result = true, X = sx, Y = sy }; } функция выполняющееся в таймере Скрытый текст private void Loop() { while (true) { // GC.Collect(); gfx.BeginScene(); gfx.ClearScene(); for (int i = 0; i < 100; i++) { MyBaseAdr = mem.Read<int>(CheatData.bClient + Offsets.dwLocalPlayer); mteam = mem.Read<int>(MyBaseAdr + Offsets.m_iTeamNum); mycoords = mem.Read<Vector3>(MyBaseAdr + Offsets.m_vecOrigin); eBaseAdr = mem.Read<int>(CheatData.bClient + Offsets.dwEntityList + (i * Offsets.Loop_offset)); eteam = mem.Read<int>(eBaseAdr + Offsets.m_iTeamNum); dormant = mem.Read<bool>(eBaseAdr + Offsets.m_bDormant); // glowind = mem.Read<int>(eBaseAdr + Offsets.m_iGlowIndex); hp = mem.Read<int>(eBaseAdr + Offsets.m_iHealth); coords = mem.Read<Vector3>(eBaseAdr + Offsets.m_vecOrigin); head = CalcEnemyHead(eBaseAdr, 8); Gres = mem.Read<int>(CheatData.bClient + Offsets.dwPlayerResource); rank = mem.Read<int>(Gres + Offsets.m_iCompetitiveRanking + i * 4); // // angles = mem.Read<Vector2>(eBaseAdr + Offsets.m_angEyeAngles); mt = mteam; et = eteam; if (MyBaseAdr == 0x0) { continue; } VMatrix = mem.Read<Matrix4x4>(CheatData.bClient + Offsets.dwViewMatrix); ScreenVector sv = WorldToScreen(coords.X, coords.Y, coords.Z); ScreenVector svh = WorldToScreen(head.X, head.Y, head.Z); if (dormant) { continue; } if (hp == 0) { continue; } if (!sv.Result) { continue; } int ex = (int)sv.X; int ey = (int)sv.Y; int sx = WHwindow.Width / 2; int sy = WHwindow.Height; float h = (svh.Y - sv.Y); float w = 18500/(float)Vector3.Distance(mycoords, coords); float x = (int)(sv.X - w / 2); float y = (sv.Y); if ((eteam != mteam) &&mteam!=1) { if (CheatData.lines_wh) gfx.DrawLine(sx, sy, ex, ey, 2,new Direct2DColor(pen[0],pen[1],pen[2])); if (CheatData.hp_wh) gfx.DrawHorizontalBar(hp, x, y, 2, h, 1, new Direct2DColor(255,0 ,0 ), new Direct2DColor(0, 0, 0)); if (CheatData.box) { double d = Vector3.Distance(mycoords, coords); if (d == 0) continue; Drawbox(sv.X, sv.Y, (int)d); } if (CheatData.ranks) { gfx.DrawText(Ranks[rank], ex, ey, new Direct2DFont(new SharpDX.DirectWrite.Factory(), "Arial", 12), new Direct2DColor(255, 0, 0)); } } } gfx.EndScene(); Thread.Sleep(5); } } Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 18 декабря, 2017 Поделиться Опубликовано 18 декабря, 2017 Чего ты хочешь от созданной тобой темы, если в теме нет никакой информации об ошибке, нет отладочной информации? давай тогда призывать духов геймхакеров. они мне подсказывают, что у тебя выход за пределы списка игроков и нет никакой проверки, вдруг там какой-то мусор попался и ты его рисуешь. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 18 декабря, 2017 Поделиться Опубликовано 18 декабря, 2017 7 часов назад, kiwipapayamongoose сказал: вдруг там какой-то мусор @kiwipapayamongoose"Ты сильный шаман...." Скрытый текст Ссылка на комментарий Поделиться на другие сайты Поделиться
barsuuk Опубликовано 18 декабря, 2017 Автор Поделиться Опубликовано 18 декабря, 2017 20 часов назад, kiwipapayamongoose сказал: Чего ты хочешь от созданной тобой темы, если в теме нет никакой информации об ошибке, нет отладочной информации? хорошо, допустим попался мусор, но тогда вылетел бы чит, а не игра. Я не понимаю как игра может вылететь, если в нее ничего не пишется. Я пробовал рисовать просто текст в левом верхнем углу, все удачно, как только поставив координаты игрока- краш, через некоторое время. Предоставлю любую инфу какую скажешь, только скажи Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 18 декабря, 2017 Поделиться Опубликовано 18 декабря, 2017 2 часа назад, barsuuk сказал: Я не понимаю как игра может вылететь, если в нее ничего не пишется. Вот поэтому и мы не можем ничего тебе сказать. Если хендл открыт с полными правами, случится может все что угодно. 2 часа назад, barsuuk сказал: Предоставлю любую инфу какую скажешь, только скажи Информацию из дампов игры, при краше кс генерирует их. Анализируй дампы и смотри из-за чего и где краш. Попробуй отлаживать код во время отрисовки координат. Ссылка на комментарий Поделиться на другие сайты Поделиться
barsuuk Опубликовано 19 декабря, 2017 Автор Поделиться Опубликовано 19 декабря, 2017 9 часов назад, kiwipapayamongoose сказал: Информацию из дампов игры, при краше кс генерирует их. Анализируй дампы и смотри из-за чего и где краш. спасибо) про логи игры я что-то забыл)) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения