|
发表于 2006-12-13 17:28:25
|
显示全部楼层
来自 中国–陕西–西安
回复: 有关彩色信息的一个问题
其实 client_color 不用这么复杂,像下面这样就行了:
[php]public client_color(playerid, colorid, msg[])
{
message_begin(playerid?MSG_ONE:MSG_ALL,get_user_msgid("SayText"),_,playerid)
write_byte(colorid)
write_string(msg)
message_end()
}[/php]
另外,如果想在LANG文件里使用彩色信息,可以使用如下方式,例如:
[php]client_connect(id){
new msg[512], username[32]
get_user_name(id, username, 31)
new izStats[8], izBody[8]
new iRankPos = get_user_stats( id, izStats, izBody )
new iRankMax = get_statsnum()
format(msg, 511, "%L", LANG_SERVER, "ENTER_MSG", username, iRankPos, iRankMax)
client_color(0, id, msg)
}[/php]
而LANG文件里使用如下格式:
ENTER_MSG = [AMXX]玩家%s进入服务器,排名第%d名[共%d名]
当有玩家进入时,会出现如下的聊天信息:
[AMXX]玩家Player进入服务器,排名第32名[共254名]
其中,""对应"^x04",""对应"^x01",""对应"^x03"。
搞清楚它们的位置也不难,想象把一个方框平分为4部分,左上角()是^x01,右上角()是^x02(这个不使用),左下角()是^x03,右下角()是^x04。
注意,使用 client_color,msg的第一个字节必须是 ^x01、^x03、^x04中的一个,而不能为其它字符,否则将不能正确显示彩色。
如下面的代码将不能正确的显示为彩色:
[php]new username, msg[512]
get_user_name(id, username, 31)
format(msg, 511, "欢迎^x04%s^x01进入本服务器", username)
client_color(0, id, msg)[/php]
应该改为
[php]new username, msg[512]
get_user_name(id, username, 31)
format(msg, 511, "^x01欢迎^x04%s^x01进入本服务器", username)
client_color(0, id, msg)[/php]
颜色控制码说明:
^x01后为默认的黄色
^x03后对应队伍颜色,即colorid为土匪时显示为红色,colorid为警察时显示为蓝色,colorid为观察员时显示为灰色
^x04后为绿色 |
|