Yoko

All sides of Injection
It is currently 2025-12-09 07:54:42

All times are UTC+02:00




Post new topic  Reply to topic  [ 63 posts ]  Go to page Previous 1 2 3 4 Next
Author Message
PostPosted: 2013-06-01 22:21:40 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Code:
uo.getstatus(obj)
Wait(100)
uo.gethp(id)


Last edited by Juicy Fruit on 2013-06-01 23:37:05, edited 1 time in total.

Top
   
PostPosted: 2013-06-01 22:34:29 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Спасибо, работает :o

_________________
CodeSweeper


Top
   
PostPosted: 2013-06-01 23:38:49 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
С задержкой помудри, там от коннекта зависит. Если хороший - 100 должно хватить.
А по-хорошему - сделать динамическую задержку, пока не обновится статус, но не помню, инжа может видить сообщения инжекта в журнале или нет, если да - по журналу, там обычно пишется ник того, у кого запрашиваешь статус.


Top
   
PostPosted: 2013-06-02 21:36:42 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Непонятная проблема, скрипт находит существо, чар должен подойти к нему, но чар делает пару шагов и просто стает, кажется что он вообще в другую сторону шел, это не везде так, только в некоторых местах мира.

_________________
CodeSweeper


Top
   
PostPosted: 2013-06-02 22:48:14 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Передавай прювет ходилке в инжекте. :mrgreen:
Как надоест - спаривай ходилку от изиуо и скрипт инжекта.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2013-06-02 23:15:49 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Стелс жду 5, если будет интересный даже начну учить скриптинг, я в нем не шарю вообще. А сейчас стелс это печаль, нельзя даже отдельно функцию вызвать, только запускай скрипт целиком, не говоря уже про запуск одновременно нескольких функций.

_________________
CodeSweeper


Top
   
PostPosted: 2013-06-03 08:45:53 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
приведи пример когда тебе необходимо запустить отдельную функцию без скрипта.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2013-06-03 10:46:57 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Я имел ввиду например у меня есть файл с кучей скриптов, как в инжекте, в инжекте я могу запустить любой скрипт из этого файла а в стелсе можно запустить только весь файл целиком.

_________________
CodeSweeper


Top
   
PostPosted: 2013-06-03 20:54:58 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Заморочился с координатами для ходилки по точкам шахты. Чтобы в одно значение сразу X и Y записывать и потом извлекать, получилось, работает, пример
Code:
  var wordx, wordy, i
 dim Position[2]
  Position[1] = "1234 345"
  Position[2] = "5678 890"
   for i = 1 to 2
  wordx = val(GetWord(Position[i], 1))
  wordy = val(GetWord(Position[i], 2))
    Walker(wordx, wordy, 0)
 

Теперь думаю как сделать, будет несколько шахт и чтобы в каждой шахте он брал свои координаты, и чтобы покороче было как обычно :roll: Устал, плохо варит голова, представляю только что при реколе по определенной руне будет включаться номер глобальной переменной, к примеру uo.setglobal("Mine", "3") и это будет значить что мы в шахте номер 3, и нужно брать координаты из соответсвующего ей массива... :?

_________________
CodeSweeper


Top
   
PostPosted: 2013-06-03 22:22:27 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Есть идея координаты делать даже не массивом а в 1 строку, пример
Code:
var i, MineOne, MineTwo, wordx, wordy, wordnumber, 
MineOne = "1234 567 2345 678 1234 567 2345 678 1234 567 2345 678"
MineTwo = "1234 567 2345 678 1234 567 2345 678 1234 567 2345 678"
for i = 1 to 6
  wordnumber = i + i - 1
  wordx = val(GetWord(MineOne, wordnumber))
  wordnumber = i + i
  wordy = val(GetWord(MineOne, wordnumber))
  Walker(wordx, wordy, 0)

Только дополнительно прийдется для каждой шахты указывать последнюю цифру для for i = 1 to 6, так как размер шахт разный и точек обкопа тоже по разному. Это значение будет так же указываться приреколе в зависимости от ID руны. Продолжаем...

_________________
CodeSweeper


Top
   
PostPosted: 2013-06-04 08:22:14 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Code:
var XYMineOne = "1234 567 2345 678 1234 567 2345 678 1234 567 2345 678"

for i = 1 to 3
  wordnumber = i + i - 1
  wordx = val(GetWord(MineOne, wordnumber))
  wordnumber = i + i
  wordy = val(GetWord(MineOne, wordnumber))
  Walker(wordx, wordy, 0)

for i = 3 to 6
  wordnumber = i + i - 1
  wordx = val(GetWord(MineOne, wordnumber))
  wordnumber = i + i
  wordy = val(GetWord(MineOne, wordnumber))
  Walker(wordx, wordy, 0)


ни? :)

PS так скоро дойдешь до использования внешних файлов. В TXT хранить данные дюже удобно.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2013-06-04 09:41:41 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Да, так будет хорошо, все координаты в одну строку, осталось только определиться как сделать чтобы было типа
Code:
var XYMineOne = "1234 567 2345 678 1234 567 2345 678 1234 567 2345 678"

if minenumber == "1" then
for i = 1 to 3
  wordnumber = i + i - 1
  wordx = val(GetWord(MineOne, wordnumber))
  wordnumber = i + i
  wordy = val(GetWord(MineOne, wordnumber))
  Walker(wordx, wordy, 0)
end if

if minenumber == "2" then
for i = 3 to 6
  wordnumber = i + i - 1
  wordx = val(GetWord(MineOne, wordnumber))
  wordnumber = i + i
  wordy = val(GetWord(MineOne, wordnumber))
  Walker(wordx, wordy, 0)
end if

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

_________________
CodeSweeper


Top
   
PostPosted: 2013-06-04 10:23:00 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Наверное сделаю так как было в старом скрипте, соберу точки на которых должен стоять но буду использовать их не как определение куда идти, а как определение в какую сторону идти если находишся в данной точке, а именно(например нам нужно пройти на 5 тайлов по направлению N)

Code:
if (uo.getx() == 1234 and uo.gety() == 345) or (uo.getx() == 2345 and uo.gety() == 567) then
  wherex = uo.getx()
  wherey = uo.gety() + 5
   Walker(wherex, wherey, 0)

и так 4 строки координат для 4 направлений(N,E,S,W). Только у меня было вместо (uo.getx() == 1234 and uo.gety() == 345) or (uo.getx() == 2345 and uo.gety() == 567) просто список номеров координат через запятую, не я делал, нужно искать старую ходилку, я не знаю как сделать.

_________________
CodeSweeper


Top
   
PostPosted: 2013-06-04 12:32:36 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Пока идея такая
Code:
var wordnumber, mypos 
    mypos = (str(uo.getx()) + " " + str(uo.gety()))
if wordnumber содержит в себе mypos then
   wordnumber = "1234 789|1234 789|1234 789|1234 789|1234 789|1234 789|1234 789|1234 789|1234 789|1234 789"
end if

Пока застрял на месте if wordnumber содержит в себе mypos then не знаю как это проверять.

_________________
CodeSweeper


Top
   
PostPosted: 2013-06-04 14:13:20 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Слишком глобально :)
Ты же прилетаешь в одну и туже точку в каждой пещере.
Пещера 1 - X,Y=123,123
Пещера 2 - X,Y=321,231
Пещера 3 - X,Y=593,1003
После реколла если координаты чара = пещеры 1 тогда
for i 1 to 5
в противном случае
если координаты чара = пещеры 2 тогда
for i 5 to 10
////

только смысл всех этих плясок с бубном?
Тексту скрипта откровенно плевать какой длинны в каких местах ему быть.
Можно сделать таким макаром:

у чара 5 рун
начинаем от сундука дома.
Обязательно выкладываем сырье (руду, логи, рыбу), затариваемся инструментом, регами, жрем и лечимся если требуется.
for i = 0 to 4 ; руны
летим в первую координату
запускаем mine[i]() ; возможно такая конструкция сработает, если нет то без for летим и запускаем mine1(), mine2(),...,mine5()
летим домой

mine1(), mine2(),...,mine5() - это либо функция вида

Code:
walker(1887, 271, 0)
walker(1897, 271, 0)
walker(1904, 271, 0)
Mine()
walker(1912, 273, 0)
Mine()
walker(1916, 281, 0)
Mine()
walker(1921, 276, 0)
Mine()
walker(1921, 269, 0)
Mine()
walker(1924, 264, 0)
Mine()


либо как у тебя.
Mine - обычный обкоп вокруг себя по тайлам пола.

Так, ИМХО, будет оптимальнее, редактируемей при необходимосте, и понятнее в случае забывания чтоже ты хотел там наворотить и почему оно работает :)

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2013-06-04 14:42:57 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Подумаю. Просто не люблю большие тексты и запутанные тексты, всегда стараюсь сделать компактнее и практичнее. Кстати с ходилкой разобрался, там были замороченые таймеры, и похоже на постоянной основе отключена проверка тайлов. Сделал таймеры по своему, теперь, при правильно установленном значении, чар ходит быстро и не нарезает круги(которые он делает если таймер на шаг слишком маленький), в общем работает шикарно.

_________________
CodeSweeper


Top
   
PostPosted: 2013-06-05 02:36:31 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Обманул, замена таймеров помогла только для того чтобы не тупил долго, но нарезание кругов осталось, хотя немного меньше. Вот не пойму, с чем это может быть связано? В любом случае недоработка скрипта. Никто не хоче подумать? :roll: Еще вопрос не по теме, кто шарит в стелсе, и покладистый человек, можете мне скрипт портировать на стелс, хочу попробовать как оно будет. Скрипт
Code:
sub Skin()
  uo.set("finddistance", "16")
  var i, r, myposx, myposy, corpseid, weapon, animalfind, corpsefind, timer, msg = "fizzles"
  dim Animal[9]
  Animal[1] = "0x00E8" ; Brown Bull
  Animal[2] = "0x00E9" ; Bull
  Animal[3] = "0x00E7" ; Brown Cow
  Animal[4] = "0x00D8" ; Cow
  Animal[5] = "0x00CB" ; Pig
  Animal[6] = "0x0122" ; Boar
  Animal[7] = "0x0005" ; Eagle
  Animal[8] = "0x0006" ; Small Birds
  Animal[9] = "0x00D0" ; Chicken
  dim Rune[14]
  Rune[1] = "0x00000000"
  Rune[2] = "0x00000000"
  Rune[3] = "0x00000000"
  Rune[4] = "0x00000000"
  Rune[5] = "0x00000000"
  Rune[6] = "0x00000000"
  Rune[7] = "0x00000000"
  Rune[8] = "0x00000000"
  Rune[9] = "0x00000000"
  Rune[10] = "0x00000000"
  Rune[11] = "0x00000000"
  Rune[12] = "0x00000000"
  Rune[13] = "0x00000000"
  Rune[14] = "0x00000000"
  repeat
    for r = 1 to 14
      repeat
        Deljournal(msg)
        uo.cast("Recall", Rune[r])
        timer = uo.timer() + 25
        repeat
          wait(120)
        until uo.injournal(msg) or (not uo.injournal(msg) and timer <= uo.timer())
      until not uo.injournal(msg)
      wait(500)
      repeat
        uo.findtype("0x2006", "-1", "ground")
        if uo.findcount() then
          uo.ignore("finditem")
          wait(150)
        end if
      until not uo.findcount()
      for i = 1 to 9
        repeat
          while uo.getglobal("Pause") == "1"
            wait(120)
          wend
          uo.findtype(Animal[i], "-1", "ground")
          if uo.findcount() then
            if uo.getname("finditem") <> "" then
              animalfind = 1
              corpsefind = 0
              if uo.getdistance("finditem") > 1 then
                myposx = uo.getx("finditem")
                myposy = uo.gety("finditem")
                Walker(myposx, myposy, 1)
              end if
              uo.usetype("weapon") ;0x13FE
              wait(500)
              uo.attack("finditem")
              repeat
                uo.getstatus("finditem")
                wait(150)
                if uo.getdistance("finditem") > 1 then
                  myposx = uo.getx("finditem")
                  myposy = uo.gety("finditem")
                  Walker(myposx, myposy, 1)
                end if
              until uo.dead() or uo.gethp("finditem") == 0
              repeat
                uo.findtype("0x2006", "-1", "ground")
                if uo.findcount() then
                  corpsefind = 1
                  corpseid = uo.getserial("finditem")
                  wait(2000)
                  uo.waittargetobject(corpseid)
                  uo.usetype("0x0EC3") ; Cleaver
                  wait(500)
                  uo.findtype("0x1078", "-1", corpseid)
                  if uo.findcount() then
                    uo.moveitem("finditem", "0", "backpack")
                    wait(1000)
                    uo.waittargettype("0x1078")
                    uo.usetype("0x0F9E") ; Sissors
                    wait(500)
                  end if
                  uo.findtype("0x1BD1", "-1", corpseid)
                  if uo.findcount() then
                    uo.moveitem("finditem", "0", "backpack")
                    wait(1000)
                  end if
                  uo.ignore(corpseid)
                else
                  wait(150)
                end if
              until corpsefind == 1
            else
              animalfind = 1
              uo.ignore("finditem")
            end if
          else
            animalfind = 0
            wait(150)
          end if
        until animalfind == 0 or uo.dead()
      next
      wait(500)
    next
    Home()
    Alarm()
    return
  until uo.dead()
end sub

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

_________________
CodeSweeper


Top
   
PostPosted: 2013-06-05 22:47:57 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Все вопросы сняты - разобрался с ходилкой. Били ошибки с таймерами, неправильно определялось расстояние до обьекта, автор зачем-то сделал изменение значений направления чара инжекта (0-7), под свои (1-8), это не переделывал но пришлось придумывать как реагировать на поворот вместо того чтобы просто сравнить. Поюзал нормально, пока ни одной петли не нарезал, подходит довольно точно к объекту без множества лишних шагов, так же нормально работает количество шагов которое вы хотите делать за раз и таймер на шаг срабатывает хорошо. Выложу в соответсвующей теме. Надеюсь больше косяков не обнаружится :evil:

_________________
CodeSweeper


Top
   
PostPosted: 2013-06-12 11:17:15 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Обьясните как сделать скрипт на скупку товара, точнее как именно работать с меню списка товаров, это не гамп, я так понимаю это контейнер и нужный товар в нем нужно искать по типу? И как происходит выбор товара и его преобретение в меню.

_________________
CodeSweeper


Top
   
PostPosted: 2013-06-12 11:23:21 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
И можно ли определять цену товара?

_________________
CodeSweeper


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 63 posts ]  Go to page Previous 1 2 3 4 Next

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited