Перейти к содержанию

srg91

Администраторы
  • Постов

    289
  • Зарегистрирован

  • Победитель дней

    22

Сообщения, опубликованные srg91

  1. 3 минуты назад, nedix сказал:

    Я так понял, чтобы сделать что-то в игре кодом, нужно создать поток "createthread"?

     

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

  2. Я не правильно понял направление разговора, в котором шла тема, поэтому перенес. 

    Окей, я тогда перенесу обратно и удалю лишние сообщения, чтобы не смущать людей.

  3. 43 минуты назад, Alexey594 сказал:

    Вы же кстати админ

     

    Спойлер

    Я не настоящий админ, у меня лапки

    3.jpg

     

    Это не очень похоже на запрос, плюс запросы без оплаты труда не доступны без заслуг перед форумом.

    Перенес в общение, мы же просто обсуждаем возможность портирования.

     

    Ох, я понял что неправильно прочитал тему, думал стоит вопрос портирования с Windows на Linux ?‍♂️

    Боюсь тут я еще больший чайник, чем вы.

     

    Правда судя по описанию драйвера для Linux они подразумевают возможность будущего портирования на Windows / OS X если найдется знающий человек.

    Возможно и правда есть такая возможность ?‍♂️

  4. 21 минуту назад, Alexey594 сказал:

    Пользователям SteamController нужна такая прога на Windows. Т.к. steam часто нагружает комп со своим оверлеем, и BP.

     

    Я просто мимо-крокодил со стим-контроллером.

    Мне казалось, что steam controller - это обычное xinput устройство и скорее всего его можно настроить руками. Без GUI конечно, но для начала кажется очень даже не плохо, если заработает.

     

    Кажется здесь есть что-то интересное: https://wiki.archlinux.org/index.php/Gamepad_(Русский)

     

     

  5. 15 минут назад, partoftheworlD сказал:

    Я не помню как на русском это слово правильно пишется, так что если что-то не так, то виноват гугл.?

     

     

    На самом деле вполне нормальное название, просто не сдержался, извините.

    В целом полное название звучит как "член класса", можно так же использовать слова типа: поле, атрибут.

     

    Подробнее про m_: https://ru.wikipedia.org/wiki/Венгерская_нотация

    • Плюс 1
  6. 9 минут назад, Stigmaer сказал:

    МНЕ это по горло надо!!!!!!!!!!!!!!!!!!!!!!!!!!!

    Заранее благодарю за понимание.

     

    Для начала очень рекомендую Феназепам

     

    11 минут назад, Stigmaer сказал:

    мне очень нужен полный список этих опкодов

     

    В CheatEngine есть встроенная справка. Увы под рукой нет CE, поэтому не вспомню надо жать F1 или выбирать меню Help.

    Дополнительно можешь ознакомиться с вики:

     

     

    • Плюс 1
  7.  

    8 минут назад, MasterGH сказал:

    Запустил

     

    Да, супер, отработало как нужно - версия запускаемого питона - 3.5.3;

    В общем запускает его сам AirtestIDE, но как я и говорил встроенный в него Python не умеет в asyncio (но я не разбирался подробно, возможно я не прав).

    Да и рекоммендуют они использовать синтаксис Python 2.7: http://airtest.netease.com/docs/docs_AirtestIDE-en_US/3_faq/script_related_faqs.html?highlight=python#which-python-version-is-supported

     

    Но! Насколько я вижу по тому что FAQ, можно запускать скрипты через отдельно установленный Python

    Поэтому можно попробовать поставить обычный Python, проверить что в нём работает asyncio, доустановить нужные AirtestIDE модули и указать его как основной для AirtestIDE.

    Если ты готов, то можем попробовать сделать это так ) 

    • Понравилось 1
  8. 4 минуты назад, MasterGH сказал:

    Команду я не знаю как найти.  Запуск через кнопку, как обычно. Скриншот

    Ответить смогу только завтра, надо отойти

     

    Можно попробовать вот так запустить, тогда он почти точно выведет что запускается:

    import sys
    message = 'Executable: {}\nVersion: {}'.format(sys.executable, sys.version)
    raise Exception(message)

     

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

    Поэтому возможно он просто не поддерживает корутины.

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

  9. 15 минут назад, MasterGH сказал:

    @srg91

    Привет. Запустил. Логи

     

    Не очень понимаю как ты запускаешь. Ты не мог бы найти команду, которой запускается твой скрипт?

     

    Можно попробовать сделать что-то подобное:

    import sys
    raise Exception(sys.executable)

     

  10. 1 час назад, MasterGH сказал:
      Показать контент

    Все, больше ничего не выкладываю) Глупости

     

    правильно полез, ведь сравнивать динамическую типизацию с строгой - это как сравнивать теплое с мягким :)

    • Понравилось 1
  11. ВАЖНО!

     

    При обновлении форума пересчиталась репутация и теперь она равняется той, что вы заработали на постах / блогах / etc.

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

     

    Вернул как было. Если вы считаете, что что-то возвращено не верно, прошу всё так же писать в личку - посмотрим, что можно сделать.

  12. 15 минут назад, X86Jumps сказал:

    вот тут про это говорится

     

    Спасибо, очень похоже на то. Если я правильно понял из ответа на stackoverflow, то из-за строения array мы должны инициализировать его и одновременно инициализировать его внутренний _Ty _Elems[_Size];

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

    Но при этом есть "специальное правило", которое позволяет "опускать" лишние скобки в случае инициализации агрегатов, но только с условием что это "простая" инициализация, по типу std::vector<std::array<int, 2>>. Если массив содержит что-то, что нужно дополнительно инициализировать, скобки обязательны.

    Поэтому собственно с array<int, 2> работает, а с array<vector..., 2> нет.

     

    Кажется что-то стало более менее понятно, спасибо большое! :)

    • Плюс 1
  13. 2 часа назад, MasterGH сказал:

    если есть возможность

    Ну, если очень мельком глянуть (я попытался посмотреть структуру вектора в исходниках, но у меня не получилось :)), то выглядит следующий код выглядит примерно так:

    vector<int> x = { 1,2,3 };
    vector<int> y = { 4,5,6 };
    array<vector<int>, 2> a = { x, y };
    vector<array<vector<int>, 2>> r = { a };
    
    Спойлер

    vector2.png

     

    где красное - вектора x и y, синее массив a их объединяющий и оранжевый - общий вектор r.

    Да, массив, судя по исходникам, является классом, но в памяти выглядит как подряд идущие объекты, поэтому вложенные в него вектора идут ровно подряд. 

    Сам вектор похоже состоит из 4-х указателей, 3 из которых я так и не понял что, а вот второй - ссылка на текущий массив данных.

    • Понравилось 1
  14. Я тоже вчера попробовал посмотреть мельком-мельком.

    Попробовать просто включить изменение размеров окна, она так просто не дает и чуть-чуть уменьшает окно (чуть не потерял его).

     

    Но вообще - это Unity-игра, поэтому в целом можно попробовать пошурудить Assembly-CSharp.dll каким-нибудь ILSpy чтобы найти код, который работает с размером окна.

    Кажется его даже можно было исправить (я делал это hex-редактором), но вроде можно даже как-то на высоком уровне её пересобрать.

    Тут нужны эксперты по работе с Unity / C# DLL :)

  15. 1 минуту назад, MasterGH сказал:

    Предполагаю

     

    Ты не очень правильно выделил красным, красное - это вот эти два раздельных вектора:

    Спойлер

    vector.png

     

    А синим действительно это инициализация массива, только почему-то с использованием агрегатного синтаксиса. Осталось понять, почему в случае если массив содержит вектора - используется агрегатный синтаксис. А если содержит числа например, то не агрегатный.

     

    10 минут назад, partoftheworlD сказал:

    Никто не понимает, кроме тех кто писал стандарт мне так кажется (я уже с этим смерился):D 

     

    Точно, а компилятор на самом деле отправляет сигнал в космос, в котором он пролетая сквозь хаскелевые экзопланеты балуется монадами и находит ответ :)

     

    • Плюс 1
  16. Только что, partoftheworlD сказал:

    Уже разобрались, дело было в std::array и его агрегатной инициализации, внешние фигурные скобки агрегатный синтаксис инициализации, а внутренний - синтаксис инициализатора массива

     

    Ну не до конца всё же.

    Потому что я пока еще не понимаю, почему для случая vector<array<int, 2>> v = {{1, 2}, {3, 4}}; не используется агрегатный синтаксис, а для случая что я приводил выше - используется :)

     

  17. 41 минуту назад, partoftheworlD сказал:

    Если по простому, то под каждый контейнер нужны скобочки как в доках.

     

    Ну вот, ты нарисовал по 3 блока скобок. А получается нужно 4, иначе не компилируется.

    Если разбить на переменные то не нужно:

    vector<int> x = {1,2,3};
    vector<int> y = {4,5,6};
    array<vector<int>,2> a = {x, y};
    vector<array<vector<int>,2>> r = {a};

    Но тогда если раскрывать обратно, то оно не компилируется:

    Спойлер
    
    // Начальный вариант с переменными
    vector<int> x = {1,2,3};
    vector<int> y = {4,5,6};
    array<vector<int>,2> a = {x, y};
    vector<array<vector<int>,2>> r = {a};
    
    // Раскрываем a
    vector<int> x = {1,2,3};
    vector<int> y = {4,5,6};
    vector<array<vector<int>,2>> r = {{x, y}};
    
    // Раскрываем x и y (перестает компилироваться)
    vector<array<vector<int>,2>> r = {{{1, 2, 3}, {4, 5, 6}}};
    

     

    И вот я не очень понимаю, зачем нужно писать {{{{1, 2, 3}, {4, 5, 6}}}} вместо {{{1, 2, 3}, {4, 5, 6}}} , ведь в этой записи видно 3 измерения и всё выглядит корректно.

  18. Всем привет. Возможно я просто не выспался, поэтому задаю такие глупые вопросы :)

    Потихоньку открываю для себя мир C++ и проходя курсы пишу небольшие тесты.

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

     

    Теперь подробнее. Я создаю вектор массивов векторов и компилятор падает, хотя по мне всё выглядит правильно:

    vector<array<vector<int>, 2>> cases = {
        {{1, 5, 3, 4, 2}, {2, 4, 3, 5, 1}},
        {{1, 2, 3}, {3, 2, 1}},
        {{1, 2}, {2, 1}},
        {{1}, {1}},
        {{}, {}},
    };
    

     

    Чтобы компилятор не падал, пришлось добавить по скобке для каждой строки, но я в упор не понимаю зачем. Вот это компилируется:

    vector<array<vector<int>, 2>> cases = {
        {{{1, 5, 3, 4, 2}, {2, 4, 3, 5, 1}}},
        {{{1, 2, 3}, {3, 2, 1}}},
        {{{1, 2}, {2, 1}}},
        {{{1}, {1}}},
        {{{}, {}}},
    };
    

    Но тогда тут получается 4 измерения, как по мне, а не 3. Потому что если разложить по измерениям я прихожу к своей реализации:

    // Одномерный вектор
    vector<int> cases = {1, 2, 3, 4, 5};
    
    // Превращаем его в вектор массивов
    vector<array<int>> cases = {{1, 2}, {3, 4}};
    
    // Превращаем его в вектор массивов векторов (перестает компилироваться!)
    vector<array<vector<int>, 2>> cases = {{{1, 2, 3}, {4, 5, 6}}, {{7, 8, 9}, {10, 11, 12}}};
    

    И вроде всё верно, три измерения, но падает с ошибкой 

     error: could not convert 
       '{{{1, 2, 3}, {4, 5, 6}}, {{7, 8, 9}, {10, 11, 12}}}' 
     from '<brace-enclosed initializer list>' to 'std::vector<std::array<std::vector<int>, 2ul> >'
     vector<array<vector<int>, 2>> x = {{{1, 2, 3}, {4, 5, 6}}, {{7, 8, 9}, {10, 11, 12}}};

     

    Причем по ошибке не могу нагуглить именно свой случай. Кто-нибудь сталкивался с подобным? Есть какое-то логическое объяснение, почему нужно оборачивать дополнительной скобкой?

     

    Если непонятно зачем это всё, я гоняю вот такие тестики, чисто для себя:

    Спойлер
    
    for (auto c : cases) {
        auto v = c[0];
        auto e = c[1];
    
        vector<int> r = TestiruemayaFunction(v);
        if (r != e) {
            cout << "Failed on ";
            for (auto i : v) {
                cout << i << ' ';
            }
            cout << ": ";
            for (auto i : r) {
                cout << i << ' ';
            }
            cout << " != ";
            for (auto i : e) {
                cout << i << ' ';
            }
            return;
        }
    }

     

  19. 6 hours ago, GameHacker said:

    Я не смотрел ващи ну эти скрипты, сам взломал

    вот таблица

    http://rgho.st/8grPswkRr

     

    Не очень похоже, цифра меняется (причем даже близко не на 10000) и сразу после этого вылетает. 

    Плюс весь смысл в том, чтобы досоздать нужное количество объектов не сломав TrainMe, мне кажется твоя таблица этого не делает.

     

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.