Помогите, есть вот такой скриптик, но его надо доделать.

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
zloymult
Posts: 3
Joined: 2004-07-08 07:12:09

Помогите, есть вот такой скриптик, но его надо доделать.

Post by zloymult »

Скрипт заключается в следующем:
Чар прилетает по рунбуке на точку, встает в хайд, начинает минать, достает руду выше агапита (стоит ограничение). Выминывает руду под собой и на 2 клетки вокруг себя. Далее разрузка и тд. Не хватает отдной части с которой маэсь на протяжении нескольких дней уже. Ссылки на аларм я расставил, но сам аларм написать не могу нормально. Необходимо, чтобы при виде любого живого объекта он улета разгружаться, ну а там дальше все по скрипту: медитировать и дальше в бой :))) Не понимаю почему не получается, ставлю условие: если вижу надпись "You see" тогда аларм = 1 и го разгружаться.
Помогите пожалуйста. Позже поделюсь интересным скрптом на ламбер.

Вот скрипт:

sub isalarm()
if uo.injournal('see') \
then
uo.setglobal("alarm","1")
return 1
else
return 0
endif
end sub

sub main()
uo.set("distance","20")
uo.set("finddistance","20")
uo.set("soundecho","1")
uo.set("injectecho","1")
uo.set("quiet","1")
var iX = 1
var iY = 1
var tochka = 0
var radius = 5
var xtime = 0
var maxweight = 600
uo.addtype("ruda","0x19B9")
uo.addtype("kirka","0x0E85")
var runebook
if uo.getserial("self") == "0x001BC1DE" then # Duke
runebook = "0x40069910"
endif
if uo.getserial("self") == "0x0030236D" then # Saimon
runebook = "0x4015E593"
endif
if uo.getserial("self") == "0x004885F4" then # ZloyMult
runebook = "0x405ad890"
endif
uo.setglobal("runebook",runebook)
uo.addobject("sumka_s_rudoy","0x405ED9AC")
var sumka_s_rudoy = "0x405ED9AC"
var vsegotochek = 14
dim tochkaX[14],tochkaY[14]
# 1. Minok Proxod
tochkaX[1] = 2402
tochkaY[1] = 205
# 2. Occlo 1
tochkaX[2] = 781
tochkaY[2] = 1681
# 3. Avatar x
tochkaX[3] = 4762
tochkaY[3] = 3772
# 4. Avatar 3
tochkaX[4] = 4550
tochkaY[4] = 3172
# 5. Pes Shahta
tochkaX[5] = 1801
tochkaY[5] = 861
# 6. Wrong 3
tochkaX[6] = 1968
tochkaY[6] = 270
# 7. Minok 3
tochkaX[7] = 2427
tochkaY[7] = 108
# 8. Covetous 3
tochkaX[8] = 2399
tochkaY[8] = 915
# 8. Occlo 2
tochkaX[9] = 776
tochkaY[9] = 1674
# 10. Minok 2
tochkaX[10] = 2412
tochkaY[10] = 180
# 11. Avatar 4.2
tochkaX[11] = 4809
tochkaY[11] = 3636
# 12. Covetous 1
tochkaX[12] = 2564
tochkaY[12] = 890
# 13. Avatar 4
tochkaX[13] = 4811
tochkaY[13] = 3652
# 14. Occlo 3
tochkaX[14] = 771
tochkaY[14] = 1685

FOR iX=1 to vsegotochek
IF (uo.getx() == tochkaX[iX]) AND (uo.gety() == tochkaY[iX]) THEN
tochka = iX
uo.setglobal("tochka",iX)
ENDIF
NEXT

uo.set("norbcheck","1")
uo.set("norbcalc","1")
uo.set("quiet","0")
uo.deletejournal()
start:
uo.print("tochka = " + str(tochka))
if not (uo.hidden()) then
gohide()
endif
if isalarm() == 1 then
goto razgruzka
endif

FOR iY = 1 to radius
FOR iX = 1 to radius
kopka:
uo.waittargettile("0",str(uo.getx() + iX - 3),str(uo.gety() + iY - 3),"0")
uo.usetype("kirka")
xtime = uo.timer()
if isalarm() == 1 then
goto razgruzka
endif
uo.deletejournal()
REPEAT
if isalarm() == 1 then
goto razgruzka
endif
IF (uo.timer() >= xtime + 110) OR \
uo.injournal("Ore in your pack") OR \
uo.injournal("useable") OR \
uo.injournal("heavy") \
THEN
goto kopka
ELSE
if isalarm() == 1 then
goto razgruzka
endif
wait(50)
if isalarm() == 1 then
goto razgruzka
endif
wait(50)
if isalarm() == 1 then
goto razgruzka
endif
wait(50)
if isalarm() == 1 then
goto razgruzka
endif
wait(50)
if isalarm() == 1 then
goto razgruzka
endif
wait(50)
if isalarm() == 1 then
goto razgruzka
endif
wait(50)
ENDIF
UNTIL uo.weight >= maxweight OR \
uo.injournal("get there") OR \
uo.injournal("no ore") OR \
uo.injournal("too far") OR \
uo.injournal("try mining") OR \
uo.injournal("Dull Copper Ore") OR \
uo.injournal("Copper Ore") OR \
uo.injournal("Old Copper Ore") OR \
uo.injournal("Bronze Ore") OR \
uo.injournal("Rose Copper Ore") OR \
uo.injournal("Gold Ore") OR \
uo.injournal("Silver Ore") OR \
isalarm() == 1
if isalarm() == 1 then
goto razgruzka
endif
IF uo.weight >= maxweight THEN
goto razgruzka
ENDIF
tilenext:
if isalarm() == 1 then
goto razgruzka
endif
NEXT
NEXT

tochkanext:
uo.exec("warmode 0")
IF tochka == vsegotochek THEN
tochka = 1
uo.setglobal("tochka","1")
ELSE
uo.setglobal("tochka",tochka+1)
tochka = tochka + 1
ENDIF
uo.useskill("Detect Hidden")
repeat
wait(50)
until uo.hidden() == 0
uo.exec("warmode 0")
uo.deletejournal()
gorecall(tochka)
if isalarm() == 1 then
goto razgruzka
endif
GOTO start

razgruzka:
uo.exec("warmode 0")
if uo.getglobal("alarm") == "1" then
uo.msg(".ip")
uo.playwav("c:\alarm.wav")
endif
# if isalarm() == 1 then
# uo.playwav("c:\alarm.wav")
# endif
razgruzka()
uo.setglobal("alarm","0")
IF tochka == vsegotochek THEN
tochka = 1
uo.setglobal("tochka","1")
ELSE
uo.setglobal("tochka",tochka+1)
tochka = tochka + 1
ENDIF
uo.deletejournal()
gorecall(tochka)
if isalarm() == 1 then
goto razgruzka
endif
GOTO start
end sub

sub razgruzka()
gorecall(16)
uo.addobject("sumka_s_rudoy","0x4009a33f")
uo.addtype("bm","0x0F7B")
uo.addtype("bp","0x0F7A")
uo.addtype("mr","0x0F86")

uo.useobject("sumka_s_rudoy")
repeat
wait(50)
until uo.getserial("lastcontainer") == uo.getserial("sumka_s_rudoy")

while uo.count("ruda") >= 4
wait(2000)
uo.moveitem("_ruda","999","sumka_s_rudoy")
wend

IF (UO.BM < 15) THEN
uo.moveitem("<bm","20","backpack")
wait(1000)
ENDIF
IF (UO.MR < 15) THEN
uo.moveitem("<mr","20","backpack")
wait(1000)
ENDIF
IF (UO.BP < 15) THEN
uo.moveitem("<bp","20","backpack")
wait(1000)
ENDIF
uo.deletejournal()
uo.exec("warmode 0")
repeat
uo.useskill("Meditation")
wait(2500)
until uo.mana >= uo.int
end sub

sub gorecall(tochka)
var x = uo.getx()
var y = uo.gety()
var xtime = 0
recall:
uo.deletejournal()
xtime = uo.timer()
uo.exec("warmode 0")
uo.exec("recall " + uo.getglobal("runebook") + " " + str(((tochka-1)*2) + 20))
repeat
if uo.injournal("izzle") OR uo.injournal("snd 005C") OR (uo.timer() >= xtime + 70) then
goto recall
else
wait(200)
endif
until uo.injournal("snd 01FC") OR (uo.getx() <> x) OR (uo.gety() <> y)
end sub

sub gohide()
var xtime = 0
hide:
if isalarm() == 1 then
return 0
endif
uo.deletejournal()
xtime = uo.timer()
uo.exec("warmode 0")
uo.useskill("Hiding")
repeat
if isalarm() == 1 then
return 0
endif
if uo.injournal("seem") OR (uo.timer() >= xtime + 70) then
goto hide
else
wait(200)
endif
until uo.hidden()
uo.deletejournal()
end sub

Есть большой недостаток у хелпа - синтаксис дан не полно и без примеров. Я половину команд из чужих скриптов извлекаю.
BETEPAH
Expert!
Posts: 838
Joined: 2004-05-31 09:31:51
Contact:

Post by BETEPAH »

Code: Select all

sub Attack() 
UO.DeleteJournal()
var Enemy = 0x00000000
repeat
If UO.inJournal("is attacking you") OR UO.inJournal("heavy") OR UO.InJournal("Wis Quas") OR UO.InJournal("An Ex Por") then
Enemy = UO.JournalSerial(UO.InJournal("is attacking you")-1)
UO.Cast('Magic Arrow',Enemy)
Wait(1200)
UO.DeleteJournal()
Save()
endif
Wait(1000)
until false
end sub


sub Save()
var mx, my
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
mx = UO.GetX("self")
my = UO.GetY("self")
UO.DeleteJournal()
UO.FindType('0x1F14',-1,'my')
wait(200)
UO.Cast('Recall','finditem')
wait(2000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
endif
end sub



в свое время сделал это........попробуй примастырить к своему
zloymult
Posts: 3
Joined: 2004-07-08 07:12:09

Post by zloymult »

Когда его из хайда выводят, сразу каст сбивают стрелками, твой скрпт был первой версией аларма, аотом был аларм на имена и заданных животных, щас есть идея сделать аларм по принципу, если в журнале надпись " You see ...", тогда рекол сразу !!! Но почему то не выходит, немонимаю
Lord Ruslan Nightmare
Expert!
Posts: 359
Joined: 2004-04-25 11:11:07
Contact:

Post by Lord Ruslan Nightmare »

Аларм "уведел - убежал" делается периодическим поиском
Без труда не выловишь и рыбку из пруда,
А без пруда не выловишь её и с трудом...
BETEPAH
Expert!
Posts: 838
Joined: 2004-05-31 09:31:51
Contact:

Post by BETEPAH »

zloymult wrote:Когда его из хайда выводят, сразу каст сбивают стрелками, твой скрпт был первой версией аларма, аотом был аларм на имена и заданных животных, щас есть идея сделать аларм по принципу, если в журнале надпись " You see ...", тогда рекол сразу !!! Но почему то не выходит, немонимаю


просто поставь перед кастом стрелки ;
или сотри ее .....думать надо
SVG
Posts: 73
Joined: 2004-04-15 14:50:06
Location: Moscow

Post by SVG »

"You see" в журнале инжекта нет, это подставляет сам клиент
Проверь ,showjournal 100
Я где то рядом... 8)
zloymult
Posts: 3
Joined: 2004-07-08 07:12:09

Post by zloymult »

Lord Ruslan Nightmare wrote:Аларм "уведел - убежал" делается периодическим поиском


выложи свое предложение, у меня уже голова не варит, я сеня весь день ламбер переделывал
Post Reply