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(){