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

2 страниц V < 1 2  
Ответить в эту темуОткрыть новую тему
> Автохилер ВоВ 2.4.3, скрипт для хилинга 1-5 юнитов в пати. Хочется добиться работы с readme
Alfer
сообщение 26.9.2016, 16:30
Сообщение #21


**

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



и еще вопросик.

Код

if #mark = 1
   send {num_4} #gcd
   set timer
   call hpheal_check #hanldewinheal #adress_maxHP_Heal #adress_actHP_Heal #mark    <--- на этом шаге меняется переменная #mark по которой мы попали в тело Ифа и
    // условие для попадания перестает выполняться.
   if #mark = 1
      send {num_4} #gcd
      call hpdd_check #hanldewinDD #adress_maxHP_DD #adress_actHP_DD #mark
      if #mark = 1
         log timer
         while timer < 15000
         send_down {DOWN}
         send_up {DOWN}
         send {num_6} 2100
         send {num_0}
         log timer
         end_while
      end_if
   end_if
end_if


Меня выбросит из цикла ? или тело будет выполняться до конца и только потом будет еще раз проверяться условие попадания в тело ?

Сообщение отредактировал DarkMaster - 27.9.2016, 17:53
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Alfer
сообщение 26.9.2016, 18:09
Сообщение #22


**

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



Пока что получилось победить через Свитч.
По не наагришь толпу мобов(10+) на Хила и на ДД работает очень даже хорошо.

Код

Код

// перед запуском скрипта прописать макросы для лечения фокуса и лечимый объект выбрать в фокус.
set #base_adress 0x00e29d28 // базовый, где хранится адрес ячейки начала структуры чара.
set #offset_maxHP 0x26b0 // смещение для поиска максимального значения ХП выбранного окна
set #hanldewinheal 66202360  // указать хендл окна хилера
set #hanldewinDD 3939646 // указать хендл окна ДД
set #gcd 1500
:0
set #mark 0
set #part_hp_heal 100
set #part_hp_dd 100
set workwindow #hanldewinheal
readmem #first_adress #base_adress D
set #adress_maxHP_Heal #first_adress + #offset_maxHP //вычисляем адрес максимального значения ХП Хилера
set #adress_actHP_Heal #adress_maxHP_Heal - 0x18 //вычисляем адрес актуального значения ХП Хиера
set workwindow #hanldewinDD
readmem #first_adress #base_adress D
set #adress_maxHP_DD #first_adress + #offset_maxHP //вычисляем адрес максимального значения ХП ДДшника
set #adress_actHP_DD #adress_maxHP_DD - 0x18 //вычисляем адрес актуального значения ХП ДДшника
call hpdd_check #hanldewinDD #adress_maxHP_DD #adress_actHP_DD #part_hp_dd
call hpheal_check #hanldewinheal #adress_maxHP_Heal #adress_actHP_Heal #part_hp_heal
set #heal_mark 0
set #heal_mark $hpdd_check + $hpheal_check
//log #heal_mark
switch #heal_mark
case 0:
  goto 0
case 1:
:heal_DD
set workwindow #hanldewinheal
send {num_4} #gcd
set timer
send {num_5} #gcd
call hpdd_check #hanldewinDD #adress_maxHP_DD #adress_actHP_DD #part_hp_dd
if $hpdd_check = 1
   send {num_4} #gcd
   call hpheal_check #hanldewinheal #adress_maxHP_Heal #adress_actHP_Heal #part_hp_heal
   if $hpheal_check = 2
      goto heal_heal
   end_if
   send {num_4} #gcd
   call hpdd_check #hanldewinDD #adress_maxHP_DD #adress_actHP_DD #part_hp_dd
   if $hpdd_check = 1
      log timer
      while timer < 9000
           send_down {DOWN}
           send_up {DOWN}
           send {num_6} 2100
           send {num_0}
           log timer
      end_while
   else
   goto 0
   end_if
end_if
goto 0
case 2:
:heal_heal
set workwindow #hanldewinheal
send {num_7} #gcd
set timer
send {num_8} #gcd
call hpheal_check #hanldewinheal #adress_maxHP_Heal #adress_actHP_Heal #part_hp_heal
if $hpheal_check = 2
   send {num_7} #gcd
   call hpdd_check #hanldewinDD #adress_maxHP_DD #adress_actHP_DD #part_hp_dd
   if $hpdd_check = 1
      goto heal_dd
   end_if
   send {num_7} #gcd
   call hpheal_check #hanldewinheal #adress_maxHP_Heal #adress_actHP_Heal #part_hp_heal
   if $hpheal_check = 2
       log timer
          while timer < 9000
               send_down {DOWN}
               send_up {DOWN}
               send {num_9} 2100
               send {num_0}
               log timer
         end_while
   end_if
end_if
goto 0
case 3:                    //требует долаботки для отхила двух целей одновременно
    set #temp #part_hp_dd / #part_hp_heal
    if #temp < 1
        goto heal_dd
    else
        goto heal_heal
    end_if
end_switch
Proc hpdd_check #hanldewinDD #adress_maxHP_DD #adress_actHP_DD #part_hp_dd
     set #temp_workwindow workwindow
     set #cs current_script
     set workwindow #hanldewinDD
     readmem #hpDD_m #adress_maxHP_DD D
     readmem #hpDD_a #adress_actHP_DD D
     set #hp1 #hpDD_a * 100 / #hpDD_m
     if #hp1 < 75
        set $result 1
     else
        set $result 0
     end_if
     set #part_hp_dd.#cs #hp1
     set workwindow #temp_workwindow
end_proc
Proc hpheal_check #hanldewinheal #adress_maxHP_Heal #adress_actHP_Heal #part_hp_heal
     set #temp_workwindow workwindow
     set #cs current_script
     set workwindow #hanldewinheal
     readmem #hpheal_m #adress_maxHP_Heal D
     readmem #hpheal_a #adress_actHP_Heal D
     set #hp2 #hpheal_a * 100 / #hpheal_m
     if #hp2 < 75
        set $result 2
     else
        set $result 0
     end_if
     set #part_hp_heal.#cs #hp2
     set workwindow #temp_workwindow
end_proc
end_script

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 27.9.2016, 3:01
Сообщение #23


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Сколько времени хил откатывается?
Цитата
требует долаботки для отхила двух целей одновременно

Зачем делить хп, если можно просто их сравнить?

Когда вижу goto аж плохо становится. Гораздо понятнее, если использовать gosub.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Alfer
сообщение 27.9.2016, 9:35
Сообщение #24


**

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



Цитата
Когда вижу goto аж плохо становится. Гораздо понятнее, если использовать gosub.


Хде ж вы раньше были ?! (IMG:style_emoticons/default/wink.gif) Перечитал мануал и особенно понравилось: "В отличии от goto имеет оператор для возврата обратно, в место перенаправления - return. "

спс за подсказку при беглом изучении функционала не обратил внимания на gosub. Буду переделывать вроде как это должно решить одну из моих проблем.

Цитата
Сколько времени хил откатывается?


6 макросов по 3 спела на юнита(1 юнит - Сам хил, 2 юнит - ДД(фокус или партимембер с номером 1-5, пока - фокус))

Я делаю для связки Фурик+рДру

Спелы

Lifbloom - instant cast, 1,5sec global cooldown 7 sec висит на таргете, 3 раза стакается на таргете с каждым след разм отхил больше.
Rejuv - instant cast, 1,5sec global cooldown, 12 sec висит на таргете не стакается

Regrowth - 2 sec cast, отхил после каста и висит на таргете 21 sec.

Формально логика отхила такая


смотрим на хп ДД и Хила пока чей-то не будет меньше 75%
переходим к отхилу того у кого меньше 75%
Lifbloom
Rejuv
запускаем таймер
смотрим хп если больше 75% выходим к мониторингу обоих ХП иначе дальше
Lifbloom
смотрим на ХП второго чара если у него меньше 75% переходим к его отхилу по такой же логике иначе дальше
Lifbloom
смотрим хп если больше 75% выходим к мониторингу обоих ХП иначе дальше
Пока таймер меньше 11 сек сбрасываем фоллоу шажочком назад и кастуем Regrowth используем макрос "преследовать фокус"
смотрим на ХП второго чара если у него меньше 75% переходим к его отхилу иначе дальше
всё.

Цитата
Зачем делить хп, если можно просто их сравнить?


А я их делением и сравниваю. Так как пилот не умеет работать с нецелыми числами, а те меременные у меня могут быть в диапазоне 0-100 - то если разделю меньшее на большее получу 0, а если одинаково или большее на меньшее - получу 1. И, кстати, я сравниваю остаток ХП в процентах. На мой взгляд просто и быстро работает.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 27.9.2016, 9:43
Сообщение #25


***********

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



хп в процентах имхо правильно. По остальному коду глаза пока ломать не стал, избавляйтесь от гото (IMG:style_emoticons/default/smile.gif)


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


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
set #gcd 1500
send {num_4} #gcd
set timer
send {num_5} #gcd

Это останавливает скрипт на 3 секунды. Если в это время потребуется хил для другого перса?
Обычно делается через таймер. Т. е. хп проверяется всё время, а хил используется только если он уже откатился.
Код
set linedelay 10
set #time 0

while 1 = 1
    log Проверяем хп
    if #time < timer and 1 = 1   // вместо 1 = 1 проверять хп (нужен хил или нет)
    log Хил
    set #time timer + 1500
    end_if
end_while

Суть в том что после того как сделан хил, скрипт не останавливается и можно проверить хп других персов и использовать другой хил если один в откате.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Alfer
сообщение 27.9.2016, 12:15
Сообщение #27


**

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



Цитата
Суть в том что после того как сделан хил, скрипт не останавливается и можно проверить хп других персов и использовать другой хил если один в откате.


Не знаю знакомы ли Вы с механикой вов, но есть такое понятие как Глобал Кулдаун, который запускается после использования 95% скилов в игре и равен от 1 до 1.5 секунды в зависимости от параметра Haste в это время что-либо другое кастовать нельзя другой скилл просто не сможет использоваться. А вот читать в это время хп - очень может быть. Собственно подумываю вынести вычисление процента ХП в отдельный скрипт и передавать в первый готовое значение, чтобы каждый раз не дергаться в процедуру проверки ХП
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 27.9.2016, 12:43
Сообщение #28


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
Не знаю знакомы ли Вы с механикой вов

Не играл.
Цитата
Собственно подумываю вынести вычисление процента ХП в отдельный скрипт и передавать в первый готовое значение, чтобы каждый раз не дергаться в процедуру проверки ХП

Как по мне, то в большинстве случаев проще делать в одном скрипте.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 27.9.2016, 17:52
Сообщение #29


***********

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



Цитата
Не знаю знакомы ли Вы с механикой вов, но есть такое понятие как Глобал Кулдаун, который запускается после использования 95% скилов в игре и равен от 1 до 1.5 секунды в зависимости от параметра Haste в это время что-либо другое кастовать нельзя другой скилл просто не сможет использоваться. А вот читать в это время хп - очень может быть. Собственно подумываю вынести вычисление процента ХП в отдельный скрипт и передавать в первый готовое значение, чтобы каждый раз не дергаться в процедуру проверки ХП

Это бывает актуально, т.к. создает своего рода API при работе скриптов. Это бывает очень актуально, когда вычисления занимают значимый промежуток времени и мы можем использовать значения не дожидаясь выполнения полного цикла обновления значений. В данном случае у меня есть некоторые сомнения по поводу целесообразности, т.к. все отрабатывать должно практически мгновенно.


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


**

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



Вот так заработало так как надо.

Скрипт

Код

// перед запуском скрипта прописать макросы для лечения фокуса и лечимый объект выбрать в фокус.
set #base_adress 0x00e29d28 // базовый, где хранится адрес ячейки начала структуры чара.
set #offset_maxHP 0x26b0 // смещение для поиска максимального значения ХП выбранного окна
set #hanldewinheal 1254942   // указать хендл окна хилера
set #hanldewinDD 26416278 // указать хендл окна ДД
set #gcd 1500
:0
set #part_hp_heal 100
set #part_hp_dd 100
set workwindow #hanldewinheal
readmem #first_adress #base_adress D
set #adress_maxHP_Heal #first_adress + #offset_maxHP //вычисляем адрес максимального значения ХП Хилера
set #adress_actHP_Heal #adress_maxHP_Heal - 0x18 //вычисляем адрес актуального значения ХП Хиера
set workwindow #hanldewinDD
readmem #first_adress #base_adress D
set #adress_maxHP_DD #first_adress + #offset_maxHP //вычисляем адрес максимального значения ХП ДДшника
set #adress_actHP_DD #adress_maxHP_DD - 0x18 //вычисляем адрес актуального значения ХП ДДшника
call hpdd_check #hanldewinDD #adress_maxHP_DD #adress_actHP_DD #part_hp_dd
call hpheal_check #hanldewinheal #adress_maxHP_Heal #adress_actHP_Heal #part_hp_heal
set #heal_mark 2
if  (#part_hp_dd <= 75) or (#part_hp_heal <= 75)
    if #part_hp_dd < #part_hp_heal
       set #heal_mark 0
    else
       set #heal_mark 1
    end_if
end_if
switch #heal_mark
case 0:
    gosub Heal_D
    break
case 1:
    gosub Heal_H
    break
case 2:
    break
end_switch
goto 0
Proc hpdd_check #hanldewinDD #adress_maxHP_DD #adress_actHP_DD #part_hp_dd
     set #temp_workwindow workwindow
     set #cs current_script
     set workwindow #hanldewinDD
     readmem #hpDD_m #adress_maxHP_DD D
     readmem #hpDD_a #adress_actHP_DD D
     set #hp1 #hpDD_a * 100 / #hpDD_m
     set $result #hp1
     set #part_hp_dd.#cs #hp1
     set workwindow #temp_workwindow
end_proc
Proc hpheal_check #hanldewinheal #adress_maxHP_Heal #adress_actHP_Heal #part_hp_heal
     set #temp_workwindow workwindow
     set #cs current_script
     set workwindow #hanldewinheal
     readmem #hpheal_m #adress_maxHP_Heal D
     readmem #hpheal_a #adress_actHP_Heal D
     set #hp2 #hpheal_a * 100 / #hpheal_m
     set $result #hp2
     set #part_hp_heal.#cs #hp2
     set workwindow #temp_workwindow
end_proc
end_script
:Heal_D
set workwindow #hanldewinheal
send {num_4} #gcd
set timer
send {num_5} #gcd
call hpdd_check #hanldewinDD #adress_maxHP_DD #adress_actHP_DD #part_hp_dd
if #part_hp_dd >= 75
    return
end_if
send {num_4} #gcd
call hpheal_check #hanldewinheal #adress_maxHP_Heal #adress_actHP_Heal #part_hp_heal
if #part_hp_heal < 75
    gosub Heal_H
end_if
send {num_4} #gcd
call hpdd_check #hanldewinDD #adress_maxHP_DD #adress_actHP_DD #part_hp_dd
if #part_hp_dd >= 75
    return
end_if
call hpheal_check #hanldewinheal #adress_maxHP_Heal #adress_actHP_Heal #part_hp_heal
if #part_hp_heal < 75
    gosub Heal_H
end_if
while timer < 9000
    send_down {DOWN}
    send_up {DOWN}
    send {num_6} 2100
    send {num_0}
    call hpdd_check #hanldewinDD #adress_maxHP_DD #adress_actHP_DD #part_hp_dd
    if #part_hp_dd >= 75
        return
    end_if
end_while
return
:Heal_H
set workwindow #hanldewinheal
send {num_7} #gcd
set timer
send {num_8} #gcd
call hpheal_check #hanldewinheal #adress_maxHP_Heal #adress_actHP_Heal #part_hp_heal
if #part_hp_heal >= 75
    return
end_if
send {num_7} #gcd
call hpdd_check #hanldewinDD #adress_maxHP_DD #adress_actHP_DD #part_hp_dd
if #part_hp_dd < 75
    gosub Heal_D
end_if
send {num_7} #gcd
call hpheal_check #hanldewinheal #adress_maxHP_Heal #adress_actHP_Heal #part_hp_heal
if #part_hp_heal >= 75
    return
end_if
call hpdd_check #hanldewinDD #adress_maxHP_DD #adress_actHP_DD #part_hp_dd
if #part_hp_dd < 75
    gosub Heal_D
end_if
while timer < 9000
    send_down {DOWN}
    send_up {DOWN}
    send {num_9} 2100
    send {num_0}
    call hpheal_check #hanldewinheal #adress_maxHP_Heal #adress_actHP_Heal #part_hp_heal
    if #part_hp_heal >= 75
        return
    end_if
end_while
return



Теперь попытаюсь еще отследить прерывание каста при нанесении хилу дмг.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 28.9.2016, 18:51
Сообщение #31


***********

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



Цитата
set #hanldewinheal 1254942 // указать хендл окна хилера
set #hanldewinDD 26416278 // указать хендл окна ДД

Хотите сделать красиво? Соберите все хендлы окон вова, и выедите через промпт запрос с никами чаров.


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


**

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



Идея интересная, но была бы актуальна, если бы не нужно было настраивать макросы в самой игре. А плот не может работать а апи вов отправкой команд ? http://wowwiki.wikia.com/wiki/API чтобы макросы не нужно было писать, а всё сделать на уровне пилота указав ему только ники Хила и ДД, а дальше вытаскивать класс хила и уже на основании этого как-то управлять процессом. Кстати для ультимы у пилота есть "характеристики персонажа" а может можнго аналогично сделать для ВоВ через оффсеты ?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Alfer
сообщение 29.9.2016, 12:12
Сообщение #33


**

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



Растащил по двум скриптам. Работает быстрее, но периодически возникает ошибка:
12:09:33 1 (autosaved_1.txt, 14): call - (14): Ошибка! Проверьте правильность скрипта! EThread Thread Error: Неверный дескриптор (6)
call hpheal_check #hanldewinheal #adress_maxHP_Heal #adress_actHP_Heal #part_hp_heal

В этом скрипте:
Код

set #base_adress 0x00e29d28 // базовый, где хранится адрес ячейки начала структуры чара.
set #offset_maxHP 0x26b0 // смещение для поиска максимального значения ХП выбранного окна
set #hanldewinheal 3021128  // указать хендл окна хилера
set #hanldewinDD 5645786  // указать хендл окна ДД
:0
set workwindow #hanldewinheal
readmem #first_adress #base_adress D
set #adress_maxHP_Heal #first_adress + #offset_maxHP //вычисляем адрес максимального значения ХП Хилера
set #adress_actHP_Heal #adress_maxHP_Heal - 0x18 //вычисляем адрес актуального значения ХП Хиера
set workwindow #hanldewinDD
readmem #first_adress #base_adress D
set #adress_maxHP_DD #first_adress + #offset_maxHP //вычисляем адрес максимального значения ХП ДДшника
set #adress_actHP_DD #adress_maxHP_DD - 0x18 //вычисляем адрес актуального значения ХП ДДшника
call hpdd_check #hanldewinDD #adress_maxHP_DD #adress_actHP_DD #part_hp_dd
call hpheal_check #hanldewinheal #adress_maxHP_Heal #adress_actHP_Heal #part_hp_heal
goto 0
Proc hpdd_check #hanldewinDD #adress_maxHP_DD #adress_actHP_DD #part_hp_dd
     set #temp_workwindow workwindow
     set #cs current_script
     set workwindow #hanldewinDD
     readmem #hpDD_m #adress_maxHP_DD D
     readmem #hpDD_a #adress_actHP_DD D
     set #hp1 #hpDD_a * 100 / #hpDD_m
     set $result #hp1
     set #part_hp_dd.#cs #hp1
     set workwindow #temp_workwindow
end_proc
Proc hpheal_check #hanldewinheal #adress_maxHP_Heal #adress_actHP_Heal #part_hp_heal
     set #temp_workwindow workwindow
     set #cs current_script
     set workwindow #hanldewinheal
     readmem #hpheal_m #adress_maxHP_Heal D
     readmem #hpheal_a #adress_actHP_Heal D
     set #hp2 #hpheal_a * 100 / #hpheal_m
     set $result #hp2
     set #part_hp_heal.#cs #hp2
     set workwindow #temp_workwindow
end_proc
end_script

междустрочный интервал 30мс.
Может какой-то одновременный доступ к переменным разными скриптами?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 29.9.2016, 14:43
Сообщение #34


***********

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



Цитата
междустрочный интервал 30мс.

всегда работаю на нуле. Там где нужно сами проставьте вэйты.
Цитата
Может какой-то одновременный доступ к переменным разными скриптами?

Очень высока вероятность. Я бы все-таки свернул в один скрипт. У вас нет ресурсоемких действий чтобы получать приросты и не блокировать какими-то операциями основной скрипт. Прото задержку на ноль, выключить логирование, выключить слежение.


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


***********

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



Цитата
А плот не может работать а апи вов отправкой команд ? http://wowwiki.wikia.com/wiki/API чтобы макросы не нужно было писать, а всё сделать на уровне пилота указав ему только ники Хила и ДД, а дальше вытаскивать класс хила и уже на основании этого как-то управлять процессом. Кстати для ультимы у пилота есть "характеристики персонажа" а может можнго аналогично сделать для ВоВ через оффсеты ?

Как-то не заметил данный пост. Если еще актуально, то:
Для вызова данных функций необходимо вмешательство в процесс. Вообще можно - так все боты работают. По факту в данный момент - нет.
Касательно работы со переменными зарезервированными, как в ультиме - под ультиму уже был пост от кнайта "находите оффсеты - все добавлю". Разницы ультима это или вов никакой. Просто нужные оффсеты. Даже все переменные будут те же самые.


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


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20893
Пользователь №: 16.156



Дать возможность резервировать пользовательские переменные. Это было бы лучшим выходом без засорения пилота 999 переменными к разным играм.

А я еще давно это предлогал, результатата только нет.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 3.10.2016, 19:16
Сообщение #37


***********

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



что есть резервированная пользовательская переменная? На данный момент за переменными зарезеривроанными в пилоте стоят функции. Речь о том чтобы сделать прозрачной вызов цепочки указателей. Если по большому счету, то через call можно сделать сейчас тоже самое. Только это некоторое нагромождение.


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


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20893
Пользователь №: 16.156



Тоже самое что ты и написал. При запуске пилота выполнять

set <varname> readmem() //функция
set <varname2> 100 //константа
set <varname2> 130 //переопределение константы

Можно прям в инишник и прибить формочку-редактор.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 4.10.2016, 9:57
Сообщение #39


***********

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



ок. Допустим. Какие приемущества над call при таком варианте работы? До инишника нужно еще долезть, а тут все на поверхности. Может имеет смысл просто заставить call возвращать некоторое значение вместо себя, как обычную функцию?


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

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

 

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