Yoko

All sides of Injection
It is currently 2025-12-02 06:03:13

All times are UTC+02:00




Post new topic  Reply to topic  [ 7 posts ] 
Author Message
PostPosted: 2006-06-18 01:53:27 
Offline

Joined: 2006-03-10 00:19:11
Posts: 265
Location: http://drw.ru/
ОСТОРОЖНО, В СЛЕДУЮЩИХ СКРИПТАХ ИСПОЛЬЗУЕТСЯ ONGUMP, У НЕКОТОРЫХ ЭТО ПРИВОДИТ К КРАШУ.
1. РЕКОЛ ПО РУНБУКЕ. Скрипт не мой, взял у кого-то на
форуме, извиняюсь за отсутвие копирайта, впадлу искать...
ИСПОЛЬЗОВАНИЕ: Recall( ID_РУНБУКИ, НОМЕР_РУНЫ)
Code:
sub Recall(idrb,nrune) 
Dim gumpreturn[10]
gumpreturn[1]="0x0015"
gumpreturn[2]="0x0021"
gumpreturn[3]="0x002E"
gumpreturn[4]="0x003A"
gumpreturn[5]="0x0040"
gumpreturn[6]="0x0049"
gumpreturn[7]="0x0058"
gumpreturn[8]="0x005E"
gumpreturn[9]="0x0401"
UO.exec('resend')
UO.UseObject('backpack')
   uo.useobject(idrb)
   uo.exec("ongump anygump "+gumpreturn[nrune])
endsub

2. ГЕЙТ ПО РУНБУКЕ Игнорит все руны в бекпаке чтоб руну выбрать правильно, достает руну с указанным номером из рунбуки, кастует на неё гейт(кастует до тех пор пока всё таки гейт не откроется) и засовывает руну обратно:
ВНИМАНИЕ: В скрипте используются дополнительные функции DynWait и CastSpell, которые будут изложены далее
ИСПОЛЬЗОВАНИЕ: BookGate( ID_РУНБУКИ, НОМЕР_РУНЫ)
Code:
#RUNEBOOK GATE. © pro aka to4a.
sub BookGate(idbook,n)
 if UO.Targeting() then
  UO.CancelTarget()
 endif
 var cast='no'
 var rune='0x1F14' #Rune Type
 DIM RUNEN[10]
 runen[1]='0x000C'
 runen[2]='0x000D'
 runen[3]='0x000E'
 runen[4]='0x000F'
 runen[5]='0x0010'
 runen[6]='0x0011'
 runen[7]='0x0012'
 runen[8]='0x0013'
 runen[9]='0x0014'
 UO.FindType(rune)
 for var i=0 to UO.FindCount()
  UO.FindType(rune)
  UO.Ignore('finditem')
 next
 UO.Print('All Runes in backpack added to ignore list...')
 UO.Set('quiet','1')
 UO.OnGump('anygump',runen[n])
 UO.UseObject(idbook)
 UO.Set('quiet','0')
 DynWait('You put','This is a free','@','@','@')
 if UO.InJournal('This is a free') then
  UO.Print('В этом слоте нет руны!')
  goto end
 endif
 UO.Print('Rune number '+str(n)+' removed...')
 UO.FindType(rune)
 var BookRune=UO.GetSerial('finditem')
 UO.Print('Removed rune ID: '+BookRune)
 UO.WaitTargetObject(BookRune)
 UO.Print('Casting Gate Travel')
 repeat
  cast=CastSpell('Gate Travel',0)
  wait(50)
 until cast=='success'
 UO.WaitTargetObject(BookRune)
 UO.Set('quiet','1')
 UO.OnGump('anygump','0x000B')
 UO.UseObject(idbook)
 UO.Set('quiet','0')
 UO.Print('Gate Travel Casted successfully, rune added back to runebook')
 end:
endsub

3. USER INTERFACE ДЛЯ ЭТИХ ФУНКЦИЙ Так как эти функции требуют ввода агрументов, а инжект к сожалению не умеет получать аргументы из консольного вида, то для этих двух функций я написал UI, который использует ASM.
Который, в свою очередь, можно взять тут.
Правда этот UI тоже использует 1 аргумент, но 2 ф-ции для запуска UI с аргументом сделать не проблема.
ВНИМАНИЕ: В скрипте используются дополнительные функции DynWait, CastSpell, Normalise, Print, которые будут изложены далее
ИСПОЛЬЗОВАНИЕ: UI( GATE_SWITCH ). Аргумент должен быть 1 для того чтобы открыть гейт. 0 - для того чтобы реколится.

Code:
#User Interface для гейта\рекола. © pro aka to4a.
Sub UI(gate)
 UO.Set('injectecho','1')
 if gate<>1 and gate<>0 then
  UO.Print('Ошибка! Агрумент gate должен быть либо 1, либо 0')
  UO.Print('        1. - для того чтобы открыть гейт')
  UO.Print('        0. - для того чтобы реколится')
  goto end
 endif
 UO.Set('quiet','1')
 DIM buks[10],B[10],R[10]
 var i,j=0,choise="nothing",runebook
 booksel:
 for i=0 to 10
  buks[i]=0x00000000
 next
 UO.IgnoreReset()
 UO.FindType('0x0EFA','0x0510','backpack')
 for i=1 to uo.findcount()+1
  UO.FindType('0x0EFA','0x0510','backpack')
  buks[i]=UO.GetSerial('finditem')
  UO.Click('finditem')
  UO.Ignore('finditem')
  j=i
 next
 if j==0 then
  Print('РУНБУКИ НЕ НАЙДЕНЫ')
  goto end
 endif
 Print('Выберите рубуку и нажмите [ENTER] или [ESC] для отмены:')
 for i=1 to 10
  B[i]=normalise(UO.GetName(buks[i]))
 next
 choise=UO.asmInputList("'Выберите буку:'"," "+B[1]+";"+B[2]+" "+B[3]+";"+B[4]+" "+B[5]+";"+B[6]+" "+B[7]+";"+B[8]+" "+B[9]+";"+B[10]+" ")
 while choise=="nothing"
  wait(50)
 wend
 if choise==0  then
  Print('======Gate Travel\Recall Canceled======')
 goto end
 endif
  runebook=buks[choise]
 UO.OnGump('anygump','(0')
 UO.UseObject(runebook)
 choise='nothing'
 DynWait('Gump Replied','@@@','@@@','@@@','@@@')
 for i=1 to 9
  R[i]=normalise(UO.LastGump('text',i))
 next
 Print('Выберите руну и нажмите [ENTER]')
 choise=UO.asmInputList("'Выберите руну:'"," "+R[1]+";"+R[2]+" "+R[3]+";"+R[4]+" "+R[5]+";"+R[6]+" "+R[7]+";"+R[8]+" "+R[9]+";'Назад'")
 while choise=="nothing"
  wait(50)
 wend
 if choise==10 then
  choise="nothing"
  goto booksel
 endif
 if choise==0 then
  UO.Print('Gate Travel Canceled')
  goto end
 endif
 if gate==1 then
  BookGate(runebook,choise)
 endif
 if gate==0 then
  Recall(runebook,choise)
 endif
 end:
  UO.IgnoreReset()
  UO.Set('quiet','0')
endsub

4. ДОПОЛНИТЕЛЬНЫЕ ФУНКЦИИ. Которые используются в вышеизложенных скриптах.
CASTSPELL функция кастования, если нехватает маны пьет манку, после каста возвращает статус(fizzle\success\noregs\notarg) что делает её удобной в использовании в других скриптах, возможностью включения\выключения маскировки каста(отправка 3 пустых строки сразу за кастом)
ВНИМАНИЕ: требуется дополнительная функция WaitManaChange
ИСПОЛЬЗОВАНИЕ: CastSpell( ИМЯ_СПЕЛЛА, MASK_SWITCH), с именем спелла - все понятно, второй аргумент: 1 - для того чтобы маскировать каст. 0 - не маскировать. НЕ ЗЛОУПОТРЕБЛЯТЬ МАСКИРОВКОЙ, КАРАЕТСЯ ЗАКОНОМ ПО СТАТЬЕ "ФЛУД"
Code:
Sub CastSpell(spell,mask)
   cast:
    UO.DeleteJournal()
    UO.Cast(spell)
    repeat
     wait(10)
    until UO.InJournal('An') or UO.InJournal('Ex') or UO.InJournal('Por') or UO.InJournal('Lor') or UO.InJournal('Des') or UO.InJournal('Rel') or UO.InJournal('You lack')
    if mask==1 then
     uo.fontcolor('0x0000')
     uo.msg("        ")
     uo.fontcolor('0x0000')
     uo.msg("        ")
     uo.fontcolor('0x0000')
     uo.msg("        ")
    endif
    if UO.InJournal('You lack') then
     if UO.InJournal('sufficient mana') then
      Mana()
      goto cast
     else
      UO.Print('КАСТ НЕВОЗМОЖЕН - НЕТУ РЕГОВ')
      return 'noregs'
      goto end
     endif
    endif
    if UO.InJournal('line') or UO.InJournal('see the target') then
     UO.Print('ЦЕЛЬ НЕ ВИДАТЬ')
     return 'notarg'
     goto end
    endif 
    WaitManaChange(UO.Mana)
    UO.Print('КАСТ ОКОНЧЕН')
    if UO.InJournal('fizzle') then
     goto cast
    endif
    return 'success'
    end:
endsub

УДАЛЕНИЕ СТРОКИ Удаляет все строки журнала, равные string1(аргумент). © Edred (по крайней мере из его топика скопировано)
Code:
Sub DeleteJournal( string1 ) 
   VAR nom = UO.InJournal( string1 )
   If nom > 0 Then
      UO.SetJournalLine( Nom - 1, 'string replaced' )
      DeleteJournal( string1 )
   Endif
endsub

PRINT Небольшая функция, которая прежде чем напечатать выключает режим "молчания" инжекта(set quiet), печатает, и снова включает.
Code:
sub Print(text)
UO.Set('quiet',0)
UO.Print(text)
UO.Set('quiet',1)
endsub

НОРМАЛИЗАЦИЯ ТЕКСТА Получает строку, все пробелы в ней заменяет "_" и возвращает...
Code:
Sub normalise(string)
 DIM Chars[64]
 var NewString=''
 for var nChars=0 to LEN(string)
  if Left(string,1)<>' ' then
   NewString=NewString+Left(string,1)
  else
   NewString=NewString+'_'
  endif
  string=Right(string,LEN(string)-1)
 next
 return NewString
endsub

ДИНАМИЧЕСКАЯ ПАУЗА Стандартная динамическая пауза, выходом из цикла через 6 секунд и учётом сейва.
Входных аргументов - 5, если надо проверять меньше строк остальные аргументы вбейте какиенибуть строки, которые не встречаются, например DynWait("You fail","@@@","@@@","@@@","@@@")
Code:
sub DynWait(event1,event2,event3,event4,event5)
var Time=0;
DeleteJournal(event1)
DeleteJournal(event2)
DeleteJournal(event3)
DeleteJournal(event4)
DeleteJournal(event5)
repeat
 wait(100)
 Time=Time+1
 if UO.InJournal('World is saving') then
  repeat
   wait(500)
  until UO.InJournal('World data saved in')
 endif
until UO.InJournal(event1) or UO.InJournal(event2) or UO.InJournal(event3) or UO.InJournal(event4) or UO.InJournal(event5) or Time==60
endsub

ДОЖДАТСЯ ПАДЕНИЯ МАНЫ Ждет пока мана не упадет, т.е. пока спелл не кастанется.
Code:
Sub WaitManaChange(now)
 while UO.Mana>=now
  wait(50)
 wend
endsub

ПРОВЕРКА НА ЛАГ Немного измененная стандартная проверка на лаг. Изменения заключается в том что убрана отмена прицеливания, которая здесь ни к чему(по крайней мере мне это часто мешало), и очищается не весь журнал а только удаляется строка "backpack" опять таки потому что чеклаг ф-ция которая используется из других функций, которым очистка журнала может помешать.
Code:
Sub CheckLag()
DeleteJournal('backpack')
UO.Click('backpack')
REPEAT
 WAIT(50)
UNTIL UO.InJournal('backpack')
end sub

Ну и напоследок, хоть это и не имеет отношения к вышеизложенному, немного измененный стандартный РЕКОННЕКТОР, в основе всё тот же реконектор, который давно лежит на форуме, только определение подлючения происходит теперь через isOnline(), что гозадо эффективнее, время дисконекта и время реконекта записывается отдельно...
Code:
sub NewRecon()
while true
while UO.IsOnline()
 wait(100)
wend
 UO.TextOpen()
 UO.TextPrint('Disconnected at '+MakeTime())
 UO.Exec('terminate all')
connect:
UO.Say(' ')
wait(3000)
UO.LDblClick(616,455)
wait(3000)
UO.LDblClick(616,455)
wait(3000)
UO.LDblClick(616,455)
wait(3000)
UO.LDblClick(357,164)
if UO.IsOnline() then
 UO.Exec('exec main')
 UO.TextOpen()
 UO.TextPrint('Reconnected at '+MakeTime())
else
 goto connect
endif
wend
endsub

Sub MakeTime()
VAR D, T, Ret, i
Ret = STR(UO.Time())
T = ""
For i = 0 To Len(Ret)
T = Ret[Len(Ret)-i] + T
If (I == 2) OR (I == 4) Then
T = ":" + T
EndIf
Next
Ret = STR(UO.Date())
D = ""
For i = 0 To Len(Ret)
D = Ret[Len(Ret)-i] + D
If (I == 2) OR (I == 4) Then
D = "." + D
EndIf
Next
Ret = T + " @ " + D
RETURN Ret
end sub

Функции малотестированы и могут быть глюки. Я играю на ДрВ и писал их под него, как они поведут себя на других шардах - хз.


Last edited by to4a on 2006-06-18 03:14:54, edited 1 time in total.

Top
   
 Post subject:
PostPosted: 2006-06-18 01:58:22 
Offline
User avatar

Joined: 2005-01-13 07:20:54
Posts: 528
Code:
UO.InJournal('An') or UO.InJournal('Ex') or UO.InJournal('Por') or UO.InJournal('Lor') or UO.InJournal('Des') or UO.InJournal('Rel') or UO.InJournal('You lack')

можно заменить
UO.InJournal('An|Ex|Por|Lor|Des|Rel|You lack')


Top
   
 Post subject:
PostPosted: 2006-06-18 01:59:59 
Offline

Joined: 2006-03-10 00:19:11
Posts: 265
Location: http://drw.ru/
admir wrote:
Code:
UO.InJournal('An') or UO.InJournal('Ex') or UO.InJournal('Por') or UO.InJournal('Lor') or UO.InJournal('Des') or UO.InJournal('Rel') or UO.InJournal('You lack')

можно заменить
UO.InJournal('An|Ex|Por|Lor|Des|Rel|You lack')

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


Top
   
 Post subject:
PostPosted: 2006-06-18 02:09:43 
Offline
User avatar

Joined: 2005-01-13 07:20:54
Posts: 528
Quote:
uo.InJournal : добавлен поиск нескольких строк (разделитель | возле бекспейса)
приме: if uo.InJournal("Rusty|Copper|Mythril") then

только для этой функции

_________________
все для альфы , [url=http://newvlad.nm.ru/prog]здесь[/url]
модернизация ремонт продажа игровых консолей
Sky: admirka1 Москва


Top
   
 Post subject:
PostPosted: 2006-06-18 13:56:14 
Offline

Joined: 2006-03-10 00:19:11
Posts: 265
Location: http://drw.ru/
ПРОДОЛЖЕНИЕ. В этом посте будут изложены всякие мелочи жизни и ПвП.
1. Buy\Sell При использовании появляется тагрет, тынув которым на вендора вы произнесете "имя_вендора buy" или "имя_вендора sell" в зависимости от функции
ВНИМАНИЕ: Используется дополнительная фунцкия AddObject, которую ищите далее...
Code:
Sub buy()
AddObject('vendor','Выберите вендора.')
UO.Click('vendor')
CheckLag()
UO.Msg(UO.GetName('vendor')+' buy')
endsub

Sub sell()
AddObject('vendor','Выберите вендора.')
UO.Click('vendor')
CheckLag()
UO.Msg(UO.GetName('vendor')+' sell')
endsub

2. ТАМИНГ Таргет на животное, использует таминг стафф на животное, до тех пор пока оно не затамится, после удачного затамливания залазит на затамленную живность(если это возможно) и одевает оружие которое было одето до таминга.
ВНИМАНИЕ: Используется дополнительная фунцкия AddObject, которую ищите далее...
Code:
sub Tam()
 var k
 UO.SetArm('beforetaming')
 if UO.Targeting() then
  UO.CancelTarget()
 endif
 AddObject('tam','Кого тамим?')
 repeat
  UO.DeleteJournal()
  UO.WaitTargetObject('tam')
  UO.UseType('0x13F8')
  UO.UseType('0x13F9')
  repeat
   k=k+1
   wait(50)
  until UO.InJournal('to accept you') or UO.InJournal('You fail') or UO.InJournal('is already') or UO.InJournal('of battle') or UO.InJournal('see the creature') or k=100
 until UO.InJournal('master')
 UO.UseObject('tam')
 wait(500)
 UO.Arm('beforetaming')
endsub

3. РЕГИ. Скрипт для перекладки регов, который использует АСМ.Ссылка на АСМ есть в первом посте. Принцип работы отличается от аналогов. Выбираете контейнер 1 - склад, и контейнер 2 - походный мешок, и вводите число сколько регов должно быть в походном мешке, если какого-то рега окажется больше - излишек будет помещен на склад, если меньше - будет добран со склада до введенного уровня. Если ввести 0, то все реги будут переброшены на склад.
ВНИМАНИЕ: Используется дополнительная фунцкия AddObject, которую ищите далее...
Code:
# Работа с регами. © pro aka to4a.
Sub regi()
 DIM Regi[7]
 var z='x',cts,rts,need
 Regi[0]='0x0F7B'
 Regi[1]='0x0F7A'
 Regi[2]='0x0F84'
 Regi[3]='0x0F85'
 Regi[4]='0x0F86'
 Regi[5]='0x0F88'
 Regi[6]='0x0F8C'
 Regi[7]='0x0F8D'
 AddObject('cts','Выберите контейнер 1 - склад')
 UO.UseObject('cts')
 CheckLag()
 AddObject('rts','Выберите контейнер 2 - походная сумка с регами')
 UO.UseObject('rts')
 CheckLag()
 z=val(UO.asmInputString("Сколько должно быть с собой?",50))
 while z=='x'
  wait(50)
 wend
 for var i=0 to 7
  uo.findtype(Regi[i], '-1', 'rts')
  need=z-UO.GetQuantity('finditem')
  if need > 0 then
   UO.FindType(Regi[i] , '-1' , 'cts')
   UO.MoveItem('finditem', need, 'rts')
  endif
  if need < 0 then
   need=need*(-1)
   UO.MoveItem('finditem', need, 'cts')
  endif
  wait(500)
 next
end sub

4. АВТОХИЛ Незнаю зачем выкладваю, аналогов на форуме и так не мало, ну пусть будет ещё один. Лечится бинтами до полных хп. Бинты моет, мытые бинты стыкует с основной кучей, одевает оружие после лечения.
ВНИМАНИЕ: Используется дополнительная фунцкия DynWait, которая лежит в первом посте
Code:
#Autoheal. © pro aka to4a.
Sub Heal() 
var HealK=0
if UO.Targeting() then                                                 
 UO.CancelTarget()
endif
UO.SetArm('ArmedBeforeHealing')
if UO.GetHP()<UO.GetMaxHP() then
repeat 
 UO.DeleteJournal()         
 if UO.Count('0x0E21')>0 then
  CheckLag()               
  UO.Bandageself()           
  DynWait('You put','You apply the','interrupted','@','@')
 endif                           
 if UO.Count('0x1008') then                                   
  if UO.Count('0x0E20') then                                   
   UO.WaitTargetType('0x1008')                                 
   UO.UseType('0x0E20')                                       
   repeat 
    wait(50)     
    HealK=HealK+1
   until not UO.Waiting() or UO.Dead() or HealK==100           
   UO.Findtype('0x0E21')                                                   
   UO.MoveItem('finditem')                                                             
   CheckLag()                                                                           
  endif
 endif                                                                                     
until UO.GetHP()==UO.GetMaxHP()
endif
endif
UO.Arm('ArmedBeforeHealing')
UO.UnSetArm('ArmedBeforeHealing')
if UO.Targeting() then                                                 
 UO.CancelTarget()
endif
endsub

5. РАЗОВЫЙ ХИЛ Один раз использует на себя бинты, моет, мытые стыкует, одевается обратно.
Code:
sub Heal1()      
      UO.SetArm("BH")
      UO.BandageSelf()
      repeat
       wait(100)
      until Uo.InJournal("You put") or Uo.InJournal("You apply the") or UO.InJournal("interrupted") or UO.Dead()
      if UO.Count('0x1008') then                                   
       if UO.Count('0x0E20') then                                   
        UO.WaitTargetType('0x1008')                                 
        UO.UseType('0x0E20')                                       
        repeat 
         wait(50)     
         HealK=HealK+1
        until not UO.Waiting() or UO.Dead() or HealK==100           
        UO.Findtype('0x0E21')                                                   
        UO.MoveItem('finditem')                                                             
        CheckLag()                                                                           
       endif
      endif
      UO.Arm("BH")
      UO.UnSetArm('BH')
   Endif
end sub

6. РАЗРЕЗКА ТРУПА ПОД СОБОЙ Режет труп который находится в зоне досягаемости, незнаю как себя поведет если их будет много, да и режет он тем что находится в правой руке, поскольку я всегда хожу со свордом, то им и режу, естессно, с топорами\мейсами и др. оружием рабоатть не будет, нужно будет строку UO.UseObject(.....) заменить на UO.UseType( DAGGER_TYPE )
Code:
sub carve()
UO.Set('finddistance','3')
UO.FindType('0x2006',-1,'ground')
UO.UseObject(UO.ObjAtLayer('Rhand'))
DynWait('You carve','none!','none!','none!','none!')

7. АВТОЛУТ От аналогов отличается тем, что лутит не по списку, а наоборот, список вещей которые не брать, мне лично удобней, но это кому как...
Для лута с трупа используйте 'exec loot' для лута с земли 'exec lootgnd'
Немного глюченый...
Code:
Sub ignore(n)
 UO.Ignorereset()
 var i
 dim ignored[103]
 ignored[0]='0x1CDE'  ;a body
 ignored[1]='0x0F47'  ;battle axe
 ignored[2]='0x1DA1'  ;hand
 ignored[3]='0x1451'  ;a bone helmet
 ignored[4]='0x1CEB'  ;legs
 ignored[5]='0x1B7A'  ;a wooden shied
 ignored[6]='0x1440'  ;a cultass
 ignored[7]='0x144E'  ;bone arms
 ignored[8]='0x1CE4'  ;legs
 ignored[9]='0x1F64'  ;
 ignored[10]='0x13F8' ;gnarled staff
 ignored[11]='0x144F' ;bone armor
 ignored[12]='0x1450' ;bone gloves
 ignored[13]='0x1452' ;bone leggins
 ignored[14]='0x1CF0' ;brain
 ignored[15]='0x1CE7' ;legs
 ignored[16]='0x09F1' ;cuts of raw ribs
 ignored[17]='0x1CE1' ;head
 ignored[18]='0x1D9F' ;a torso
 ignored[19]='0x1DA4' ;a right leg
 ignored[20]='0x1F47' ;curse scroll
 ignored[21]='0x1F42' ;teleport scroll
 ignored[22]='0x1F2F' ;create food scroll
 ignored[23]='0x1F45' ;archcure scroll
 ignored[24]='0x1F5E' ;energy field scroll
 ignored[25]='0x1F41' ;telekenisis scroll
 ignored[26]='0x1F5C' ;reveal scroll
 ignored[27]='0x1F4B' ;ManaDrain Scroll
 ignored[28]='0x1F5B' ;Paralyze Field Scroll
 ignored[29]='0x1F2E' ;Clumsy Scroll
 ignored[30]='0x1F36' ;Cunning Scroll
 ignored[31]='0x1DA0' ;a head
 ignored[32]='0x0406' ;Bless Scroll
 ignored[33]='0x1DA3' ;a left leg
 ignored[34]='0x1CED' ;a heart
 ignored[35]='0x1F39' ;MagicTrap Scroll
 ignored[36]='0x1F35' ;Agility Scroll
 ignored[37]='0x0DF0' ;Black Staff
 ignored[38]='0x1F37' ;Cure Scroll
 ignored[39]='0x1F6A' ;Summon Earth Elemental
 ignored[40]='0x1F33' ;NightSight Scroll
 ignored[41]='0x1F5A' ;MassCurse Scroll
 ignored[42]='0x13B1' ;a bow
 ignored[43]='0x1F34' ;Weaken Scroll
 ignored[44]='0x1CEF' ;entrails
 ignored[45]='0x1CE0' ;a torso
 ignored[46]='0x1F61' ;a Mana Vampire Scroll
 ignored[47]='0x1F3F' ;a Magic Lock Scroll
 ignored[48]='0x1F3C' ;a Strength Scroll
 ignored[49]='0x1F43' ;Unlock Scroll
 ignored[50]='0x1CE5' ;an arm
 ignored[51]='0x1CE2' ;a leg
 ignored[52]='0x1CDF' ;legs
 ignored[53]='0x1CE3' ;a body part
 ignored[54]='0x1CE6' ;a body
 ignored[55]='0x1F3D' ;a bless scroll
 ignored[56]='0x1DA2' ;right arm
 ignored[57]='0x1CEA' ;a body part
 ignored[58]='0x1F30' ;Feeblemind Scroll
 ignored[59]='0x1F46' ;ArchProtection Scroll
 ignored[60]='0x1078' ;piles of hides
 ignored[61]='0x0F0E' ;bottle
 ignored[62]='0x1F66' ;Death Vortex Scroll
 ignored[63]='0x1F60' ;
 ignored[64]='0x1F58' ;
 ignored[65]='0x1F38' ;
 ignored[66]='0x1F54' ;
 ignored[67]='0x1F51' ;
 ignored[68]='0x1F44' ;
 ignored[69]='0x1F6C' ;
 ignored[70]='0x1F53' ;
 ignored[71]='0x1F66' ;
 ignored[72]='0x1F50' ;  SCROLLS
 ignored[73]='0x1F67' ;
 ignored[74]='0x1F52' ;
 ignored[75]='0x1F4E' ;
 ignored[76]='0x1F3A' ;
 ignored[77]='0x1F40' ;
 ignored[78]='0x1F31' ;
 ignored[79]='0x0DF3' ;
 ignored[80]='0x0DF5' ;
 ignored[81]='0x0DF4' ;
 ignored[82]='0x1F4F' ;
 ignored[83]='0x1F5F' ;
 ignored[84]='0x1F57' ;
 ignored[85]='0x1F56' ;
 ignored[86]='0x1F5D' ;
 ignored[87]='0x1F3B' ;
 ignored[88]='0x1F49' ;
 ignored[89]='0x1F59' ;
 ignored[90]='0x1F69' ;
 ignored[91]='0x1F2D' ;
 ignored[92]='0x1F32' ;
 ignored[93]='0x1F63' ;
 ignored[94]='0x1F6B' ;
 ignored[95]='0x1F5D' ;
 ignored[96]='0x1F6A' ;
 ignored[97]='0x1F4D' ;
 ignored[98]='0x0DF2' ; Wand
 ignored[99]='0x1F65' ;
 ignored[101]='0x1CEE' ; Wand
 ignored[102]='0x1CDD' ;
 UO.Print('Ignoring trash items...')
 UO.Set('quiet','1')
 for i=0 to 102
  UO.Ignore(n+ignored[i])
 next
 UO.Set('quiet','0')
endsub

Sub loot()
 Ignore('<')
 repeat
  UO.FindType('-1','-1','lastcontainer')
  UO.Print('Найдено вещей: '+str(UO.findcount()))
  UO.Ignore('finditem')
  UO.MoveItem('finditem')
  Wait(500)
 until UO.FindCount()==0
 UO.IgnoreReset()
endsub

Sub lootgnd()
 UO.IgnoreReset()
 UO.Set('finddistance','3')
 Ignore('~')
 repeat
  UO.FindType('-1','-1','ground')
  UO.Print(' '+str(UO.findcount()))
  UO.MoveItem('finditem')
  UO.Ignore('finditem')
  wait(500)
 until UO.FindCount()==0
 UO.IgnoreReset()
endsub

8. ADDOBJECT Впринципе то это стандартная комбинация добавления обьекта, сделана отдельной функцией только потому что часто используется в скриптах
Code:
Sub AddObject(obj,msg)
UO.Forget(obj)
UO.Print(msg)
UO.Set('quiet','1')
UO.CancelTarget()
UO.AddObject(obj)
while UO.Targeting()
 wait(50)
wend
UO.AddObject(obj,'lasttarget')
UO.Set('quiet','0')
UO.Print('Присвоен обьект: '+UO.GetSerial(obj))
endsub


Top
   
PostPosted: 2006-06-19 07:04:49 
Offline
Sphere expert
User avatar

Joined: 2004-10-01 08:27:38
Posts: 1143
Location: Уфа
to4a wrote:
ОСТОРОЖНО, В СЛЕДУЮЩИХ СКРИПТАХ ИСПОЛЬЗУЕТСЯ ONGUMP, У НЕКОТОРЫХ ЭТО ПРИВОДИТ К КРАШУ.
1. РЕКОЛ ПО РУНБУКЕ. Скрипт не мой, взял у кого-то на
форуме, извиняюсь за отсутвие копирайта, впадлу искать...
ИСПОЛЬЗОВАНИЕ: Recall( ID_РУНБУКИ, НОМЕР_РУНЫ)


Рунбука ДРВ

_________________
Сделал дело - флуди смело !!!


Top
   
PostPosted: 2006-06-19 12:03:42 
Offline

Joined: 2006-03-10 00:19:11
Posts: 265
Location: http://drw.ru/
Askaneli wrote:
to4a wrote:
ОСТОРОЖНО, В СЛЕДУЮЩИХ СКРИПТАХ ИСПОЛЬЗУЕТСЯ ONGUMP, У НЕКОТОРЫХ ЭТО ПРИВОДИТ К КРАШУ.
1. РЕКОЛ ПО РУНБУКЕ. Скрипт не мой, взял у кого-то на
форуме, извиняюсь за отсутвие копирайта, впадлу искать...
ИСПОЛЬЗОВАНИЕ: Recall( ID_РУНБУКИ, НОМЕР_РУНЫ)


Рунбука ДРВ

угу ну вот копирайт туда, а я добавил потому что по той же тематике...


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

All times are UTC+02:00


Who is online

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