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

MogAika

Известный
Автор темы
Друг
237
443
Задаем вопросы как можно точнее, не стесняемся.

Немножко правил:
  1. Код за вас никто писать не будет. Если вам нужен работающий скрипт, изменить активацию и т.п. и т.д., то вам сюда: Помощь (http://blasthack.net/forums/110/);
  2. Без оскорблений;
  3. Используйте поиск, не повторяйте одни и те же вопросы;
  4. Спорим в личку, не засирайте тему, в ней и так уже 100+ страниц;
  5. Если у вас есть какой-то код по вашему вопросу(что-либо неправильно работает в нём), то лучше выложите его сразу и опишите проблему, чем мы будем играть в гадалки. И краш лог можете не прикладывать, он мало что даст;
Если вы прикладываете код, то прикрепляйте его так:

[code=cleo]
<ваш код>
[/code]


Частые вопросы:

Поищите здесь: opcodes - list | BlastHack — DEV_WIKI (https://www.blast.hk/wiki/opcodes:list) или https://gtagmodding.com/opcode-database/
Не нашли подходящей инфы - пишите сюда. Не смогли перевести с английского - подучите английский.
  1. Сначала выясните, что SAMPFUNCS работает(если вы используете его в коде, конечно же). Это можно проверить путем поиска SAMPFUNCS(.log) в папке SAMPFUNCS в папке игры(надеюсь Вы не запутались с папками :yes:). Если же SAMPFUNCS установлен и краш происходит именно из-за Вашего кода(хе-хе), то проверьте, что код соответствует конструкциям(на метках показывать не буду):
    CLEO:
    {$CLEO}
    
    0000: NOP
    
    repeat
        wait 400
    until 0AFA:  is_samp_available
    /* Или:
    while not SAMP.Available()
        wait 400
    end*/
    
    0BDE: pause_thread 0
    /* Или:
    while true
        wait 0
    end
    */
  2. Попробуйте узнать, где происходит неправильная работа, комментируя строчки, которые, по вашему мнению, могут вызывать краш. Это будет Вам в плюс, нежели Вы будете каждый раз писать сюда о своем методе краша собственного скрипта. Вы также можете выводить свою некоторую информацию в консоль SAMPFUNCS, чтобы узнать где происходит прерывание.
  3. Если же Вы не смогли узнать, где происходит падение, либо узнали где, но не понимаете, почему так, пишите вопрос, но приложив код. Как говорится: нет кода - иди к гадалке
С такими заявлениями, пожалуйста, обратитесь в раздел Помощь (https://www.blast.hk/forums/110/)
Похвастаться мы можем только нашей вики: tutorials - list | BlastHack — DEV_WIKI (https://www.blast.hk/wiki/tutorials:list). Там скудный набор, который мы можем дополнить по Вашим желаниям.
Также можно посмотреть ещё раздел CLEO: CLEO (https://www.blast.hk/forums/12/)

Перед тем, как задать вопросы, ознакомьтесь с предоставленной информацией и гайдами, если ответы на список вопросов выше Вам не помогли:
подчеркнутый текст является ссылкой и кликабелен
Ссылка на список гайдов
Ссылка на список различной информации

Этот подраздел будет дополняться, я надеюсь на это.
Пожалуйста, не дублируйте посты(п. 3). Если Вы нашли их [дублированные посты/одни и те же вопросы/похожие вопросы], напишите @legend2360 в ЛС и я добавлю их сюда. Вам(мне) же станет легче.

За несоблюдение этих условий таймаут в данной теме от 12 часов до 1 недели.
 
Последнее редактирование модератором:

HYPERMUV

Новичок
21
3
нужны вычесления:
создания объекта за другим игроком, при этом не зависит от другово игрока как он стоит, а зависит от твоего место нахождения т.е. как не посмотрешь на игрока, объект должен как бы прятатся за другим игроком, на которого смотришь
 

Rafael

Легенда
186
13
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я например сделал диалог.
В категории Cheats добавил пиздарванку.В открытии диалога добавил пиздарванку.Почему крашит ?
 

spiceman

GOWNIK <3
104
35
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я например сделал диалог.
В категории Cheats добавил пиздарванку.В открытии диалога добавил пиздарванку.Почему крашит ?
Теперь по русски объясни.
И вообще, дай "код".
 

Rafael

Легенда
186
13
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как использовать NOP'ы в CLEO
 

Dark_Knight

Me, me and me.
Друг
4,082
2,104
Код:
{$CLEO}
if
not 29@ = samp.Base()
then
0A93: end_custom_thread
end

repeat
wait 400
until samp.Available()

0B2E: 1@ = read_module_memory "samp.dll" offset 0x12F70 size 2 // 0x12F70 - Адресс нопа
while true
wait 0
if and
0AB0: key_pressed 0x11 //Клавиша LCTRL
0AB0: key_pressed 0x32 //Клавиша 2
then
0B2D: write_module_memory "samp.dll" offset 0x12F70 value 0xC390 size 2 // Включаем ноп. 0xC390 - адресс включения нопа.
end
0B2E: 2@ = read_module_memory "samp.dll" offset 0x12F70 size 2 
if and
0AB0: key_pressed 0x11 //Клавиша LCTRL
0AB0: key_pressed 0x32 //Клавиша 2
not 1@ == 2@
then
0B2D: write_module_memory "samp.dll" offset 0x12F70 value 1@ size 2 // Отключаем ноп
end 
end
 
  • Нравится
Реакции: Rafael

l33t

1337
Друг
32
22
Добавьте пожалуйста в этот клео кнопку вкл/выкл "1"
 

Вложения

  • antidrugsonlyday.rar
    6 KB · Просмотры: 75

spiceman

GOWNIK <3
104
35
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
{$CLEO .cs}
0000:
 
while true
    wait 0
    if 0ab0: 0x31
    then
        wait 500
        repeat
            wait 0
            set_weather 1
            00C0: set_current_time_hours_to 10 minutes_to 0
        until 0ab0: 0x31
        wait 500
    end
end
 

Вложения

  • antidrugsonlyday.rar
    6.4 KB · Просмотры: 32

gwplayer

Известный
Друг
188
35
Как узнать ID, игрока в которого я прицелися, его координаты, и как осуществить тп ему за спину?
 

spiceman

GOWNIK <3
104
35
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как узнать ID, игрока в которого я прицелися, его координаты, и как осуществить тп ему за спину?
Сразу все в кучу смешал, но думаю поймешь.

Код:
if 0AD2: 0@ = player $PLAYER_CHAR targeted_actor // Обязательно как проверка
then
    0B2B: samp 1@ = get_player_id_by_actor_handle 0@ // Получаем ID (1@) из хендла (0@)
    Actor.StorePos(0@, 2@, 3@, 4@) // Сохраняем координаты
    04C4: store_coords_to 2@ 3@ 4@ from_actor 0@ with_offset 0.5 0.0 1.2 // Тут координаты с отступом по оси X, т.е как раз ТП за спину получится
    Actor.PutAt($player_actor, 2@, 3@, 4@) // ТП на координаты
end
 
  • Нравится
Реакции: Jew1488, 7Zip и gwplayer

gwplayer

Известный
Друг
188
35
Допустим 2@ = 1.
Мне нужно чтобы в чат вывелось:
text 1
Код:
0AF9: samp say_msg "text ", 2@
Правильно или как?
 

gwplayer

Известный
Друг
188
35
И еще проблемка
Код:
21@ = SAMP.GetSAMPPlayerIDByActorHandle(0@)
0AF9: samp say_msg "/SHOWPASS %D" 21@
На деле пишит, что игрок не найден, т.е. как-то не правильно передается id в команду
Код:
// 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---------------
0000: NOP
0662: NOP "MADE BY INCLUDELOW"
thread "INCLUDELOW"
 
:INCLUDELOW_38
wait 0
if and
0AD2: 0@ = player $PLAYER_CHAR targeted_actor //IF and SET
0AB0:  key_pressed 49
jf @INCLUDELOW_146
1@ = SAMP.GetSAMPPlayerIDByActorHandle(0@)
Actor.StorePos(0@, 2@, 3@, 4@)
04C4: store_coords_to 2@ 3@ 4@ from_actor 0@ with_offset 1.0 1.0 -1.0
Actor.PutAt($PLAYER_ACTOR, 2@, 3@, 4@)
10@ = Actor.Angle(0@)
Actor.Angle($PLAYER_ACTOR) = 10@
 
:INCLUDELOW_146
wait 0
if and
0AD2: 0@ = player $PLAYER_CHAR targeted_actor //IF and SET
0AB0:  key_pressed 17
jf @INCLUDELOW_38
21@ = SAMP.GetSAMPPlayerIDByActorHandle(0@)
0AF9: samp say_msg "/SHOWPASS %D" 21@
jump @INCLUDELOW_38
 

Вложения

  • demo.rar
    6.1 KB · Просмотры: 27

Dark_Knight

Me, me and me.
Друг
4,082
2,104
Проблема в
Код:
%D
Зайти в настройки "Форматирование" и поставить регистр букв "Как есть."
 
  • Нравится
Реакции: gwplayer