Runtime error в скрипте на мининг *ВЕТЕР*

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Angelok
Posts: 76
Joined: 2004-07-15 09:43:11

Runtime error в скрипте на мининг *ВЕТЕР*

Post by Angelok »

Ребят, помогите если не сложно с этой ошибкой причина не известна. Из-за нее нет автономности скрипта:(


вот скрипт:

Code: Select all

################## 
### Ïåðåìåííûå ###
###################################################################################################
var Reconnect=0 ##  1 - Âêëþ÷èòü ðåêîííåêò íà ñåðâåð åñëè âûêèíåò, 0 - îòêëþ÷èòü ðåêîííåêò.(íå ïðîâåðÿë ðàáîòàåò èëè íåò ñ ýòèì ñêðèïòîì)
###
var Food=0 ## - Êóøàòü ïîñëå ñáðîñà ðóäû èëè íåò? 1 - äà, 0 - íåò.
###
var Status=0 ## - Ñòàòóñ ðóäû, ïîêàçûâàåò ñêîêà íàêîïàëè (äëÿ îïûòíûõ ñêðèïò¸ðîâ) 1 - äà, 0 - íåò.
###
var Chest='0x40044B4D' ## - ID ñóíäóêà êóäà áóäóò âûãðóæàòüñÿ ðóäó, ãäå äîëæíû ëåæàòü ðåãè è åäà.
###
var TypeFood='0x160A' ## - Type åäû êîòîðóþ áóäåì êóøàòü.(ñåé÷àñ ôèøòåéêè)
###
var CountReg=150 ## - Êîë-âî ðåãîâ äëÿ ïîäçàðÿäêè.
###
var OreQty=520 ## - Ìàêñèìàëüíûé âåñ ïðè êîòîðîì äîìîé ñ ðóäîé
###
var maxjamp=15 ## - Äëÿ ðåêîëà (èçìåíÿòü íå íóæíî)
var rune=1    ## - Äëÿ ðåêîëà (èçìåíÿòü íå íóæíî)
###################################################################################################
### Wait - Æä¸ò ñîîáøåíèÿ ïîñëå çàìàõà êèðêè, ÷òîáû ïîâòîðèòü.                                   ##
### Fizzle - Åñëè ïðèøëî òàêîå ñîîáøåíèå, òî ïåðåõîäèì íà ñëåä. êëåòêó êîïàòü.                   ##
###################################################################################################
var Wait1="You put"
var Wait2="heavy"
var Wait3="location"
var Wait4="no ore"
var Wait5="but fail"
var Wait6="far away"
var Wait7="in rock"
var Wait8="You can't"
var Wait9="nothing here"
var Wait10="You have found some"
###
var Fizzle1="There is"
var Fizzle2="You can't use the"
var Fizzle3="Try mining elsewhere."
var Fizzle4="location"
###################################################################################################
#################
### Âêëþ÷àëêà ###
#################
sub Start()
If    UO.GetGlobal('Maningcheck')=='on' Then
   UO.SetGlobal('Maningcheck','off')
   UO.Exec('Exec Terminate')
Else
   UO.Exec('Exec Maning')
   UO.SetGlobal('Maningcheck','on')
EndIf
End sub
###############
### Ìàéíèíã ###
###############
Sub Maning()
var Mine=1
UO.print('!!!SELECT YOU PICKAXE!!!')
UO.exec('addobject Shovel')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('!!!SELECT YOU RUNE TO HOME!!!')
UO.exec('addobject Home')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (1)')
UO.exec('addobject Mine1')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (2)')
UO.exec('addobject Mine2')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (3)')
UO.exec('addobject Mine3')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (4)')
UO.exec('addobject Mine4')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (5)')
UO.exec('addobject Mine5')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (6)')
UO.exec('addobject Mine6')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (7)')
UO.exec('addobject Mine7')
while UO.targeting()
wait(100)
wend

If Reconnect==1 Then
UO.Exec('Exec Reconnect')
EndIf
##############################
### Êîïàåì ðóäó âîçëå ñåáÿ ###
##############################
If Mine==1 Then
REPEAT
JumpToRune()
GetOre()
wait(2000)
Until UO.Dead()
End sub

Sub GetOre()
var CheckTime
var mx, my, mz, i, j
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
for i = mx-2 to mx+2
for j = my-2 to my+2
ToHide()
UO.Print("Get Coordinate: "+str(mx-i)+' '+str(my-j))
If UO.waiting() Then
UO.canceltarget()
EndIf
REPEAT
If UO.weight >= OreQty Then
ToRecall()
EndIf
ToHide()
UO.Waittargettile("1341",str(i),str(j),str(mz))
UO.Useobject("Shovel")
CheckTime=UO.Timer()
UO.DeleteJournal()
REPEAT
wait(300)
Until UO.InJournal(Wait1) or UO.InJournal(Wait2) or UO.InJournal(Wait3) or UO.InJournal(Wait4) or UO.InJournal(Wait5) or UO.InJournal(Wait6) or UO.InJournal(Wait7)  or UO.InJournal(Wait8) or UO.InJournal(Wait9) or UO.InJournal(Wait10) or CheckTime+200<uo.Timer() or UO.Dead()
Until UO.InJournal(Fizzle1) or UO.InJournal(Fizzle2) or UO.InJournal(Fizzle3) or UO.InJournal(Fizzle4) or UO.Dead()
If UO.weight >= OreQty Then
ToRecall()
EndIf
Next
Next
End sub
###################
### Ðåêîë äîìîé ###
###################
Sub ToRecall()
RecallToHome()
ToHide()
DropOre()
CheckReg()
If Food==1 Then
ToEat()
EndIf
If Status==1 Then
InfoOre()
EndIf
BackToMine()
End sub
########################################################
### Ñèñòåìà ðåêîëîâ ïî ðóíàì (ñ ïðîâåðêîé íà ïðûæêè) ###
########################################################
Sub JumpToRune()
var x=0
var mx, my
mx = UO.GetX("self")
my = UO.GetY("self")
dim runes[7]
runes[1]='Mine1'
runes[2]='Mine2'
runes[3]='Mine3'
runes[4]='Mine4'
runes[5]='Mine5'
runes[6]='Mine6'
runes[7]='Mine7'
RecallMana()
If rune==maxjamp Then
rune=1
EndIf
UO.Print("Go to Mine: "+str(rune))
UO.Cast('Recall',runes[rune])
Wait(7000)
If UO.getx()==mx and UO.gety()==my Then
REPEAT
x=x+1
RecallMana()
UO.Cast('Recall',runes[rune])
Wait(7000)
Until UO.getx()<>mx and UO.gety()<>my or (x==2) or UO.Dead()
EndIf
CheckMark()
rune=rune+1
End sub

Sub BackToMine()
var x=0
var mx, my
mx = UO.GetX("self")
my = UO.GetY("self")
dim runes[7]
runes[1]='Mine1'
runes[2]='Mine2'
runes[3]='Mine3'
runes[4]='Mine4'
runes[5]='Mine5'
runes[6]='Mine6'
runes[7]='Mine7'
If rune==1 Then
rune=2
EndIf
rune=rune-1
RecallMana()
UO.Print("Go back to Mine: "+str(rune))
UO.Cast('Recall',runes[rune])
Wait(7000)
If UO.getx()==mx and UO.gety()==my Then
REPEAT
x=x+1
RecallMana()
UO.Cast('Recall',runes[rune])
Wait(7000)
Until UO.getx()<>mx and UO.gety()<>my or (x==2) or UO.Dead()
EndIf
CheckMark()
rune=rune+1
End sub

Sub CheckMark()
dim runes[7]
runes[1]='Mine1'
runes[2]='Mine2'
runes[3]='Mine3'
runes[4]='Mine4'
runes[5]='Mine5'
runes[6]='Mine6'
runes[7]='Mine7'
If UO.InJournal('The recall rune is starting to fade') Then
UO.print("Mark Rune: "+str(rune))
REPEAT
UO.DeleteJournal()
MarkMana()
UO.Cast('Mark',runes[rune])
wait(7000)
Until NOT UO.InJournal('The spell fizzles') or UO.Dead()
UO.DeleteJournal()
EndIf
End sub
#######################################################
### Ðåêîëèìñÿ äîìîé ïî ðóíàì (ñ ïðîâåðêîé íà ïðûæêè) ##
#######################################################
Sub RecallToHome()
var x=0
var mx, my
mx = UO.GetX("self")
my = UO.GetY("self")
REPEAT
x=x+1
RecallMana()
UO.Print('Go to Home')
UO.Cast('Recall','Home')
wait(7000)
Until UO.getx()<>mx and UO.gety()<>my or (x==3) or UO.Dead()
If UO.InJournal('The recall rune is starting to fade') Then
UO.print("Mark Rune")
REPEAT
UO.DeleteJournal()
MarkMana()
UO.Cast('Mark','Home')
wait(7000)
Until NOT UO.InJournal('The spell fizzles') or UO.Dead()
UO.DeleteJournal()
EndIf
End sub
####################################
### Âûêëàäûâàåì ðóäó â êîíòåéíåð ###
####################################
Sub DropOre()
If UO.waiting() Then
UO.canceltarget()
EndIf
VAR a,Exit
DIM Ore[5]
Ore[0]=0x19B9 ; 4 and more ore
Ore[1]=0x19B7 ; 1 ore
Ore[2]=0x19BA ; 2 ore
Ore[3]=0x19B8 ; 3 ore
UO.SetReceivingContainer(Chest)
wait(500)
For a=0 to 3
Exit=0
repeat
UO.FindType(Ore[a])
If UO.GetQuantity('finditem') > 0 Then
UO.Grab('0','finditem')
wait(1500)
Else
Exit=1
EndIf
Until Exit==1 or UO.Dead()
Next
UO.UnSetReceivingContainer()
End sub
#####################################
### Ïðîâåðÿåì êîë-âî ðåãîâ â ïàêå ###
#####################################
Sub CheckReg()
If UO.MR <= 10 or UO.BM <= 10 or UO.BP <= 10 Then
UO.Print("!!!Download Regs!!!")
UO.SetReceivingContainer('backpack')
UO.UseObject(Chest)
wait(5000)
UO.FindType('0x0F86','-1',Chest) ; MR
UO.Grab(STR(CountReg-UO.MR),'finditem')
wait(5000)
UO.FindType('0x0F7B','-1',Chest) ; BM
UO.Grab(STR(CountReg-UO.BM),'finditem')
wait(5000)
UO.FindType('0x0F7A','-1',Chest) ; BP
UO.Grab(STR(CountReg-UO.BP),'finditem')
wait(5000)
UO.UnsetReceivingContainer()
UO.Print("!!!Download Regs: Done!!!")
EndIf
End sub
##########################################
### Áåð¸ì õàâêó èç êîíòåéíåðà è êóøàåì ###
##########################################
Sub ToEat()
UO.UseObject(Chest)
wait(5000)
UO.FindType(TypeFood,'-1',Chest)
If UO.FindCount() > 0 Then
UO.SetReceivingContainer('backpack')
UO.Grab('25','finditem')
wait(2000)
REPEAT
UO.UseType(TypeFood)
wait(1000)
Until UO.InJournal('You are simply too full to eat any more!') or UO.Dead()
Else
UO.print("!!! Not Food !!!")
EndIf
DropFood()
End sub

Sub DropFood()
var f,Exit
dim Food[1]
Food[0]=TypeFood
If UO.Waiting() Then
UO.CancelTarget()
EndIf
UO.SetReceivingContainer(Chest)
for f=0 to 0
Exit=0
repeat
UO.FindType(Food[f])
If UO.GetQuantity('finditem') > 0 Then
UO.Grab('0','finditem')
wait(1500)
Else
Exit=1
EndIf
Until Exit==1 or UO.Dead()
next
UO.UnsetReceivingContainer()
End sub
####################################
### Ïðîâåðÿåì ìàíó ïåðåä êàñòàìè ###
####################################
Sub RecallMana()
If UO.mana <= 11 Then
UO.print('!!!Meditation!!!')
UO.Exec('warmode 0')
wait(1000)
REPEAT
UO.UseSkill('Meditation')
wait(15000); 15 ñåêóíä ìåäåòèðóåì.
Until UO.mana > 50 or UO.Dead()
EndIf
End sub

Sub MarkMana()
If UO.mana <= 17 Then
UO.print('!!!Meditation!!!')
UO.Exec('warmode 0')
wait(1000)
REPEAT
UO.UseSkill('Meditation')
wait(15000); 15 ñåêóíä ìåäåòèðóåì.
Until UO.mana > 50 or UO.Dead()
EndIf
End sub
#######################
### Ïðÿ÷èìñÿ â õàéä ###
#######################
Sub ToHide()
var CheckTime
while NOT UO.Hidden()
UO.Print('Hidden...')
UO.Exec("warmode 0")
wait(1000)
UO.UseSkill('Hiding')
CheckTime=UO.Timer()
REPEAT
wait(300)
Until UO.Hidden() or CheckTime+60<uo.Timer() or UO.Dead()
Wend
End sub
###################################
### Ñìîòðèì ñêîêà íàêîïàëè ðóäû ###
###################################
Sub InfoOre()
var LogsTime=PrintTime()
UO.FindType('0x1BDD','-1',Chest)
UO.TextOpen()
UO.TextPrint('#####################')
UO.TextPrint('## Âðåìÿ: '+LogsTime+' ##')
UO.TextPrint('#####################')
UO.TextPrint('Iron Ore: '+STR(GetAmount('0x19B9','0x0000',Chest)))
UO.TextPrint('Rose Ore: '+STR(GetAmount('0x19B9','0x0665',Chest)))
UO.TextPrint('Golden Ore: '+STR(GetAmount('0x19B9','0x084D',Chest)))
UO.TextPrint('Orion Ore: '+STR(GetAmount('0x19B9','0x048A',Chest)))
UO.TextPrint('Dwarf Ore: '+STR(GetAmount('0x19B9','0x0488',Chest)))
UO.TextPrint('Silver Ore: '+STR(GetAmount('0x19B9','0x0482',Chest)))
UO.TextPrint('Shadow Ore: '+STR(GetAmount('0x19B9','0x0770',Chest)))
UO.TextPrint('Valorite Ore: '+STR(GetAmount('0x19B9','0x0515',Chest)))
UO.TextPrint('Crystal Ore: '+STR(GetAmount('0x19B9','0x0487',Chest)))
UO.TextPrint('Magma Ore: '+STR(GetAmount('0x19B9','0x0486',Chest)))
UO.TextPrint('Obsidian Ore: '+STR(GetAmount('0x19B9','0x0485',Chest)))
UO.TextPrint('Mytheril Ore: '+STR(GetAmount('0x19B9','0x048D',Chest)))
UO.TextPrint('#####################')
End sub

Sub GetAmount(Type, Color, Cont)
Var item_amount = 0
UO.IgnoreReset()
Repeat
UO.FindType(Type, Color, Cont)
If UO.FindCount() > 0 Then
If UO.GetQuantity('finditem')==0 Then
item_amount = item_amount + 1
Else
item_amount = item_amount + UO.GetQuantity('finditem')
EndIf
UO.Ignore('finditem')
UO.FindType(Type, Color, Cont)
EndIf
Until UO.FindCount() < 1 or UO.Dead()
UO.IgnoreReset()
Return item_amount
End sub

Sub PrintTime()
Var HR  = ''
Var MIN = ''
Var SEC = ''
Var CurrentTime = UO.Time() 
If CurrentTime>99999 Then
HR  = Mid(STR(CurrentTime),0,2)
MIN = Mid(STR(CurrentTime),2,2)
SEC = Mid(STR(CurrentTime),4,2)
Else
If CurrentTime > 9999 Then
HR  = '0'+Mid(STR(CurrentTime),0,1)
MIN = Mid(STR(CurrentTime),1,2)
SEC = Mid(STR(CurrentTime),3,2)
Else
If CurrentTime > 999 Then
HR  = '00'
MIN = Mid(STR(CurrentTime),0,2)
SEC = Mid(STR(CurrentTime),2,2)
Else
If CurrentTime > 99 Then
HR  = '00'
MIN = '0'+Mid(STR(CurrentTime),0,1)
SEC = Mid(STR(CurrentTime),1,2)
Else
If CurrentTime > 9  Then
HR  = '00'
MIN = '00' 
SEC = STR(CurrentTime)
Else
HR  = '00'
MIN = '00' 
SEC = '0'+STR(CurrentTime)         
EndIf
EndIf
EndIf
EndIf
EndIf
UO.TextPrint(STR(CurrentTime ))
Return (HR+':'+MIN+':'+SEC)   
End sub
##################
### ÐÅÊÎÍÅÊÒÎÐ ###
##################
Sub Reconnect()
var ReconnectTime,rFlag
ReconnectTime='0'
rFlag=1
repeat
while (UO.ObjAtLayer('Bpack')=='')
If rFlag Then
ReconnectTime=MakeTime()
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('Disconnected & Reconnected @ '+ReconnectTime)
rFlag=1
ReconnectTime='0'
EndIf
Until false
End sub

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
#############################
### Âûêëþ÷àåì âñå ñêðèïòû ###
#############################
Sub Terminate()
UO.Print("Mining script: Off!")
UO.DeleteJournal()
UO.Exec('terminate all')
wait(100)
UO.Exec('terminate all')
wait(100)
UO.Exec('terminate all')
wait(100)
End sub
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

хз
Mihail
Expert!
Posts: 548
Joined: 2005-05-20 20:30:10
Contact:

Post by Mihail »

1. не выкладывай из инжекта
2. обнови длл
GimFlex
Expert!
Posts: 766
Joined: 2005-01-07 13:22:19
Contact:

Post by GimFlex »

путь к файлу правильный?
Angelok
Posts: 76
Joined: 2004-07-15 09:43:11

Post by Angelok »

Путь правильный скрипт работает 50-70 минут и вылазит эта ошибка.

Длл вроде довольно новая, у меня и у моего друга одинаковые оишбки выскакивают.
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

Angelok wrote:Путь правильный скрипт работает 50-70 минут и вылазит эта ошибка.

Длл вроде довольно новая, у меня и у моего друга одинаковые оишбки выскакивают.


Типичная проблемы с тредами. Варианты:
1) Попробуй отключить HT, может поможет...
2) Дай автору денег на переписывание синхронизации, а то она ни к чёрту не годится...
DerMeister сейчас на нейрале!
GimFlex
Expert!
Posts: 766
Joined: 2005-01-07 13:22:19
Contact:

Post by GimFlex »

DerMeister =) wrote:
Angelok wrote:Путь правильный скрипт работает 50-70 минут и вылазит эта ошибка.

Длл вроде довольно новая, у меня и у моего друга одинаковые оишбки выскакивают.


Типичная проблемы с тредами. Варианты:
1) Попробуй отключить HT, может поможет...
2) Дай автору денег на переписывание синхронизации, а то она ни к чёрту не годится...


что такое синхронизация? :shock:
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

Question_GimFlex wrote:
DerMeister =) wrote:
Angelok wrote:Путь правильный скрипт работает 50-70 минут и вылазит эта ошибка.

Длл вроде довольно новая, у меня и у моего друга одинаковые оишбки выскакивают.


Типичная проблемы с тредами. Варианты:
1) Попробуй отключить HT, может поможет...
2) Дай автору денег на переписывание синхронизации, а то она ни к чёрту не годится...


что такое синхронизация? :shock:

Синхронизация между тредами. Если интересно спроси у Грина, он тебе хорошо расскажет.
Смысл в том, что инжект - мультитредовое приложение, и они (треды) могут конфликтовать между собой на современных системах. (инжет то писался еще во времена 98, а тогда мутьти треда, помоему, не было.
DerMeister сейчас на нейрале!
GimFlex
Expert!
Posts: 766
Joined: 2005-01-07 13:22:19
Contact:

Post by GimFlex »

DerMeister =) wrote:
Question_GimFlex wrote:
DerMeister =) wrote:
Angelok wrote:Путь правильный скрипт работает 50-70 минут и вылазит эта ошибка.

Длл вроде довольно новая, у меня и у моего друга одинаковые оишбки выскакивают.


Типичная проблемы с тредами. Варианты:
1) Попробуй отключить HT, может поможет...
2) Дай автору денег на переписывание синхронизации, а то она ни к чёрту не годится...


что такое синхронизация? :shock:

Синхронизация между тредами. Если интересно спроси у Грина, он тебе хорошо расскажет.
Смысл в том, что инжект - мультитредовое приложение, и они (треды) могут конфликтовать между собой на современных системах. (инжет то писался еще во времена 98, а тогда мутьти треда, помоему, не было.


а все равно ничего не понял :)
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

Question_GimFlex wrote:
DerMeister =) wrote:
Question_GimFlex wrote:
DerMeister =) wrote:
Angelok wrote:Путь правильный скрипт работает 50-70 минут и вылазит эта ошибка.

Длл вроде довольно новая, у меня и у моего друга одинаковые оишбки выскакивают.


Типичная проблемы с тредами. Варианты:
1) Попробуй отключить HT, может поможет...
2) Дай автору денег на переписывание синхронизации, а то она ни к чёрту не годится...


что такое синхронизация? :shock:

Синхронизация между тредами. Если интересно спроси у Грина, он тебе хорошо расскажет.
Смысл в том, что инжект - мультитредовое приложение, и они (треды) могут конфликтовать между собой на современных системах. (инжет то писался еще во времена 98, а тогда мутьти треда, помоему, не было.


а все равно ничего не понял :)


Счастливый ;)
DerMeister сейчас на нейрале!
Mihail
Expert!
Posts: 548
Joined: 2005-05-20 20:30:10
Contact:

Post by Mihail »

DerMeister =) wrote:инжект - мультитредовое приложение, и они могут конфликтовать между собой на современных системах. (инжет то писался еще во времена 98, а тогда мутьти треда, помоему, не было)

я тупой, но объясни плиз как он мог писаться на мультитредах если их еще не было ? :)
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

Mihail wrote:
DerMeister =) wrote:инжект - мультитредовое приложение, и они могут конфликтовать между собой на современных системах. (инжет то писался еще во времена 98, а тогда мутьти треда, помоему, не было)

я тупой, но объясни плиз как он мог писаться на мультитредах если их еще не было ? :)


:? призаюсь - написал херню... я же сказал, что Грин мне про это пропаривал. Я что то понял, что то нет.
Насчёт 98 имел ввиду, что тогда виндовс мог работать только с одним логическим ядром процессора.
DerMeister сейчас на нейрале!
Post Reply