1. Соблюдайте Правила форума и проявляйте уважение к другим участникам беседы.

Неверный вывод $wpg$

Тема в разделе 'Основные вопросы', создана пользователем Execute, 29 июл 2017.

  1. Execute Знакомый модера

    Сообщения:
    58
    Спасибы:
    1
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    8.10.12
    Мне не понятно, почему не работает счетчик побед/поражений в процентах. lang_0995 - вот эту строчку бот читает и выводит при присоединении игрока к игре. На аккаунте 9 игр, 8 побед и 1 поражение, соотношение в % должно быть 90%. А бот выдает мне 1%. Аккаунт у которого 2 игры и обе победы, показывает вообще 0%...
    В bnet.cpp и game.cpp DotAPlayerSummary->GetWinsPerGame( )) - между скобками ничего не стоит.
    Вот выводимая строка :
    lang_0995 = $USER$, $TOTALGAMES$ игр (Win: $WPG$%). Ранг: [$TITLE$]

    Если это баг, то как можно реализовать следующий код php, тут на с++?
    PHP:
    $winlosses ROUND($wins/($wins+$losses), 2)*100;
  2. LOOL Гуру

    Сообщения:
    114
    Спасибы:
    35
    Дата начала использования бота:
    1901
    Код:
    int wr = (int) (wins*100/(wins+losses))
    :nbd:
  3. Execute Знакомый модера

    Сообщения:
    58
    Спасибы:
    1
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    8.10.12
    Отлично, теперь как добиться, что бы сначала бот высчитал это вражение, а после, прочитал из lang_0995 ?? Гемор пздц.

    Самое интересно, что ДОС правильно считает %, бот тупит..
  4. LOOL Гуру

    Сообщения:
    114
    Спасибы:
    35
    Дата начала использования бота:
    1901
    ты чо рофлишь шоле :avtoradolf:
    в language.cpp преобразуешь wr в строку и заменяешь внутри lang_0995 :nbd:
    Execute нравится это.
  5. Execute Знакомый модера

    Сообщения:
    58
    Спасибы:
    1
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    8.10.12
    В общем не могу сообразить, что ты конкретно имел ввиду.
    Код:
    string title2 = "??";
     if (int wr = (int) (wins*100/(wins+losses)));
     title2 = "";
    ммм :confused:
  6. Suicider Старожила

    Сообщения:
    673
    Спасибы:
    117
    Сборка бота GHost:
    Ghost++ 17.1 by w3gh
    Дата начала использования бота:
    12.07.2011
    Разве присваивание винрейта не в векторе DotAPlayerSummary в bnet/game.cpp? DotAPlayerSummary->GetWinsPerGame( )
  7. Execute Знакомый модера

    Сообщения:
    58
    Спасибы:
    1
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    8.10.12
    Ну так что, как в % вывести? Если можно, по подробнее объясните :jump:
  8. Execute Знакомый модера

    Сообщения:
    58
    Спасибы:
    1
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    8.10.12
    Еще вопрос по теме, как очки перевести в целое число ? $SCORE$ - вместо 7133, выводит : 7133.92 Пробовал играть со значениями:
    ( )) - дефолт, ( ),0) - ничего не меняет. ( ) ) - аналогично.
  9. Execute Знакомый модера

    Сообщения:
    58
    Спасибы:
    1
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    8.10.12
    Запустил дефолтного бота со своим конфигом, и на удивление WPG работает верно. Что я мог затронуть, испортив старый? Сравнивал со своим настроенным - абсолютно идентичные уставки... Что за пздц такой творится. Подскажите кто, где найти фейл?
  10. Execute Знакомый модера

    Сообщения:
    58
    Спасибы:
    1
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    8.10.12
    Все, разобрался и с тем, и с этим. Тем, кто столкнется с подобным:
    1. Очки, они же ПТС - выводятся в лобби не целым числом, а с запятыми, например : 5432.78 Лично меня - это немного раздражает.
    Лезем в код, game.cpp - строка ~611 и находим :
    Код:
    UTIL_ToString2( DotAPlayerSummary->GetScore()),RankS);
    Заменяем на
    Код:
    UTIL_ToString( DotAPlayerSummary->GetScore(),0),RankS);
    Идем в bnet.cpp ~575
    Код:
    UTIL_ToString2( DotAPlayerSummary->GetScore()), RankS), name, Whisper );
    Меняем на
    Код:
    UTIL_ToString( DotAPlayerSummary->GetScore(),0), RankS), name, Whisper );
    Если сделали все верно, птс(очки) должны будут округляться до целого числа, в моем примере : 5433.

    2. WPG% - Вин рейт в процентах. При переносе выражения из HasPlayedDotAGamesWithThisBot2 - в HasPlayedDotAGamesWithThisBot, иначе говоря из lang_0074 в lang_0995 и наоборот, происходит сбой некоторых переменных. Как именно, и что оно затрагивает - без понятия. В моем случае, я добивался, что бы команда !sd - выводила по мимо стандартных еще и тоталвинс, тоталлузес и тд. , т.е то, что есть в !ss. Получилось? - Получилось. Только криво, на сколько - описал в начале поста.

    Формула расчета находится тут : ghostdbmysql.cpp ~1840