подлагивает скрипт

Ask for help

Moderators: Murderator+, Murderator

Post Reply
retr1val
Posts: 20
Joined: 2007-09-24 17:11:19

подлагивает скрипт

Post by retr1val »

незнаю в чём но есть проблема... когда запукаю скрипр, клиент начинает подлагивать ... в скрите ошибка чтоли ? :?


Code: Select all

sub healingother()
repeat
while not uo.dead()
wait(200)
uo.UseType('0x0E21','0x0000')
uo.deletejournal()
uo.waittargetobject('0x00008E6E')
wait(1000)
repeat
until uo.injournal('put') or uo.injournal('fully')
wait(1000)
uo.print('3')
wait(1000)
uo.print('2')
wait(1000)
uo.print('1')
wait(1600)
wend
end if
end if
end sub
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Code: Select all

sub healingother() 

repeat

  while not uo.dead()
    wait(200)

    uo.UseType('0x0E21','0x0000')
    uo.deletejournal()
    uo.waittargetobject('0x00008E6E')
    wait(1000)
    repeat
 
    until uo.injournal('put') or uo.injournal('fully')

    wait(1000)
    uo.print('3') 
    wait(1000)
    uo.print('2')
    wait(1000)
    uo.print('1')
    wait(1600)

  wend

end if
end if
end sub


1. Для чего repeat и 2 ифа в конце?
2.

Code: Select all

    uo.UseType('0x0E21','0x0000') 
    uo.deletejournal()
    uo.waittargetobject('0x00008E6E')


Ловушка на прицел ставится до действия.

Code: Select all

    uo.deletejournal() 
    uo.waittargetobject('0x00008E6E')
    uo.UseType('0x0E21','0x0000')


3.

Code: Select all

    repeat 
 
    until uo.injournal('put') or uo.injournal('fully')


Лагает из-за того что пока ждёт сообщений выполняет проверку на их наличие в журнале с минимально возможной задержкой что и приводит к таким лагам. wait(100) внутри цикла будет достаточно + используй динамическую задержку

Code: Select all

    var k
    k=0
    repeat
      k=k+1
      wait(100)
    until uo.injournal('put') or uo.injournal('fully') || k>100


тогда в случае того что если сообщения и не появятся то как только k достигнет значения =100, он выйдет из цикла

4. Используй табуляцию и учись правильно программировать- это будет удобно и для тебя и для других. Отступы после условных операторов и циклов на 1-4 пробела от первой буквы оператора(if,repeat,while,for) и когда закрываешь (end if,until,wend,next) то возвращаешься на такое же кол-во пробелов чтоб скрипт был более читабельным

Пример:


Code: Select all

repeat    
   If  Then
      If  Then
         If  Then
            If  Then

            Endif
         Endif
      Endif
   Endif
   If  Then
      If  Then

      Endif
      If  Then

      Endif
   Endif
until 
retr1val
Posts: 20
Joined: 2007-09-24 17:11:19

Post by retr1val »

Scripts Writer ты просто бог скриптов :) спасиб тебе 8) :)
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

:oops: :wink:
Post Reply