水乎无名杀教程
1. 扩展的基本格式
扩展为zip格式,包含extension.js
extension.js的格式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| game.import('extension',{
name:'扩展名称',
content:function(config){
},
image:['xxx.png','xxx.png'],
config:{
},
help:{
}
});
|
2. content函数
content函数调用时机为游戏最初载入时,可用来修改游戏本身的内容。
若要修改现有的武将或卡牌的内容,须等扩展载入完毕后再触发,写法如下
lib.arenaReady.push(function(){
//要执行的内容
})
3. 添加武将
通过扩展添加的武将与武将包有部分区别,它的管理方式与自带武将相同,可自由决定放在哪个现有武将包(或创建新武将包)
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| name:'xxx',
content:function(config){
if(config.x_caocao){
lib.character.x_caocao=['male','wei',4,['x_jianxiong'],['db:extension-xxx:x_caocao.jpg','zhu']]
}
lib.translate.x_caocao='曹操';
lib.skill.x_jianxiong={
}
dlib.translate.x_jianxiong='奸雄';
lib.translate.x_jianxiong_info='技能描述';
},
image:['x_caocao.jpg'],
config:{
x_caocao:{
name:'启用曹操',
init:true
}
}
|
其中
‘db:extension-xxx:x_caocao.jpg’表示武将图为导入的图片
‘zhu’表示这是一个常备主公
config里表示在扩展界面加一个选项(即content中的config.x_caocao),init:true表示这个选项默认为true
3.1 将武将放入一个扩展包
3.1.1创建一个新武将包
1 2 3 4 5 6 7
| var caocao=['male','wei',4,['x_jianxiong'],['db:extension-xxx:x_caocao.jpg','zhu']];
lib.character.x_caocao=caocao;
lib.characterPack.mode_extension_xxx={x_caocao:caocao};
lib.translate.mode_extension_xxx_character_config='示例';
|
mode_前缀代表这是一个由扩展创建的武将包,不能在武将页面关闭
3.1.2放入一个现有的武将包中
1 2 3 4 5 6 7
| lib.packageReady.push(function(){
lib.characterPack.standard.x_caocao=lib.character.x_caocao
});
|
packageReady发动时机为扩展载入完毕,界面创建之前
arenaReady发动时机为界面创建完毕
由于创建菜单时用到了武将包,所以修改现有武将包的时机为界面创建之前,即packageReady
3.2 武将的其它设置
设为boss:lib.character.x_caocao=[‘male’,’wei’,4,[‘x_jianxiong’],[‘db:extension-xxx:x_caocao.jpg’,’zhu’,’boss’]]
设为boss且可在正常模式中出现:lib.character.x_caocao=[‘male’,’wei’,4,[‘x_jianxiong’],[‘db:extension-xxx:x_caocao.jpg’,’zhu’,’boss’,’bossallowed’]]
设置ai禁选:lib.config.forbidai.push(‘x_caocao’)
设置双将禁选:lib.config.forbiddouble.push(‘x_caocao’)
设置武将强度
(影响部分ai,屏蔽弱将时不出现c及以下的武将,屏蔽强将时不出现ap及以上的武将)
强度分为9个等级:s>ap>a>am>bp>b>bm>c>d
1 2 3 4 5
| lib.arenaReady.push(function(){
lib.rank.s.push('x_caocao');
})
|
设置珠联壁合:
1 2 3 4 5 6 7
| lib.arenaReady.push(function(){
if(!lib.perfectPair.x_caocao) lib.perfectPair.x_caocao=[];
lib.perfectPair.x_caocao.push('dianwei');
})
|
3.3 添加武将的简便写法
1 2 3 4 5 6 7 8 9 10 11
| game.addCharacter('x_caoca',{
sex:'male',
translate:'曹操',
skills:['x_jianxiong'],
tags:['zhu']
});
|
等价于
1 2 3 4 5 6 7 8 9
| var caocao=['male','wei',4,['x_jianxiong'],['db:extension-xxx:x_caocao.jpg','zhu']];
lib.character.x_caocao=caocao;
lib.translate.x_caocao='曹操';
lib.characterPack.mode_extension_xxx={x_caocao:caocao};
lib.translate.mode_extension_xxx_character_config='xxx';
|
4. 添加卡牌
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| lib.card.yuanshengfazhang={
fullimage:true,
image:'db:extension-示例扩展:yuanshengfazhang.jpg',
enable:true,
type:'trick',
filterTarget:true,
content:function(){
target.damage('thunder');
}
}
lib.translate.yuanshengfazhang='原生法杖';
lib.translate.yuanshengfazhang_info='造成1点雷电伤害';
var n=parseInt(config.yuanshengfazhang);
while(n--){
lib.card.list.push(['club',3,'yuanshengfazhang']);
}
lib.cardPack.mode_extension_example=['yuanshengfazhang'];
lib.translate.mode_extension_example_card_config='示例';
|
等价写法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| game.addCard('yuanshengfazhang',{
fullimage:true,
enable:true,
type:'trick',
filterTarget:true,
content:function(){
target.damage('thunder');
}
},
translate:'原生法杖',
description:'造成1点雷电伤害',
number:parseInt(config.yuanshengfazhang)
});
|
fullskin(左)与fullimage(右)
5. 创建模式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| name:'新模式',
content:function(config){
game.addMode('xxmode',{
}
},{
translate:'新模式',
config:{
xxx:{
name:'一个选项',
init:'a',
item:{
a:'A',
b:'B',
c:'C'
},
frequent:true,
restart:true,
}
},
});
},
help:{
'新模式':'帮助内容'
}
},
onremove:function(){
game.clearModeConfig('xxmode');},
image:['xxmode.jpg']
|
其中
image应包含与模式同名的图片(即xxmode.jpg),用于在开始界面显示
config为模式选择菜单中的选项,不是扩展菜单中的选项
onremove为此扩展被删除时的操作,模式添加的选项需手动删除(clearModeConfig)
5.1 载入现有模式的内容
1 2 3 4 5 6 7 8 9 10 11 12
| 'step 0'
game.loadMode('identity');
'step 1'
for(var i in result.ai.get){
ai.get[i]=result.ai.get[i];
}
|
1.9写法改变:
添加/移除技能必须使用addSkill/removeSkill或addAdditionalSkill/removeAdditionalSkill函数
添加/移除全局技能必须使用addGlobalSkill/removeGlobalSkill函数
禁用/启用技能必须使用disableSkill/enableSkill函数
检查是否有某技能必须使用hasSkill函数
装备不再能直能通过appendChild函数添加,也不再能通过remove函数移除
使用createEvent创建事件,事件的content必须用setContent添加