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

gcode

нестандартное звание звание звание звание звани...
Друг
789
357
Объясните почему данный код не работает на 0.3z? Все опкоды проверил, проде бы ничего в новой версии sf не изменилось
Код:
:SendFakePosOnFoot
 
0B2B: samp 3@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B24: samp 3@ = get_player_ptr 3@
3@ += 109
0AC8: 4@ = allocate_memory_size 68
0C10: memcpy destination 4@ source 3@ size 68
0C0D: struct 4@ offset 6 size 4 = 0@
0C0D: struct 4@ offset 10 size 4 = 1@
0C0D: struct 4@ offset 14 size 4 = 2@
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
0B42: raknet send bit_stream 5@ priority PRIORITY_HIGH reliability UNRELIABLE_SEQUENCED ordering_channel 0
0B3E: raknet delete_bit_stream 5@
0AC9: free_allocated_memory 4@
0AB2: 0
Константы (PACKET_PLAYER_SYNC, UNRELIABLE_SEQUENCED и т.д) поменялись. Ставь именно от 0.3z
 

ma_za_xa_ka

Известный
42
0
Константы (PACKET_PLAYER_SYNC, UNRELIABLE_SEQUENCED и т.д) поменялись. Ставь именно от 0.3z


Код:
0B2B: samp 3@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B24: samp 3@ = get_player_ptr 3@
3@ += 109
0AC8: 4@ = allocate_memory_size 68
0C10: memcpy destination 4@ source 3@ size 68
0C0D: struct 4@ offset 6 size 4 = 0@
0C0D: struct 4@ offset 10 size 4 = 1@
0C0D: struct 4@ offset 14 size 4 = 2@
0B3D: raknet 5@ = new_bit_stream
0B40: raknet bit_stream 5@ write PACKET_PLAYER_SYNC type 0 size 1
0B40: raknet bit_stream 5@ write 4@ type 5 size 68
0B8B: raknet send bit_stream 5@
0B3E: raknet delete_bit_stream 5@
0AC9: free_allocated_memory 4@
0AB2: 0

вот так должно выглядеть? Единственное что вместо PACKET_PLAYER_SYNC писать незнаю
 

gcode

нестандартное звание звание звание звание звани...
Друг
789
357
Код:
0B2B: samp 3@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B24: samp 3@ = get_player_ptr 3@
3@ += 109
0AC8: 4@ = allocate_memory_size 68
0C10: memcpy destination 4@ source 3@ size 68
0C0D: struct 4@ offset 6 size 4 = 0@
0C0D: struct 4@ offset 10 size 4 = 1@
0C0D: struct 4@ offset 14 size 4 = 2@
0B3D: raknet 5@ = new_bit_stream
0B40: raknet bit_stream 5@ write PACKET_PLAYER_SYNC type 0 size 1
0B40: raknet bit_stream 5@ write 4@ type 5 size 68
0B8B: raknet send bit_stream 5@
0B3E: raknet delete_bit_stream 5@
0AC9: free_allocated_memory 4@
0AB2: 0

вот так должно выглядеть? Единственное что вместо PACKET_PLAYER_SYNC писать незнаю
Я не помню как должно выглядеть. А возможности посмотреть сейчас нету. В архиве Sampfuncs есть инклуд с ними.
 

churkabes

Новичок
7
0
Код:
{$CLEO}
 
const
    FCR_NONE = 0x0
    FCR_BOLD = 0x1
    FCR_ITALICS = 0x2
    FCR_BORDER = 0x4
    FCR_SHADOW = 0x8
    FCR_UNDERLINE = 0x10
    FCR_STRIKEOUT = 0x20
end
 
0000:
 
repeat
    wait 400
until 0AFA: is_samp_structures_available
 
30@ = Render.CreateFont("Tahoma", 12, FCR_BORDER) // Подготавливаем шрифт для рендера
SAMP.GetScreenResolution(0@, 1@) // Получаем разрешение экрана
0@ /= 2 // Делим на 2 ось X разрешения
1@ /= 2 // Делим на 2 ось Y разрешения
 
while true
    wait 0
    3@ = Render.FontDrawLength(30@, "Text") // Получаем длину текста(в пикселях или в чём там...)
    3@ /= 2 // Больше точности
    0A8F: 2@ = 0@ - 3@ // Отнимаем от половины разрешения экрана длину текста.
    Render.DrawText(30@, "Text", 2@, 1@, 0xFFffffff) // Рисуем текст по середине экрана
end

Сделал нужный мне код, но при входе все мерцает причина мерацния какова?чего не хватает?
Код:
{$CLEO .cs}
0000:
 
const
    FCR_NONE = 0x0
    FCR_BOLD = 0x1
    FCR_ITALICS = 0x2
    FCR_BORDER = 0x4
    FCR_SHADOW = 0x8
    FCR_UNDERLINE = 0x10
    FCR_STRIKEOUT = 0x20
end
 
 
wait 0
repeat
    wait 400
until 0AFA: is_samp_structures_available
30@ = Render.CreateFont("Tahoma", 12, FCR_BORDER) // ?????????????? ????? ??? ???????
 
while true
    wait 0
0@ = Actor.Health($PLAYER_ACTOR)
04DD: 1@ = actor $PLAYER_ACTOR armour 
    Render.DrawText(30@, 0@, 360, 630, 0xFFffffff)
    Render.DrawText(30@, 1@, 360, 630, 0xFFffffff)
end
 

gcode

нестандартное звание звание звание звание звани...
Друг
789
357
Сделал нужный мне код, но при входе все мерцает причина мерацния какова?чего не хватает?
Код:
{$CLEO .cs}
0000:
 
const
    FCR_NONE = 0x0
    FCR_BOLD = 0x1
    FCR_ITALICS = 0x2
    FCR_BORDER = 0x4
    FCR_SHADOW = 0x8
    FCR_UNDERLINE = 0x10
    FCR_STRIKEOUT = 0x20
end
 
 
wait 0
repeat
    wait 400
until 0AFA: is_samp_structures_available
30@ = Render.CreateFont("Tahoma", 12, FCR_BORDER) // ?????????????? ????? ??? ???????
 
while true
    wait 0
0@ = Actor.Health($PLAYER_ACTOR)
04DD: 1@ = actor $PLAYER_ACTOR armour
    Render.DrawText(30@, 0@, 360, 630, 0xFFffffff)
    Render.DrawText(30@, 1@, 360, 630, 0xFFffffff)
end
Потому что ты еблан.
Параметр требует строку а ты ему сначала дробное, а потом целое подаешь. Ну не еблан разве?
 

churkabes

Новичок
7
0
Я попробывал твой чистый код, все работало но после добавления
until 0AFA: is_samp_structures_available
15@ = Actor.Health($PLAYER_ACTOR)
04DD: 16@ = actor $PLAYER_ACTOR armour
начинает мерцать, что за чушь?
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,469
Сделал нужный мне код, но при входе все мерцает причина мерацния какова?чего не хватает?
Код:
{$CLEO .cs}
0000:
 
const
    FCR_NONE = 0x0
    FCR_BOLD = 0x1
    FCR_ITALICS = 0x2
    FCR_BORDER = 0x4
    FCR_SHADOW = 0x8
    FCR_UNDERLINE = 0x10
    FCR_STRIKEOUT = 0x20
end
 
 
wait 0
repeat
    wait 400
until 0AFA: is_samp_structures_available
30@ = Render.CreateFont("Tahoma", 12, FCR_BORDER) // ?????????????? ????? ??? ???????
 
while true
    wait 0
0@ = Actor.Health($PLAYER_ACTOR)
04DD: 1@ = actor $PLAYER_ACTOR armour
    Render.DrawText(30@, 0@, 360, 630, 0xFFffffff)
    Render.DrawText(30@, 1@, 360, 630, 0xFFffffff)
end

Код:
{$CLEO}
 
0000:
 
const
    FCR_NONE = 0x0
    FCR_BOLD = 0x1
    FCR_ITALICS = 0x2
    FCR_BORDER = 0x4
    FCR_SHADOW = 0x8
    FCR_UNDERLINE = 0x10
    FCR_STRIKEOUT = 0x20
end
 
repeat
    wait 400
until 0AFA: is_samp_structures_available
 
30@ = Render.CreateFont("Tahoma", 12, FCR_BORDER)
 
while true
    wait 0
 
    0@ = Actor.Health($PLAYER_ACTOR)
    0AD3: 29@v = "%d" 0@
    Render.DrawText(30@, 29@v, 360, 630, 0xFFffffff)
 
    04DD: 1@ = actor $PLAYER_ACTOR armour
    0AD3: 29@v = "%d" 1@
    Render.DrawText(30@, 29@v, 360, 630, 0xFFffffff)
end
 

ma_za_xa_ka

Известный
42
0
Код:
0DB3: marker 4@ position to x 6@ y 7@ z 8@ //IF AND SET
    //Получить координаты маркера по id (существуют 32 маркера, их id'ы в диапазоне 0~31), возращает FALSE, если неверный id

Можно ли этим опкодом узнать координаты гоночного чекпоинта ( чекпоинт автобусников )?
 

DubStep_

Известный
292
52
Код:
0DB3: marker 4@ position to x 6@ y 7@ z 8@ //IF AND SET
    //Получить координаты маркера по id (существуют 32 маркера, их id'ы в диапазоне 0~31), возращает FALSE, если неверный id

Можно ли этим опкодом узнать координаты гоночного чекпоинта ( чекпоинт автобусников )?

Нельзя
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,469
а можно как то проще узнавать координаты чекпоинта кроме кода от могайки?


Код:
while true
    wait 0
    if 0ab1: call @SearchCP 0 to X 0@ Y 1@ Z 2@ T 3@
    then //
    end
end
 
:SearchCP
// 0AB1: @SearchCP 0 X 0@ Y 1@ Z 2@ T 3@
var
    0@ : float
    1@ : float
    2@ : float
    3@ : int
    4@ : int
end
 
0C0C: 4@ = struct 0xC7F158 offset 4 size 4
       
if 4@ <> 0
then
    0C0C: 3@ = struct 0xC7F158 offset 0 size 1 // TYPE                 
    0C0C: 0@ = struct 0xC7F158 offset 16 size 4 // X     
    0C0C: 1@ = struct 0xC7F158 offset 20 size 4 // Y
    0C0C: 2@ = struct 0xC7F158 offset 24 size 4 // Z
    0AB2: ret 4 0@ 1@ 2@ 3@
end
0AB2: 4 -1 -1 -1 -1

Это только для одного, для всех - сделай цикл из 32 элементов, умножай номер элемента на 56 и плюсуй к началу блока чекпоинтов...
 

ma_za_xa_ka

Известный
42
0
Код:
{$VERSION 3.1.0027}
{$CLEO .cs}
 
thread '228' 
 
:228_1
wait 0
if and
0AB0:  key_pressed 49 
jf @228_1
 
:228_2
wait 0
0AB1: call @StoreClosestRaceMarkerPos 0 X 30@ Y 29@ Z 28@
wait 1000
0ab1: @send_position 3 30@ 29@ 28@
wait 1000
jump @228_1
 
 
:storeclosestracemarkerpos
12@ = 9999.0
for 0@ = 0 to 31
    wait 0
    0085: 1@ = 0@
    1@ *= 56
    1@ += 0xC7F158
    1@ += 16
    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
0AB2: ret 3 9@ 10@ 11@
 
 
:send_position
0B2B: samp 20@ = get_player_id_by_actor_handle $PLAYER_ACTOR 
0B24: samp 20@ = get_player_ptr 3@ 
20@ += 177 
0AC8: 21@ = allocate_memory_size 63 
0C10: memcpy destination 21@ source 20@ size 63 
0C0D: struct 21@ offset 24 size 4 = 23@ 
0C0D: struct 21@ offset 28 size 4 = 24@ 
0C0D: struct 21@ offset 32 size 4 = 25@ 
0B3D: raknet 22@ = new_bit_stream 
0B40: raknet bit_stream 22@ write 219 type 0 size 1 
0B40: raknet bit_stream 22@ write 21@ type 5 size 63 
0B8B: raknet send bit_stream 22@ 
0B3E: raknet delete_bit_stream 22@ 
0AC9: free_allocated_memory 21@ 
0AB2: 0
Код на поиск чекпоинта работает отлично, проверил. При добавлении кода отправки фейк координат в машине происходит неведомая хрень, из-за чего не пойму. В чем косяк?