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

 
Ответить в эту темуОткрыть новую тему
> Perfect World, передвижение по точкам
flexux
сообщение 11.3.2011, 1:31
Сообщение #1


*

Registred
Сообщений: 4
Регистрация: 11.3.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.506
Возраст: 24



Всем привет.
Кто розбирается помогите написатть скрипт для пвшки чтобы персонаж топал по заданым координатам в пилоте.
Пробовал разными способами получается бред (макросы и елементарное типа управление мышкой).
хотябы примерчик рабочий я уж буду ковырятся дальше.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 11.3.2011, 8:15
Сообщение #2


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Начни с темы Полезные советы в общих темах по пилоту и встроенной справки в программе. Там много информации для начала самостоятельного скриптописания


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
flexux
сообщение 11.3.2011, 14:07
Сообщение #3


*

Registred
Сообщений: 4
Регистрация: 11.3.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.506
Возраст: 24



Я же говорю что на простеньком я пишу, но немогу записать и поределить персонажа и его местоположение.
незнаю как установить точку в игровом пространстве


readmem #BA 0098B47C dword ;
set #LocX #BA + 20 +3C;
set #LocZ #BA + 20 +40;
set #LocY #BA + 20 +44;
say #LocX #LocZ #LocY
end_script

но пишет не то чето...
-458114103 -458114066 -458114062
это в какой то кодировке?

чет типа этого?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
flexux
сообщение 11.3.2011, 18:12
Сообщение #4


*

Registred
Сообщений: 4
Регистрация: 11.3.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.506
Возраст: 24



а вообщето каким языком програмирования в пилоте можно писать? или где можно что читать чтобы научится писать скрипты?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 11.3.2011, 18:25
Сообщение #5


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Тема Полезные советы + встроенная справка в пилоте + история языка скриптов (в том же меню). Писал же уже


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
flexux
сообщение 11.3.2011, 18:58
Сообщение #6


*

Registred
Сообщений: 4
Регистрация: 11.3.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.506
Возраст: 24



Прочитав тему полезные советы и историю розвития программы, ненашел нужной информации....
если не сложно напиши пример как задать координаты персонажу и чтобы он начал топать к ним..
пробовал заставить персонажа передвигатся в игре sendex (ом) такая лажа получается.... надо написать раз 400 букву на которую надо нажать чтобы персонаж протопал пару шагов
пример
sendex wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
персонаж сдвинется на пол пяточки вперед. (
потом нашел функцию
send_down w
wait 2s
send_up w
персонаж не двигается... а если включить на окно чата там пишет букву w. тоесть кнопка зажата но персонаж не двигается....
если заставить персонажна двигатся скриптом по заданым кординатам так сложно подскажите альтернативный способ если он есть..
Записывать макрос не практично... обьеткив камеры чуть сдвинул и все цепочка ушла в мусор
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 11.3.2011, 20:04
Сообщение #7


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Ну как я тебе напишу, если в каждой игре свои нюансы??

Ну вот тебе пример из другой игры. Вряд ли станет легче, я думаю
Пример

Код

:get_position
// Сохраняет текущую координату перса на карте ABS
if 1085, 523 2698032 abs // карта закрыта
    kleft 1085, 523 abs // открываем
    wait 720
end_if

set $a findcolor ( #mapX1, #mapY1 #mapX2, #mapY2 1 1 3689949 %arr 2 abs) // ищем себя на карте

if $a <> 0
   set #x %arr[1 1]  + #mapX1
   set #y %arr[1 2]  + #mapY1
   set #mapPosX #x // Сохранил позицию перса на карте
   set #mapPosY #y
else
   set #mapPosX #mapHomeX
   set #mapPosY #mapHomeY
end_if
wait 157
kleft 830, 135 abs // Закрываем карту крестиком
wait 200
return

// Бежим в направлении домашней точки (1 клик в ту сторону)
:goHome
//set #mapPosX 0 // координата X перса на карте ABS
//set #mapPosY 0 // координата Y перса на карте ABS
//set #mapHomeX 221 // точка на карте куда стремится перс ABS
//set #mapHomeY 345
//set #lookX1 60 // координата x левого верхнего угла области поиска
//set #lookY1 72 // координата y левого верхнего угла области поиска
//set #lookX2 938 // координата x правого нижнего угла области поиска
//set #lookY2 500 // координата y правого нижнего угла области поиска
set #dX #mapHomeX - #mapPosX // находим разницу текущих и желаемых координат
set #dY #mapHomeY - #mapPosY
// берем модули
if #dX < 0
   set #dXm  - #dX
else
   set #dXm  #dX
end_if  
if #dY < 0
   set #dYm  - #dY
else
   set #dYm #dY
end_if
set #sum #dXm + #dYm

set #sz size ( %doroga )
if #sz = 1
   goto beg_dalee
end_if

if #sum < #doroga_dist // если почти прибежали на место, то определяем следующий пункт назначения
   if #doroga_mode = 1
      set #doroga_cur #doroga_cur + 1 // в следующий раз бежим уже на следующую точку
      if #doroga_cur > #sz // если дошел до конца
         set #doroga_cur  #sz - 1
         set #doroga_mode -1 // то бежим назад
      end_if
      goto beg_dalee
   end_if
   if #doroga_mode = -1
      set #doroga_cur #doroga_cur - 1 // в следующий раз бежим уже на следующую точку
      if #doroga_cur = 0 // если дошел до конца
         set #doroga_cur 2
         set #doroga_mode 1 // то бежим вперед
      end_if
      goto beg_dalee
   end_if
   if #doroga_mode = 0
      set #doroga_cur #doroga_cur + 1 // в следующий раз бежим уже на следующую точку
      if #doroga_cur > #sz // если дошел до конца
         set #doroga_cur  1 // бежим на начало
      end_if
      goto beg_dalee
   end_if
end_if

:beg_dalee
set #mapHomeX %doroga[ #doroga_cur 1 ] // для следующего раза
set #mapHomeY %doroga[ #doroga_cur 2 ]

if #dXm < #dYm
   set #max #dYm // надо по модулю!
else
   set #max #dXm
end_if
if #max = 0
   return
end_if

set #dist ( #lookY2 - #lookY1 )  // максимальное допустимое расстояние клика от центра экрана (чтоб перс туда переместился)

set #x ( #dist * ( #dX ) / #max ) + #centerX
set #y ( #dist * ( #dY ) / #max ) + #centerY

if #x < #lookX1
   set #x #lookX1
end_if
if #x > #lookX2
   set #x #lookX2
end_if
if #y < #lookY1
   set #y #lookY1
end_if
if #y > #lookY2
   set #y #lookY2
end_if

kleft #x, #y // бежим в расчетную точку =)
return



--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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