Page 5 of 6 FirstFirst ... 3456 LastLast
Results 41 to 50 of 60

Thread: Bot hand made

  1. #41
    krukovis
    krukovis is offline
    New member
    Join Date
    2010 Jul
    Posts
    36
    Thanks Thanks Given 
    7
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    Rep Power
    0

    Re: Bot hand made

    -- Удалил глупости.

    У меня большая проблема сейчас - выбивает клиент. Я подозреваю что это из-за того, что срабатывают триггеры. Поставил сейчас задержки после инжектов по-больше. Буду тестировать. Сейчас работает 2-3 часа и потом вырубается. Бот стоит и ничего как будто вокруг не видит, пока не пойму в чем дело.
    Как думаете из-за чего еще так может быть?[adp:]-- 2010-10-27, 07:23 --[/adp:]Поделитесь опытом пожалуйста!
    Как вы реализовали многопоточность чтобы бот не стопорил всю систему во время циклов?
    Задержки в работе циклов? Приоритеты? Другое? Это реально проблема ((. Я когда 1-ого бота запускал - все нормально было, почти не чувствовалось. А когда 3 запустил - они весь процессор заняли.
    Если Вы не отзоветесь, мы напишем в Спортлото!

  2. #42
    Dwar
    Dwar is offline
    Veteran Dwar's Avatar
    Join Date
    2010 Mar
    Posts
    2,222
    Thanks Thanks Given 
    211
    Thanks Thanks Received 
    2,230
    Thanked in
    292 Posts
    Rep Power
    10

    Re: Bot hand made

    krukovis
    # Все зависит от того, как в целом реализованы алгоритмы. Без конкретного примера невозможно сказать, почему бот отнимает столько ресурсов.
    # О каких именно циклах идет речь?
    # У меня было 4-5 потоков. Некоторые "спали" по 1 секунде, другие по 100мс.; часть вообще запускалась только при срабатывании триггера. Приоритет минимальный.
    Please, post your questions on forum, not by PM or mail

    I spend my time, so please pay a little bit of your time to keep world in equilibrium

  3. The Following User Says Thank You to Dwar For This Useful Post:


  4. #43
    krukovis
    krukovis is offline
    New member
    Join Date
    2010 Jul
    Posts
    36
    Thanks Thanks Given 
    7
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    Rep Power
    0

    Re: Bot hand made

    Попробовал минимальный приоритет - бот вообще встал )). Минимальный не пойдет... У меня при запуске бота запускается несколько потоков. Поток поддержания жизнедеятельности - хилит перса и хилит пета и кормит пета. Второй долбит мобов и собирает лут. Второй поток периодически запускает еще 2 потока - кастование скилов перса и пета. Все это в циклах. Проблема в том, что я задержки в циклах поставил маленькие и с приоритемами "Normal". Нужно либо задержки увеличить, либо приоритет уменьшить. Это сейчас в стадии тестирования, просто нужно подобрать оптимальные режимы работы. Я склоняюсь к задержкам, но может и передумаю - надо смотреть как будет лучше.
    ================
    Сейчас запустил 3 окна ботов - все работают без тормозов. Систему грузят самый минимум. Решилось все просто задержками в работе потоков. Такая красота! )) Не нарадуюсь.
    Если Вы не отзоветесь, мы напишем в Спортлото!

  5. #44
    Dwar
    Dwar is offline
    Veteran Dwar's Avatar
    Join Date
    2010 Mar
    Posts
    2,222
    Thanks Thanks Given 
    211
    Thanks Thanks Received 
    2,230
    Thanked in
    292 Posts
    Rep Power
    10

    Re: Bot hand made

    Второй поток периодически запускает еще 2 потока - кастование скилов перса и пета. Все это в циклах.
    До сих пор не могу понять это. Каким образом организована работа потока? Что значит "Все это в циклах"? Поток в цикле?! о_О
    Please, post your questions on forum, not by PM or mail

    I spend my time, so please pay a little bit of your time to keep world in equilibrium

  6. #45
    .jerry
    .jerry is offline
    Guest
    Join Date
    2010 Oct
    Posts
    2
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Rep Power
    0

    Re: Bot hand made

    Все это веселье с потоками помоему заканчивается в тот момент, когда юзеру захочется нажать на кнопку stop посреди выполнения потока У вас этот момент нормально отрабатывается ?

  7. #46
    Dwar
    Dwar is offline
    Veteran Dwar's Avatar
    Join Date
    2010 Mar
    Posts
    2,222
    Thanks Thanks Given 
    211
    Thanks Thanks Received 
    2,230
    Thanked in
    292 Posts
    Rep Power
    10

    Re: Bot hand made

    .jerry
    А где сложность с этим? Булева переменная принимает значение true, поток отслеживает это изменение и останавливается. Т.е., в конце процедуры Execute потока ставим проверку: if stop then suspend;
    Please, post your questions on forum, not by PM or mail

    I spend my time, so please pay a little bit of your time to keep world in equilibrium

  8. #47
    .jerry
    .jerry is offline
    Guest
    Join Date
    2010 Oct
    Posts
    2
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Rep Power
    0

    Re: Bot hand made

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

  9. #48
    Dwar
    Dwar is offline
    Veteran Dwar's Avatar
    Join Date
    2010 Mar
    Posts
    2,222
    Thanks Thanks Given 
    211
    Thanks Thanks Received 
    2,230
    Thanked in
    292 Posts
    Rep Power
    10

    Re: Bot hand made

    как правильно дождаться завершения потока
    все тот же триггер; можно сделать event для потока, срабатывающий при определенных случаях (останов, termination, suspend)
    Please, post your questions on forum, not by PM or mail

    I spend my time, so please pay a little bit of your time to keep world in equilibrium

  10. #49
    krukovis
    krukovis is offline
    New member
    Join Date
    2010 Jul
    Posts
    36
    Thanks Thanks Given 
    7
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    Rep Power
    0

    Re: Bot hand made

    Quote Originally Posted by Dwar
    Второй поток периодически запускает еще 2 потока - кастование скилов перса и пета. Все это в циклах.
    До сих пор не могу понять это. Каким образом организована работа потока? Что значит "Все это в циклах"? Поток в цикле?! о_О
    Вот процедура убийства моба - работает в цикле do-loop пока бот запущен (blnBotStart = true) с задержкой в 1000 мс. :
    Код на VB - легко должен читаться - если что не понятно спрашивайте. Откомментировал максимально подробно.
    Code:
     'Нахожу ближайшего моба
            FindNearMob()
    
            'Создаю и запускаю 2 новых потока
            'Поток Искользования скиллов пета
            ThreadUsePetSkill = New Thread(AddressOf UsePetSkill)
            ThreadUsePetSkill.Priority = ThreadPriority.Normal
            ThreadUsePetSkill.Start()
            ''Поток Использования скиллов персонажа
            ThreadUseMyPersonageSkills = New Thread(AddressOf UseMyPersonageSkills)
            ThreadUseMyPersonageSkills.Priority = ThreadPriority.Normal
            ThreadUseMyPersonageSkills.Start()
            'Запускаю цикл использования скиллов: 
            Do
                'Если поток прекратил свое действие - запускаем еще один поток
                If ThreadUsePetSkill.IsAlive = False Then
                    ThreadUsePetSkill = New Thread(AddressOf UsePetSkill)
                    ThreadUsePetSkill.Start()
                End If
                'Если поток прекратил свое действие - запускаем еще один поток
                If ThreadUseMyPersonageSkills.IsAlive = False Then
                    ThreadUseMyPersonageSkills = New Thread(AddressOf UseMyPersonageSkills)
                    ThreadUseMyPersonageSkills.Priority = ThreadPriority.Normal
                    ThreadUseMyPersonageSkills.Start()
                End If
                'Отдыхаем, дожидаемся пока потоки скиллов поработают
                Thread.Sleep(2000)
                'Читаем что в цели у персонажа - для того чтобы понять убили мы моба или нет
                Dim intMyPersonageTargetID As Integer
                Dim MY_PERSONAGE_TARGET_ID() As Integer = {&H0, &H1C, &H20, &HAF8} 'Цель персонажа
                intMyPersonageTargetID = MF.ReadMemoryInt(MY_PERSONAGE_TARGET_ID)
                'Если в цели 0, то выходим из цикла
            Loop While intMyPersonageTargetID <> 0
            'Дожидаемся пока все ранее запущенные потоки прекратят свою работу:
            Do
                If ThreadUsePetSkill.IsAlive = False Then
                    If ThreadUseMyPersonageSkills.IsAlive = False Then
                        If ThreadMobDiesCoordinates.IsAlive = False Then
                            Exit Do
                        End If
                    End If
                End If
                Thread.Sleep(1000)
            Loop
            'Идем собирать лут
            LootUp()
    -- 2010-10-31, 14:30 --
    Ищу значение показывающее хватает ли ярости для использования скилла. Подскажите - есть ли оно вообще и как вы решали эту задачу, если его нет?
    Если Вы не отзоветесь, мы напишем в Спортлото!

  11. #50
    Dwar
    Dwar is offline
    Veteran Dwar's Avatar
    Join Date
    2010 Mar
    Posts
    2,222
    Thanks Thanks Given 
    211
    Thanks Thanks Received 
    2,230
    Thanked in
    292 Posts
    Rep Power
    10

    Re: Bot hand made

    Т.е., перед каждой атакой моба, бот создает две нити, ждет завершения этих нитей и так происходит постоянно. Я правильно понял? Если да, то все необходимые нити можно создать при инициализации бота, а потом управлять ими через resume/suspend, что значительно сэкономит ресурсы и понизит время исполнения операций.

    Были данные для ярости но, учитывая 8 месяцев, в течение которых клиент многократно обновлялся, все мои таблицы и т.п. безнадежно устарели. Если я правильно помню, ярость в диапазоне 0-100, каждый сегмент = 10.
    Please, post your questions on forum, not by PM or mail

    I spend my time, so please pay a little bit of your time to keep world in equilibrium

Page 5 of 6 FirstFirst ... 3456 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •