Page 1 of 1

Помогите подправить скриптик. Шахтер.

Posted: 2005-01-23 15:17:27
by Dron D.
Вот скрипт взят с этого сайта, но я его подправил под ПК`шников, чтобы реколился как от синих, так и от красных. Но временами когда я среколюсь от кого-нибудь и скрипт вернется опять на место копания, то скрипт начинает реколится просто так....т.е. как бы от меня самого, приходится перезапустить инжу, чтобы скрипт заработал нормально.
Помоигте исправить этот глюк, а то хочу поставить скрипт на ночь, но вдруг он собъётся как всегда и целую ночь в пустую простою...
Заранее премного благодарен :))

Code: Select all

sub maning() 
UO.Set("finddistance","14") 
  UO.IgnoreReset() 
  UO.Ignore('self') 

#BETEP™# 
var mx, my, mz, i, j, jor, ser, noto, Count 
Uo.exec("set norbcheck 1"); для рекола 
uo.exec("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 

na4alo: 
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 
while not UO.Hidden() 
UO.Warmode("0") 
uo.print("Прячемся...") 
UO.UseSkill("Hiding") 
wait(4000) 
wend

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() 
endif 
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 uo.injournal("heavy") or uo.dead() then 
pwav()                    
Pause() 
endif 
for jor = 0 to 9    
ser = uo.journalserial(jor) 
noto = uo.getnotoriety(ser) 

  UO.FindType('0x0190',-1,1) 
  Count=UO.FindCount()
  UO.FindType('0x0191',-1,1) 
  Count=Count+UO.FindCount()

if Count>0 and not uo.injournal("elemental") then 
if uo.waiting() then 
uo.canceltarget() 
endif 
Save() 
pwavw() 
wait(100000) ; время в секундах при ожидании пока уйдет ПК 
loot() 
wait(3000) 
goto na4alo
endif 
next    
wend 
if uo.weight > 600 then  ; Максимальный вес при котором домой с рудой 
RecallToHome() 
endif 
wend 
UO.DeleteJournal() 
next 
next 
goto na4alo 
end: 
if uo.waiting() then 
uo.canceltarget() 
endif 
wait(10000) 
loot() 
wait(3000) 
reccal: 
uo.deletejournal() 
if uo.waiting() then 
uo.canceltarget() 
endif 
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 
endif 
goto na4alo 
end sub 

sub loot()    ; перекладка руды в сундук 
if uo.waiting() then 
uo.canceltarget() 
endif 
VAR a,Exit 
VAR UnloadCont='0x400BF926' ; АЙДИ сундука для руды  
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(UnloadCont) 
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 
endif 
until Exit==1 
Next 
UO.UnSetReceivingContainer()
RecallToLumber() 
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') 
UO.Cast('Recall','finditem') 
wait(3700) 
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then 
goto reccal 
endif 
end sub 

sub pwav() ; звук при выкапывании ЭЛЕМЕНТАЛА 
uo.playwav("C:\WINDOWS\Media\tada.wav") 
endsub 

sub pwavw(); звук при появлении ПК 
uo.playwav("C:\WINDOWS\Media\tada.wav") 
endsub 

sub Pause() ; Пауза скрипта если выкопали Элема (продолжить сказав GO ) 
UO.DeleteJournal() 
REPEAT 
WAIT(3000) 
UO.Print("!!!СКРИПТ НА ПАУЗЕ!!!!") 
UNTIL UO.InJournal('GO') 
UO.Print("!!!СКРИПТ ПРОДОЛЖЕН!!!!") 
endif 
end sub

sub RecallToHome() 
uo.Print('Прыгаем Домой.') 
UO.UseObject('0x4008E59E') ;-Здесь вписываем ID рунбука 
wait(500) 
UO.LClick(135,99) ;-ето номер руны в рунбуке...мой номр 3 слот... 
wait(15000)
loot() 
end sub 

sub RecallToLumber() 
uo.Print('Прыгаем в Лес.') 
UO.UseObject('0x4008E59E') ;-Здесь вписываем ID рунбука 
wait(500) 
UO.LClick(135,129) ;-ето номер руны в рунбуке...мой номр 5 слот... 
wait(15000) 
goto na4alo 
end sub

Posted: 2005-01-23 21:42:04
by Dron D.
Будьте так добры...помогите :D

Posted: 2005-01-24 08:56:23
by Sfagnum

Code: Select all

for jor = 0 to 9    
	ser = uo.journalserial(jor) 
	if ser <> UO.GetSerial()
		noto = uo.getnotoriety(ser) 
		if noto>1 and not uo.injournal("elemental") then 
			if uo.waiting() then 
				uo.canceltarget() 
			endif 
			Save() 
			pwavw() 
			wait(100000) ; время в секундах при ожидании пока уйдет ПК 
			loot() 
			wait(3000) 
			goto na4alo 
		endif 
	end if
next 
замени аналогичный цикл на этот.
ЗЫ. твой код в работающем варианте от морфленного чела не стал бы уходить ;)

Posted: 2005-01-24 09:36:40
by BETEPAH
Хехе ...СФАГИ ОТКРЫЛ ГЛАВНЫЙ БАГ СКРИПТА....все ПК теперь смогут отлавливать майнеров просто морфнусь например в демона )))))

Posted: 2005-01-24 11:42:15
by Sfagnum
BETEPAH wrote:Хехе ...СФАГИ ОТКРЫЛ ГЛАВНЫЙ БАГ СКРИПТА....все ПК теперь смогут отлавливать майнеров просто морфнусь например в демона )))))
это не про твой скрипт... а про тот что чел намудрил ;)

Posted: 2005-01-24 14:56:26
by Dron D.
BETEPAH wrote:Хехе ...СФАГИ ОТКРЫЛ ГЛАВНЫЙ БАГ СКРИПТА....все ПК теперь смогут отлавливать майнеров просто морфнусь например в демона )))))
ХЕхехе я давно просёк эту фишку :D:D:D:D:D:D, а ещё вроде бы в старых версиях скрипта на шахтёра, скрипт не видел Женский Тайп Игрока. :)

Posted: 2005-01-24 15:07:05
by Dron D.
2Сфага: я вставил твоё в моё :D, но он ругается на 53 строку...
Тобишь вот это: if ser <> UO.GetSerial()

Posted: 2005-01-24 17:15:25
by Edred
then забыл

2Edred

Posted: 2005-01-24 19:13:39
by Dron D.
Respect! Щас вот только посмотрю, как умру или нет...

Posted: 2005-01-25 12:30:38
by Sfagnum
Edred wrote:then забыл
болезня моя... ещё у while люблю then оставлять...