forked from lieren2023/noname-for-dummies
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
8448b00
commit f70e3a8
Showing
1,157 changed files
with
275,457 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,172 @@ | ||
## Part Ⅰ 无名杀懒人包(棘手怀念摧毁) | ||
|
||
### 关于无名杀与懒人包 | ||
|
||
#### 关于无名杀 | ||
|
||
★ 无名杀是一款基于JavaScript、CSS和HTML开发的开源卡牌游戏,完全免费且不做任何商业用途!!! | ||
|
||
中文名:无名杀 | ||
|
||
英文名:noname | ||
|
||
开发者:[水乎](https://github.com/libccy)(于2013年底发布) | ||
|
||
现更新者:[苏婆玛丽奥](https://github.com/Spmario233) | ||
|
||
客户端平台:安卓Android、苹果iOS、鸿蒙HarmonyOS、Windows、Mac、Linux以及支持web内核的浏览器版本等 | ||
|
||
无名杀内置多种游戏模式和武将(及卡牌)包,拥有智能AI且可以实现单机、(弱)联机和局域网联机等多种游戏方式,并能通过扩展功能实现各种DIY设计,包括但不限于武将技能(含台词、配音)和卡牌设计、游戏模式设计、UI界面美化(含皮肤、特效)、功能扩展等 | ||
|
||
主要交流平台——微信公众号:无名杀扩展交流、无名杀;百度贴吧:无名杀吧(现吧主:诗笺);无名杀QQ群和QQ频道(略);无名杀官网(略)等 | ||
|
||
★ 最重要的是:看教程,看教程,看教程!!! | ||
|
||
#### 关于懒人包 | ||
|
||
简化游戏的安装使用步骤 | ||
|
||
版本众多,可自行选择,使用前注意看对应版本发布者的公告(教程),若有问题请自行联系对应版本的发布者 | ||
|
||
- 无名杀=客户端+本体 | ||
- 本体=源码=完整包=离线包+素材 | ||
- 懒人包=[(魔改的)客户端]+(魔改的)本体+[(魔改的)扩展],()或[]的内容为可加可不加 | ||
|
||
----- | ||
|
||
### 项目简介与开源地址 | ||
|
||
#### 项目简介 | ||
|
||
无名杀棘手懒人包(手机端和电脑端都有):旨在解决萌新入门难题,以手杀UI**左手布局**为特征,可一步到位完成安装,**完全免费**且不做任何商业用途 | ||
|
||
定位为新人向: | ||
|
||
- 无繁琐操作,大大降低新人入门门槛 | ||
- 适度美化(内置棘手怀念摧毁魔改的手杀ui、十周年UI和搬运自用扩展) | ||
|
||
#### 开源地址 | ||
|
||
##### 无名杀客户端 | ||
|
||
【客户端】无名杀Windows64位(棘手怀念摧毁)、【客户端】无名杀安卓(棘手怀念摧毁) | ||
|
||
- 开源地址:https://github.com/lieren2023/noname-app-update | ||
|
||
【客户端】无名杀安卓(诗笺) | ||
|
||
- 开源地址:https://github.com/nonameShijian/noname-shijian-android | ||
|
||
##### 无名杀本体 | ||
|
||
无名杀原版 | ||
|
||
- 开源地址:https://github.com/libccy/noname | ||
|
||
##### 无名杀懒人包 | ||
|
||
无名杀懒人包(棘手怀念摧毁) | ||
|
||
- 开源地址:https://github.com/lieren2023/noname-for-dummies | ||
|
||
----- | ||
|
||
### 下载途径与安装教程 | ||
|
||
#### 下载途径 | ||
|
||
下载途径1:项目的Releases(一步到位懒人包) | ||
|
||
- 手机版:noname-for-dummies-Android.apk | ||
- 电脑版:noname-for-dummies-Windows.zip | ||
|
||
下载途径2:真心喜欢本人(棘手怀念摧毁)懒人包的可加QQ群下载(入群答案在群简介里),手机版和电脑版懒人包都有,非诚勿扰 | ||
|
||
- 无名杀懒人包-棘手怀念摧毁:469595619 | ||
- 无名杀懒人包-棘手怀念摧毁交流群:725233902 | ||
|
||
#### 安装教程 | ||
|
||
##### 手机端 | ||
|
||
手机端共存版-安卓诗笺版(noname-for-dummies-Android.apk): | ||
|
||
- 安装后打开APP,授予应用权限、等待解压;解压完成后,在新手向导界面点击“开始游戏”即可 | ||
|
||
##### 电脑端 | ||
|
||
电脑端-Windows64位(noname-for-dummies-Windows.zip): | ||
|
||
- 客户端免安装,直接解压后双击打开无名杀.exe,在新手向导界面点击“开始游戏”即可 | ||
|
||
----- | ||
|
||
### 合作交流与注意事项 | ||
|
||
#### 合作交流 | ||
|
||
本人(棘手怀念摧毁)希望能和一些优秀且具有开源精神的代码编写者保持着积极合作,并在后续更新中整合代码贡献者编写的代码,合作项目包括本人的懒人包(含内部十周年UI、手杀ui、搬运自用扩展)、其他个人扩展(衍生篇等)、新项目:【客户端】无名杀Windows64位(棘手怀念摧毁)、【客户端】无名杀安卓(棘手怀念摧毁)等 | ||
|
||
:white_check_mark: 【客户端】无名杀Windows64位(棘手怀念摧毁) | ||
|
||
:white_large_square: 【客户端】无名杀安卓(棘手怀念摧毁) | ||
|
||
贡献代码: | ||
|
||
- 请前往无名杀原版/懒人包开源地址提Pull requests | ||
- 本懒人包提交Pull requests时请推送到“update-Branch”分支 | ||
|
||
bug反馈: | ||
|
||
- 前提:不修改本体/懒人包的任何代码——请前往无名杀原版/懒人包开源地址提Issues | ||
- 前提:删除所有非官方扩展——无名杀原版本体的bug还可前往无名杀贴吧,找到专门反馈bug的帖子反馈 | ||
|
||
★ 若对本懒人包(以手杀UI左手布局为特征)有建议或意见,可以@棘手怀念摧毁反馈,其他版本懒人包的问题请自行联系发布者 | ||
|
||
#### 注意事项 | ||
|
||
★ 关于更新: | ||
|
||
- 请耐心等待更新 | ||
- 如果实在整不明白,就老老实实按建议卸载(手机版)/删除(电脑版)后重装,这才是懒人包最正确的更新方式 | ||
|
||
★ 本包允许整包搬运,仅供网友学习交流,未经作者授权,请勿作他用,严禁用于任何商业用途!!! | ||
|
||
★ 在使用无名杀及其扩展时应保持谨慎并自行承担风险(例如,非指定下载途径获取的软件可能存在风险) | ||
|
||
----- | ||
|
||
### 致谢 | ||
|
||
感谢所有支持和陪伴我的粉丝们,你们的认可和鼓励是我继续努力的动力 | ||
|
||
感谢无名杀大佬们的贡献以及对我指点和帮助 | ||
>*If I have seen further, it is by standing on the shoulders of giants. -- Newtown* | ||
----- | ||
|
||
### 赞赏 | ||
|
||
<ins>若想赞赏作者,可私聊棘手怀念摧毁获取赞赏码</ins> | ||
|
||
## Part Ⅱ 无名杀原版README | ||
|
||
noname-server.exe的源码见以下仓库: | ||
|
||
https://github.com/nonameShijian/noname-server | ||
|
||
--- | ||
|
||
在线试玩: | ||
|
||
https://spmario233.github.io/noname/index.html (图片素材加载速度较慢,不推荐) | ||
|
||
客户端下载戳这里: | ||
|
||
GitHub: https://github.com/libccy/noname/releases/tag/chromium77-client | ||
|
||
网页端推荐使用Chrome系内核浏览器游玩,不推荐使用低版本Firefox浏览器 | ||
|
||
请尽量保证游玩的Chrome系浏览器或手机Webview的`内核版本大于等于77` | ||
|
||
提交Pull Request时请推送到"PR-Branch"分支! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,138 @@ | ||
'use strict'; | ||
game.import('play',function(lib,game,ui,get,ai,_status){ | ||
return { | ||
name:'boss', | ||
init:function(){ | ||
if(get.mode()=='tafang') return; | ||
var storage=localStorage.getItem('boss_storage_playpackconfig'); | ||
try{ | ||
storage=JSON.parse(storage)||{}; | ||
} | ||
catch(e){ | ||
storage={}; | ||
} | ||
if(get.mode()!='boss'){ | ||
lib.characterPack.mode_extension_boss=storage.boss||{}; | ||
for(var i in lib.characterPack.mode_extension_boss){ | ||
lib.characterPack.mode_extension_boss[i][4].push('mode:boss'); | ||
lib.character[i]=lib.characterPack.mode_extension_boss[i]; | ||
if(typeof lib.character[i][2]!='number'&&(typeof lib.character[i][2]!='string'||lib.character[i][2].indexOf('/')==-1)){ | ||
lib.character[i][2]=Infinity; | ||
} | ||
if(!lib.config.boss_enableai_playpackconfig){ | ||
lib.config.forbidai.push(i); | ||
} | ||
} | ||
} | ||
var list2=storage.versus||{}; | ||
if(get.mode()!='versus'||get.config('versus_mode')!='jiange'){ | ||
lib.characterPack.mode_extension_jiange=list2; | ||
for(var i in list2){ | ||
lib.characterPack.mode_extension_jiange[i]=list2[i]; | ||
lib.characterPack.mode_extension_jiange[i][4].push('mode:versus'); | ||
lib.character[i]=list2[i]; | ||
if(typeof lib.character[i][2]!='number'){ | ||
lib.character[i][2]=Infinity; | ||
} | ||
if(!lib.config.boss_enableai_playpackconfig){ | ||
lib.config.forbidai.push(i); | ||
} | ||
} | ||
lib.characterIntro.boss_liedixuande=lib.characterIntro.liubei; | ||
lib.characterIntro.boss_gongshenyueying=lib.characterIntro.huangyueying; | ||
lib.characterIntro.boss_tianhoukongming=lib.characterIntro.shen_zhugeliang; | ||
lib.characterIntro.boss_yuhuoshiyuan=lib.characterIntro.pangtong; | ||
lib.characterIntro.boss_qiaokuijunyi=lib.characterIntro.zhanghe; | ||
lib.characterIntro.boss_jiarenzidan=lib.characterIntro.caozhen; | ||
lib.characterIntro.boss_duanyuzhongda=lib.characterIntro.simayi; | ||
lib.characterIntro.boss_juechenmiaocai=lib.characterIntro.xiahouyuan; | ||
} | ||
else if(_status.mode!='jiange'){ | ||
for(var i in list2){ | ||
lib.character[i]=list2[i]; | ||
if(!lib.config.boss_enableai_playpackconfig){ | ||
lib.config.forbidai.push(i); | ||
} | ||
} | ||
} | ||
var list=storage.translate||{}; | ||
list.mode_extension_boss_character_config='挑战武将'; | ||
list.mode_extension_jiange_character_config='剑阁武将'; | ||
|
||
for(var i in list){ | ||
lib.translate[i]=lib.translate[i]||list[i]; | ||
} | ||
}, | ||
arenaReady:function(){ | ||
if(get.mode()=='tafang') return; | ||
var storage=localStorage.getItem('boss_storage_playpackconfig'); | ||
try{ | ||
storage=JSON.parse(storage)||{}; | ||
} | ||
catch(e){ | ||
storage={}; | ||
} | ||
if(!storage.translate){ | ||
storage.translate={}; | ||
} | ||
var loadversus=function(){ | ||
if(get.mode()!='versus'){ | ||
game.loadModeAsync('versus',function(mode){ | ||
for(var i in mode.translate){ | ||
lib.translate[i]=lib.translate[i]||mode.translate[i]; | ||
storage.translate[i]=mode.translate[i]; | ||
} | ||
for(var i in mode.skill){ | ||
if(lib.skill[i]) console.log(i); | ||
if(i!='versus_ladder'){ | ||
lib.skill[i]=mode.skill[i]; | ||
} | ||
} | ||
for(var ii in mode.skill){ | ||
if(ii!='versus_ladder'){ | ||
game.finishSkill(ii); | ||
} | ||
} | ||
storage.versus={}; | ||
for(var i in mode.jiangeboss){ | ||
if(mode.jiangeboss[i][4].includes('bossallowed')){ | ||
storage.versus[i]=mode.jiangeboss[i]; | ||
} | ||
} | ||
localStorage.setItem('boss_storage_playpackconfig',JSON.stringify(storage)); | ||
}); | ||
} | ||
else{ | ||
localStorage.setItem('boss_storage_playpackconfig',JSON.stringify(storage)); | ||
} | ||
}; | ||
if(get.mode()!='boss'){ | ||
game.loadModeAsync('boss',function(mode){ | ||
for(var i in mode.translate){ | ||
lib.translate[i]=lib.translate[i]||mode.translate[i]; | ||
storage.translate[i]=mode.translate[i]; | ||
} | ||
for(var i in mode.skill){ | ||
if(lib.skill[i]) console.log(i); | ||
lib.skill[i]=mode.skill[i]; | ||
} | ||
for(var ii in mode.skill){ | ||
if(ii!='versus_ladder'){ | ||
game.finishSkill(ii); | ||
} | ||
} | ||
storage.boss={}; | ||
for(var i in mode.characterPack.mode_boss){ | ||
if(mode.characterPack.mode_boss[i][4].includes('bossallowed')){ | ||
storage.boss[i]=mode.characterPack.mode_boss[i]; | ||
} | ||
} | ||
loadversus(); | ||
}); | ||
} | ||
else{ | ||
loadversus(); | ||
} | ||
}, | ||
}; | ||
}); |
Oops, something went wrong.