Помидорами не кидать ))ибо скрипт не проверен, не начем ))) И писался от болды ...я писал я до этого года так два назад )))
так что не факт что заработает если что найдутся Скриптеры которые поправят ))
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')
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
Да ПС ))) Я не Бот и не Взломщик , я настоящий .... ))
Сюды МНЕ не стоит писать лучше флудите в аську )
А по скрипту пишите сюды )