Jump to content
Korean Random

hash

User
  • Posts

    72
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by hash

  1. Вообще-то поиск файла, за исключением когда указан обсолютный путь до файла, идёт следующим образом:

    1. В активном коталоге.

    2. В каталогах указнных в переменной PATH.

    Так что если надо чтоб ping.exe находился именно "нашь" его следует положить рядом с WorldOfTanks.exe.

  2. /opt/wine/bin/wine --version
    wine-1.7.0-223-g8f09d34
    

    Собираю каждый день из git'а.

    hash@hash ~/.wine/drive_c $ /opt/wine/bin/wine cmd
    Версия Wine CMD 5.1.2600 (1.7.0)
    
    C:\>1.bat
    
    C:\>C:\ping.exe 
    «C:\ping.exe» не является ни внутренней или внешней командой, ни batch-скриптом.
    
    C:\>1.cmd
    
    C:\>C:\ping.exe 
    «C:\ping.exe» не является ни внутренней или внешней командой, ни batch-скриптом.
    

    Специально в чистом префиксе попробовал.

    /usr/bin/wine --version
    wine-1.7.0
    

    И с системной wine то-же самое.

  3. Ну VMWare очень не дурно постаралась с экспортом железа в виртуалку, я долго в Star Wars: The Old Republic через неё сидел.

    /opt/wine/bin/wine cmd /c "C:\1.bat"
    C:\>z:\bin\ping -n 1 -W 1000 -q www.gentoo.org 
    «z:\bin\ping -n 1 -W 1000 -q www.gentoo.org» не является ни внутренней или внешней командой, ни batch-скриптом.
    

    1.bat:

    z:\bin\ping -n 1 -W 1000 -q www.gentoo.org
    

    Я помню я как-то запускал Линуксовые проги из под wine, но как уже забыл, может напомнишь как надо?

  4. Edited by hash

    Я "живу" на Линуксе, так что у меня "проблема" винду запустить, ну конечно не проблема, 250 виндозных юзеров не дают забыть этот "офф-топик", но на моих компах винда только в виртуалке.

    Только в питоне я не бум-бум, из языков программирования ASM(лет 10ть назад) / Pascal(И турбо и дельфи) / ну и всяческие скриптинги т.е. DOS'овский comman.com, NT'ишный cmd.exe, VBS скриптики для домена и конечно sh/bash немного AWK/sed.

    Но эти "зубодробительные конструкции" на python'e/perl'e для разбора строк, у меня мозги в папирус сворачиваются от них! :)

     

    Если что надо быстренько проверить или от дебажить на Линуксе, всё есть, всё под парами, чего нет соберу/запатчу.


    А нужно именно определить ОС? Поможет ли как-нибудь знание того, что мы просто из-под wine сейчас? Что-нибудь вида:

    import _winreg
    
    try:
      explorer = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,"Software\\Wine")
    except WindowsError, e:
      print "error"

    т.к.

    import sys
    
    print sys.platform

    полагаю, вернет из под wine win32

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


    Мнда, вкратце, Линуксойдам можно забыть про ping'er.

    Более развёрнуто:

    Можно почитать "ломание копий" с разрабами wine в 2009м году, всё на аглицком.

    Вкратце, аргумент разрабов wine:

    Нефиг детектить и подстраиваться, лучше напишите тестовую прогу для нужной не работающей или не корректно работающей функции и помогите её пофиксить.

     

    Детектить ветку реестра не вариант, её создаёт ещё и wined3d, компанент который ставиться на винду для сборки виндозной проги для работы её в Линуксе в "почти" нативном виде.

    Конечно шанс на пересечение Танков и "wined3d на одном компе минимален, но дядька Мэрфи всегда с нами! :)

     

    Но сошлись что такая функция таки нужна хотя-бы для того чтоб разрабы прог могли проанализировать как много народу гоняют их прогу под wine.

     

    Для обнаружения wine "всего лишь" нужно проверить наличие функции wine_get_version в ntdll.

     

    Только это нам уже не поможет.

    Так как родной, системный, Линуксовый ping из под wine больше не запустить.

    В общем сушите вёсла господа.

     

    PS:Есть один вариантик который надо тщательно проверить, но надежда минимальна...

  5. Edited by hash

    А может проще будет обойтись без определения через python а воспользоваться стандартной системной командой?

    "uname" есть во всех Линуксах, если её выполнить без параметров она вернёт "тип" Линукса.

    Не знаю что она вернёт на MacOS, на любом Линуксе она вернёт "Linux".

    Ну а в винде этой команды просто нету.


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

    Но есть другой вариант, везде в Линуксе, будет переменная "DISPLAY", нормально она будет равна ":0", но важно что она должна быть, и должна не быть пустой так что можно проверку сделать на это.


    PS: Кстати, у Линуксового ping'a есть аналог параметра "-w", это то-же "-W" но заглавная.

  6. В wine wiki на самом деле написано что ничего работать не будет, так как давай права ping.exe или нет, а процесс будет не ping.exe а wine а потом wineserver, а им всем этого надовать...

    В общем не вариант, да ещё и в wine и wineserver стоит проверка на всякие попытки не коректных привелигерованных действий и отбой, чтоб всякие бяки из под wine не могли ничего плохого системе сделать.

    Осталось только чтобы кто-то с линухом довел это до ума.

    А в этом "доведении" нужно знать python?

  7. Пасиб за линк, не знал что Wine'шники одумлялись этим, но ситуации это не меняет.

    Виндозный ping.exe не работает а Linux'овый не прокатыввает так-как вывод не совместим.

     

    PS: Хотя, в последнем транке ping'ера есть какая-то система определения операционки и передача ping'у других параметров с иной обработкой вывода, так что надежда есть. :)

  8. Виндозный ping.exe скормить не получиться никак, в Linux'е создание сетевых пакетов, обычному-ушастому юзеру запрещено, как следствие виндозный ping.exe работать будет но не сможет отослать ни единого пакета.

    Попытался сделать софт-лин с /bin/ping в <путь до WorldOfTanks.exe>/ping.exe, но ожидаемо это не спасло так-как формат вывода виндозного ping.exe и Linux'ового ping разный.

    Ща попробую сделать врапер чтоб вывод Linux'ового превращать в виндозный...

  9. Edited by hash

    Ну дык всеж танкисты! Привыкли, ни какого засвета! Вот и партизанят! :)


    Кстати о засвете, а можно сделать чтоб на миникарте отображались значки типов техники пропавшей из засвета?

    Но не с использованием специального шрифта а с использованием png'эшных картинок?

     

    Я попробовал заменить опредиления в vehicleclassmacro вот так для ЛТэшки:

    "light": "<img src='xvmres://ЛТ_Alive.png' width='10' height='12'>",
    

    Но с учётом моей полного не понимания хэтиЭмэля, или что тут, у меня не очень-то получилось, точнее получилось, но слишком много, иконки пропавших ЛТэшок размножились до 6ти штук, вроде.

    Тогда я vehicle-class в units->format->lost вынул из mm_dot и перенёс в mm_l:

    "<span class='mm_dot'></span><span class='mm_l'>{{vehicle-class}}<i>{{vehicle}}</i></span>"
    

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

    • Upvote 1
  10. @super0and,

    Дак а иконки качал? Хотя если ты про маркеры, то они во всех архивах есть и должно выглядеть как на скринах.

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

    Ничего не понимаю!

    Качаю из первого поста темы вот этот файл:

    www.koreanrandom.com/forum/index.php?app=core&module=attach&section=attach&attach_id=19614

    Получаю вот это:

    post-8781-0-49362900-1371665493.png

    Лезу читать markersAlive.xc и вижу следующее:

    "contourIcon": {                          // иконки танка
    "visible": false,                 //   false - не отображать
    • Upvote 1
  11. Я для себя скриптик написал:

    #!/bin/bash
    #
    PROGPATH="$(LC_ALL=C cd $(dirname $0)/ ; pwd)"
    function clean_up
    {
        fusermount -u -q ${PROGPATH}/res_mods/.stat/;
        unset PROGPATH;
        unset COUNT;
        exit
    }
    if [ ! -f /tmp/.X0-lock ]; then clean_up; fi
    trap clean_up 0 1 2 3 6 15 19
    fusermount -u -q ${PROGPATH}/res_mods/.stat/
    ${PROGPATH}/xvmfs ${PROGPATH}/res_mods/.stat/
    sleep 20s
    COUNT=$(ps -C WorldOfTanks.exe -o cmd= | uniq -c | grep -v defunct | awk '{ print $1 }')
    while [[ "${COUNT}" == "1" ]]; do {
        COUNT=$(ps -C WorldOfTanks.exe -o cmd= | uniq -c | grep -v defunct | awk '{ print $1 }')
        if [ "${COUNT}" != "1" ]; then {
            clean_up
        } else {
        sleep 2s
        } fi
    } done

    Кидаете его в каталог с игрой и стартуете вместе, уж как вы "склеете" эти два момента ваше дело.

    Скриптик сразу после старта пытается отмотировоть .stat? на всякий случай, и примотирует .stat с использованием xvmfs, и уходит в сон на 20 секунд, после чего начинает искать процесс WorldOfTanks.exe каждые 2 секунды, и если не находит отмонтирует .stat и выходит.

  12. Я видимо не совсем до конца объяснил, я запустил charmap.exe с WinXP и там wingding прекрасно отображается, но как только я пытаюсь отобразить тот-же символ в игре, вылет.

    И wingding.ttf у меня давно стоит, как по системе в линухе так и во всех префиксах WINE.

  13. Edited by hash

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

    "Алергия Wine на символ 'SKULL AND CROSSBONES' (U+2620)!"

    Но по порядку.

    Во первых: Большое спасибо за не сильно подробное описание причины проблемы с шрифтом и вылетом из-за него, ну хоть направили в нужном направлении!

    Во вторых: А вот нетути в Times New Roman ни черепушки ни крестика, нифига из этого нету, точнее Wine почему-то считает что нету, вертикальный прямоугольничек.

    В третьих: И главное! Из  какого-бы-то я ни брал шрифта, если я пытаюсь вывести черепушку, клиент валится!

    Я нашёл бомбочку ("<font face='StarSymbol'>\ue428</font>"), и крестик("<font face='DejaVu Sans'>\u2626</font>") нашёл, но черепушка("<font face='DejaVu Sans'>\u2620</font>") это табу! :)

    Я не в курсе, может это с моей сборкой WineGit (Gentoo release 13, x86/default/desktop) или с конкретным шрифтом, ставил winetriks(из svn) corefonts, но с черепушкойчто-то невероятное твориться.

×
×
  • Create New...