Page 1 of 1

Направление движения изменить помогите

Posted: 2007-06-26 11:44:49
by BaGeR
Он по скрипту по шахте идёт с лева на право = помогите сделать наоборот, т.е. чтобы он шел с права на лево !!! И чтобы после-того как он дойдёт до конечной точки вернулся в ту с которой начинал и так по кругу!

Code: Select all

sub main()
sub Mining()
DIM dis[8]
dis[0] = 33 # N
dis[1] = 34 # E
dis[7] = 40 # S
dis[3] = 36 # W
dis[4] = 37 # Left
dis[5] = 38 # Up
dis[6] = 39 # Top
dis[2] = 35 # Down

DIM wal[2]
wal[0] = "You see: cave floor"
wal[1] = "You see: stalagmites"

var path = 34
var pix = '0x0e85' #кирка
#var pix = '0x143c'  #молот
#DesCor() # 2 шага на West  и корректировка направления
Uo.SetGlobal("fase_pos",'34')
while true
wait(500)
if (Move(path,1) == 1 ) then
wait(1000)
if (path == 34) then
  path = 36
else
  path = 34
endif
Move(path,1)
Move(33,1)
end if
Geting()
Min(pix)
Wait(1000)
MacroEating()
wend



end sub

#--------------------
# Копание
#--------------------
#Select a place to mine.
#there is no more ore here ti mine
sub Min(kirka)
var time
start:
uo.Print("Кирок:")
uo.Findtype(kirka,-1,'my')
if (uo.FindCount() < 0 ) Then
uo.Print("Кирка не найдена!!!")
return 1 #ошибка.. остановка всего на свете
endif
if (uo.ObjAtLayer('Rhand') == "" ) then
uo.equip('Rhand','finditem')
endif
wait(1000)
uo.Useobject(uo.objAtLayer('Rhand'))
uo.waittargetSelf()
uo.DeleteJournal()
time = uo.Timer()
time= time+620
uo.Print("Start копания")
uo.DeleteJournal()
while (true)
if (uo.InJournal("there is no more ore here to mine.") or uo.InJournal("You cannot see that")) then
  goto end
end if
if (uo.Injournal("your tool broke.")) then
goto start
endif
if ( time <= uo.Timer()) then
UO.print("time end")
return 2
endif
wait(1000)
wend
end:
uo.Print("No errors")
return 0
end sub

#--------------------
# ДВижение чара (направление, количество шагов)
#--------------------
sub Move(path, step)
var fase = uo.GetGlobal("fase_pos")
var x = uo.GetX()
var y = uo.GetY()
if ( not val(fase)== path ) then
uo.Print("Поворот")
uo.Press(path,1,500)
endif
var ct=0
while (ct < step)
uo.Press(path,1,500)
wait(1000)
if ( (uo.GetX() == x) and (uo.GetY() ==y) )then
Uo.SetGlobal("fase_pos",str(path))
return (1)
endif
ct=ct+1
x = uo.GetX()
y = uo.GetY()
wend
Uo.SetGlobal("fase_pos",str(path))
uo.Print(uo.GetGlobal("fase_pos"))
return (0)
end sub

#---------------------------------------
# Корректировака направления движения
#---------------------------------------
sub DesCor()
uo.Press(36,2,300)
uo.SetGlobal("fase_pos",'33')
end sub

sub testing()
Navigate(1)
end sub
#---------------------------------------
# осмотр окружающей среды
#---------------------------------------
sub Navigate(path)
DIM wal[2]
wal[0] = "You see: cave floor"
wal[1] = "You see: stalagmites"
var pos_X = uo.GetX()
var pos_Y = uo.GetY()

uo.Lclick(pos_X,pos_Y)
uo.Lclick(pos_X,pos_Y)
end sub

sub MacroEating()
DIM hungry[11]
hungry[0] = "You are absolutely stuffed!"  #Вы обожрались
hungry[1] = "You are stuffed"    #Вы прилично переели
hungry[2] = "You aren't hungry at all"    #Вы не хотите есть вообще
hungry[3] = "You are a little hungry"    #Вы немного хотите есть
hungry[4] = "You are somewhat hungry"    #Вы хотите прекусить
hungry[5] = "You are REALLY hungry"    #Вы РЕАЛЬНО хотите есть
hungry[6] = "Your stomash hurts"    # Животик урчит
hungry[7] = "Your stomash hurts and you feel dizzy"  #Вы чувствуете головокружение от голода
hungry[8] = "You are starving"    #Вы голодаете
hungry[9] = "You are almost dying of hunger"  #Вы почти умираете от голода
hungry[10] = "You are DYING of hunger..."  #Вы УМЕРАЕТЕ от голода


var food = UO.COUNT('0x097b') # количество еды (рыба жаренная, с корочкой )
if (food == 0) then
uo.Print("В сумке нет еды")
return
end if
uo.Print("Aau : "+ str(food))
var stat_hungry = -1
var stat_limit  = 2
var q = 0
start:
UO.DeleteJournal()
if (UO.GetHP()>0) then
uo.ServerPrint(".hungry")
uo.Print("Go")
Wait(1000)
  for q=0 to 10
  if ( uo.InJournal(hungry[q]) ) Then
  stat_hungry = q
  goto eat
end if
    next
end if
eat:
if  (stat_hungry > stat_limit) then
UO.USETYPE('0x097b')
wait(1000)
goto start
endif
uo.Print("end")
end sub

#---------------------------------------
# тоскание за собой
#----------------------------------------
#Gem Ore  0  # 0x05D7
#Copper  0  # 0x07DF
#Iron  60  #  0x0000
#Steel  70  #  0x0482
#Anra  80  #  0x045E
#Valurit  90  #  0x07D6
#Lavarock  95  #  0x006F
#Icerock  100  # 0x09F9
#Shadow  105  # 0x0940
#Azurite  110  # 0x094A
#Doom  115  # 0x0943
#BlueSteel  120  # 0x094E
#DarkRuby  129  # 0x0214
#Crystallit 135  # 0x0487
#Onix  140  # 0x0
#Mifril  145  # 0x0

sub Geting()
DIM rud_color[13]
rud_color[0]='0x05d7'
rud_color[1]='0x07DF'
rud_color[2]='0x0000'
rud_color[3]='0x0482'
rud_color[4]='0x045E'
rud_color[5]='0x07D6'
rud_color[6]='0x006F'
rud_color[7]='0x09F9'
rud_color[8]='0x0940'
rud_color[9]='0x094A'
rud_color[10]='0x0943'
rud_color[11]='0x094E'
rud_color[12]='0x0214'
rud_color[13]= '0x0487'


uo.Set('finddistance','2')
for var q=0 to 13
uo.findtype('0x19b9',rud_color[q],'ground')
if (uo.GetQuantity('finditem')>0) then
  uo.waittargetobject('finditem')
  uo.grab('finditem')
  wait(1000)
endif
wait(500)
next
end sub
endsub

Re: Направление движения изменить помогите

Posted: 2007-06-26 13:09:30
by NiFiGaSebe
ну попробуй вот тут поменять просто цифры местами)

dis[0] = 33 # N
dis[1] = 34 # E
dis[7] = 40 # S
dis[3] = 36 # W
dis[4] = 37 # Left
dis[5] = 38 # Up
dis[6] = 39 # Top
dis[2] = 35 # Down

типа 37 и 35 наверн

Posted: 2007-07-02 11:04:34
by BaGeR
не непомогает

Posted: 2007-07-02 15:36:43
by u0rypT

Code: Select all

уо прес 
вроде менять надо.

Posted: 2007-07-05 11:54:02
by BaGeR
3Jlo6Hblu' u0ry®T wrote:

Code: Select all

уо прес 
вроде менять надо.


Куда менять - как менять? напишите плз а то я вообще нюб в скриптах