Page 1 of 1

Вопрос.

Posted: 2006-12-04 13:30:32
by GenDor
Есть ли разница между:

Code: Select all

end sub   и   endsub

и

endif   и   end if


?

Заранее благодарен!

Posted: 2006-12-04 14:29:41
by omi4
нет

Posted: 2006-12-04 15:38:04
by GenDor
я знал)

и еще вопрос плз.

прально ли я понимаю, если, допустим, я напишу

Code: Select all

while uo.hits>100
.......
wend


то вслучие, если хитов меньше 100 я могу словить краш клиента?

Posted: 2006-12-04 18:26:59
by GimFlex
GenDor wrote:я знал)

и еще вопрос плз.

прально ли я понимаю, если, допустим, я напишу

Code: Select all

while uo.hits>100
.......
wend


то вслучие, если хитов меньше 100 я могу словить краш клиента?

цикл будет работать пока хитов больше 100 никаких крашей тут не видно :lol:

Posted: 2006-12-05 10:15:42
by GenDor
Я вот про это :

Code: Select all

sub MyScript() 
   While UO.Life > 0
      If UO.Life < 70 Then
         UO.Bandageself()
         wait(2000)
      Endif
   Wend
endsub



Этот скрипт - это попытка написать автополхилл чара. Цикл while "крутится" пока здоровья больше 0, то есть пока чар не умрет. Если здоровья становится меньше 70 - чар лечится с бинтов (именно это и делает команда UO.Bandageself() ). В чем же ошибка этого скрипта? Эта ошибка называется "пустой цикл". Давайте проверим, что происходит во время работы этого скрипта. А именно, если здоровья у чара больше 70 (или равно). В этом случае действия внутри if...endif не выполняются, и цикл while...wend становится пустым, то есть в нем не производится никаких действий. Скриптовый модуль инжекта устроен так, что в этом случае вы получите 100%-загрузку процессора вашего компьютера (зависнет) и, быстрее всего, креш игры или системы.

Из учебника

Posted: 2006-12-05 16:42:37
by omi4
вот не пустой

Code: Select all

sub MyScript() 
   While UO.Life > 0
      If UO.Life < 70 Then
         UO.Bandageself()
         wait(2000)
      else
         wait(200)
      Endif
   Wend
endsub

Posted: 2006-12-06 14:30:08
by GenDor
omi4 wrote:вот не пустой

Code: Select all

sub MyScript() 
   While UO.Life > 0
      If UO.Life < 70 Then
         UO.Bandageself()
         wait(2000)
      else
         wait(200)
      Endif
   Wend
endsub


большое спс. теря я все понял. 8)
прост я несколько раз перечитывал и запутался :oops: