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

сообщения о кике и бане в ЛС. help

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

  1. Fox_Mulder Ньюфаг

    Сообщения:
    34
    Спасибы:
    0
    Помогите пожалуйста. Не могу найти в коде место, где отправляются сообщения и кике или бане.
    lang_0078 = was kicked by player [$USER$] Вот это
    lang_0078 соответствует это WasKickedByPlayer (хз как это называется по научному)
    Далее во всем програмном коде нашел только 2 места где упоминается этот оператор WasKickedByPlayer
    Но там не увидел наподобе SendAllChat(m_language->WasKickedByPlayer)
    И если кто найдет скажите как сделать, чтобы это сообщение отправлялось в личку написавшему эту команду. Потому как хочется, чтобы при кике или бане не выводилось сообщение всем игрокам
  2. Fox_Mulder Ньюфаг

    Сообщения:
    34
    Спасибы:
    0
    неужеле никто не может это решить :(
  3. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Напиши точноей сообщение какое выдаёт (буква в букву)
  4. Fox_Mulder Ньюфаг

    Сообщения:
    34
    Спасибы:
    0
    выдает это сообщение из файла language.cfg
    lang_0078 = was kicked by player [$USER$]
    версия бота 17
  5. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Посмотрел навскидку, вроде как это находится тут:
    game_base.cpp
    ~1500строка
    Класс:
    Код:
     void CBaseGame :: EventPlayerDeleted( CGamePlayer *player )
    Вот код отвечающий за ЛСки на всякие баны\кики
    Код:
    				// hackhack: there must be a better way to do this
    
    				if( (*i)->GetPasswordHashType( ) == "pvpgn" )
    					(*i)->UnqueueChatCommand( "/whereis " + player->GetName( ) );
    				else
    					(*i)->UnqueueChatCommand( "/whois " + player->GetName( ) );
    
    				(*i)->UnqueueChatCommand( "/w " + player->GetName( ) + " " + m_GHost->m_Language->SpoofCheckByReplying( ) );
    Вроде это правильно, но это навскидку, за пару минут.
  6. Fox_Mulder Ньюфаг

    Сообщения:
    34
    Спасибы:
    0
    Насколько я понимаю этот код вообще не соответствует кику и бану. это сообщение про авторизацию "Авторизуйтесь отправив сообщение : /r spoofcheck :."
  7. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Сам посмотри EventPlayerDeleted Тоесть действия при удалении игрока, я ещё конечно покапаюсь если это не верно то напишу другой вариант.
  8. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    там не используеться ета каманда вместо етого используется функция назначения причины лива
    строка 4222 game.cpp
    Код:
    LastMatch->SetLeftReason( m_GHost->m_Language->WasKickedByPlayer( User ) );
    
    меняеш например на ето
    Код:
    LastMatch->SetLeftReason( m_GHost->m_Language-> HasLostConnectionClosedByRemoteHost() );
    SendChat( player->GetPID(), m_GHost->m_Language->WasKickedByPlayer( User ));
    
    тогда в случае кика всем будет писать это сообщение
    lang_0081 = потерял соединение (соединение закрыто удалённым хостом) а тебе дополнительно
    lang_0078 = выкинут игроком $USER$

    зы: проверь так как я не уверен сам не сильно увлекаюсь програмированием) вот тока сёдня скачал компилятор
  9. x-ter Ньюфаг

    Сообщения:
    10
    Спасибы:
    0
    Оператор WasKickedByPlayer описыывается в game.cpp в 1089 сроке, могу грубо ошибатся.
  10. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    не знаю как ты считал)