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

Help Помогите реализовать.

Тема в разделе 'Кодинг/Собственные решения', создана пользователем Doterok, 26 окт 2012.

  1. Doterok Старожила

    Сообщения:
    923
    Спасибы:
    171
    Сборка бота GHost:
    Ghost ++ 17.2
    Дата начала использования бота:
    2011
    1.Завершение игры при первом ливе до x минуты (надо что бы ливеру сразу бан и игра закрылась)
    2.Что бы игра закрылась когда разница в игроках в 3 человек(в конфиге мутил, но что то не закрывает)
    3.
    Код:
    За победу вы получите 30 птс
    В случае проигрыша вы потеряете 30 птс
    После балансировки у меня вылазят вот эти два ланга, но админы получают на 20% птс`a
    (а щас ещё с випами мир поможет им тоже другое количество птс`a будет приходить)
    Вот надо что бы не в общий чат писала эти 2 ланга, а каждому в лс, то есть админам писало
    Код:
    За победу вы получите 36 птс
    В случае проигрыша вы потеряете 36 птс 
    Випам к примеру
    Код:
    За победу вы получите 33 птс
    В случае проигрыша вы потеряете 33 птс 
    4.Видел на форуме 2 варианта лобби бана, но который рост давал не рабочий был:(
    а логмена ума не хватает правильно впихнуть. Может кто нибудь поможет сделать логмена вариант или предложит свой
    5.Когда игра кончается и выводится gameover.txt нужно что бы адресату писало
    Код:
    Вы получили 30 птс
    или наоборот вы потеряли 30 птс.
    Ну и так админам своё количество птс`a випам своё(думаю поняли)
    6.Есть вот такая плюшка
    Код:
    SendChat(player, "Онлайн игроков: " + UTIL_ToString(bot_online) );
    При входе в игру пишется количество игроков онлайн так вот он считает fakeplayer`a и вошедшего игрока, то есть надо сделать в отображение -2 игрока

    7.Можно ли исправить команды !aa и !sladd допустим
    в конфиге обозначено
    Код:
    bnet5_server = server.eurobattle.net
    bnet5_serveralias = eu
    добавлять випов и админов не просто !аа и !sladd
    А !aa vas9 eu и базу заносилось
    Код:
    server.eurobattle.net
    ну или !aa vac9 server.eurobattle.net
    Как так)Заранние спасибо :)
  2. Suicider Старожила

    Сообщения:
    673
    Спасибы:
    117
    Сборка бота GHost:
    Ghost++ 17.1 by w3gh
    Дата начала использования бота:
    12.07.2011
    Тебе как? Готовый код или пнуть в нужном направлении?
  3. Doterok Старожила

    Сообщения:
    923
    Спасибы:
    171
    Сборка бота GHost:
    Ghost ++ 17.2
    Дата начала использования бота:
    2011
    1 вариант не плохо было бы :D
    но можно и пнуть куды надо попробуем :)
  4. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    Где-то я эти плюшки уже видел -_-
  5. Suicider Старожила

    Сообщения:
    673
    Спасибы:
    117
    Сборка бота GHost:
    Ghost++ 17.1 by w3gh
    Дата начала использования бота:
    12.07.2011
    1. Найди балансировку, туда вставь условия (при ливе 1 игрока) и выполнение завершения игры
    2. На GhostOne есть уже это, оттуда тяни себе
    3. Что тебе мешает сделать условия типа
    Код:
     if (RootAdminCheck || AdminCheck)
    {
    SendChat (player, " За победу вы получите 36 птс ")
    SendChat (player, " В случае проигрыша вы потеряете 36 птс ")
    }
     
    else
     
    {
    if (IsSafe(LastMatch->GetName()) )
    {
    SendChat (player, " За победу вы получите 33 птс ")
    SendChat (player, " В случае проигрыша вы потеряете 33 птс ")
    }
     
    else
     
    {
    SendChat (player, " За победу вы получите 30 птс ")
    SendChat (player, " В случае проигрыша вы потеряете 30 птс ")
    }
    }
    
    3.1. Ну если лангом, то думаю понятно как... чтот тип (tr(... (BRT не юзаю...)

    P.S. Сейчас в код лезть лень, мб завтра что(идею) подкину...
    Doterok нравится это.
  6. Doterok Старожила

    Сообщения:
    923
    Спасибы:
    171
    Сборка бота GHost:
    Ghost ++ 17.2
    Дата начала использования бота:
    2011
    Словил большую кучу ошибок, это сразу показалось очень легким, пока попробую вариант с векторами)но думаю кто нибудь что нибудь подскажет
  7. Suicider Старожила

    Сообщения:
    673
    Спасибы:
    117
    Сборка бота GHost:
    Ghost++ 17.1 by w3gh
    Дата начала использования бота:
    12.07.2011
    покажи как у тебя выводит, мб придётся откапывать где-то в недрах ЖД BRT бота
    Мб у тебя выводит через gameloaded.txt ( с этим хз как вывести для каждого отдельно).

    И да, это кажется нужно если игрок использует команду
    Код:
    if (IsSafe(LastMatch->GetName()) )
  8. Suicider Старожила

    Сообщения:
    673
    Спасибы:
    117
    Сборка бота GHost:
    Ghost++ 17.1 by w3gh
    Дата начала использования бота:
    12.07.2011
    4. это ваще лишнее... (моё мнение)
    5. найти строку в game_base.cpp "gameover.txt" меняй её как хочешь + это геморойно, так как нужно ещё вводить проверку на: победил игрок или проиграл...
    6. Ты её сам добавлял? Если да, покажи как
    7. Делай по типу блокировки сервера (давал МИР для Mr_Lisa)
    Doterok нравится это.
  9. MuP .

    Сообщения:
    653
    Спасибы:
    202
    Сборка бота GHost:
    Ghost++ rev 579
    Дата начала использования бота:
    00.00.0000
    #6 - добавь проверку на pid == 255 это fakeplayer, если он есть -2 делай тупо, если нету -1 от того что счас имеешь
    Doterok нравится это.
  10. Doterok Старожила

    Сообщения:
    923
    Спасибы:
    171
    Сборка бота GHost:
    Ghost ++ 17.2
    Дата начала использования бота:
    2011
    Код:
    double igr;
    for( vector<CBNET *> :: iterator k = m_GHost->m_BNETs.begin( ); k != m_GHost->m_BNETs.end( ); k++ )
    {
    igr = (*k)->m_TodayGamesCount;
    }
     
    uint32_t NowOnline = 0;
    for (uint32_t i=0; i<m_GHost->m_Games.size( ); i++ )
    {
    NowOnline += m_GHost->m_Games[i]->m_Team1;
    NowOnline += m_GHost->m_Games[i]->m_Team2;
    }
     
    string ServName = "Unknown realm";
    string Country = m_GHost->m_DBLocal->FromCheck( UTIL_ByteArrayToUInt32( player->GetExternalIP( ), true ) );
    for( vector<CBNET *> :: iterator i = m_GHost->m_BNETs.begin( ); i != m_GHost->m_BNETs.end( ); i++ )
    {
    if( (*i)->GetServer() == player->GetJoinedRealm())
    ServName = (*i)->GetServerAlias();
    }
     
     
     
    double bot_online = NowOnline + GetSlotsOccupied();
    SendChat(player, "Активных игр: " + UTIL_ToString(m_GHost->m_Games.size( )) );
    SendChat(player, "Онлайн игроков: " + UTIL_ToString(bot_online) );
    
    Это по 6 пункту, мир, подробней можно:?
  11. Suicider Старожила

    Сообщения:
    673
    Спасибы:
    117
    Сборка бота GHost:
    Ghost++ 17.1 by w3gh
    Дата начала использования бота:
    12.07.2011
    тебе нуно количество или перечисление имён игроков?
  12. Doterok Старожила

    Сообщения:
    923
    Спасибы:
    171
    Сборка бота GHost:
    Ghost ++ 17.2
    Дата начала использования бота:
    2011
    количество, допустим на хосте 9 человек (+ факе) игрок заходит
    ему выдаст онлайн 11 человек
  13. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    Та зачем это? Просто если на его хосте стоит факе на 12 (или 11) слоте как бот, чтобы от него писало, то пусть сразу -2 отнимает (я так сделал), а если он этим непользуется, то -1.
  14. Doterok Старожила

    Сообщения:
    923
    Спасибы:
    171
    Сборка бота GHost:
    Ghost ++ 17.2
    Дата начала использования бота:
    2011
    эм, подробней можно?
  15. MuP .

    Сообщения:
    653
    Спасибы:
    202
    Сборка бота GHost:
    Ghost++ rev 579
    Дата начала использования бота:
    00.00.0000
    Если FakePlayer присутствует в игре, то m_FakePlayerPID будет равен 255
    т.е. Когда перебираешь все игры, то введи проверку на m_FakePlayerPID == 255 для каждой игры
    Если true - делай минус адын, если false - ничего не делай.
    Потом к финальному числу сделай еще -1, чтобы не учитывать игрока, которому это безобразие показывают.
  16. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    У тебя там гдето есть
    + UTIL_ToString( NowOnline ) +
    нужно сделать

    + UTIL_ToString( NowOnline - 2 ) +
    Doterok нравится это.
  17. Doterok Старожила

    Сообщения:
    923
    Спасибы:
    171
    Сборка бота GHost:
    Ghost ++ 17.2
    Дата начала использования бота:
    2011
    Код:
    if ( m_FakePlayerPID == 255 ){
    CreateFakePlayer( );
    SwapSlots( (unsigned char)( 2 - 1 ), (unsigned char)( 12 - 1 ) );}
    fakeplayer вот там надо кусок что я давал править
  18. MuP .

    Сообщения:
    653
    Спасибы:
    202
    Сборка бота GHost:
    Ghost++ rev 579
    Дата начала использования бота:
    00.00.0000
    FakePlayer может быть, а может и не быть. Т.е. сначала нужно установить есть он в игре, или его нету. Сразу рубить -2 не убедившись в наличии Fakeplayer - не камильфо.
    Давайте делать нормальный код, который будет работать всегда и везде нормально.
    Doterok нравится это.
  19. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    Если он юзает фейка на 12 слоте, то править он этого уже небудет, а даже если и будет, то поправить потом с -2 на -1 несложно, несложнее закоментирования самого добавления фейка...

    Хотя вопросы глупые, разве сложно додуматся самому -1, -2 там добавить? Я это сразу понял как только тестил фейка, а потом уже прочел инфу и вник (давно было)
  20. MuP .

    Сообщения:
    653
    Спасибы:
    202
    Сборка бота GHost:
    Ghost++ rev 579
    Дата начала использования бота:
    00.00.0000
    А сделаеть 1 раз код, который определяет что делать, -1 или -2, не лучше чем потом лазить и править?
    Не понимаю этого подхода:stenka: