Yoko

All sides of Injection
It is currently 2025-10-14 21:07:20

All times are UTC+02:00




Post new topic  Reply to topic  [ 8 posts ] 
Author Message
PostPosted: 2004-09-01 23:38:41 
Offline
User avatar

Joined: 2004-05-11 12:27:22
Posts: 54
Почему решил выложить, несмотря на то, что скрипт с таким предназначением уже имеется в разделе "Scripts!" ?
А потому, что мой скрипт работает гораздо быстрее и в плавке, и в збрасывании ингов на землю при перегрузе. Хоть и кода занимает немного больше, но для сравнения можете запсутить скрипт мой и EdReda (на компетеность которого я ни в коем случае не позарился :) ), и сравнить воочию.
В настройке практически не нуждается. Единственное что может быть стоит поменять - это формулу максимального веса.

Code:
####################################
#############Smelting by evil_Gremlin, v 1.1
sub smelt_ground()
var r
var i,k=0
var max =((UO.Str*4)+30) #Calculating of max weight based on character strenght
DIM ore[4]
ore[1]=0x19B8
ore[2]=0x19B9
ore[3]=0x19BA
ore[4]=0x19B7
while k==0
r=0
If UO.Weight>=max-30 then
clean()
endif

for i=1 to 4
UO.FindType(ore[i],-1,'ground')
   If UO.FindCount()>0 then
      r=0
      UO.Exec('moveitem finditem 1')
            repeat
               wait(50)
          until Uo.ContainerOf('finditem')==UO.Getserial('backpack')
          UO.Useobject('finditem')
   else
   #UO.Print('Not Found')
   r=r+1
   endif
next
if r==4 then
k=1
Uo.Print('No ore to smelt')
endif
wend
endsub
#############Ingots dropping sub
sub Clean()
var i,t,l,col
DIM type[5]
type[1]=0x1BEF
type[2]=0x1BF5
type[3]=0x1BE3
type[4]=0x1BE9
UO.Print('Overload. Cleaning')
col=0
repeat
col=0
for t=1 to 4
Uo.FindType(type[t],'-1','backpack')
   If UO.FindCount()>0 then
   UO.Print('Found')
   l=0
      Uo.Exec('drophere finditem')
         repeat
         wait(100)
         until Uo.ContainerOf('finditem')<>Uo.GetSerial('backpack')
   else
   col=col+1
   endif
next
until col>=4
UO.Print('Cleaned....')
end sub

+
в версии 1.1 убрал ожидание мессаги в журнале, тем самым ускорив скрипт минимум на 50мс ;)

_________________
Каждый манчкин в старости мечтает иметь кресло-качалку ;)


Last edited by evil_Gremlin on 2004-09-03 01:41:13, edited 1 time in total.

Top
   
 Post subject:
PostPosted: 2004-09-02 08:37:35 
Offline
Expert!
User avatar

Joined: 2004-05-31 09:31:51
Posts: 838
Сделал бы лучше сброс в сундучок.Просто на некоторых шардах быстро пропадает с пола вещи ........Да и удобнее проссто ))

_________________
Все просто.
BETEPAH ™


Top
   
 Post subject:
PostPosted: 2004-09-03 01:36:57 
Offline
User avatar

Joined: 2004-05-11 12:27:22
Posts: 54
ну переплавляют-то в доме скорее всего, если берут с пола :)
тем более, так же на многих шардах в контейнерах есть ограничение веса\итемов.

_________________
Каждый манчкин в старости мечтает иметь кресло-качалку ;)


Top
   
 Post subject:
PostPosted: 2004-09-03 16:30:05 
Offline
Site Admin
User avatar

Joined: 2004-04-03 16:49:38
Posts: 1964
чем больше вариантов скриптов выложено, тем лучше.
чтото проще, а чтот сложнее, чтото надёжнее а чтото универсальнее..
у конечного пользователя появляется выбор и простор для мысли


Top
   
 Post subject:
PostPosted: 2004-09-03 17:22:54 
Offline
Expert!
User avatar

Joined: 2004-05-31 09:31:51
Posts: 838
Yoko wrote:
чем больше вариантов скриптов выложено, тем лучше.
чтото проще, а чтот сложнее, чтото надёжнее а чтото универсальнее..
у конечного пользователя появляется выбор и простор для мысли


Неучел.........исправлюсь ))

_________________
Все просто.

BETEPAH ™


Top
   
 Post subject:
PostPosted: 2005-01-28 12:10:29 
Offline

Joined: 2004-11-21 21:45:20
Posts: 30
Code:
Uo.FindType(type[t],'-1','backpack') 


In my shard (UO Sphere 0.55i), you must specify color of ingots in order to find with findtype, works only with types in yours?

Also I don't know what's this for:

Code:
Uo.ContainerOf('finditem')==UO.Getserial('backpack')
          UO.Useobject('finditem')


Top
   
 Post subject:
PostPosted: 2005-06-01 09:00:17 
Offline

Joined: 2005-01-20 02:46:13
Posts: 1
А у нас на Шарде, после 30.0 скилл в домах и на ГЗ растет на 50 процентов сложнее, и хотелось бы ложить инготи в сундук !


Top
   
 Post subject:
PostPosted: 2005-06-01 22:55:44 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Счас, где-то валяется ведь, я ведь когда-то переделал свой на сундук... 8)

Code:
#####################################################################
; Training of Mining, ver 2.00b, (c) Edred
; 2.00b - добавляем сундук, откуда берется руда по 100 шт. и кидается
;         под ногм. Дальше как было. Заодно все правлю и переписываю
;         более правильно :)
sub Smelt()
   VAR Sunduk = '0x40437910'         ; Сериал сундука с рудой
   VAR Ruda1 = '0x19B9'            ; Тип руды
   VAR Ruda2 = '0x19B8'            ; Тип руды - 3 шт.
   VAR Ruda3 = '0x19BA'            ; Тип руды - 2 шт.
   VAR Ruda4 = '0x19B7'            ; Тип руды - 1 шт.
   VAR Ing1 = '0x1BEF'               ; Тип ингов металлов
   VAR Ing2 = '0x1BF2'               ; Тип ингов строймата
   VAR MaxVes = 200               ; Максимальный вес пака
   While UO.SkillVal( 'Mining' ) < 1000
      repeat   
         UO.Findtype( Ruda1, '-1', '1' )      ; Ищем руду на земле
         If UO.Findcount() == 0 Then
            UO.Findtype( Ruda2, '-1', '1' )
            If UO.Findcount() == 0 Then
               UO.Findtype( Ruda3, '-1', '1' )
               If UO.Findcount() == 0 Then
                  UO.Findtype( Ruda4, '-1', '1' )
                  If UO.Findcount() == 0 Then
                     If GetOre( Sunduk, Ruda1 ) == 0 Then
                        UO.Print( "No more ore for smelt..." )
                        Return
                     Endif
                  Endif
               Endif
            Endif
         Endif
      until UO.FindCount() > 0
      UO.Grab( '1', 'finditem' )
      Wait(500)
      CheckLag()
      UO.UseType( Ruda4 )            ; переплавляем
      Wait(500)
      CheckLag()
      If UO.Weight > MaxVes Then
         ; Максимальный вес пака превышен - разгружаемся
         UO.Findtype( Ing1 )
         If UO.Findcount() > 0 Then
            UO.MoveItem( 'finditem', '0', Sunduk )
            Wait(500)
            CheckLag()
         Endif
         UO.Findtype( Ing2 )
         If UO.Findcount() > 0 Then
            UO.MoveItem( 'finditem', '0', Sunduk )
            Wait(500)
            CheckLag()
         Endif
      Endif
   Wend
endsub

Sub GetOre( cont, typ )
   ; Взять из сундука 100 руды и бросить под ноги.
   ; Если руды нет - возвращаем 0, если есть 1
   UO.FindType( typ, '-1', cont )
   If UO.FindCount() == 0 Then
      return 0
   Else
      UO.Grab( '100', 'finditem' )
      wait(500)
      CheckLag()
      UO.FindType( typ )
      If UO.FindCount() == 0 Then
         UO.Print( 'Idiot! Your script is fuck!' )
      Else
         UO.Drophere( 'finditem' )
         wait(500)
         CheckLag()
      Endif
   Endif
   return 1
endsub


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 39 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:  
Powered by phpBB® Forum Software © phpBB Limited