Вопросы по CLEO-скриптингу

The_North_Fake

Новичок
15
0
Так поток ты не закроешь. Так его только из другого потока закрыть можно. Чтобы закрыть текущий поток, нужно использовать 0A93: end_custom_thread
Зачем вообще поток закрывать? Я никогда с этим не сталкивался, точнее никогда не закрывал, а для чего это?

memset 4@ 256 0 это 0C11: memset destination 4@ value 256 size 0 ?
Да.
 

The_North_Fake

Новичок
15
0
Правда вообще, что в русской вики gtamodding и в английской, в разделе Адреса Памяти (SA), кол-во информации (т.е. адресов) отличается? А то бывает что-то хочу найти и просматриваю обе вики, а это уж много времени отнимает, не в прикол в общем. Прост слышал такую инфу, хочу узнать правда/нет?
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,982
Правда вообще, что в русской вики gtamodding и в английской, в разделе Адреса Памяти (SA), кол-во информации (т.е. адресов) отличается? А то бывает что-то хочу найти и просматриваю обе вики, а это уж много времени отнимает, не в прикол в общем. Прост слышал такую инфу, хочу узнать правда/нет?
Да/Yes .
 
  • Нравится
Реакции: The_North_Fake

The_North_Fake

Новичок
15
0
Не работал раньше с поиском маркеров/пикапов, поэтому нуждаюсь в вашей помощи.
CLEO:
:storeclosestmarkerpos

12@ = 9999.0

for 0@ = 0 to 31

0085: 1@ = 0@

1@ *= 160
1@ += 0xC7DD58
1@ += 48

0A8D: 2@ = read_memory 1@ size 4 virtual_protect 0
1@ += 4
0A8D: 3@ = read_memory 1@ size 4 virtual_protect 0
1@ += 4
0A8D: 4@ = read_memory 1@ size 4 virtual_protect 0
00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
050A: 8@ = distance_between_XYZ 2@ 3@ 4@ and_XYZ 5@ 6@ 7@

if
0025: 12@ > 8@
then
0087: 12@ = 8@
0087: 9@ = 2@
0087: 10@ = 3@
0087: 11@ = 4@
end

end
1. 12@ = 9999.0 - как я понял это для того, чтобы сравнить это расстояние с расстоянием от нас до пикапа. Вопрос, а почему именно 9999.0? И что будет если её не ставить и не делать проверку (0025: 12@ > 8@)?
2. Можно ли находить позицию маркеров/пикапов вне зоны стрима?
3. 1@ *= 160 - как мне объяснили:
Для нахождения координаты, например 14 маркера, нам понадобится узнать адрес начала блока 14 маркера.
Чтобы узнать начало блока 14 маркера нам надо умножить номер блока на размер блока и прибавить к этому начало блока маркеров, т.е.:

0@ = 13
0@ *= 160//Умножаем 13, а не 14, т.к. нумерация маркеров должна идти с нуля
По этому объяснению всплыли вопросы: Почему именно 14 маркер, это его id? И что такое 160, зачем умножать?
С пикапами у меня вопрос появился по поводу адресов:
+16 = [word] Позиция X * 8
+18 = [word] Позиция Y * 8
+20 = [word] Позиция Z * 8
+24 = [word] ID модели
+26 = [word] Уникальный индекс
4. X * 8 - т.е. мы полученное значение должны умножить на 8 или оно уже умноженное и нужно на 8 поделить, или что это вообще значит?
5. у меня есть такой вот пикап
gta_sa 2016-04-27 13-53-16-800.jpg
+24 = [word] ID модели
+26 = [word] Уникальный индекс
Что такое уникальный индекс? И что в случае с мои пикапом мне брать? (как полагаю я ModelID - это id (да ладно:D), а Pickup: 270 это уникальный индекс, или что это вообще?).
 

BugHunter

Известный
91
13
Пацаны, ку! У меня вопрос... Как в cleo округлить значение переменной до сотых но в минус? Т.е. если число 158 то надо что бы он округлил до 150.
P.S. А, и да. Каким опкодом узнать ХП локального игрока? Т.е. как узнать сколько у меня хп.
 

BlackKnigga

Известный
BH Team
922
446
Пацаны, ку! У меня вопрос... Как в cleo округлить значение переменной до сотых но в минус? Т.е. если число 158 то надо что бы он округлил до 150.
P.S. А, и да. Каким опкодом узнать ХП локального игрока? Т.е. как узнать сколько у меня хп.
Получить остаток от деления числа на 10 опкодом 0b14 и вычесть его.
 

The_North_Fake

Новичок
15
0
Пацаны, ку! У меня вопрос... Как в cleo округлить значение переменной до сотых но в минус? Т.е. если число 158 то надо что бы он округлил до 150.
P.S. А, и да. Каким опкодом узнать ХП локального игрока? Т.е. как узнать сколько у меня хп.
0B2B: samp 1@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B25: samp 2@ = get_player_health 1@
2@ - в нее получишь здоровье игрока в integer
 

azdsfbzxv

Новичок
73
6
Пацаны, ку! У меня вопрос... Как в cleo округлить значение переменной до сотых но в минус? Т.е. если число 158 то надо что бы он округлил до 150.
P.S. А, и да. Каким опкодом узнать ХП локального игрока? Т.е. как узнать сколько у меня хп.
0226: 1@ = actor $PLAYER_ACTOR health
где $PLAYER_ACTOR [handle] - игрок
1@ [int] - кол-во здоровья
 
Последнее редактирование: