Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

жрет ЦП на этом скрипте

тут можно задать вопрос по скриптингу
Post Reply
L'inconnu
Novice
Novice
Posts: 73
Joined: 03.02.2006 8:46
Contact:

жрет ЦП на этом скрипте

Post by L'inconnu »

скрипт достаточно простой:

Code: Select all

program Tracking;

Begin

while true do
   begin
   WaitMenu('Tracking','Anything that moves')
   UseSkill('Tracking');
   Wait(500);
   end;

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

ПС: замочек на UO Jornal работает как-то некорректно. локаю его, сворачиваю стелс, разворачиваю - журнал содержит записи.
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

Используй лучше автоменю например так:

Code: Select all

Begin
AutoMenu('Tracking', 'Anything that moves')

while true do
   begin
   UseSkill('Tracking');
   Wait(500);
   end;

End.
Да и убедись, чтобы параметры в AutoMenu были заданы верно.
новые открываются, старые не закрываются, есть такое подозрение что где-то в памяти они и тут оседают
Ну а где потвоему стелс должен помнить об открытых менюшках? Конечно он хранит все в памяти. Если старые не закрываються, то ясное дело список таких менюшек в стелсе раздувается. И все это происходить именно в памяти.

А какова необходимость не закрывать старые менюшки? Как ты на обычном клиенте делаешь? Не закрываешь и собираешь тысячами?
L'inconnu
Novice
Novice
Posts: 73
Joined: 03.02.2006 8:46
Contact:

Post by L'inconnu »

все задано верно, все работает скилл растет.
Конечно он хранит все в памяти. Если старые не закрываються, то ясное дело список таких менюшек в стелсе раздувается. И все это происходить именно в памяти.
и он по этой памяти еще бегает, иначе ЦП тут не причем. 20 ЦП для стелса это аналогично простому клиенту ;)
А какова необходимость не закрывать старые менюшки? Как ты на обычном клиенте делаешь? Не закрываешь и собираешь тысячами?
закрыть можно, в простом клиенте правой кнопкой на ней, а тут такого нет: CancelMenu отменяет ловушки, а не сами менюшки, что в данном случае спасло бы ситуацию. если же там выбрать кого-нибудь для трекинга, начинается трекинг при котором нельзя использовать скилл трекинг снова, только вармодом сбрасывать, задержа в этом случае на порядок больше 500.
на обычном клиенте ассист открывает первую менюшку, а каким-нибудь уо-лупом делал правый клик в той области, чара в угол ставил :)
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

Использование AutoMenu должно тебе частично помочь.

А так, пока нету ф-ции отмены менюшки, необходимо использовать тебе альтернативный способ из закрытия. Хоть тоже включение вара раз в пару минут например.
L'inconnu
Novice
Novice
Posts: 73
Joined: 03.02.2006 8:46
Contact:

Post by L'inconnu »

трекинг уже 100, отмучился ;)

а вот про альтернативный способ закрития не понял :) это же стелс, я ничего не вижу, сидят они в памяти. вармод дает сброс трекинга, но не менюшек. так бы вопросов не было. вызови любую менюшку в клиенте бса, карпентра, трекинга, потом еще одну, еще еще как их закрыть? только ручками, либо встроенный в уо макрос CloseGumps. теперь параллель со стелсом проводим - ответ, пока, никак.
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

Гампы закрываются путем WaitGump('0');
Менюшки закрываються путем выбора в них того, что они просят. :wink:
L'inconnu
Novice
Novice
Posts: 73
Joined: 03.02.2006 8:46
Contact:

Post by L'inconnu »

но в прошлое-то возврата нет. меню ставит ловушку на то что будет, а то что было она уже не выберет
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

L'inconnu wrote:но в прошлое-то возврата нет. меню ставит ловушку на то что будет, а то что было она уже не выберет
Кто тебе такую глупость сказал? :wink:
Любая ловушка перед тем как поставиться проверяет ситуацию, и если она уже имеется, то ловушка сразу срабатывает.
Это касается как и WaitMenu (или AutoMenu), так и WaitTarget, WaitGump и тд. :)
L'inconnu
Novice
Novice
Posts: 73
Joined: 03.02.2006 8:46
Contact:

Post by L'inconnu »

тогда варинт. цикл 100 треков с одним использованием AutoMenu('', 'Anything'), потом AutoMenu('Tracking <или что тут будет написано>', 'что-то'), вар, отмена автоменю.
такой вопросик:
Любая ловушка перед тем как поставиться проверяет ситуацию, и если она уже имеется, то ловушка сразу срабатывает.
достаточно будет AutoMenu('Tracking <или что тут будет написано>', 'что-то') и она сама в миг создаст пик нагрузки и выберет все менюхи, либо после одной проверки она шагнет дальше и ее надо повторять? *наверно все таки все выберет, иначе какое же это авто*
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

Проверь :wink:
L'inconnu
Novice
Novice
Posts: 73
Joined: 03.02.2006 8:46
Contact:

Post by L'inconnu »

проверил, судя по тому как стелс лагает, предполагаю что срабатывает 1 раз.

Code: Select all

program Tracking;

var i : Integer;
var person_to_track : String;

Begin

person_to_track := 'Bazyli'

SetARStatus(true)
if not connected then connect

while not dead do
   begin
   while connected do
      begin
      AutoMenu('Tracking', 'Anything that moves')
      for i:= 1 to 100 do
         begin
         UseSkill('Tracking')
         wait(500)
         end
      AutoMenu('Tracking', person_to_track)
      wait(2000)
      SetWarMode(true)
      wait(250)
      SetWarMode(false)
      wait(250)
      end
   wait(500)
   end
SetARStatus(false)
Disconnect

End.
L'inconnu
Novice
Novice
Posts: 73
Joined: 03.02.2006 8:46
Contact:

Post by L'inconnu »

btw в команде connect могли бы быть полезными 2 параметра n и m, т.е. connect(n,m) где n - номер шарда, m - номер чара. а то по первому разу конектится приходится вручную, после перезапуска стелс помнит пароль логин, но не помнит шард/чара по умолчанию. хотя конечно это мелочи ;) какая-нибудь хотьба куда важнее
L'inconnu
Novice
Novice
Posts: 73
Joined: 03.02.2006 8:46
Contact:

Post by L'inconnu »

определенно один раз

Code: Select all

program Tracking;

var i : Integer;
var person_to_track : String;

Begin

person_to_track := 'Bazyli'

SetARStatus(true)
if not connected then connect

while not dead do
   begin
   while connected do
      begin
      AutoMenu('Tracking', 'Anything that moves')
      for i:= 1 to 100 do
         begin
         UseSkill('Tracking')
         wait(500)
         end
      for i:= 1 to 100 do
         begin
         AutoMenu('Tracking', person_to_track)
         end
      wait(2000)
      SetWarMode(true)
      wait(250)
      SetWarMode(false)
      wait(250)
      end
   wait(500)
   end
SetARStatus(false)
Disconnect

End.
System: Targeting Cancelled
System: Targeting Cancelled
System: Targeting Cancelled
System: Targeting Cancelled
System: Targeting Cancelled
System: Targeting Cancelled
System: Targeting Cancelled
System: Targeting Cancelled
System: Targeting Cancelled
System: Unexpected menu info
System: Unexpected menu info
System: Unexpected menu info
System: Unexpected menu info
System: Unexpected menu info
System: Unexpected menu info
System: Unexpected menu info
System: Unexpected menu info
System: Unexpected menu info
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

Взял на заметку.
Post Reply