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

spiceman

GOWNIK <3
104
35
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
  • Нравится
Реакции: Избранный

alfazlo

Потрачен
128
36
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
этого не хватит, там есть функция fabs это в с++ получение модуля числа, а в клео нет опкода чтоб модуль получить
Есть:
0094: abs_var_int $1 //global integer var
0095: abs_lvar_int 1@ // local integer var
0096: abs_var_float $1 //global float var
0097: abs_lvar_float 1@ //local float var
 
  • Нравится
Реакции: Избранный

alfazlo

Потрачен
128
36
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
  • Нравится
Реакции: Избранный

FYP

Известный
Администратор
1,768
5,963
Здравствуйте, ребята. Клео-скриптеры и прочие программисты, думаю здесь найдется человек который сможет мне ответить на мой вопрос и думаю многие ним задаются. Собственно что нужно чтоб получить формат .asi, насколько я знаю в .asi скриптах написаны некоторые клео, к примеру скриптер 0x688 пишет свои скрипты в формате .asi. Какой программой их штампуют ;) ?
.asi - это бинарный файл, та же DLL'ка, просто с измененным расширением. такой файл можно получить скомпилировав любым компилятором, поддерживающим создание динамических библиотек (DLL). а с CLEO оно не сопоставимо, т.к. это скриптовый язык.
 
  • Нравится
Реакции: 01EG

alfazlo

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

Че не так делаю? подскажите пожалуйста...

Код:
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
 
{$VERSION 3.1.0027}
{$CLEO .cs}
 
//-------------MAIN---------------
thread "Name_1"
03BC: 0@ = create_sphere_at 163.31 1797.28 17.64 radius 1.0
 
:Name_1
wait 0
Model.Load(18250)
038B: load_requested_models
wait 0
if
Model.Available(18250)
jf @Name_1
0@ = Object.Create(18250, 240.2, 1845.0, 3000.73)
wait 0
Model.Destroy(18250)
jump @Name_2
 
:Name_2
wait 0
jf @Name_2
 
:Name_3
wait 0
if
00EC:  actor $PLAYER_ACTOR 0 near_point 163.31 1797.28 17.64 radius 1.0
jf @Name_3
Actor.PutAt($PLAYER_ACTOR, 168.76 1835.03 17.64)
jump @Name_3

00EC: actor $PLAYER_ACTOR 0 near_point 163.31 1797.28 17.64 radius 1.0 попробуй в последнем параметре установить значение 0.0 или 0.1 . Ну или другой опкод для проверки.
 

spiceman

GOWNIK <3
104
35
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
  • Нравится
Реакции: Избранный

Dark_Knight

Me, me and me.
Друг
4,083
2,110
Помогите :(
Уже какой раз проверяю... но нихера не работает:
PHP:
const
    POS_X = 1@
    POS_Y = 2@
    POS_Z = 3@
end
 
01F5: $PLAYER_ACTOR = get_player_actor $PLAYER_CHAR
Actor.StorePos($PLAYER_ACTOR, POS_X, POS_Y, POS_Z)
if
    0AE1: vActor = random_actor_near_point POS_X POS_Y POS_Z in_radius 6000.0 find_next 0 pass_deads 1 //IF and SET
then
    repeat
        if
            803C:  not  $PLAYER_ACTOR == vActor // (int)
        then
                4@ = 777 // yeah!!!!!!!
        end
    until 8AE1: not vActor = random_actor_near_point POS_X POS_Y POS_Z in_radius 6000.0 find_next 1 pass_deads 1 //IF and SET
end
Глобальные переменыю не юзай.
 

alfazlo

Потрачен
128
36
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забыл добавить в const
vActor = 0@
Пример Могайки... :(
Уверен что опкод 8AE1: работает не корректно в samp'e. Могу предложить только вариант с sampfuncs, работает нормально и быстро. Или различные вариации кода типа:
Код:
const
    vActor = 0@
    POS_X = 1@
    POS_Y = 2@
    POS_Z = 3@   
end
Actor.StorePos($PLAYER_ACTOR, POS_X, POS_Y, POS_Z)
while 8AE1: vActor = random_actor_near_point POS_X POS_Y POS_Z in_radius 6000.0 find_next 1 pass_deads 1
wait 0
if 003C: $PLAYER_ACTOR == vActor // (int)
then continue
else
4@ = 777 // yeah!!!!!!!
jump @label
end
end
 

Избранный

Новичок
198
30
Я переписал весь код из с++ в клео и... нифига не работает. я сделал все что мог, когда на серве включаю, камера влево поворачивается и все.
Код:
 /*
        SA:MP Aimbot
        Hold down fire & aim key
    */
    if (cAimbot)
    {
        ReadProcessMemory(GetCurrentProcess(), (LPCVOID)0xB6F5F0,  &gpoint, 4, 0);
 
        if ((gpoint > 0) && (t == 0))
        {
            t = 1;
        }
        if (gpoint > 0)
        {
            pmtrx1 = gpoint + 0x14;
            ReadProcessMemory(GetCurrentProcess(), (LPCVOID)pmtrx1, &pmtrx1, 4, 0);
            xpos1 = pmtrx1 + 0x30;
            ypos1 = pmtrx1 + 0x34;
            ReadProcessMemory(GetCurrentProcess(), (LPCVOID)xpos1, &fxpos1, 4, 0);
            ReadProcessMemory(GetCurrentProcess(), (LPCVOID)ypos1, &fypos1, 4, 0);
            ReadProcessMemory(GetCurrentProcess(), (LPCVOID)0xB6F9CC, &fcxpos, 4, 0);
            ReadProcessMemory(GetCurrentProcess(), (LPCVOID)0xB6F9D0, &fcypos, 4, 0);
            ReadProcessMemory(GetCurrentProcess(), (LPCVOID)0xB6F3B8,  &ptarget, 4, 0);
            pped = ptarget + 0x79C;
            ReadProcessMemory(GetCurrentProcess(), (LPCVOID)pped,  &pped, 4, 0);
 
            if (pped > 0)
            {
                pvectorx = pped + 0x44;
                pvectory = pped + 0x48;
                ReadProcessMemory(GetCurrentProcess(), (LPCVOID)pvectorx, &fpvectorx, 4, 0);
                ReadProcessMemory(GetCurrentProcess(), (LPCVOID)pvectory, &fpvectory, 4, 0);
                pmtrx2 = pped + 0x14;
                ReadProcessMemory(GetCurrentProcess(), (LPCVOID)pmtrx2, &pmtrx2, 4, 0);
                xpos2 = pmtrx2 + 0x30;
                ypos2 = pmtrx2 + 0x34;
                ReadProcessMemory(GetCurrentProcess(), (LPCVOID)xpos2, &fxpos2, 4, 0);
                ReadProcessMemory(GetCurrentProcess(), (LPCVOID)ypos2, &fypos2, 4, 0);
                php = pped + 0x540;
                ReadProcessMemory(GetCurrentProcess(), (LPCVOID)php, &fphp, 4, 0);
                if (fphp > 0)
                {
                    fxpos2a = fxpos2;
                    fypos2a = fypos2;
                    aa = fabs(fcxpos-fxpos2);
                    ab = fabs(fcypos-fypos2);
                    ac = sqrt(aa*aa+ab*ab);
                    alpha = asin(aa/ac);
                    beta = acos(aa/ac);
                    if ((fxpos1 > fxpos2)&&(fypos1 < fypos2))
                    {
                        beta = -beta;
                    }
                    if ((fxpos1 > fxpos2)&&(fypos1 > fypos2))
                    {
                        beta = beta;
                    }
                    if ((fxpos1 < fxpos2)&&(fypos1 > fypos2))
                    {
                        beta = (alpha + (3.14/2));
                    }
                    if ((fxpos1 < fxpos2)&&(fypos1 < fypos2))
                    {
                        beta = (-alpha - (3.14/2));
                    }
                    camxpos = beta+0.0389;
                    // Rotate camera
                    WriteProcessMemory(GetCurrentProcess(), (LPVOID)0xB6F258, (LPVOID)&camxpos, 4, NULL);           
                }
            }
        }
    }
Код:
:aim_2
wait 0
if
0AB0:  key_pressed 90
else_jump @aim_2
 
:aim_21
wait 0
0A8D: 1@ = read_memory 0xB6F5F0 size 4 virtual_protect 0 //ReadProcessMemory(GetCurrentProcess(), (LPCVOID)0xB6F5F0,  &gpoint, 4, 0);
if
0019:  1@ > 0 //if (gpoint > 0)
jf @aim_21
 
:aim_23
wait 0
0A8E: 2@ = 1@ + 0x14 //pmtrx1 = gpoint + 0x14;
0A8D: 2@ = read_memory 2@ size 4 virtual_protect 0 //ReadProcessMemory(GetCurrentProcess(), (LPCVOID)pmtrx1, &pmtrx1, 4, 0);
0A8E: 3@ = 2@ + 0x30 //xpos1 = pmtrx1 + 0x30;
0A8E: 4@ = 2@ + 0x34 //ypos1 = pmtrx1 + 0x34;
0A8D: 5@ = read_memory 3@ size 4 virtual_protect 0 //ReadProcessMemory(GetCurrentProcess(), (LPCVOID)xpos1 (3@), &fxpos1 (5@), 4, 0);
0A8D: 6@ = read_memory 4@ size 4 virtual_protect 0 //ReadProcessMemory(GetCurrentProcess(), (LPCVOID)ypos1, &fypos1, 4, 0);
0A8D: 7@ = read_memory 0xB6F9CC size 4 virtual_protect 0 //ReadProcessMemory(GetCurrentProcess(), (LPCVOID)0xB6F9CC, &fcxpos, 4, 0);
0A8D: 8@ = read_memory 0xB6F9D0 size 4 virtual_protect 0 //ReadProcessMemory(GetCurrentProcess(), (LPCVOID)0xB6F9D0, &fcypos, 4, 0);
0A8D: 9@ = read_memory 0xB6F3B8 size 4 virtual_protect 0 //ReadProcessMemory(GetCurrentProcess(), (LPCVOID)0xB6F3B8,  &ptarget, 4, 0);
0A8E: 10@ = 9@ + 0x79C // pped = ptarget + 0x79C;
0A8D: 10@ = read_memory 10@ size 4 virtual_protect 0 //ReadProcessMemory(GetCurrentProcess(), (LPCVOID)pped,  &pped, 4, 0);
if
10@ > 0 //if (pped > 0)
jf @aim_23
 
:aim_25
wait 0
0A8E: 11@ = 10@ + 0x44 //pvectorx = pped + 0x44;
0A8E: 12@ = 10@ + 0x48 //pvectory = pped + 0x48;
0A8D: 13@ = read_memory 11@ size 4 virtual_protect 0 //ReadProcessMemory(GetCurrentProcess(), (LPCVOID)pvectorx, &fpvectorx, 4, 0);
0A8D: 14@ = read_memory 12@ size 4 virtual_protect 0 //ReadProcessMemory(GetCurrentProcess(), (LPCVOID)pvectory, &fpvectory, 4, 0);
0A8E: 15@ = 10@ + 0x14  //pmtrx2 = pped + 0x14;
0A8D: 15@ = read_memory 15@ size 4 virtual_protect 0 //ReadProcessMemory(GetCurrentProcess(), (LPCVOID)pmtrx2, &pmtrx2, 4, 0);
0A8E: 16@ = 15@ + 0x30 //xpos2 = pmtrx2 + 0x30;
0A8E: 17@ = 15@ + 0x34 //ypos2 = pmtrx2 + 0x34;
0A8D: 18@ = read_memory 16@ size 4 virtual_protect 0 //ReadProcessMemory(GetCurrentProcess(), (LPCVOID)xpos2, &fxpos2, 4, 0);
0A8D: 19@ = read_memory 17@ size 4 virtual_protect 0 //ReadProcessMemory(GetCurrentProcess(), (LPCVOID)ypos2, &fypos2, 4, 0);
0A8E: 20@ = 10@ + 0x540  // php = pped + 0x540;
0A8D: 21@ = read_memory 20@ size 4 virtual_protect 0 //ReadProcessMemory(GetCurrentProcess(), (LPCVOID)php, &fphp, 4, 0);
if
21@ > 0 //if (fphp > 0)
jf @aim_25
 
:aim_27
wait 0
0087: 22@ = 18@ //fxpos2a = fxpos2;
0087: 23@ = 19@ //fypos2a = fypos2;
0063: 7@ -= 18@
0C00: math 24@ = abs 7@ // aa = fabs(fcxpos-fxpos2);
0063: 8@ -= 19@
0C00: math 25@ = abs 8@ // ab = fabs(fcypos-fypos2);
006B: 24@ *= 24@
006B: 25@ *= 25@
005B: 24@ += 25@
0087: 26@ = 24@
01FB: 26@ = square_root 26@  // ac = sqrt(aa*aa+ab*ab);
0073: 24@ /= 26@
0C04: math 27@ = arcsine 24@ // alpha = asin(aa/ac);
0073: 24@ /= 26@
0C06: math 28@ = arccosine 24@ // beta = acos(aa/ac);
 
:aim_34
wait 0
if and
0025: 5@ > 18@
0025: 19@ > 6@ // if ((fxpos1 > fxpos2)&&(fypos1 < fypos2))
jf @aim_35
28@ *= -1 // beta = -beta;
jump @aim_40
 
:aim_35
wait 0
if and
0025: 5@ > 18@
0025: 6@ > 19@ // if ((fxpos1 > fxpos2)&&(fypos1 > fypos2))
jf @aim_36
28@ = 28@ // beta = beta;
jump @aim_40
 
:aim_36
wait 0
if and
0025: 18@ > 5@
0025: 6@ > 19@ // if ((fxpos1 < fxpos2)&&(fypos1 > fypos2))
jf @aim_37
27@ += 1.57
0087: 28@ = 27@ // beta = (alpha + (3.14/2));
jump @aim_40
 
:aim_37
wait 0
if and
0025: 18@ > 5@
0025: 19@ > 6@ // if ((fxpos1 < fxpos2)&&(fypos1 < fypos2))
jf @aim_34
27@ *= -1
27@ -= 1.57
0087: 28@ = 27@  // beta = (-alpha - (3.14/2));
jump @aim_40
 
:aim_40 // Rotate camera
wait 0
0A8E: 0@ = 28@ + 0.0389 // camxpos = beta+0.0389;
0A8C: write_memory 0xB6F258 size 4 value 0@ virtual_protect 0// WriteProcessMemory(GetCurrentProcess(), (LPVOID)0xB6F258, (LPVOID)&camxpos, 4, NULL);
jump @aim_21
Даниил короч написал свой аим, он красавчик, но у меня тоже был шанс
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,469
Уверен что опкод 8AE1: работает не корректно в samp'e. Могу предложить только вариант с sampfuncs, работает нормально и быстро. Или различные вариации кода типа:
Код:
const
    vActor = 0@
    POS_X = 1@
    POS_Y = 2@
    POS_Z = 3@ 
end
Actor.StorePos($PLAYER_ACTOR, POS_X, POS_Y, POS_Z)
while 8AE1: vActor = random_actor_near_point POS_X POS_Y POS_Z in_radius 6000.0 find_next 1 pass_deads 1
wait 0
if 003C: $PLAYER_ACTOR == vActor // (int)
then continue
else
4@ = 777 // yeah!!!!!!!
jump @label
end
end
АААА.... У меня нет такого опкода: 8AE1
Только 0AE1 =c