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

Помогите с птсом

Тема в разделе 'Кодинг/Собственные решения', создана пользователем iProExtreme, 25 апр 2015.

  1. iProExtreme Ньюфаг

    Сообщения:
    5
    Спасибы:
    0
    Сборка бота GHost:
    Ghost One
    Дата начала использования бота:
    1,1,2013
    Бот ghostone хочу сделать так игрок-ник;птс-200;звание начинающий. Буду благодарен если опишете все подробно мучаюсь уже 2-день искал не нашел нормального ответа.:facepalm:
  2. Begzod Гуру

    Сообщения:
    141
    Спасибы:
    4
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    10.06.2010
    Для изменение бота надо компилировать его с помощью с++ и его компоненты как бусты, либусты...

    Вы не написали как считывать звание по играм или по птс, потомучто отпишу 2 способа
    Откриваем проект ghost.sql ищем lang_0995 в language.cpp

    После этого кода
    Код:
        string Out = m_CFG->GetString( "lang_0995", "lang_0995" );
        if (score=="-1000000" || score=="0" || score=="0")
            Out = m_CFG->GetString( "lang_1000", "lang_1000" );
     
        
    Добавлаем вот этот код
    Код:
    double PTS = UTIL_ToDouble(score);
    double t = UTIL_ToDouble(totalgames);
     
    string title1;
    string title2;
     
    if (t>=1 && t<9) // отпишусь если вы не поняли t>=1 && t<9 это значить с 1 до 9 сыигранных игр у игрока будет звания Начинающий после десятые сыигранных игр тогда будет Проверенный
    title1= "Начинающий";
    if (t>=10 && t<19)
    title1= "Проверенный";
     
    if (PTS>=0 && PTS<999)  // в птсе тоже так-же PTS>=0 && PTS<999 это значить с 0 до 999 PTS у игрока будет звания D- после этой PTS когда у игрока будет 1000 PTS тогда звания поминается на D
    title2 = "D-";
    if (PTS<=0)
    title2 = "Noob";
    if (PTS>=1000 && PTS<1999)
    title2 = "D";
    if (PTS>=2000 && PTS<2999)
    title2 = "D+";
    if (PTS>=3000 && PTS<3999)
    title2 = "C-";
    Title 1 по количество сыгранных игр даётся звание, title 2 по количество птс даётся звание игроку, суть наверной поняли очень проста, вы можете дальше для своего усмотрению сделать звание.

    Забыл отписать другие настройки чтобы считавал вообще очки если вам надо по птс считавал
    в ghost.cfg
    Код:
    bot_scoreformula =  
    добавлаем это
    Код:
    ((wins-losses)*100+(kills-deaths)*8+(assists)*0.8+(creepkills+creepdenies+neutralkills)*0.1+(towerkills)*0.5)+1000
    По этой формуле у игрока будет набиратся птс, формулу вы можете изменить по своему и звания то же по скольку давалось птс звания
    Дальше создаёте конфиг для карты это очень проста не буду отписавать наверной вы уже знаете как :)
    после того как создадите конфиг то ищите
    Код:
    map_type =
    map_matchmakingcategory = 
    по умолчанию тут пуста, делаем так чтобы было таком виде:
    Код:
    map_type = dota
    map_matchmakingcategory = dota_elo
    Ладно удачи IProExtreme, вы кажется с Bnet.uz, возможно встретимся =)
    tochkaG111 и iProExtreme нравится это.
  3. iProExtreme Ньюфаг

    Сообщения:
    5
    Спасибы:
    0
    Сборка бота GHost:
    Ghost One
    Дата начала использования бота:
    1,1,2013
    Спасибо большое очень замучился искать думал и ответа не будет с бнета конечно встретимся :=)
  4. iProExtreme Ньюфаг

    Сообщения:
    5
    Спасибы:
    0
    Сборка бота GHost:
    Ghost One
    Дата начала использования бота:
    1,1,2013
    вот что получилось)
    [IMG]
    вот что ввел
    [IMG]
    [IMG]
    Нужно ли менять что либо в самом файле language ?
  5. iProExtreme Ньюфаг

    Сообщения:
    5
    Спасибы:
    0
    Сборка бота GHost:
    Ghost One
    Дата начала использования бота:
    1,1,2013
    разобрался еще раз спасибо
  6. ıIıIİıİIıımusic Можно доверять

    Сообщения:
    134
    Спасибы:
    2
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.2013
    Skype:
    Мой статус
    У тебя в статистике очки выводятся с точками(1231.50), убери точки и измени language.cfg.

    Что бы убрать точки:
    В game.cpp найди
    Код:
    UTIL_ToString( DotAPlayerSummary->GetRaxKillsPerGame( )), UTIL_ToString( DotAPlayerSummary->GetCourierKillsPerGame( )),UTIL_ToString2( DotAPlayerSummary->GetScore()),RankS);
    Замени этим
    Код:
    UTIL_ToString( DotAPlayerSummary->GetRaxKillsPerGame( )), UTIL_ToString( DotAPlayerSummary->GetCourierKillsPerGame( )),UTIL_ToString( DotAPlayerSummary->GetScore(), 0),RankS);
    В bnet.cpp найди
    Код:
    UTIL_ToString( DotAPlayerSummary->GetRaxKillsPerGame( )), UTIL_ToString( DotAPlayerSummary->GetCourierKillsPerGame( )), UTIL_ToString2( DotAPlayerSummary->GetScore()),RankS), name, Whisper );
    Замени этим
    Код:
    UTIL_ToString( DotAPlayerSummary->GetRaxKillsPerGame( )), UTIL_ToString( DotAPlayerSummary->GetCourierKillsPerGame( )), UTIL_ToString( DotAPlayerSummary->GetScore(), 0),RankS), name, Whisper );
    Насчёт language.cfg, у меня лично стоит вот это:
    lang_0995 = $USER$ = игр: $TOTALGAMES$ • победил: $WPG$% • проиграл: $LPG$% • топ: $RANK$ • очки: $SCORE$ • ранг: $TITLE2$ • ты: $TITLE1$(title поставил по твоей формуле в language.cpp)
    lang_1000 = $USER$ = игр: $TOTALGAMES$ • победил: $WPG$% • проиграл: $LPG$% • топ: $RANK$ • очки: $SCORE$ • ранг: $TITLE2$ • ты: $TITLE1$(title поставил по твоей формуле в language.cpp)7

    После всего этого твоя статистика будет намного понятней и красивей;)
  7. iProExtreme Ньюфаг

    Сообщения:
    5
    Спасибы:
    0
    Сборка бота GHost:
    Ghost One
    Дата начала использования бота:
    1,1,2013
    Учту
  8. Execute Знакомый модера

    Сообщения:
    58
    Спасибы:
    1
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    8.10.12
    Хмм, а если я хочу сделать, что бы ранги выдавались не по сыгранным играм, а исходя от формулы? Тоесть, к примеру, игрок k/d/a
    340/250/301 - ранг "сапорт или помощник". Есть подобные идеии?
  9. r000t Парнишка с небывалым умом

    Сообщения:
    106
    Спасибы:
    12
    есть, писать формулу и выдавать ранги
  10. Execute Знакомый модера

    Сообщения:
    58
    Спасибы:
    1
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    8.10.12
    Это и так ясно, хех =) Хотелось бы увидеть подсказку или хоть какую-то помощь. Может эта фишка еще где-то разбиралась?
  11. Suicider Старожила

    Сообщения:
    673
    Спасибы:
    116
    Сборка бота GHost:
    Ghost++ 17.1 by w3gh
    Дата начала использования бота:
    12.07.2011
    Skype:
    Мой статус
    Есть же переменные эти в language.cpp/h

    Код:
    if (k>=d && k>=a)
    title1 = "Attacker";
    if (d>=a && d>=k)
    title1 = "Suicider";
    if (a>=k && a>=d)
    title1 = "Helper";
     
    if ((a>=k && a<=d) ||(a>=d && a<=k))
    title2 = "Helper";
    if ((k>=d && k<=a) ||(k>=a && k<=d)) 
    title2 = "Attacker";
    if ((d>=k && d<=a) ||(d>=a && d<=k))
    title2 = "Suicider";
    
  12. Execute Знакомый модера

    Сообщения:
    58
    Спасибы:
    1
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    8.10.12
    Да с этим разобрался уже, ну мне так кажется разобрался :D. Условия довольно легкие. А на деле осталось протестировать, но увы не могу. Основной поток людей на гарене.. А вот прикрутить ее к вану пока проблемно.
  13. Execute Знакомый модера

    Сообщения:
    58
    Спасибы:
    1
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    8.10.12
    Вообще, если не найду еще живой пвпгн сервер, то скорее всего их будет 3: бнет, рубатл и гарена.
  14. Max5 Старожила

    Сообщения:
    356
    Спасибы:
    66
    Сборка бота GHost:
    GhostOne 1.7.266
    Дата начала использования бота:
    14.05.2013
    гарена тоже вымирающий вид судя по всему