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

MISTER_GONWIK

Всефорумный гонщик
Всефорумный модератор
1,261
1,743
CLEO:
{$CLEO}
0000:

var
0@ : int = 0
end

repeat
wait 500
until 0afa:

0B34: samp register_client_command "aim" to_label @act

while true
wait 0
  if 0@ == 1
  then
  wait 0
  // func. . .
  end
end

:act
0B35: samp 1@ = get_last_command_params
2@s = 'on'
3@s = 'off'
  if 0C14: strcmp string1 1@ string2 2@s
  then
  0@ = 1
  chatmsg "{00FF00}ON" -1
  end
  if 0C14: strcmp string1 1@ string2 3@s
  then
  chatmsg "{FF00FF}OFF" -1
  0@ = 0
  end
0b43:
ты чё, наркоман? зачем тебе там вообще строковые переменные, если можно напрямую в опкод записать:
CLEO:
if 0C14: strcmp string1 1@ string2 "on"
ну и у тебя два
CLEO:
wait 0
во втором нет нужды, достаточно одного
 

RedBoxWhite

Известный
337
27
Скачал скрипт на авто ввод пароля, он вводит его, но не нажимает Enter, как это сделать?)
CLEO:
{$CLEO}
0000:

repeat
wait 400
until SAMP.Available()

0AF4: 5@v = read_string_from_ini_file "cleo\flog.ini" section "pass" key "pass"
:1
wait 0
if
0B4C:  samp is_dialog_active 1
jf @1
0B4B: samp set_current_dialog_editbox_text 5@v
0AA5: call 1@ num_params 4 pop 0 0 0 0 0x0D
0AA5: call 1@ num_params 4 pop 0 0 0x02 0x0D
wait 1000
if
0B4C:  samp is_dialog_active 1
jf @end
jump @wrongpass

:wrongpass
wait 0
0ACD: show_text_highpriority "WRONG PASSWORD IN .INI FILE" time 900
jump @end


:end
wait 0
jump @end
 

01EG

Известный
Проверенный
631
346
Скачал скрипт на авто ввод пароля, он вводит его, но не нажимает Enter, как это сделать?)
CLEO:
{$CLEO}
0000:

repeat
wait 400
until SAMP.Available()

0AF4: 5@v = read_string_from_ini_file "cleo\flog.ini" section "pass" key "pass"
:1
wait 0
if
0B4C:  samp is_dialog_active 1
jf @1
0B4B: samp set_current_dialog_editbox_text 5@v
0AA5: call 1@ num_params 4 pop 0 0 0 0 0x0D
0AA5: call 1@ num_params 4 pop 0 0 0x02 0x0D
wait 1000
if
0B4C:  samp is_dialog_active 1
jf @end
jump @wrongpass

:wrongpass
wait 0
0ACD: show_text_highpriority "WRONG PASSWORD IN .INI FILE" time 900
jump @end


:end
wait 0
jump @end
Пиздец, как же сложно полазить по порталу, поискать скрипты с диалогами, посмотреть исходные коды.
https://www.blast.hk/wiki/opcodes:0b47?s[]=0b47
 

Vasiliy77

Известный
22
1
[HIDE=1]
CLEO:
0AA2: 30@ = load_library "samp.dll" // IF and SET 
0A8E: 1@ = 30@ + 457971 // int 
0A8C: write_memory 1@ size 4 value 24216591 virtual_protect 1 
0A8E: 2@ = 1@ + 4 // int 
0A8C: write_memory 2@ size 2 value 0 virtual_protect 1 
0A8E: 3@ = 30@ + 458004 // int 
0A8C: write_memory 3@ size 4 value 22053903 virtual_protect 1 
0A8E: 4@ = 3@ + 4 // int 
0A8C: write_memory 4@ size 2 value 0 virtual_protect 1 
0A8E: 5@ = 30@ + 458280 // int 
0A8C: write_memory 5@ size 2 value 16500 virtual_protect 1 
0A8E: 6@ = 30@ + 462648 // int 
0A8C: write_memory 6@ size 2 value 24948 virtual_protect 1 
0A8E: 7@ = 30@ + 462372 // int 
0A8C: write_memory 7@ size 4 value 24218127 virtual_protect 1 
0A8E: 8@ = 7@ + 4 // int 
0A8C: write_memory 8@ size 2 value 0 virtual_protect 1
[/HIDE]
Парни, как из этого кода вытащить адреса памяти, для Cheat Engine? У меня адрес samp.dll - 0x4E80000, к этому я плюсую 457971, и в программе совсем иное число получается. Если ставлю в готовый С++ проект, который считывает значение заданного адреса - значение этого адреса при каждом запуске разное, хотя должно быть всегда 24216591.
 

SR_team

like pancake
BH Team
4,729
6,390
** Скрытый контент не может быть процитирован. **
Парни, как из этого кода вытащить адреса памяти, для Cheat Engine? У меня адрес samp.dll - 0x4E80000, к этому я плюсую 457971, и в программе совсем иное число получается. Если ставлю в готовый С++ проект, который считывает значение заданного адреса - значение этого адреса при каждом запуске разное, хотя должно быть всегда 24216591.
дебил, ты складываешь HEX с DEC
 

Perojek)0

Известный
205
3
Почему при проверке через 0B23 моего ID выдаёт false
Это баг или так и должно быть?
 

Perojek)0

Известный
205
3
Как можно получить допустим Id игроков в определённом радиусе, но не во всё стриме? Как это лучше сделать?
 

hnnssy

Известный
Друг
2,684
2,754
Как можно получить допустим Id игроков в определённом радиусе, но не во всё стриме? Как это лучше сделать?
циклом for прогнаться по всем игрокам и получить их позицию, дальше расстояние между ними и локальным игроком
 
  • Нравится
Реакции: Perojek)0

01EG

Известный
Проверенный
631
346
1) Я мб не понимаю еще, но часто стал встречать, что с переменной делают какие-то невъебенные изменения. То умножают, то прибавляют, то опять умножают. Для чего ?
Вот пример
CLEO:
1@ = 25
1@ += 36
1@ *= 112
1@ += 13150904
1@ += 56
0A8C: write_memory 1@ size 4 value 100.0 virtual_protect 0
Получается: 13154992 (можете пересчитать). Почему бы сразу не посчитать в калькуляторе и не использовать число, нахуя выебываться ? Ок, я понимаю, что проще, чтоб SB сам посчитал, но откуда тогда берут значения на которые нужно умножать и прибавлять. Если еще адресс памяти я понимаю, но это откуда.

2) Чаще всего в клео используют 0x000000(такого типа адресса), как я понимаю это смещение и это значение hex?
А иногда простое целое число, как адресс.

Знающие обьясните пожалуйста по-этому поводу.
 

hnnssy

Известный
Друг
2,684
2,754
1) Я мб не понимаю еще, но часто стал встречать, что с переменной делают какие-то невъебенные изменения. То умножают, то прибавляют, то опять умножают. Для чего ?
Вот пример
CLEO:
1@ = 25
1@ += 36
1@ *= 112
1@ += 13150904
1@ += 56
0A8C: write_memory 1@ size 4 value 100.0 virtual_protect 0
Получается: 13154992 (можете пересчитать). Почему бы сразу не посчитать в калькуляторе и не использовать число, нахуя выебываться ? Ок, я понимаю, что проще, чтоб SB сам посчитал, но откуда тогда берут значения на которые нужно умножать и прибавлять. Если еще адресс памяти я понимаю, но это откуда.

2) Чаще всего в клео используют 0x000000(такого типа адресса), как я понимаю это смещение и это значение hex?
А иногда простое целое число, как адресс.

Знающие обьясните пожалуйста по-этому поводу.
1. если именно такое говно, как в твоём примере, то это чтобы такие нубы задавали подобные вопросы
2. разницы нет, допустим 0x58A799 при переводе в DEC это 5810073, декомпилятор просто в дец переводит и ты видишь такое говно
 

01EG

Известный
Проверенный
631
346
1. если именно такое говно, как в твоём примере, то это чтобы такие нубы задавали подобные вопросы
Бля, сейчас пересчитал, получилось другое число, которое я написал в своем посте. Ну, суть не в этом.
Пришел к выводу, что если сначала посчитать конечно число, а потом обратно, то получиться начальное число. (методом замены операции: умножение - делением на то же число, и так же прибавление - отнимание).
Короче, разницы нету ? Но, ты все таки некорректно ответил на мой вопрос. Можешь дать полноценный ответ на первую часть вопроса.
 

SR_team

like pancake
BH Team
4,729
6,390
Бля, сейчас пересчитал, получилось другое число, которое я написал в своем посте. Ну, суть не в этом.
Пришел к выводу, что если сначала посчитать конечно число, а потом обратно, то получиться начальное число. (методом замены операции: умножение - делением на то же число, и так же прибавление - отнимание).
Короче, разницы нету ? Но, ты все таки некорректно ответил на мой вопрос. Можешь дать полноценный ответ на первую часть вопроса.
Куда блядь подробнее? Хочешь, что бы тебе пряямо сказали, что хуевый из тебя математик?