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

!sp c исключением админом

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

  1. Egor Ньюфаг

    Сообщения:
    52
    Спасибы:
    0
    Меня ещё интересуется вопрос, как узнать является ли игрок *i админом?
    Используя вектор CGameSlot.
    Точнее хочу сделать исключение для команды !sp, что-бы не трогало админов.
  2. Egor Ньюфаг

    Сообщения:
    52
    Спасибы:
    0
  3. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Не проверено и не тестировано. Если бот будет вылетать с крит. ошибкой - пиши.
    P.S.: Добавил проверку на рутадмина.
  4. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Потестил - не работает. Судя по всему из-за того что Player->GetName( ) имеет оригинальное имя. А имена Админов - в нижнем регистре. Кто в курсе как преобразовать string to lower string?
    P.S.: Вроде что-то нашел. Как выздоровлю может сделаю. Температура вчера 39.7 :palevo:
  5. 1100 Ньюфаг

    Сообщения:
    50
    Спасибы:
    0
    в гхосте так перевод в нижний регистр
    transform( name.begin( ), name.end( ), name.begin( ), (int(*)(int))tolower )


    либо так
    for (int b=0; b<=strlen(name); b++){
    tolower(name);
    }

    но в ф-ции IsAdmin уже есть перевод в нижний регистр...
  6. 1100 Ньюфаг

    Сообщения:
    50
    Спасибы:
    0
    помему знак должен быть && а не || и ещё ниже второй цикл в него тоже нужно условие вставлять...
  7. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    1. Я уже писал что нашел.
    Ну да 100%. С каких пор Админы - РутАдмины ??
    Да нужно и во 2 но крит ошибка вылетает при комманде SP
  8. 1100 Ньюфаг

    Сообщения:
    50
    Спасибы:
    0
    Не проверено и не тестировано. Если бот будет вылетать с крит. ошибкой - пиши.
    P.S.: Добавил проверку на рутадмина.[/quote]
    то имя которое ты передаеш функцие IsAdmin переводится в нижний регистр
    смотри если человек не админ ( !false || !IsRootAdmin( Player->GetName( ))
    то условее становится верным и проверка на рут админа игнорируется
    зы: скобки нужны были еслиб ты написал так
    можно было так if( (*i).GetSlotStatus( ) == SLOTSTATUS_OCCUPIED && (*i).GetComputer( ) == 0 && (*i).GetColour()!=12 && Player && !( IsAdmin( Player->GetName( )) || IsRootAdmin( Player->GetName( ))) )
    PlayerSlots.push_back( *i );

    про крит: крит потому что ты дописал это условие только в первом случае, и там идет обращение к несуществующему элементу вектора..
  9. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Условие добавлял во 2 цикл
  10. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Покажи разницу в:
    !( IsAdmin( Player->GetName( )) || IsRootAdmin( Player->GetName( )))
    и
    ( !IsAdmin( Player->GetName( )) || !IsRootAdmin( Player->GetName( )))
  11. 1100 Ньюфаг

    Сообщения:
    50
    Спасибы:
    0
    но попробуй
    Код:
    		if(*CurrentPlayer)// добавить это перед:
    		Slots.push_back( *CurrentPlayer );
    			CurrentPlayer++;
    
  12. 1100 Ньюфаг

    Сообщения:
    50
    Спасибы:
    0
    подставь значения

    !(false || true) = false
    (!false || !true) = true
  13. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Не надо меня просвещать в то что я и так знаю. Если в || выполняется хоть 1 из условий - последующие игнорируются.
    А в стиле написания если используешь && вперемешку с || то скобки обязательны чтоб самому же не запутаться.
  14. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Мда. Ну и чей код правильный?
    Если мне нужно ИСКЛЮЧИТЬ Админа?
    То и должно что если фолс (юзер не Админ) со знаком ! - становится тру и обычного юзера добавляет в список шуфла
  15. 1100 Ньюфаг

    Сообщения:
    50
    Спасибы:
    0
    акцент на рут админе

    !(false || true) = false
    (!false || !true) = true

    в моем случае в первом если рутадмин тру то все условие становится фолс( что нам и нужно собственно)
    А в твоем случае проверка на рут админа происходит только если человек админ


    зы:даже не знаю чей код правельный