Инскрипт & Магия
Posted: 2006-03-06 03:30:28
Написал я тут скрипт (вернее слепил из разных кусков), вроде работает, но:
1.Игра начинает тормозить
2.Иногда глючит , то есть не переходит к следующей функции (после того как отмедитировал - не хочет продолжать крафтить или после того как скрафтил - не хочеть кастовать его)
Прошу скриптеров, как людей которые намного лучше разбираются в скриптах чем я, проверить мой скрипт на ошибки : может кое-что надо переставить или заменить .
ЗЫ: Буду очень признателен если добавите поедание пищи
1.Игра начинает тормозить
2.Иногда глючит , то есть не переходит к следующей функции (после того как отмедитировал - не хочет продолжать крафтить или после того как скрафтил - не хочеть кастовать его)
Прошу скриптеров, как людей которые намного лучше разбираются в скриптах чем я, проверить мой скрипт на ошибки : может кое-что надо переставить или заменить .
ЗЫ: Буду очень признателен если добавите поедание пищи
Code: Select all
sub Train()
uo.Exec('exec Pok')
uo.Exec('exec Reconnect')
uo.Exec('exec Inscript')
uo.Exec('exec Guards')
uo.Exec('exec GetBomb')
UO.DeleteJournal()
end sub
sub Inscript()
UO.FindType('0x1F40',-1,'backpack') ; ищет скролы Poison
if UO.GetQuantity('finditem')>0 then
Poison()
end if
VAR Blank = '0x0E34' ; Тип бланк скролла
VAR Arrow = '0x1F40' ; Тип скроллов Poison
If UO.Weight<500 then
UO.DeleteJournal()
UO.FindType('0x0E34',-1,'backpack') ; ищет бланк скролы
If UO.GetQuantity('finditem')>0 then
UO.AutoMenu( 'Spell Circles', 'Third Circle' )
UO.AutoMenu( 'Spell Circle 3', 'Poison' )
UO.UseType( Blank )
CheckLag()
wait(500)
repeat ; ждет пока скрафтится скрол
until UO.InJournal('You fail to inscribe the scroll') or UO.InJournal('You put the')
if UO.InJournal('You fail to inscribe the scroll') then
Inscript()
end if
Poison();если не найдены бланк скролы
end if
Poison();если скрафтился Poison
end if
Home();если вес превышает 500
end sub
#####################################################################
sub Poison()
var k
UO.FindType('0x1F40',-1,'backpack') ;ищет Poison скрол
If UO.GetQuantity('finditem')>0 then
UO.WaitTargetObject('self')
UO.UseObject('finditem')
else
UO.Cast('Poison','self')
end if
CheckLag()
while not UO.Mana<UO.INT
wait(100)
wend
while UO.Mana<UO.INT
UO.UseSkill('Meditation')
CheckLag()
k=0
Repeat
k=k+1
Wait(100)
Until UO.InJournal("You are") or UO.InJournal("You lose") or k>200
UO.DeleteJournal()
Wait(1000)
Wend
If not UO.Weight>500 then
Inscript();запускаем все по новой
else
Home()
end if
end sub
##########################################################
sub Home()
if uo.Weight>500 then
if uo.Waiting() then
uo.CancelTarget()
end if
uo.Print('Go to Home')
uo.Exec('recall Runebook 21')
CheckLag()
wait(10000)
DropOres()
wait(3000)
NS()
uo.DeleteJournal()
if uo.Waiting() then
uo.CancelTarget()
end if
uo.Print('GO to Brit')
uo.Exec('recall Runebook 33')
CheckLag()
wait(10000)
Pok()
Inscript()
end if
####################################################################
sub DropOres()
uo.DeleteJournal()
if uo.Waiting() then
uo.CancelTarget()
end if
var a, Exit
Var Cont='0x402E8C91'
var UnloadChest='0x402E8C91' ## - ID сундука для сброса руды.
DIM Ore[5]
Ore[0]=0x0F88 ## - NS
Ore[1]=0x0E34 ## - Blank
uo.SetReceivingContainer(UnloadChest)
wait(500)
for a=0 to 1
exit=0
repeat
uo.FindType(Ore[a])
if uo.GetQuantity('finditem')>0 then
uo.Grab('0','finditem')
CheckLag()
wait(1500)
else
exit=1
end if
until Exit==1
next
uo.UnSetReceivingContainer()
end sub
#####################################################################
sub NS()
VAR sunduk='0x402E8C91' ;ID Сундука где реги
uo.findtype('0x0F88','0x0000',sunduk)
if uo.GetQuantity('finditem') then
uo.moveitem('finditem',50,'backpack')
end if
wait(500)
CheckLag()
end sub
#####################################################################
#####################################################################
#####################################################################
sub CheckLag()
UO.DeleteJournal()
UO.Click('backpack')
Repeat
Wait(500)
Until UO.InJournal('backpack')
end sub
#####################################################################
sub Guards()
while not UO.Dead()
while UO.life < UO.str
UO.Msg("GuaRds")
wait(500)
wend
wend
end sub
######################################################################
sub GetBomb()
var Bomba = '0x0F0D'
uo.set('finddistance','3')
while not uo.Dead()
uo.findtype( Bomba,-1,'ground')
if uo.getquantity( uo.getserial('finditem') )>0 then
uo.grab('0','finditem')
else
wait(100)
end if
wait(500)
wend
end sub
#######################################################################
sub Reconnect()
var ReconnectTime, rFlag
ReconnectTime='0'
rFlag=1
repeat
while (uo.ObjAtLayer('Bpack')=='')
if rFlag then
ReconnectTime=Time()
rFlag=0
endif
wait(20000)
uo.Say('')
wait(3000)
uo.Say('')
wait(3000)
uo.Say('')
wait(3000)
uo.LDblClick(357,164)
uo.LClick(616,459)
wait(3000)
wend
wait(3000)
if (rFlag==0) and (ReconnectTime<>'0') then
uo.TextOpen()
uo.TextPrint(ReconnectTime+' | Потеря связи с сервером, повторное подсоединение')
rFlag=1
ReconnectTime='0'
endif
until false
endsub # Reconnect
##########
sub Time()
var hh,mm,ss,hms,t=str(uo.Time())
if len(t)<=2 then
hh="0"
mm="0"
ss=t
endif
if len(t)==3 then
hh="0"
mm=left(t,len(t)-2)
ss=right(t,len(t)-1)
end if
if len(t)==4 then
hh="0"
mm=left(t,len(t)-2)
ss=right(t,len(t)-2)
end if
if len(t)==5 then
hh=left(t,len(t)-4)
hms=left(t,len(t)-2)
mm=right(hms,len(hms)-1)
ss=right(t,len(t)-3)
end if
if len(t)==6 then
hh=left(t,len(t)-4)
hms=left(t,len(t)-2)
mm=right(hms,len(hms)-2)
ss=right(t,len(t)-4)
end if
return hh+":"+mm+":"+ss
endsub # Time
######################################################################
sub Pok()
while not uo.weight>=500
UO.Buy("NSBlank")
CheckLag()
wait(1500)
wend
end sub
################################################################