From 5f0a78bcd8fe249ee2a43985c1b9ae2a5e13579e Mon Sep 17 00:00:00 2001
From: shijian <2954700422@qq.com>
Date: Sun, 17 Sep 2023 19:49:52 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E5=9C=A8=E5=88=9D=E5=A7=8B=E5=8C=96(?=
=?UTF-8?q?=E6=96=B0=E6=89=8B=E6=95=99=E7=A8=8B)=E4=B9=8B=E5=89=8D?=
=?UTF-8?q?=E7=9A=84=E8=8F=9C=E5=8D=95=E4=B8=8D=E8=BF=9B=E8=A1=8C=E6=87=92?=
=?UTF-8?q?=E5=8A=A0=E8=BD=BD=EF=BC=8C=E5=8F=A6=E6=B7=BB=E5=8A=A0=E5=AF=BC?=
=?UTF-8?q?=E5=87=BA=E6=89=A9=E5=B1=95=E7=9A=84=E7=A7=81=E8=B4=A7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
game/game.js | 49 ++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 44 insertions(+), 5 deletions(-)
diff --git a/game/game.js b/game/game.js
index ca0b6e5ae..756d37a1e 100644
--- a/game/game.js
+++ b/game/game.js
@@ -41081,6 +41081,7 @@
updateConnectDisplayMap();
}
};
+ if(!lib.config.new_tutorial) node._initLink();
return node;
};
var modeorder=lib.config.modeorder||[];
@@ -42163,6 +42164,7 @@
createDash('字','字体文件',dash3);
createDash('全','全部文件',dash4);
};
+ if(!lib.config.new_tutorial) node._initLink();
}());
createModeConfig('others',start.firstChild);
@@ -42537,6 +42539,7 @@
}
}
};
+ if(!lib.config.new_tutorial) node._initLink();
return node;
};
if(lib.config.show_favourite_menu&&!connectMenu&&Array.isArray(lib.config.favouriteCharacter)){
@@ -43005,6 +43008,7 @@
ui.create.div('.menuplaceholder',page);
}
};
+ if(!lib.config.new_tutorial) node._initLink();
return node;
};
if(!connectMenu&&lib.config.show_ban_menu){
@@ -43651,9 +43655,36 @@
buttonExport.style.marginRight='2px';
buttonExport.style.display='none';
buttonExport.onclick=function(){
- processExtension(true);
- if(lib.config.show_extensionshare){
- shareExtLine.style.display='';
+ function oldExport(){
+ processExtension(true);
+ if(lib.config.show_extensionshare){
+ shareExtLine.style.display='';
+ }
+ }
+ if(typeof game.readFile=='function'&&
+ window.noname_shijianInterfaces&&
+ typeof window.noname_shijianInterfaces.shareExtensionWithPassWordAsync=='function'&&
+ confirm('是否使用诗笺版自带的导出功能来导出扩展?')){
+ const extName=inputExtName.value;
+ if (!extName) {
+ alert('未检测到扩展名,将使用无名杀自带的导出功能');
+ oldExport();
+ return;
+ }
+ game.readFile(`extension/${extName}/extension.js`, () => {
+ const pwd=prompt("请输入压缩包密码,不设密码直接点确定");
+ let result;
+ if(pwd===''||pwd=== null){
+ window.noname_shijianInterfaces.shareExtensionAsync(extName);
+ }else{
+ window.noname_shijianInterfaces.shareExtensionWithPassWordAsync(extName, pwd);
+ }
+ },()=>{
+ alert('未检测到扩展文件,将使用无名杀自带的导出功能');
+ oldExport();
+ });
+ }else{
+ oldExport();
}
};
inputExtLine.appendChild(buttonExport);
@@ -43683,8 +43714,11 @@
shareExtLine.style.textAlign='left';
shareExtLine.style.marginBottom='5px';
shareExtLine.innerHTML='已导出扩展。分享扩展×';
- shareExtLine.querySelectorAll('span')[0].onclick=function(){
- game.open('https://tieba.baidu.com/p/5439380222');
+ shareExtLine.querySelectorAll('span')[0].onclick = function () {
+ //这个链接404了
+ //game.open('https://tieba.baidu.com/p/5439380222');
+ //无名杀贴吧首页
+ game.open('https://tieba.baidu.com/f?ie=utf-8&kw=%E6%97%A0%E5%90%8D%E6%9D%80');
};
shareExtLine.querySelectorAll('span')[1].onclick=function(){
shareExtLine.style.display='none';
@@ -45452,6 +45486,7 @@
createDash('技','编辑技能',dash3);
createDash('码','编辑代码',dash4);
};
+ if(!lib.config.new_tutorial) node._initLink();
}());
(function(){
var page=ui.create.div('');
@@ -45762,6 +45797,7 @@
};
if(_thisUpdate) node.update();
};
+ if(!lib.config.new_tutorial) node._initLink();
}());
var active=start.firstChild.querySelector('.active');
if(!active){
@@ -46971,6 +47007,7 @@
pre.innerHTML='';
});
};
+ if(!lib.config.new_tutorial) node._initLink();
}());
(function(){
var page=ui.create.div('');
@@ -47006,6 +47043,7 @@
}
}
};
+ if(!lib.config.new_tutorial) node._initLink();
}());
(function(){
if(!window.indexedDB||window.nodb) return;
@@ -47194,6 +47232,7 @@
}
};
};
+ if(!lib.config.new_tutorial) node._initLink();
}());
From 485c6222e0a6499edaaab9516ca8201004ba74b1 Mon Sep 17 00:00:00 2001
From: Rintim
Date: Mon, 18 Sep 2023 00:42:46 +0800
Subject: [PATCH 2/3] fix async in identity.
---
game/game.js | 2 +-
mode/identity.js | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/game/game.js b/game/game.js
index ca0b6e5ae..7485ed834 100644
--- a/game/game.js
+++ b/game/game.js
@@ -18763,7 +18763,7 @@
var reg=new RegExp("^ext:(.+)?/");
var match=tag.match(/^die:(.+)$/);
if(match){
- let path=match[1];
+ var path=match[1];
if(reg.test(path)) path=path.replace(reg,(_o,p)=>`../extension/${p}/`);
game.playAudio(path);
}
diff --git a/mode/identity.js b/mode/identity.js
index 50eb32c45..8ec7f6943 100644
--- a/mode/identity.js
+++ b/mode/identity.js
@@ -134,7 +134,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
step4();
}
};
- var step4=lib.gnc.async(function*(){
+ var step4=lib.genAsync(function*(){
clear();
ui.window.classList.add('noclick_important');
ui.click.configMenu();
From cdd14031257f21529565faf9006e3d23cbb3d0b2 Mon Sep 17 00:00:00 2001
From: shijian <2954700422@qq.com>
Date: Mon, 18 Sep 2023 09:02:11 +0800
Subject: [PATCH 3/3] lib.element.player.when
---
game/game.js | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 92 insertions(+)
diff --git a/game/game.js b/game/game.js
index 756d37a1e..1329b1f73 100644
--- a/game/game.js
+++ b/game/game.js
@@ -19167,6 +19167,98 @@
},
},
player:{
+ /**
+ * version 1.2
+ *
+ * 链式创建一次性技能的api。
+ *
+ * 使用者只需要关注技能的效果,而不是技能的本身。
+ */
+ when:function(){
+ var triggerNames=Array.from(arguments);
+ if(triggerNames.length==0) throw 'player.when的参数数量应大于0';
+ var skillName='player_when_'+Math.random().toString(36).slice(-8);
+ while(lib.skill[skillName]!=null){
+ skillName='player_when_'+Math.random().toString(36).slice(-8);
+ }
+ var skill={
+ forced:true,
+ charlotte:true,
+ popup:false,
+ filterFuns:[],
+ contentFuns:[],
+ get filter(){
+ return function(event, player, name){
+ if(name==`${skillName}After`){
+ skill.popup=false;
+ return true;
+ }
+ return skill.filterFuns.every(fun=>Boolean(fun(event,player,name)));
+ }
+ },
+ };
+ skill.trigger={player:triggerNames};
+ skill.filterFuns.push((event, player, name) => {
+ return !name||(triggerNames.includes(name)&&event.player==player);
+ });
+ Object.defineProperty(lib.skill,skillName,{
+ configurable:true,
+ enumerable:false,
+ writable:true,
+ value:skill
+ });
+ this.addSkill(skillName);
+ return{
+ filter(fun){
+ if(!lib.skill[skillName]) throw `This skill has been destroyed`;
+ skill.filterFuns.push(fun);
+ return this;
+ },
+ removeFilter(fun){
+ if(!lib.skill[skillName]) throw `This skill has been destroyed`;
+ skill.filterFuns.remove(fun);
+ return this;
+ },
+ then(fun){
+ if(!lib.skill[skillName]) throw `This skill has been destroyed`;
+ skill.contentFuns.push(fun);
+ var str=`
+ function content(){
+ if(event.triggername=='${skillName}After'){
+ player.removeSkill('${skillName}');
+ delete lib.skill['${skillName}'];
+ delete lib.translate['${skillName}']
+ console.log('remove ${skillName}');
+ return event.finish();
+ }
+ `;
+ for(var i=0;iv[v.length - 1]!= ';'?(v+';').trim():v.trim()).join('\n');
+ str+=`'step ${i}'\n\t${str2}\n\t`;
+ }
+ var result=eval(str+`\n};content;`);
+ skill.content=result;
+ return this;
+ },
+ popup(str){
+ if(!lib.skill[skillName]) throw `This skill has been destroyed`;
+ if(typeof str=='string') skill.popup=str;
+ return this;
+ },
+ translation(translation){
+ if(!lib.skill[skillName]) throw `This skill has been destroyed`;
+ if(typeof translation=='string') lib.translate[skillName]=translation;
+ return this;
+ },
+ assgin(obj) {
+ if(!lib.skill[skillName]) throw `This skill has been destroyed`;
+ if(typeof obj=='object'&&obj!==null) Object.assign(skill,obj);
+ return this;
+ }
+ };
+ },
//新函数
//让一名角色明置一些手牌
addShownCards:function(){