Page 1 of 1

Опять нужна помощь скриптеров(

Posted: 2005-04-26 19:52:06
by Agent
Почему в этом скрипте чар копает токо в одной точке. Помогите плз сделать так, чтобы когда чар выкопает все вокруг себя, переходил на другую точку и так далее. Чар копает вокруг себя на расстоянии до двух точек.
Вот часть скрипта:

Code: Select all

sub mine() 
   VAR DigDistance, TileNum, KillElemental
   VAR ElemSignal, LastTimer
   DIM BaseX[4], BaseY[4]
   VAR BaseZ, WayPoint, WayPoints
   VAR MaxWeight

   VAR i,j,TileY,TileX,DirX,DirY
   VAR Delta,BeginX,EndX,BeginY,EndY
   
   TileNum='1341'
   
   MaxWeight=100

   DigDistance=2
   
   KillElemental='No'

   ElemSignal='Off'


   BaseX[1]=1990
   BaseY[1]=262
   BaseZ=0

   BaseX[2]=1975
   BaseY[2]=263

   BaseX[3]=2560
   BaseY[3]=481

   BaseX[4]=2579
   BaseY[4]=490

   WayPoints=4
   
   While NOT UO.Dead()
   
      For WayPoint=1 to WayPoints-4
         SuperWalk(BaseX[WayPoint],BaseY[WayPoint],"")
         digitstay(MaxWeight,DigDistance,KillElemental,ElemSignal,BaseX[WayPoint],BaseY[WayPoint])
      Next
   wend
end sub

;-------------------- Try to mine under self ------------------
sub digitstay(MaxWeight,MaxDistance,KillElemental,ElemSignal,BaseX,BaseY)
   VAR x,y,z='0',TileNum='1339'
   VAR Last=0,LastTimer, ContFlag=1
   VAR MaxTimer=110

   For x=-MaxDistance to MaxDistance
      For y=-MaxDistance to MaxDistance
         Repeat
            CheckLag() ; deleting journal
             
            UO.WaitTargetTile(TileNum,STR(UO.GetX()+x),STR(UO.GetY()+Y),8)
            UO.UseType('0x0E85')

            LastTimer=UO.Timer()

            Repeat
               wait(500)
            until UO.InJournal("Try mining") OR UO.InJournal("You put") OR UO.InJournal("You loosen") OR UO.InJournal("There is no") OR UO.InJournal("That is too") OR UO.InJournal("OOPS") OR UO.InJournal("attacking you") OR LastTimer+200<UO.Timer()               

            If UO.InJournal('You loosen') then
               repeat
                  wait(500)
               until UO.InJournal("You put") OR LastTimer+MaxTimer<UO.Timer()
            Endif

            If UO.Weight>=MaxWeight then
         dom()
         unload()
         back()
            Endif
           
            If UO.Dead() then
         test()
         ready()
         back()
            Endif
         Until UO.InJournal("There is no") OR UO.InJournal("That is too") OR UO.InJournal("Try mining") OR ContFlag==0
      Next
   Next
end sub


Destruction: Учимся юзать тэги форума.

Posted: 2005-04-27 18:10:42
by Agent
какие еще "ТЭГИ"?! Неужели я прошу чтото запретное??? Этот скрипт немного отличается от выложенного на форуме, вот и прошу скриптеров немного помочь...

Posted: 2005-04-27 18:30:35
by Destruction
Agent wrote:какие еще "ТЭГИ"?! Неужели я прошу чтото запретное??? Этот скрипт немного отличается от выложенного на форуме, вот и прошу скриптеров немного помочь...

Извиняюсь, я хотел сказать коды, но смысла сообщения это не меняет.

Столь большие скрипты следует помещать меджц [!code] и [/code], что я был вынужден сделать за тебя.

В следущий раз будь внимательнее.

Posted: 2005-04-27 18:45:11
by Agent
оки 8)