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

hnnssy

Известный
Друг
2,684
2,761
пацаны, а как сделать чтобы сервер видел мои координаты всегда на 10 метров впереди, от моих локальных. типа fake позиция, хз как объяснить по-другому
ставить хук на onfoot data и подменять в нём координаты на 10+
 

01EG

Известный
Проверенный
629
354
Кто пояснит за raksamp и работу с пакетами? последний раз на 0.3x Обходился оффсетами, но теперь походу без них никуда, объясните на примерах как например тот же onfoot перехватить?
ВСЁ О РАКНЕТЕ НА КЛЕО
Информация - Гайд - Работа с RakNet хуками с помощью SAMPFUNCS(https://blast.hk/threads/17440/)
SAMP RPCS © MazaHACKa(https://docs.google.com/spreadsheets/d/1iIxEk7yR8r7ZLGiSAL4ndtz_N1k0p3Wt7TE5bei6ztU/edit#gid=1)
Код:
Размеры типов данных
uint16_t  ---> 2 bytes.
uint8_t ---> 1 bytes.
char ---> 1 bytes.
bool ---> 1 bytes.
int ---> 4 bytes.
short int ---> 2 bytes.
unsigned int ---> 4 bytes.
unsigned short int ---> 2 bytes.
uint32_t ---> 4 bytes.
float ---> 4 bytes.
uint16_t somevariable[2] ---> 2*2 = 4 bytes.
void ---> = 4 bytes.
DWORD ---> = 4 bytes.
float asomevariable[3] ---> 3*4 = 12 bytes.

PACKET_NAME = id | Local data offset

PARAM_BITSTREAM = 02
PARAM_PACKETID = 1
PARAM_PRIORITY = 2
PARAM_RELIABILITY = 3
PARAM_ORDERINGCHANNEL = 4
PARAM_SHIFTTIMESTAMP = 5

BS_TYPE_BYTE = 0
BS_TYPE_BOOL = 1
BS_TYPE_SHORT = 2
BS_TYPE_INT = 3
BS_TYPE_FLOAT = 4
BS_TYPE_ARRAY = 5
BS_TYPE_BITSTREAM = 6

PACKET_PLAYER_SYNC = 207 | +55
// 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
// uint16_t iCurrentAnimationID;+64
// uint16_t AnimFlags;+66

PACKET_MARKERS_SYNC = 208
//struct stMarkersSync ( size =25)
//int i;+0
//int iNumberOfPlayers;+4
//DWORD playerID;+8
//short sPos[3];+10
//bool bIsPlayerActive;+24

PACKET_UNOCCUPIED_SYNC = 209
//struct stUnoccupiedData ( size =67)
//int16_t sVehicleID;+0
//uint8_t byteSeatID;+2
//float fRoll[3];+3
//float fDirection[3];+15
//float fPosition[3];+27
//float fMoveSpeed[3];+39
//float fTurnSpeed[3];+51
//float fHealth;+63

PACKET_TRAILER_SYNC = 210 | +147
//struct stTrailerData ( size =54)
//uint16_t sTrailerID;+0
//float fDirection[3];+2
//float fRoll[3];+14
//float fPosition[3];+26
//float fSpeed[3];+38
//uint32_t pad;+50

PACKET_PASSENGER_SYNC = 211 | +123
//struct stPassengerData ( size =24)
//uint16_t sVehicleID;+0
//uint8_t byteSeatID;+2
//uint8_t byteCurrentWeapon;+3
//uint8_t byteHealth;+4
//uint8_t byteArmor;+5
//uint16_t sLeftRightKeys;+6
//uint16_t sUpDownKeys;+8
//uint16_t sKeys;+10
//float fPosition[3];+12

PACKET_AIM_SYNC = 203 | + 24
// struct stAimData ( size =31)
//BYTE byteCamMode;+0
//float vecAimf1[3];+1
//float vecAimPos[3];+13
//float fAimZ;+25
//BYTE byteCamExtZoom :6;+29
//BYTE bUnk;+30

PACKET_VEHICLE_SYNC = 200 | +201
// struct stInCarData ( size =63)
// uint16_t sVehicleID;
// uint16_t sLeftRightKeys;+2
// uint16_t sUpDownKeys;+4
// uint16_t sKeys;+6
// float fQuaternion[4];+8
// float fPosition[3];+24
// float fMoveSpeed[3];+36
// float fVehicleHealth;+48
// uint8_t bytePlayerHealth;+52
// uint8_t byteArmor;+53
// uint8_t byteCurrentWeapon;+54
// uint8_t byteSiren;+55
// uint8_t byteLandingGearState;+56
// uint16_t sTrailerID;+57
// float fTrainSpeed;+59

PACKET_WEAPONS_UPDATE = 215
//struct stWeaponData ( size =6\2\10)
//int16_t iTargetID;+0
//uint8_t slot;+2
//uint8_t weapon;+3
//int16_t ammo;+4

PACKET_STATS_UPDATE = 216
//struct stStatsData ( size =6)
//int iMoney;+0
//WORD wAmmo;+4

PACKET_BULLET_SYNC = 206
//struct stBulletSync ( size =40)
//BYTE bHitType;+0
//short iHitID;+1
//float fBullFrom[3];+3
//float fBullTo[3];+15
//float fBodyOfsset[3];+27
//BYTE bWeaponID;+39

PACKET_SPECTATOR_DATA = 212
//struct stSpectatorData (size = 20)
// uint16_t sLeftRightKeys;
// uint16_t sUpDownKeys;+2
// uint16_t sKeys;+4
// float fPosition[3];+6 //10 //14

пацаны, а как сделать чтобы сервер видел мои координаты всегда на 10 метров впереди, от моих локальных. типа fake позиция, хз как объяснить по-другому
Тебе нужно именно всегда ? Если именно всегда, то вот пример в этой теме: Информация - Гайд - Работа с RakNet хуками с помощью SAMPFUNCS(https://blast.hk/threads/17440/)

Если тебе нужна фейк позиция, то вот, но учти, что ты будешь дергаться для других игроков туда сюда, потому что синхра будет отправляться с нулевой задержкой, а чтоб быть всегда на других координатах, надо чтоб отправлялось вообще без задержки, то есть только через хуки, в которых нету задержек, короч чекни всё, то что выше.
CLEO:
{$CLEO}
0000:

float 23@ = 10.0

repeat
wait 500
until Samp.Available()

0B34: samp register_client_command "example" to_label @cmd


while true
wait 0
Actor.StorePos($PLAYER_ACTOR,11@,12@,13@)
// 005B: 11@ += 23@  //X
// 005B: 12@ += 23@  // Y
0063: 13@ -= 23@     // Z
    if 10@ == 1
    then 
    printf "EXAMPLE" 1
    0AC8: 1@ = allocate_memory_size 68
    0B2B: samp 0@ = get_player_id_by_actor_handle $PLAYER_ACTOR
    0BBA: samp store_player 0@ onfoot_data 1@
    // 0C0D: struct 1@ offset 6 size 4 = 11@ // X
    // 0C0D: struct 1@ offset 10 size 4 = 12@ // Y
    0C0D: struct 1@ offset 14 size 4 = 13@ // Z
    0BC0: samp send_onfoot_data 1@
    0AC9: free_allocated_memory 1@
    end
end

:cmd
0B12: 10@ = 10@ XOR 1
Samp.CmdRet()
 
  • Нравится
Реакции: priestokk

Fisko

Новичок
4
0
Помогите исправить код. Вылетает при активации команды.
CLEO:
{$CLEO}
{$NOSOURCE}
0000: 
:1
0001: wait 0 ms 
0AFA:  is_samp_available 
0256:   player $PLAYER_CHAR defined 
0038:   $672 == 17 
004D: jump_if_false @1 
0B34: samp register_client_command "hpup" to_label @cmd
:hp
0001: wait 0 ms 
0039:   25@ == 1 
004D: jump_if_false @hp
0AF8: samp add_message_to_chat "Ñêðèïò àêòèâèðîâàí!" color 0xFFFFFF 
0A96: 0@ = actor $PLAYER_ACTOR struct 
0A8E: 1@ = 1@ + 1344 // int 
0A8D: 2@ = read_memory 1@ size 4 virtual_protect 1 
0A8C: write_memory 2@ size 4 value 100.0 virtual_protect 1 
0002: jump @carhp 
:carhp
0001: wait 0 ms 
00DF:   actor $PLAYER_ACTOR driving 
004D: jump_if_false @hp 
00D9: 20@ = actor $PLAYER_ACTOR car // add to mission cleanup 
0A97: 3@ = car 20@ struct 
0A8E: 4@ = 3@ + 1216 // int 
0A8D: 5@ = read_memory 4@ size 4 virtual_protect 1 
0A8C: write_memory 5@ size 4 value 1000.0 virtual_protect 1 
0002: jump @1
:cmd
0001: wait 0 ms 
8039:   not  25@ == 1 
004D: jump_if_false @cmd2 
0A8E: 25@ = 1 + 0 // int 
0B43: samp cmd_ret 
:cmd2
0A8E: 25@ = 0 + 0 // int 
0B43: samp cmd_ret
 

Musaigen

abobusnik
Проверенный
1,605
1,361
Помогите исправить код. Вылетает при активации команды.
CLEO:
{$CLEO}
{$NOSOURCE}
0000:
:1
0001: wait 0 ms
0AFA:  is_samp_available
0256:   player $PLAYER_CHAR defined
0038:   $672 == 17
004D: jump_if_false @1
0B34: samp register_client_command "hpup" to_label @cmd
:hp
0001: wait 0 ms
0039:   25@ == 1
004D: jump_if_false @hp
0AF8: samp add_message_to_chat "Ñêðèïò àêòèâèðîâàí!" color 0xFFFFFF
0A96: 0@ = actor $PLAYER_ACTOR struct
0A8E: 1@ = 1@ + 1344 // int
0A8D: 2@ = read_memory 1@ size 4 virtual_protect 1
0A8C: write_memory 2@ size 4 value 100.0 virtual_protect 1
0002: jump @carhp
:carhp
0001: wait 0 ms
00DF:   actor $PLAYER_ACTOR driving
004D: jump_if_false @hp
00D9: 20@ = actor $PLAYER_ACTOR car // add to mission cleanup
0A97: 3@ = car 20@ struct
0A8E: 4@ = 3@ + 1216 // int
0A8D: 5@ = read_memory 4@ size 4 virtual_protect 1
0A8C: write_memory 5@ size 4 value 1000.0 virtual_protect 1
0002: jump @1
:cmd
0001: wait 0 ms
8039:   not  25@ == 1
004D: jump_if_false @cmd2
0A8E: 25@ = 1 + 0 // int
0B43: samp cmd_ret
:cmd2
0A8E: 25@ = 0 + 0 // int
0B43: samp cmd_ret
В командах нельзя использовать wait
 

01EG

Известный
Проверенный
629
354
Только из-за этого крашит? В остальном код правильный?
CLEO:
0A96: 0@ = actor $PLAYER_ACTOR struct
0A8E: 1@ = 1@ + 1344 // int
0A8D: 2@ = read_memory 1@ size 4 virtual_protect 1
0A8C: write_memory 2@ size 4 value 100.0 virtual_protect 1
Во-первых: логически думай прежде, чем что-то пишешь. Ты записываешь структуру игрока в 0@ переменную, а потом к структуре прибавляешь 0x540(health adress), но куда ты это записываешь, если ты структуру записал в 0@ переменную, а адресс добавляешь вообще в какую-то левую переменную 1@ и так далее
Во-вторых: не уверен, но 8039: not 25@ == 1, вроде оно проверять нихуя не будет, потому что это (ВРОДЕ) не тот опкод, который сам выступает как, условие по-этому лучше пиши:
CLEO:
if
8090: not 25@ == 1
В третьих:
CLEO:
0A8E: 25@ = 0 + 0 // int
можно просто писать:
25@ = 0
В четвертых: задержка в командах не используется
Хз на счет некоторых пунктов, которые я здесь решил написать, мб это ты скинул код, который из-за {$NOSOURCE} такой
Короче вот:
CLEO:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP

:Noname_2
0001: wait 500 ms
0AFA:  is_samp_available
004D: jump_if_false @Noname_2
0B34: samp register_client_command "hpup" to_label @Noname_269

:Noname_29
0001: wait 500 ms
00D6: if
0039:   25@ == 1
004D: jump_if_false @Noname_262
0AF8: samp add_message_to_chat "ÕÏ àêò¸ðà ïîïîëíåíû äî 100" color 16777215
0A96: 0@ = actor $PLAYER_ACTOR struct
0A8E: 0@ = 0@ + 1344 // int
0A8D: 1@ = read_memory 0@ size 4 virtual_protect 1
0A8C: write_memory 0@ size 4 value 100.0 virtual_protect 1
0001: wait 100 ms
00D6: if
00DF:   actor $PLAYER_ACTOR driving
004D: jump_if_false @Noname_255
0AF8: samp add_message_to_chat "ÕÏ êàðà ïîïîëíåíû äî 1000" color 16777215
03C0: 10@ = actor $PLAYER_ACTOR car
0A97: 10@ = car 10@ struct
0A8E: 10@ = 10@ + 1216 // int
0A8D: 11@ = read_memory 10@ size 4 virtual_protect 1
0A8C: write_memory 10@ size 4 value 1000.0 virtual_protect 1
0006: 25@ = 0
0002: jump @Noname_262

:Noname_255
0006: 25@ = 0

:Noname_262
0002: jump @Noname_29

:Noname_269
0B12: 25@ = 25@ XOR 1
0B43: samp cmd_ret
CLEO:
{$CLEO}
0000:
repeat
wait 500
until Samp.Available()
0B34: samp register_client_command "hpup" to_label @cmd

while true
wait 500

        if 25@ == 1
        then
        0AF8: samp add_message_to_chat "ХП актёра пополнены до 100" color 0xFFFFFF
        0A96: 0@ = actor $PLAYER_ACTOR struct
        0A8E: 0@ = 0@ + 0x540 // int
        0A8D: 1@ = read_memory 0@ size 4 virtual_protect 1
        0A8C: write_memory 0@ size 4 value 100.0 virtual_protect 1
        wait 100
            if Actor.Driving($PLAYER_ACTOR)
            then
            0AF8: samp add_message_to_chat "ХП кара пополнены до 1000" color 0xFFFFFF
            10@ = Actor.CurrentCar($PLAYER_ACTOR)
            0A97: 10@ = car 10@ struct
            0A8E: 10@ = 10@ + 0x4C0 // int
            0A8D: 11@ = read_memory 10@ size 4 virtual_protect 1
            0A8C: write_memory 10@ size 4 value 1000.0 virtual_protect 1
            25@ = 0
            else
            25@ = 0
            end
        end
end

:cmd
0B12: 25@ = 25@ XOR 1
Samp.CmdRet()
Рабочий код, того что ты хотел сделать
P.S. с тебя новые нервы, пока я пытался зайти на читинг протестить и какие-то хуесосы крашили меня на протяжении 20 минут. Какими же детьмы даунов надо быть, что бы сидеть на читинге и крашить кого-то. Ебанные уроды.
 

Вложения

  • HelpFisco.cs
    18.5 KB · Просмотры: 4
  • HelpFiscoNOSOURCE.cs
    17.4 KB · Просмотры: 6
  • Нравится
Реакции: hnnssy и Fisko

Fisko

Новичок
4
0
CLEO:
0A96: 0@ = actor $PLAYER_ACTOR struct
0A8E: 1@ = 1@ + 1344 // int
0A8D: 2@ = read_memory 1@ size 4 virtual_protect 1
0A8C: write_memory 2@ size 4 value 100.0 virtual_protect 1
Во-первых: логически думай прежде, чем что-то пишешь. Ты записываешь структуру игрока в 0@ переменную, а потом к структуре прибавляешь 0x540(health adress), но куда ты это записываешь, если ты структуру записал в 0@ переменную, а адресс добавляешь вообще в какую-то левую переменную 1@ и так далее
Во-вторых: не уверен, но 8039: not 25@ == 1, вроде оно проверять нихуя не будет, потому что это (ВРОДЕ) не тот опкод, который сам выступает как, условие по-этому лучше пиши:
CLEO:
if
8090: not 25@ == 1
В третьих:
CLEO:
0A8E: 25@ = 0 + 0 // int
можно просто писать:
25@ = 0
В четвертых: задержка в командах не используется
Хз на счет некоторых пунктов, которые я здесь решил написать, мб это ты скинул код, который из-за {$NOSOURCE} такой
Короче вот:
CLEO:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP

:Noname_2
0001: wait 500 ms
0AFA:  is_samp_available
004D: jump_if_false @Noname_2
0B34: samp register_client_command "hpup" to_label @Noname_269

:Noname_29
0001: wait 500 ms
00D6: if
0039:   25@ == 1
004D: jump_if_false @Noname_262
0AF8: samp add_message_to_chat "ÕÏ àêò¸ðà ïîïîëíåíû äî 100" color 16777215
0A96: 0@ = actor $PLAYER_ACTOR struct
0A8E: 0@ = 0@ + 1344 // int
0A8D: 1@ = read_memory 0@ size 4 virtual_protect 1
0A8C: write_memory 0@ size 4 value 100.0 virtual_protect 1
0001: wait 100 ms
00D6: if
00DF:   actor $PLAYER_ACTOR driving
004D: jump_if_false @Noname_255
0AF8: samp add_message_to_chat "ÕÏ êàðà ïîïîëíåíû äî 1000" color 16777215
03C0: 10@ = actor $PLAYER_ACTOR car
0A97: 10@ = car 10@ struct
0A8E: 10@ = 10@ + 1216 // int
0A8D: 11@ = read_memory 10@ size 4 virtual_protect 1
0A8C: write_memory 10@ size 4 value 1000.0 virtual_protect 1
0006: 25@ = 0
0002: jump @Noname_262

:Noname_255
0006: 25@ = 0

:Noname_262
0002: jump @Noname_29

:Noname_269
0B12: 25@ = 25@ XOR 1
0B43: samp cmd_ret
CLEO:
{$CLEO}
0000:
repeat
wait 500
until Samp.Available()
0B34: samp register_client_command "hpup" to_label @cmd

while true
wait 500

        if 25@ == 1
        then
        0AF8: samp add_message_to_chat "ХП актёра пополнены до 100" color 0xFFFFFF
        0A96: 0@ = actor $PLAYER_ACTOR struct
        0A8E: 0@ = 0@ + 0x540 // int
        0A8D: 1@ = read_memory 0@ size 4 virtual_protect 1
        0A8C: write_memory 0@ size 4 value 100.0 virtual_protect 1
        wait 100
            if Actor.Driving($PLAYER_ACTOR)
            then
            0AF8: samp add_message_to_chat "ХП кара пополнены до 1000" color 0xFFFFFF
            10@ = Actor.CurrentCar($PLAYER_ACTOR)
            0A97: 10@ = car 10@ struct
            0A8E: 10@ = 10@ + 0x4C0 // int
            0A8D: 11@ = read_memory 10@ size 4 virtual_protect 1
            0A8C: write_memory 10@ size 4 value 1000.0 virtual_protect 1
            25@ = 0
            else
            25@ = 0
            end
        end
end

:cmd
0B12: 25@ = 25@ XOR 1
Samp.CmdRet()
Рабочий код, того что ты хотел сделать
P.S. с тебя новые нервы, пока я пытался зайти на читинг протестить и какие-то хуесосы крашили меня на протяжении 20 минут. Какими же детьмы даунов надо быть, что бы сидеть на читинге и крашить кого-то. Ебанные уроды.

Спасибо больше. Можешь еще дать IP читинга, а то не хочется на серверах проверять читы?
 

01EG

Известный
Проверенный
629
354
Спасибо больше. Можешь еще дать IP читинга, а то не охота на серверах проверять читы?)
HostName: Cheating ALLOWED
Address: 37.187.7.227:7778
Players: 1 / 100
Ping: 52
Mode: Fun Cheat
Language: -
HostName: SA-MP Cheating Server
Address: 79.133.50.48:7777
Players: 0 / 0
Ping: 9999
Mode:
Language:
HostName: Prime-Hack Cheating allowed
Address: prime-hack.net:1337
Players: 0 / 0
Ping: 9999
Mode:
Language:
 
  • Нравится
Реакции: Fisko

Fisko

Новичок
4
0
HostName: Cheating ALLOWED
Address: 37.187.7.227:7778
Players: 1 / 100
Ping: 52
Mode: Fun Cheat
Language: -
HostName: SA-MP Cheating Server
Address: 79.133.50.48:7777
Players: 0 / 0
Ping: 9999
Mode:
Language:
HostName: Prime-Hack Cheating allowed
Address: prime-hack.net:1337
Players: 0 / 0
Ping: 9999
Mode:
Language:

2 лайка поставил, спасибо за помощь)
 

клешь рояль

Известный
1,255
550
Каким способом можно сделать дамагер? Я просто знаю сервер где почти не 1 дамагер не робит
 

Qsany

Потрачен
464
147
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
опкод спавна плиз очень срочно