[Help] Checkpoint Project

Статус
В этой теме нельзя размещать новые ответы.

#SIZZURP

Новичок
Автор темы
14
1
Дарова, форумчане! В общем, мне нужен opcode, что бы узнать координаты текущего отображающегося чекпоинта на миникарте (не гоночного, обычного), и записать их в переменные. Если можно, не закрывать тему т.к. будет дополняться.
Буду рад вашей помощи:facepalm:
 

#SIZZURP

Новичок
Автор темы
14
1
Нет такого опкода.
Не суть. Мне важен результат. Такое вообще возможно вычислить?

Нашёл вот этот код. По идее, должен работать? Или нет?
P.S. И ещё, как можно поставить метку на карте через скрипт?:rtfm:
CLEO:
Actor.StorePos($PLAYER_ACTOR, 10@, 11@, 12@)

30@ = 10000.0 //Тут храним дальность до ближайшего маркера
31@ = -1 //Тут храним номер блока ближайшего маркера

for 0@ = 0 to 32//Начало цикла
1@ = 0@
1@ *= 160//Находим смещение от начала блоков маркера
1@ += 0xC7DD58 //Прибавляем начало пула маркеров
0A8E: 2@ = 1@ + 48//Находим адрес Х координаты
0A8D: 20@ = read_memory 2@ size 4 virtual_protect 0 //Читаем его
0A8E: 2@ = 1@ + 52
0A8D: 21@ = read_memory 2@ size 4 virtual_protect 0
0A8E: 2@ = 1@ + 56
0A8D: 22@ = read_memory 2@ size 4 virtual_protect 0
0509: 32@ = distance_between_XY 10@ 11@ and_XY 20@ 21@ //Измеряем дольность от игрока до маркера
0A8E: 2@ = 1@ + 84 //Находим SCM хэндл, если он не равен 0, то маркер существует
0A8D: 8@ = read_memory 2@ size 4 virtual_protect 0 //читаем его
if and
32@ < 30@//Если маркер ближе, чем ближайший маркер
8@ <> 0//И если маркер существует
then
30@ = 32@
31@ = 0@ //То этот маркер становится ближайшим
end

if
31@<>-1 //Если найден хотябы один маркер, то читаем его координаты
jf @END
1@ = 31@
1@ *= 160
1@ += 0xC7DD58
0A8E: 2@ = 1@ + 48
0A8D: 20@ = read_memory 2@ size 4 virtual_protect 0
0A8E: 2@ = 1@ + 52
0A8D: 21@ = read_memory 2@ size 4 virtual_protect 0
0A8E: 2@ = 1@ + 56
0A8D: 22@ = read_memory 2@ size 4 virtual_protect 0


В итоге мы получим координаты ближайшего маркера (X=20@, Y=21@, Z=22@).
 
Последнее редактирование модератором:

SR_team

like pancake
BH Team
4,804
6,475
0FB8: Get_marker_pos 1@ 2@ 3@ from_coords 4@ 5@ 6@ in_radius 7@ type 8@ //IF AND SET
https://www.blast.hk/threads/9722/
 

#SIZZURP

Новичок
Автор темы
14
1
0FB8: Get_marker_pos 1@ 2@ 3@ from_coords 4@ 5@ 6@ in_radius 7@ type 8@ //IF AND SET
https://www.blast.hk/threads/9722/
Как я понял, твой опкод записывает в переменные 1@ 2@ 3@ координаты маркера в радиусе 7@ координат 4@ 5@ 6@?
Если я хочу сделать, допустим, поиск координат из твоего опкода на всю карту, какой макс. радиус нужно ставить? И возможно ли вообще это?
 

SR_team

like pancake
BH Team
4,804
6,475
Как я понял, твой опкод записывает в переменные 1@ 2@ 3@ координаты маркера в радиусе 7@ координат 4@ 5@ 6@?
Если я хочу сделать, допустим, поиск координат из твоего опкода на всю карту, какой макс. радиус нужно ставить? И возможно ли вообще это?
Правильно понял.
Дальше стрима искать нельзя. Можешь указать что-то типа 999999, радиус все равно не влияет на скорость поиска
 

#SIZZURP

Новичок
Автор темы
14
1
Правильно понял.
Дальше стрима искать нельзя. Можешь указать что-то типа 999999, радиус все равно не влияет на скорость поиска
А жаль. На РП серверах, когда работаешь таксистом (да, я задрот) и принимаешь вызов, появляется Чекпоинт, куда нужно ехать.
Так вот, я могу стоять в ЛС, а чекпоинт появится хуй знает где в ЛВ. Можно ли вычесть координаты такого чекпоинта? Если он отображается на миникарте, значит и зона стрима там прогружается? Или я не так понимаю?
 

AWRage

Активный
642
141
А жаль. На РП серверах, когда работаешь таксистом (да, я задрот) и принимаешь вызов, появляется Чекпоинт, куда нужно ехать.
Так вот, я могу стоять в ЛС, а чекпоинт появится хуй знает где в ЛВ. Можно ли вычесть координаты такого чекпоинта? Если он отображается на миникарте, значит и зона стрима там прогружается? Или я не так понимаю?
Там вроде когда появляется чекпоинт, приходит РПЦ. Битстрим читаешь и получаешь координаты.
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,468
Толком там ничего и не объяснить.
Всё, что нужно усвоить:
  • Что такое BitStream;
  • Как в нем хранятся данные;
Ничего более.
Далее находишь как хранятся данные у каждого пакета/RPC и читаешь.
 
Статус
В этой теме нельзя размещать новые ответы.