首页/网站源码/ [魔改]人生重开模拟器

[魔改]人生重开模拟器

作者:神奇   分类:网站源码   时间:2021-09-12 20:22:41  标签:


前言  不知道为啥,一款开源的文字类web游戏——《人生重开模拟器》突然爆火,好奇玩了一会儿,发现这游戏其实和抽奖差不多,容易激发人的赌徒心理。倍感无聊,决定修改一下,给游戏添加个外挂天赋,毕竟重生总得带点什么逆天功能才合理的嘛。  游戏代码不是很复杂,来来回回几个js文件,如果你要修改面板属性之类的其他东西,也是如此。这里以添加一个“不灭金身”天赋为例。  

游戏官方源码:https://github.com/VickScarlet/lifeRestart

配置数据天赋 talent.json添加:

"1135": { //与id一致 "id": 1135, //根据原有数据情况进行修改,不要和原有数据id相同 "name": "不灭金身",//天赋名 "description": "体质小于1时体质+10且死亡后会复活",//天赋说明 "condition": "STR<1",//触发天赋的条件 "grade": 3,//稀有度,越高越稀有 "effect": { "STR": 10//体质+10 }} 剧情 event.json修改:"10000": { "id": 10000, "event": "你死了。", "effect": { "LIF": -1 }, "NoRandom": 1}, 如下:"10000": { "id": 10000, "event": "你死了。", "effect": { "LIF": -1 }, "NoRandom": 1, "branch": [ "TLT?[1135]:40062" // TLT?[不灭金身天赋id]:对应的剧情id ]}, 添加:"40062": { //与id一致 "id": 40062,//根据原有数据情况进行修改,不要和原有数据id相同 "event": "你是神选之子,拥有不灭金身,原地复活,又开始了新的人生。",//剧情说明 "effect": { "LIF": 1//生命+1 }, "branch": [ "AGE>499:40050" //目前的游戏设定最高500岁(不修仙99岁),大于499时必须死,看情况修改 ], "NoRandom": 1 //非随机事件} 修改代码life.js添加方法:talentCheat(){ return this.#talent.talentCheat();} talent.js添加方法:talentCheat(){ return this.#talents;} app.js添加一个按钮:<button id="cheat" class="sponsor" style="margin:30px">神选之子</button> 如下:const talentPage = $(` <div id="main"> <div class="head" style="font-size: 1.6rem">天赋抽卡</div> <button id="random" class="mainbtn" style="position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);"">10连抽!</button> <ul id="talents" class="selectlist"></ul> <button id="next" class="mainbtn">请选择3个</button> <button id="cheat" class="sponsor" style="margin:30px">神选之子</button> </div>`); 跳过随机天赋列表:if(talent.id==1135){ //配置的天赋id return true; //如果天赋列表中随机到【不灭金身】天赋则跳过本次循环} 如下: talentPage .find('#random') .click(()=>{ talentPage.find('#random').hide(); const ul = talentPage.find('#talents'); this.#life.talentRandom() .forEach(talent=>{ if(talent.id==1135){ //配置的不灭金身天赋id return true; //如果天赋列表中随机到【不灭金身】天赋则跳过本次循环 } const li = createTalent(talent); ul.append(li); //其余代码略…… 修改方法:const createTalent = ({ grade, name, description }) => { return $(`<li class="grade${grade}b">${name}(${description})</li>`)}; 如下:const createTalent = ({ id, grade, name, description }) => { return $(`<li id="tId_${id}" class="grade${grade}b">${name}(${description})</li>`)}; 添加方法:talentPage .find('#cheat') .click(()=>{ talentPage.find('#cheat').hide(); const talent = this.#life.talentCheat()[1135];//配置的不灭金身天赋id const talent2 = this.#life.talentCheat()[1048]; const ul = talentPage.find('#talents'); ul.children()[0].remove(); ul.find('#tId_1048').remove(); const li = createTalent(talent); ul.append(li); li.click(()=>{ if(li.hasClass('selected')) { li.removeClass('selected') this.#talentSelected.delete(talent); this.#talentSelected.delete(talent2); if(this.#talentSelected.size<3) { talentPage.find('#next').text('请选择3个') } } else { if(this.#talentSelected.size==3) { this.hint('只能选3个天赋'); return; } this.hint(`选择【不灭金身】的同时会附带【神秘的小盒子】,占用两个天赋位`); const exclusive = this.#life.exclusive( Array.from(this.#talentSelected).map(({id})=>id), talent.id ); if(exclusive != null) { for(const { name, id } of this.#talentSelected) { if(id == exclusive) { this.hint(`与已选择的天赋【${name}】冲突`); return; } } return; } li.addClass('selected'); this.#talentSelected.add(talent); this.#talentSelected.add(talent2); if(this.#talentSelected.size==3) { talentPage.find('#next').text('开始新人生') } } }); }) 选择天赋时显示按钮:talentPage.find('#cheat').show(); 如下://以上代码略…… if (exclusive != null) { for (const { name, id } of this.#talentSelected) { if (id == exclusive) { this.hint(`与已选择的天赋【${name}】冲突`); return; } } return; } li.addClass('selected'); this.#talentSelected.add(talent); if (this.#talentSelected.size == 3) { talentPage.find('#next').text('开始新人生') } } });});talentPage.find('#next').show();talentPage.find('#cheat').show(); 选择天赋前隐藏按钮:talentPage.find('#cheat').hide(); 如下:talent: { page: talentPage, talentList: talentPage.find('#talents'), btnRandom: talentPage.find('#random'), btnNext: talentPage.find('#next'), pressEnter: () => { const talentList = this.#pages.talent.talentList; const btnRandom = this.#pages.talent.btnRandom; const btnNext = this.#pages.talent.btnNext; if (talentList.children().length) { btnNext.click(); } else { btnRandom.click(); } }, clear: () => { this.#currentPage = 'talent'; talentPage.find('ul.selectlist').empty(); talentPage.find('#random').show(); talentPage.find('#cheat').hide(); this.#totalMax = 20; },}, 

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!

评论:

发表评论:

code