Авто-математика

Статус
В этой теме нельзя размещать новые ответы.

Lord

Новичок
Автор темы
236
42
Привет.

Может ли кто-нибудь сделать скрипт, так что бы само текст считывало определенный текст, высчитывало математический пример, а затем прописывало команду и ответ?


bMRJo4b.png


Мои навыки знания клео-скриптинга малы, не получается сделать вообще, может кто-то из Вас знает что да как?



Текст из чат-лога:
Код:
{E3BE88}Математика: {3399CC}9457 {299800}прибавить {3399CC}169 {FFFFFF}= {FF3300}??? {FFFFFF}| (Приз за правильный ответ: +1exp, +5000$)
 
Последнее редактирование:

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
Там чё только прибавить?
 

AWRage

Активный
642
141
Крайне нестабильная хуйня, которая будет работать лишь в тех случаях, когда будут меняться только числа. Можно было сделать по круче, с хуком, sscanf и прочим добром, но мне лень, да и в клео непривычно писать.
CLEO:
{$CLEO}
0000:
wait 2000

alloc 30@ 256

while true

0B75: samp get_chat_string 99 text_to 30@ prefix_to 0 color_to 0 prefix_color_to 0

if 0C18: 0 = strstr string1 30@ string2 "{E3BE88}Математика:"
then
    if 0C18: 0 = strstr string1 30@ string2 "прибавить"
    then
        0AD4: 0@ = scan_string 30@ format "{E3BE88}Математика: {3399CC}%i {299800}прибавить {3399CC}%i" 1@ 2@
        005A: 1@ += 2@
        0AF8: samp add_message_to_chat  "%i" -1 1@                                                          
    end

    if 0C18: 0 = strstr string1 30@ string2 "минус"
    then
        0AD4: 0@ = scan_string 30@ format "{E3BE88}Математика: {3399CC}%i {299800}минус {3399CC}%i" 1@ 2@
        0062: 1@ -= 2@
        0AF8: samp add_message_to_chat  "%i" -1 1@
    end

    if 0C18: 0 = strstr string1 30@ string2 "умножить"
    then
        0AD4: 0@ = scan_string 30@ format "{E3BE88}Математика: {3399CC}%i {299800}умножить {3399CC}%i" 1@ 2@
        006A: 1@ *= 2@
        0AF8: samp add_message_to_chat  "%i" -1 1@
    end
end

wait 0
end
 
  • Нравится
Реакции: 01EG и Lord

Сэнд

Известный
Проверенный
436
212
Привет.

Может ли кто-нибудь сделать скрипт, так что бы само текст считывало определенный текст, высчитывало математический пример, а затем прописывало команду и ответ?

Мои навыки знания клео-скриптинга малы, не получается сделать вообще, может кто-то из Вас знает что да как?

qnF4c2i.png


Текст из чат-лога:
Код:
{E3BE88}Математика: {3399CC}9457 {299800}прибавить {3399CC}169 {FFFFFF}= {FF3300}??? {FFFFFF}| (Приз за правильный ответ: +1exp, +5000$)
Насколько я помню, там после строки с математикой идёт пустая строка.
 

Lord

Новичок
Автор темы
236
42
Крайне нестабильная хуйня, которая будет работать лишь в тех случаях, когда будут меняться только числа. Можно было сделать по круче, с хуком, sscanf и прочим добром, но мне лень, да и в клео непривычно писать.
CLEO:
{$CLEO}
0000:
wait 2000

alloc 30@ 256

while true

0B75: samp get_chat_string 99 text_to 30@ prefix_to 0 color_to 0 prefix_color_to 0

if 0C18: 0 = strstr string1 30@ string2 "{E3BE88}Математика:"
then
    if 0C18: 0 = strstr string1 30@ string2 "прибавить"
    then
        0AD4: 0@ = scan_string 30@ format "{E3BE88}Математика: {3399CC}%i {299800}прибавить {3399CC}%i" 1@ 2@
        005A: 1@ += 2@
        0AF8: samp add_message_to_chat  "%i" -1 1@                                                         
    end

    if 0C18: 0 = strstr string1 30@ string2 "минус"
    then
        0AD4: 0@ = scan_string 30@ format "{E3BE88}Математика: {3399CC}%i {299800}минус {3399CC}%i" 1@ 2@
        0062: 1@ -= 2@
        0AF8: samp add_message_to_chat  "%i" -1 1@
    end

    if 0C18: 0 = strstr string1 30@ string2 "умножить"
    then
        0AD4: 0@ = scan_string 30@ format "{E3BE88}Математика: {3399CC}%i {299800}умножить {3399CC}%i" 1@ 2@
        006A: 1@ *= 2@
        0AF8: samp add_message_to_chat  "%i" -1 1@
    end
end

wait 0
end
Если круче можно, то может попробуешь, пожалуйста?
upd: новый скриншот посмотри, про 2-ую строку забыл изначально.
 

AWRage

Активный
642
141
Если круче можно, то может попробуешь, пожалуйста?
upd: новый скриншот посмотри, про 2-ую строку забыл изначально.
CLEO:
{$CLEO}
0000:
wait 2000

alloc 30@ 256

while true

0B75: samp get_chat_string 99 text_to 30@ prefix_to 0 color_to 0 prefix_color_to 0

if 0C18: 0 = strstr string1 30@ string2 "{E3BE88}Математика:"
then
    if 0C18: 0 = strstr string1 30@ string2 "прибавить"
    then
        0AD4: 0@ = scan_string 30@ format "{E3BE88}Математика: {3399CC}%i {299800}прибавить {3399CC}%i" 1@ 2@
        005A: 1@ += 2@
        say "/otvet %i" 1@                                                       
    end

    if 0C18: 0 = strstr string1 30@ string2 "минус"
    then
        0AD4: 0@ = scan_string 30@ format "{E3BE88}Математика: {3399CC}%i {299800}минус {3399CC}%i" 1@ 2@
        0062: 1@ -= 2@
        say "/otvet %i" 1@
    end

    if 0C18: 0 = strstr string1 30@ string2 "умножить"
    then
        0AD4: 0@ = scan_string 30@ format "{E3BE88}Математика: {3399CC}%i {299800}умножить {3399CC}%i" 1@ 2@
        006A: 1@ *= 2@
        say "/otvet %i" 1@
    end
end

wait 0
end
 
  • Нравится
Реакции: Lord

Lord

Новичок
Автор темы
236
42
CLEO:
{$CLEO}
0000:
wait 2000

alloc 30@ 256

while true

0B75: samp get_chat_string 99 text_to 30@ prefix_to 0 color_to 0 prefix_color_to 0

if 0C18: 0 = strstr string1 30@ string2 "{E3BE88}Математика:"
then
    if 0C18: 0 = strstr string1 30@ string2 "прибавить"
    then
        0AD4: 0@ = scan_string 30@ format "{E3BE88}Математика: {3399CC}%i {299800}прибавить {3399CC}%i" 1@ 2@
        005A: 1@ += 2@
        say "/otvet %i" 1@                                                      
    end

    if 0C18: 0 = strstr string1 30@ string2 "минус"
    then
        0AD4: 0@ = scan_string 30@ format "{E3BE88}Математика: {3399CC}%i {299800}минус {3399CC}%i" 1@ 2@
        0062: 1@ -= 2@
        say "/otvet %i" 1@
    end

    if 0C18: 0 = strstr string1 30@ string2 "умножить"
    then
        0AD4: 0@ = scan_string 30@ format "{E3BE88}Математика: {3399CC}%i {299800}умножить {3399CC}%i" 1@ 2@
        006A: 1@ *= 2@
        say "/otvet %i" 1@
    end
end

wait 0
end
Не работает.
На цвет не реагирует, а если просто в чат написать (т.е. одноцветный текст), то работает.
 

Lord

Новичок
Автор темы
236
42
Где математика убери {..}.
Всё равно так же. Но теперь кажется из-за второй строки. Так как /otvet %i пишется в ту же секунду что и вторая строка.

Дай свой скайп, если не затруднит.
 
Последнее редактирование:

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
Хочу классы.
CLEO:
{$CLEO}
{$INCLUDE SF}

0001: wait 0 ms
0662: "by legend2360"
0662: "BlastHack - cheating is art"

while not SAMP.Available()
    wait 400
end

0BE3: raknet setup_incoming_rpc_hook @incoming_rpc

pause_thread 0

:incoming_rpc
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
if 0@ == RPC_SCRCLIENTMESSAGE
then
    0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM
    0BEB: raknet bit_stream 1@ ignore_bits 32 // color

    0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_INT // msg len

    call @_allocate_memory 1 size 2@ ret_to 3@
    0BE8: raknet bit_stream 1@ read_array 3@ size 2@
   
    // {E3BE88}Математика: {3399CC}9457 {299800}прибавить {3399CC}169 {FFFFFF}= {FF3300}??? {FFFFFF}| (Приз за правильный ответ: +1exp, +5000$)
    if 0C25: strncmp string1 3@ string2 "{E3BE88}Математика:" size 19
    then
        0A8E: 4@ = 3@ + 20 // 
               
        // 3@ - string; 4@ - string without "{E3BE88}Математика: "; 5@ - digit 1; 6@ - operation; 7@ - digit 2
        call @_allocate_memory 1 size 32 ret_to 6@
        0AA7: call 0x8220AD num_params 5 pop 5 params 7@v 6@ 5@v "{3399CC}%d {299800}%s {3399CC}%d" 4@ result_to 8@ // sscanf(4@, "{3399CC}%d {299800}%s {3399CC}%d", 5@v, 6@, 7@v)
        if 8@ == 3
        then
            if 0C14: strcmp string1 6@ string2 "прибавить"
            then
                0A8E: 9@ = 5@ + 7@
                chat "Result: %d + %d = %d" -1 5@ 7@ 9@
            else
                if 0C14: strcmp string1 6@ string2 "минус"
                then
                    0A8F: 9@ = 5@ - 7@
                    chat "Result: %d - %d = %d" -1 5@ 7@ 9@
                else
                    0A90: 9@ = 5@ * 7@
                    chat "Result: %d * %d = %d" -1 5@ 7@ 9@
                end
            end
        end
       
        free 6@
    end
   
    free 3@
end
0BE0: raknet hook_ret true

:_allocate_memory
// call @_allocate_memory 1 size 0@ ret_to 1@
0@++
alloc 1@ 0@
0C11: memset destination 1@ value 0 size 0@
ret 1 1@
 

BigBrother

Новичок
2
0
Хочу классы.
CLEO:
{$CLEO}
{$INCLUDE SF}

0001: wait 0 ms
0662: "by legend2360"
0662: "BlastHack - cheating is art"

while not SAMP.Available()
    wait 400
end

0BE3: raknet setup_incoming_rpc_hook @incoming_rpc

pause_thread 0

:incoming_rpc
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
if 0@ == RPC_SCRCLIENTMESSAGE
then
    0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM
    0BEB: raknet bit_stream 1@ ignore_bits 32 // color

    0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_INT // msg len

    call @_allocate_memory 1 size 2@ ret_to 3@
    0BE8: raknet bit_stream 1@ read_array 3@ size 2@
  
    // {E3BE88}Математика: {3399CC}9457 {299800}прибавить {3399CC}169 {FFFFFF}= {FF3300}??? {FFFFFF}| (Приз за правильный ответ: +1exp, +5000$)
    if 0C25: strncmp string1 3@ string2 "{E3BE88}Математика:" size 19
    then
        0A8E: 4@ = 3@ + 20 //
              
        // 3@ - string; 4@ - string without "{E3BE88}Математика: "; 5@ - digit 1; 6@ - operation; 7@ - digit 2
        call @_allocate_memory 1 size 32 ret_to 6@
        0AA7: call 0x8220AD num_params 5 pop 5 params 7@v 6@ 5@v "{3399CC}%d {299800}%s {3399CC}%d" 4@ result_to 8@ // sscanf(4@, "{3399CC}%d {299800}%s {3399CC}%d", 5@v, 6@, 7@v)
        if 8@ == 3
        then
            if 0C14: strcmp string1 6@ string2 "прибавить"
            then
                0A8E: 9@ = 5@ + 7@
                chat "Result: %d + %d = %d" -1 5@ 7@ 9@
            else
                if 0C14: strcmp string1 6@ string2 "минус"
                then
                    0A8F: 9@ = 5@ - 7@
                    chat "Result: %d - %d = %d" -1 5@ 7@ 9@
                else
                    0A90: 9@ = 5@ * 7@
                    chat "Result: %d * %d = %d" -1 5@ 7@ 9@
                end
            end
        end
      
        free 6@
    end
  
    free 3@
end
0BE0: raknet hook_ret true

:_allocate_memory
// call @_allocate_memory 1 size 0@ ret_to 1@
0@++
alloc 1@ 0@
0C11: memset destination 1@ value 0 size 0@
ret 1 1@
Не могу компилировать его
 
Статус
В этой теме нельзя размещать новые ответы.