无名杀联机扩展编写教程

前言:

用这个方法相当于源码添加武将包(卡包),跳过了一些禁止联机的判断,从而达到扩展联机效果。

框架:

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协议 。转载请注明出处!