Цикл For

Ask for help

Moderators: Murderator+, Murderator

Post Reply
Egrace
Posts: 29
Joined: 2009-03-23 18:05:30

Цикл For

Post by Egrace »

Привет всем. Вот написал немного кода. И не пойму, что тут не верно??? Ошибку выдает на 165 строке и на 173. На обеих одну. TParser::SetEndForLastFor - step is not T_Number
Вот сам скрипт:

Code: Select all

####################################################
##   Автор скрипта: Ares                         ##
##   Сервер: Короли Махаона(uolife.ru)               ##
##   Предназначение скрипта: Прокачка в спарринге, ##
##  прокачка Poisoning                       ##
##  Версия скрипта: 1.0Alfa                    ##
##  ВНИМАНИЕ!!! ЧИТАЕМ ТО, ЧТО ПРЕДЛОГАЕТ СКРИПТ  ##
####################################################

sub main()

VAR i, suck, r, a, b, c, d, x, h
###################
##i - круги хилселфа
##x - круги хилла партнера
##suck - проверка на пойзонинг
##r - кол-во хилселфов
##a - проверка на хилселф
##b - проверка хиллов партнера
##h - кол-во хиллов партнера
##d - кол-во хитов
####################
####Впишите пожалуйста после = кол-во ХП, которые скрипт будет стараться удерживать.
d=150
#####################
uo.DeleteJournal()
######################################
##########Настройка скрипта###########
######################################
  UO.deletejournal()
  UO.print('ШАГ 1')
  UO.print('скажите -да если хотите качать Poisoning, -нет если не хотите')
  repeat
    wait(100)
  until uo.injournal(uo.getname('self') + ': -')
  if uo.injournal(uo.getname('self') + ': -да') then
    suck=1
  else
    suck=2
  endif 
######
  UO.deletejournal()
  UO.print('ШАГ 2')
  UO.print('скажите -да если хотите, чтобы скрипт лечил вас, -нет если не хотите')
  repeat
    wait(100)
  until uo.injournal(uo.getname('self') + ': -')
  if uo.injournal(uo.getname('self') + ': -да') then
    a=1
  else
    a=2
  endif 
 
if a == 1 then

#  UO.print('скажите, при скольки ХП вы хотите, чтобы скрипт вас лечил. Пример: "-150" (без ковычек)(ЭТО НЕ МИНУС 150)')
#  repeat
#    wait(100)
#  until uo.injournal(uo.getname('self') + ': -')
#  If uo.injournal(uo.getname('self') + ': -') then



   UO.deletejournal()
  UO.print('Скажите, сколько раз вы хотите, чтоб скрипт лечил вас. МАКСИМУМ - ТРИ РАЗА. МИНИМУМ - ОДИН. Пример: "-3" - это значит, что скрипт будет лечить вас трижды, перед тем, как перейдет на другую функцию. (ДЛЯ БЛОНДИНОК. В примере не минус три, а ТРИ.)')
  repeat
    wait(100)
  until uo.injournal(uo.getname('self') + ': -')
  uo.deletejournal()
  if uo.injournal(uo.getname('self') + ': -1') then
 r=1
 endif
 if uo.injournal(uo.getname('self') + ': -2') then
 r=2
 endif
 if uo.injournal(uo.getname('self') + ': -3') then
 r=3
 endif
endif
######
  UO.deletejournal()
  UO.print('ШАГ 3')
  UO.print('скажите -да если хотите, чтобы скрипт лечил того, кто с вами в спарринге, -нет если не хотите')
  repeat
    wait(100)
  until uo.injournal(uo.getname('self') + ': -')
  if uo.injournal(uo.getname('self') + ': -да') then
    b=1
  else
    b=2
  endif 

if b == 1 then
   UO.deletejournal()
  UO.print('Скажите, сколько раз вы хотите, чтоб скрипт лечил вашего партнера. МАКСИМУМ - ТРИ РАЗА. МИНИМУМ - ОДИН. Пример: "-3" - это значит, что скрипт будет лечить вас трижды, перед тем, как перейдет на другую функцию. (ДЛЯ БЛОНДИНОК. В примере не минус три, а ТРИ.)')
  repeat
    wait(100)
  until uo.injournal(uo.getname('self') + ': -')
  uo.deletejournal()
  if uo.injournal(uo.getname('self') + ': -1') then
 h = 1
 endif
 if uo.injournal(uo.getname('self') + ': -2') then
 h = 2
 endif
 if uo.injournal(uo.getname('self') + ': -3') then
 h = 3
 endif
endif
###############################################################################################
UO.print('ШАГ 4')
   if b == 1 then
  uo.Print('Кого лечить')      
  uo.Exec('addobject JIe4umbIu')   
  while uo.Targeting()            
  wait(100)                     
  wend                        
   endif
   
   if suck == 1 then                           
  uo.Print('Яд')               
  uo.Exec('addobject Yad')         
  while uo.Targeting()            
  wait(100)                     
  wend                        
                           
  uo.Print('Оружие')            
  uo.Exec('addobject SparringWeap')
  while uo.Targeting()            
  wait(100)                     
  wend                        
   endif
                  
  uo.Print('Бинты')
  uo.Exec('addobject SparringBandages')
  while uo.Targeting()
  wait(100)
  wend
 
  uo.Print('Еда')
  uo.Exec('addobject SparringEAT')
  while uo.Targeting()
  wait(100)
  wend

UO.deletejournal()
#################################
###Настройка скрипта завершена###
#################################
uo.print('Настройка завершена. Приступаем к прокачке')
 start:
###############################
#####перезапись переменных#####
###############################

##############################
#####перепись окончена########
##############################
         if suck == 1 then
          uo.waittargetobject('Yad', 'SparringWeap')
          uo.UseSkill('Poisoning')
          wait(3000)
          endif
if b == 1 then         
     For i = 1 To h
     uo.useobject('SparringBandages')
     uo.waittargetobject('JIe4umbIu')
     wait(7000)
     UO.Print( 'Лечим кореша' + str( x ) )
     Next
endif

 For x = 1 to r     
While UO.life < d
uo.msg('.bandage')
wait(7000)
wend
 UO.Print( 'Лечим себя' + str( x ) )
 next
 
if uo.injournal("Вы слегка голодны.") then
uo.useobjecttype('SparringEAT')
endif
 uo.DeleteJournal()
 goto start
 endsub

[/code]
GAUHAR
Posts: 137
Joined: 2006-11-06 21:45:23

Post by GAUHAR »

Не знаю что делает твой скрипт, но теперь ошибок вроде не выдает. Если что не ясно, смотри коментарии в скрипте где я что исправил.

Code: Select all

####################################################
##   Автор скрипта: Ares                          ##
##   Сервер: Короли Махаона(uolife.ru)            ##
##   Предназначение скрипта: Прокачка в спарринге,##
##  прокачка Poisoning                            ##
##  Версия скрипта: 1.0Alfa                       ##
##  ВНИМАНИЕ!!! ЧИТАЕМ ТО, ЧТО ПРЕДЛОГАЕТ СКРИПТ  ##
####################################################

sub main()

   #VAR i, suck, r, a, b, c, d, x, h          #Было.
   VAR i, suck, r = 1, a, b, c, d, h = 1      #Исправил.

   ###################
   ##i - круги хилселфа
   ##x - круги хилла партнера              #Фигня какая-то и в скрипете значение нигде не определяется.
   ##suck - проверка на пойзонинг
   ##r - кол-во хилселфов
   ##a - проверка на хилселф
   ##b - проверка хиллов партнера
   ##h - кол-во хиллов партнера
   ##d - кол-во хитов
   ####################
   ####Впишите пожалуйста после = кол-во ХП, которые скрипт будет стараться удерживать.
   d=150
   #####################
   uo.DeleteJournal()
   ######################################
   ##########Настройка скрипта###########
   ######################################
   UO.deletejournal()
   UO.print('ШАГ 1')
   UO.print('скажите -да если хотите качать Poisoning, -нет если не хотите')
   repeat
      wait(100)
   until uo.injournal(uo.getname('self') + ': -')
   if uo.injournal(uo.getname('self') + ': -да') then
      suck=1
    else
      suck=2
   endif
   #############################################################
   UO.deletejournal()
   UO.print('ШАГ 2')
   UO.print('скажите -да если хотите, чтобы скрипт лечил вас, -нет если не хотите')
   repeat
      wait(100)
   until uo.injournal(uo.getname('self') + ': -')
   if uo.injournal(uo.getname('self') + ': -да') then
      a=1
    else
      a=2
   endif

   if a == 1 then

      #  UO.print('скажите, при скольки ХП вы хотите, чтобы скрипт вас лечил. Пример: "-150" (без ковычек)(ЭТО НЕ МИНУС 150)')
      #  repeat
      #    wait(100)
      #  until uo.injournal(uo.getname('self') + ': -')
      #  If uo.injournal(uo.getname('self') + ': -') then



      UO.deletejournal()
      UO.print('Скажите, сколько раз вы хотите, чтоб скрипт лечил вас. МАКСИМУМ - ТРИ РАЗА. МИНИМУМ - ОДИН. Пример: "-3" - это значит, что скрипт будет лечить вас трижды, перед тем, как перейдет на другую функцию. (ДЛЯ БЛОНДИНОК. В примере не минус три, а ТРИ.)')

      #А вводит все равно надо минус ТРИ ))), такчто блондики не причем )))

      repeat
         wait(100)
      until uo.injournal(uo.getname('self') + ': -')
      uo.deletejournal()
      if uo.injournal(uo.getname('self') + ': -1') then
         r=1
      endif
      if uo.injournal(uo.getname('self') + ': -2') then
         r=2
      endif
      if uo.injournal(uo.getname('self') + ': -3') then
         r=3
      endif
   endif
   #############################################################
   UO.deletejournal()
   UO.print('ШАГ 3')
   UO.print('скажите -да если хотите, чтобы скрипт лечил того, кто с вами в спарринге, -нет если не хотите')
   repeat
      wait(100)
   until uo.injournal(uo.getname('self') + ': -')
   if uo.injournal(uo.getname('self') + ': -да') then
      b=1
    else
      b=2
   endif

   if b == 1 then
      UO.deletejournal()
      UO.print('Скажите, сколько раз вы хотите, чтоб скрипт лечил вашего партнера. МАКСИМУМ - ТРИ РАЗА. МИНИМУМ - ОДИН. Пример: "-3" - это значит, что скрипт будет лечить вас трижды, перед тем, как перейдет на другую функцию. (ДЛЯ БЛОНДИНОК. В примере не минус три, а ТРИ.)')
      repeat
         wait(100)
      until uo.injournal(uo.getname('self') + ': -')
      uo.deletejournal()
      if uo.injournal(uo.getname('self') + ': -1') then
         h = 1
      endif
      if uo.injournal(uo.getname('self') + ': -2') then
         h = 2
      endif
      if uo.injournal(uo.getname('self') + ': -3') then
         h = 3
      endif
   endif
   #############################################################
   UO.print('ШАГ 4')
   if b == 1 then
      uo.Print('Кого лечить')
      uo.Exec('addobject JIe4umbIu')
      while uo.Targeting()
         wait(100)
      wend
   endif

   if suck == 1 then
      uo.Print('Яд')
      uo.Exec('addobject Yad')
      while uo.Targeting()
         wait(100)
      wend

      uo.Print('Оружие')
      uo.Exec('addobject SparringWeap')
      while uo.Targeting()
         wait(100)
      wend
   endif

   uo.Print('Бинты')
   uo.Exec('addobject SparringBandages')
   while uo.Targeting()
      wait(100)
   wend

   uo.Print('Еда')
   uo.Exec('addobject SparringEAT')
   while uo.Targeting()
      wait(100)
   wend

   UO.deletejournal()
   #################################
   ###Настройка скрипта завершена###
   #################################
   uo.print('Настройка завершена. Приступаем к прокачке')
 start:
   ###############################
   #####перезапись переменных#####
   ###############################

   ##############################
   #####перепись окончена########
   ##############################
   if suck == 1 then
      uo.waittargetobject('Yad', 'SparringWeap')
      uo.UseSkill('Poisoning')
      wait(3000)
   endif
   if b == 1 then
      For i = 1 To h      #<<<<<<<<<<< ЗДЕСЬ ВЫДАВАЛО ОШИБКУ
         uo.useobject('SparringBandages')
         uo.waittargetobject('JIe4umbIu')
         wait(7000)
         #UO.Print( 'Лечим кореша' + str( x ) )  #Было.
         UO.Print( 'Лечим кореша')               #Исправил.
      Next
   endif

   if a == 1 then            #Добавил
      For x = 1 to r         #<<<<<<<<<<< ЗДЕСЬ ВЫДАВАЛО ОШИБКУ
         While UO.life < d
            uo.msg('.bandage')
            wait(7000)
         wend
         #UO.Print( 'Лечим себя' + str( x ) )   #Было.
         UO.Print( 'Лечим себя')                #Исправил.
      next
   endif                     #Добавил

   if uo.injournal("Вы слегка голодны.") then
      uo.useobjecttype('SparringEAT')
   endif
   uo.DeleteJournal()
   wait(10)
 goto start
endsub
Egrace
Posts: 29
Joined: 2009-03-23 18:05:30

Post by Egrace »

Это универсальный скрипт для спаррингов на Махаоне)) Спасибо. Сейчас буду тестировать)
Egrace
Posts: 29
Joined: 2009-03-23 18:05:30

Post by Egrace »

В скором времени универсальный)
Post Reply