无名杀联机扩展编写教程
前言:
用这个方法相当于源码添加武将包(卡包),跳过了一些禁止联机的判断,从而达到扩展联机效果。
框架:
game.import(“extension”,function(lib,game,ui,get,ai,_status){return {name:”扩展名”,content:function (config,pack){
if(config.武将包名英文){
for(var i in lib.characterPack[‘武将包名英文’]) {
if(lib.character[i][4].indexOf(“forbidai”)<0) lib.character[i][4].push(“forbidai”);
};
};//选项触发内容,原因见config
},precontent:function(武将包名英文){
if(武将包名英文.enable){
//武将包
game.import(‘character’,function(){
var 武将包名英文={
name:’武将包名英文’,//武将包命名(必填)
connect:true,//该武将包是否可以联机(必填)
character:{
//武将格式:
//“武将名字”:[“性别”,”势力”,体力,[技能],[]],
//格式内每一样东西都不能缺少,否则无法导入该武将包及其以下内容
},//武将(必填)
characterIntro:{}, //武将介绍(选填)
characterTitle:{},//武将标题(用于写称号或注释)(选填)
skill:{},//技能(必填)
translate:{},//翻译(必填)
perfectPair:{},//珠联璧合武将(选填)
};
if(lib.device||lib.node){
for(var i in 武将包名英文.character){武将包名英文.character[i][4].push(‘ext:扩展名/‘+i+’.jpg’);}
}else{
for(var i in 武将包名英文.character){武将包名英文.character[i][4].push(‘db:extension-扩展名:’+i+’.jpg’);}
}//由于以此法加入的武将包武将图片是用源文件的,所以要用此法改变路径
return 武将包名英文;
});
lib.config.all.characters.push(‘武将包名英文’);
if(!lib.config.characters.contains(‘武将包名英文’)) lib.config.characters.push(‘武将包名英文’);
lib.translate[‘武将包名英文_character_config’]=’武将包名’;// 包名翻译
//卡包(手牌)
game.import(‘card’,function(){
var 卡包名英文={
name:’卡包名英文’,//卡包命名
connect:true,//卡包是否可以联机
card:{
‘卡名’:{
image:’ext:扩展名/卡名.jpg’, //卡牌图片
//以下与一般卡牌一样
},//卡 格式
skill:{},//技能
translate:{},//翻译
list:[],//牌堆添加
};
return 卡包名英文;
});
lib.translate[‘卡包名英文_card_config’]=’卡包名’;
lib.config.all.cards.push(‘卡包名英文’);
if(!lib.config.cards.contains(‘卡包名英文’)) lib.config.cards.push(‘卡包名英文’);//包名翻译
};
},config:{
“武将包名英文”:{“name”:”将武将包名内武将设为禁用”,”init”:false},
//由于以此法添加的武将包自带的禁用按钮无法使用,需要写这个选项来禁用该武将包武将(单机)
},help:{},package:{
character:{
character:{
},
translate:{
},
},
card:{
card:{
},
translate:{
},
list:[],
},
skill:{
skill:{
},
translate:{
},
},
intro:””,
author:”Aurora”,
diskURL:””,
forumURL:””,
version:””,
},files:{“character”:[],”card”:[],”skill”:[]}}})
注意事项:
1.有些函数触发时,主机不会发送触发内容给客机,这是就要用game.broadcastAll(function(){})或game.broadcast (function(){})。(具体用法看源码,不举例)
2.如果是储存类的联机扩展(不如联机皮肤什么的)解决方法:
(1)数据位于服务器,直接读取。
(2)数据位于本地,在主机将信息发送给客机时改动。(我找不到端口,不具体说明)
3.联机时,客机扩展要和主机一致,否则客机发生错误。
4.同一个扩展可以以此法添加多个武将包或卡包。
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!