</br>每个武将都是有自己的家,像郭嘉同志就来自标准包,夏侯渊老弟则来自风扩展包。理所应当地,我们要想新创建一个武将,就要先找到这个新武将所对应的扩展包。
</br>没有?那么先为TA创建一个新的武将扩展包吧。还记得刚才提到的extensions文件夹吗?这是太阳神三国杀专门提供的扩展窗口。新的扩展包就建在这里。
</br>打开extensions文件夹,新建一个文本文档……
![](https://img.kancloud.cn/02/fc/02fc9834d6fa29564ecae60fef443278_177x62.png)
</br>慢着,还没想好要给我们的扩展包起个什么名字呢!
</br>一般来说,给扩展包起名字有几个推荐的标准:
1. 尽量用扩展包中文名的英文单词命名(见名知义)。
2. 尽量由小写字母构成(为了AI加载顺利,还可以带一些数字和下划线)。
3. 不能和已有的扩展包名字相同(不要重名)。
</br>下面列举了太阳神三国杀常见的武将包名称,起名时可不要重复了哦!
| 武将包 | 内部名 | 武将包 | 内部名 |
| --- | --- | --- | --- |
| 标准包 | standard | 一将成名2012扩展包 | yjcm2012 |
| 风扩展包 | wind | ☆SP扩展包 | bgm |
| 林扩展包 | thicket | 新3V3扩展包 | special3v3 |
| 火扩展包 | fire | 怀旧包 | nostal_general |
| 山扩展包 | mountain | 倚天扩展包 | yitian |
| 神扩展包 | god | 智扩展包 | wisdom |
| SP扩展包 | sp | 翼扩展包 | ling |
| 一将成名扩展包 | yjcm | 测试包 | test |
</br>悄悄地告诉自己:这些信息可以在游戏目录下的lua\config.lua文件中找到~
</br>嗯!决定了,我们的扩展包就叫做“学习”扩展包好了,对应的名称为study!
</br>把新建的文本文档改名为study.lua,也就是用扩展包名称作为新的文件名,用lua做为新的扩展名。
![](https://img.kancloud.cn/55/8b/558b3af8aa7286578b0365e57037869f_442x72.png)
</br>下面来为这个扩展包添加一些必要的信息(该Notepad++出场了)。
</br>使用代码编辑器Notepad++打开study.lua:
![](https://img.kancloud.cn/79/2d/792dd048e382bc213194ce6261f2a1e3_666x151.png)
</br>选择【格式】菜单中的【以UTF-8无BOM格式编码】项,否则在游戏中会有乱码出现的!
![](https://img.kancloud.cn/4a/82/4a823c7410e370a73ba39cd9e49e32ac_359x256.png)
</br>~~然后写上这么两句:~~
~~module("extensions.study", package.seeall)~~
~~extension = sgs.Package("study")~~
![](https://img.kancloud.cn/42/69/4269ef6fa584a646147c4bd477c316c4_505x88.png)
</br>~~这两句的通用形式为:~~
~~module("extensions.扩展包名称", package.seeall)~~
~~extension = sgs.Package("扩展包名称")~~
</br>*PS:新版本这种定义方法已经废弃*
</br>如此创建一个武将扩展包
```
Extension = sgs.Package("package_name",sgs.Package_GeneralPack)
--中间为扩展包的内容
return Extension
```
</br>不过呢,英文看着多不爽啊,所以再写一点翻译的东西把。
</br>用`sgs.LoadTranslationTable`创建一个专属于这个扩展包的翻译表,然后把我们会在游戏中看到的内容写进去。
</br>翻译的格式是:`["原文"] = "译文"`
</br>每两条翻译之间用英文逗号分割。
</br>现在写上一句:`["study"] = "学习包"`,效果如下:
![](https://img.kancloud.cn/05/a8/05a87968ded9ffc23c7e081f7387d29f_500x181.png)
</br>啊!标签中study.lua前面的小磁盘是红色的!这是在提示我们文件还没有保存,赶紧CTRL+S一下吧。
![](https://img.kancloud.cn/fa/67/fa67b95301ef6715e980b104f8170fc7_508x170.png)
</br>于是,一个新的扩展包就这样做好了。
</br>不过由于这个扩展包里面没有武将,是一个大空壳,所以我们在游戏中的武将一览里面看不到它;但是当启动服务器的时候……
![](https://img.kancloud.cn/2f/41/2f414173449d1c44f6880cbbd76c619e_496x310.png)
</br>已经能够看到它的身影了!
</br>至此,可以宣告扩展包创建成功!
- 编写说明
- 第一章 创建一个新武将
- 1.1 开发环境准备
- 1.2 创建一个新的武将扩展包
- 1.3 创建我们的新武将
- 第二章 添加技能
- 第三章 武将美化
- 3.1 美化环境准备
- 3.2 添加武将卡牌
- 3.3 添加武将头像
- 3.4 添加武将标签
- 第四章 创建一个新技能
- 第五章 添加音效
- 5.1 打造自己的声音工作室
- 5.2 添加技能使用音效
- 5.3 添加武将阵亡音效
- 第六章 添加提示信息
- 6.1 添加代码注释
- 6.2 显示提示信息
- 6.3 启动全屏信息特效
- 第七章 武将变更
- 第八章 启用AI
- 8.1 创建我们的AI文件
- 8.2 真实的AI
- 8.3 动手写AI
- 第九章 修改距离
- 第十章 技能管理
- 10.1 技能判定
- 10.2 创建技能
- 10.3 获得技能
- 10.4 失去技能
- 第十一章 修改手牌上限
- 第十二章 体力变更
- 12.1 流失体力
- 12.2 制造伤害
- 13.3 恢复体力
- 12.4 流失体力上限
- 12.5 增长体力上限
- 第十三章 游戏进程的变更
- 13.1 创建阶段触发技能
- 13.2 跳过回合阶段
- 13.3 插入一个额外的回合阶段
- 13.4 启用翻面
- 13.5 获得一个额外的回合
- 第十四章 启用标记(Mark)
- 14.1 添加标记
- 14.2 获得标记
- 14.3 失去标记
- 14.4 查看标记数目
- 第十五章 卡牌转换
- 15.1 主动牌的转换
- 15.2 被动牌的转换
- 第十六章 卡牌传递
- 16.1 创建摸牌技能
- 16.2 游戏中摸牌
- 16.3 游戏中弃牌
- 16.4 从其他武将处获得牌
- 16.5 判断目标区域是否有牌
- 16.6 移动场上的牌
- 第十七章 用牌实现技能效果
- 第十八章 启用标志(Flag)
- 第十九章 涉足判定领域
- 19.1 启用判定
- 19.2 更改判定
- 19.3 获得判定牌
- 第二十章 私家牌堆
- 20.1 向牌堆中添加牌
- 20.2 查看牌堆中牌的数量
- 20.3 从牌堆中移除牌
- 第二十一章 牌的锁定
- 第二十二章 免疫牌
- 第二十三章 让房间提供牌
- 23.1 提供主动牌
- 23.2 提供被动牌
- 第二十四章 启用标签(Tag)
- 第二十五章 濒死结算
- 第二十六章 交换座次
- 第二十七章 创建主公技
- 27.1 创建由主公发起的主公技
- 27.2 创建由他人发起的主公技
- 第二十八章 强力技能
- 28.1 直接死亡
- 28.2 改换身份
- 28.3 原地复活
- 28.4 立即胜利