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

SR_team

like pancake
BH Team
4,720
6,370
Спасибо, а возможно сделать так, чтобы например я сделаю много таких cleo по координатам, но не в 1 скрипт, а в папку все, и 1 оставить около папки, и чтобы этот (Около папки который) находил координаты, и по этим координатам активировал скрипт который в папке и отвечает за действия на данной координате ?

Проще в 1 скрипт все сделать
 

Dark_Knight

Me, me and me.
Друг
4,064
2,078
PHP:
{$CLEO .cs}
0000:
repeat
wait 100
until Samp.Avaliable()
 
while true
wait 0
if
00FE: actor $PLAYER_ACTOR sphere 0 in_sphere 0.0 0.0 0.0 radius 25.0 25.0 25.0 // Тут введёшь координаты.
then
0AF9: "text"
wait 5000 // Задержка, чтобы не флудило в чат при входе на координаты.
end
end

Лучше ставить не воит, а цикл с опкодом 00фе с увеличеным радиусом.
 

Sergey_Gray

Новичок
78
3
Хм, я так понял моя беда - не знание многих опкодов.
Есть ли тема где описана большая часть опкодов ?
Есть ли синтаксис для Notepad++ но с цветом cleo
И ещё, везде ставится "0000:", объясните мне на простом языке что это ?
 

iAmerican

Известный
Друг
615
257
Хм, я так понял моя беда - не знание многих опкодов.
Есть ли тема где описана большая часть опкодов ?
Есть ли синтаксис для Notepad++ но с цветом cleo
И ещё, везде ставится "0000:", объясните мне на простом языке что это ?

Вот SF Опкоды.
http://blasthack.net/sfdoc/
 

hnnssy

Известный
Друг
2,684
2,748
Хм, я так понял моя беда - не знание многих опкодов.
Есть ли тема где описана большая часть опкодов ?
Есть ли синтаксис для Notepad++ но с цветом cleo
И ещё, везде ставится "0000:", объясните мне на простом языке что это ?
Открой Санни Билдер и нажми ctrl + alt + 2, выпадет список всех опкодов.
0000 - опкод, который исправляет ошибку перехода на нулевой оффсет.
 

Dark_Knight

Me, me and me.
Друг
4,064
2,078
Хм, я так понял моя беда - не знание многих опкодов.
Есть ли тема где описана большая часть опкодов ?
Есть ли синтаксис для Notepad++ но с цветом cleo
И ещё, везде ставится "0000:", объясните мне на простом языке что это ?

Переход на нулевой оффсет
Это сообщение появляется, если в вашем CLEO-скрипте есть переход на метку, расположенную в самом начале скрипта. В игре есть баг, из-за которого такой переход вызывает неверную работу в скрипте. Основным проявлением такой ошибки является эффект начатой заново игры (когда при старте скрипта игра перезапускается заново).

Возможные решения: добавьте в самое начало скрипта (перед меткой) опкод 0000. Этого будет достаточно.
 

Dragar

Новичок
19
2
Как сделать чтобы при Actor.PutAt игрок визульно оставался на месте где стоял? То есть при быстром телепорте и обратно камера не дергалась
 

vladikf1

Новичок
20
0
Как сделать чтобы при Actor.PutAt игрок визульно оставался на месте где стоял? То есть при быстром телепорте и обратно камера не дергалась


0AB1: call_scm_func @SendOnfootFakePosition 3 Pos_x 1@ Pos_y 2@ Pos_z 3@

Код:
:SendOnfootFakePosition
3@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR) // Получаем ид нашего игрока
3@ = SAMP.GetPlayerStruct(3@) // Получаем указатель на локальную структуру
3@ += 55 // Прибавляем смещение на структуру, в которой храниться текущая onfoot data.
0AC8: 4@ = allocate_memory_size 68 // Выделяем память, равную размеру пакета.
0C10: memcpy destination 4@ source 3@ size 68 // Копируем информацию onfoot, чтобы потом изменить только позиции.
0C0D: struct 4@ offset 6 size 4 = 0@ // Изменяем позиции игрока по оси X. Размер 4, так как тип float имеет 4 байта.
0C0D: struct 4@ offset 10 size 4 = 1@ // Offset будет 10, так как 6 + 4 = 10
0C0D: struct 4@ offset 14 size 4 = 2@ // 10 + 4 = 14
0B3D: raknet 5@ = new_bit_stream // Создаем битстрим.
0B40: raknet bit_stream 5@ write PACKET_PLAYER_SYNC type BS_TYPE_BYTE size 1 // Вписываем в битстрим название пакета.
0B40: raknet bit_stream 5@ write 4@ type BS_TYPE_ARRAY size 68 // Вписываем туда переменную, в которой onfoot data, с измененными позициями.
0B8B: raknet send bit_stream 5@ // Отправляем битстрим в котором содержится пакет.
0B3E: raknet delete_bit_stream 5@ // Удаляем битстрим.
0AC9: free_allocated_memory 4@ // Освобождаем память.
0ab2: 0 // Заканчиваем Call функцию.
 

vladikf1

Новичок
20
0
Есть способ узнавание ида ближайшего пикапа?)
Просил помощи у google.. Он типа не знает :D
 

Sergey_Gray

Новичок
78
3
Открой Санни Билдер и нажми ctrl + alt + 2, выпадет список всех опкодов.
0000 - опкод, который исправляет ошибку перехода на нулевой оффсет.

Конечно спасибо, но там мало что понятно, есть где описано понятней ?
т.е. Actor.Health - хп, PutAt - Тп, 0AF9 - вывод текста и т.д.
 

SR_team

like pancake
BH Team
4,720
6,370
Конечно спасибо, но там мало что понятно, есть где описано понятней ?
т.е. Actor.Health - хп, PutAt - Тп, 0AF9 - вывод текста и т.д.

да, на gtamodding вроде есть описания всех опкодов (на инглише) и еще где-то видел описание опкодов, но не уверен, что там все.
А По СФ опкодам типа 0af9 есть sfdoc
 
  • Нравится
Реакции: Sergey_Gray

Dragar

Новичок
19
2
0AB1: call_scm_func @SendOnfootFakePosition 3 Pos_x 1@ Pos_y 2@ Pos_z 3@

Код:
:SendOnfootFakePosition
3@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR) // Получаем ид нашего игрока
3@ = SAMP.GetPlayerStruct(3@) // Получаем указатель на локальную структуру
3@ += 55 // Прибавляем смещение на структуру, в которой храниться текущая onfoot data.
0AC8: 4@ = allocate_memory_size 68 // Выделяем память, равную размеру пакета.
0C10: memcpy destination 4@ source 3@ size 68 // Копируем информацию onfoot, чтобы потом изменить только позиции.
0C0D: struct 4@ offset 6 size 4 = 0@ // Изменяем позиции игрока по оси X. Размер 4, так как тип float имеет 4 байта.
0C0D: struct 4@ offset 10 size 4 = 1@ // Offset будет 10, так как 6 + 4 = 10
0C0D: struct 4@ offset 14 size 4 = 2@ // 10 + 4 = 14
0B3D: raknet 5@ = new_bit_stream // Создаем битстрим.
0B40: raknet bit_stream 5@ write PACKET_PLAYER_SYNC type BS_TYPE_BYTE size 1 // Вписываем в битстрим название пакета.
0B40: raknet bit_stream 5@ write 4@ type BS_TYPE_ARRAY size 68 // Вписываем туда переменную, в которой onfoot data, с измененными позициями.
0B8B: raknet send bit_stream 5@ // Отправляем битстрим в котором содержится пакет.
0B3E: raknet delete_bit_stream 5@ // Удаляем битстрим.
0AC9: free_allocated_memory 4@ // Освобождаем память.
0ab2: 0 // Заканчиваем Call функцию.
не то