Мининг скрипт под Middle Earth

Anything and all.

Moderators: Murderator+, Murderator

Locked
Wtf
Posts: 6
Joined: 2005-02-03 02:04:44

Мининг скрипт под Middle Earth

Post by Wtf »

имеется ли у кого ? если имеется то буду благодарен если поделитесь...
в поиске ничего нету про мидлу !
Wtf
Posts: 6
Joined: 2005-02-03 02:04:44

Post by Wtf »

UP
AlexeyVorotnikov
Junior Expert
Posts: 138
Joined: 2004-09-18 15:12:06

Post by AlexeyVorotnikov »

Вот что-то в таком роде. Этот скрипт использует ASM.
Копает в квадрате 5х5 пока не наберёт заданный вес (см. переменную weightLimit).
Недостатки: не меняет кирку при поломке, никак не реагирует на всяческие опасности.
Скрипт писался лично под себя, другим может не понравиться.
ВЕИМАНИЕ! Этот скрипт написан для шарда Middle Earth. На других шардах может не работатть.

Code: Select all

sub MiningASM()
  var pickaxeType = 0x0E85
  var weightLimit = 2000
  var delta = 2
  var i

  var found = false
  var cont = true

  UO.asmTLStaticClear()
  for i = 1339 to 1363
    UO.asmTLStaticAdd(i, 'mine')
  next
  UO.asmTLStaticGRemove(1360)
  UO.asmTLStaticAdd(1386, 'mine')

  var lastTimer
 
  UO.DeleteJournal()

  var myx
  var myy
  var myz
 
  var dx, dy
  var res

  UO.Disarm()
  UO.Equipt('Rhand', pickaxeType)
  UO.WarMode(1)

  while UO.Weight < weightLimit
    for dx = -delta to delta
      for dy = -delta to delta
        UO.Print("X=" + Str(dx) + " Y=" + Str(dy))

        myx = UO.GetX()
        myy = UO.GetY()
        myz = UO.GetZ()

        cont = true
        while cont
          res = UO.asmWaitTargetStaticTile('mine', myx + dx, myy + dy, myz)
          UO.Print("res=" + Str(res))
          if res then
            UO.UseType(pickaxeType)

            lastTimer = UO.Timer()
            found = false
            repeat
              if UO.InJournal("You cannot prospect") then
                found = true
                cont = true
                wait(2000)
              endif
              if UO.InJournal("you cannot mine that") then
                found = true
                cont = false
              endif
              if UO.InJournal("There is no ore") then
                found = true
                cont = false
                wait(100)
              endif
              if UO.InJournal("That is too far") then
                found = true
                cont = false
                wait(100)
              endif
              wait(100)
            until found || UO.Timer() > lastTimer + 300
            UO.DeleteJournal()
          else
            UO.Print("Тайл не найден!")
            cont = false
            wait(100)
          endif
        wend

        if UO.Weight > weightLimit then
          goto done
        endif
      next
    next
  wend

done:
end sub
Locked