MOTR logo
    • Категории
    • Последние
    • Популярные
    • Метки
    • Пользователи
    • Группы
    • Зарегистрироваться
    • Войти

    Зависает клиент

    Запланировано Прикреплена Закрыта Перенесена Невозможно исправить
    13 Сообщения 7 Posters 1.1k Просмотры
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • BakshaB Не в сети
      Baksha Заблокирован
      отредактировано

      стоит восьмерка, железо: FX 4100(4 ядра), 8gb озу,видео - radeon 7850 2gb, драйвера последние, директХ тоже последний, клинт качал тут <!-- m --><a class="postlink" href="http://yadi.sk/d/UoHAByUB6C0HI">http://yadi.sk/d/UoHAByUB6C0HI</a><!-- m --> сборка от Lazybloke, другие ставить или патчить не пробовал....Что такое батник от агамемнона не знаю даже...

      1 ответ Последний ответ Ответить Цитировать 0
      • D Не в сети
        dyaa
        отредактировано

        Baksha,
        стоит восьмерка
        вот с этого надо было начинать... ну криво оно работает вод вин8... ничего тут не поделать...

        1 ответ Последний ответ Ответить Цитировать 0
        • LazyblokeL Не в сети
          Lazybloke Helpers Team
          отредактировано

          Если есть проблемы с зависанием ruro, то в моей сборке клиента от 26.06 присутствует файл lazy.exe. Запускайте клиент им, а не батниками. <!-- m --><a class="postlink" href="http://yadi.sk/d/6O6PSmlk6z2Va">http://yadi.sk/d/6O6PSmlk6z2Va</a><!-- m -->

          Lazybloke - Sura 175/60
          Приём в MoonRiders | MOTR-инфо

          1 ответ Последний ответ Ответить Цитировать 0
          • ProkuratorP Не в сети
            Prokurator
            отредактировано

            Давно уже пора в шапку куда-нибудь прикрепить или в вики.
            Единственно надёжный батник для убиения ruro - это мой вариант:

            !
            ! @echo off
            ! :start
            ! tasklist | find /i "ruro.exe"
            ! if errorlevel 1 goto run_ro
            ! taskkill /f /im ruro.exe /t
            ! ping localhost -n 2 > nul
            ! goto start
            ! :run_ro
            ! start C:\Games\MotrClient\updater.exe
            ! exit
            !
            Создайте файл RunRO.bat с таким содержимым, заменив в предпоследней строчке путь к клиенту и updater.exe на ваш собственный. Положите сам батник в папку с клиентом, он должен лежать именно там. Можно сделать ярлык на этот батник и вынести его на рабочий стол и запускать ярлыком.


            Это будет надёжно работать на любой винде. Т.к. здесь попытка найти и убить процесс производится не один раз, а в цикле, до тех пор, пока гарантированно не будет достигнут успех. Пинг локалхоста в null - это просто ожидание.

            1 ответ Последний ответ Ответить Цитировать 0
            • ppdvP Не в сети
              ppdv
              отредактировано

              @"Prokurator":
              Давно уже пора в шапку куда-нибудь прикрепить или в вики.

              Единственно надёжный батник для убиения ruro - это мой вариант:

              !
              ! @echo off
              ! :start
              ! tasklist | find /i "ruro.exe"
              ! if errorlevel 1 goto run_ro
              ! taskkill /f /im ruro.exe /t
              ! ping localhost -n 2 > nul
              ! goto start
              ! :run_ro
              ! start C:\Games\MotrClient\updater.exe
              ! exit
              !
              Создайте файл RunRO.bat с таким содержимым, заменив в предпоследней строчке путь к клиенту и updater.exe на ваш собственный. Положите сам батник в папку с клиентом, он должен лежать именно там. Можно сделать ярлык на этот батник и вынести его на рабочий стол и запускать ярлыком.


              Это будет надёжно работать на любой винде. Т.к. здесь попытка найти и убить процесс производится не один раз, а в цикле, до тех пор, пока гарантированно не будет достигнут успех. Пинг локалхоста в null - это просто ожидание.

              Твой батник — избыточная фигня с переходами и пингом для sleep().

              !
              ! @ECHO OFF
              ! TASKKILL /im ragexea.exe /f >NUL
              ! START updater.exe
              !

              Для желающих привязать ро к одному процессору, можно использоовать "start /affinity 1 updater.exe" вместо start.
              Vista+, конечно. Впрочем, на xp ragexea и не остается висеть.

              «единственно верным» привет :Rose:

              1 ответ Последний ответ Ответить Цитировать 0
              • ProkuratorP Не в сети
                Prokurator
                отредактировано

                ppdv, нет. Твой вариант просто не будет работать в подавляющем большинстве случаев. Что, вообще говоря, очевидно. Во-первых попытка убить процесс производится только один раз, причём не тот, во-вторых не убиваются дочерние процессы и в-третьих не делается никакой проверки на существование того процесса, который собираешься убивать. Раскрой глаза у тебя start прописано сразу после TASKKILL, не дав никакого времени на успешное завершение этого действия. Поэтому ты, очевидно, получишь к моменту start - "process already running" в большинстве случаев на win7, а под XP - всегда.

                1 ответ Последний ответ Ответить Цитировать 0
                • D Не в сети
                  dyaa
                  отредактировано

                  странно... мой вариант убивает руро и апдейтер в 99% случаев... никаких лагов между запросом и убиванием процессов я не замечал... вин7

                  1 ответ Последний ответ Ответить Цитировать 0
                  • ppdvP Не в сети
                    ppdv
                    отредактировано

                    @"dyaa":
                    странно... мой вариант убивает руро и апдейтер в 99% случаев...
                    Все верно, и в твоем варианте, и в моем, есть завершение с форсом процесса ragexea.exe, завершается он всегда с первого раза, оттестировано годами.

                    На самом деле, в клиенте зависает отнюдь не руро, а именно рагэксеа. Руро всего лишь спавнит рагексеа и аттачится к нему через дебаг-брейкпоинты. Когда зависает рагексеа, руро остается висеть в ожидании выхода рагексеа, и именно потому возникает ошибка ruro is already running.

                    Прок, поскольку руро умирает СРАЗУ после смерти рагексеа, а рагексеа всегда убивается с первого раза, дополнительный цикл с ожиданием не нужен. Ты же вместо этого убиваешь руро, который из-за отладочной связки система убить не позволит до тех пор, пока не завершится рагексеа, но не убиваешь рагексеа. Фактически, твой батник не может убить руро и просто ждет, пока завершится рагексеа (и руро, как следствие)

                    Добавь себе pause и отладочные echo, чтобы увидеть количество интераций, и попробуй перед началом цикла убить рагексеа, и ты сам все увидишь.
                    Если убивать рагексеа, оно убьется в ста процентах случаев, руро также завершится по выходу рагексеа, а проверка на то, запущено ли руро, апдейтером будет проведена уже после ввода пароля. Пароль вводится достаточное время, чтобы рагексе стопроцентно завершился, если только он у тебя не «123».

                    1 ответ Последний ответ Ответить Цитировать 0
                    • BakshaB Не в сети
                      Baksha Заблокирован
                      отредактировано

                      Ничего не помогло, вернул семерку...))

                      1 ответ Последний ответ Ответить Цитировать 0
                      • _o1__ Не в сети
                        _o1_
                        отредактировано

                        Автор разобрался, закрываемся.

                        1 ответ Последний ответ Ответить Цитировать 0
                        • Первое сообщение
                          Последнее сообщение