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

LUCHARE

Известный
Друг
545
687
Посмотреть структуру синхры и прочитать, почему для тебя это так сложно?
Не сложно. Покажи мне тупому, где тут считывать ид игрока?
Код:
[*]PACKET_PLAYER_SYNC = 207 | +109
[*] struct stOnFootData ( size = 68 )
[*]uint16_t sLeftRightKeys;
[*]uint16_t sUpDownKeys; +2
[*]uint16_t sKeys; +4
[*]float fPosition[3]; +6
[*]float fQuaternion[4]; +18
[*]uint8_t byteHealth; +34
[*]uint8_t byteArmor; +35
[*]uint8_t byteCurrentWeapon; +36
[*]uint8_t byteSpecialAction; +37
[*]float fMoveSpeed[3]; +38           
[*]float fSurfingOffsets[3]; +50
[*]uint16_t sSurfingVehicleID; +62
[*]short sCurrentAnimationID; +64
[*]short sAnimFlags; +66
 

MISTER_GONWIK

Всефорумный гонщик
Всефорумный модератор
1,260
1,740
Не сложно. Покажи мне тупому, где тут считывать ид игрока?
Код:
[*]PACKET_PLAYER_SYNC = 207 | +109
[*] struct stOnFootData ( size = 68 )
[*]uint16_t sLeftRightKeys;
[*]uint16_t sUpDownKeys; +2
[*]uint16_t sKeys; +4
[*]float fPosition[3]; +6
[*]float fQuaternion[4]; +18
[*]uint8_t byteHealth; +34
[*]uint8_t byteArmor; +35
[*]uint8_t byteCurrentWeapon; +36
[*]uint8_t byteSpecialAction; +37
[*]float fMoveSpeed[3]; +38        
[*]float fSurfingOffsets[3]; +50
[*]uint16_t sSurfingVehicleID; +62
[*]short sCurrentAnimationID; +64
[*]short sAnimFlags; +66
у входящего пакета синхры идёт изначально ид игрока и только потом структура OnfootData
 
  • Нравится
Реакции: LUCHARE

Clopster

Известный
143
96
Кроме 0C72: set_virtual_key 0x12 down как еще можно нажать на альт? Видел тут в теме такой код

Код:
0AC8: alloc 0@ 68
0C11: memset destination 0@ value 0 size 68
1@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR)
0BBA: samp store_player 1@ onfoot_data 0@
0C0D: struct 0@ offset 36 size 1 = 1 // https://sampwiki.blast.hk/wiki/Keys
0BC0: samp send_onfoot_data 0@
0AC9: free_allocated_memory 0@

Но как ни пытался у меня с ним ниче не вышло. 1 после = на 1024 менял и на 0x400 и оффсет менял (думал что 36 для т/с). Но чет хз
 

Romelo

dev.
Проверенный
540
624
Кто может кинуть статейку или сказать как делать таймер в cleo (32@ 33@)
CLEO:
32@ = 0 // Ты задал время отсчета
while true
wait 0
if 
0029:   32@ >= 5000 //5 секунд
then
0af8: "Прошло 5 секунд, начинаю отсчет заново" -1
32@ = 0
else
0@ = 5000 //5 секунд
0062: 0@ -= 32@  // (int)
0016: 0@ /= 1000 
0af8: "Подождите еще: %d sec." -1 0@
end
end

Но как ни пытался у меня с ним ниче не вышло. 1 после = на 1024 менял и на 0x400 и оффсет менял (думал что 36 для т/с). Но чет хз
В ручную перебирай, сделай для себя простенький код... /onfoot [%d]

CLEO:
0AC8: alloc 0@ 68 
0C11: memset destination 0@ value 0 size 68 
1@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR) 
0BBA: samp store_player 1@ onfoot_data 0@ 
0C0D: struct 0@ offset 36 size 1 = 2@ //ПОДСТАВЛЯЕШЬ ПЕРЕМЕННУЮ ИЗ КОМАНДЫ /onfoot
0BC0: samp send_onfoot_data 0@
0AC9: free_allocated_memory 0@
За 2 минуты все нужное найдешь.
 

Clopster

Известный
143
96
В ручную перебирай, сделай для себя простенький код... /onfoot [%d]

Я не знаю, может я что-то делаю не так или это на самом сервере фикс, но не реагирует ни на один код из того списка на вики. По идее 1024 это и есть альт. Пробовал другие - тож нет реакции. А на некоторые вообще сервер кикает.

CLEO:
{$CLEO}
0000: NOP

repeat
wait 3000
cmd "alt" @cmd
until samp
pause 0

:cmd
0B35: samp 20@ = get_last_command_params
0AD4: 25@ = scan_string 20@ format "%d" 2@
0AC8: alloc 0@ 68
0C11: memset destination 0@ value 0 size 68
1@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR)
0BBA: samp store_player 1@ onfoot_data 0@
0C0D: struct 0@ offset 36 size 1 = 2@
0BC0: samp send_onfoot_data 0@
0AC9: free_allocated_memory 0@
cmdret

Может для опкода 0b56 есть альт? Но на бх вики его нет в списке. Я пробовал методом тыка, конечно, но все не то.
 
Последнее редактирование:

LUCHARE

Известный
Друг
545
687
Я не знаю, может я что-то делаю не так или это на самом сервере фикс, но не реагирует ни на один код из того списка на вики. По идее 1024 это и есть альт. Пробовал другие - тож нет реакции. А на некоторые вообще сервер кикает.

CLEO:
{$CLEO}
0000: NOP

repeat
wait 3000
cmd "alt" @cmd
until samp
pause 0

:cmd
0B35: samp 20@ = get_last_command_params
0AD4: 25@ = scan_string 20@ format "%d" 2@
0AC8: alloc 0@ 68
0C11: memset destination 0@ value 0 size 68
1@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR)
0BBA: samp store_player 1@ onfoot_data 0@
0C0D: struct 0@ offset 36 size 1 = 2@
0BC0: samp send_onfoot_data 0@
0AC9: free_allocated_memory 0@
cmdret

Может для опкода 0b56 есть альт? Но на бх вики его нет в списке. Я пробовал методом тыка, конечно, но все не то.
Через винапи делай нажатие на альт
 

Romelo

dev.
Проверенный
540
624
Через винапи делай нажатие на альт
Зачем ты советуешь эту парашу для нубов.. Куда быстрее будет отправить хук
Я не знаю, может я что-то делаю не так или это на самом сервере фикс, но не реагирует ни на один код из того списка на вики. По идее 1024 это и есть альт. Пробовал другие - тож нет реакции. А на некоторые вообще сервер кикает.

CLEO:
{$CLEO}
0000: NOP

repeat
wait 3000
cmd "alt" @cmd
until samp
pause 0

:cmd
0B35: samp 20@ = get_last_command_params
0AD4: 25@ = scan_string 20@ format "%d" 2@
0AC8: alloc 0@ 68
0C11: memset destination 0@ value 0 size 68
1@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR)
0BBA: samp store_player 1@ onfoot_data 0@
0C0D: struct 0@ offset 36 size 1 = 2@
0BC0: samp send_onfoot_data 0@
0AC9: free_allocated_memory 0@
cmdret

Может для опкода 0b56 есть альт? Но на бх вики его нет в списке. Я пробовал методом тыка, конечно, но все не то.
Начинай прям с самого начала
1, 2, 3, 4... 128. Стой именно там, где тебе нужно нажимать на Альт.