- 注册时间
- 2014-11-3
- 最后登录
- 2025-4-30
管理员
  
- 积分
- 1110
|
发表于 2019-8-18 13:53:57
|
显示全部楼层
我查了一下nameframe的代码,按说是不会有这个问题,
但是我发现现在的版本[w]里面带有[clname]会在每次对话结束的[w]的时候就自动把姓名框清掉……
不过因为不知道版本改了多少所以我把姓名栏又处理了一下,然后提供一下现在用的代码吧。
- ;-------------------------------------------------------------------------------------------
- ;★独立姓名框
- ;-------------------------------------------------------------------------------------------
- [iscript]
- function drawNameFrame(id,page,color)
- {
- var dic=f.config_dia.nameframe;
- var layer;
- if (page!="back") layer=kag.fore.layers[9];
- else layer=kag.back.layers[9];
- //使用文字层默认字体
- if (dic.face!=void) layer.font.face=dic.face;
- else layer.font.face=kag.fore.messages[0].userFace;
- layer.font.height=dic.textsize;//设定字体大小
- layer.font.italic=dic.italic;//是否斜体
- layer.font.bold=dic.bold;//是否粗体
- var x;
- var y;
- //设置姓名
- var str=id;
- if (id=='主角') str=f.姓+f.名;
- //计算文字长宽
- var width=layer.font.getTextWidth(str);
- var height=layer.font.getTextHeight(str);
- //描绘文字
- if (dic.anchorc==true)
- {
- x=(layer.width-width)/2;
- y=(layer.height-height)/2;
- }
- else
- {
- x=(int)dic.textx;//设定按钮上文字位置的地方
- y=(int)dic.texty;
- }
-
- var psetting=%[];
- psetting.layer="9";
- if (page!=void) psetting.page=page;
-
- //设定其他参数
- psetting.text=str;
- psetting.x=x;
- psetting.y=y;
- psetting.size=dic.textsize;
- //颜色为空,传入历史记录颜色
- if (color==void) color=history_color("【"+str+"】");
- //
- psetting.color=color;
- //字体样式
- psetting.italic=dic.italic;//是否斜体
- psetting.bold=dic.bold;//是否粗体
- psetting.edge=dic.edge;
- psetting.edgecolor=dic.edgecolor;
- psetting.shadow=dic.shadow;
- psetting.shadowcolor=dic.shadowcolor;
- //字体
- if (dic.face!=void) psetting.face=dic.face;
- else psetting.face=kag.fore.messages[0].userFace;
- //ptext进行描绘
- kag.tagHandlers.ptext(psetting);
- }
- [endscript]
- ;显示姓名栏
- [macro name=nameframe]
- ;描绘图片框
- [image layer=9 storage=&f.config_dia.nameframe.frame left=&f.config_dia.nameframe.left top=&f.config_dia.nameframe.top visible="true" page=%page]
- ;描绘文字
- [eval exp="drawNameFrame(mp.id,mp.page,mp.color)"]
- [if exp="mp.id=='主角'"]
- [htext text=&("【"+f.姓+f.名+"】")]
- [else]
- [htext text=&("【"+mp.id+"】")]
- [endif]
- [hr]
- [endmacro]
- ;消除姓名栏
- [macro name=clname]
- [freeimage layer=9 page=%page|fore]
- [endmacro]
复制代码
|
|