Yoko

All sides of Injection
It is currently 2024-04-19 13:15:27

All times are UTC+02:00




Post new topic  Reply to topic  [ 9 posts ] 
Author Message
PostPosted: 2012-02-27 17:54:42 
Offline

Joined: 2012-02-10 15:17:10
Posts: 53
Code:
uo.findtype('0x0f39', -1, 2) # search Shovel into backpack
            If UO.FindCount() > 0 Then
                UO.Useobject(UO.GetSerial('finditem'))
                uo.Print('Shovel is found')
            else
                uo.findtype('0x0e85', -1, 2) # search Pickaxe into backpack
                If UO.FindCount() > 0 Then
                    UO.Useobject(UO.GetSerial('finditem'))
                    uo.Print('Pickaxe is found')
                endif
            endif   


Ищем лопату, если находим - юзаем. Если нет - ищем кирку и юзаем ее, если находим. Может кому пригодится.


Top
   
PostPosted: 2012-02-27 20:53:37 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
лопат и кирок обычно 2 вида - перевернутые имеют разные типы.
Я пользуюсь использованием по типу предмета
Code:
      if UO.Count(Shovel1) then
         UO.UseType(Shovel1)
      else
         if UO.Count(Shovel2) then
            UO.UseType(Shovel2)
         else
            if UO.Count(Pickaxe1) then
               UO.UseType(Pickaxe1)
            else
               if UO.Count(Pickaxe2) then
                  UO.UseType(Pickaxe2)
               else
                  uo.charprint(printcolour, 'Нечем копать!')
                  MyTerminate()
               endif
            endif
         endif
      endif

для топоров:
Code:
         if UO.Count(axe1) || UO.Count(axe2) then
            if UO.Count(axe1) then
               UO.UseType(axe1)
            else
               UO.UseType(axe2)
            endif
         else
            uo.charprint(printcolour, 'Нечем рубить!')
            MyTerminate()
         endif


PS
UO.Useobject(UO.GetSerial('finditem')) я уже говорил - масло масленное
UO.Useobject('finditem') достаточно

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


Top
   
PostPosted: 2012-02-27 22:38:11 
Offline

Joined: 2012-02-10 15:17:10
Posts: 53
Штука в том, что тут у тебя проверка идет при каждом копании.. а я изначально хотел в объект (или переменную) сохранить айдишник вещи (ищем 1 раз, потом всегда используем то, что обнаружили).

Если кому понадобится, айдишники на ДВР (врядли они меняются на других шардах, но мое дело предупредить :)
0x0e85 - кирка, черенком вправо
0x0e86 - кирка, черенком влево
0x0f39 - лопата, черенком вправо

второй лопаты нету, но смею предположить, что айдишник у нее 0x0f40


Top
   
PostPosted: 2012-02-27 22:58:34 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
на некоторых шардах инструменты имеют привычку ломаться или, ещё хуже портится.


Top
   
PostPosted: 2012-02-27 23:05:20 
Offline

Joined: 2012-02-10 15:17:10
Posts: 53
То уже другое - я именно имел в виду вынести определение инструмента в отдельную функцию, которая присваивает айди инструмента в определенную переменную, которую потом юзает весь остальной код и ему пофиг, лопата там или нет.
А если инструмент сломался - можно опять вызвать эту же функцию, дабы она закинула туда новую лопату.
Итого, количество вызовов: 1 раз при старте + 1 за каждую сломаную вещь = 2-3 раза в день (шмотки, вроде, ломаются редко), вместо того, чтоб определять это перед каждым использованием. Современным компам, конечно же, пофиг, но всеже :)


Last edited by Nearga on 2012-02-27 23:39:42, edited 1 time in total.

Top
   
PostPosted: 2012-02-27 23:11:04 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Не бейте меня ногами - я был бухой когда это писал:

Code:
VAR Shovel1   = '0x0F39'
VAR Shovel2   = '0x0F3A'
VAR Pickaxe1   = '0x0E85'
VAR Pickaxe2   = '0x0E86'
VAR axe1   = '0x0F43'
VAR axe2   = '0x0F44'
VAR FPole1   = '0x0DBF'
VAR FPole2   = '0x0DC0'

sub Mining()
   UO.SetGlobal('action','1')
   UO.SetGlobal('MaxRange','2')
   extraction()
end sub
sub Lumber()
   UO.SetGlobal('action','2')
   UO.SetGlobal('MaxRange','3')
   extraction()
end sub
sub Fishing()
   UO.SetGlobal('action','3')
   UO.SetGlobal('MaxRange','6')
   extraction()
end sub

; тут тело скрипта в котором присутствует следующее:

UO.WaitTargetTile(Tiles, mX+X, mY+Y, mZ)
Tools()

; ну и так далее...

Sub Tools()
   if val(uo.GetGlobal('action')) == 1 then
      if UO.Count(Shovel1) then
         UO.UseType(Shovel1)
         return
      else
         if UO.Count(Shovel2) then
            UO.UseType(Shovel2)
            return
         else
            if UO.Count(Pickaxe1) then
               UO.UseType(Pickaxe1)
               return
            else
               if UO.Count(Pickaxe2) then
                  UO.UseType(Pickaxe2)
                  return
               else
                  uo.charprint(printcolour, 'Нечем копать!')
                  MyTerminate()
               endif
            endif
         endif
      endif
   else
      if val(uo.GetGlobal('action')) == 2 then
         if UO.Count(axe1) || UO.Count(axe2) then
            if UO.Count(axe1) then
               UO.UseType(axe1)
               return
            else
               UO.UseType(axe2)
               return
            endif
         else
            uo.charprint(printcolour, 'Нечем рубить!')
            MyTerminate()
         endif
      else
         if UO.Count( FPole1 ) || UO.Count( FPole2 ) then
            if UO.Count( FPole1 ) then
               UO.UseType( FPole1 )
               return
            else
               UO.UseType( FPole2 )
               return
            endif
         else
            uo.charprint(printcolour, 'Нечем ловить рыбу!')
            MyTerminate()
         endif
      end if
   end if
end sub

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


Top
   
PostPosted: 2012-02-27 23:46:40 
Offline

Joined: 2012-02-10 15:17:10
Posts: 53
Универсальный солдат, епт :)

Может рыбу ловить, может копать и может не копать :)


Top
   
PostPosted: 2012-02-28 06:59:22 
Offline
Expert!
User avatar

Joined: 2006-02-07 08:51:40
Posts: 1348
Location: г. Старый Оскол
Nearga wrote:
Если кому понадобится, айдишники на ДВР (врядли они меняются на других шардах, но мое дело предупредить :)
0x0e85 - кирка, черенком вправо
0x0e86 - кирка, черенком влево
0x0f39 - лопата, черенком вправо


Вообще то это не ИД, а типы предметов. Это разные вещи и путать их не нужно.


Top
   
PostPosted: 2012-02-28 07:55:58 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Code:
VAR Shovel1   = '0x0F39'
VAR Shovel2   = '0x0F3A'
VAR Pickaxe1   = '0x0E85'
VAR Pickaxe2   = '0x0E86'
VAR axe1   = '0x0F43'
VAR axe2   = '0x0F44'
VAR FPole1   = '0x0DBF'
VAR FPole2   = '0x0DC0'

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

PS после 39 идет не 40 а 3A. 16-тиричная система. :wink:

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 9 posts ] 

All times are UTC+02:00


Who is online

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