新版太阳神三国杀武将扩展学习手册
第一章 创建一个新武将
本章内容:
一、开发环境准备
二、创建一个新的武将包
三、创建我们的新武将
章节简介:
这是武将扩展的第一步。在本章节内,我们将学习怎样创建自己的武将扩展包,以及如何创建一个没有技能的白板武将。
关键代码:
sgs.Package
sgs.LoadTranslationTable
sgs.General
涉及文件:
游戏目录\extensions\study.lua
游戏目录\lua\config.lua
一、开发环境准备
作为武将扩展行为,大多都是在游戏目录下的extensions文件夹中进行的。所以先到这个文件夹吧,没有的话自己在游戏目录下创建一个新的也行。
接下来就是准备代码编辑器了。据说大家都在用一个叫做“Notepad++”的软件,没有装的话赶紧下载安装一个吧。
OK,一切得当。
二、创建一个新的武将扩展包
每个武将都是有自己的家,像郭嘉同志就来自标准包,夏侯渊老弟则来自风扩展包。理所应当地,我们要想新创建一个武将,就要先到这个新武将所对应的扩展包。
没有?那么先为TA创建一个新的武将扩展包吧。还记得刚才提到的extensions文件夹吗?这
是太阳神三国杀专门提供的扩展窗口。新的扩展包就建在这里。
打开extensions文件夹,新建一个文本文档……
慢着,还没想好要给我们的扩展包起个什么名字呢!
一般来说,给扩展包起名字有几个推荐的标准:
①尽量用扩展包中文名的英文单词命名(见名知义)。
②尽量由小写字母构成(为了AI加载顺利,还可以带一些数字和下划线)。
③不能和已有的扩展包名字相同(不要重名)。
下面列举了太阳神三国杀常见的武将包名称,起名时可不要重复了哦!

标准包:standard
风扩展包:wind
林扩展包:thicket
火扩展包:fire
山扩展包:mountain
神扩展包:god
SP扩展包:sp
一将成名扩展包:yjcm
一将成名2012扩展包:yjcm2012
SP扩展包:bgm
3V3扩展包:special3v3
怀旧包:nostal_general
倚天扩展包:yitian
智扩展包:wisdom
翼扩展包:ling
测试包:test

悄悄地告诉自己:这些信息可以在游戏目录下的lua\config.lua文件中到~
嗯!决定了,我们的扩展包就叫做“学习”扩展包好了,对应的名称为study
把新建的文本文档改名为study.lua,也就是用扩展包名称作为新的文件名,用lua做为新的扩展名。
       
下面来为这个扩展包添加一些必要的信息(该Notepad++出场了)。
使用代码编辑器Notepad++打开study.lua
选择【格式】菜单中的【以UTF-8BOM格式编码】项,否则在游戏中会有乱码出现的!
然后写上这么两句:
module("extensions.study", package.seeall)
extension = sgs.Package("study")
这两句的通用形式为:
module("extensions.扩展包名称", package.seeall)
extension = sgs.Package("扩展包名称")
不过呢,英文看着多不爽啊,所以再写一点翻译的东西把。
sgs.LoadTranslationTable创建一个专属于这个扩展包的翻译表,然后把我们会在游戏中看到的内容写进去。
翻译的格式是:["原文"] = "译文"
每两条翻译之间用英文逗号分割。
现在写上一句:["study"] = "学习包",效果如下:
啊!标签中study.lua前面的小磁盘是红的!这是在提示我们文件还没有保存,赶紧CTRL+S一下吧。
于是,一个新的扩展包就这样做好了。
不过由于这个扩展包里面没有武将,是一个大空壳,所以我们在游戏中的武将一览里面看不到它;但是当启动服务器的时候……
已经能够看到它的身影了!三国演义人物简介
至此,可以宣告扩展包创建成功!
三、创建我们的新武将
创建新武将的话,首先也是要先想好武将的名字。
但是这件事情就简单多了,一般来说都是用TA的姓名的汉语拼音直接作为名字的。
比如司马懿的名字叫做simayi就可以了。
武将的名字比起扩展包的名字就随意了些,大小写字母的组合都可以,不过最好不要使用下划线的。不变的要求依然是:不许重名!
那么,我们的第一个新武将的名字?孙悟空(sunwukong)怎么样?OK,就这么定了。
孙悟空是通过这个句子创建的:
sunwukong = sgs.General(extension, "sunwukong", "god", "5")
创建武将的函数原型是:
sgs.General(
package,
name,
kingdom,
max_hp=4,
male=true,
hidden=false,
never_shown=false
)
翻译过来,便是:
sgs.General(扩展包,姓名,所属势力,体力上限,性别,是否隐藏,是否完全隐藏)
相关参数解释:
package(扩展包):统一写extension就行了。
name(姓名):没忘刚才好不容易起的名字吧?sunwukong,就它了!另外,如果是主公武将,需要在名字后面加上$符号,来显示这个武将"超凡脱俗"的气质。比如曹操就是caocao$什么的。
kingdom(所属势力):列在下面了——

☆魏势力:wei
☆蜀势力:shu
☆吴势力:wu
☆雄势力:qun
☆神武将:god


max_hp(体力上限):就是勾玉的数目,不写的话默认是4
male(性别):填true就是男性,填false就是女性,……什么都不写也是男性!
hidden(是否隐藏):填true就是隐藏了,填false就是不隐藏,默认当然是不隐藏了~
never_shown(是否完全隐藏):依然是填true隐藏、填false或者默认是不隐藏。上面那个隐藏只是在游戏中不会被系统列在选将名单里,开自由选将的话还是能选到的(比如测试包里的五星诸葛亮);这个完全隐藏可是连自由选将都没希望到的,当然现在我们的游戏中还没有这样的武将就是了……