(此文原在新浪博客上发的,但是新浪博客的插入代码实在是不友好,忍无可忍的情况下,又回到csdn上重新写一遍。)

一直想写一系列的系列教程,这么多年挖了很多大坑一直没有填(坑都在小本本上记着,欠下的债迟早都要还),现在准备开始慢慢填坑了。三国杀是其中一个坑,刚毕业那会儿,在csdn上写过一个太阳神开源三国杀的编译教程,用的是QT C++的框架,后来也自己写过几个武将、装备、锦囊啥的,再后来太阳神三国杀论坛关闭了,那会儿下载的好多半成品的开源工程,包括水浒杀、英雄杀、闯关杀等等,现在电脑里依然保存着这些代码,大多数还都能编译通过。后来太阳神官方版的源代码不再更新了,三国杀online更新了一个又一个版本,这两个版本之间也没有了同步,直到最近在水浒杀的qq群里,发现了无名杀。

无名杀是基于html+js+css,核心代码使用js实现的,目前仍与三国杀online保持同步更新,而且还出了很多有趣的扩展模式,比如塔防、战旗、炉石、斗地主等等,更为重要的是,QQ群里保持高度的活跃。于是,准备先拿这个源代码进行练手,开始我三国杀开源系列的教程编写。

无名杀的源代码下载地址:https://github.com/libccy/noname.git

无名杀扩展包的源代码下载地址:https://github.com/libccy/noname-extension.git

在开始研究主体源代码前,先以写扩展包为基础,农村包围城市,慢慢一点一点的剥洋葱。QQ群里有数以百计扩展包,我选取英雄杀为标的进行制作,原因很简单,英雄杀有官方的参照,更重要的是有资源,省却了美工、配音等一系列的工作。但初步来开,无名杀的扩展能力仍然没有太阳神那样灵活。anyway,不管白猫黑猫,能抓住老鼠就是好猫。

无名杀比太阳神还有一个地方就是,没有现成的文档可参阅(太阳神三国杀光api都有好多人整理,至于如如何写武将、技能、装备、锦囊等卡牌的教程那就更多了),只能靠查看之前的代码慢慢摸索了。

PS:这些教程是我自学的一个记录,所以很多不理解的地方,我会先把坑留着(又是坑!!!)回头会再补。

---------忧伤的分割线(以上是废话)---------

无名杀的扩展包,有以下文件组成:

       1、代码文件:只需要一个extension.js即可2、资源文件:图片、配音等,放在同级目录之下即可。

首先,看下extension.js文件的构成。

1、整个文件有一个函数构成,这个函数有两个参数,一个字符串和一个函数

game.import()game.import("extension",function(lib,game,ui,get,ai,_status){})

2、字符串“extension”是固定不变的,重点看这个function函数,如下:

输入参数共6个:lib,game,ui,get,ai,_status返回值长度为8的数组:name="xx",content:function (config,pack){},precontent:function (){},help:{},config:{},package:{},editable:false,files:{}

整个形式如下:

game.import("extension",function(lib,game,ui,get,ai,_status){return {name:"",content:function (config,pack){},precontent:function (){},help:{},config:{},package:{},editable:false,files:{}}
})

3、现在开始逐个讲解返回数组的每个参数之name和content:function

name='xhero', //扩展包的名字,我起名x英雄杀
//content:function (config,pack){},可留空,可以根据不同的配置文件加载不同内容,可以自定义翻译、音乐播放、图片特效等等内容,其他作用暂时还没吃透,等后面用得到的时候再讲。本扩展包,当前版本暂时只用到翻译功能(君、臣、民、魂),内容如下:
content:function (config,pack){lib.group.push('min');lib.translate.min='<span style="color:#00EC00">民</span>';lib.translate.minColor='wood';lib.group.push('chen');lib.translate.chen='<span style="color:#0072E3">臣</span>';lib.translate.chenColor='water';lib.group.push('jun');lib.translate.jun='<span style="color:#FF8000">君</span>';lib.translate.junColor='gold';lib.group.push('hun');lib.translate.hun='<span style="color:#FF0000">魂</span>';lib.translate.hunColor='fire';
},

(明天要去体检,今天就先写到这儿吧。)

三国杀开源系列之一104@365相关推荐

  1. 三国杀开源系列之三106@365

    昨天已经成功的新建了第一个扩展英雄和第一个技能,但是看了下代码,虽然大部分都能猜的出来是什么意思,但是没有api实在是让人很痛苦.今天先把第一个技能解读写出来,然后下一步不准备再写新技能了,先理一下整 ...

  2. 三国杀开源系列之四-工程目录分析107@365

    整个工程的根目录如下: 文件(夹) 说明 .eslintrc.json ESLint(js代码错误检测)的配置文件 .gitignore git版本管理工具生成的文件(请无视) audio 各种配音文 ...

  3. 三国杀开源系列之二105@365

    (此文原在新浪博客上发的,但是新浪博客的插入代码实在是不友好,忍无可忍的情况下,又回到csdn上重新写一遍.) 今天,加班搞的比较晚,在公司了也是经历了很多事.希望自己越来越好.继续写noname的教 ...

  4. 【115@365】三国杀开源系列之七-game.js解读之lib.init.init

    通过上期的解读,我们发现,程序的疑似入口可能是有5万多行代码的game.js(因为自动加载的程序里,update.js.config.js.package.js都只有一个全局环境变量,所以排除掉),而 ...

  5. 【122@365】三国杀开源系列之八-game.js解读之lib.init.init(比较乱,附首页的html)

    上周好忙,一直没空写东西.今天五一,昨天和朋友们玩儿到凌晨4点多,6点多又醒来,睡意消退,刷了一会儿手机,决定起来继续看看noname的代码吧,不出一个阶段性成果,心里总是不踏实. 上次解读到疑似程序 ...

  6. 三国杀开源系列之九-vscode调试electron

    好久没填这个系列的坑了,最近有朋友问,所以就更一篇.主要内容是写vscode调试electron的方法. 这个noname的三国杀框架用js写的,没有任何参考文档,调试梳理代码非常麻烦.最开始使用了s ...

  7. 【开源系列】三国演义LBS (三)源码:基础库

    前言: ----------------------------------------------- 本随笔介绍了接下来开源的路线图,包含了基础库.核心框架一.核心框架二.游戏服务器+前端四部分. ...

  8. iPhone开源系列:iDev Recipes

          在iPhone项目开发的过程中,重新造轮子的事情屡见不鲜,一方面源于开发者的"自我"心态,但更多的是因为对开发项目的不了解.希望通过这样一个系列和大家一起发现和挖掘项目 ...

  9. 适合初学者的安卓开源项目_开源系列的初学者将从下周开始

    适合初学者的安卓开源项目 下周,Opensource.com将开始发布有关"从入门到开源"的系列文章. 这一系列文章将作为一种资源存在 ,任何人都可以随时访问以了解更多关于在任何位 ...

最新文章

  1. 10次相遇我才知道什么是成熟的爱--转
  2. antd 给input设置值_Antd 中 Input 组件默认值的显示
  3. 通过6个简单的步骤在Windows上运行Apache Hive
  4. MFC之CAsyncSocket详解
  5. java可以看懂php代码吗_PHP笔记——java程序员看懂PHP程序
  6. web前端开发技术现状与发展_Web前端开发的未来,将会有哪些发展方向?
  7. win10 Anaconda 安装教程
  8. 新Attention | NAM,一种新的注意力计算方式,无需额外的参数
  9. Python写视图界面--pyqt的使用
  10. ecshop getRow getAll getOne 返回值的区别
  11. 华为ensp 和secureCRT 连接
  12. ArcGIS Pro 中检查尖锐角步骤
  13. 自然辩证法与计算机科学的关系,自然辩证法和科学技术有什么关系
  14. MFS分布式文件系统
  15. 线性代数笔记(矩阵)
  16. 数据结构 - 逻辑结构和存储结构
  17. 将一张图片的人物融入另一张图片中
  18. 解决VMware Workstation 与 Hyper-V 不兼容。请先从系统中移除 Hyper-V 角色,然后再运行 VMware Workstation。
  19. 绝地大逃杀官方指定迅游加速
  20. 微机原理与接口技术(第6版)第六章习题1、3、10、13

热门文章

  1. 打包安卓apk后的V1和V2签名
  2. RuoYi-Vue 分离版 收获与总结
  3. LS-WXL/E改机应用流程全攻略(改机+下载工具安装)
  4. 什么是站群以及站群的排名原理和作用解答
  5. Qt5学习之路及嵌入式开发教程1:信号槽例子
  6. 跑赢新趋势 | 未来3-5年,运维人的机会在哪里?
  7. java中compare语句的用法,java.(compareTo的用法),关于Compare的用法
  8. html显示隐藏内容点击显示数据表代码,js如何实现点击显示和隐藏表格
  9. python多元线性回归实例_利用Python进行数据分析之多元线性回归案例
  10. 不高兴的津津【NOIP2004普及组第1题】