Yoko

All sides of Injection
It is currently 2025-11-03 06:28:32

All times are UTC+02:00




Post new topic  Reply to topic  [ 6 posts ] 
Author Message
PostPosted: 2008-08-12 14:37:25 
Offline

Joined: 2008-08-12 14:31:52
Posts: 8
Есть скрипт на фишинг, но независимо от действий ( я так думаю ) он выдаёт ошибки парс эррор и скрипт перестаёт работать, могу только запустить - он сразу выдадит ошибку, может и попоже. Суть скрипта - ловит рыбу на лодке, пробивает точки где ловится и там потом ловит, если подлетает какаято нечесть одевает оружие и начинает колбасить. Рыбку складывает на лодочке под собой.
Code:
var RandomFlag = 0 
var UpOrFish = 1
var GZExist = 0
var GZTimer = 0
var NextDot = 0
var bandages = "0x02e1"
var meal = "0x097b"
var SOSBP = "ground"
var MapBP = "ground"
var Enemy = "self"
var WType = "0x0F51"
var fPole = "0x0dbf"
var fTime = 3500
var fPoleSize = 0
var GlobalFileMap = 'fpoint.map'
var FishLagTimer = 0

sub main()
Init()
var EnemyExists, EatTimer, fPoint
DIM FishingMap[121]
DIM FishingStuff[6]
FishingStuff[0] = "0x09CC" # Grey Fish
FishingStuff[1] = "0x09CD" # Green Fish
FishingStuff[2] = "0x09CE" # Blue Fish
FishingStuff[3] = "0x09CF" # Yellow Fish
FishingStuff[4] = "0x099F" # SOS bottle
FishingStuff[5] = "0x14ED" # old tattered map

if CheckFExist(GlobalFileMap) then
ReadFile(GlobalFileMap, FishingMap)
else
fPoleSize = CreateMap(FishingMap)
SToFile(FishingMap, fPoleSize, GlobalFileMap)
endif
FishLagTimer = UO.Timer()
SetFishTime(FishingMap[0])
fPoint = 0
repeat
CheckSave()
If ((UO.Timer() - EatTimer) > 3000) then
EatCheck()
EatTimer = UO.Timer()
EndIf
While CheckDanger()
TryToRes(1)
UO.DeleteJournal()
WEnd
CheckEq(fPole)
If UpOrFish Then
if NextDot Then
fPoint = fPoint + 1
NextDot = 0
else
fPoint = fPoint
endif
if (fPoint == fPoleSize) then
fPoint = 0
endif
Else # UpOrFish
if RandomFlag then
fPoint = UO.Random(fPoleSize)
else # RandomFlag
fPoint = fPoint + 1
if (fPoint == fPoleSize) then
fPoint = 0
endif # fPoint == fPoleSize
endif # RandomFlag
EndIf # UpOrFish
If ((UO.Timer() - FishLagTimer) > 9000) then
SetFishTime(FishingMap[fPoint])
FishLagTimer = UO.Timer()
EndIf
Fish(FishingMap[fPoint])
If (UO.Weight > 370) Then
DropIt(FishingStuff)
EndIf
until false
end sub

sub GZCheck()
var GZE = 0
CheckSave()
UO.ServerPrint('.guards')
Wait(5000)
if CheckMsg('This area is not watched','System') then
UO.Print('No guards')
else
GZE = 1
UO.Print('Guard Zone!')
endif
return GZE
end sub

sub Init()
UO.TextOpen()
UO.TextPrint('Скрипт стартовал: '+MakeTime())
UO.Exec('terminate Reconnector')
UO.Exec('exec Reconnector')
Wait(2000)
UO.Print('An exceptional fishing script v1.0 Release [crafted by totus]')
Wait(2000)
GZTimer = UO.Timer()
GZExist = GZCheck()
UO.Set('norbcheck','1')
UO.Set('norbcalc','1')
UO.Set('finddistance','3')
UO.Set('distance','2')
end sub

sub CreateMap(mapArray)
DIM tileArray[7]
tileArray[0] = '0'
tileArray[1] = '6039'
tileArray[2] = '6040'
tileArray[3] = '6041'
tileArray[4] = '6042'
tileArray[5] = '6043'
tileArray[6] = '6044'
DIM FishMsg[6]
FishMsg[0] = 'You catch'
FishMsg[1] = 'You find'
FishMsg[2] = 'That location'
FishMsg[3] = 'That is too far'
FishMsg[4] = 'There does'
FishMsg[5] = 'You can'
var mX, mY, mZ, StopFuckingSearch, nTileNum, cDelta, dX, dY
cDelta = 5
mX = UO.GetX()
mY = UO.GetY()
mZ = '251'
var mSize = 0
nTileNum = 0
for dX = -cDelta to cDelta
for dY = -cDelta to cDelta
StopFuckingSearch = 0
nTileNum = 0
repeat
CheckSave()
CheckEq(fPole)
UO.Print('Fishing @: '+tileArray[nTileNum]+' '+STR(mX+dX)+' '+STR(mY+dY)+' '+mZ)
Fish(tileArray[nTileNum]+' '+STR(mX+dX)+' '+STR(mY+dY)+' '+mZ)
if (CheckMsg(FishMsg[0],'System') or CheckMsg(FishMsg[1],'System')) Then
mapArray[mSize] = tileArray[nTileNum]+' '+STR(mX+dX)+' '+STR(mY+dY)+' '+mZ
mSize = mSize + 1
StopFuckingSearch = 1
else
if CheckMsg(FishMsg[2],'System') then
StopFuckingSearch = 1
endif
endif
UO.DeleteJournal()
nTileNum = nTileNum + 1
if (nTileNum == 7) then
StopFuckingSearch = 1
endif
until StopFuckingSearch
next
next
Return mSize
end sub

sub CheckMsg(cMsg, mAuthor)
var ij
ij = UO.InJournal(cMsg)
if ij Then
if (UO.JournalSerial(ij+1) == mAuthor) then
return ij+1
else
if (mAuthor == 'System') and (UO.JournalSerial(ij+1) == '0x01010101') then
return ij+1
endif
endif
else
return 0
endif
end sub

sub CheckFExist(fName)
var FileResult = 0
var xx = file(fName)
FileResult = safe call xx.Open()
Return FileResult
end sub

sub SToFile(wtSave, wtsSize, fName)
var wtsLNum
var f=file(fName)
f.Create()
f.Open()
f.WriteLn(STR(wtsSize))
for wtsLNum = 0 to (wtsSize - 1)
f.WriteLn(wtSave[wtsLNum])
next
f.Close()
end sub

sub ReadFile(fName, Pole)
var tFile = file(fName)
var LLLine, lNum, lSize
tFile.Open()
lSize = safe call tFile.ReadNumber()
fPoleSize = lSize
safe call tFile.ReadLn()
if ((lSize > 0) and IsNumber(lSize)) then
for lNum = 0 to fPoleSize - 1
LLLine = safe call tFile.ReadLn()
Pole[lNum] = Left(LLLine,LEN(LLLine)-1)
next
else
Message('Файл пуст')
UO.Exec("terminate all")
endif
UO.TextPrint('Количество точек вылова:'+STR(lSize))
tFile.Close()
end sub

sub AutoLootSelf()
var CorpseType, CorpseID, SelfID
SelfID = UO.GetSerial()
UO.Click(SelfID)
UO.IgnoreReSet()
If (UO.GetGraphic(UO.GetSerial()) == '0x0190') Then
CorpseType = '0x2006'
Else
CorpseType = '0x2006'
EndIf
UO.FindType(CorpseType,'-1','ground')
If (UO.FindCount() > 0) then
repeat
UO.FindType(CorpseType,'-1','ground')
CorpseID = UO.GetSerial('finditem')
UO.Click(CorpseID)
if (Right(UO.GetName(CorpseID),Len(UO.GetName(SelfID))) == UO.GetName(SelfID)) Then
UO.Emptycontainer('50',CorpseID)
Wait(500)
UO.Emptycontainer('50',CorpseID)
Wait(500)
endif
UO.Ignore(CorpseID)
UO.FindType(CorpseType,'-1','ground')
until (UO.FindCount() == 0)
endif
end sub

sub CheckSpells()
VAR Si, nStop, Result, JPos
JPos = 0
Si = 0
nStop = 1
Result = 0
DIM BadSpells[20]
BadSpells[0] = "In Por Ylem"
BadSpells[1] = "An Mani"
BadSpells[2] = "Vas Flam"
BadSpells[3] = "In Nox"
BadSpells[4] = "Des Sanct"
BadSpells[5] = "In Flam Grav"
BadSpells[6] = "Ort Grav"
BadSpells[7] = "In Jux Hur Ylem"
BadSpells[8] = "Por Corp Wis"
BadSpells[9] = "An Ex Por"
BadSpells[10] = "Corp Por"
BadSpells[11] = "Vas Ort Flam"
BadSpells[12] = "In Ex Grav"
BadSpells[13] = "Vas Flam"
BadSpells[14] = "Kal Vas Xen"
BadSpells[15] = "attacking you*"
BadSpells[16] = "Ort Rel"
BadSpells[17] = "Ort Sanct"
BadSpells[18] = "Flam Kal Des Ylem"
BadSpells[19] = "In Vas Por"
While nStop
JPos = UO.InJournal(BadSpells[Si])
If JPos Then
UO.TextPrint("Чар '"+UO.GetName(UO.JournalSerial(JPos-1))+"' - зафиксирована атака..")
UO.ServerPrint(UO.GetName(UO.JournalSerial(JPos-1))+" ne kill pliz ya nub na macrose!!!")
Result = 1
EndIf
Si = Si + 1
If ((Si == 20) or (Result == 1)) Then
nStop = 0
EndIf
WEnd
Return Result
end sub

sub IsDanger(dcNum)
VAR Danger_cnt, Cycle_cnt, EmergencyFlag
EmergencyFlag = 0
UO.IgnoreReset()
UO.Set('finddistance','10')
if (dcNum == 0) Then
UO.IgnoreReSet()
UO.FindType('0x0010','-1','ground')
Danger_cnt = UO.FindCount()
If Danger_cnt > 0 Then
For Cycle_cnt = 0 To Danger_cnt - 1
UO.FindType('0x0010','-1','ground')
If ((UO.GetNotoriety('finditem') >= 3) and (UO.GetSerial('finditem') <> UO.GetSerial())) Then
UO.Click(UO.GetSerial('finditem'))
UO.TextPrint('Найден потенциальный враг, имя чара: '+UO.GetName(UO.GetSerial('finditem')))
EmergencyFlag = 1
Enemy = UO.GetSerial('finditem')
EndIf
UO.Ignore('finditem')
Next
EndIf
EndIf
if (dcNum == 1) Then
UO.IgnoreReSet()
UO.FindType('0x0096','-1','ground')
Danger_cnt = UO.FindCount()
If Danger_cnt > 0 Then
For Cycle_cnt = 0 To Danger_cnt - 1
UO.FindType('0x0096','-1','ground')
If ((UO.GetNotoriety('finditem') >= 3) and (UO.GetSerial('finditem') <> UO.GetSerial())) Then
UO.Click(UO.GetSerial('finditem'))
UO.TextPrint('Найден потенциальный враг, имя чара: '+UO.GetName(UO.GetSerial('finditem')))
EmergencyFlag = 1
Enemy = UO.GetSerial('finditem')
EndIf
UO.Ignore('finditem')
Next
EndIf
EndIf
if (dcNum == 2) Then
UO.IgnoreReSet()
UO.FindType('0x0191','-1','ground')
Danger_cnt = UO.FindCount()
If Danger_cnt > 0 Then
For Cycle_cnt = 0 To Danger_cnt - 1
UO.FindType('0x0191','-1','ground')
If ((UO.GetNotoriety('finditem') >= 3) and (UO.GetSerial('finditem') <> UO.GetSerial())) Then
UO.Click(UO.GetSerial('finditem'))
UO.TextPrint('Найден потенциальный враг, имя чара: '+UO.GetName(UO.GetSerial('finditem')))
EmergencyFlag = 1
Enemy = UO.GetSerial('finditem')
Wait(2000)
EndIf
UO.Ignore('finditem')
Next
EndIf
EndIf
if (dcNum == 3) Then
UO.IgnoreReSet()
UO.FindType('0x0190','-1','ground')
Danger_cnt = UO.FindCount()
If Danger_cnt > 0 Then
For Cycle_cnt = 0 To Danger_cnt - 1
UO.FindType('0x0190','-1','ground')
If ((UO.GetNotoriety('finditem') >= 3) and (UO.GetSerial('finditem') <> UO.GetSerial())) Then
UO.Click(UO.GetSerial('finditem'))
UO.TextPrint('Найден потенциальный враг, имя чара: '+UO.GetName(UO.GetSerial('finditem')))
EmergencyFlag = 1
Enemy = UO.GetSerial('finditem')
EndIf
UO.Ignore('finditem')
Next
EndIf
EndIf
If (dcNum == 4) Then
EmergencyFlag = CheckSpells()
EndIf
Return EmergencyFlag
end sub

sub TryToRes(HealFlag)
var ResFlag = 0
If UO.Dead() Then
Repeat
UO.Recall('self','1')
Wait(6000)
Until (NOT UO.Dead())
AutoLootSelf()
ResFlag = 1
EndIf
if HealFlag Then
if ResFlag then
AutoLootSelf()
DropRangerStuff()
endif
Heal()
endif
end sub

sub DropRangerStuff()
var iX
DIM RangerTool[3]
RangerTool[0] = "0x13B2"
RangerTool[1] = "0x0F4F"
RangerTool[2] = "0x13FD"

DIM RangerArr[3]
RangerArr[0] = "0x0F3F"
RangerArr[1] = "0x1BFB"
RangerArr[2] = "0x1BFB"
For iX = 0 to 2
UO.FindType(RangerTool[iX],'-1','my')
UO.Drophere(UO.GetSerial('finditem'))
Wait(500)
Stack(RangerArr[iX])
Wait(500)
Next
end sub

sub GetRangerStuff()
var iX = 0, StopMe = 0
DIM RangerTool[3]
RangerTool[0] = "0x13B2"
RangerTool[1] = "0x0F4F"
RangerTool[2] = "0x13FD"

DIM RangerArr[3]
RangerArr[0] = "0x0F3F"
RangerArr[1] = "0x1BFB"
RangerArr[2] = "0x1BFB"
repeat
UO.FindType(RangerTool[iX],'-1','ground')
If (UO.FindCount() and (not StopMe)) Then
WType = RangerTool[iX]
UO.Grab('0',UO.GetSerial('finditem'))
Wait(500)
UO.FindType(RangerArr[ix],'-1','ground')
if UO.FindCount() Then
UO.Grab('100',UO.GetSerial('finditem'))
Wait(500)
endif
StopMe = 1
endif
iX = iX + 1
until (StopMe or (iX == 3))
Return WType
end sub

sub Guards()
if ((UO.Timer() - GZTimer) >= 100) then
UO.ServerPrint('.guards')
Wait(500)
UO.ServerPrint('.guards')
GZTimer = UO.Timer()
endif
end sub

sub TryToKill()
var TTKi,TTKStop, TTKUse, TTKGrabN, WTWeap
TTKi = 0
TTKStop = 0
TTKGrabN = 0
If (GZExist and (UO.GetNotoriety() < 3)) then
Guards()
Else
DropRangerStuff()
Wait(500)
GetRangerStuff()
If (UO.GetGraphic(UO.ObjAtLayer('Rhand')) <> WType) Then
UO.Disarm()
Wait(500)
EndIf
Wait(200)
UO.EquipT('Rhand',WType)
Wait(500)
Repeat
UO.WarMode(1)
UO.Attack(Enemy)
Wait(3000)
Heal()
Until ((UO.GetHP(Enemy) == 0) or UO.Dead(Enemy) or UO.Dead() or (UO.GetDistance(Enemy) > 12))
DropRangerStuff()
EndIf
end sub

sub CheckDanger()
Var dX, DangerFactor, DangerResult
dX = 0
DangerFactor = 0
DangerResult = 0
dX = 0
Repeat
DangerResult = IsDanger(dX)
If (DangerResult > 0) Then
If (dX < 4) Then
TryToKill()
Else
UO.ServerPrint('.guards')
EndIf
DangerFactor = 1
EndIf
dX = dX + 1
Until (dX == 5) or (DangerResult)
Return DangerFactor
end sub


sub EatCheck()
var GHS, Hung_i, Meal
GHS = 0
Meal = '0x097b'
GHS = GetHungryStatus()
UO.TextPrint('GHS = '+STR(GHS))
If (GHS > 1) then
For Hung_i = 0 To (GHS - 2)
Eat(Meal)
Wait(350)
Next
EndIf
end sub

sub Eat(wtEat)
If UO.Count(wtEat) then
UO.UseType(wtEat)
else
If UO.CountGround(wtEat) then
UO.UseFromGround(wtEat)
else
UO.Print('No meal found.')
endif
endif
end sub

sub GetHungryStatus()
VAR Ret_i, Cycle_i, LastStr
DIM HArr[11]
HArr[0] = "You are absolutely stuffed!"
HArr[1] = "You are stuffed"
HArr[2] = "You aren't hungry at all"
HArr[3] = "You are a little hungry"
HArr[4] = "You are somewhat hungry"
HArr[5] = "You are REALLY hungry"
HArr[6] = "Your stomash hurts"
HArr[7] = "Your stomash hurts and you feel dizzy"
HArr[8] = "You are starving"
HArr[9] = "You are almost dying of hunger"
HArr[10] = "You are DYING of hunger..."
UO.DeleteJournal()
UO.ServerPrint(".hungry")
Ret_i = 0
Cycle_i = 0
Wait(400)
For Cycle_i = 0 To 10
If CheckMsg(HArr[Cycle_i],'System') Then
Ret_i = Cycle_i
EndIf
Next
RETURN Ret_i
end sub

sub Stack(StackType)
var GroundItem, PackItem
PackItem = ''
GroundItem = ''
if UO.Count(StackType) then
PackItem = '^'+StackType
endif
if UO.CountGround(StackType) then
GroundItem = '~'+StackType
endif
if ((PackItem <> '') and (GroundItem <> '')) then
UO.MoveItem(PackItem,STR(UO.GetQuantity(PackItem)),GroundItem,'0','0','0')
else
UO.DropHere('^'+StackType)
Endif
end sub

sub Heal()
If UO.Poisoned() Then
if (UO.SkillVal('Healing') > 730) then
Repeat
UO.WaitTargetObject(UO.GetSerial('self'))
UO.UseFromGround('0x0E21')
Wait(5000)
Until ((Not UO.Poisoned()) or UO.Dead())
else
Repeat
UO.ServerPrint("Cure")
UO.UseFromGround('0x0F07')
Wait(4000)
Until ((Not UO.Poisoned()) or UO.Dead())
endif
EndIf
If ((UO.GetHP() < UO.GetMaxHP()) and UO.Life) Then
if (UO.SkillVal('Healing') > 0) then
Repeat
UO.WaitTargetObject(UO.GetSerial('self'))
UO.UseFromGround('0x0E21')
Wait(5000)
Until ((UO.GetHP() == UO.GetMaxHP()) or UO.Dead())
else
Repeat
UO.ServerPrint("Heal")
UO.UseFromGround('0x0F0C')
Wait(4000)
Until ((UO.GetHP() == UO.GetMaxHP()) or UO.Dead())
endif
EndIf
end sub

sub CheckEq(cType)
if (UO.Hex2Int(UO.GetGraphic(UO.ObjAtLayer('Lhand'))) <> UO.Hex2Int(cType)) Then
UO.Unequip('Lhand')
UO.Unequip('Rhand')
Wait(1000)
if UO.Count(cType) then
UO.UseType(cType)
Wait(400)
else
UO.FindType(cType,'-1','ground')
if UO.FindCount() Then
UO.Grab('1',UO.GetSerial('finditem'))
Wait(1000)
UO.UseType(cType)
Else
if (UO.Count(cType)+UO.CountGround(cType) == 0) then
UO.ServerPrint('Vaxa, u menya kon4ilis udochki!!!')
UO.Exec('terminate all')
UO.CloseUO()
endif
EndIf
EndIf
EndIf
end sub

sub CheckSave()
If CheckMsg("Saving World State",'System') Then
UO.Print("WorldSave: "+MakeTime())
UO.DeleteJournal()
Wait(25000)
EndIf
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 DropIt(WTF)
var DropCnt
For DropCnt = 0 to 3
if UO.Count(WTF[DropCnt]) Then
Stack(WTF[DropCnt])
EndIf
Next
While (UO.Count(WTF[4]) > 0)
UO.MoveItem('^'+WTF[4],'1',SOSBP)
Wait(400)
WEnd
While (UO.Count(WTF[5]) > 0)
UO.MoveItem('^'+WTF[5],'1',MapBP)
Wait(400)
WEnd
end sub

sub Fish(tPoint)
UO.WarMode(0)
CheckSave()
UO.Exec('waittargettile '+tPoint)
UO.UseObject(UO.ObjAtLayer('Lhand'))
Wait(fTime)
If CheckMsg('There does','System') then
NextDot = 1
EndIf
end sub

sub SetFishTime(fTile)
var fRes = 0
var fTmp
CheckEq(fPole)
fTime = 0
Fish(fTile)
fTmp = UO.Timer()
repeat
Wait(50)
until (CheckMsg('You catch','System') or CheckMsg('They','System') or CheckMsg('Your tool','System') or CheckMsg('There does','System') or CheckMsg('You find','System') or UO.Dead() or CheckMsg('I am already','System'))
fRes = UO.Timer() - fTmp
fTime = fRes * 100
if ((fTime < 3400) or (fTime > 6000)) Then
fTime = 3400
endif
end sub

sub Reconnector()
var ReconnectTime, RFlag
ReconnectTime = '0'
RFlag = 1
Repeat
While (UO.ObjAtLayer('Bpack') == '')
if RFlag Then
ReconnectTime = MakeTime()
RFlag = 0
endif
Wait(20000) # WorldSave Protection
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.Exec('terminate main')
UO.Exec('exec main')
UO.TextOpen()
UO.TextPrint('Disconnected & Reconnected @ '+ReconnectTime)
RFlag = 1
ReconnectTime = '0'
endif
Until false
end sub


Top
   
 Post subject:
PostPosted: 2008-08-12 15:19:01 
Offline

Joined: 2008-08-12 14:31:52
Posts: 8
ясно дело не в скрипте, теперь он просто выдаёт парс эрор без скрипта и ещё пару ошибок и выдаёт краш клиента... прикольно что на другом окне где вор качает хайд на той же лодке ничего не происходит...


Top
   
 Post subject:
PostPosted: 2008-08-12 15:40:31 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Как это не в скрипте, если он кривой ?

Не пробовали отступы расставить ?... У меня в подписи есть мега полезная ссылка...

Перенёс из "I need script!", вы бы хоть раздел подобрали.

_________________
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Skype: d119060


Top
   
 Post subject:
PostPosted: 2008-08-12 16:22:55 
Offline

Joined: 2008-08-12 14:31:52
Posts: 8
Ок извините, проблема главная сейчас в том, что он спокойно ловит себе рыбку, подплывает морское чудовище, он снимает удочку и одевает лук, убивает лохнесское чудовище и не продолжает ловить рыбку,а одевает снимает лук , кидает на пол под себя со стрелами и потом опять поднимает одевает и так циклично, помогите разобраться
Code:
var RandomFlag = 0
var UpOrFish = 1
var GZExist = 0
var GZTimer = 0
var NextDot = 0
var bandages = "0x02e1"
var meal = "0x097b"
var SOSBP = "ground"
var MapBP = "ground"
var Enemy = "self"
var WType = "0x0F51"
var fPole = "0x0dbf"
var fTime = 3500
var fPoleSize = 0
var GlobalFileMap = 'fpoint.map'
var FishLagTimer = 0

sub main()
   Init()
   var EnemyExists, EatTimer, fPoint
   DIM FishingMap[121]
   DIM FishingStuff[6]
   FishingStuff[0] = "0x09CC" # Grey Fish
   FishingStuff[1] = "0x09CD" # Green Fish
   FishingStuff[2] = "0x09CE" # Blue Fish
   FishingStuff[3] = "0x09CF" # Yellow Fish
   FishingStuff[4] = "0x099F" # SOS bottle
   FishingStuff[5] = "0x14ED" # old tattered map
   
   if CheckFExist(GlobalFileMap) then
      ReadFile(GlobalFileMap, FishingMap)
   else
      fPoleSize = CreateMap(FishingMap)
      SToFile(FishingMap, fPoleSize, GlobalFileMap)
   endif
   FishLagTimer = UO.Timer()
   SetFishTime(FishingMap[0])
   fPoint = 0
   repeat
      CheckSave()
      If ((UO.Timer() - EatTimer) > 3000) then
         EatCheck()
         EatTimer = UO.Timer()
      EndIf
      While CheckDanger()
         TryToRes(1)
         UO.DeleteJournal()
      WEnd
      CheckEq(fPole)
      If UpOrFish Then
         if NextDot Then
            fPoint = fPoint + 1
         NextDot = 0
      else
         fPoint = fPoint
      endif
      if (fPoint == fPoleSize) then
         fPoint = 0
      endif
   Else # UpOrFish
      if RandomFlag then
         fPoint = UO.Random(fPoleSize)
      else # RandomFlag
         fPoint = fPoint + 1
         if (fPoint == fPoleSize) then
            fPoint = 0
         endif # fPoint == fPoleSize
      endif # RandomFlag
   EndIf # UpOrFish
   If ((UO.Timer() - FishLagTimer) > 9000) then
      SetFishTime(FishingMap[fPoint])
      FishLagTimer = UO.Timer()
   EndIf
   Fish(FishingMap[fPoint])
   If (UO.Weight > 370) Then
      DropIt(FishingStuff)
   EndIf
until false
end sub

sub GZCheck()
var GZE = 0
CheckSave()
UO.ServerPrint('.guards')
Wait(5000)
if CheckMsg('This area is not watched','System') then
   UO.Print('No guards')
else
   GZE = 1
   UO.Print('Guard Zone!')
endif
return GZE
end sub

sub Init()
UO.TextOpen()
UO.TextPrint('Скрипт стартовал: '+MakeTime())
UO.Exec('terminate Reconnector')
UO.Exec('exec Reconnector')
Wait(2000)
UO.Print('An exceptional fishing script v1.0 Release [crafted by totus]')
Wait(2000)
GZTimer = UO.Timer()
GZExist = GZCheck()
UO.Set('norbcheck','1')
UO.Set('norbcalc','1')
UO.Set('finddistance','3')
UO.Set('distance','2')
end sub

sub CreateMap(mapArray)
DIM tileArray[7]
tileArray[0] = '0'
tileArray[1] = '6039'
tileArray[2] = '6040'
tileArray[3] = '6041'
tileArray[4] = '6042'
tileArray[5] = '6043'
tileArray[6] = '6044'
DIM FishMsg[6]
FishMsg[0] = 'You catch'
FishMsg[1] = 'You find'
FishMsg[2] = 'That location'
FishMsg[3] = 'That is too far'
FishMsg[4] = 'There does'
FishMsg[5] = 'You can'
var mX, mY, mZ, StopFuckingSearch, nTileNum, cDelta, dX, dY
cDelta = 5
mX = UO.GetX()
mY = UO.GetY()
mZ = '251'
var mSize = 0
nTileNum = 0
for dX = -cDelta to cDelta
   for dY = -cDelta to cDelta
      StopFuckingSearch = 0
      nTileNum = 0
      repeat
         CheckSave()
         CheckEq(fPole)
         UO.Print('Fishing @: '+tileArray[nTileNum]+' '+STR(mX+dX)+' '+STR(mY+dY)+' '+mZ)
         Fish(tileArray[nTileNum]+' '+STR(mX+dX)+' '+STR(mY+dY)+' '+mZ)
         if (CheckMsg(FishMsg[0],'System') or CheckMsg(FishMsg[1],'System')) Then
            mapArray[mSize] = tileArray[nTileNum]+' '+STR(mX+dX)+' '+STR(mY+dY)+' '+mZ
            mSize = mSize + 1
            StopFuckingSearch = 1
         else
            if CheckMsg(FishMsg[2],'System') then
               StopFuckingSearch = 1
            endif
         endif
         UO.DeleteJournal()
         nTileNum = nTileNum + 1
         if (nTileNum == 7) then
            StopFuckingSearch = 1
         endif
      until StopFuckingSearch
   next
next
Return mSize
end sub

sub CheckMsg(cMsg, mAuthor)
var ij
ij = UO.InJournal(cMsg)
if ij Then
   if (UO.JournalSerial(ij+1) == mAuthor) then
      return ij+1
   else
      if (mAuthor == 'System') and (UO.JournalSerial(ij+1) == '0x01010101') then
         return ij+1
      endif
   endif
else
   return 0
endif
end sub

sub CheckFExist(fName)
var FileResult = 0
var xx = file(fName)
FileResult = safe call xx.Open()
Return FileResult
end sub

sub SToFile(wtSave, wtsSize, fName)
var wtsLNum
var f=file(fName)
f.Create()
f.Open()
f.WriteLn(STR(wtsSize))
for wtsLNum = 0 to (wtsSize - 1)
   f.WriteLn(wtSave[wtsLNum])
next
f.Close()
end sub

sub ReadFile(fName, Pole)
var tFile = file(fName)
var LLLine, lNum, lSize
tFile.Open()
lSize = safe call tFile.ReadNumber()
fPoleSize = lSize
safe call tFile.ReadLn()
if ((lSize > 0) and IsNumber(lSize)) then
   for lNum = 0 to fPoleSize - 1
      LLLine = safe call tFile.ReadLn()
      Pole[lNum] = Left(LLLine,LEN(LLLine)-1)
   next
else
   Message('Файл пуст')
   UO.Exec("terminate all")
endif
UO.TextPrint('Количество точек вылова:'+STR(lSize))
tFile.Close()
end sub

sub AutoLootSelf()
var CorpseType, CorpseID, SelfID
SelfID = UO.GetSerial()
UO.Click(SelfID)
UO.IgnoreReSet()
If (UO.GetGraphic(UO.GetSerial()) == '0x0190') Then
   CorpseType = '0x2006'
Else
   CorpseType = '0x2006'
EndIf
UO.FindType(CorpseType,'-1','ground')
If (UO.FindCount() > 0) then
   repeat
      UO.FindType(CorpseType,'-1','ground')
      CorpseID = UO.GetSerial('finditem')
      UO.Click(CorpseID)
      if (Right(UO.GetName(CorpseID),Len(UO.GetName(SelfID))) == UO.GetName(SelfID)) Then
         UO.Emptycontainer('50',CorpseID)
         Wait(500)
         UO.Emptycontainer('50',CorpseID)
         Wait(500)
      endif
      UO.Ignore(CorpseID)
      UO.FindType(CorpseType,'-1','ground')
   until (UO.FindCount() == 0)
endif
end sub

sub CheckSpells()
VAR Si, nStop, Result, JPos
JPos = 0
Si = 0
nStop = 1
Result = 0
DIM BadSpells[20]
BadSpells[0] = "In Por Ylem"
BadSpells[1] = "An Mani"
BadSpells[2] = "Vas Flam"
BadSpells[3] = "In Nox"
BadSpells[4] = "Des Sanct"
BadSpells[5] = "In Flam Grav"
BadSpells[6] = "Ort Grav"
BadSpells[7] = "In Jux Hur Ylem"
BadSpells[8] = "Por Corp Wis"
BadSpells[9] = "An Ex Por"
BadSpells[10] = "Corp Por"
BadSpells[11] = "Vas Ort Flam"
BadSpells[12] = "In Ex Grav"
BadSpells[13] = "Vas Flam"
BadSpells[14] = "Kal Vas Xen"
BadSpells[15] = "attacking you*"
BadSpells[16] = "Ort Rel"
BadSpells[17] = "Ort Sanct"
BadSpells[18] = "Flam Kal Des Ylem"
BadSpells[19] = "In Vas Por"
While nStop
   JPos = UO.InJournal(BadSpells[Si])
   If JPos Then
      UO.TextPrint("Чар '"+UO.GetName(UO.JournalSerial(JPos-1))+"' - зафиксирована атака..")
      UO.ServerPrint(UO.GetName(UO.JournalSerial(JPos-1))+" ne kill pliz ya nub na macrose!!!")
      Result = 1
   EndIf
   Si = Si + 1
   If ((Si == 20) or (Result == 1)) Then
      nStop = 0
   EndIf
WEnd
Return Result
end sub

sub IsDanger(dcNum)
VAR Danger_cnt, Cycle_cnt, EmergencyFlag
EmergencyFlag = 0
UO.IgnoreReset()
UO.Set('finddistance','10')
if (dcNum == 0) Then
   UO.IgnoreReSet()
   UO.FindType('0x0010','-1','ground')
   Danger_cnt = UO.FindCount()
   If Danger_cnt > 0 Then
      For Cycle_cnt = 0 To Danger_cnt - 1
         UO.FindType('0x0010','-1','ground')
         If ((UO.GetNotoriety('finditem') >= 3) and (UO.GetSerial('finditem') <> UO.GetSerial())) Then
            UO.Click(UO.GetSerial('finditem'))
            UO.TextPrint('Найден потенциальный враг, имя чара: '+UO.GetName(UO.GetSerial('finditem')))
            EmergencyFlag = 1
            Enemy = UO.GetSerial('finditem')
         EndIf
         UO.Ignore('finditem')
      Next
   EndIf
EndIf
if (dcNum == 1) Then
   UO.IgnoreReSet()
   UO.FindType('0x0096','-1','ground')
   Danger_cnt = UO.FindCount()
   If Danger_cnt > 0 Then
      For Cycle_cnt = 0 To Danger_cnt - 1
         UO.FindType('0x0096','-1','ground')
         If ((UO.GetNotoriety('finditem') >= 3) and (UO.GetSerial('finditem') <> UO.GetSerial())) Then
            UO.Click(UO.GetSerial('finditem'))
            UO.TextPrint('Найден потенциальный враг, имя чара: '+UO.GetName(UO.GetSerial('finditem')))
            EmergencyFlag = 1
            Enemy = UO.GetSerial('finditem')
         EndIf
         UO.Ignore('finditem')
      Next
   EndIf
EndIf
if (dcNum == 2) Then
   UO.IgnoreReSet()
   UO.FindType('0x0191','-1','ground')
   Danger_cnt = UO.FindCount()
   If Danger_cnt > 0 Then
      For Cycle_cnt = 0 To Danger_cnt - 1
         UO.FindType('0x0191','-1','ground')
         If ((UO.GetNotoriety('finditem') >= 3) and (UO.GetSerial('finditem') <> UO.GetSerial())) Then
            UO.Click(UO.GetSerial('finditem'))
            UO.TextPrint('Найден потенциальный враг, имя чара: '+UO.GetName(UO.GetSerial('finditem')))
            EmergencyFlag = 1
            Enemy = UO.GetSerial('finditem')
            Wait(2000)
         EndIf
         UO.Ignore('finditem')
      Next
   EndIf
EndIf
if (dcNum == 3) Then
   UO.IgnoreReSet()
   UO.FindType('0x0190','-1','ground')
   Danger_cnt = UO.FindCount()
   If Danger_cnt > 0 Then
      For Cycle_cnt = 0 To Danger_cnt - 1
         UO.FindType('0x0190','-1','ground')
         If ((UO.GetNotoriety('finditem') >= 3) and (UO.GetSerial('finditem') <> UO.GetSerial())) Then
            UO.Click(UO.GetSerial('finditem'))
            UO.TextPrint('Найден потенциальный враг, имя чара: '+UO.GetName(UO.GetSerial('finditem')))
            EmergencyFlag = 1
            Enemy = UO.GetSerial('finditem')
         EndIf
         UO.Ignore('finditem')
      Next
   EndIf
EndIf
If (dcNum == 4) Then
   EmergencyFlag = CheckSpells()
EndIf
Return EmergencyFlag
end sub

sub TryToRes(HealFlag)
var ResFlag = 0
If UO.Dead() Then
   Repeat
      UO.Recall('self','1')
      Wait(6000)
   Until (NOT UO.Dead())
   AutoLootSelf()
   ResFlag = 1
EndIf
if HealFlag Then
   if ResFlag then
      AutoLootSelf()
      DropRangerStuff()
   endif
   Heal()
endif
end sub

sub DropRangerStuff()
var iX
DIM RangerTool[3]
RangerTool[0] = "0x13B2"
RangerTool[1] = "0x0F4F"
RangerTool[2] = "0x13FD"

DIM RangerArr[3]
RangerArr[0] = "0x0F3F"
RangerArr[1] = "0x1BFB"
RangerArr[2] = "0x1BFB"
For iX = 0 to 2
   UO.FindType(RangerTool[iX],'-1','my')
   UO.Drophere(UO.GetSerial('finditem'))
   Wait(500)
   Stack(RangerArr[iX])
   Wait(500)
Next
end sub

sub GetRangerStuff()
var iX = 0, StopMe = 0
DIM RangerTool[3]
RangerTool[0] = "0x13B2"
RangerTool[1] = "0x0F4F"
RangerTool[2] = "0x13FD"

DIM RangerArr[3]
RangerArr[0] = "0x0F3F"
RangerArr[1] = "0x1BFB"
RangerArr[2] = "0x1BFB"
repeat
   UO.FindType(RangerTool[iX],'-1','ground')
   If (UO.FindCount() and (not StopMe)) Then
      WType = RangerTool[iX]
      UO.Grab('0',UO.GetSerial('finditem'))
      Wait(500)
      UO.FindType(RangerArr[ix],'-1','ground')
      if UO.FindCount() Then
         UO.Grab('100',UO.GetSerial('finditem'))
         Wait(500)
      endif
      StopMe = 1
   endif
   iX = iX + 1
until (StopMe or (iX == 3))
Return WType
end sub

sub Guards()
if ((UO.Timer() - GZTimer) >= 100) then
   UO.ServerPrint('.guards')
   Wait(500)
   UO.ServerPrint('.guards')
   GZTimer = UO.Timer()
endif
end sub

sub TryToKill()
var TTKi,TTKStop, TTKUse, TTKGrabN, WTWeap
TTKi = 0
TTKStop = 0
TTKGrabN = 0
If (GZExist and (UO.GetNotoriety() < 3)) then
   Guards()
Else
   DropRangerStuff()
   Wait(500)
   GetRangerStuff()
   If (UO.GetGraphic(UO.ObjAtLayer('Rhand')) <> WType) Then
      UO.Disarm()
      Wait(500)
   EndIf
   Wait(200)
   UO.EquipT('Rhand',WType)
   Wait(500)
   Repeat
      UO.WarMode(1)
      UO.Attack(Enemy)
      Wait(3000)
      Heal()
   Until ((UO.GetHP(Enemy) == 0) or UO.Dead(Enemy) or UO.Dead() or (UO.GetDistance(Enemy) > 12))
   DropRangerStuff()
EndIf
end sub

sub CheckDanger()
Var dX, DangerFactor, DangerResult
dX = 0
DangerFactor = 0
DangerResult = 0
dX = 0
Repeat
   DangerResult = IsDanger(dX)
   If (DangerResult > 0) Then
      If (dX < 4) Then
         TryToKill()
      Else
         UO.ServerPrint('.guards')
      EndIf
      DangerFactor = 1
   EndIf
   dX = dX + 1
Until (dX == 5) or (DangerResult)
Return DangerFactor
end sub


sub EatCheck()
var GHS, Hung_i, Meal
GHS = 0
Meal = '0x097b'
GHS = GetHungryStatus()
UO.TextPrint('GHS = '+STR(GHS))
If (GHS > 1) then
   For Hung_i = 0 To (GHS - 2)
      Eat(Meal)
      Wait(350)
   Next
EndIf
end sub

sub Eat(wtEat)
If UO.Count(wtEat) then
   UO.UseType(wtEat)
else
   If UO.CountGround(wtEat) then
      UO.UseFromGround(wtEat)
   else
      UO.Print('No meal found.')
   endif
endif
end sub

sub GetHungryStatus()
VAR Ret_i, Cycle_i, LastStr
DIM HArr[11]
HArr[0] = "You are absolutely stuffed!"
HArr[1] = "You are stuffed"
HArr[2] = "You aren't hungry at all"
HArr[3] = "You are a little hungry"
HArr[4] = "You are somewhat hungry"
HArr[5] = "You are REALLY hungry"
HArr[6] = "Your stomash hurts"
HArr[7] = "Your stomash hurts and you feel dizzy"
HArr[8] = "You are starving"
HArr[9] = "You are almost dying of hunger"
HArr[10] = "You are DYING of hunger..."
UO.DeleteJournal()
UO.ServerPrint(".hungry")
Ret_i = 0
Cycle_i = 0
Wait(400)
For Cycle_i = 0 To 10
   If CheckMsg(HArr[Cycle_i],'System') Then
      Ret_i = Cycle_i
   EndIf
Next
RETURN Ret_i
end sub

sub Stack(StackType)
var GroundItem, PackItem
PackItem = ''
GroundItem = ''
if UO.Count(StackType) then
   PackItem = '^'+StackType
endif
if UO.CountGround(StackType) then
   GroundItem = '~'+StackType
endif
if ((PackItem <> '') and (GroundItem <> '')) then
   UO.MoveItem(PackItem,STR(UO.GetQuantity(PackItem)),GroundItem,'0','0','0')
else
   UO.DropHere('^'+StackType)
Endif
end sub

sub Heal()
If UO.Poisoned() Then
   if (UO.SkillVal('Healing') > 730) then
      Repeat
         UO.WaitTargetObject(UO.GetSerial('self'))
         UO.UseFromGround('0x0E21')
         Wait(5000)
      Until ((Not UO.Poisoned()) or UO.Dead())
   else
      Repeat
         UO.ServerPrint("Cure")
         UO.UseFromGround('0x0F07')
         Wait(4000)
      Until ((Not UO.Poisoned()) or UO.Dead())
   endif
EndIf
If ((UO.GetHP() < UO.GetMaxHP()) and UO.Life) Then
   if (UO.SkillVal('Healing') > 0) then
      Repeat
         UO.WaitTargetObject(UO.GetSerial('self'))
         UO.UseFromGround('0x0E21')
         Wait(5000)
      Until ((UO.GetHP() == UO.GetMaxHP()) or UO.Dead())
   else
      Repeat
         UO.ServerPrint("Heal")
         UO.UseFromGround('0x0F0C')
         Wait(4000)
      Until ((UO.GetHP() == UO.GetMaxHP()) or UO.Dead())
   endif
EndIf
end sub

sub CheckEq(cType)
if (UO.Hex2Int(UO.GetGraphic(UO.ObjAtLayer('Lhand'))) <> UO.Hex2Int(cType)) Then
   UO.Unequip('Lhand')
   UO.Unequip('Rhand')
   Wait(1000)
   if UO.Count(cType) then
      UO.UseType(cType)
      Wait(400)
   else
      UO.FindType(cType,'-1','ground')
      if UO.FindCount() Then
         UO.Grab('1',UO.GetSerial('finditem'))
         Wait(1000)
         UO.UseType(cType)
      Else
         if (UO.Count(cType)+UO.CountGround(cType) == 0) then
            UO.ServerPrint('Vaxa, u menya kon4ilis udochki!!!')
            UO.Exec('terminate all')
            UO.CloseUO()
         endif
      EndIf
   EndIf
EndIf
end sub

sub CheckSave()
If CheckMsg("Saving World State",'System') Then
   UO.Print("WorldSave: "+MakeTime())
   UO.DeleteJournal()
   Wait(25000)
EndIf
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 DropIt(WTF)
var DropCnt
For DropCnt = 0 to 3
   if UO.Count(WTF[DropCnt]) Then
      Stack(WTF[DropCnt])
   EndIf
Next
While (UO.Count(WTF[4]) > 0)
   UO.MoveItem('^'+WTF[4],'1',SOSBP)
   Wait(400)
WEnd
While (UO.Count(WTF[5]) > 0)
   UO.MoveItem('^'+WTF[5],'1',MapBP)
   Wait(400)
WEnd
end sub

sub Fish(tPoint)
UO.WarMode(0)
CheckSave()
UO.Exec('waittargettile '+tPoint)
UO.UseObject(UO.ObjAtLayer('Lhand'))
Wait(fTime)
If CheckMsg('There does','System') then
NextDot = 1
EndIf
end sub

sub SetFishTime(fTile)
var fRes = 0
var fTmp
CheckEq(fPole)
fTime = 0
Fish(fTile)
fTmp = UO.Timer()
repeat
Wait(50)
until (CheckMsg('You catch','System') or CheckMsg('They','System') or CheckMsg('Your tool','System') or CheckMsg('There does','System') or CheckMsg('You find','System') or UO.Dead() or CheckMsg('I am already','System'))
fRes = UO.Timer() - fTmp
fTime = fRes * 100
if ((fTime < 3400) or (fTime > 6000)) Then
fTime = 3400
endif
end sub

sub Reconnector()
var ReconnectTime, RFlag
ReconnectTime = '0'
RFlag = 1
Repeat
While (UO.ObjAtLayer('Bpack') == '')
   if RFlag Then
      ReconnectTime = MakeTime()
      RFlag = 0
   endif
   Wait(20000) # WorldSave Protection
   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.Exec('terminate main')
   UO.Exec('exec main')
   UO.TextOpen()
   UO.TextPrint('Disconnected & Reconnected @ '+ReconnectTime)
   RFlag = 1
   ReconnectTime = '0'
endif
Until false
end sub


Top
   
 Post subject:
PostPosted: 2008-08-13 17:31:16 
Offline

Joined: 2008-08-12 14:31:52
Posts: 8
парс эррор задрал капец( помогите...


Top
   
 Post subject:
PostPosted: 2008-08-14 00:53:48 
Offline

Joined: 2008-08-12 14:31:52
Posts: 8
Сначала выдаёт ошибку:
Unhandled exception in parser.
потом сразу
Yo client perfomed an unrecoverable invalid operation.
Terminate? yes/no


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

All times are UTC+02:00


Who is online

Users browsing this forum: Bing [Bot] and 3 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