Project1
标题:
黑科技记忆碎片
[打印本页]
作者:
if216
时间:
2020-6-27 12:51
标题:
黑科技记忆碎片
本帖最后由 if216 于 2021-8-4 14:15 编辑
以下是一些黑科技,是记录,不是教学,不解释。
13.死了变灰(sprite)
this.setColorTone([0, 0, 0, 255]);
复制代码
12.画图正解
let bitmap = ImageManager.loadPicture(pname);
this.contents.blt(bitmap, 0, 0, 400, 410, 0, 0, 400, 410);
复制代码
11. 反混淆
jsbeautifier.org
10.MZ下怎么在战斗中打开阵型窗口
SceneManager.push(class Scene_Formation extends Scene_Menu {
start() {
super.start();
this.commandFormation();
}
createCommandWindow() { /* No command window */ }
statusWindowRect() {
const rect = super.statusWindowRect();
return new Rectangle(0, rect.y, Graphics.boxWidth, rect.height);
}
onFormationCancel() { SceneManager.pop(); }
});
复制代码
9.怎么匹配出note栏记录的id
const tid = txt.match(/<troops:(.*)>/i)[1];
复制代码
8.怎么获得event的note栏
let event = $gameMap.event(eid);
let txt = event ? event.event().note : "";
复制代码
7.一个有意思的问题,已知actor,怎么他是当前party中的第几人呢?好像没有这种倒推的函数。所以写循环找
var actorid = $gameVariables.value(13); //actor已知,初始化按自己需求写
var partyid = 0;
for (const actor of $gameParty.members())
{
partyid++;
if(actor._actorId==actorid)
{
break;
}
}
//partyid 就是在party中的索引,顺次了
复制代码
6.得到当前的角色
$gameParty.menuActor().actorID()
$gameParty._menuActorId
复制代码
5.战斗场景如果新加窗口,会变成无模式窗口,和actorCommandWindow操作互相影响,解决办法是找到下列函数,重写将这个窗口是否激活加进去
Scene_Battle.prototype.isAnyInputWindowActive = function() {
return (
this._partyCommandWindow.active ||
this._actorCommandWindow.active ||
this._skillWindow.active ||
this._itemWindow.active ||
this._actorWindow.active ||
this._enemyWindow.active ||
(this._confirmWindow && this._confirmWindow.active) //i do
);
};
复制代码
4.关闭 始终奔跑 和 记住指令
Window_Options.prototype.makeCommandList = function() {
//this.addGeneralOptions();
this.addVolumeOptions();
};
复制代码
3.简化namebox,\n<1>就会显示角色1的名字,\n<莎士比亚>则会显示 莎士比亚
Window_NameBox.prototype.refresh = function(text, position) {
this.show();
var n = parseInt(text);
var actor = n >= 1 ? $gameActors.actor(n) : null;
if(actor)
text = actor._name;
else
;
this._text = Yanfly.Param.MSGNameBoxText + text;
console.log(this._text);
this._position = position;
this.width = this.windowWidth();
this.createContents();
this.contents.clear();
this.resetFontSettings();
this.changeTextColor(this.textColor(Yanfly.Param.MSGNameBoxColor));
var padding = eval(Yanfly.Param.MSGNameBoxPadding) / 2;
this.drawTextEx(this._text, padding, 0, this.contents.width);
this._parentWindow.adjustWindowSettings();
this._parentWindow.updatePlacement();
this.adjustPositionX();
this.adjustPositionY();
this.open();
this.activate();
this._closeCounter = 4;
return '';
};
复制代码
2.读取skill技能备注中所有非尖括号的内容
var note = $dataSkills[skill.id].note;
note = note.replace(/\<[^\>]*\>/g,"");;
note = note.replace(/(^\s*)|(\s*$)/g,'');
复制代码
1.实时屏蔽cancel功能
因为某种功能用到的部分代码
Window_SrpgSkillList.prototype.processCancel = function() {
if(!$gameTemp._isActedButNoMove)
{
SoundManager.playCancel();
this.updateInputData();
this.deactivate();
this.callCancelHandler();
}
else
{
;
}
};
复制代码
其中Window_SrpgSkillList是某个继承window_selectable 的子类
$gameTemp._isActedButNoMove是某个全局变量,用以控制 返回功能的打开和关闭
那么这样你就可以在不同情况下允许或者禁止使用 cancel 返回功能
作者:
darrenchoi17
时间:
2020-7-5 20:51
感谢,很好用
作者:
御曹司
时间:
2021-6-28 23:17
大佬好像一年没来论坛了?最近还结案单吗
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1