Скупка(помогите плз)

Ask for scripts here

Moderators: Murderator+, Murderator

Post Reply
macxag
Posts: 12
Joined: 2009-05-10 10:56:24
Contact:

Скупка(помогите плз)

Post by macxag »

Люди добрые помогите плз,замучался!Искал ни где не нашел!Чтоб чар доставал руны из книги,реколился,ложил обратно и сли заряды кончаются маркал!Есть скрипт ВЕТЕРАНА,но он нехочет работать,но он по рунам!

ВОТ СКРИПТ

Code: Select all

#################################### 
#### Скрипт на торговлю 2.2 ########
####################################
Var rune = '0x1F14' # тип рунок
####################################
# ОГРОМНАЯ ПРОЗЬБА ШАПКУ НЕ ВЫРЕЗАТЬ ! НЕ ВСЕ ШАРЮТ В СКРИПТАХ И МОГУТ ПОНЯТЬ ЧТО НАДА ЗАПУСКАТЬ!.
#####################################################################
# Запускается Сначала скрипт options ,этот скрипт запомнит все что вам нужно для скрипта.
# Потом постоянно скрипт Starter. Если надо что то поменять то запустите Options еще раз.
# Встаньте "дома" перед сундуком для покупок. В сундуке должна быть сумка куда скидывать покупки.
# В паке - сумка с рунками по магазинам( достаточно по 1 руне в магаз ), сумка пустая , сумка с бланк рунками,
# Замарченую рунку с марком у сундука ( в упор !). Ну и мешочек с регами для рекола и для марка.рмально.
# Скрипт летает по рункам из сумки с рунками , если мало зарядов перемарчивает рунки. При весе в 450 стоунов,
# летит домой и выгружается. ВЫгрузка происходит автоматом ВСЕГО что в паке, потом добор из масива обратно вещей.
# Для безопастности имейте в паке рунбук с рунками на всякий случай и Кейринг с ключами. А то вдруг убьют.
# Скрипт написан ВЕТЕРАНом.
# Не мои модули - ходилка , система речарджа рун, система рекола.
#
#
################## ПЕРЕМЕННЫЕ которые нужно править##################
#####################################################################
var BuyListName = 'Reg' ;название листа продажи (щас Reg)
var Whtime = 180 ;сколько ждать сек после разгрузки. (ждет 180 сек)
var CheckStam=0 ; Модуль проверки стамины ( если мало будет стоять )
var RuneB, RuneB2, RuneBag, RuneH, StoreBAG, Nrune
### По вопросам и предложениям обращаться сюда:
### ICQ: 233461603 (ВЕТЕРАН)
#####################################################################
# 2007-2009 #



sub Options()########################################## Конфиг


UO.Say("Добрый день. Вас привествует скрипт настройщик!")
wait(3000)
UO.Say("Следуйте инструкциям!")
wait(3000)
UO.Say("Вы должны стоять лицом к сундуку для сброса покупок!")

wait(4000)

UO.Say("Укажите сундук прицелом")
UO.AddObject('Sunduk')
While UO.Targeting()==2
wait(500)
Wend
UO.SaveConfig()

UO.Say("Отлично")
UO.UseObject('backpack')
wait(3000)
UO.UseObject('Sunduk')
wait(1000)


UO.Say("Укажите Сумку с Замарчеными рунками в вашем вещь-мешке.")
UO.AddObject('RuneB')
While UO.Targeting()==2
wait(500)
Wend
UO.SaveConfig()

UO.Say("Укажите ПУСТУЮ Сумку в паке (Для переброса рунок).")
UO.AddObject('RuneB2')
While UO.Targeting()==2
wait(500)
Wend
UO.SaveConfig()

UO.Say("Укажите Сумку в паке с кучей пустых рунок.")
UO.AddObject('RuneBag')
While UO.Targeting()==2
wait(500)
Wend
UO.SaveConfig()

UO.Say("Укажите Рунку ДОМ( положите ее отдельно в пак ).")
UO.AddObject('RuneH')
While UO.Targeting()==2
wait(500)
Wend
UO.SaveConfig()

UO.Say("Укажите сумку для покупок куда скидывать покупки (В СУНДУКЕ! )")
UO.AddObject('StoreBAG')
While UO.Targeting()==2
wait(500)
Wend
UO.SaveConfig()

wait(3000)

UO.Say("Настройка закончена. Для изменения параметров запустите скрипт повторно.")
end sub



sub Start()########################################## Стартер

uo.set('buydelay','5000')
UO.Set('finddistance',9)

UO.Print("Поехали по магазинам.")
wait(2000)

repeat
uo.findtype('rune','-1','RuneB')

while uo.FindCount()

uo.findtype('rune','-1','RuneB')


Nrune=uo.GetSerial('finditem')

RecallRune(Nrune)
ContCharges()
BuyPRG()


#uo.moveitem('Nrune','-1','RuneB2')

UO.MoveItem(Nrune, 0, RuneB2)

Nrune = 0

if uo.weight > 450 then
RecallRune(RuneH)
ContChargesH()
Loot()
endif

uo.findtype('rune','-1','RuneB')

wend

uo.findtype('rune','-1','RuneB2')
wait(100)
while uo.findcount()>0
uo.MoveItem('finditem',-1,'RuneB')
wait(1000)
uo.findtype('rune','-1','RuneB')
wait(100)
wend

until uo.dead()

end sub


Sub ContCharges()
var rID
uo.Print("проверка количества зарядов...")
wait(1000)
uo.DeleteJournal()
uo.click('Nrune')
wait(2000)
if Uo.Injournal("(2 charges)") OR Uo.Injournal("(1 charges)") then
rID = uo.GetSerial('Nrune')
Mark(rID,0)
end if
end sub


Sub ContChargesH()
var rID
uo.Print("проверка количества зарядов...")
wait(1000)
uo.DeleteJournal()
uo.click('RuneH')
wait(2000)
if Uo.Injournal("(2 charges)") OR Uo.Injournal("(1 charges)") then
rID = uo.GetSerial('RuneH')
Mark(rID,1)
end if
end sub



Sub Mark(RuneID,Place)

var mark_key = 0

uo.Print("Выбрасываем старую рунку... ")
uo.drophere(RuneID)

Uo.UseObject(RuneBag)

wait(500)
uo.findtype(rune,'-1',RuneBag)
if uo.FindCount() then
uo.moveitem("finditem",'-1','backpack')
wait(700)

else

var Emsg = "Нет пустых рунок!!"
FatalError(Emsg)
end if

while mark_key == 0

If Uo.Mana < 50 then
while Uo.Mana < Uo.Int
Uo.Useskill("Meditation")
wait(5000)
wend
endif
Uo.DeleteJournal()
wait(500)
Uo.Cast("Mark",'finditem')
wait(10000)
mark_key = 1
if Uo.Injournal("spell") then
mark_key = 0
endif
wend

mark_key = 0


Uo.WaitTargetObject('finditem')

if Place == 0 then

uo.Exec('addobject Nrune')
wait(1500)


else


uo.Exec('addobject RuneH')

wait(1500)
endif
end sub




###################################################
Sub FatalError(Emsg)
while not uo.Dead()
uo.Print("Продолжение работы скрипта невозможно")
uo.Print("Причина : " + Emsg)
wait(5000)
wend
end sub





Sub RecallRune(nowrune)
wait(1000)
uo.Print("улетаем по руне")
var oldX,oldY
oldX = Uo.GetX()
oldY = Uo.GetY()
Uo.Useskill("Meditation")
wait(5000)
Repeat
If Uo.Mana < 30 then
while Uo.Mana < Uo.Int
Uo.Useskill("Meditation")
wait(5000)
wend
endif
Uo.Cast("Recall",nowrune)
wait(8000)
Until oldX<>UO.GetX() AND oldY<>UO.GetY()
end sub




sub BuyPRG()########################################## Закупка
DIM Vens[2]
Vens[1]=0x0190
Vens[2]=0x0191
VAR LastTimer
var mx, my, mz, g
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
uo.ignorereset()
uo.ignore('self')

UO.UseObject('backpack')
UO.print("Начанаем Закупку!")

UO.say(" Используется скрипт написаный ВЕТЕРАНом! IСQ 233461603")
######################
for g=1 to 2
repeat
wait(1000)

UO.FindType(Vens[g],-1,'ground')
If uo.FindCount()> 0 then
UO.Print(uo.GetName('finditem')+ " Замечен, иду к нему.")

if CheckStam==1 then
While UO.Stamina < 60
uo.Print("Low Stamina")
wait(2000)
wend
end if

UO.Exec(walkn(0,0,'finditem'))
LastTimer=UO.Timer()


If UO.GetDistance('finditem')<=2 then
UO.Print("Закупаю....")
wait(1000)
uo.Buy(BuyListName,UO.GetName('finditem'))
wait(1000)
CheckLag()
uo.say(uo.GetName('finditem')+ " bye")
else
UO.Print(uo.GetName('finditem')+ " заныкался!, В &@$#% его.")
end if

uo.ignore('finditem')
end if

until uo.FindCount()==0
next

######################
end sub




sub Loot()
var Wtime = 1
while not UO.Hidden()
UO.Warmode("0")
UO.UseSkill("Stealth")
wait(4000)
wend

var i
dim fastloot[17]
fastloot[0]=0x0EFA ; Runebook
fastloot[1]=0x0EFA ; Spellbook
fastloot[2]=0x0E9B ; a mortar and pestle
fastloot[3]=0x0F51 ; dagger
fastloot[4]=0x0E76 ; a bag
fastloot[5]=0x0E20 ; bloody bandages
fastloot[6]=0x0E21 ; clean bandages
fastloot[7]=0x1008 ; Basin
fastloot[8]=0x176A ; Keys
fastloot[9]=0x0F9E ; Scisors
fastloot[10]=0x0EED ; GP
fastloot[11]=0x0000
fastloot[12]=0x0000
fastloot[13]=0x0000
fastloot[14]=0x0000
fastloot[15]=0x0000
fastloot[16]=0x0000

wait(1000)
UO.UseObject('Sunduk')
wait(1000)
UO.UseObject('StoreBAG')
wait(1000)

for i=0 to 10
repeat
uo.findtype(fastloot[i],-1,'backpack')
if uo.findcount()>0 then
wait(500)
uo.ignore('finditem')
endif
until uo.findcount()==0
next

repeat
uo.findtype(-1,-1,'backpack')
uo.SetReceivingContainer('StoreBAG')

if uo.findcount()>0 then
CheckLag()
uo.grab('all','finditem')
wait(500)
endif
until uo.findcount()==0
uo.ignorereset()
uo.UnSetReceivingContainer()
UO.Print('Ждем '+str(Whtime)+ ' секунд.')
Wtime = Whtime
wait(1000)
while Wtime > 0
wait(1000)
Wtime = Wtime - 1
UO.Print('Осталось '+str(Wtime)+ ' секунд.')
wend
if Wtime == 0 then
Wtime = Whtime
end if

end sub



sub WalkN(x,y,Target) ########################################## Ходилка
VAR LastTimer
LastTimer=UO.Timer()
VAR i
VAR dir,ldir,rdir,key,olddir
VAR dx,dy,Exit=0
VAR CacheLimit=9,CacheIndex="Text"
DIM CacheX[10], CacheY[10]

CacheX[0]="Test"
While Exit<>1
If Target<>"" Then
dx=UO.GetX(Target)-UO.GetX()
dy=UO.GetY(Target)-UO.GetY()

If UO.GetDistance(Target)<2 OR LastTimer+200<UO.Timer() Then
wait(2000)
Exit=1
Endif
Else
dx=x-UO.GetX()
dy=y-UO.GetY()
If dx==0 AND dy==0 OR LastTimer+200<UO.Timer() Then

Exit=1
Endif

Endif

If dx<>0 AND dy<>0 Then
If dx>0 AND dy>0 Then ; GoSE
dir=3
ldir=2
rdir=4
key=40 ; DownArrow
olddir=UO.GetDir()
If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
If olddir==2 Then ; GoNE
dir=1
ldir=0
rdir=1
key=39 ; RightArrow
While UO.GetDir()<>1
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSW
dir=5
ldir=5
rdir=6
key=37 ; LeftArrow
While UO.GetDir()<>5
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif

If dx>0 AND dy<0 Then ; GoNE
dir=1
ldir=0
rdir=2
key=39 ; RightArrow
olddir=UO.GetDir()
If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
If olddir==0 Then ; GoWN
dir=7
ldir=6
rdir=7
key=38 ; UpArrow
While UO.GetDir()<>7
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSE
dir=3
ldir=3
rdir=4
key=40 ; DownArrow
While UO.GetDir()<>3
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif

If dx<0 AND dy>0 Then ; GoSW
dir=5
ldir=4
rdir=6
key=37 ; LeftArrow
olddir=UO.GetDir()
If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
If olddir==6 Then ; GoWN
dir=7
ldir=7
rdir=0
key=38 ; UpArrow
While UO.GetDir()<>7
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSE
dir=3
ldir=2
rdir=3
key=40 ; DownArrow
While UO.GetDir()<>3
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
If dx<0 AND dy<0 Then ; GoWN
dir=7
ldir=6
rdir=0
key=38 ; UpArrow
olddir=UO.GetDir()
If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
If olddir==0 Then ; GoNE
dir=1
ldir=1
rdir=2
key=39 ; RightArrow
While UO.GetDir()<>1
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSW
dir=5
ldir=4
rdir=5
key=37 ; LeftArrow
While UO.GetDir()<>5
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
Endif

If dx<>0 AND dy==0 Then
If dx>0 Then ; GoE
dir=2
key=34 ; PgDown
olddir=UO.GetDir()
If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
If olddir==2 Then ; GoSE
dir=3
ldir=3
rdir=4
key=40 ; DownArrow
While UO.GetDir()<>3
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoNE
dir=1
ldir=1
rdir=0
key=39 ; RightArrow
While UO.GetDir()<>1
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif

If dx<0 Then ; GoW
dir=6
key=36 ; Home key
olddir=UO.GetDir()
If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
If olddir==0 Then ; GoWN
dir=7
ldir=7
rdir=0
key=38 ; UpArrow
While UO.GetDir()<>7
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSW
dir=5
ldir=4
rdir=5
key=37 ; LeftArrow
While UO.GetDir()<>5
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
Endif

If dx==0 AND dy<>0 Then
If dy>0 Then ; GoS
dir=4
key=35 ; End
If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
If olddir==2 Then ; GoSE
dir=3
ldir=2
rdir=3
key=40 ; DownArrow
While UO.GetDir()<>3
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSW
dir=5
ldir=6
rdir=5
key=37 ; LeftArrow
While UO.GetDir()<>5
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif

If dy<0 Then ;GoN
dir=0
key=33 ; PgUp
olddir=UO.GetDir()
If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
If olddir==2 Then ; GoNE
dir=1
ldir=1
rdir=2
key=39 ; RightArrow
While UO.GetDir()<>1
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoWN
dir=7
ldir=7
rdir=6
key=38 ; UpArrow
While UO.GetDir()<>7
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
Endif
Wend
end sub


sub StepEdit(x,y,dir,key)
VAR walkwait=50
VAR ErrLevel=0
If UO.GetDir()<>dir Then
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir Then
CheckLag()
Endif
Endif
UO.Press(key)
wait(walkwait)
If x==UO.GetX() AND y==UO.GetY() Then
CheckLag()
If x==UO.GetX() AND y==UO.GetY() Then
;zatik
ErrLevel=1
Endif
Endif
Return ErrLevel
end sub


sub StepArrow(x,y,dir,ldir,rdir,key)
VAR walkwait=50
VAR ErrLevel=0
If UO.GetDir()<>dir Then
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir AND UO.GetDir()<>ldir AND UO.GetDir()<>rdir Then
CheckLag()
Endif
Endif

If UO.GetX()==x AND UO.GetY()==y Then
UO.Press(key)
wait(walkwait)
If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then
CheckLag()
If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then
; zatik
ErrLevel=1
Endif
Endif
Endif
Return ErrLevel
end sub


sub CheckLag()
UO.DeleteJournal()
UO.Click('backpack')

repeat
wait(500)
until UO.InJournal('backpack')
end sub

sub Stealth()
var count=0
UO.DeleteJournal()
repeat

while not UO.Hidden()
UO.Warmode("0")
UO.UseSkill("Stealth")
wait(20000)
wend

until UO.Dead()
end sub

sub Reconnect()
var ReconnectTime,rFlag
ReconnectTime='0'
rFlag=1
repeat
while (uo.ObjAtLayer('Bpack')=='')
if rFlag then
ReconnectTime=MakeTime()
rFlag=0
end if
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'
end if
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
end if
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
end if
next
ret=t+" @ "+d
return ret
end sub

sub GMStep()
If UO.Dead() Then
UO.Print("You are Dead")
return
End If
If UO.GetGlobal('GMstepCheck')=='on' Then
UO.SetGlobal('GMstepCheck','off')
UO.Print("GM Step: Off")
UO.Morph('0')
UO.Msg('.resync')
Else
UO.SetGlobal('GMstepCheck','on')
UO.Print("GM Step: On")
UO.Morph('0x03DB')
UO.Msg('.resync')
End If
end sub


sub Terminate()
uo.DeleteJournal()
uo.Print('Все функции скрипта выключены!')
uo.Exec('terminate all')
wait(100)
end sub
Post Reply