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

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

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

  1. Mr-Fane Ньюфаг

    Сообщения:
    110
    Спасибы:
    4
    Сборка бота GHost:
    GHo 1.7.266
    Здравствуйте уважаемые -_-

    Вообщем возникла такая необходимость:

    При включении бота, он автоматически проверяет список админов, и если они есть в сети, пишит им сообщение в приват типо "Ghost bot включен" и тоже самое при выключении бота "Ghost bot выключен"

    Бот в сети непостоянно - хочу что-бы админы знали, о том когда мой бот подключается или отключается от сервера.

    Напишите какой код куда вписать....думаю такая идейка многим пригодится.

    Благодарю за внимание
  2. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Компилировать умеешь?
  3. Mr-Fane Ньюфаг

    Сообщения:
    110
    Спасибы:
    4
    Сборка бота GHost:
    GHo 1.7.266
    Приветствую.

    Ну мог бы и не спрашивать - умею)
  4. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Значит так... -_-

    Бот может 2 способами выключаться - вручную, по тех. причинам. Во втором случае мы не сможем оповестить админов.

    При включении: если админов будет больше 20... Бот будет пыхтеть отправляя мсг втечение 5 минут (как минимум). При ручном выключении такая же балда будет. Так что решай.
  5. Mr-Fane Ньюфаг

    Сообщения:
    110
    Спасибы:
    4
    Сборка бота GHost:
    GHo 1.7.266
    Хм хм....а если сделать это без проверки на наличие админов в онлайне, тобеж вот он берет весь список и тупо пишит им через /w "GhostOne включен" и поф есть они в сети или нету.Аналогично при выключении.

    Тоже 5 минут будет думать? o_O

    Если да то вот еще вариант:

    Бот автоматически добавляет всех админов в список своих друзей и при включении пишит /f msg GhostOne включен, и тоже самое при выключении.

    Ну чот как-то так :)
  6. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Ну вот пока добавь в bnet.h

    После
    Код:
    private:
    Это
    Код:
    bool m_SendMsg;
    bnet.cpp

    Перед
    Код:
    // remove a ban every 10 seconds
    Это
    Код:
    	  if (GetTicks() > 1000*60 && !m_SendMsg)
    	 {
    		m_SendMsg = true;
    		ImmediateChatCommand("/f w I am back");
    
    	 }
    После
    Код:
    m_HostCounterID = nHostCounterID;
    Это
    Код:
    m_SendMsg = false;
  7. Mr-Fane Ньюфаг

    Сообщения:
    110
    Спасибы:
    4
    Сборка бота GHost:
    GHo 1.7.266
    Добавил, скомпилил..пока тихо
  8. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Друзей добавь в фл - дружба должна быть взаимна.
  9. Mr-Fane Ньюфаг

    Сообщения:
    110
    Спасибы:
    4
    Сборка бота GHost:
    GHo 1.7.266
    Для примера добавил себя(гл.админа) в фл(Дружба взаимна)
    Не прет... :stenka:

    Может это связанно с тем что бот хостит на 6 серверов одновременно?У каждого серва свой акк, а соотсветсвенно и фл. o_O

    У тебя у самого это работает?Если да то тыкаю спасибо и иду разбиратся дальше.
  10. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Я не ставил же у себя.
  11. Mr-Fane Ньюфаг

    Сообщения:
    110
    Спасибы:
    4
    Сборка бота GHost:
    GHo 1.7.266
    если не затруднит попробуй у себя.
    Вот через окно ghost one если пишу в ручную /f msg text он норм пишит на том сервере в котором есть друзья.

    вот лог

    Код:
    [              QUE: war3.alkar.net] /f msg .
    [                QUE: rubattle.net] /f msg .
    [           QUE: europe.battle.net] /f msg .
    [           QUE: uswest.battle.net] /f msg .
    [           QUE: useast.battle.net] /f msg .
    [             QUE: asia.battle.net] /f msg .
    [         ERROR: europe.battle.net] You don't have any friends in your list.  Use /friends add USERNAME to add a friend to your list.
    [             INFO: war3.alkar.net] All your friends are offline.
    [         ERROR: useast.battle.net] You don't have any friends in your list.  Use /friends add USERNAME to add a friend to your list.
    [         ERROR: uswest.battle.net] You don't have any friends in your list.  Use /friends add USERNAME to add a friend to your list.
    [           ERROR: asia.battle.net] You don't have any friends in your list.  Use /friends add USERNAME to add a friend to your list.
    
    Тоесть он выдает текст на том сервере где в списке есть друзья.В данном случии рубатл, а имитация этой команды по твоему способу что ты написал выше, чот не прет.Вообще тихо
  12. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Добавь в тело
    Код:
    CONSOLE_Print( "[BNET: " + m_ServerAlias + "] Send /f msg MESSAGE");
  13. Mr-Fane Ньюфаг

    Сообщения:
    110
    Спасибы:
    4
    Сборка бота GHost:
    GHo 1.7.266
    Лонг спс тебе большое, что помогаешь в реализации этого замысла.Хотелось бы уточнить:

    Код:
    if (GetTicks() > 1000*60 && !m_SendMsg)
        {
          m_SendMsg = true;
          ImmediateChatCommand("/f w I am back");
          CONSOLE_Print( "[BNET: " + m_ServerAlias + "] Send /f msg MESSAGE");
        }
    Так должно быть?
  14. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Да. Когда запустишь бота, глянь лог.
  15. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Ой лол. Погоди.
  16. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Заново вобщем:

    bnet.h
    Код:
    	bool m_SendMsg;
    	uint32_t m_SendMsgTime;
    bnet.cpp
    После
    Код:
    m_HostCounterID = nHostCounterID;
    >>
    Код:
    m_SendMsgTime = GetTime( );
    m_SendMsg = false;
    Ну а это ты уже знаешь куда

    Код:
    if (GetTime( ) > m_SendMsgTime+60 && !m_SendMsg)
        {
          m_SendMsg = true;
          ImmediateChatCommand("/f w I am back");
         // CONSOLE_Print( "[BNET: " + m_ServerAlias + "] Send /f msg MESSAGE");
        }
  17. Mr-Fane Ньюфаг

    Сообщения:
    110
    Спасибы:
    4
    Сборка бота GHost:
    GHo 1.7.266
    Код:
    BNET: europe.battle.net] Send /f msg MESSAGE
    и так под каждым сервером, но он это пишит до того как подсоеденился.
    Надо установить время после которого эта имитация будет страбатывать.
    Скажем через 15 сек после включения бота.

    Как-то так :)

    Так этот пост написал до того как увидел твой...щас попробую сек...
  18. Mr-Fane Ньюфаг

    Сообщения:
    110
    Спасибы:
    4
    Сборка бота GHost:
    GHo 1.7.266
    Все ништяк :metal:
    После 60 сек как законектился он пишит всем твой "I am back"

    Тыкаю спасибо -_-

    Теперь давай разберемся с оповищением при отключении бота и тему можно будет переносить в Кодинг/Собственные решения

    Еще раз огромное спасибо :avtoradolf: