Получить триал аккаунт EverQuest 2 на 14 дней бесплатно
На сайте нет свежих новостей В Галерее нет новых фотографий Наш TeamSpeak сервер: ts.hussars-online.ru:8767 (пароль tmppass)
Список форумов Гусары-онлайн
Игровой форум Hussars-online
Присоединяйтесь к нашему сообществу! Мы ВКонтакте Мы в Facebook Мы в Twitter
Получить триал аккаунт EVE Online на 14 дней бесплатно
Перейти к разделу EVE Online на сайте Перейти к разделу EverQuest 2 на сайте Перейти к разделу Lord of the Rings Online на сайте Перейти на сайт Ultima Online гильдии [Hussars]
   RSS Feed: Игровой форум Hussars-online  (подробности)   Home * FAQ * Поиск * Пользователи * Группы * Награды * Регистрация * Профиль * Войти и проверить личные сообщения * Вход  
[script] Прокачка Archery

 
Начать новую тему   Ответить на тему    Список форумов Гусары-онлайн -> UO Скрипты
Предыдущая тема :: Следующая тема  
Автор Сообщение
Askaneli
Модератор

avatar

Награды: 6 [детали]
''Почётный флудер'' I степени (Всего: 1) ''Флудер 2009'' (Всего: 1) ''Флудер 2010'' (Всего: 1)
''Хранитель форума 2011'' (Всего: 1) Редактор новостей (Всего: 1) Участник турнира (Всего: 1)
Благодарностей: 52

Зарегистрирован: 29.01.2007
Сообщения: 5627
Откуда: Уфимский схрон

СообщениеДобавлено: 05.05.2008 10:09    Заголовок сообщения: Ответить с цитатой

Наколенная сборка без проверки. Необходимо тщательное тестирование на работоспособность.
Особенности - хз, спрашиваем в асю ...
'Training.txt' файл создайте для лога в папке инжи. Используется АСМ.

Код:
#############################################################################
####################  Train Archery crafted by Askaneli  ####################
####################     Шард DRW (http://www.drw.ru)    ####################
#################### Отдельное спасибо за наводку Guesst ####################
#################### Отдельное спасибо за модули Sfagnum ####################
#############################################################################



Var RejimSC=2 ; Режим работы скрипта, 1 - арчер, 2 - кастующий
Var Sunduk='0x40043143' ; ИД сундука где все ресурсы, луки и стрелы, реги для вортекса или скролы для вортекса, кормёжка для чаров
Var xVortex='505',yVortex='1290',zVortex='251' ; Координаты куда кастуем вортекса, не далее 2х тайлов от берега, а то стрелы не достаёт упавшие
Var TBow='0x13B1' ; Тип оружия которое будем использовать, лук типа сча

## Запускаемый модуль

sub main()
   uo.exec("filterspeech clear")
   uo.exec("filterspeech off")
   uo.exec("set finddistance 3")
   uo.sayu(".detail 0")
   uo.useobject(Sunduk)
   uo.useobject('backpack')
   wait(1000)
   uo.exec("exec main0"+STR(RejimSC))
   uo.Exec('terminate Reconnector')
   wait(1000)
   uo.Exec('exec Reconnector')
   wait(1000)
end sub

## Модуль арчера

Sub main01()
var Vortex='0x40043143',check = false
var arN,arT,arE,qV = 0
var sk=uo.skillval("Archery",1)

uo.exec("warmode 1")
arN = uo.count('0x0F3F','0x0000')
arE = arN
while not uo.dead()
   if uo.IsNPC(Vortex) then ## Есть вортекс, просто следим за количеством стрел и наличием лука
      if uo.skillval("Archery",1) == 1000 then
         uo.asmLogAdd('Training.txt', UO.asmGetDate('dd/mm/yy')+" - "+UO.asmGetTime('hh:nn:ss')+" YES!!! GM Archery!!!")
         uo.closeuo()
      end if
      if uo.count('0x0F3F','0x0000')<50 then ; Стрелы, пополняем из сундука
         arT = uo.count('0x0F3F','0x0000')
         uo.findtype('0x0F3F','0x0000',Sunduk)
         Cheklag()
         uo.moveitem('finditem','100','backpack')
         wait(1000)
         arE = arE + uo.count('0x0F3F','0x0000')-arT
      end if
      if uo.GetGraphic(uo.ObjAtLayer('Lhand'))<>TBow then ; Оружие в руке, при отсутствии берём из сундука
         uo.findtype(TBow,'-1','backpack')
         if uo.findcount()>0 then
            uo.usetype(TBow)
            wait(1000)
         else
            uo.findtype(TBow,'-1',Sunduk)
            Cheklag()
            uo.moveitem('finditem','1','backpack')
            wait(1000)
            uo.usetype(TBow)
            wait(1000)
         end if
      end if
      if not check then
         check = true
         qV = qV + 1
      end if
   else ## Нету вортекса, ищем следующего, попутно подбираем стрелы в пак с земли. Пишем отчётик о состоянии скила в лог. Кушаем до полного.
      if check then      
         if sk <> uo.skillval("Archery",1) then
            uo.asmLogAdd('Training.txt', UO.asmGetDate('dd/mm/yy')+" - "+UO.asmGetTime('hh:nn:ss')+" ::на поднятие скила потратил " + str(arE-ArN) + ", потребовалось " + str(qV) + " вортексов, состояние скила арчери - "+STR(uo.skillval("Archery",1)/10))
            arN = uo.count('0x0F3F','0x0000')
            arE = arN
            qV = 0
            sk = uo.skillval("Archery",1)
         end if
         Eda()
         check = false         
      end if
      uo.findtype('0x000D','0x000D','ground')
      if uo.findcount()>0 then
         Vortex=uo.getserial('finditem')
         UO.attack(Vortex)
      end if
   end if
   wait(1000) ; Опрос состояния каждую секунду
   if uo.injournal('SkokaAR') then
      uo.say(STR(uo.skillval("Archery",1)/10))
      uo.deletejournal()
   end if
wend
uo.closeuo()
end sub

## Модуль кастующего

Sub main02()
var Vortex='0x40043143'
var i
dim ResursCast[5]

ResursCast[1]='0x1F66' ## Energy Vortex Scroll
ResursCast[2]='0x0F7B' ## BM
ResursCast[3]='0x0F7A' ## BP
ResursCast[4]='0x0F86' ## MR
ResursCast[5]='0x0F88' ## NS

uo.exec("warmode 0")

uo.findtype('0x000D','0x000D','ground') ; Стартовый поиск вортекса, на всякий случай ...
if uo.findcount()>0 then
   Vortex=uo.getserial('finditem')
end if

while not uo.dead()
   if not uo.IsNPC(Vortex) then ## Нету вортекса, кастуем его что бы был , если есть кому качать арчери, ну и реги за одно пополняем и кушаем, чёб голодным не был чар      
      if ChekArcher() then
         while not castuni(40,'0x1F66','Energy Vortex')
            for i=2 to 5
               if uo.count(ResursCast[i],'0x0000')==0 then
                  uo.findtype(ResursCast[i],'0x0000',Sunduk)
                  Cheklag()
                  if uo.findcount()>0 then
                     uo.moveitem('finditem',str(10-uo.count(ResursCast[i],'0x0000')),'backpack')
                     wait(1000)
                  end if
               end if
            next
         wend
         uo.findtype('0x000D','0x000D','ground')
         if uo.findcount()>0 then
            Vortex=uo.getserial('finditem')            
            for i=2 to 5
               if uo.count(ResursCast[i],'0x0000')<10 then
                  uo.findtype(ResursCast[i],'0x0000',Sunduk)
                  Cheklag()
                  if uo.findcount()>0 then
                     uo.moveitem('finditem',str(10-uo.count(ResursCast[i],'0x0000')),'backpack')
                     wait(1000)
                  end if
               end if
            next
            Eda()
            ToMedit()
         end if
      end if
   end if
   wait(1000) ; Опрос состояния каждую секунду
   if uo.injournal('StopP!!!') then
      uo.closeUO()
   end if
   if uo.mana==uo.int then
      ToHide()
   end if
   uo.findtype('0x0F3F','0x0000','ground')
   if uo.findcount()>0 then
      Cheklag()
      uo.moveitem('finditem','-1',Sunduk)
      wait(1000)
   end if
wend
uo.closeuo()
end sub
## Вспомогательные модули

Sub ChekArcher()
var i
Dim Archers[5]

Archers[1]='0x001B290C' ## Askaneli
Archers[2]=''
Archers[3]=''
Archers[4]=''
Archers[5]=''

for i=1 to 5
   if uo.IsNPC(Archers[i]) then
      if Archers[i]<>uo.getserial('self') then
         return true
      end if
   end if
next
return false
end sub

Sub Eda()
if uo.count('0x097B','0x0000')<50 then ## Жрачка, кушаем до изнеможения
   uo.findtype('0x097B','0x0000',Sunduk)
   Cheklag()
   uo.moveitem('finditem',STR(50-uo.count('0x097B','0x0000')),'backpack')
   wait(1000)
end if
uo.deletejournal()
repeat
   uo.usetype('0x097B','0x0000')
   wait(1000)
until uo.injournal("You are stuffed!") or uo.injournal("You can't think of a way to use that item.")
end sub

Sub Cheklag()
   UO.DeleteJournal()
   UO.Click('backpack')
   Repeat
      Wait(10)
   Until UO.InJournal("backpack")
end sub

Sub ToMedit()
while uo.mana<40
   uo.warmode(0)
   uo.deletejournal()
   uo.useskill('Meditation')
   repeat
      wait(10)
   until uo.injournal("You lose your concentration") or uo.injournal("You are at peace.") or uo.mana>40
wend
end sub

Sub ToHide()
while not uo.hidden()
   uo.warmode(0)
   uo.DeleteJournal()
   uo.useskill("Hiding")
   repeat
      wait(10)
   until UO.InJournal("You have hidden yourself well") or UO.InJournal("You can't seem to hide here.") or UO.InJournal("You are preoccupied with thoughts of battle.") or uo.dead()
   if  UO.InJournal("You are preoccupied with thoughts of battle.") then
      uo.warmode(0)
   end if
   if uo.dead() then
      return
   end if
wend
end sub

Sub castuni(minMANA,sType,cName)
var t = UO.Timer(),m = UO.MANA
   uo.exec("warmode 0")
   repeat      
      UO.FindType(sType,-1,'my')
      If UO.findcount()>0 then
         if uo.mana<(minMANA/2) then
            ToMedit()
         end if
         m = UO.MANA
         uo.DeleteJournal()
         uo.waittargettile('400',xVortex,yVortex,zVortex)   
         UO.UseObject('finditem')      
      else
         if uo.mana<minMANA then
            ToMedit()
         end if
         m = UO.MANA
         uo.DeleteJournal()
         uo.waittargettile('400',xVortex,yVortex,zVortex)
         uo.cast(cName)
      end if
      t = UO.Timer()
      repeat
         wait(10)
      until IsMyOwn('You have interrupted') or IsMyOwn(uo.getname()+': The spell fizzles.') or IsMyOwn('You lack') or t+200<uo.Timer() or m > UO.MANA
      wait(500)
      if IsMyOwn('You lack') then
         return false
      end if
   until not (IsMyOwn('You have interrupted') or IsMyOwn(uo.getname()+': The spell fizzles.'))
   return true
end sub

Sub IsMyOwn(msgSTR)
   if not UO.InJournal(msgSTR) then
      return false
   end if
   if msgSTR == Left(UO.Journal(UO.InJournal(msgSTR)-1),len(msgSTR)) then
      return true      
   else
      return false
   end if
end sub

## Модуль реконекта

Sub Reconnector()
var ReconnectTime, RFlag
ReconnectTime = '0'
RFlag = 1
Repeat
   While (uo.ObjAtLayer('Bpack') == '')
      if RFlag Then
         ReconnectTime = MakeTime()
         RFlag = 0
      endif
      Wait(110000) # WorldSave Protection
      uo.Say('')
      Wait(5000)
      uo.Say('')
      Wait(5000)
      uo.Say('')
      Wait(5000)
      uo.LDblClick(357,164)
      uo.LClick(616,459)
      Wait(5000)
   WEnd
   Wait(3000)
   if (RFlag == 0) and (ReconnectTime <> '0') Then
      UO.asmLogAdd('Training.txt', UO.asmGetDate('dd/mm/yy')+" - "+UO.asmGetTime('hh:nn:ss')+" - "+"Упс. Ребут типа !!!")
      uo.Exec('terminate main01')
      uo.Exec('terminate main02')
      wait(5000)
      uo.RClick(196,193)
      wait(2000)
      uo.RClick(196,193)
      wait(2000)
      uo.RClick(196,193)
      wait(2000)
      uo.RClick(196,193)
      wait(2000)
      uo.Exec('exec main')
      wait(5000)
      RFlag = 1
      ReconnectTime = '0'
   endif
Until false
end sub 
 
Sub MakeTime()
VAR D, T, Ret, i
Ret = STR(uo.Time())
T = ""
For i = 0 To Len(Ret)
   T = Ret[Len(Ret)-i] + T
   If (I == 2) OR (I == 4) Then
      T = ":" + T
   EndIf
Next
Ret = STR(uo.Date())
D = ""
For i = 0 To Len(Ret)
   D = Ret[Len(Ret)-i] + D
   If (I == 2) OR (I == 4) Then
      D = "." + D
   EndIf
Next
Ret = T + " @ " + D
RETURN Ret
end sub

> > > модуль арчера - отесчен, лог изменён.
> > > модуль кастера - модернизирован.
_________________
"Весь мир в предвкушении очередного апокалипсиса, у нас в стране он судя по всему уже прошёл..." Askaneli.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
.
Начать новую тему   Ответить на тему    Список форумов Гусары-онлайн -> UO Скрипты Часовой пояс: GMT + 4
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Vote on the EverQuest 2 Top 200 Рейтинг Ролевых Ресурсов Rambler's Top100 Copyright © 2007-2011 Hussars-online
Powered by phpBB © 2001, 2005 phpBB Group
Appalachia Theme © 2002 Droshi's Island