赞 | 97 |
VIP | 0 |
好人卡 | 1 |
积分 | 76 |
经验 | 10334 |
最后登录 | 2024-6-22 |
在线时间 | 1227 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 7588
- 在线时间
- 1227 小时
- 注册时间
- 2008-12-14
- 帖子
- 555
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 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 返回功能 |
|