Доброго времени суток.
Объясните, пожалуйста, как правильно читать т.н. неупорядоченные структуры данных в памяти?
Скажем, есть два массива, например, ближайших игроков.
Один по адресу BA + 0x1C + 0x1C + 0x1С + 0x18 + [i*0x4]
Второй по адресу BA + 0x1C + 0x1C + 0x1С + 0x94 + [i*0x4]
Второй - упорядоченный массив. С его чтением никаких проблем нет. А первый ну никак не получается прочитать. Даже в том же CE по этому адресу лежит какая-то лажа и дальнейшие оффсеты вообще ничего не дают...
[Ссылки могут видеть только зарегистрированные пользователи. ]
Я понимаю, что чего-то не понимаю
Ткните меня носом, пожалуйста, что я делаю не так, и как правильно читать эти массивы?
________________
Кто к нам с чем зачем, тот от того и того...
[Ссылки могут видеть только зарегистрированные пользователи. ] [Ссылки могут видеть только зарегистрированные пользователи. ] [Ссылки могут видеть только зарегистрированные пользователи. ]
Благодарю покорно, теперь понятно, как это устроено.
Непонятно только, нафига это так? И в чём вообще смысл держать одно и то же в разных массивах? По-моему, из упорядоченного читать гораздо проще и понятней. Или есть какой-то подвох, почему обычно используют именно неупорядоченные структуры?
________________
Кто к нам с чем зачем, тот от того и того...
[Ссылки могут видеть только зарегистрированные пользователи. ] [Ссылки могут видеть только зарегистрированные пользователи. ] [Ссылки могут видеть только зарегистрированные пользователи. ]
Вообще-то сами структуры клиент запоминает, как ему бог на душу положит, и они в любом случае располагаются неупорядоченно. А вот указатели на эти структуры хранятся в одном месте (+18) хаотично (почти) а в другом упорядоченно (+94). И указывают они на одни и те же структуры.
Почему так. Китайские программисты рассчитывали, что ботоводы будут рыться в памяти клиента, и поэтому сделали 2 массива указателей - один, неупорядоченный для использования самим клиентом, и второй отсортировали специально для использования ботом
А вообще этого никто не знает, даже возможно, сами программисты. Представляешь, компилируют клиент, а потом дебаггером в память - давай, посмотрим, как там? Может, оптимизировать чего нужно?
Сейчас смотрел структуру персонажа на руофе, подставил в CE данные офсеты но уровень персонажа так и небыл найден, что в упорядоченном что в простом массиве, отсюда вытекает вопрос офсеты верные?
Добавлено через 32 минуты
Проверил в программе офсеты верные, странно что CE Себя так повел
Последний раз редактировалось zasranecqwe1111; 02.07.2014 в 23:30.
Причина: Добавлено сообщение