设为首页收藏本站新闻投稿

MOD中国同盟社

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1471|回复: 10

【已解决】关于CS1.6魔兽插件信息显示位置的问题 [复制链接]

Modchina声望-尊敬

百贴杀阵!

Rank: 7Rank: 7Rank: 7

帖子
379
精华
0
声望
3092 点
金币
371 Mold
被赞许
10 次
注册时间
2007-5-2
发表于 2011-8-1 20:45:59 |显示全部楼层
关于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,找到这些代码,然后修改成这样:
  1. // Initialize this player
  2. WC3_PlayerInit( id );
  3. //client_cmd( id, "hud_centerid 0" );
  4.         client_cmd( id, "hud_centerid 1" );
复制代码

二、然后打开war3ft/war3ft.inl这个文件,找到这些代码,然后修改成这样:

第一部分:
  1. // Format the message
  2. new Float:fSpecTime = SPEC_HOLDTIME;
  3. if ( get_pcvar_num( CVAR_wc3_spec_position ) == 0 )
  4. {
  5.   //set_hudmessage( 255, 255, 255, 0.018, 0.9, 2, 1.5, fSpecTime, 0.02, 5.0, HUD_SPEC_INFO );
  6.          set_hudmessage( 255, 255, 255, 0.75, 0.9, 2, 1.5, fSpecTime, 0.02, 5.0, HUD_SPEC_INFO );
  7.         }
  8. else
  9. {
  10.   //set_hudmessage( 255, 255, 255, 0.65, 0.9, 2, 1.5, fSpecTime, 0.02, 5.0, HUD_SPEC_INFO )
  11.                 set_hudmessage( 255, 255, 255, 0.75, 0.9, 2, 1.5, fSpecTime, 0.02, 5.0, HUD_SPEC_INFO )
  12.         }
复制代码

第二部分:
  1. // Ultimate messages
  2.   else if ( iType == TXT_ULTIMATE )
  3.   {
  4.    //set_hudmessage( 255, 208, 0, -1.0, 0.85, HUDMESSAGE_FX_FADEIN, 6.0, 0.5, 0.1, 0.5, HUD_ULTIMATE );
  5.           set_hudmessage( 255, 208, 0, -1.0, -0.4, HUDMESSAGE_FX_FADEIN, 6.0, 0.5, 0.1, 0.5, HUD_ULTIMATE );
  6.   }
复制代码

第三部分:
  1. if ( SHARED_IsOnTeam( id ) )
  2. {
  3.   // Display the item + race info with a hudmessage
  4.   if ( g_MOD == GAME_CSTRIKE || g_MOD == GAME_CZERO )
  5.   {
  6.    if ( is_user_alive( id ) )
  7.    {
  8.     //Create_StatusText( id, 0, szString );
  9.     set_hudmessage( 255, 255, 255, 0.018, 0.89, 0, 1.5, 600.0, 0.02, 5.0, -1 );
  10.     show_hudmessage( id, szString );
  11.    //}
  12.    //else
  13.    //{
  14.     //set_hudmessage( 160, 160, 160, 0.012, 0.90, HUDMESSAGE_FX_FADEIN, 10.0, 0.0, 2.0, 3.0, HUD_XP );
  15.                                   //show_hudmessage( id, "%s", szXPInfo );
  16.                         }
  17.   }
复制代码

OK,修改完后保存好war3ft.inl,然后重新编译war3ft.sma生成amxx就行了。想偷懒的朋友可以下载我修改好的war3ft.inl文件,下完后覆盖掉原来的文件,最后重新编译插件就行了。
01.jpg
02.jpg
03.jpg

war3ft.inl.zip

14.95 KB, 下载次数: 8, 下载积分: 声望 -2 点

已有 1 人评分被赞许 收起 理由
我是Jacy + 1

总评分: 被赞许 + 1   查看全部评分

使用道具 举报

Rank: 10Rank: 10Rank: 10

帖子
3735
精华
1
声望
5900 点
金币
2148 Mold
被赞许
47 次
注册时间
2009-12-20

优秀版主奖 Modchina灌水王 星界财团 可爱小猫

发表于 2011-8-1 21:28:18 |显示全部楼层
CS1.6的HUD消息限制只有4条,如果HUD消息显示的太多的话可以适当FIX一下
至于你信不信,我反正信了

使用道具 举报

Modchina声望-尊敬

百贴杀阵!

Rank: 7Rank: 7Rank: 7

帖子
379
精华
0
声望
3092 点
金币
371 Mold
被赞许
10 次
注册时间
2007-5-2
发表于 2011-8-1 23:06:08 |显示全部楼层
本帖最后由 Osker Lee 于 2011-8-4 02:33 编辑

StatusText和HUD有差别,并不是完全等同的。魔兽插件信息显示位置的冲突问题,目前我只能想到这个办法,而且还是模仿Zombie Plague MOD 4.3的显示方式。
zm.jpg

使用道具 举报

Rank: 3Rank: 3

帖子
64
精华
0
声望
569 点
金币
108 Mold
被赞许
0 次
注册时间
2010-10-3
发表于 2011-9-18 20:38:53 |显示全部楼层
amxmod_compat\hamsandwich.inc(1):error 010: invalid function or declaration  

这是什么错误  编译的时候出来的。。。  换了hamsandwich.inc 也没好使。。。

使用道具 举报

Modchina声望-尊敬

百贴杀阵!

Rank: 7Rank: 7Rank: 7

帖子
379
精华
0
声望
3092 点
金币
371 Mold
被赞许
10 次
注册时间
2007-5-2
发表于 2011-9-18 20:41:38 |显示全部楼层
建议用AMXMODX1.8.1这个版本,以前的版本没做测试。

使用道具 举报

Rank: 3Rank: 3

帖子
64
精华
0
声望
569 点
金币
108 Mold
被赞许
0 次
注册时间
2010-10-3
发表于 2011-9-18 20:46:13 |显示全部楼层
Osker Lee 发表于 2011-9-18 20:41
建议用AMXMODX1.8.1这个版本,以前的版本没做测试。

  居然人在- - 3Q

对了 这个你汉化的魔兽插件  

安包时候  增加经验的提示   

还有买了灼热手套  后 每10秒给一个O4 的提示 没有汉化- -

找了好久没找到在哪汉化。。。 额是菜鸟。。。

使用道具 举报

Rank: 3Rank: 3

帖子
64
精华
0
声望
569 点
金币
108 Mold
被赞许
0 次
注册时间
2010-10-3
发表于 2011-9-18 21:20:13 |显示全部楼层
未命名.JPG
  改完了以后怎么出现叠加在一起的问题了- -   在下面的是无种族那3个字

未命名1.JPG
这个是获得经验后 原来的经验显示还在上面  

使用道具 举报

Modchina声望-尊敬

百贴杀阵!

Rank: 7Rank: 7Rank: 7

帖子
379
精华
0
声望
3092 点
金币
371 Mold
被赞许
10 次
注册时间
2007-5-2
发表于 2011-9-19 10:50:18 |显示全部楼层
本帖最后由 Osker Lee 于 2011-9-20 01:37 编辑

涉及灼热手套的信息,都在war3FT.txt和items.inl这两个文件里,其实都汉化了。
  1. war3FT.txt:
  2. ITEM_I_14 = 你每隔 %d 秒钟将会自动获得一个手雷。
  3. UNTIL_YOUR_NEXT_GRENADE = %d 秒后你将再次获得一个手雷。

  4. items.inl:
  5. g_iGloveTimer[id] = get_pcvar_num( CVAR_wc3_glove_timer );
  6. WC3_StatusText( id, TXT_TIMER, "%d 秒后你将再次获得一个手雷!", g_iGloveTimer[id] );
  7. ...
  8. if ( g_iGloveTimer[id] > 0 )
  9. {
  10. WC3_StatusText( id, TXT_TIMER, "%d 秒后你将再次获得一个手雷!", g_iGloveTimer[id] );
复制代码
至于信息重叠的问题,目前还在调试中......

使用道具 举报

Rank: 3Rank: 3

帖子
64
精华
0
声望
569 点
金币
108 Mold
被赞许
0 次
注册时间
2010-10-3
发表于 2011-9-19 19:38:23 |显示全部楼层
Osker Lee 发表于 2011-9-19 10:50
涉及灼热手套的信息,都在war3FT.txt和items.inl这两个文件里,其实都汉化了。至于信息重叠的问题,目前还 ...

  纠结啊啊啊啊

使用道具 举报

Modchina声望-尊敬

百贴杀阵!

Rank: 7Rank: 7Rank: 7

帖子
379
精华
0
声望
3092 点
金币
371 Mold
被赞许
10 次
注册时间
2007-5-2
发表于 2011-9-20 01:33:54 |显示全部楼层
本帖最后由 Osker Lee 于 2011-9-20 02:03 编辑

解决信息重叠问题的方法,首先打开war3ft/war3ft.inl找到下面的代码:
  1. if ( is_user_alive( id ) )
  2. {
  3. //Create_StatusText( id, 0, szString );
  4. set_hudmessage( 255, 255, 255, 0.018, 0.89, 0, 1.5, 600.0, 0.02, 5.0, -1 );
  5. show_hudmessage( id, szString );
复制代码
然后修改成下面这样:
  1. if ( is_user_alive( id ) )
  2. {
  3. //Create_StatusText( id, 0, szString );
  4. set_hudmessage( 255, 255, 255, 0.018, 0.89, 0, 1.5, 600.0, 0.02, 5.0, 4 );
  5. show_hudmessage( id, szString );
复制代码

其实就是把-1改成4,更换一下HUD的信息显示频道就行了。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

回顶部