Yoko

All sides of Injection
It is currently 2024-04-18 14:50:34

All times are UTC+02:00




Post new topic  Reply to topic  [ 31 posts ]  Go to page 1 2 Next
Author Message
PostPosted: 2011-11-16 12:16:21 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
решил весь автолоад прогнать через http://nmy.id.lv/codesweeper.htm, прибраться так сказать.

так вот там есть 1 мой скрипт, который давно составлялся. Сам скрипт работает и ошибок не вылетает, но codesweeper ругается на структуру скрипта, может я что-то не так синтаксис сделал?
не пугайтесь объема скрипта, хоть он и большой, но в нем просто повторяются блоки.


описание скрипта:
расставляет необходимые нам предметы по координатам в бекпаке, если нет предмета к расстановке, то переходит следующему пункту.

Code:
sub Sort_new()
   DIM R[1]
   DIM D[1]
   DIM B[1]
   DIM Z[1]
   var c
   R[1] = 0x0A3E # Ящик с регами
   D[1] = 0x14FB # отмычки
   B[1] = 0x0EFA # книга магии
   Z[1] = 0x0F9E # ножницы
   # Ящик с регами
   wait(100)
   for c=1 to 1
      UO.FindType(R[c],"0","backpack")
      if UO.FindCount()>0 Then
         UO.MoveItem("finditem","0","backpack","150","40","0")
         wait(100)
      Endif
      wait(100)
      # Отмычки
      wait(100)
      for c=1 to 1
         UO.FindType(D[c],"0","backpack")
         if UO.FindCount()>0 Then
            UO.MoveItem("finditem","0","backpack","65","40","0")
            wait(100)
         Endif
         wait(100)
         # Книга магии
         wait(100)
         for c=1 to 1
            UO.FindType(B[c],"0","backpack")
            if UO.FindCount()>0 Then
               UO.MoveItem("finditem","0","backpack","50","40","0")
               wait(100)
            Endif
            wait(100)
            # Ножницы
            wait(100)
            for c=1 to 1
               UO.FindType(Z[c],"0","backpack")
               if UO.FindCount()>0 Then
                  UO.MoveItem("finditem","0","backpack","95","40","0")
                  wait(100)
               Endif
               wait(100)

               # Rune
               wait(100)
               UO.FindType('0x1F14','0x048D',"0","backpack")
               if UO.FindCount()>0 Then
                  UO.MoveItem("finditem","0","backpack","130","43","0")
                  wait(100)
               Endif
               wait(100)
               uo.print(' -= Done =- ')
            End sub


Top
   
PostPosted: 2011-11-16 12:57:47 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
Не закрытые for
Пример
Code:
For a = 1 to 3
  b = b + 1
Next


Top
   
PostPosted: 2011-11-16 13:01:55 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Зашибись. Обманул программу :lol:
В структуре скрипта ошибка которую указали выше.
НО она не КРИТИЧНА так как переменная не перещелкивается - это частный случай, синоним var :mrgreen:

Вобще весь скрипт можно заменить на
Code:
sub sort()
   uo.exec ("moveitem '_0x0EFA' '0' 'backpack' 25 20 0");spellbook
   uo.exec ("moveitem '_0x0F9E' '0' 'backpack' 40 20 0");Silver Scissors
   uo.exec ("moveitem '_0x1012' '0' 'backpack' 25 20 0");Key
   uo.exec ("moveitem '_0x1012' '0' 'backpack' 25 23 0");Key
   uo.exec ("moveitem '_0x0E9B' '0' 'backpack' 50 20 0");ступка
   uo.exec ("moveitem '0x40380220' '0' 'backpack' 170 20 0");руна
   uo.exec ("moveitem '0x40F03AEC' '0' 'backpack' 150 20 0");руна
   uo.exec ("moveitem '0x40F03791' '0' 'backpack' 160 20 0");руна
   uo.exec ("moveitem '^0x0A3E' '0' 'backpack' 160 170 0");сундук
end sub
(старый вариант - новый не нашел :roll: )

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


Top
   
PostPosted: 2011-11-16 13:32:09 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
ZeroDX wrote:
Не закрытые for
Пример
Code:
For a = 1 to 3
  b = b + 1
Next


спасибо, теперь все красиво :)


Mirage wrote:
uo.exec ("moveitem '_0x0EFA' '0' 'backpack' 25 20 0");spellbook


Зашибись, опять двадцать пять.
весь мой гемор в сотню строчек уместил в 1. :lol:
спасибо, это еще лучше


Top
   
PostPosted: 2011-11-16 13:44:44 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
хотя не, оно по цвету не ищет :(


Top
   
PostPosted: 2011-11-16 15:18:36 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Только что сам понял что скрипт работает с любым цветом не различая заданного :mrgreen:
Да и фиг с ним.
Code:
               UO.FindType('0x1F14','0x048D',"0","backpack")
               if UO.FindCount()>0 Then
                  UO.MoveItem("finditem","0","backpack","130","43","0")
                  wait(100)
               Endif

ниже моих строк добавить и все.

А вот нашел нонешний вариант:
Code:
sub sort()
   uo.moveitem ('_0x0EFA', '0', 'backpack', 25, 20, 0);spellbook
   uo.moveitem ('_0x0F9E', '0', 'backpack', 40, 20, 0);Silver Scissors
   uo.moveitem ('_0x1012', '0', 'backpack', 25, 20, 0);Key
   uo.moveitem ('_0x1012', '0', 'backpack', 25, 23, 0);Key
   uo.moveitem ('_0x0E9B', '0', 'backpack', 50, 20, 0);ступка
   uo.moveitem ('^0x0A3E', '0', 'backpack', 160, 170, 0);сундук
   uo.moveitem ('0x40380220', '0', 'backpack', 170, 20, 0);руна
   uo.moveitem ('0x40F03AEC', '0', 'backpack', 150, 20, 0);руна
   uo.moveitem ('0x40F03791', '0', 'backpack', 160, 20, 0);руна
end sub
Пофигу на цвет, руны по ID задаются :mrgreen:

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


Top
   
PostPosted: 2011-11-16 15:50:37 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
Это всё ньюби вещи? Если руны слутают - будет не очень удобно каждый раз залезать в скрипт и править id
Можно же сделать что-то универсальное и громоздкое в 300 строк, и не парится с id. Если принципиально какая руна где лежит - можно сортировать по имени.


Top
   
PostPosted: 2011-11-17 08:16:07 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
удобнее покрас использовать для этого, поиск по цвету и нужен ))


Last edited by Gromiz on 2011-11-17 13:22:26, edited 1 time in total.

Top
   
PostPosted: 2011-11-17 10:27:38 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
на вкус и цвет как говорится. Просто мне не очень понятно - зачем рунки сортировать если они покрашены и зачем красить если они отсортированы? :|

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


Top
   
PostPosted: 2011-11-18 11:38:10 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
я просто еще 4 вида бутылок "подшиваю" в сумке, а они отличаются, только цветом.
блиин, жаль в эту строчку не добавляется цвет, вообще шикарно было бы


Top
   
PostPosted: 2011-11-18 21:15:42 
Offline

Joined: 2007-07-07 13:14:01
Posts: 90
вторая цифра это цвет.


Top
   
PostPosted: 2011-11-18 21:43:13 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
вторая цифра это количество


Top
   
PostPosted: 2011-11-18 21:51:32 
Offline

Joined: 2007-07-07 13:14:01
Posts: 90
возможно я ошибся.
вывод тут один - пользуйтесь универсальными ф-циями с параметрами.


Top
   
PostPosted: 2011-11-20 11:33:42 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
хмм, скрипт не всегда с первого раза расставляет итемы по координатам :(
иногда приходиться запускать по 2-3 раза, чтобы все итемы расставлял.

никто не сталкивался и в чем может быть проблема? (про скрипт из 1го поста)


Top
   
PostPosted: 2011-11-20 13:51:11 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
Он их не находит или просто не передвигает? Если второй вариант, то на сервере может стоять защита от быстрого перемещения итемов
+1 :roll: Увеличить паузу до 500-700 мсек ©Mirage


Last edited by ZeroDX on 2011-11-21 16:33:01, edited 2 times in total.

Top
   
PostPosted: 2011-11-21 13:55:05 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
не передвигает, в паке они есть.
увеличил задержку - полет нормальный.


Top
   
PostPosted: 2011-11-21 22:53:12 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
Как вариант...
Code:
sub perekladka3()
  var i, moveDelay = 1100
  Dim Slot[8]
    Slot[0] = '0x0EFA -1 25 20 0 '    ;SpellBook
    Slot[1] = '0x1012 -1 35 20 0 '    ;Key
    Slot[2] = '0x1012 -1 38 20 0 '    ;Key
    Slot[3] = '0x0E9B -1 50 20 0 '    ;Mortar
    Slot[4] = '0x1F14 -1 140 20 0 '   ;Rune
    Slot[5] = '0x0F7B -1 150 20 0 '   ;Rune
    Slot[6] = '0x0F7B -1 160 20 0 '   ;Rune
    Slot[7] = '0x0F7B -1 170 20 0 '   ;Rune
  For i = 0 to 7
    UO.FindType(GetWord(Slot[i], 1, ' '), GetWord(Slot[i], 2, ' '), 'backpack')
    If UO.FindCount() then
      UO.Print(UO.GetSerial('finditem'))
      UO.MoveItem('finditem', -1, 'backpack', GetWord(Slot[i], 3, ' '), GetWord(Slot[i], 4, ' '), GetWord(Slot[i], 5, ' '))
      UO.Ignore('finditem')
      Wait(moveDelay)
    Endif
  Next
  UO.IgnoreReset()
Endsub

Sub GetWord(str, num, div)
  var tmpst, i, dlin, kol = 0, start = 0
  dlin = len(str)
  For i = 0 to dlin - 1
    If mid(str, i, 1) == div or i == dlin - 1 then
      kol = kol + 1
      If kol == num then
        tmpst = mid(str, start, i - start)
        Return tmpst
       else
        While mid(str, i, 1) == div
          i = i + 1
        Wend
        If kol == num - 1 then
          start = i
        Endif
      Endif
    Endif
  Next
  tmpst = ''
  Return tmpst
Endsub


Строки массива:
1) Тип 2) Цвет 3-5) Координаты в паке
В конце строки обязательно должен стоять пробел

В скрипте есть гетворд эдреда

p.s. когда тестил, вместо типов рун засунул тип блуд моса... работает =)
pss с дрв постоянно дискает


Top
   
PostPosted: 2011-11-21 23:09:58 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Вот ты черт - я забыл про getword... И главное ведь когда я спрашивал про массив с элементом в виде координат "X Y Z" никто не подсказал.
ZeroDX респект и уважуха за вариант.
Ушел переписывать свои координатные скрипты :roll:

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


Top
   
PostPosted: 2011-11-21 23:15:18 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
Этот гетворд немного подделан, в оригинале нельзя было указать разделитель. Я не помню зачем я его переделал...
Вспомнил.. что-то там связанное с названиями скиллов.
Code:
var string = 'Animal Lore@Animal Taming@'
  UO.Print(GetWord(string, 1, '@'))
Endsub


Top
   
PostPosted: 2011-11-22 06:56:53 
Offline

Joined: 2007-07-07 13:14:01
Posts: 90
Ненормальные люди, вы действительно считаете, что ф-ция гетворд работает быстрее чем простая ф-ция с аргументами?


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 24 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