Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Workwindow, Не устанавливаются значения
Alfer
сообщение 10.3.2021, 19:02
Сообщение #1


**

Neophyte
Сообщений: 17
Регистрация: 23.9.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.128
Возраст: 32



Подскажите какая длинна переменной Workwindow ?

очень похоже что 4 Байта целое

Столкнулся с проблемой что по команде

set workwindow 23**********

workwindow сохраняет старое значение вместо того, чтобы принять новое

предистория:

перебираю память командой findwindow и записываю в одномерный массив Хендлы найденных окон.

Находит 4 нужных окна и пишет их в массив, из массива выдает все 4 Хендла

далее хендлы короткие(6, 7, 10 символьные) вполне себе назначаются, а вот совсем длинные - нет.

Код скрипта:

Код

set %handle FindWindow (World of warcraft)
for #i 1 size(%handle)
     set workwindow %handle(#i 1)
     readmem #temp_name #healname_address S D
     if #temp_name = #heal_name
            set #handlewinheal %handle(#i 1)
     end_if
     set #temp_name 0
end_for


вот этот код пробегается по массиву, но если в массиве длинный(вот не могу понять какой длинны максимум) хендл - то такой хендл не устанавливается.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 10.3.2021, 20:45
Сообщение #2


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27724
Пользователь №: 11.279



Цитата
а вот совсем длинные - нет.

Какие нафиг совсем длиные? Они 3 байта даже на x64 системах. 16,777,215 - это максимум. Откуда 10 цифр? Вы чего?

Цитата
readmem #temp_name #healname_address S D

Ошибка. Указан тип стринг, длина стринга задана символом D. Скорее всего будет воспринято, как числовое значения символа в ASCII, но я бы так делать точно не стал.
Цитата
#temp_name = #heal_name

Имя чара в числовой переменной? Тип не верен, должен быть строковый, обозначается символом $.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Alfer
сообщение 10.3.2021, 22:06
Сообщение #3


**

Neophyte
Сообщений: 17
Регистрация: 23.9.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.128
Возраст: 32



Цитата(DarkMaster @ 10.3.2021, 21:45) *

Какие нафиг совсем длиные? Они 3 байта даже на x64 системах. 16,777,215 - это максимум. Откуда 10 цифр? Вы чего?


Система как раз 64-рка. Я понял, спасибо, буду иметь в виду, буду наблюдать. Хендлы с таким кол-вом цифр выдает не всегда, при каких-то условиях в системе. Буду наблюдать, если что скриню.

Цитата(DarkMaster @ 10.3.2021, 21:45) *

Ошибка. Указан тип стринг, длина стринга задана символом D. Скорее всего будет воспринято, как числовое значения символа в ASCII, но я бы так делать точно не стал.

Имя чара в числовой переменной? Тип не верен, должен быть строковый, обозначается символом $.



Я дико извиняюсь, писал по памяти.

Вот кусок кода работающего скрипта:
Код

set $Heal_charname Имя  // Ник персонажа
set #charname_address 0x00D43348
set %handle findwindow ("World of Warcraft") // Ищем все окна с аким названием и пишем в массив
log Найдено окон: size(%handle)
for #i 1 size(%handle)
    log %handle[#i 1]    //выводим в сообщение все хендлы поочереди
    set workwindow %handle[#i 1]
    readmem $temp_name #charname_address S 64
    log $temp_name
end_for
log -----------------
for #i 1 size(%handle)                 // перебираем массив на соответствие нику Хила
    set workwindow %handle[#i 1]
    readmem $temp_name #charname_address S 64
    if $temp_name = $Heal_charname
        set #hanldewinheal workwindow
        break
    end_if
end_for
log Нашли хила - #hanldewinheal
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 26.4.2024, 23:20
Designed by Nickostyle