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

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вообще не пашет, не идёт на координаты
CLEO:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}
{$INCLUDE SF}

//-------------MAIN---------------
{$CLEO}
0000: NOP

var
$cycleStatus: int
end

repeat
    wait 0
until samp.Available()
/*repeat
wait 0
until 0AFA:  */
$cycleStatus = 0
// Íà÷àëüíûå ñîîáùåíèÿ, ñîçäàíèå êîìàíä                                              
wait 8000 // îæèäàíèå 8 ñåê
chatmsg "{e32636}[CLEO BY KUNNPY] {ffffff}Êëåî {e32636}áîò ÿáëîê/àïåëüñèí {ffffff}çàãðóæåí!" 52224 // Ñîîáøåíèå 1
wait 4000 // îæèäàíèå 4 ñåê
chatmsg "{e32636}[CLEO BY KUNNPY] {ffffff}×òî-áû óçíàòü âñå ñêðèïòû îò ìåíÿ ïðîïèøèòå {e32636}/kunnpy" 52224 // Ñîîáøåíèå 2
0B34: samp register_client_command "kunnpybot" to_label @kunnpybotcmd // ðåãèñòðàöèÿ êîìàíäû /kunnpybot
0B34: samp register_client_command "kunnpy" to_label @kunnpycmd // ðåãèñòðàöèÿ êîìàíäû /kunnpy

0BDE: pause_thread 0 // îòêëþ÷åíèå âñåãî ÷òî âûøå, íî êîìàíäû ðàáîòàþò!

:kunnpycmd
chatmsg "{e32636}[kunnpy.cs] {ffffff}Êëåî áîò ÿáëîê/àïåëüñèí çàãðóæåí! {e32636}(kunnpy.cs)" 52224 // ñîîáùåíèå 1
chatmsg "{e32636}[kunnpy.cs] {ffffff}Àêòèâàöèÿ êîìàíäîé {e32636}/kunnpybot" 52225 // ñîîáùåíèå 2
0B43: samp cmd_ret // íå çíàþ

while true
    wait 0
    if $cycleStatus == 1
    then
    05D3: AS_actor $PLAYER_ACTOR goto_point 1930.4075 173.4316 37.2813 mode 6 time -1 ms
    $cycleStatus = 0
    end
end

/* while true
    wait 0
    if $cycleStatus == 1
    then
    05D3: AS_actor $PLAYER_ACTOR goto_point 1932.8510 180.0149 36.4567 mode 6 time -1 ms
    $cycleStatus = 0
    end
end  */

:kunnpybotcmd
//chatmsg "{e32636}[kunnpy.cs] {ffffff}Áîò çàïóùåí, èäó íà ïåðâóþ ïîçèöèþ." 52225 // ñîîáùåíèå 1
/* 0ACD: show_text_highpriority "Bot: [05D3]~N~Mode: 4." time 500
05D3: AS_actor $PLAYER_ACTOR goto_point 1930.4075 173.4316 37.2813 mode 6 time -1 ms
jump @
0B43: samp cmd_ret // íå çíàþ */
0B12: $cycleStatus = $cycleStatus XOR 1
samp.cmdret

Тебе надо в цикли проверять на заданых ты координатах или нет

CLEO:
        repeat
            wait 0
            0B56: set_game_key 1 state -255
            0B56: set_game_key 16 state -255
            call @Goto 2 X Y |
        until 00ED: actor $PLAYER_ACTOR sphere 0 near_point X Y  radius 0.5 0.5 on_foot

:Goto
00A0: store_actor $PLAYER_ACTOR position_to 2@ 3@ 4@
0063: 0@ -= 2@
0063: 1@ -= 3@
0604: get_Z_angle_for_point 0@ 1@ store_to 5@
0173: set_actor $PLAYER_ACTOR Z_angle_to 5@
02EB: restore_camera_with_jumpcut
ret 0
 
Последнее редактирование:
1,417
1,030
У меня он вообще не туда идёт, вставил XYZ
я даже команду ещё не вписал, а он идёт!
потому что ты не знаешь как работает цикл и кусок кода, который дали, я уже тебе писал, прежде чем писать "супер бота", посмотри видео таира и почитай справку сб.
 

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
CLEO:
{$cleo .cs}
0000: NOP
0AC6: 0@ = label @textBuffer offset
0AC6: 1@ = label @prefixBuffer offset

repeat
    wait 0
until samp.Available()

while true
    wait 0
    0C11: memset destination 0@ value 0x0 size 192
    0C11: memset destination 1@ value 0x0 size 64
    0B75: samp get_chat_string 99 text_to 0@ prefix_to 1@ color_to 2@ prefix_color_to 3@
    if 0C18: 4@ = strstr string1 0@ string2 "u noob"
    then
        0AF8: samp add_message_to_chat "YOU NOOB" color 2@
    end
end

:textBuffer
hex
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0
end
:prefixBuffer
hex
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0
end
 
1,417
1,030
Ты называешь меня нубом и присылаешь код, не сказав ничего для меня это тоже самое что открыть клео файл блокнотом

Как сделать что бы рандом был?
К примеру у меня есть команды, и они актив по команде.
CLEO:
05D3: AS_actor $PLAYER_ACTOR goto_point 1922.019 177.7713 37.2752 mode 6 time -1 ms // versionA
chatmsg "{e32636}[cs] {ffffff}Иду в одну сторону..." 52225
05D3: AS_actor $PLAYER_ACTOR goto_point 1922.019 177.7713 37.2752 mode 6 time -1 ms // versionA
chatmsg "{e32636}[cs] {ffffff}Иду в другую сторону..." 52225
Но как сделать что бы активировалась одна из ник, то есть по рандому? БУДУ ОЧЕНЬ БЛАГОДАРЕН!
блять, может чтобы что-то понимать, надо это изучить? Ах да, лучше же спрашивать каждую строчку скрипта на форуме, а потом склеить это в один кусок говна. И как тебя не называть "нубом", если ты элементарные условия в скрипте не можешь сделать(про последний вопрос)? В данной теме тебе вообще никто ничего не должен разжёвывать, для этого есть темы с тэгом "Гайд" и дохера роликов на ютубе.
 
  • Нравится
Реакции: memir и user116675

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Подскажите как узнать координаты 3D texta. Опкод не подойдёт он узнает позицию(XYZ) / смещения относительно прикрепления.
CLEO:
0C46: samp get_3d_text_info_by_id 2@ string_ptr 3@ color 4@ position 5@ 6@ 7@ view_distance 8@ show_behind_walls 9@ attached_to_player 10@ attached_to_vehicle 11@
 

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Какимим опкодами можно получить заголовок диалога и кол-во процентов (ид диалога например 333)
sa_mp_039.png

Ну типо того
IF
заголовок диалога = Навыки владения оружия

THEN
.....

IF
mp5 100%
THEN
....
end
end
CLEO:
{$CLEO}
{$INCLUDE SF}
0000:

while not Samp.Available()
    wait 0
end

0BE3: raknet setup_incoming_rpc_hook @incoming_rpc
0BDE: pause_thread 0

:incoming_rpc
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID // Получаем RPC ID
if 0@ == RPC_SCRSHOWDIALOG
then
    /*
        C++: RakSAMP code
        bsData.Read(sampDialog.wDialogID);
        bsData.Read(sampDialog.bDialogStyle);
        bsData.Read(sampDialog.bTitleLength);
        bsData.Read(sampDialog.szTitle, sampDialog.bTitleLength);
        sampDialog.szTitle[sampDialog.bTitleLength] = 0;
        bsData.Read(sampDialog.bButton1Len);
        bsData.Read(sampDialog.szButton1, sampDialog.bButton1Len);
        sampDialog.szButton1[sampDialog.bButton1Len] = 0;
        bsData.Read(sampDialog.bButton2Len);
        bsData.Read(sampDialog.szButton2, sampDialog.bButton2Len);
        sampDialog.szButton2[sampDialog.bButton2Len] = 0;
        stringCompressor->DecodeString(sampDialog.szInfo, 256, &bsData);
    */
    // Получаем данные
    0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM // Получаем BitStream
    0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_SHORT // WORD(DialogId)
    0BE7: raknet 3@ = bit_stream_read 1@ type BS_TYPE_BYTE // byte(DialogStyle)

    0BE7: raknet 4@ = bit_stream_read 1@ type BS_TYPE_BYTE // byte(TitleLength)
    call @allocate_memory 2 size 4@ reserve 1 ret_to 5@
    0BE8: raknet bit_stream 1@ read_array 5@ size 4@ // Title

    0BE7: raknet 4@ = bit_stream_read 1@ type BS_TYPE_BYTE // byte(Button1Length)
    call @allocate_memory 2 size 4@ reserve 1 ret_to 6@
    0BE8: raknet bit_stream 1@ read_array 6@ size 4@ // Button1
 
    0BE7: raknet 4@ = bit_stream_read 1@ type BS_TYPE_BYTE // byte(Button2Length)
    call @allocate_memory 2 size 4@ reserve 1 ret_to 7@
    0BE8: raknet bit_stream 1@ read_array 7@ size 4@ // Button2
 
    call @allocate_memory 2 size 4096 reserve 1 ret_to 8@ // Info
    0BF4: raknet bit_stream 1@ decode_string 8@ size 4096 // Т.к. текст диалога сжат(закодирован), то нужно его раскодировать
 
    // Итак: 5@ - заголовок диалога, 6@, 7@ - первая и вторая кнопка соответственно, 8@ - текст диалога
    chatmsg "Открыт диалог №%d, тип: %d. Заголовок: '%s'. Кнопки: '%s' / '%s'" color -1 params 2@ 3@ 5@ 6@ 7@
    //
 
    // Освобождаем ранее выделенную память(больше не используется, в данное время)
    free 5@
    free 6@
    free 7@
    free 8@
end
0BE0: raknet hook_ret 1

:allocate_memory
// call @allocate_memory 2 size 0@ reserve 1@ ret_to 2@
005A: 0@ += 1@
0AC8: 2@ = allocate_memory_size 0@
0C11: memset destination 2@ value 0 size 0@
ret 1 2@
 
Последнее редактирование:

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
CLEO:
{$CLEO}
{$INCLUDE SF}
0000:
0BE3: raknet setup_incoming_rpc_hook @incoming_rpc
0BDE: pause_thread 0

:incoming_rpc
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID // Получаем RPC ID
if 0@ == RPC_SCRSHOWDIALOG
then
    /*
        C++: RakSAMP code
        bsData.Read(sampDialog.wDialogID);
        bsData.Read(sampDialog.bDialogStyle);
        bsData.Read(sampDialog.bTitleLength);
        bsData.Read(sampDialog.szTitle, sampDialog.bTitleLength);
        sampDialog.szTitle[sampDialog.bTitleLength] = 0;
        bsData.Read(sampDialog.bButton1Len);
        bsData.Read(sampDialog.szButton1, sampDialog.bButton1Len);
        sampDialog.szButton1[sampDialog.bButton1Len] = 0;
        bsData.Read(sampDialog.bButton2Len);
        bsData.Read(sampDialog.szButton2, sampDialog.bButton2Len);
        sampDialog.szButton2[sampDialog.bButton2Len] = 0;
        stringCompressor->DecodeString(sampDialog.szInfo, 256, &bsData);
    */
    // Получаем данные
    0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM // Получаем BitStream
    0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_SHORT // WORD(DialogId)
    0BE7: raknet 3@ = bit_stream_read 1@ type BS_TYPE_BYTE // byte(DialogStyle)

    0BE7: raknet 4@ = bit_stream_read 1@ type BS_TYPE_BYTE // byte(TitleLength)
    0AB1: call @allocate_memory 2 size 4@ reserve 1 ret_to 5@
    0BE8: raknet bit_stream 1@ read_array 5@ size 4@ // Title

    0BE7: raknet 4@ = bit_stream_read 1@ type BS_TYPE_BYTE // byte(Button1Length)
    0AB1: call @allocate_memory 2 size 4@ reserve 1 ret_to 6@
    0BE8: raknet bit_stream 1@ read_array 6@ size 4@ // Button1
 
    0BE7: raknet 4@ = bit_stream_read 1@ type BS_TYPE_BYTE // byte(Button2Length)
    0AB1: call @allocate_memory 2 size 4@ reserve 1 ret_to 7@
    0BE8: raknet bit_stream 1@ read_array 7@ size 4@ // Button2
 
    0AB1: call @allocate_memory 2 size 4096 reserve 1 ret_to 8@ // Info
    0BF4: raknet bit_stream 1@ decode_string 8@ size 4096 // Т.к. текст диалога сжат(закодирован), то нужно его раскодировать
 
    // Итак: 5@ - заголовок диалога, 6@, 7@ - первая и вторая кнопка соответственно, 8@ - текст диалога
    chatmsg "Открыт диалог №%d, тип: %d. Заголовок: '%s'. Кнопки: '%s' / '%s'" color -1 params 2@ 3@ 5@ 6@ 7@
    //
 
    // Освобождаем ранее выделенную память(больше не используется, в данное время)
    free 5@
    free 6@
    free 7@
    free 8@
end
0BE0: raknet hook_ret 1

:allocate_memory
// call @allocate_memory 2 size 0@ reserve 1@ ret_to 2@
005A: 0@ += 1@
0AC8: 2@ = allocate_memory_size 0@
0C11: memset destination 2@ value 0 size 0@
ret 1 2@
CLEO:
0BD8: samp get_dialog_caption 0@
Подскажите как узнать координаты 3D texta. Опкод не подойдёт он узнает позицию(XYZ) / смещения относительно прикрепления.
тебе 2д координаты нужны?
 

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
если он прикреплен к чему то, то узнавай координаты этого "чего то", а если не прикреплен, то в этих переменных будут нужные тебе координаты
Да, мне надо узнать координаты машины к которому прикреплен 3D Text
 

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ну так в
CLEO:
0C46: samp get_3d_text_info_by_id 2@ string_ptr 3@ color 4@ position 5@ 6@ 7@ view_distance 8@ show_behind_walls 9@ attached_to_player 10@ attached_to_vehicle 11@
11@ переменной ид машины
по нему ты уже можешь узнать ее координаты
 

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ну так в
CLEO:
0C46: samp get_3d_text_info_by_id 2@ string_ptr 3@ color 4@ position 5@ 6@ 7@ view_distance 8@ show_behind_walls 9@ attached_to_player 10@ attached_to_vehicle 11@
11@ переменной ид машины
по нему ты уже можешь узнать ее координаты
Спасибо очень туплю сегодня
 

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Это весь код?