Mining v 3.7

Ask for help

Moderators: Murderator+, Murderator

Post Reply
SoulMaster
Posts: 20
Joined: 2004-10-11 19:35:24

Mining v 3.7

Post by SoulMaster »

У меня есть скрипт майнинг 3.7 написанный ветеранном и кулером... вот... вообщем толи это баг толи ещё что то но:

когда появляется ПК чар реколится домой, скидывает руду и СРАЗУ после скидывания реколиться в шахту... что делать? :(
SoulMaster
Posts: 20
Joined: 2004-10-11 19:35:24

Post by SoulMaster »

подскажите пожалуйста что не так...
AGRS
Expert!
Posts: 1007
Joined: 2004-04-04 21:40:09
Contact:

Post by AGRS »

Это он над ПК издевается. :lol:
SoulMaster
Posts: 20
Joined: 2004-10-11 19:35:24

Post by SoulMaster »

шутник... срипт написать? я просто не понимаю где там функцию recall :(
AGRS
Expert!
Posts: 1007
Joined: 2004-04-04 21:40:09
Contact:

Post by AGRS »

SoulMaster wrote:шутник... срипт написать? я просто не понимаю где там функцию recall :(
Напиши. Только в CODE, иначе даже смотреть не стану.
SoulMaster
Posts: 20
Joined: 2004-10-11 19:35:24

Post by SoulMaster »

Code: Select all

 ############################################ 
###    Mining / Копание руды v3.7 Full   ### 
############################################ 
###    Шард Dragon World / www.*******   ### 
############################################ 
### Внимание: 
### Для  работы скрипта нужна версия YokoInjection 4DZ. 
### Скачать dll этой версии можно                      
### от сюда:***************     
########################################################## 
### Авторы: 
### - BETEPAH реавтор, главный скриптер. 
### - cOoler добавлял, редактировал перевод и скрипт. 
### А также: 
### -Большое Savage, за систему сброса руды. 
############################################ 
############################# 
### Описание и настройка  ### 
############################# 
### Обратите внимание на значки "]![" ими выделенны важные сообщения. 
### 
### Чар стоит в пещере(не Vip) и копает вокруг себя. 
### После достижения "максимального" веса(в данном случие это 625 стоунов) 
### "порталится" домой скидывает руду в сундук, после реколится обратно и продолжает копать. 
### Пример: стоите копаете, дошли до придела в 625 веса сработала система рекола 
### и вы "порталитесь" домой и складываете руду в сундук,после вы реколитесь обратно в пещеру и продолжаете копать(цикличность). 
### 
#################### 
### Нововведения ### 
#################### 
### 1)Руда складываются не на пол а в сундук. [BETEPAH] 
### 2)Рекол в пещеру и домой по рунбуке(а не по рункам). [BETEPAH] 
### 3)Система сброса руды переделана из MassMove(что в свою очередь иногда приписывалось как фаст лут)в перемещение через 
### Масив.[написана Savage, встроена BETEPAH] 
### 4)Упразнена система выбора "главных обьектов"(теперь просто указываем прицелом). [BETEPAH] 
### 5)Добавлен реконнект и выбор его использования. [Fox M, поместил COoler] 
### 6)Упразднена установка веса и время(пока уйдет ПК). [cOoler] 
### 7)Добавлен выбор ставить или нет скрипт на паузу при выкопке Элементала. [cOoler] 
### 8)Убыстрен рекол по руне(от ПК). [cOoler] 
### 
### ]![ Чтобы скрипт заработал внимательно прочтите настройки. ]![ 
### 
################################### 
###    Режимы работы скрипта     ###    
################################### 
### Работает в 2ух режимах:     ### 
### 1)Копание                   ### 
### 2)Супорт                    ###  
################################### 
###   Режим Первый - "Копание"  ### 
################################### 
### "sub Mining()" 
### Этот режим главный и отвечает за копание. 
### 
### Положите в суммку к себе рунбук(с рунами домой и в шахту), кирку или лопату, рунку к сундуку(по суте копия той что у вас 
### в рунбуке). 
### Идите в пещеру в котором вы хотите копать. 
### Запустите Скрипт Mining(), инжект попросит вас указать кирку 
### (появится прицел,прицелом на кирку которую вы с собой взяли), потом инжект попросит вас указать рунбук(появится прицел, 
### прицелом на рунбук ). 
### ]![ Внимание!!! В рунбуке руна в 1ом слоте "Домой", в 8ом "в Шахту". ]![ 
### ]![ Внимание в скрипте рунбуки настроены под ДРВ шард. ]![  
### Инжект сообщит вам что "Пытаемся уйти в хайд..." тоесть чар уйдет в хайд. 
### Чар автоматом возмет в руки кирку и начнет "окапаватся". 
### Если выкопали Элементала то скрипт включит "серену" и встанет на паузу пока вы просто не скажите "GO".(так как вы в хайде) 
### Если появился ПК то чар зареколится к сундуку (по рунке, так как на ДРВ рекол через рунбук 8,7 сек, а по рунке 2,3 сек) 
### выкинет руду в сундук и будет ждать определенное время которое вы поставите в скрипте. 
### 
### Чтобы все заработало в скрипте поставте свои значения: 
### var WaitTime=180000 - Время в секундах при ожидании пока уйдет ПК. [строка 153] 
### 
################################### 
###   Режим Второй - "Супорт"   ### 
################################### 
### "DropOres()" 
### Этот скрипт отвечает за сброс руды в сундук. 
### После "рекола" домой чар при помощи этого скрипта сбросит руду в сундук (лучше в сейф). 
### var UnloadCont='0x40041342' - ID сундука для сброса руды, поставте свой. [строка 196] 
### 
### "PKDanger()" 
### Скрипт "спасатель", отвечает за рекол по любой рунке у вас в паке + реги (включается если прешел ПК) 
### будет пытатся реколится пока не "улетит" из пещеры (защита от физла). 
### 
### "ElementalDanger()" 
### Скрипта пауза если выкопали Элементала. 
### Если вы выкопали Элементала скрипт как бы "зависнет"(встанет на паузу) за это время вы можете убить Элементала, 
### привратившись в Демона или привести Дракона. 
### После просто скажите в игре "GO" и чар продолжит копать. 
### 
### "ElementalAlarmSound() и PKAlarmSound()" 
### Скрипты "сирены" отвечают за проигрование Звуковых файлов (wav) при выкапывании элема или поялении ПК 
### uo.PlayWav("D:\Ultima Online\Injection\Lumb Sound\humiliation.wav") - укажите на примере этого путь к своим файлам. [строчки 239 и 243] 
### 
###################################### 
### Дополнительные функции скрипта ### 
###################################### 
### В скрипте 3 доп. функции:      ### 
### 1)Побег при Появлении ПК       ### 
### 2)Пауза при Выкапывании Элема  ### 
### 3)Реконнект                    ### 
################################################# 
### Функция Первая - "Побег при Появлении ПК" ### 
################################################# 
### Этот режим соответственно отвечает за Побег при появлении пк. 
### 
### Побег происходит так: 
### Замарчите Руну возле сундука. 
### Положите к себе в сумку 
### Руну(которую замарчили) и Реагенты.(Black Pearls,Blood Moss,Mandrake Root.) 
### ]![ Внимание руна должна лежать в стандартном положении(как продается, только замарканная). ]![ 
### При появлении пк,прозвучит сигнал- 
### uo.PlayWav("D:\Ultima Online\Injection\Lumb Sound\humiliation.wav") 
### - Здесь можете сменить чтобы был звук при появлении ПК. 
### чар автоматически телепортнется к сундуку. 
### При этом выложит всю руду в сундук и будет "ждать" 
### время которое вы указали в переменной - var WaitTime=18000. 
### Чар подождет указанное время а потом портанется обратно, встанет в хайд и продолжит копать. 
### 
###################################################### 
### Функция Вторая - "Пауза при Выкапывании Элема" ### 
###################################################### 
### Этот режим соответственно отвечает за Паузу при выкапывании Злементала. 
### Включается переменной var ElementalPause=1 ## 1 - Включить паузу при выкапывании Элементала, 0 - выключить.  
### То есть если ElementalPause=1 скрипт будет вставать на паузу. 
### 
### При паузе: 
### Поставте переменную ElementalPause равную 1 (ElementalPause=1). 
### Если чар выкопает элема,то прозвучит сигнал который вы указали - 
### uo.PlayWav("D:\Ultima Online\Injection\Lumb Sound\humiliation.wav") 
### - Здесь можете сменить чтобы был звук при выкапывании Элементала. 
### и скрипт встанет на паузу до того времени как вы ненапишите в игре "GO". 
### После того как вы напишите "GO" чар продолжит копать. 
### 
#################################### 
### Функция Третья - "Реконнект" ### 
#################################### 
### Этот режим соответственно отвечает за Реконнект при выкидывании с сервера. 
### Включается переменной var Reconnect=0 ## 1 - Включить реконнект на сервер если выкинет, 0 - отключить реконнект. 
### То есть если Reconnect=1 чар будет реколиться при атаке. 
### 
### Реконнект происходит так: 
### Поставте переменную Reconnect равную 1 (Reconnect=1). 
### Если вдруг повиснет игровая сфера или вас выкинет по любой другой причине 
### реконнектор законнектит вса на сервер автоматически. 
### Пишется время дисконнекта и коннекта на сервер. 
### 
### Настройте скрипт под себя при помощи переменных. 
### 
##################### 
### Патчи Вердаты ### 
##################### 
### Сдесь я приведу пару ссылок на патчи которые помогут вам копать: 
### 
### 1)cave floor - для тех кто предпочитает копать вручную, этот файл-патч отделяет тайлы в пещерах друг от друга, 
### что приводит к более комфортабельному копанию. 
### Линк(ссылка): 
### *********************
### 
### 2)clean dungeons - в пещерах и подземельях не виден всякий мусор, как то: кости, мусор, большая паутина, 
### все сталагмиты заменены на маленькие и т.д. 
### Линк(ссылка): 
### ***********************
### 
### 3)ore mod - большое количество руды (больше 4 шт.) выглядит как маленькая кучка (3 шт.), 
### а изображение руды в количестве одной и двух штук уменьшено. 
### Линк(ссылка): 
### ****************
### 
### Все патчи проверены и протестены, но скрипт работает и без них, так что ставить или нет - это ваше решение. 
### 
### Удачи и приятного Мининга. 8) 
##################################################################### 
################## 
### Переменные ### 
################## 
### var TryToHide=1 ## - 1 - Включить уход в хайд перед копанием, 0 - выключить(советую включить 8)). 
### var WaitTime=18000 ## - Время в секундах при ожидании пока уйдет ПК 
### (ставьте скока считаете нужным, время в секундах). 
### var MaxWeight=800 ## - Вес при котором реколимся домой(как тока накопает руды до этого веса реколится, 
### ставьте максимальный вес который может унести чар). 
### 
### После настройки: 
### Идите в шахту в которой вы хотите копать. 
### Запустите cкрипт Mining(), Инжект попросит вас указать Лопату 
### (появится прицел, прицелом на лопату который вы с собой взяли), потом инжект попросит вас указать Рунбук(появится прицел, прицелом на него). 
### После этого чар "уйдет" в хайд и будет копать вокруг себя. 
########### 
### Код ### 
########### 
sub Mining() 
var mX, mY, mZ, i, j, jor, ser, noto 
###################### 
### Меню / Options ### 
###################### 
################################################################################# 
### 
var TryToHide=1 ## - 1 - Включить уход в хайд перед копанием, 0 - выключить. 
### 
var WaitTime=18000 ## - Время в секундах при ожидании пока уйдет ПК. 
### 
var MaxWeight=500 ## - Вес при котором реколимся домой.(Максимальный вес) 
### 
var Reconnect=0 ## 1 - Включить реконнект на сферу при дисконнекте, 0 - выключить. 
### 
var ElementalPause=1 ## 1 - Включить паузу при выкапывании Элементала, 0 - выключить. 
### 
uo.Set('norbcheck','1') ## - Для рекола. 
### 
uo.Set('norbcalc','1') ## - Для рекола. 
### 
################################################################################# 

uo.Print('Выбери какой палкой копать: ') 
uo.Exec('addobject Shovel') 
while uo.Targeting() 
wait(100) 
wend 

uo.Print('Выбери книгу рунбук: ') 
uo.Exec('addobject Runebook') 
while uo.Targeting() 
wait(100) 
wend 

if Reconnect==1 then 
uo.Exec('exec Reconnect') 
end if 

beginning: 
mX = uo.getX("self") 
mY = uo.getY("self") 
mZ = uo.GetZ("self") 
uo.DeleteJournal() 
for i = mX-4 to mX+4 
for j = mY-4 to mY+4 

if TryToHide==1 then 
ToHide() 
end if 

uo.Print("Добываем кхе кхе в: "+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") and not uo.InJournal("Iron Ore") and not uo.InJournal("Copper") and not uo.InJournal("Rusty Ore") 
uo.DeleteJournal() 
if uo.Waiting() then 
uo.Canceltarget() 
end if 
uo.Waittargettile("1341", str(i), str(j), str(mZ)) 
uo.Useobject("Shovel") 
while not uo.InJournal("You put") and not uo.InJournal("heavy") 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) 

if ElementalPause==1 then 
if uo.InJournal("OOPS!!!") or uo.InJournal("is attacking you") or uo.Dead() then 
ElementalAlarmSound()  
ElementalDanger() 
end if 
end if 

for jor = 0 to 9 
ser = uo.JournalSerial(jor) 
noto = uo.GetNotoriety(ser) 
if noto <> 1 and noto <> 0 and not uo.InJournal("Elemental") then 
if uo.Waiting() then 
uo.CancelTarget() 
endif 
PKAlarmSound() 
PKDanger() 
wait(WaitTime) 
DropOres() 
wait(3000) 
goto reccal 
end if 
next 
wend 
if uo.Weight>MaxWeight then 
goto end 
end if 
wend 
uo.DeleteJournal() 
next 
next 
goto beginning 
end: 
if uo.Waiting() then 
uo.CancelTarget() 
end if 
uo.Print('Прыгаем Домой.') 
uo.Exec("recall Runebook 21") 
wait(18000) 
DropOres() 
wait(3000) 
reccal: 
uo.DeleteJournal() 
if uo.Waiting() then 
uo.CancelTarget() 
end if 
uo.Print('Прыгаем в Шахту.') 
uo.Exec("recall Runebook 94")  
mX = uo.getX("self") 
mY = uo.getY("self") 
wait(10000) 
if not uo.getX("self") <> mX and not uo.getY("self") <> mY then 
goto reccal 
end if 
goto beginning 
end sub 

sub ToHide() 
while not uo.Hidden() 
uo.Print('Пытаемся уйти в хайд...') 
uo.DeleteJournal() 
uo.UseSkill('Stealth') 
wait(4100) 
wend 
wait(100) 
end sub 
  
sub DropOres() 
if uo.Waiting() then 
uo.CancelTarget() 
end if 
var a, Exit 
var UnloadChest='0x402AA32D' ## - ID сундука для сброса руды. 
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(UnloadChest) 
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 
end if 
until Exit==1 
next 
uo.UnSetReceivingContainer() 
end sub 

sub PKDanger() 
var mX, mY 
reccal: 
uo.DeleteJournal() 
if uo.Waiting() then 
uo.CancelTarget() 
end if 
mX = uo.getX("self") 
mY = uo.getY("self") 
uo.DeleteJournal() 
uo.FindType('0x1F15',-1,'mY') 
### wait(200) 
uo.Print('ПК! Реколимся!') 
uo.Cast('Recall','finditem') 
wait(4000) 
if not uo.getX("self") <> mX and not uo.getY("self") <> mY then 
goto reccal 
end if 
end sub 

sub PKAlarmSound() 
uo.PlayWav("D:\Ultima Online\Injection\Lumb Sound\humiliation.wav") 
endsub 

sub ElementalDanger() 
uo.DeleteJournal() 
repeat 
wait(1000) 
uo.Print('Выкопан Элементал!') 
wait(3000) 
uo.Print('Скрипт на паузе!') 
until uo.InJournal('GO') 
uo.Print('Скрипт продолжен!') 
end if 
end sub 

sub ElementalAlarmSound() 
uo.PlayWav("D:\Ultima Online\Injection\Lumb Sound\humiliation.wav") 
endsub 

sub Reconnect() 
var reconnectTime, rFlag 
reconnectTime = '0' 
rFlag = 1 
repeat 
while (uo.ObjAtLayer('Bpack') == '') 
if rFlag then 
reconnectTime = MakeTime() 
rFlag = 0 
endif 
wait(20000) ## - WorldSave. 
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 
Last edited by SoulMaster on 2004-10-28 19:47:11, edited 1 time in total.
SoulMaster
Posts: 20
Joined: 2004-10-11 19:35:24

Post by SoulMaster »

первая часть вступление.. можешь не читать :)
SoulMaster
Posts: 20
Joined: 2004-10-11 19:35:24

Post by SoulMaster »

после рекола от ПК закидывает руду а затем идет фраза след. типа:

Set:
ID

потом Unset:
ID: 0x000000000
AGRS
Expert!
Posts: 1007
Joined: 2004-04-04 21:40:09
Contact:

Post by AGRS »

270 строка.
Вместо wait(3000) впиши сколько тебе надо.
SoulMaster
Posts: 20
Joined: 2004-10-11 19:35:24

Post by SoulMaster »

AGRS wrote:270 строка.
Вместо wait(3000) впиши сколько тебе надо.
а если не секрет что даст? :)
SoulMaster
Posts: 20
Joined: 2004-10-11 19:35:24

Post by SoulMaster »

понял...а тут все время в секундах? почему тогда у меня 5 мин а телепорт сразу?
Bloodmoon
Posts: 128
Joined: 2004-06-23 08:55:32

Post by Bloodmoon »

SoulMaster wrote:
AGRS wrote:270 строка.
Вместо wait(3000) впиши сколько тебе надо.
а если не секрет что даст? :)
Это тебе даст то,что ты сумеешь подождать,пока ПКашник смоеться из шахты :).
AGRS
Expert!
Posts: 1007
Joined: 2004-04-04 21:40:09
Contact:

Post by AGRS »

SoulMaster wrote:понял...а тут все время в секундах? почему тогда у меня 5 мин а телепорт сразу?
В тысячных долях секунды.
GrayLord
Expert!
Posts: 333
Joined: 2004-06-04 03:24:25
Contact:

Post by GrayLord »

граждане... я не хочу сказать ничео плохого (хорошего, правда, тоже =)), но начитаешься, бывало, ваших мегатонных скриптов - кошмары снятся... я про то, что абсолютно нечитабельно большинство местного творчества. =)
Ex-Brodyaga
Junior Expert
Posts: 150
Joined: 2004-04-12 20:26:41

Post by Ex-Brodyaga »

Там в константах Ветеран задал waittime(строка 201) просто тот самый wait(3000), о котором говорит АГРЗ, измени на wait(waittime).
Post Reply