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

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,695
1,448
такой вопрос, вот есть к примеру несколько переменных и в них записано либо 1 либо 0. как найти кол-во переменных с единицой? опкод какой мб.

Пфф, позже скину пример.
Если забуду - в лс напиши.
 

LFK_Morgan

Новичок
21
1
Это дабстеп. Не слушай его.
QUBaq.png

Ты то шаришь я вижу, скажи в чём проблема если Дабстеп не торт ;D
 

alfazlo

Потрачен
128
36
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
такой вопрос, вот есть к примеру несколько переменных и в них записано либо 1 либо 0. как найти кол-во переменных с единицой? опкод какой мб.
тут нужно уточнить какие переменные еще.

можно разными методами, приведу один что первое в голову пришло
//для локальных переменных если значения вразнобой 0@ 3@ 5@ 1@

PHP:
10@ = 0 //Счетчик
11@ = 0 //Счетчик
:buf
hex
00 03 05 01 //Записываем в hex переменные которые нужно проверить
end
// в цикле читаем значения из hex по одному байту
0AC6: 0@ = label @check offset
0@ += 7
0AC6: 1@ = label @buf offset
for 30@ = 0 to 3 //Читаем 4 раза
0A8D: 2@ = read_memory  1@  size 1 virtual_protect 0
1@ += 1
0A8C: write_memory 0@ size 1 value 2@ virtual_protect 0 //Тут записываем значение переменной в последующую проверку
:check
if 0@ == 1
then 10@++
else 11@++
end
end
Не проверял, даже не компилировал
 
  • Нравится
Реакции: Избранный

alfazlo

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

#NoName

Новичок
3
0
Код:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}
 
//-------------MAIN---------------
thread 'ACTDEAD'
 
:ACTDEAD_11
wait 0
if
  Player.Defined($PLAYER_CHAR)
if and
00E1:  player 0 pressed_key 11
  not Actor.Driving($PLAYER_ACTOR)
  not Actor.Dead($PLAYER_ACTOR)
else_jump @ACTDEAD_11
Player.CanMove($PLAYER_CHAR) = False
0812: AS_actor $PLAYER_ACTOR perform_animation "KO_SHOT_STOM" IFP "PED" framedelta 50.0 loopA 0 lockX 0 lockY 0 lockF 1 time 900 // versionB
03BF: set_player $PLAYER_CHAR ignored_by_everyone 1
jump @ACTDEAD_11
Вот скрипт КЛЕО-анимации. При нажатии на кнопку Y (кнопку положительного ответа в игре), срабатывает анимация смерти (ACTDEAD). После чего, при нажатии на кнопку N (отрицательного ответа), можно ее выключить. Вопрос: можно поменять кнопку ЗАПУСКА (Y) на какую-либо другую. Например, на кнопку U или I. Вообщем, чтобы она оставалась на этой кнопке. А кнопку N менять не надо.
P.S.: я полный чайник в КЛЕО-скриптинге, никогда ничего не писал сам, поэтому и обратился сюда. Прошу, не судите строго :)
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,695
1,448
такой вопрос, вот есть к примеру несколько переменных и в них записано либо 1 либо 0. как найти кол-во переменных с единицой? опкод какой мб.


Код:
{$CLEO}
 
0000:
 
1@ = 0
2@ = 1
3@ = 767
4@ = 1
5@ = -1
6@ = 12378
7@ = 1
8@ = 0
9@ = -1001
 
while true
    wait 1000
    for 0@ = 1 to 9 step 1 // 1-9
        0ab1: call @getLocalVarOffset 1 var 0@ to 10@
        0A8D: 10@ = read_memory 10@ size 4 virtual_protect 0
 
        if 10@ == 1
        then
            0af8: chat "var %d@ = 1" -1 0@         
        end
    end
end
 
:getLocalVarOffset
0A9F: 1@ = current_thread_pointer
1@ += 60
0@ *= 4
 
005a: 1@ += 0@
0ab2: ret 1 1@
Проходится по переменным с 1 по 9 и выводит то число, которое равно 1.
 
  • Нравится
Реакции: Избранный

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,695
1,448
Вот скрипт КЛЕО-анимации. При нажатии на кнопку Y (кнопку положительного ответа в игре), срабатывает анимация смерти (ACTDEAD). После чего, при нажатии на кнопку N (отрицательного ответа), можно ее выключить. Вопрос: можно поменять кнопку ЗАПУСКА (Y) на какую-либо другую. Например, на кнопку U или I. Вообщем, чтобы она оставалась на этой кнопке. А кнопку N менять не надо.
P.S.: я полный чайник в КЛЕО-скриптинге, никогда ничего не писал сам, поэтому и обратился сюда. Прошу, не судите строго :)

Используй опкод 0ab0
Номера клавиш можешь найти здесь: http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx
P.S. U key = 0x55
Код:
{$CLEO}
 
thread 'ACTDEAD'
 
:ACTDEAD_11
wait 0
if and
Player.Defined($PLAYER_CHAR)
0ab0:  key_pressed 0x55 // U
  not Actor.Driving($PLAYER_ACTOR)
  not Actor.Dead($PLAYER_ACTOR)
else_jump @ACTDEAD_11
Player.CanMove($PLAYER_CHAR) = False
0812: AS_actor $PLAYER_ACTOR perform_animation "KO_SHOT_STOM" IFP "PED" framedelta 50.0 loopA 0 lockX 0 lockY 0 lockF 1 time 900 // versionB
03BF: set_player $PLAYER_CHAR ignored_by_everyone 1
jump @ACTDEAD_11
 

#NoName

Новичок
3
0
Используй опкод 0ab0
Номера клавиш можешь найти здесь: http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx
P.S. U key = 0x55
Код:
{$CLEO}
 
thread 'ACTDEAD'
 
:ACTDEAD_11
wait 0
if and
Player.Defined($PLAYER_CHAR)
0ab0:  key_pressed 0x55 // U
  not Actor.Driving($PLAYER_ACTOR)
  not Actor.Dead($PLAYER_ACTOR)
else_jump @ACTDEAD_11
Player.CanMove($PLAYER_CHAR) = False
0812: AS_actor $PLAYER_ACTOR perform_animation "KO_SHOT_STOM" IFP "PED" framedelta 50.0 loopA 0 lockX 0 lockY 0 lockF 1 time 900 // versionB
03BF: set_player $PLAYER_CHAR ignored_by_everyone 1
jump @ACTDEAD_11


Через Sanny Builder 3 я поменял старый код на предложенный тобой, но теперь при запуске ГТА крашит. Что я не так делаю опять?)
 

LFK_Morgan

Новичок
21
1
А если забить на сравнение координат и вставить туда поиск слова из чата? Объясните как это сделать?