WOW 3.3.5 US client 好友名单中文显示问题

Wayne posted @ Fri, 02 Jul 2010 00:56:06 +0000 in Experience , 3671 readers

今天WOW的台湾服务器也随着上周美服的脚步,更新到3.3.5了。翻看了下patchnote,在UI方面一个主要改动是好友列表那里跟战网进行了组合,当然这个改动对台湾服务器而言是没有作用的。全世界都用战网ID登录,甚至依然停留在TBC阶段的CWOW都用的战网ID,台湾服务器始终固守原样。

实质作用虽然没有,但是晚上还没上线更新剑杰就在QQ上跟我说好友列表不能显示中文了。我第一判断是:字体文件。美服客户端自带的字体文件都不包含中文字符。之前都使用在安装目录下另建Fonts文件夹,然后放入同名文件的方法,先于MPQ包中的字体文件被系统调用,达到显示中文的目的。然而系统中对字体文件的调用并不是铁板一块所有地方都一致的,而是根据各个Frame的不同,各个出现位置的不同,调用了多个不同的字体文件,并且各有scale大小之分。这种不同调用的具体规则定义在MPQ包的一个XML文件中。

使用winmpq这个工具可以打开MPQ包。我的电脑上之前有这么个工具,但是现在使用的时候报告说缺少文件。我也懒得深究,直接重新下载了一个。解压后一看,貌似之前少了两个dll文件。这个工具看上去是用VB写的。运行winmpq,到WOW的DATA文件夹下找对应的MPQ文件。随着版本的不断更新,WOW的补丁包也越来越多了。以前还能认得是在那个包里有我要的东西,现在完全搞不清了。不过既然这次调用规则有了变化,那么相应的MPQ包自然有了改动。按修改时间排序后找一下即可。

找到patch-enUS-3.MPQ

找到patch-enUS-3.MPQ打开,然后在里面找到 Interface\FrameXML\Fonts.xml, 这个就是写有字体调用规则的xml文件。在该文件上右键,选择Extract,导出到MPQ包外。

找到XML文件

使用编辑器打开这个xml文件,随便一个文本编辑器即可。具体代码如下:

 

<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
..\FrameXML\UI.xsd">
	<!-- This Fonts.xml is loaded before FontStyles.xml Set up Font objects to be localized in Fonts.xml not FontStyles.xml -->
	<Script>
		STANDARD_TEXT_FONT = "Fonts\\FRIZQT__.TTF";
		UNIT_NAME_FONT = "Fonts\\FRIZQT__.TTF";
		DAMAGE_TEXT_FONT = "Fonts\\FRIZQT__.TTF";
		NAMEPLATE_FONT = "Fonts\\FRIZQT__.TTF";
	</Script>

	<Font name="SystemFont_Tiny" font="Fonts\FRIZQT__.TTF" virtual="true">
		<FontHeight>
			<AbsValue val="9"/>
		</FontHeight>
	</Font>
	<Font name="SystemFont_Small" font="Fonts\FRIZQT__.TTF" virtual="true">
		<FontHeight>
			<AbsValue val="10"/>
		</FontHeight>
	</Font>
	<Font name="SystemFont_Outline_Small" font="Fonts\FRIZQT__.TTF" outline="NORMAL" virtual="true">
		<FontHeight>
			<AbsValue val="10"/>
		</FontHeight>
	</Font>
	<Font name="SystemFont_Outline" font="Fonts\FRIZQT__.TTF" outline="NORMAL" virtual="true">
		<FontHeight>
			<AbsValue val="13"/>
		</FontHeight>
	</Font>	
	<Font name="SystemFont_Shadow_Small" font="Fonts\FRIZQT__.TTF" virtual="true">
		<Shadow>
			<Offset>
				<AbsDimension x="1" y="-1"/>
			</Offset>
			<Color r="0" g="0" b="0"/>
		</Shadow>
		<FontHeight>
			<AbsValue val="10"/>
		</FontHeight>
	</Font>
	<Font name="SystemFont_InverseShadow_Small" font="Fonts\FRIZQT__.TTF" virtual="true">
		<Shadow>
			<Offset>
				<AbsDimension x="1" y="-1"/>
			</Offset>
			<Color r=".4" g=".4" b=".4" a=".75"/>
		</Shadow>
		<FontHeight>
			<AbsValue val="10"/>
		</FontHeight>
	</Font>	
	<Font name="SystemFont_Med1" font="Fonts\FRIZQT__.TTF" virtual="true">
		<FontHeight>
			<AbsValue val="12"/>
		</FontHeight>
	</Font>
	<Font name="SystemFont_Shadow_Med1" font="Fonts\FRIZQT__.TTF" virtual="true">
		<Shadow>
			<Offset>
				<AbsDimension x="1" y="-1"/>
			</Offset>
			<Color r="0" g="0" b="0"/>
		</Shadow>
		<FontHeight>
			<AbsValue val="12"/>
		</FontHeight>
	</Font>
	<Font name="SystemFont_Med2" font="Fonts\FRIZQT__.TTF" virtual="true">
		<FontHeight>
			<AbsValue val="13"/>
		</FontHeight>
	</Font>
	<Font name="SystemFont_Shadow_Med2" font="Fonts\FRIZQT__.TTF" virtual="true">
		<Shadow>
			<Offset>
				<AbsDimension x="1" y="-1"/>
			</Offset>
			<Color r="0" g="0" b="0"/>
		</Shadow>
		<FontHeight>
			<AbsValue val="13"/>
		</FontHeight>
	</Font>	
	<Font name="SystemFont_Med3" font="Fonts\FRIZQT__.TTF" virtual="true">
		<FontHeight>
			<AbsValue val="14"/>
		</FontHeight>
	</Font>
	<Font name="SystemFont_Shadow_Med3" font="Fonts\FRIZQT__.TTF" virtual="true">
		<Shadow>
			<Offset>
				<AbsDimension x="1" y="-1"/>
			</Offset>
			<Color r="0" g="0" b="0"/>
		</Shadow>
		<FontHeight>
			<AbsValue val="14"/>
		</FontHeight>
	</Font>
	<Font name="SystemFont_Large" font="Fonts\FRIZQT__.TTF" virtual="true">
		<FontHeight>
			<AbsValue val="16"/>
		</FontHeight>
	</Font>
	<Font name="SystemFont_Shadow_Large" font="Fonts\FRIZQT__.TTF" virtual="true">
		<Shadow>
			<Offset>
				<AbsDimension x="1" y="-1"/>
			</Offset>
			<Color r="0" g="0" b="0"/>
		</Shadow>
		<FontHeight>
			<AbsValue val="16"/>
		</FontHeight>
	</Font>
	<Font name="SystemFont_Huge1" font="Fonts\FRIZQT__.TTF" virtual="true">
		<FontHeight>
			<AbsValue val="20"/>
		</FontHeight>
	</Font>
	<Font name="SystemFont_Shadow_Huge1" font="Fonts\FRIZQT__.TTF" virtual="true">
		<Shadow>
			<Offset>
				<AbsDimension x="1" y="-1"/>
			</Offset>
			<Color r="0" g="0" b="0"/>
		</Shadow>
		<FontHeight>
			<AbsValue val="20"/>
		</FontHeight>
	</Font>
	<Font name="SystemFont_OutlineThick_Huge2" font="Fonts\FRIZQT__.TTF" outline="THICK" virtual="true">
		<FontHeight>
			<AbsValue val="22"/>
		</FontHeight>
	</Font>
	<Font name="SystemFont_Shadow_Outline_Huge2" font="Fonts\FRIZQT__.TTF" outline="NORMAL" virtual="true">
		<Shadow>
			<Offset>
				<AbsDimension x="2" y="-2"/>
			</Offset>
			<Color r="0" g="0" b="0"/>
		</Shadow>
		<FontHeight>
			<AbsValue val="22"/>
		</FontHeight>
	</Font>
	<Font name="SystemFont_Shadow_Huge3" font="Fonts\FRIZQT__.TTF" virtual="true">
		<Shadow>
			<Offset>
				<AbsDimension x="1" y="-1"/>
			</Offset>
			<Color r="0" g="0" b="0"/>
		</Shadow>
		<FontHeight>
			<AbsValue val="25"/>
		</FontHeight>
	</Font>
	<Font name="SystemFont_OutlineThick_Huge4" font="Fonts\FRIZQT__.TTF" outline="THICK" virtual="true">
		<FontHeight>
			<AbsValue val="26"/>
		</FontHeight>
	</Font>
	<Font name="SystemFont_OutlineThick_WTF" font="Fonts\FRIZQT__.TTF" outline="THICK" virtual="true">
		<FontHeight>
			<AbsValue val="62"/>
		</FontHeight>
	</Font>

	<Font name="NumberFont_Shadow_Small" font="Fonts\ARIALN.TTF" virtual="true">
		<Shadow>
			<Offset>
				<AbsDimension x="1" y="-1"/>
			</Offset>
			<Color r="0" g="0" b="0"/>
		</Shadow>
		<FontHeight>
			<AbsValue val="12"/>
		</FontHeight>
	</Font>
	<Font name="NumberFont_OutlineThick_Mono_Small" font="Fonts\ARIALN.TTF" outline="THICK" monochrome="true" virtual="true">
		<FontHeight>
			<AbsValue val="12"/>
		</FontHeight>
	</Font>
	<Font name="NumberFont_Shadow_Med" font="Fonts\ARIALN.TTF" virtual="true">
		<Shadow>
			<Offset>
				<AbsDimension x="1" y="-1"/>
			</Offset>
			<Color r="0" g="0" b="0"/>
		</Shadow>
		<FontHeight>
			<AbsValue val="14"/>
		</FontHeight>
	</Font>
	<Font name="NumberFont_Outline_Med" font="Fonts\ARIALN.TTF" outline="NORMAL" virtual="true" >
		<FontHeight>
			<AbsValue val="14"/>
		</FontHeight>
	</Font>
	<Font name="NumberFont_Outline_Large" font="Fonts\ARIALN.TTF" outline="NORMAL" virtual="true">
		<FontHeight>
			<AbsValue val="16"/>
		</FontHeight>
	</Font>
	<Font name="NumberFont_Outline_Huge" font="Fonts\skurri.ttf" outline="NORMAL" virtual="true">
		<FontHeight>
			<AbsValue val="30"/>
		</FontHeight>
	</Font>

	<Font name="QuestFont_Large" font="Fonts\MORPHEUS.ttf" virtual="true">
		<FontHeight>
			<AbsValue val="15"/>
		</FontHeight>
	</Font>
	<Font name="QuestFont_Shadow_Huge" font="Fonts\MORPHEUS.ttf" virtual="true">
		<Shadow>
			<Offset>
				<AbsDimension x="1" y="-1"/>
			</Offset>
			<Color r="0.49" g="0.35" b="0.05"/>
		</Shadow>
		<FontHeight>
			<AbsValue val="18"/>
		</FontHeight>
	</Font>
	
	<Font name="GameTooltipHeader" font="Fonts\FRIZQT__.TTF" virtual="true">
		<FontHeight>
			<AbsValue val="14"/>
		</FontHeight>
	</Font>

	<Font name="MailFont_Large" font="Fonts\MORPHEUS.ttf" virtual="true">
		<FontHeight>
			<AbsValue val="15"/>
		</FontHeight>
	</Font>
	<Font name="SpellFont_Small" font="Fonts\FRIZQT__.TTF" virtual="true">
		<FontHeight>
			<AbsValue val="10"/>
		</FontHeight>
	</Font>

	<Font name="InvoiceFont_Med" font="Fonts\FRIZQT__.TTF" virtual="true">
		<FontHeight>
			<AbsValue val="12"/>
		</FontHeight>
	</Font>
	<Font name="InvoiceFont_Small" font="Fonts\FRIZQT__.TTF" virtual="true">
		<FontHeight>
			<AbsValue val="10"/>
		</FontHeight>
	</Font>
	<Font name="Tooltip_Med" font="Fonts\FRIZQT__.TTF" virtual="true">
		<FontHeight>
			<AbsValue val="12"/>
		</FontHeight>
	</Font>
	<Font name="Tooltip_Small" font="Fonts\FRIZQT__.TTF" virtual="true">
		<FontHeight>
			<AbsValue val="10"/>
		</FontHeight>
	</Font>
	<Font name="AchievementFont_Small" font="Fonts\FRIZQT__.TTF" virtual="true">
		<FontHeight>
			<AbsValue val="10"/>
		</FontHeight>
	</Font>	
	<Font name="ReputationDetailFont" font="Fonts\FRIZQT__.TTF" virtual="true">
		<FontHeight>
			<AbsValue val="10"/>
		</FontHeight>
		<Shadow>
			<Offset>
				<AbsDimension x="1" y="-1"/>
			</Offset>
			<Color r="0.0" g="0.0" b="0.0"/>
		</Shadow>
		<Color r="1.0" g="1.0" b="1.0"/>
	</Font>
	<Font name="FriendsFont_Normal" font="Fonts\FRIENDS.TTF" virtual="true">
		<Shadow>
			<Offset>
				<AbsDimension x="1" y="-1"/>
			</Offset>
			<Color r="0" g="0" b="0"/>
		</Shadow>
		<FontHeight>
			<AbsValue val="12"/>
		</FontHeight>
	</Font>
	<Font name="FriendsFont_Small" font="Fonts\FRIENDS.TTF" virtual="true">
		<Shadow>
			<Offset>
				<AbsDimension x="1" y="-1"/>
			</Offset>
			<Color r="0" g="0" b="0"/>
		</Shadow>
		<FontHeight>
			<AbsValue val="10"/>
		</FontHeight>
	</Font>
	<Font name="FriendsFont_Large" font="Fonts\FRIENDS.TTF" virtual="true">
		<Shadow>
			<Offset>
				<AbsDimension x="1" y="-1"/>
			</Offset>
			<Color r="0" g="0" b="0"/>
		</Shadow>
		<FontHeight>
			<AbsValue val="14"/>
		</FontHeight>
	</Font>
	<Font name="FriendsFont_UserText" font="Fonts\ARIALN.TTF" virtual="true">
		<Shadow>
			<Offset>
				<AbsDimension x="1" y="-1"/>
			</Offset>
			<Color r="0" g="0" b="0"/>
		</Shadow>
		<FontHeight>
			<AbsValue val="11"/>
		</FontHeight>
	</Font>	
</Ui>

 

草草浏览了一下,很迅速的就可以发现在文件底部有一些新的变动,并且很明显地跟好友名单有关。而那个FRIENDS.TTF,如果之前对WOW的字体有所了解的话,显然会立刻明白这个就是新增加的字体文件。并且正是这个字体文件,在多个所谓的“FriendsFont”项中调用。由此,问题迎刃而解了。在安装目录的Fonts文件夹下面,随便复制一个含有中文字体的字体文件,将其改名为FRIENDS.TTF即可。

改完后,重新启动游戏,登入后查看,任务完成!

已经正确显示中文的Friends list

 

Junior Certificate R said:
Sun, 28 Aug 2022 09:43:27 +0000

In the Bangladesh Education System, Barisal board has a good record and the Barisal Division also successfully completed JSC and JDC terminal examination tests 2022 as per schedules along with all other educational boards of the country, Junior Certificate Result Barisal Board and there are a huge number of general and mass education students have appeared to the Grade 8 final exams from the division.The Bangladesh Secondary and Higher Secondary Education, Barisal Board has successfully completed the Junior Certificate & Junior Dakhil Terminal exams on November like as previous years, and the school education department has to conduct evaluation process through answer sheet corrections for both general and mass education JSC & JDC exam answer sheet to calculate subject wise marks of the student, once the evaluation is completed the JSC Result 2022 Barisal Board is announced with full mark sheet with total CGPA of the student.

civaget said:
Thu, 07 Dec 2023 21:43:48 +0000

Consistency in delivering fresh, updated content is a recurring theme in the ever-evolving world of 구글 seo.

civaget said:
Sun, 10 Dec 2023 10:32:06 +0000

The absence of advertising on 달리머넷 ensures a distraction-free environment for meaningful conversations.

civaget said:
Sun, 10 Dec 2023 11:04:56 +0000

청주공항렌트카 Rental Mall 114 offers a diverse range of car options.

civaget said:
Mon, 11 Dec 2023 13:05:38 +0000

오피가이드 is a treasure trove of OP knowledge. I rely on it for the latest OP updates and insights.

civaget said:
Tue, 12 Dec 2023 14:57:24 +0000

테라피 is the key to a healthier, happier life – it's a holistic approach that works wonders.

SEO said:
Sat, 16 Dec 2023 13:50:10 +0000

Toto Match sets the standard for 메이저사이트 security. Bet with confidence, knowing your safety is their priority.

civaget said:
Sun, 17 Dec 2023 11:04:07 +0000

강남오피 guarantees an unforgettable relaxation experience. Discover massages, skincare treatments, and spa getaways at their numerous locations across Gangnam.

civaget said:
Sun, 24 Dec 2023 14:55:48 +0000

For a peaceful retreat, 용인휴게텔 is the place to be. The ambiance, cuisine, and skilled therapists make it truly outstanding.

civaget said:
Wed, 27 Dec 2023 13:13:19 +0000

For sports enthusiasts, 무료실시간TV중계 is a treasure chest of entertainment. It's the gateway to a world of free sports streaming.


Login *


loading captcha image...
(type the code from the image)
or Ctrl+Enter