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

8 страниц V « < 4 5 6 7 8 >  
Ответить в эту темуОткрыть новую тему
> Чтение из памяти
ivanTu
сообщение 15.3.2015, 11:15
Сообщение #101


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



Руку Мастера, сразу видно, все работает как часы!!!
Единственно неудобно, и я не знаю как это реализовать, когда цели нет он все ровно выдает дистанцию, и это немного сбивает, эту проблему можно как то обойти? Помогите пожалуйста!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 15.3.2015, 11:21
Сообщение #102


***********

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



А вот это дожен быть где-то флаг в чистом виде.
Ищите 1 когда цель есть и 0, когда цели нет.
Ну либо обычный if на панельку с целью.

Сообщение отредактировал DarkMaster - 15.3.2015, 11:22


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


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



Такой флаг у меня найден уже на проверку цели, а как и в какое место кода вставить его чтоб подружить с предыдущем скриптом, где и как проверку сделать, подскажите пожалуйста
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 15.3.2015, 12:07
Сообщение #104


***********

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



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


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


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



я так понимаю 0 ?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 15.3.2015, 12:15
Сообщение #106


***********

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



Цитата
я так понимаю 0 ?

Дык тут нет "понимаю", что хотите, то и вернет. Вставляйте иф, присваивайте 0.


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


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



Я в начало просто добавил проверку вот такого вида:

if #target = 0 // Проверяем есть ли цель?
goto main
end_if

Проверка синтаксически верна?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 15.3.2015, 12:29
Сообщение #108


***********

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



Цитата
if #target = 0 // Проверяем есть ли цель?
goto main
end_if

А где считывание то само наличие цели? #target не задан.
Цитата
Проверка синтаксически верна?

Если флаг равен 0, то да. Но при этом вы не делаете никакого присваивания. Т.е. у вас сохранится предыдущее значение дистанции, как следствие вам необходимо будет в основном коде дополнительно проверять #target либо все-таки изменять значение дистанции.
Цитата
goto main

Не используйте goto. Это великое зло.

// Я бы, наверное, все-таки использовал -1, а не 0, если бы присваивал дистанцию при отсутствии цели.


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


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



Ок, спасибо буду разбираться, единственно хотел еще уточнить вы упомянули про goto - не использовать, gosub - нужно?
и значение 0 чем хуже -1 ?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 15.3.2015, 12:45
Сообщение #110


***********

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



gosub - правильное решение.

0 - теоретически корректное значение. Нам же фактически нужно вернуть ошибку определения дистанции. Ну и есть общее негласное правило - возвращать отрицательное значение при ошибках.


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


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



Все Ясно! Спасибо!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 15.3.2015, 13:15
Сообщение #112


***********

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



Я надеюсь конструкция не превратилась в gosub main?


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


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



Нет я поступил по другому в конец скрипта проверку добавил с присваиванием значения, вот кусок концовки кода:

set $y2Frac frac ($y2)
while size ($y2Frac) < 3
set $y2Frac $y2Frac$zero
end_while
set #y2Int trunc ($y2) copy ( $y2Frac 1 3)

set #distance round (point_distance (#x1Int #y1Int #x2Int #y2Int))

if $x2 = 0 // Проверяем есть ли цель?
set #distance -1
end_if

log #distance // Выводим в переменную #distance дистанцию до цели

// Памятка соотношение дистанции скрипта и игрового RANGE
// Range 400 I 413000
// Range 600 I 613000
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 15.3.2015, 13:21
Сообщение #114


***********

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



Цитата
Нет я поступил по другому в конец скрипта проверку добавил с присваиванием значения

Логичнее вставить в начало и не обрабатывать все вычисления, если цели нет.


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


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



Спасибо, действительно так будет правильно!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ivanTu
сообщение 17.3.2015, 11:09
Сообщение #116


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



Уважаемый драк подскажи как работать с строковыми перемеными, никак не могу оффсеты прибавить в формате 0x260 к примеру результат -1 всегда
вот мой код:

while 1
// Считываем базовый адрес и оффсеты HP положение цели по X
set $offset1 0x670
set $offset2 0x708
set $offset3 0x298

set $target_pos_point_x 0x0693AC00 + $offset1
readmem $target_pos_point_x $target_pos_point_x f
set $target_pos_point_x1 $target_pos_point_x + $offset2
readmem $target_pos_point_x1 $target_pos_point_x1 f
set $target_pos_point_x2 $target_pos_point_x1 + $offset3
readmem $target_pos_x $target_pos_point_x2 f
hint $target_pos_x
end_while
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 17.3.2015, 15:23
Сообщение #117


***********

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



потому что они должны быть не строковыми а числовыми.

0xчисло - это не строковые, а числовые значения. Просто они представлены в шестнадцатиричной системе счисления.


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


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



а значение Float записывается в строковую?, как объединить?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 17.3.2015, 15:59
Сообщение #119


***********

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



а зачем? вы в данном примере вычисляете адреса по указателям. При этом точно вам не придется складывать дробные значения. В пилоте нет нецелочисленной математики на данный момент. Если в этом есть необходимость, то могу написать функцию.

Сообщение отредактировал DarkMaster - 17.3.2015, 15:59


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


****

Apprentice
Сообщений: 128
Регистрация: 2.2.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.276
Возраст: 27



Не могу понять как это сделать, значение все ровно -1
оставил строковую переменную при чтении памяти,
в при сложении изменил на решетку,
подскажите пожалуйста:


while 1
// Считываем базовый адрес и оффсеты положение цели по X
set #offset1 0x6C
set #offset2 0x18
set #offset3 0x5A4

set #target_pos_point_x 0x0693AC00 + #offset1
readmem $target_pos_point_x #target_pos_point_x f
set #target_pos_point_x1 $target_pos_point_x + #offset2
readmem $target_pos_point_x1 #target_pos_point_x1 f
set #target_pos_point_x2 $target_pos_point_x1 + #offset3
readmem $target_pos_x #target_pos_point_x2 f
hint $target_pos_x
end_while
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

8 страниц V « < 4 5 6 7 8 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

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