爱东东

VS.NET,IT,个人,个人网站 爱东东 http://www.idongdong.net

 

修改Mangos欢迎词为中文

world.cpp中
///- Read the player limit and the Message of the day from the config file
    SetPlayerLimit( sConfig.GetIntDefault("PlayerLimit", DEFAULT_PLAYER_LIMIT) );
    SetMotd( sConfig.GetStringDefault("Motd", "Welcome to the Massive Network Game Object Server." ).c_str() );
修改为
///- Read the player limit and the Message of the day from the config file
    SetPlayerLimit( sConfig.GetIntDefault("PlayerLimit", DEFAULT_PLAYER_LIMIT) );
//SetMotd( sConfig.GetStringDefault("Motd", "Welcome to the Massive Network Game Object Server." ).c_str() );
而后增加
// change to unicode..

   char * tempchar = NULL;

   int m_lens = strlen(sConfig.GetStringDefault("Motd", "Welcome to the Massive Network Game Object Server." ).c_str());
   tempchar = (char*)malloc(m_lens+1);
   
   strcpy(tempchar,sConfig.GetStringDefault("Motd", "Welcome to the Massive Network Game Object Server." ).c_str());

   BSTR Uni_text;
   int nLen = MultiByteToWideChar(CP_ACP, 0, tempchar, lstrlen(tempchar), NULL, NULL);
   Uni_text = SysAllocStringLen(NULL, nLen);
   MultiByteToWideChar(CP_ACP, 0, tempchar, lstrlen(tempchar), Uni_text, nLen);

   //change to UTF..
   char *UTF_Text = NULL;
   int nLen2 = WideCharToMultiByte(CP_UTF8, 0, Uni_text, -1, UTF_Text, 0, NULL, NULL);
   UTF_Text = (char*)malloc(nLen2+1);
   WideCharToMultiByte(CP_UTF8, 0, Uni_text, -1, UTF_Text, nLen2, NULL, NULL);

   SetMotd(UTF_Text);

   free(tempchar);
   SysFreeString(Uni_text);
   free(UTF_Text);

 

posted on 2007-12-10 14:52  爱东东  阅读(688)  评论(0编辑  收藏  举报

导航