新手,自己闲着没事做的无名杀武将(第三/四期,李梦蝶/宋星寒)
闲着没事自己做的武将,目前做了八九个了。作为新手就是为了熟悉一下技能中的代码意思,自己做的第三/四个人物,不想多说话,技能血量如下图。有想用代码的,下文拿走。不过记得和我说一声。能帮助你们最好,不能帮就算了。不过,我受了那么多累做的,终于调试通了,经过前两期的试探,这期应该不难拿了吧。


首先就是李梦蝶的一技能,魔导,看技能效果就知道,单纯就是一个改了一点的缝合技能,前半段就是小乔的弱化的红颜的魔改版“黑颜色”,后半段就是ol界钟会的技能,技能过于简单(不得不说的是ol界钟会的技能真的很强)。放下面随便取吧。由于技能太简单,不用跟我说了。

skill={
group:["xinquanji","xinzili"],
trigger:{
global:"judge",
},
direct:true,
filter:function(event,player){
if(event.fixedResult&&event.fixedResult.suit) return event.fixedResult.suit=='spade';
return get.suit(event.player.judging[0],event.player)=='spade';
},
content:function(){
"step 0"
var str='魔导:'+get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+
get.translation(trigger.player.judging[0])+',请将其改为一种花色';
player.chooseControl('spade','heart','diamond','club').set('prompt',str).set('ai',function(){
var judging=_status.event.judging;
var trigger=_status.event.getTrigger();
var res1=trigger.judge(judging);
var list=lib.suit.slice(0);
var attitude=get.attitude(player,trigger.player);
if(attitude==0) return 0;
var getj=function(suit){
return trigger.judge({
name:get.name(judging),
nature:get.nature(judging),
suit:suit,
number:get.number(judging),
})
};
list.sort(function(a,b){
return (getj(b)-getj(a))*get.sgn(attitude);
});
return list[0];
}).set('judging',trigger.player.judging[0]);
"step 1"
if(result.control!='cancel2'){
player.addExpose(0.25);
player.popup(result.control);
game.log(player,'将判定结果改为了','#y'+get.translation(result.control+2));
if(!trigger.fixedResult) trigger.fixedResult={};
trigger.fixedResult.suit=result.control;
trigger.fixedResult.color=get.color({suit:result.control});
}
},
ai:{
rejudge:true,
tag:{
rejudge:0.4,
},
expose:0.5,
},
}
宋星寒的技能就是一个纯粹的缝合技能。千军=加强版的毅重+江东小白板(划掉)霸王的激昂+天妒+英姿。没啥好说的只要会缝合,那这就是简简单单。技能下面拿。

skill={
forced:true,
group:["千军_1","千军_2","千军_3","千军_4"],
subSkill:{
"1":{
forced:true,
trigger:{
target:"shaBefore",
},
audio:2,
filter:function(event,player){
return (event.card.name=='sha'&&get.color(event.card)=='black')
},
content:function(){
trigger.cancel();
},
ai:{
effect:{
target:function(card,player,target){
if(player==target&&get.subtype(card)=='equip2'){
if(get.equipValue(card)<=8) return 0;
}
if(target.getEquip(2)) return;
if(card.name=='sha'&&get.color(card)=='black') return 'zerotarget';
},
},
},
sub:true,
},
"2":{
shaRelated:true,
audio:2,
preHidden:true,
audioname:["sp_lvmeng","re_sunben","re_sunce"],
trigger:{
player:"useCardToPlayered",
target:"useCardToTargeted",
},
filter:function(event,player){
if(!(event.card.name=='juedou'||(event.card.name=='sha'&&get.color(event.card)=='red'))) return false;
return player==event.target||event.getParent().triggeredTargets3.length==1;
},
frequent:true,
content:function(){
player.draw();
},
ai:{
effect:{
target:function(card,player,target){
if(card.name=='sha'&&get.color(card)=='red') return [1,0.6];
},
player:function(card,player,target){
if(card.name=='sha'&&get.color(card)=='red') return [1,1];
},
},
},
sub:true,
},
"3":{
trigger:{
player:"judgeEnd",
},
preHidden:true,
frequent:function(event){
if(event.result.card.name=='du') return false;
//if(get.mode()=='guozhan') return false;
return true;
},
check:function(event){
if(event.result.card.name=='du') return false;
return true;
},
filter:function(event,player){
return get.position(event.result.card,true)=='o';
},
content:function(){
player.gain(trigger.result.card,'gain2');
},
sub:true,
},
"4":{
trigger:{
player:"phaseDrawBegin2",
},
frequent:true,
filter:function(event,player){
return !event.numFixed;
},
content:function(){
trigger.num++;
},
ai:{
threaten:1.3,
},
sub:true,
},
},
}
魔导说完了接着说说李梦蝶的二技能吧,绝情。就是春哥的绝情,没什么好说的。

skill={
trigger:{
source:"damageBefore",
},
forced:true,
audio:2,
check:function(){return false;},
content:function(){
trigger.cancel();
trigger.player.loseHp(trigger.num);
},
ai:{
jueqing:true,
},
}
接着是宋星寒的二技能伤逝,就是春哥的伤逝。下面拿。

skill={
audio:2,
trigger:{
player:["loseAfter","changeHp"],
},
frequent:true,
filter:function(event,player){
return player.countCards('h')<player.getDamagedHp();
},
content:function(){
player.draw(player.getDamagedHp()-player.countCards('h'));
},
ai:{
noh:true,
skillTagFilter:function(player,tag){
if(tag=='noh'&&player.maxHp-player.hp<player.countCards('h')){
return false;
}
},
},
}
李梦蝶三技能,幻蝶,技能强度挺高的,上来就是三个幻蝶标记,只要有人在自己回合内(此处的自己是指任意一名角色在其回合内的意思)失去装备区牌时,获得一枚幻蝶标记,在自己回合内,幻蝶标记可以当作无距离限制的杀使用,但此杀会占用实体杀的资格,如果你自己先使用幻蝶当杀,那么你将无法在使用实体杀,但是不影响幻蝶使用的杀,幻蝶转换的杀不可被相应。另外由于技术问题(QAQ我是个菜鸡),幻蝶转化的杀竟然可以破空城。另外,标记类技能都可以用下面的代码去套,本来想考验一下你们的技术的,想给你们想前两期那样自己取的(滑稽),但想了想还是算了吧,代码下面自取,记得跟我说一声哦。

skill={
group:["幻蝶_1","幻蝶_2","幻蝶_3","幻蝶_4"],
subSkill:{
"1":{
mark:true,
marktext:"幻蝶",
unique:true,
trigger:{
player:"enterGame",
global:"phaseBefore",
},
forced:true,
filter:function(event){
return (event.name!='damage'&&(event.name!='phase'||game.phaseNumber==0))||event.num>0;
},
content:function(){
player.addMark('幻蝶_1',3);
},
intro:{
name:"幻蝶",
content:"幻蝶当作杀",
},
ai:{
combo:"ol_shenfen",
maixie:true,
"maixie_hp":true,
},
sub:true,
},
"2":{
trigger:{
global:["equipAfter","addJudgeAfter","gainAfter","loseAsyncAfter","addToExpansionAfter","loseAfter"],
},
frequent:true,
filter:function(event,player){
var evt=event.getl(_status.currentPhase);
return evt&&evt.es&&evt.es.length>0;
},
content:function(){
"step 0"
event.count=trigger.getl(_status.currentPhase).es.length;
"step 1"
player.addMark('幻蝶_1',event.count);
},
ai:{
noe:true,
reverseEquip:true,
effect:{
target:function(card,player,target,current){
if(get.type(card)=='equip'&&!get.cardtag(card,'gifts')) return [1,3];
},
},
},
sub:true,
},
"3":{
enable:"phaseUse",
forced:true,
unique:true,
filter:function(event,player){
return player.hasMark('幻蝶_1');
},
content:function(){
"step 0"
player.chooseTarget('是否弃置一枚“幻蝶”,并使用一张杀?',function(card,player,target){
return player!=target;
},function(target){//ai:
var player=get.player();//定义变量player为选目标的发起者(不懂可以先不写)
return -get.attitude(player,target);//选敌人
});
"step 1"
if(result.bool){
player.removeMark('幻蝶_1',1);
console.log(result.targets[0]);
result.targets[0].storage.幻蝶_0=true;
player.useCard({name:'sha'},result.targets[0]);
}
},
ai:{
order:1,
result:{
player:function(player){
return 1;
},
},
},
sub:true,
},
"4":{
silent:true,
trigger:{
player:"useCardToPlayer",
},
filter:function (event,player) {
return event.target.storage.幻蝶_0&&event.card.name=='sha';
},
content:function () {
trigger.getParent().directHit.add(trigger.target);
delete trigger.target.storage.幻蝶_0;
},
sub:true,
forced:true,
popup:false,
},
},
}
宋星寒的三技能就是界刘备的仁德,配合伤逝,给队友过牌很强。(没敢用标刘备的仁德QAQ)。代码下面拿。

skill={
audio:2,
audioname:["gz_jun_liubei","shen_caopi"],
enable:"phaseUse",
filterCard:true,
selectCard:[1,Infinity],
discard:false,
lose:false,
delay:false,
filterTarget:function(card,player,target){
if(player.storage.rerende2&&player.storage.rerende2.contains(target)) return false;
return player!=target;
},
onremove:["rerende","rerende2"],
check:function(card){
if(ui.selected.cards.length&&ui.selected.cards[0].name=='du') return 0;
if(!ui.selected.cards.length&&card.name=='du') return 20;
var player=get.owner(card);
if(ui.selected.cards.length>=Math.max(2,player.countCards('h')-player.hp)) return 0;
if(player.hp==player.maxHp||player.storage.rerende<0||player.countCards('h')<=1){
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i].hasSkill('haoshi')&&
!players[i].isTurnedOver()&&
!players[i].hasJudge('lebu')&&
get.attitude(player,players[i])>=3&&
get.attitude(players[i],player)>=3){
return 11-get.value(card);
}
}
if(player.countCards('h')>player.hp) return 10-get.value(card);
if(player.countCards('h')>2) return 6-get.value(card);
return -1;
}
return 10-get.value(card);
},
content:function(){
'step 0'
var evt=_status.event.getParent('phaseUse');
if(evt&&evt.name=='phaseUse'&&!evt.rerende){
var next=game.createEvent('rerende_clear');
_status.event.next.remove(next);
evt.after.push(next);
evt.rerende=true;
next.player=player;
next.setContent(lib.skill.rerende1.content);
}
if(!Array.isArray(player.storage.rerende2)){
player.storage.rerende2=[];
}
player.storage.rerende2.push(target);
target.gain(cards,player,'giveAuto');
if(typeof player.storage.rerende!='number'){
player.storage.rerende=0;
}
if(player.storage.rerende>=0){
player.storage.rerende+=cards.length;
if(player.storage.rerende>=2){
var list=[];
if(lib.filter.cardUsable({name:'sha'},player,event.getParent('chooseToUse'))&&game.hasPlayer(function(current){
return player.canUse('sha',current);
})){
list.push(['基本','','sha']);
}
for(var i of lib.inpile_nature){
if(lib.filter.cardUsable({name:'sha',nature:i},player,event.getParent('chooseToUse'))&&game.hasPlayer(function(current){
return player.canUse({name:'sha',nature:i},current);
})){
list.push(['基本','','sha',i]);
}
}
if(lib.filter.cardUsable({name:'tao'},player,event.getParent('chooseToUse'))&&game.hasPlayer(function(current){
return player.canUse('tao',current);
})){
list.push(['基本','','tao']);
}
if(lib.filter.cardUsable({name:'jiu'},player,event.getParent('chooseToUse'))&&game.hasPlayer(function(current){
return player.canUse('jiu',current);
})){
list.push(['基本','','jiu']);
}
if(list.length){
player.chooseButton(['是否视为使用一张基本牌?',[list,'vcard']]).set('ai',function(button){
var player=_status.event.player;
var card={name:button.link[2],nature:button.link[3]};
if(card.name=='tao'){
if(player.hp==1||(player.hp==2&&!player.hasShan())||player.needsToDiscard()){
return 5;
}
return 1;
}
if(card.name=='sha'){
if(game.hasPlayer(function(current){
return player.canUse(card,current)&&get.effect(current,card,player,player)>0
})){
if(card.nature=='fire') return 2.95;
if(card.nature=='thunder'||card.nature=='ice') return 2.92;
return 2.9;
}
return 0;
}
if(card.name=='jiu'){
return 0.5;
}
return 0;
});
}
else{
event.finish();
}
player.storage.rerende=-1;
}
else{
event.finish();
}
}
else{
event.finish();
}
'step 1'
if(result&&result.bool&&result.links[0]){
var card={name:result.links[0][2],nature:result.links[0][3]};
player.chooseUseTarget(card,true);
}
},
ai:{
fireAttack:true,
order:function(skill,player){
if(player.hp<player.maxHp&&player.storage.rerende<2&&player.countCards('h')>1){
return 10;
}
return 4;
},
result:{
target:function(player,target){
if(target.hasSkillTag('nogain')) return 0;
if(ui.selected.cards.length&&ui.selected.cards[0].name=='du'){
if(target.hasSkillTag('nodu')) return 0;
return -10;
}
if(target.hasJudge('lebu')) return 0;
var nh=target.countCards('h');
var np=player.countCards('h');
if(player.hp==player.maxHp||player.storage.rerende<0||player.countCards('h')<=1){
if(nh>=np-1&&np<=player.hp&&!target.hasSkill('haoshi')) return 0;
}
return Math.max(1,5-nh);
},
},
effect:{
target:function(card,player,target){
if(player==target&&get.type(card)=='equip'){
if(player.countCards('e',{subtype:get.subtype(card)})){
if(game.hasPlayer(function(current){
return current!=player&&get.attitude(player,current)>0;
})){
return 0;
}
}
}
},
},
threaten:0.8,
},
}
我的第三/四个做的武将就算是做好了,这期有点水。各位陌生人,如果想用就拿就行,记得跟我说一声哦。以后如果心血来潮的话,我还会发一些其他的。希望大家支持一下无名杀(QAQ)。