【已解决】关于CS1.6魔兽插件信息显示位置的问题
这里以魔兽插件V3.0 RC13为例(下载地址:www.war3ft.com),以前记得用在CS1.5的时候,无论hud_centerid设置为0还是1,玩家种族和经验的信息都是显示在屏幕左下角的。但用在CS1.6里,就会出现这两种情况:当hud_centerid设置为0时,玩家种族和经验的信息会显示在屏幕的左下角;而当hud_centerid设置为1时,玩家种族和经验的信息会显示在屏幕的中央。对于CS1.6,到底有没有办法让玩家种族和经验信息的显示位置固定在屏幕的左下角,而不受hud_centerid 0/1这个命令参数的影响呢?答案是不可以!因为CS1.5的StatusText信息显示通道有两个,但CS1.6只有一个,因此才会造成信息之间的显示冲突。解决的方法就是修改魔兽插件的信息显示方式,改用set_hudmessage的形式显示,修改的方法如下:
一、首先打开war3ft.sma,找到这些代码,然后修改成这样:
// Initialize this player
WC3_PlayerInit( id );
//client_cmd( id, "hud_centerid 0" );
client_cmd( id, "hud_centerid 1" );
二、然后打开war3ft/war3ft.inl这个文件,找到这些代码,然后修改成这样:
第一部分:
// Format the message
new Float:fSpecTime = SPEC_HOLDTIME;
if ( get_pcvar_num( CVAR_wc3_spec_position ) == 0 )
{
//set_hudmessage( 255, 255, 255, 0.018, 0.9, 2, 1.5, fSpecTime, 0.02, 5.0, HUD_SPEC_INFO );
set_hudmessage( 255, 255, 255, 0.75, 0.9, 2, 1.5, fSpecTime, 0.02, 5.0, HUD_SPEC_INFO );
}
else
{
//set_hudmessage( 255, 255, 255, 0.65, 0.9, 2, 1.5, fSpecTime, 0.02, 5.0, HUD_SPEC_INFO )
set_hudmessage( 255, 255, 255, 0.75, 0.9, 2, 1.5, fSpecTime, 0.02, 5.0, HUD_SPEC_INFO )
}
第二部分:
// Ultimate messages
else if ( iType == TXT_ULTIMATE )
{
//set_hudmessage( 255, 208, 0, -1.0, 0.85, HUDMESSAGE_FX_FADEIN, 6.0, 0.5, 0.1, 0.5, HUD_ULTIMATE );
set_hudmessage( 255, 208, 0, -1.0, -0.4, HUDMESSAGE_FX_FADEIN, 6.0, 0.5, 0.1, 0.5, HUD_ULTIMATE );
}
第三部分:
if ( SHARED_IsOnTeam( id ) )
{
// Display the item + race info with a hudmessage
if ( g_MOD == GAME_CSTRIKE || g_MOD == GAME_CZERO )
{
if ( is_user_alive( id ) )
{
//Create_StatusText( id, 0, szString );
set_hudmessage( 255, 255, 255, 0.018, 0.89, 0, 1.5, 600.0, 0.02, 5.0, -1 );
show_hudmessage( id, szString );
//}
//else
//{
//set_hudmessage( 160, 160, 160, 0.012, 0.90, HUDMESSAGE_FX_FADEIN, 10.0, 0.0, 2.0, 3.0, HUD_XP );
//show_hudmessage( id, "%s", szXPInfo );
}
}
OK,修改完后保存好war3ft.inl,然后重新编译war3ft.sma生成amxx就行了。想偷懒的朋友可以下载我修改好的war3ft.inl文件,下完后覆盖掉原来的文件,最后重新编译插件就行了。 是的, 曾纪我也十分纠结这个问题 本帖最后由 Osker Lee 于 2011-9-20 01:58 编辑
最近有朋友反映修改了war3ft.inl之后会出现信息重叠的问题,其实解决的方法很简单,首先打开war3ft/war3ft.inl找到下面的代码:
if ( is_user_alive( id ) )
{
//Create_StatusText( id, 0, szString );
set_hudmessage( 255, 255, 255, 0.018, 0.89, 0, 1.5, 600.0, 0.02, 5.0, -1 );
show_hudmessage( id, szString );
然后修改成下面这样:
if ( is_user_alive( id ) )
{
//Create_StatusText( id, 0, szString );
set_hudmessage( 255, 255, 255, 0.018, 0.89, 0, 1.5, 600.0, 0.02, 5.0, 4 );
show_hudmessage( id, szString );
其实就是把-1改成4,更换一下HUD的信息显示频道就行了。 我的显示乱码怎么回事呢 本帖最后由 Osker Lee 于 2011-9-22 00:59 编辑
很明显是war3FT.txt这个语言文件的问题,在里面添加以下内容就行了:
SHOP_ITEM = Item
SHOP_ITEM = 物品 楼主新版都解决了,呵呵。 很明显是war3FT.txt这个语言文件的问题,在里面添加以下内容就行了:
SHOP_ITEM = Item
SHOP_ITEM = 物品
Osker Lee 发表于 2011-9-22 00:54 http://www.dt-club.net/forum/images/common/back.gif
能给一份20级的魔兽代码吗 本帖最后由 Osker Lee 于 2011-9-24 10:25 编辑
魔兽每个种族都拥有三个小技能再加一个大技能,个别种族还拥有一个被动技能。其实修改魔兽的级别意义不大,因为各个种族的技能点数是固定的,就算你改成了100级,但当你升到10级了其实已经把技能全都学完了,剩下的升级就毫无意义了,因为没有技能可以学了。
当然,你可以把技能点重新分配,限制玩家每升5级或者10级才能学习一个技能,但这样一来就得对魔兽的源码动大手术,修改起来很麻烦。我不是插件的作者,因此我只负责汉化和优化,而不能随意做大幅度的改动,要忠于原作、尊重作者的劳动成果。
但我可以告诉你大概的修改方法,详情请参见下面这个帖子(英文的),希望对你有所帮助:
How to add more levels to your server
http://wc3mods.net/forums/viewtopic.php?f=21&t=3759 魔兽每个种族都拥有三个小技能再加一个大技能,个别种族还有一个被动技能。其实修改魔兽的级别意义不大,因为各个种族的技能点数是固定的,就算你改成了100级,但当你到达10级了其实已经把技能全都学完了,剩下的升 ...
Osker Lee 发表于 2011-9-23 18:18 http://www.dt-club.net/forum/images/common/back.gif
谢谢楼主,辛苦了,我先看看英文的 还是期待楼主能修改个20级的代码,英文看了太复杂了哈哈
页:
[1]
2