大馒头 发表于 2006-12-18 16:15:28

严重问题: show_hudmessage使用中文%L服就会挂!

我使用了语言文件, show_hudmessage中如果使用英文%L就正常,没有任何问题.而如果使用中文%L,一显示字幕服就马上挂掉,debug日志也没有任何记录,这是为什么?

怎么解决?

pop781 发表于 2006-12-18 22:51:23

回复: 严重问题: show_hudmessage使用中文%L服就会挂!

看看你的中文字串是否过长。。

Rulzy 发表于 2006-12-19 01:45:54

回复: 严重问题: show_hudmessage使用中文%L服就会挂!

把你那个代码发上来看看问题出现在哪了。如果代码比较长,请用附件形式,要不很难看懂的。

大馒头 发表于 2006-12-19 12:05:21

回复: 严重问题: show_hudmessage使用中文%L服就会挂!


public showwinner(id,level,cid){
                if ( !cmd_access(id,level,cid,2) )
                return PLUGIN_HANDLED
                cplayer = ""
                remove_task(8138469)
                new arg1
                read_argv(1,arg1,31)
          new player = cmd_target(id,arg1,2)
                if (!player) return PLUGIN_HANDLED
          get_user_name(player,cplayer,31)
                set_hudmessage( 255, 255, 255, -1.0, 0.42, 0, 0.0, 20.0, 0.0, 0.5, 8 )
                format( hud_text, 255, "%L %s",LANG_SERVER,"HUD_WINNER",cplayer)
          show_hudmessage( 0, hud_text )
          return PLUGIN_HANDLED
        }


语言文件我只要用中文,无论长短就会挂掉。

我服务器默认是中文语言,语言文件中我也只写了中文语言。

wtswangba 发表于 2006-12-19 16:55:51

回复: 严重问题: show_hudmessage使用中文%L服就会挂!

是不是格式不对啊......

Rulzy 发表于 2006-12-19 18:14:19

回复: 严重问题: show_hudmessage使用中文%L服就会挂!


public showwinner(id,level,cid){
      if ( !cmd_access(id,level,cid,2) )
                return PLUGIN_HANDLED
      new cplayer
      remove_task(8138469)
      new arg1
      read_argv(1,arg1,31)
      new player = cmd_target(id,arg1,2)
      if (!player) return PLUGIN_HANDLED   
      get_user_name(player,cplayer,31)
      set_hudmessage( 255, 255, 255, -1.0, 0.42, 0, 0.0, 20.0, 0.0, 0.5, 4 )
      new hud_text
      format( hud_text, 255, "%L %s",LANG_SERVER,"HUD_WINNER",cplayer)
      show_hudmessage( 0, hud_text )
      return PLUGIN_HANDLED
}


一、不知道你相关变量有没有定义,在这里我都加上了。
二、set_hudmessage 最后一个参数只能是 -1,1,2,3,4 中的一个。
三、在LANG文件里,HUD_WINNER 中不能再有 %s 之类的内容。
页: [1]
查看完整版本: 严重问题: show_hudmessage使用中文%L服就会挂!