赞 | 1 |
VIP | 0 |
好人卡 | 2 |
积分 | 1 |
经验 | 18571 |
最后登录 | 2019-4-20 |
在线时间 | 376 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 112
- 在线时间
- 376 小时
- 注册时间
- 2015-1-26
- 帖子
- 203
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
插件的基本思路是用全局变量记录当前语言,用编辑器中的字符串做索引,在DrawText函数里根据当前语言从json里调用对应的显示用字符串。
菜单显示一切正常,但剧情对话完全不能正常显示。
排查之后发现:剧情对话里每一个字符被单独视为一个字符串,例如“TEST”不会被视为一条索引,而是被分别视为“T” “E” “S” “T”4段索引。
本人JS水平属于说二把刀都抬举的那种,请问有什么方法可以让对话里的全部内容被视为一个完整的字符串?
脚本(因为怕冲突,目前是直接在YEP Core Engine上改的。等功能完善了再提取出来做独立插件)
[pre lang="javascript" file="字符串范例"]
Yanfly.Core.Bitmap_drawText = Bitmap.prototype.drawText;
Bitmap.prototype.drawText = function(text, x, y, mW, l, align) {
x = Math.floor(x);
y = Math.floor(y);
mW = Math.floor(mW);
l = Math.floor(l);
string = text;
language = $gameVariables.value(1);
if ( language == 1){
Table = StringTable_CNS;
}
else if (language == 2){
Table = StringTable_CNT;
}
else if (language == 3){
Table = StringTable_JP;
}
else if (language == 4){
Table = StringTable_FR;
}
else {
Table = StringTable_EN;
}
if (Table[string] != null){
text = Table[string];
}
Yanfly.Core.Bitmap_drawText.call(this, text, x, y, mW, l, align);
};[/pre]
[pre lang="javascript" file="字符串脚本"]
StringTable_EN = {
"New Game" : "New Game",
"Continue" : "Continue",
"Options" : "Options",
"Status" : "Status",
"Item" : "Item",
"Skill" : "Skill",
"Equip" : "Equip",
"Save" : "Save",
"Formation" : "Formation",
"Game End" : "Game End",
"TEST" : "English",
"T" : "Error",
};
StringTable_CNS = {
"New Game" : "新游戏",
"Continue" : "继续游戏",
"Options" : "系统",
"Status" : "状态",
"Item" : "道具",
"Skill" : "技能",
"Equip" : "装备",
"Save" : "存档",
"Formation" : "队形",
"Game End" : "结束",
"TEST" : "简体中文",
"T" : "错误",
};
StringTable_JP = {
"New Game" : "はじめから",
"Continue" : "つづきから",
"Options" : "オプション",
"Status" : "ステータス",
"Item" : "アイテム",
"Skill" : "スキル",
"Equip" : "装備",
"Save" : "セーフ",
"Formation" : "編成",
"Game End" : "終了",
"TEST" : "日本語",
"T" : "エラー",
};
[/pre]
|
-
1.png
(99.22 KB, 下载次数: 22)
菜单一切正常
-
2.png
(61.87 KB, 下载次数: 18)
对话无法正常显示
-
3.png
(20.1 KB, 下载次数: 14)
测试用事件,字符串为“TEST”
|