Мининг в копалке
Posted: 2004-12-05 23:17:26
Помоги дайте скрипт на мининг на скале вдоль домов на инжект чтоб ходил вдоль скалы копал возвращался клал руду в сундук ел и снова в путь
Shtat wrote:Помоги дайте скрипт на мининг на скале вдоль домов на инжект чтоб ходил вдоль скалы копал возвращался клал руду в сундук ел и снова в путь
если ДРВ пиши можем договоритьсяShtat wrote:Помоги дайте скрипт на мининг на скале вдоль домов на инжект чтоб ходил вдоль скалы копал возвращался клал руду в сундук ел и снова в путь
Sfagnum wrote:если ДРВ пиши можем договоритьсяShtat wrote:Помоги дайте скрипт на мининг на скале вдоль домов на инжект чтоб ходил вдоль скалы копал возвращался клал руду в сундук ел и снова в путь
а вот и не надо поклёп возводить, всё родное выпестованное.BETEPAH wrote:Разработка моя а торгуют другие ....)))
Code: Select all
var myX
var myY
var x
var y
var sunX = 1481 ;координаты
var sunY = 945 ;сундука
var hidnehid = 1 ;прячемся/непрячемся (если = 1 то прячемся; если = 0 то нет)
var maxves = 400 ;Максимальный вес который может поднять чар умноженный на 2/3 (если
;скала длинная то поставьте поменьше)
var ElPaus = 1 ;0-Не замечает элема 1-Пауза при выкапывание элема 2-Выход из ультимы при выкапывание элема
var Elsound = 1 ;0-не играем музыку при выкапывание элема 1-играем
var lopata = 0x0E85 ;тайп кирки или лопаты
dim kx[5] ; задает кол-во точек по которым будем ходить
dim ky[5] ; оно же
kx[1] = 1480 ;координаты точек
kx[2] = 1480 ;координаты точек (копание происходит в плотную к скале)
kx[3] = 1480 ;координаты точек
kx[4] = 1480 ;координаты точек !ПРИМЕЧАНИЕ! точки должны быть расположены так
ky[1] = 945 ;координаты точек чтобы между последующими точек
ky[2] = 944 ;координаты точек не было препятствий (если препятствия есть
ky[3] = 943 ;координаты точек над забить в координаты путь в обход)
ky[4] = 942 ;координаты точек
sub mining1() ;основной скрипт (запускать надо его)
;Numcheck()
var i
for i=1 to 4 ;здесь надо указать число точек (из 13-14 строки) - 1(минус одна точка)
myX = UO.GetX ;получение настоящих
myY = Uo.GetY ;координат
if myX = kx[i] and myY = ky[i] then ;проверяем не там ли мы стоим где надо (может тащится не придется)
dig() ; процесс копания
else
x = kX
y = kY
gotoXY() ;идем в точку копания
dig() ;пришли и копаем
endif
var ves
ves=UO.Weight
if ves > maxves then
x = sunX ;чтобы идти
y = sunY ;к сундуку
gotoXY()
CheckLag()
end sub
sub Dig() ;непосредственно сам процесс копания (спёрт мною из скрипта Ветерана-Сфагнума-Асканели правда слегка переработан)
var mx = UO.GetX("self"), my = UO.GetY("self"), mz = UO.GetZ("self"),TileNum='1339', t=0
var i,j
for i = mx-1 to mx-1 ;в каком направление от вас копать по оси "Х"(для тех трафик экономит подбирайте точнее)
for j = my-2 to my+2 ;оно же токо по "У" (а для остальных везде от -3до+3)
UO.Print("Now Mining In: "+str(mx-i)+" "+str(my-j))
while not UO.InJournal("no ore here") and not UO.InJournal("location") and not UO.InJournal("far away") and not UO.InJournal("in rock")
if hidnehid=1 then
ToHide() ;Прячемся
endif
CheckLag() ;Проверяем лаги
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Usetype(lopata)
while not UO.InJournal("You put") and not UO.InJournal("location") and not UO.InJournal("no ore") and not UO.InJournal("but fail") and not UO.InJournal("far away") and not UO.InJournal("in rock")
wait(500)
wend
elemental()
if UO.InJournal("but fail") then
wait(1000)
end if
wend
UO.DeleteJournal()
next
next
return 1
end sub
sub gotoXY() ;Функция хождения (писал сам так что смурная) ПРОШУ НЕ ПИНАТЬ НОГАМИ!
;Работает так: Перед использованием функции в тексте скрипта надо указать координаты
;"Х" и "У" той точки куда будем идти (например: x = 1480 и y=954) при работе данной функции
;должна быть не нажата Num Lock
repeat
sub CheckLag()
myX = UO.GetX
myY = UO.GetY
if x < myX then
UO.press num 7
wait 500
endif
if x > myX then
uo.press num 7
wait 500
endif
sub CheckLag()
myX = UO.GetX
myY = UO.GetY
if y < myY then
UO.press num 9
wait 500
endif
if y > myY then
UO.press num 1
wait 500
endif
until myX = x and myY = y
end sub
sub CheckLag() ; проверка на лаги (не надо трогать и так хорошо работает)
uo.DeleteJournal()
uo.Click('backpack')
repeat
wait(50)
until uo.InJournal('backpack')
uo.DeleteJournal()
end sub
sub ToHide() ;Хидимся пока не уйдем в хайд
while not UO.Hidden()
CheckLag()
UO.WarMode(0)
UO.UseSkill('Hiding') ;Кто хочет за одним покачать стелф а ни хайд заменить на 'Stealth'
repeat
wait(200)
until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preocopured') or UO.InJournal("attacking you") or UO.Dead()
wend
end sub
sub UnLoad() ;система перекладывания руды и камней(сперта из того же скрипта что и Dig() )
var j
DIM Item[13]
Item[1]=0x19B9 ; >3 ore
Item[2]=0x19B7 ; 1 ore
Item[3]=0x19BA ; 2 ore
Item[4]=0x19B8 ; 3 ore
Item[5]=0x0F11 ; saphires
Item[6]=0x0F16 ; amethysts
Item[7]=0x0F18 ; tourmalines
Item[8]=0x0F15 ; citrines
Item[9]=0x0F10 ; emeralds
Item[10]=0x0F0F ; star sapphires
Item[11]=0x0F26 ; diamonds
Item[12]=0x0EED ; gold
for j = 1 to 12
UO.FindType(Item[i], '-1', 'backpack')
while UO.GetQuantity('finditem') > 0
UO.MoveItem('finditem','-1','0x400F895A') ; Здесь надо указать ID своего сундука
Wait(1000)
CheckLag()
UO.FindType(Item[i], '-1', 'backpack')
wend
next
end sub
sub elemental() ;Функция на проверку элементалей
if ElPaus == 1 or 2 then
if uo.InJournal("OOPS!!!") or uo.InJournal("is attacking you") or uo.Dead() then
if ElSound == 1 then
uo.PlayWav("C:\UO\123.wav")
end if
if ElPaus == 2 then
UO.Print("All scripts are terminated!")
UO.exec("terminate all")
UO.CloseUO()
ElementalDanger()
end if
end if
end sub
sub ElementalDanger() ; Под-функция проверки на элемов
uo.DeleteJournal()
repeat
wait(1000)
uo.Print('Выкопан Элементал!')
wait(3000)
uo.Print('Скрипт на паузе!')
until uo.InJournal('GO')
uo.Print('Скрипт продолжен!')
end if
end sub
sub Numcheck() ;Писал на проверку нажатасти нам лок (но может не работать)
uo.DeleteJournal()
OU.press num 5
if not uo.InJournal('5') then
UO.press (num lock)
end sub