Перейти к содержанию
БабаЯГА

Как искать по условию?

Рекомендуемые сообщения

Всем привет! Будьте любезны, подскажите. Есть два адреса в памяти, первый - изменяется, второй всегда +4 байта и не изменяется. Вопрос: как создать условие для поиска в CE? Ну, например, если первое значение 12, а второе всегда 999, т.е. словами, условие выглядит так:  если адрес AAAAA0 == 12  и адрес AAAAA4 == 999 то это наше значение. Будьте любезны, подскажите, как реализовать такой поиск в CE?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не проще по указателям найти? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
28 минут назад, БабаЯГА сказал:

если адрес AAAAA0 == 12  и адрес AAAAA4 == 999 то это наше значение.

то есть это каждый раз разные адреса, верно? Двух чисел мало для подобного поиска т.к. совпадений может быть куда больше одного. Лучше посмотреть какой код работает с этими адресами или восстановить цепочку указателей от статической переменной🤔

Если интересует сам процесс подобного поиска, то можно в скрипте LUA при помощи поиска сигнатуры(твои числа) найти список адресов с нужными значениями и записать их в массив, после чего раз в некоторое время проверять эти значения и если что-то меняется, то удалять адрес из массива до тех пор, пока он там не останется один. Звучит как-то долго и не очень надёжно😋

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Адреса каждый раз разные, да. Но они всегда рядом. Первый адрес значение меняется, а второй адрес - значение постоянное, и между первым и вторым адресом всегда +4 байта. Простым поиском такая пара значений - всегда одна. Т.е. если искать сразу два адреса, то будет находить только одно значение, вот только как искать сразу два адреса - вот об этом я и спрашиваю. На словах я понимаю как искать, но не понимаю как реализовать в CE.

Вот ещё для примера: допустим я знаю первое значение (которое меняется) и знаю второе (которое не меняется), но при поиске и первое и второе значение - не меняется, т.к. всё стоит на паузе. Предполагаю что алгоритм такой:

 

Если значение адреса 1==12 и значение адреса 2==999 (он +4 байта сразу за первым адресом всегда) то это то что нужно.

Т.е. программно как-то так, но как правильно в CE?

 

value_1 = 12

value_2 = 999

adres_1 = 0x000000

adres_2 = 0x000000 + 4

if ( adres_1 == value_1 ) and ( adres_2 == value_2 ) then

  -- то тут заносим в таблицу например или что-то ещё

endif

 

 

Можно это как-то скриптом организовать или ещё как? Именно поиск сразу двух адресов?

Т.е. ещё более подробно, идёт процесс поиска в CE, вот он нашёл 12 и тут же сразу проверяет адрес который идёт за адресом в котором 12 но +4 байта.

 

По указателям пробовал - ничего не вышло, выхожу на адрес который указывает сам на себя. Дальше знаний не хватило. По сему мне кажется был бы замечательный вариант искать сразу два адреса в связка, но как - не знаю. Вот по этому и обратился за помощью.

Изменено пользователем БабаЯГА

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Тема не в том разделе.

2. Если мне не изменяет память, в СЕ есть групповой поиск - это вроде как раз то, что тебе нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 часа назад, Xipho сказал:

1. Тема не в том разделе.

2. Если мне не изменяет память, в СЕ есть групповой поиск - это вроде как раз то, что тебе нужно.

 

1. В каком разделе создать эту тему?

2. Есть. Как именно им пользоваться этим групповым поиском? Можно, пожалуйста, пример?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Screenshot_2.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
21 час назад, БабаЯГА сказал:

if ( adres_1 == value_1 ) and ( adres_2 == value_2 ) then

это условие у тебя никогда не выполнится

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.