Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Lumberjacking Script For Dw And Other, Скрипт на рубку - работает на ДВ и долж
BELL_
сообщение 29.11.2007, 10:38
Сообщение #1


**

Neophyte
Сообщений: 11
Регистрация: 27.11.2007
Группа: Пользователи
Наличность: 0
Пользователь №: 10.322



Код
 // ********************************************************************************
**************************************
// Скрипт на рубку деревьев для DW (где неработает LastTargetXY +- ..). ver 1.06 (c) BELL
// если он вам понравится, можете пожертвовать несколько gp :)
// написано для UOPilot v2.12 uopilot.uokit.com
// ICQ#: 319-386-671 все баги ТОЛЬКО В ICQ
// Внимание! Отключайте Circle of transparency! помоему он мешает :)
// Бинды: F5 - LastObject; F8 UseSkill Hiding;
// Запуск: На топор и в путь
//
// Герой ходит в одном направлении, рубя все что попадается в округе. Когда вес превышает
// ограничение - выполняется Ваше действие (например recall), записанное на макрос в другой
// программе (например, UOAssist). Звенит звонок. Если герой уперся, предпринимаются попытки
// обойти препятствие. Возможно рубить спрятавшись. Проверка на сохранение мира. Убегает если
// атакуют или нарвались Ent`а.
// ********************************************************************************
**************************************

//НАСТРОЙКИ. Проверьте все
//В какую строну идти. Значения: up, down, left, right
set $move right //замените последнее слово на нужное
//на сколько шагов
set #step 8

//Спрятаться? 1 да 0 нет
set #hide 1

//Сколько может унести герой. Как нарубит - нажмется клавиша, определяемая ниже
set #wghtc 350
set $retkey F12 //какую клавишу нажать, чтобы среколится (макрос забивайте в Ассисте например)

//ОТНОСИТЕЛЬНЫЕ координаты расчитываются исходя из размеров игрового экрана
//в данном случае 800 на 600. чтобы получить центр делим на два
set #charX 400 - 30 //400 это левая рука чара, нам надо середину
set #charY 300 - 30 //300 это ноги чара, нам надо середину чара

//разница между координатами героя XY и  кординатами мыши. Грубо говоря квадрат, по углам которого
//будут производится клики
set #rX 40
set #rY 40

//ПРОГРАММА. Не трогайте ничего если не уверены.
//Главный цикл
:begin //метка
for #x -2 1 2
for #y -2 1 2
  //все вырубили в округе? проверка на вес
  if wght >= #wghtc
    send $retkey 8000
    say ОКОНЧЕНО!
    repeat 5
      alarm
    end_repeat
    end_script
  end_if  
  if (#hide == 1) and (hidden == 0)  //если надо спрятаться
    while hidden == 0
       send F8 3000
    end_while
  end_if
  set #cX #charX + #x * #rX //вычисляем координаты мыши
  set #cY #charY + #y * #rY
  gosub lumberjack //рубим  
end_for
end_for

gosub run //меняем положение

goto begin //на начало

//подпрограммы
:lumberjack
  send F5//берем топор
  waitfortarget 300 //ждем прицела
  move #cX #cY //кликаем по относительным координатам  
  left #cX #cY
  wait 2000 //2 секунды на лаги после клика
  //первая проверка на курсор, имеет или он форму прицела
  //остальные проверки на последние сообщения сервера
  if (target == 1) or (lastmsg no logs) or (lastmsg nothing) or (lastmsg can't)  or (lastmsg far away)//если проверки не прошли уходим, не теряя времени
    return
  end_if
  set #wt 10 //сколько максимум ждать рубки в секундах
  while lastmsg use this on?  //пока нет сообщений ждем (пока рубит) но не более #wt секунд
    wait 1000    
    set #wt #wt - 1
    if #wt == 1 //выходим если прошло максимальное время
      break
    end_if
  end_while
  if lastmsg use this on? //если сообщение не изменилось, уходим - попали на куст или глюк (дайте покурить)
    return
  end_if
  if (lastmsg oops) or (lastmsg attacking you) or (lastmsg ent!!!) // есличо - валим отсюда :)
    repeat 25
       gosub run
    end_repeat
    return
  end_if
  if lastmsg saving.. //проверка на сохранение мира
     repeat 85
        wait 1000
      if lastmsg save
         break
      end_if
     end_repeat
  end_if  
goto lumberjack //если все успешно снова рубим те же координаты

:run //смена положения
set #step #step / 2
repeat #step
set #oldcx charposx
set #oldcy charposy
send $move
send $move
if (#oldcx == charposx) and (#oldcy == charposy) //если уперлись например
  
   if ($move == left) or ($move == right) //если ходим вправо-влево, пытаемся выбраться вверх-вниз
   if random 10 > 5    
     repeat 8
       send up
     end_repeat
   else
     repeat 8
       send down
     end_repeat
   end_if
   end_if //если вправо-влево
  
   if ($move == up) or ($move == down) //если ходим вверх-вниз, пытаемся выбраться вправо-влево
   if random 10 > 5  
     repeat 8
       send left
     end_repeat
   else
     repeat 8
       send right
     end_repeat
   end_if
   end_if //если вверх-вниз
end_if  //если уперлись
end_repeat
return
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 10.5.2024, 21:49
Designed by Nickostyle