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

Русский + компиляция

Тема в разделе 'Основные вопросы', создана пользователем Mr-Fane, 21 окт 2010.

Статус темы:
Закрыта.
  1. Mr-Fane Ньюфаг

    Сообщения:
    110
    Спасибы:
    4
    Сборка бота GHost:
    GHo 1.7.266
    Хочу перевести вот это так, что-бы вместо Game Mod: писало Мод игры:

    Код:
    		SendChat( player, "Game Mod:  " + m_HCLCommandString );
    

    Ознакомился с методом, который дал Zarj и сделал следующее

    В Russian.cfg добавил:

    Код:
    lang_1100 = Мод игры:
    Но далее Zarj в своем гайде описывал как переводить значение в game.cpp , а мне нужно перевести значение в game_base.cpp которое я написал выше.Я не програмист, поэтому надеюсь на вас.
  2. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Ok распишу подробно тебе, но оформление будет наврное сложночитаемым.
    Сначала ты добавил в руссиан.кфг lang_1100 = Мод игры:
    Далее в конце файла language.cpp добавлять
    Код:
    string CLanguage :: Modigri( )
    {
       string Out = m_CFG->GetString( "lang_1100", "lang_1100" );
       return Out;
    }
    Потом в конце language.h добавляеш
    Код:
       string Modigri( );
    И в конце концов меняеш строку
    Код:
           SendChat( player, "Game Mod:  " + m_HCLCommandString );
    На
    Потом компилировать, должно получиться!
    Если возникнут трудности или ошибки - пиши )
  3. Mr-Fane Ньюфаг

    Сообщения:
    110
    Спасибы:
    4
    Сборка бота GHost:
    GHo 1.7.266
    Оформление как-раз таки хорошо читается)Все понятно расписал...

    Но вот что происходит при компиляции:

    Код:
    1>------ Построение начато: проект: ghost, Конфигурация: Release MySQL Win32 ------
    1>Компиляция...
    1>bnet.cpp
    1>game_base.cpp
    1>.\game_base.cpp(1753) : error C2065: Modsigri: необъявленный идентификатор
    1>.\game_base.cpp(1753) : error C2039: Ping: не является членом "CLanguage"
    1>        c:\ghostone\ghost\language.h(29): см. объявление 'CLanguage'
    1>.\game_base.cpp(1754) : error C2065: Modsigri: необъявленный идентификатор
    1>.\game_base.cpp(1755) : error C2065: Modsigri: необъявленный идентификатор
    1>language.cpp
    1>Компиляция...
    1>game.cpp
    1>game_admin.cpp
    1>Пропуск... (изменения не обнаружены)
    1>gameplayer.cpp
    1>ghost.cpp
    1>Журнал построения был сохранен в "file://c:\GHostOne\ghost\Release MySQL\BuildLog.htm"
    1>ghost - ошибок 4, предупреждений 0
    ========== Построение: успешно: 0, с ошибками: 1, без изменений: 1, пропущено: 0 ==========
  4. Mr-Fane Ньюфаг

    Сообщения:
    110
    Спасибы:
    4
    Сборка бота GHost:
    GHo 1.7.266
    По логике проблему можно решить по другому

    1.В game_base.cpp вписать.

    Код:
    //      SendChat( player, "     HCL Command String:  " + m_HCLCommandString );
    2.В welcome mesage написать:

    Мод игры: sdso (например)

    Собственно я так и сделал, но этот метод распространяется только в данном случае)
    Меня именно твой метод заинтересовал ибо потом мне это пригодится 100%, а также твой метод можно использовать в любых подобных ситуациях..Просто хочется разобратся :)
  5. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    не легче зделать так как в кб?
    т.е. добавить переменные.
  6. Mr-Fane Ньюфаг

    Сообщения:
    110
    Спасибы:
    4
    Сборка бота GHost:
    GHo 1.7.266
    Я не совсем тебя понял.Обьясни по рабоче крестьянски))Я в этом деле начинающий.
  7. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    вот смотри имеем функцию void CBaseGame :: SendWelcomeMessage( CGamePlayer *player )
    она выглядит примерно вот так
    Код:
    void CBaseGame :: SendWelcomeMessage( CGamePlayer *player )
    {
    	
    	for( vector<string> :: iterator i = m_GHost->m_Welcome.begin( ); i != m_GHost->m_Welcome.end( ); i++ )
    	{
    		SendChat( player, (*i));
    	}
    //...	
    //	тут была инфа :Р
    //...
    	if( !m_HCLCommandString.empty( ) )
    		SendChat( player, "     HCL Command String:  " + m_HCLCommandString );
    
    }
    так же в language\util есть такая функция void Replace( string &Text, string Key, string Value );
    используя эту функцию изменяем код SendWelcomeMessage
    на
    Код:
    void CBaseGame :: SendWelcomeMessage( CGamePlayer *player )
    {
    //	string gamemod = m_HCLCommandString;
    //	if( gamemod.empty( ) )
    //		gamemod = "empty"	
    
    	for( vector<string> :: iterator i = m_GHost->m_Welcome.begin( ); i != m_GHost->m_Welcome.end( ); i++ )
    	{
                                Replace( (*i),"$HCL$", m_HCLCommandString );
    		SendChat( player, (*i));
    	}
    
    }
    те оно будет искать $HCL$ в welcome.txt и заменять на мод
    единственное что если у тя hcl пустое то бот может напсать
  8. Mr-Fane Ньюфаг

    Сообщения:
    110
    Спасибы:
    4
    Сборка бота GHost:
    GHo 1.7.266
    Спасибо все понял - норм все расписал.Только вопрос.Он будет переводить это на русский?Собственно этого я и хочу добиться.Что-бы было не Game mod, а Мод игры:
  9. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    ну какбЭ он будет просто заменять $HCL$ в welcome.txt на мод
    перевожить ничё не будет но если ты напишеш в wlecome.txt
    то тогда он напишет ток незабудь перевести в утф
  10. Mr-Fane Ньюфаг

    Сообщения:
    110
    Спасибы:
    4
    Сборка бота GHost:
    GHo 1.7.266
    Спасибо.Тему можно считать закрытой :spydance:
Статус темы:
Закрыта.