Помогите исправить скрипт (обкаст за деньги)

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Klanded
Posts: 25
Joined: 2007-01-31 12:15:24

Помогите исправить скрипт (обкаст за деньги)

Post by Klanded »

Помогите плиз истравить скрипт. При проверки положили деньги или нет скрипт вырубается вместе с окном игры. Помогите исправить так как сам очень плохо разбераюсь со скриптами.


Code: Select all

##*********************************************************
##*********************************************************
##**************Арена, блесс за деньги. *******************
##*********************************************************
##*********************************************************
sub bless_for_money()
var client, time
var money_bag ='0x61F9241C' ##Это сумка, которая должна быть у мага. В неё убираются все деньги после каста
uo.ignore(money_bag)
uo.moveoff()                ##Запрет на перемещение - для того чтоб при закрытии окна обмена чар никуда не бежал

while (uo.gs>1 and uo.ga>2 and uo.sa>1 and uo.mr>1)
while not uo.TradeCount()
  wait(100)
wend
if  uo.TradeCount() then   ##Проверяем наличие окна обмена..
  Check()
  if Check()==0 then
   uo.fontcolor('0x0026')
   uo.msg('Не вижу тут денег...')
   while uo.TradeCount()
    uo.RClick(173,98)
    wait(2500)
   wend
  endif
  if Check()==1 then
   uo.fontcolor('0x0026')
   uo.msg('Для обкаста нужно 750 монет, а не меньше!')
   while uo.TradeCount()
    uo.RClick(173,98)
    wait(2500)
   wend
  endif
  if Check()==2 then
   uo.fontcolor('0x010c')
   uo.msg('Нажмите галочку, пожалуйста.')
   while not (uo.TradeCheck('n', 'right', '1') or uo.TradeCount()==0) ##Ожидаем закрытия окна или нажатия галки
    wait(100)
   wend
   if uo.TradeCount() then
    client = uo.TradeOpponent('n')
    uo.TradeCheck('n', 'left', 1)       ##Жмём галку
    wait(2500) 
    cast(client)
    wait(1000)
    endif
   endif
  endif
endif
uo.findtype('0x0EED','-1', 'backpack')
uo.moveitem('finditem','all',money_bag)  ##Убираем деньги в сумку
wait(1000)
wend
uo.fontcolor('0x0026')
uo.msg('Фсё, цЫрк сворачивается!')
uo.closeuo()
end sub

sub Check()
var gold   

uo.findtype('0x0EED','0x0000', uo.TradeContainer('right'))  ##Проверка наличия денег в правои окне, цвет добавлен для защиты от подсовывания песка
gold = 750 - uo.getQuantity('finditem')                     ##Проверка количества денег
if gold==750 then
  return 0
endif
if gold>0 then
  return 1
endif
if gold<=0 then
  return 2
endif
end sub

sub cast(client)
if uo.mana<50 then
  uo.fontcolor('0x010c')
  uo.msg('Секундочку.')
  while uo.mana<50
   uo.useskill('Meditation')
   wait(11000)
  wend
endif
uo.cast('Bless',client)
while uo.waiting()
  wait(100)
wend
uo.cast('Protection',client)
while uo.waiting()
  wait(100)
wend
end sub
sub zazjvalka()
while not uo.dead()
  uo.fontcolor('0x0003')
  uo.msg('Фпервые под куполом цЫрка - обкаст за деньги: Bless+Protectioin фсего за 750 монет')
  uo.msg('Для обкаста просто дайте мне денег :)')
  wait(50000)
wend
end sub

Code: Select all

Не забывайте о тегах. aka I'm
nortex2
Posts: 10
Joined: 2008-02-18 16:10:43

Re: Помогите исправить скрипт (обкаст за деньги)

Post by nortex2 »

Мне было бы тоже интересно узнать в чём проблема скрипта? когда запускаю его то ультима вырубается сразу....
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Помогите исправить скрипт (обкаст за деньги)

Post by Mirage »

endif один лишний был.
Скрипт закроет UO после того как закончатся реагенты.

Code: Select all

##*********************************************************
##*********************************************************
##**************Арена, блесс за деньги. *******************
##*********************************************************
##*********************************************************
sub bless_for_money()
   var client, time
   var money_bag ='0x61F9241C' ##Это сумка, которая должна быть у мага. В неё убираются все деньги после каста
   uo.ignore(money_bag)
   uo.moveoff()                ##Запрет на перемещение - для того чтоб при закрытии окна обмена чар никуда не бежал
   while (uo.gs>1 and uo.ga>2 and uo.sa>1 and uo.mr>1)
      while not uo.TradeCount()
         wait(100)
      wend
      if  uo.TradeCount() then   ##Проверяем наличие окна обмена..
         Check()
         if Check()==0 then
            uo.fontcolor('0x0026')
            uo.msg('Не вижу тут денег...')
            while uo.TradeCount()
               uo.RClick(173,98)
               wait(2500)
            wend
         endif
         if Check()==1 then
            uo.fontcolor('0x0026')
            uo.msg('Для обкаста нужно 750 монет, а не меньше!')
            while uo.TradeCount()
               uo.RClick(173,98)
               wait(2500)
            wend
         endif
         if Check()==2 then
            uo.fontcolor('0x010c')
            uo.msg('Нажмите галочку, пожалуйста.')
            while not (uo.TradeCheck('n', 'right', '1') or uo.TradeCount()==0) ##Ожидаем закрытия окна или нажатия галки
               wait(100)
            wend
            if uo.TradeCount() then
               client = uo.TradeOpponent('n')
               uo.TradeCheck('n', 'left', 1)       ##Жмём галку
               wait(2500)
               cast(client)
               wait(1000)
            endif
         endif
      endif
      uo.findtype('0x0EED','-1', 'backpack')
      uo.moveitem('finditem','all',money_bag)  ##Убираем деньги в сумку
      wait(1000)
   wend
   uo.fontcolor('0x0026')
   uo.msg('Фсё, цЫрк сворачивается!')
   uo.closeuo() ; <--- закрывалка.
end sub
sub Check()
   var gold   
   uo.findtype('0x0EED','0x0000', uo.TradeContainer('right'))  ##Проверка наличия денег в правои окне, цвет добавлен для защиты от подсовывания песка
   gold = 750 - uo.getQuantity('finditem')                     ##Проверка количества денег
   if gold==750 then
      return 0
   endif
   if gold>0 then
      return 1
   endif
   if gold<=0 then
      return 2
   endif
end sub
sub cast(client)
   if uo.mana<50 then
      uo.fontcolor('0x010c')
      uo.msg('Секундочку.')
      while uo.mana<50
         uo.useskill('Meditation')
         wait(11000)
      wend
   endif
   uo.cast('Bless',client)
   while uo.waiting()
      wait(100)
   wend
   uo.cast('Protection',client)
   while uo.waiting()
      wait(100)
   wend
end sub
sub zazjvalka()
   while not uo.dead()
      uo.fontcolor('0x0003')
      uo.msg('Фпервые под куполом цЫрка - обкаст за деньги: Bless+Protectioin фсего за 750 монет')
      uo.msg('Для обкаста просто дайте мне денег :)')
      wait(50000)
   wend
end sub
nortex2
Posts: 10
Joined: 2008-02-18 16:10:43

Re: Помогите исправить скрипт (обкаст за деньги)

Post by nortex2 »

Благодарю!
talomon
Posts: 5
Joined: 2009-01-19 20:54:37

Re: Помогите исправить скрипт (обкаст за деньги)

Post by talomon »

Есть проблема, хочу в этот скрипт помимо обкаста добавить хил и диспел за деньги.
Проблема в модуле подсчёта денег, сейчас он выглядит так:

Code: Select all

sub Check()
   var gold   
   uo.findtype('0x0EED','0x0000', uo.TradeContainer('right'))  ##Проверяем наличие денег
   gold = 2000 - uo.getQuantity('finditem')                     ##Проверяем сумму
   if gold==2000 then
      return 0
   endif
   if gold==1500 then
      return 4
   endif
   if gold==1900 then
   return 3
    endif
      if gold>1900 then
      return 1
      endif
   if gold<=0 then
      return 2
   endif
end sub

каст-2000, диспел- 500, хил-100
Сейчас если кладёт больше 2000, он кастит, меньше 100 он ругается на сумму, а диспелит и хилит только если положить точную сумму (500 или 100). Как сделать чтобы диспелил при сумме 1999-500, а хилил при сумме 499-100 ? а то я чтото жёстко туплю на этот счёт
Post Reply