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

OpenSource Правила.

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

  1. Рачело Ньюфаг

    Сообщения:
    22
    Спасибы:
    4
    Дата начала использования бота:
    11.20.2010
    Открываем файл Game_base.cpp

    Находим
    Над ним добавляем

    Код:
    // Rules
        ifstream in;
        string FileRule =  "rules.txt";
        in.open( FileRule.c_str() );
        if(!in.fail( ))
        {
            string Line;
            while( !in.eof( ) )
            {
                getline( in, Line );
                m_Rules.push_back(Line);
            }
        }
    
    Далее идем в game_base.h

    Находим
    Над ним/под ним добавляем

    Код:
    vector<string> m_Rules;
    Далее идем в game.cpp

    Добавляем после любой команды эту

    Код:
    // Rules edit ?
                    if( Command == "rul" && !Payload.empty() && !m_GameLoaded && !m_CountDownStarted && ( IsOwner(User) || RootAdminCheck )){
                        if( Payload == "clear" ){
                            m_Rules.clear();
                            SendChat(player, "Правила стерты" );
                        } else {
                            stringstream SS;
                            string Action;
                            SS << Payload;
                            SS >> Action;
                            if( !SS.eof()){
                                if( Action == "del" ){
                                    string Value;
                                    uint32_t StringCount = 0, Count = 0;
                                    while( !SS.eof()){
                                        SS >> Value; StringCount = UTIL_ToUInt32(Value); StringCount--;
                                        if( StringCount <= m_Rules.size()){
                                            m_Rules.erase( m_Rules.begin() + StringCount - Count);
                                            Count++;
                                        }
                                    }
                                    SendChat( player, "Удалено " + UTIL_ToString(Count) + " строк" );
                                } else if ( Action == "add" ){
                                    string NewRule;
                                    getline(SS, NewRule);
                                    string :: size_type Start = NewRule.find_first_not_of( " " );
                                    if( Start != string :: npos )
                                        NewRule = NewRule.substr( Start );
                                    if( !NewRule.empty()){
                                        m_Rules.push_back(NewRule);
                                        SendChat(player, "Запись добавлена");
                                    }
                                } else {
                                    SendChat(player,"Доступные опции: del, add, clear");
                                }
                            }
                        }
                    }
    Далее идем в блок неадинских команд и добавляем туда

    Код:
    //
            // !Rules.txt
            //
            if ( Command == "pr" || Command == "пр" )
            {
                for( vector<string>::iterator i = m_Rules.begin(); i != m_Rules.end(); ++i ){
                    if(AdminCheck){
                        SendAllChat(*i);
                    } else{
                        SendChat(player, *i);
                    }
                }
            }
    Далее в папку с ботом создаем файл rules.txt
    И заполняем его своими правилами. При желание рут/овнер сможет удалить одно или несколько правил, либы очистить их вообще, а так же добавить что то свое в правила

    !rul add "ваше правило" - добавить правило
    !rul del № строчки - удалить правило
    !rul clear - очистить все правила
    Max5 нравится это.
  2. Max5 Старожила

    Сообщения:
    360
    Спасибы:
    68
    Сборка бота GHost:
    GhostOne 1.7.266
    Дата начала использования бота:
    14.05.2013
    полезная вещь, я делал себе простой вывод файла, а здесь ещё и добавление и удаление есть. В общем крутяк, хотя мне такого не надо.
  3. ]PaLaCh[ Гуру

    Сообщения:
    139
    Спасибы:
    35
    Сборка бота GHost:
    GHost One PaLACh
    Дата начала использования бота:
    10.11.2012
    норм код но есть боле простые способы
  4. Рачело Ньюфаг

    Сообщения:
    22
    Спасибы:
    4
    Дата начала использования бота:
    11.20.2010
    Давай лев расскажи о них
  5. ___ROB___ Гуру

    Сообщения:
    256
    Спасибы:
    45
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    1.1.1991
    руками писать в чате :palevo:
  6. ]PaLaCh[ Гуру

    Сообщения:
    139
    Спасибы:
    35
    Сборка бота GHost:
    GHost One PaLACh
    Дата начала использования бота:
    10.11.2012

    Код:
    ## 1 способ
     
      //
      // !regulations
      //
     
    if( Command == "regulations" || Command == "правила" )
              {
          SendChat( player, "¦¦¦¦¦¦¦¦¦¦¦ regulations ¦¦¦¦¦¦¦¦¦¦¦");
     
      CONSOLE_Print("[GAME: " + m_GameName + "] loading regulations.txt");
      ifstream inn;
      inn.open( "regulations.txt" );
     
      if( !inn.fail( ) )
      {
     
      uint32_t Count = 0;
      string Line;
     
      while( !inn.eof( ) && Count < 8 )
      {
        getline( inn, Line );
     
        if( Line.empty( ) )
        SendChat( player, " " );
        else
        SendChat( player, Line );
     
        if( inn.eof( ) )
        break;
     
        Count++;
      }
     
      inn.close( );
      } else
      CONSOLE_Print("[GAME: " + m_GameName + "] regulations.txt load failed");
      }
     
    ## 2 способ
     
        //
        // !team
        //
     
          if( Command == "team" || Command == "команды" )
              {
          SendChat( player, "!кик (ник) или !vk (ник) - начать голосования за кик игрока.");
          SendChat( player, "!п или !p - пинг игрока.");
          SendChat( player, "!рмк или !rmk - начать голосования за рмк игры (доступно в игре нужно минимум 3 игрока).");
          SendChat( player, "!стат или !stats - статистика игрока");
          SendChat( player, "!го или !go - начать голосования за старт игры, видите !го или !go для регистрации голоса");
      }
      
  7. Рачело Ньюфаг

    Сообщения:
    22
    Спасибы:
    4
    Дата начала использования бота:
    11.20.2010
    во 1 ты даже близко не понял о чем я, во 2 твои обо способа убогие.
    1 требует изменения кода, а это не есть удобна.
    2 не будет выводить более 8 строчек.
    зы перечитай суть темы
  8. ]PaLaCh[ Гуру

    Сообщения:
    139
    Спасибы:
    35
    Сборка бота GHost:
    GHost One PaLACh
    Дата начала использования бота:
    10.11.2012
    вот ты и не понял суть темы рачело способы почти .... я думаю ты понял и
  9. ___ROB___ Гуру

    Сообщения:
    256
    Спасибы:
    45
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    1.1.1991
    да

    (просто хотел выебнутся авой)
    Guard нравится это.
  10. Guard Старожила

    Сообщения:
    473
    Спасибы:
    47
    Сборка бота GHost:
    Ghost++ RAKAL Edition
    Дата начала использования бота:
    00.00.2009
    Skype:
    Мой статус
    выеб засчитан
  11. Рачело Ньюфаг

    Сообщения:
    22
    Спасибы:
    4
    Дата начала использования бота:
    11.20.2010
    Во 1 у тебя не удобные методы, во 2 мой метод позволяет изменить правила в лобби простым админам, но при этом изменения правил которые внес админ, в других играх не будут.А так что захотел фана на пару игр, нужно убрать какое то правило или добавить, что блать бота компилировать?:lol:
  12. I_aM_Fake Рекомендуемый

    Сообщения:
    62
    Спасибы:
    34
    Сборка бота GHost:
    GHost One 1.7.266
    Дата начала использования бота:
    2008.10.11
    Skype:
    Мой статус
  13. I_aM_Fake Рекомендуемый

    Сообщения:
    62
    Спасибы:
    34
    Сборка бота GHost:
    GHost One 1.7.266
    Дата начала использования бота:
    2008.10.11
    Skype:
    Мой статус
    а ты как хотел я вообще думал писать на канале
  14. ıIıIİıİIıımusic Можно доверять

    Сообщения:
    134
    Спасибы:
    2
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.2013
    Skype:
    Мой статус

    Очень полезная команда(кому как)...
    Если не затруднит сделай и для команды !bags...
    Сам попробовал но толком не смог...
    Заранее спс...
  15. Doterok Старожила

    Сообщения:
    923
    Спасибы:
    171
    Сборка бота GHost:
    Ghost ++ 17.2
    Дата начала использования бота:
    2011
    суть команды
  16. Max5 Старожила

    Сообщения:
    360
    Спасибы:
    68
    Сборка бота GHost:
    GhostOne 1.7.266
    Дата начала использования бота:
    14.05.2013
    я думаю тупо такого, юзер пишет bags add и сам баг, это сохраняется в файле. Но тогда надо писать кто именно добавил бак т.к найдутся дебилы которые будут писать туда все подряд)))
  17. Doterok Старожила

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

    Сообщения:
    360
    Спасибы:
    68
    Сборка бота GHost:
    GhostOne 1.7.266
    Дата начала использования бота:
    14.05.2013
    сори, каюсь, исправлюсь :)
  19. ıIıIİıİIıımusic Можно доверять

    Сообщения:
    134
    Спасибы:
    2
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.2013
    Skype:
    Мой статус
    Ленивость:D
  20. Doterok Старожила

    Сообщения:
    923
    Спасибы:
    171
    Сборка бота GHost:
    Ghost ++ 17.2
    Дата начала использования бота:
    2011
    :facepalm:я тебе точно больше не помогу:ra4ina: