CLEO Калькулятор

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

~Castro

Новичок
Автор темы
1
0
Всем привет.
Нашёл простое CLEO.
Крч, вот видео.
Скачать CLEO калькулятор - http://rghost.ru/8mDjfLmgd
Автора не знаю

Требования:
-Cleo 4.1
-Samp Functions 5.1
-SA-MP 0.3z R1

Математические операции:
+ дополнение
- вычитание
х и * умножение
/ деление

На стиллер не проверял, т.к нашёл на другом сайте.
 
Последнее редактирование:

Happy Noob

Новичок
4
2
нахуя в сампе калькулятор ?:unknw:
Тот же вопрос :D

Чист
Код:
{$CLEO}
{$INCLUDE SF}
0000: NOP
repeat
    wait 50
until 0AFA:  is_samp_available

0B34: samp register_client_command "cc" to_label @calculate
0AC8: 31@ = allocate_memory_size 64
0AC8: 30@ = allocate_memory_size 64
0AC8: 29@ = allocate_memory_size 64
0AC8: 28@ = allocate_memory_size 64
0AC8: 25@ = allocate_memory_size 124 //formula
0AC8: 26@ = allocate_memory_size 64 //result
27@ = 0 //27@ = switcher

0B5A: get_screen_resolution 22@ 23@
22@ /= 10
22@ *= 4
23@ /= 10
23@ *= 1

0B80: dialog 24@ = create "Calculator"
0B84: dialog 24@ set_pos_XY 22@ 23@ size 300 120
0B91: dialog 24@ add_static id 1 text "Formula" pos_XY 25 20 size 300 20
0B91: dialog 24@ add_static id 2 text "=" pos_XY 105 40 size 300 20
0B91: dialog 24@ add_static id 3 text "Result" pos_XY 25 60 size 300 20
0B86: dialog 24@ set_visible false


while true
wait 0
    if 27@ == 1
    then
    27@ = 0
    33@ = 0
    0B94: dialog 24@ set_control 1 text 25@
    0B94: dialog 24@ set_control 3 text 26@
    0B86: dialog 24@ set_visible true
    end
  
    if 33@ > 15000
    then
    0B86: dialog 24@ set_visible false
    end
end

:calculate
SAMP.IsCommandTyped(0@)
//
//4 numbers
//           
if
0AD4: $nefolosit = 0@ format "%d%c%d%c%d%c%d" 1@ 31@ 2@ 30@ 3@ 29@ 4@
then
0AD3: 31@ = format "%c" 31@
0AD3: 30@ = format "%c" 30@
0AD3: 29@ = format "%c" 29@

0085: 5@ = 1@ // result
0085: 6@ = 2@ // num2
0085: 7@ = 3@ // num3
0093: 1@ = integer 1@ to_float
0093: 2@ = integer 2@ to_float
0093: 3@ = integer 3@ to_float
0093: 4@ = integer 4@ to_float
0093: 5@ = integer 5@ to_float
0093: 6@ = integer 6@ to_float
0093: 7@ = integer 7@ to_float
    if 0AB1: @p_3 3 31@ 30@ 29@
    then
    0AB1: @do_maths 3 num 5@ num2 2@ operator 31@ _returnedNum 5@
    0AB1: @do_maths 3 num 5@ num2 3@ operator 30@ _returnedNum 5@
    0AB1: @do_maths 3 num 5@ num2 4@ operator 29@ _returnedNum 5@
    else
        if 0AB1: @n_2 2 30@ 29@
        then
        0AB1: @do_maths 3 num 5@ num2 2@ operator 31@ _returnedNum 5@
        0AB1: @do_maths 3 num 5@ num2 3@ operator 30@ _returnedNum 5@
        0AB1: @do_maths 3 num 5@ num2 4@ operator 29@ _returnedNum 5@
        else              
            if 0AB1: @p_n 2 30@ 29@
            then
            0AB1: @do_maths 3 num 2@ num2 3@ operator 30@ _returnedNum 2@
            0AB1: @do_maths 3 num 5@ num2 2@ operator 31@ _returnedNum 5@
            0AB1: @do_maths 3 num 5@ num2 4@ operator 29@ _returnedNum 5@
            else
                if 0AB1: @p_n 2 29@ 30@
                then
                0AB1: @do_maths 3 num 3@ num2 4@ operator 29@ _returnedNum 3@
                0AB1: @do_maths 3 num 5@ num2 2@ operator 31@ _returnedNum 5@
                0AB1: @do_maths 3 num 5@ num2 3@ operator 30@ _returnedNum 5@
                else
                    if 0AB1: @p_2 2 30@ 29@
                    then
                    0AB1: @do_maths 3 num 2@ num2 3@ operator 30@ _returnedNum 2@
                    0AB1: @do_maths 3 num 2@ num2 4@ operator 29@ _returnedNum 2@
                    0AB1: @do_maths 3 num 5@ num2 2@ operator 31@ _returnedNum 5@
                    else
                    0AF8: samp add_message_to_chat "Error: Unknown order of operations (the script is incorrect)" color -1           
                    end
                end
            end
        end
    end

0AD3: 25@ = format "%.0f %s %.0f %s %.0f %s %.0f" 1@ 31@ 6@ 30@ 7@ 29@ 4@
    if 0AB1: @decimal_check_result 1 5@
    then  
    0AD3: 26@ = format "%0.4f" 5@
    else
    0AD3: 26@ = format "%.0f" 5@
    end 
    27@ = 1  
else
    //
    //3 numbers
    //
    if
    0AD4: $nefolosit = 0@ format "%d%c%d%c%d" 1@ 31@ 2@ 30@ 3@
    then
    0AD3: 31@ = format "%c" 31@
    0AD3: 30@ = format "%c" 30@
    0085: 4@ = 1@ // result
    0085: 5@ = 2@ // num2
    0093: 1@ = integer 1@ to_float
    0093: 2@ = integer 2@ to_float
    0093: 3@ = integer 3@ to_float
    0093: 4@ = integer 4@ to_float
    0093: 5@ = integer 5@ to_float
  
        if 0AB1: @p_2 2 31@ 30@
        then
        0AB1: @do_maths 3 num 4@ num2 2@ operator 31@ _returnedNum 4@
        0AB1: @do_maths 3 num 4@ num2 3@ operator 30@ _returnedNum 4@
        else     
            if
            0AB1: @no_priority 1 30@ //no
            then
            0AB1: @do_maths 3 num 4@ num2 2@ operator 31@ _returnedNum 4@
            0AB1: @do_maths 3 num 4@ num2 3@ operator 30@ _returnedNum 4@                    
            else
            0AB1: @do_maths 3 num 2@ num2 3@ operator 30@ _returnedNum 2@         
            0AB1: @do_maths 3 num 4@ num2 2@ operator 31@ _returnedNum 4@
            end       
        end
      
    0AD3: 25@ = format "%.0f %s %.0f %s %.0f" 1@ 31@ 5@ 30@ 3@
        if 0AB1: @decimal_check_result 1 4@
        then      
        0AD3: 26@ = format "%0.4f" 4@
        else
        0AD3: 26@ = format "%.0f" 4@
        end
        27@ = 1
    else
    //
    //2 numbers
    //
        if
        0AD4: $nefolosit = 0@ format "%d%c%d" 1@ 31@ 2@
        then
        0AD3: 31@ = format "%c" 31@
        0085: 4@ = 1@ // result
        0093: 1@ = integer 1@ to_float
        0093: 2@ = integer 2@ to_float
        0093: 4@ = integer 4@ to_float
        0AB1: @do_maths 3 num 4@ num2 2@ operator 31@ _returnedNum 4@
       
        0AD3: 25@ = format "%.0f %s %.0f" 1@ 31@ 2@
            if 0AB1: @decimal_check_result 1 4@  
            then          
            0AD3: 26@ = format "%0.4f" 4@
            else
            0AD3: 26@ = format "%.0f" 4@
            end
            27@ = 1
        else
        printf "Usage: /cc 2+2+2+2 [ + - / x * ]" 5000
        end  
    end
end
SAMP.CmdRet

//0AB1: @do_maths 3 num num2 operator _returnedNum
:do_maths
if 0C14: strcmp string1 2@ string2 "+"
then
005B: 0@ += 1@  // (float)
else
    if 0C14: strcmp string1 2@ string2 "-"
    then
    0063: 0@ -= 1@  // (float)
    else
        if or
        0C14: strcmp string1 2@ string2 "x"
        0C14: strcmp string1 2@ string2 "*"
        then                
        006B: 0@ *= 1@  // (float)
        else
            if 0C14: strcmp string1 2@ string2 "/"
            then
            0073: 0@ /= 1@ // (float)
            end
        end
    end                   
end
0AB2: ret 1 0@

//if 0AB1: @ 1
:p_3
31@ = 0
if or
0C14: strcmp string1 0@ string2 "x"
0C14: strcmp string1 0@ string2 "*"
0C14: strcmp string1 0@ string2 "/"
then
31@++
end

if or
0C14: strcmp string1 1@ string2 "x"
0C14: strcmp string1 1@ string2 "*"
0C14: strcmp string1 1@ string2 "/"
then
31@++
end

if or
0C14: strcmp string1 2@ string2 "x"
0C14: strcmp string1 2@ string2 "*"
0C14: strcmp string1 2@ string2 "/"
then
31@++
end

if 31@ == 3
then
0485:  return_true
else
059A:  return_false
end
0AB2: ret 0

:p_2
31@ = 0
if or
0C14: strcmp string1 0@ string2 "x"
0C14: strcmp string1 0@ string2 "*"
0C14: strcmp string1 0@ string2 "/"
then
31@++
end

if or
0C14: strcmp string1 1@ string2 "x"
0C14: strcmp string1 1@ string2 "*"
0C14: strcmp string1 1@ string2 "/"
then
31@++
end

if 31@ == 2
then
0485:  return_true
else
059A:  return_false
end
0AB2: ret 0


:n_2
31@ = 0
if or
0C14: strcmp string1 0@ string2 "x"
0C14: strcmp string1 0@ string2 "*"
0C14: strcmp string1 0@ string2 "/"
then
31@++
end

if or
0C14: strcmp string1 1@ string2 "x"
0C14: strcmp string1 1@ string2 "*"
0C14: strcmp string1 1@ string2 "/"
then
31@++
end

if 31@ > 0
then
059A:  return_false
else
0485:  return_true
end
0AB2: ret 0


:p_n
31@ = 0
if or
0C14: strcmp string1 0@ string2 "x"
0C14: strcmp string1 0@ string2 "*"
0C14: strcmp string1 0@ string2 "/"
then
31@++
end

if or
0C14: strcmp string1 1@ string2 "x"
0C14: strcmp string1 1@ string2 "*"
0C14: strcmp string1 1@ string2 "/"
then
wait 0
else
31@++
end

if 31@ == 2
then
0485:  return_true
else
059A:  return_false
end
0AB2: ret 0


//if 0AB1: @is_priority 1
:priority
if or
0C14: strcmp string1 0@ string2 "x"
0C14: strcmp string1 0@ string2 "*"
0C14: strcmp string1 0@ string2 "/"
then
0485:  return_true
else
059A:  return_false
end
0AB2: ret 0

//if 0AB1: @not_priority 1
:no_priority
if or
0C14: strcmp string1 0@ string2 "x"
0C14: strcmp string1 0@ string2 "*"
0C14: strcmp string1 0@ string2 "/"
then
059A:  return_false
else
0485:  return_true
end
0AB2: ret 0

//if 0AB1: @decimal_check_result 1
:decimal_check_result
0092: 1@ = float 0@ to_integer
0093: 1@ = integer 1@ to_float
if or
0025:   1@ > 0@  // (float)
0025:   0@ > 1@  // (float)
then
0485:  return_true
else
059A:  return_false
end
0AB2: ret 0
 

dRaGoN_gReY

Участник
75
8
Есть сервера с викториной ( типо арбуза ) кто первый посчитает число, тому деньги и т.д.
P.s. Вот для чего калькулятор
 

vitka.k

Потрачен
33
2
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Есть сервера с викториной ( типо арбуза ) кто первый посчитает число, тому деньги и т.д.
P.s. Вот для чего калькулятор
Мне лично проще на компе калькулятор открыть :D
P.S стиллера нету,код чист
 

vitka.k

Потрачен
33
2
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Может быть,но засорять игру клео скриптами не собираюсь,там и так хлама дофига :D
 
Статус
В этой теме нельзя размещать новые ответы.