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

Приветствие на канале для одного

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

  1. pontorezzz Ньюфаг

    Сообщения:
    23
    Спасибы:
    0
    А есть такое дело? например 5 шаманов заходят на канал......( можно и не шаманы :) )
    и в чате для всех 5ых шаманов приветствие, НО для одного особое приветствие..
    ну грубоговоря например:
    к нам пожаловал 1
    к нам пожаловал 2
    к нам пожаловал 3
    к нам пожаловал 4
    А вот к нам и задрот пожаловал 5


    Вообщем что бы приветствие для одного игрока заходящего на канал было не как всем) :alequate:
    GhostOne 1.7.266 :spydance:
  2. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    сделай его админом, не благодари.!
  3. pontorezzz Ньюфаг

    Сообщения:
    23
    Спасибы:
    0
    Да это понятно, но а вообще сделать так реально?)
    только 1 человеку чертово приветствие) и по возможности менять ник :opasnoste:

    lang_0984 =
    lang_0985 =
    lang_0986 =
    lang_0987 =
    lang_0988 =
    Забываем)
  4. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Код:
    void CBNET :: ChannelJoin( string name )
    {
    	if (m_GHost->m_channeljoinmessage && !m_GHost->IsChannelException(name))
    	{
    		for (uint32_t i=0; i<m_GHost->m_ChannelWelcome.size(); i++)
    		{
    			if ( m_PasswordHashType == "pvpgn")
    				ImmediateChatCommand("/w "+name+" "+m_GHost->m_ChannelWelcome[i]);
    			else
    				QueueChatCommand("/w "+name+" "+m_GHost->m_ChannelWelcome[i]);
    		}
    	}
    	if (!m_GHost->m_channeljoingreets)
    		return;
    
    	if (m_GHost->IsChannelException(name))
    		return;
    	bool Safe = IsSafe(name);
    	bool Admin = IsAdmin(name);
    	bool RootAdmin = IsRootAdmin(name);
    	bool Chieftain = IsClanChieftain(name);
    	bool Shaman = IsClanShaman(name);
    	string msg=string();
    	if (Chieftain)
    		msg = m_GHost->m_Language->ChieftainJoinedTheChannel(name);
    	else if (Shaman)
    		msg = m_GHost->m_Language->ShamanJoinedTheChannel(name);
    	else if (RootAdmin)
    		msg = m_GHost->m_Language->RootAdminJoinedTheChannel(name);
    	else if (Admin)
    		msg = m_GHost->m_Language->AdminJoinedTheChannel(name);
    	else if (Safe)
    		msg = m_GHost->m_Language->SafeJoinedTheChannel(name);
    	
    	if (msg.size()!=0 && m_OutPackets.size()<3)
    		QueueChatCommand("/me " + msg);
    }
    Код:
    	else if (Shaman)
    		msg = m_GHost->m_Language->ShamanJoinedTheChannel(name);
    Вот тут после else if (Shaman) например (это самый простой способ, но не есть лучший) добавляешь:
    Код:
    if( name == "Vasya_pupkin")
    msg = m_GHost->m_Language->ShamanVasyaPupkin(name);
    else
    Ну и соответственно добавляешь ф-ию в класс CLanguage -> ShamanVasyaPupkin.
    Описано на GHostOne
  5. pontorezzz Ньюфаг

    Сообщения:
    23
    Спасибы:
    0
    Спасибищи) позже прокомпилю)
  6. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Но напомню, что это не лучший способ. Ник менять придется в самом исходнике и рекомпилить.
    Если надо, можно вынести в конфиг. Тогда можно будет изменять ник, для которого нужно особое приветствие, через конфиг.
  7. pontorezzz Ньюфаг

    Сообщения:
    23
    Спасибы:
    0
    Deals если не трудно сможешь скинуть код ?( :vau:
    всё получилось, но блин если так каждый раз рекомпилить(

    Описанное выше всё прекрасно работает!)
    А как быть если в нике присутствуют скобки? там
    Код:
    language.h(294) : error C2059: синтаксическая ошибка: )
    language.h(294) : error C2059: синтаксическая ошибка: неправильный суффикс для числа
    language.h(294) : error C2143: синтаксическая ошибка: отсутствие ";" перед "константа"
    language.h(294) : error C2238: непредвиденные лексемы перед ";"
    
    1>.\bnet.cpp(6762) : error C2059: синтаксическая ошибка: )
    1>.\bnet.cpp(6762) : error C2059: синтаксическая ошибка: неправильный суффикс для числа
    1>.\bnet.cpp(6762) : error C2143: синтаксическая ошибка: отсутствие ";" перед "константа"
    1>.\bnet.cpp(6762) : error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "Часть ника после скобки"
    1>.\bnet.cpp(6762) : error C3861: Часть ника после скобки: идентификатор не найден
    ну и т.п тут тебе наверняка понятно)
  8. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Я надеюсь в курсе что тут в коде. Главное понять что где перед строкой "+" строка добавляется, где "-" строка удаляется. В каком файле написано сразу за @@ -***,* +***,* @@. Т.е. например:
    В файле language.h после string RemovedPlayerFromNoteList( string user); добавили string SpecialShamanName( string name );
    И в конце после компила, в конфиг ланга добавишь:
    Код:
    lang_2000 = Крутой шаман $NAME$ вошел на канал.
    В конфиг ghost.cfg добавишь:
    Код:
    bot_specialshamanname = imyaShamana
  9. pontorezzz Ньюфаг

    Сообщения:
    23
    Спасибы:
    0
    Deals Спасибооо) :dance:
    Отпишу попозже получилось ли)
  10. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Отредактировал предыдущий пост.
  11. pontorezzz Ньюфаг

    Сообщения:
    23
    Спасибы:
    0
    Deals Спасибо большое! всё работает)
  12. Guard Старожила

    Сообщения:
    473
    Спасибы:
    47
    Сборка бота GHost:
    Ghost++ RAKAL Edition
    Дата начала использования бота:
    00.00.2009
    Skype:
    Мой статус
    Deals, а прокатит ли так?
    Код:
    bot_specialshamanname = imyaShamana imyaShamana2 imyaShamana3 imyaShamana...999
  13. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Нет. Строку нужно будет разбивать на подстроки и вносить в контейнер.
  14. pontorezzz Ньюфаг

    Сообщения:
    23
    Спасибы:
    0
    У друга не получилось вот что у него выдаёт
    Код:
    1>------ Построение начато: проект: ghost, Конфигурация: Release MySQL Win32 ------
    1>Компиляция...
    1>ghost.cpp
    1>.\ghost.cpp(2182) : error C2065: MPQ_OPEN_FORCE_MPQ_V1: необъявленный идентификатор
    1>map.cpp
    1>.\map.cpp(186) : error C2065: MPQ_OPEN_FORCE_MPQ_V1: необъявленный идентификатор
    1>Журнал построения был сохранен в "file://c:\Program Files\GHostOne 1.7.266 for Warcraft 1.26\ghost\Release MySQL\BuildLog.htm"
    1>ghost - ошибок 2, предупреждений 0
    ========== Построение: успешно: 0, с ошибками: 1, без изменений: 1, пропущено: 0 ==========
    как лечить?)
  15. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Что-то не так изменил скорее всего.
  16. pontorezzz Ньюфаг

    Сообщения:
    23
    Спасибы:
    0
    После этого у меня стало писать
    TCPSOCKET] closed by remote host
    бота запустил сегодня)

    перед этим исправлением у меня всё норм было вот только-только убрал этот код и всё заработало, в чём дело?(
    Я не могу зайти и ко мне ни кто не может, выкидывает на канал, мапконфиг всё норм и остальное
    Компиляция без ошибок
  17. Synth (LM) Пантограф!

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