This commit is contained in:
Spmario233 2021-10-05 23:46:56 +08:00
parent 6108989e58
commit 2f10c6e8d0
19 changed files with 309 additions and 66 deletions

View File

@ -18,6 +18,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
forceDie:true, forceDie:true,
onLose:function(){ onLose:function(){
delete player.getStat('skill').muniu_skill; delete player.getStat('skill').muniu_skill;
player.unmarkSkill('muniu_skill');
if(!card||!card.cards||!card.cards.length) return; if(!card||!card.cards||!card.cards.length) return;
if((!event.getParent(2)||event.getParent(2).name!='swapEquip')&&(event.getParent().type!='equip'||event.getParent().swapEquip)){ if((!event.getParent(2)||event.getParent(2).name!='swapEquip')&&(event.getParent().type!='equip'||event.getParent().swapEquip)){
player.lose(card.cards,ui.discardPile); player.lose(card.cards,ui.discardPile);

View File

@ -718,7 +718,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){
card=event.directButton.link; card=event.directButton.link;
} }
else{ else{
card=result.links[0]; for(var i of dialog.buttons){
if(i.link==result.links[0]){
card=i.link;
break;
}
}
if(!card) card=event.dialog.buttons[0].link;
} }
var button; var button;

View File

@ -12339,11 +12339,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
nsyaowang:{ nsyaowang:{
trigger:{player:'phaseBegin'}, trigger:{player:'phaseBegin'},
direct:true, direct:true,
group:'tianshu_remove',
createDialog:function(player,target,onlylist){ createDialog:function(player,target,onlylist){
var names=[]; var names=[];
var list=[]; var list=[];
if(target.name&&!target.isUnseen(0)) names.add(target.name);
if(target.name1&&!target.isUnseen(0)) names.add(target.name1); if(target.name1&&!target.isUnseen(0)) names.add(target.name1);
if(target.name2&&!target.isUnseen(1)) names.add(target.name2); if(target.name2&&!target.isUnseen(1)) names.add(target.name2);
var pss=player.getSkills(); var pss=player.getSkills();
@ -12355,7 +12353,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(lib.translate[skills[j]+'_info']&&lib.skill[skills[j]]&& if(lib.translate[skills[j]+'_info']&&lib.skill[skills[j]]&&
!lib.skill[skills[j]].unique&& !lib.skill[skills[j]].unique&&
!pss.contains(skills[j])){ !pss.contains(skills[j])){
list.push(skills[j]); list.add(skills[j]);
} }
} }
} }
@ -12390,7 +12388,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0' 'step 0'
player.chooseTarget(get.prompt2('nsyaowang'),function(card,player,target){ player.chooseTarget(get.prompt2('nsyaowang'),function(card,player,target){
var names=[]; var names=[];
if(target.name&&!target.isUnseen(0)) names.add(target.name);
if(target.name1&&!target.isUnseen(0)) names.add(target.name1); if(target.name1&&!target.isUnseen(0)) names.add(target.name1);
if(target.name2&&!target.isUnseen(1)) names.add(target.name2); if(target.name2&&!target.isUnseen(1)) names.add(target.name2);
var pss=player.getSkills(); var pss=player.getSkills();
@ -12424,7 +12421,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return get.max(list,get.skillRank,'item'); return get.max(list,get.skillRank,'item');
}; };
if(event.isMine()){ if(event.isMine()){
event.dialog=lib.skill.tianshu.createDialog(player,target); event.dialog=lib.skill.nsyaowang.createDialog(player,target);
event.switchToAuto=function(){ event.switchToAuto=function(){
event._result=event.skillai(event.list); event._result=event.skillai(event.list);
game.resume(); game.resume();

View File

@ -4372,7 +4372,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dangmo:'荡魔', dangmo:'荡魔',
dangmo_info:'当你于出牌阶段内使用第一张【杀】选择目标后你可以为此牌增加至多Y-1个目标Y为你的体力值。', dangmo_info:'当你于出牌阶段内使用第一张【杀】选择目标后你可以为此牌增加至多Y-1个目标Y为你的体力值。',
reshuishi:'慧识', reshuishi:'慧识',
reshuishi_info:'出牌阶段限一次,你可进行判定牌不置入弃牌堆的判定。若判定结果与本次发动技能时的其他判定结果的花色均不相同则你加1点体力上限并重复此流程。然后你将所有位于处理区的判定牌交给一名角色。若其手牌数为全场最多则你减1点体力上限。', reshuishi_info:'出牌阶段限一次,若你的体力上限小于10你可进行判定牌不置入弃牌堆的判定。若判定结果与本次发动技能时的其他判定结果的花色均不相同且你的体力上限小于10则你加1点体力上限并重复此流程。然后你将所有位于处理区的判定牌交给一名角色。若其手牌数为全场最多则你减1点体力上限。',
resghuishi:'辉逝', resghuishi:'辉逝',
resghuishi_info:'限定技出牌阶段你可选择一名角色。若你的体力上限不小于存活人数且其有未发动的觉醒技则你令其中一个技能无视发动条件否则其摸四张牌。然后你减2点体力上限。', resghuishi_info:'限定技出牌阶段你可选择一名角色。若你的体力上限不小于存活人数且其有未发动的觉醒技则你令其中一个技能无视发动条件否则其摸四张牌。然后你减2点体力上限。',

View File

@ -596,10 +596,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filterx:function(event,player){ filterx:function(event,player){
var cards=player.getCards('h'); var cards=player.getCards('h');
if(cards.length==1) return true; if(cards.length==1) return true;
var color=get.color(cards[0],player),type=get.type(cards[0],player); var color=get.color(cards[0],player),type=get.type2(cards[0],player);
for(var i=1;i<cards.length;i++){ for(var i=1;i<cards.length;i++){
if(color&&get.color(cards[i],player)!=color) color=false; if(color&&get.color(cards[i],player)!=color) color=false;
if(type&&get.type(cards[i],player)!=type) type=false; if(type&&get.type2(cards[i],player)!=type) type=false;
if(!color&&!type) return false; if(!color&&!type) return false;
} }
return true; return true;
@ -1390,7 +1390,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
marktext:'姻', marktext:'姻',
intro:{ intro:{
name:'共患', name:'共患',
content:'锁定技。每回合限一次,一名其他角色受到伤害时,若其拥有“姻”标记且其体力值于你,则你将伤害转移给自己。', content:'锁定技。每回合限一次,一名其他角色受到伤害时,若其拥有“姻”标记且其体力值于你,则你将伤害转移给自己。',
}, },
ai:{ ai:{
order:10, order:10,
@ -6061,6 +6061,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:'requanfeng_gain', group:'requanfeng_gain',
}, },
requanfeng_gain:{ requanfeng_gain:{
audio:'quanfeng',
trigger:{global:'die'}, trigger:{global:'die'},
filter:function(event,player){ filter:function(event,player){
return player.hasSkill('hongyi')&&event.player.getStockSkills('仲村由理','天下第一').filter(function(skill){ return player.hasSkill('hongyi')&&event.player.getStockSkills('仲村由理','天下第一').filter(function(skill){
@ -12130,7 +12131,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
luanchou:'鸾俦', luanchou:'鸾俦',
luanchou_info:'出牌阶段限一次,你可令两名角色获得“姻”标记并清除原有标记。拥有“姻”标记的角色视为拥有技能〖共患〗。', luanchou_info:'出牌阶段限一次,你可令两名角色获得“姻”标记并清除原有标记。拥有“姻”标记的角色视为拥有技能〖共患〗。',
gonghuan:'共患', gonghuan:'共患',
gonghuan_info:'锁定技。每回合限一次,一名其他角色受到伤害时,若其拥有“姻”标记且其体力值于你,则你将伤害转移给自己。', gonghuan_info:'锁定技。每回合限一次,一名其他角色受到伤害时,若其拥有“姻”标记且其体力值于你,则你将伤害转移给自己。',
sp_yanghu:'羊祜', sp_yanghu:'羊祜',
mingfa:'明伐', mingfa:'明伐',
mingfa_info:'①结束阶段,你可展示一张牌并记录为“明伐”。②出牌阶段开始时,若“明伐”牌在你的手牌区或装备区,则你可以使用“明伐”牌与一名其他角色拼点。若你赢:你获得对方一张牌并从牌堆中获得一张点数等于“明伐”牌牌面点数-1的牌。若你没赢你本回合不能使用牌指定其他角色为目标。③你的拼点牌亮出后你令此牌的点数+2。', mingfa_info:'①结束阶段,你可展示一张牌并记录为“明伐”。②出牌阶段开始时,若“明伐”牌在你的手牌区或装备区,则你可以使用“明伐”牌与一名其他角色拼点。若你赢:你获得对方一张牌并从牌堆中获得一张点数等于“明伐”牌牌面点数-1的牌。若你没赢你本回合不能使用牌指定其他角色为目标。③你的拼点牌亮出后你令此牌的点数+2。',

View File

@ -696,6 +696,8 @@ window.noname_character_rank={
'liuzhang', 'liuzhang',
're_guyong', 're_guyong',
'xin_zhonghui', 'xin_zhonghui',
'jiachong',
'wuban',
], ],
b:[ b:[
'diy_feishi', 'diy_feishi',
@ -884,7 +886,8 @@ window.noname_character_rank={
'xiangchong', 'xiangchong',
'qiuliju', 'qiuliju',
're_dongbai', 're_dongbai',
're_guyong', 'xin_guyong',
'duosidawang',
], ],
bm:[ bm:[
'diy_xizhenxihong', 'diy_xizhenxihong',
@ -1721,6 +1724,7 @@ window.noname_character_rank={
'liuzhang', 'liuzhang',
'zhangzhongjing', 'zhangzhongjing',
'xin_zhonghui', 'xin_zhonghui',
'jiachong',
], ],
junk:[ junk:[
'sunshao', 'sunshao',

View File

@ -1104,6 +1104,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
trigger:{global:['turnOverAfter','linkAfter']}, trigger:{global:['turnOverAfter','linkAfter']},
logTarget:'player', logTarget:'player',
filter:function(event,player){
if(event.name=='link') return event.player.isLinked();
return !event.player.isTurnedOver();
},
check:function(event,player){ check:function(event,player){
return get.attitude(player,event.player)>0; return get.attitude(player,event.player)>0;
}, },

View File

@ -977,6 +977,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(target.hasSkill('drlt_xiongluan2')) return true; if(target.hasSkill('drlt_xiongluan2')) return true;
}, },
}, },
charlotte:true,
}, },
'drlt_xiongluan2':{ 'drlt_xiongluan2':{
mod:{ mod:{
@ -991,6 +992,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
}, },
charlotte:true,
}, },

View File

@ -424,7 +424,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
})) return get.attitude(player,target)/(Math.sqrt(1+target.countCards('h'))); })) return get.attitude(player,target)/(Math.sqrt(1+target.countCards('h')));
return 0; return 0;
} }
return -get.attitude(_status.event.player,target); if(target.countCards('h')>ui.selected.targets[0].countCards('h')) return -get.attitude(_status.event.player,target);
return 0;
}); });
'step 1' 'step 1'
if(result.bool){ if(result.bool){

View File

@ -134,7 +134,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var hs=player.getCards('he'); var hs=player.getCards('he');
if(!hs.length||!target.isIn()) event.finish(); if(!hs.length||!target.isIn()) event.finish();
else if(hs.length<=num) event._result={bool:true,cards:hs}; else if(hs.length<=num) event._result={bool:true,cards:hs};
else player.chooseCard('he',true,'选择交给'+get.translation(target)+get.cnNumber(num)+'张牌'); else player.chooseCard('he',true,'选择交给'+get.translation(target)+get.cnNumber(num)+'张牌',num);
'step 2' 'step 2'
if(result.bool&&result.cards&&result.cards.length) target.gain(result.cards,player,'giveAuto'); if(result.bool&&result.cards&&result.cards.length) target.gain(result.cards,player,'giveAuto');
}, },
@ -162,18 +162,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'useCard'}, trigger:{player:'useCard'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return (event.card.name=='tao'||event.card.name=='wuxie')&&((player!=status.currentPhase&&!player.hasMark('tongyuan_'+event.card.name))||(player.hasMark('tongyuan_tao')&&player.hasMark('tongyuan_wuxie'))); return (event.card.name=='tao'||event.card.name=='wuxie')&&((player!=_status.currentPhase&&!player.hasMark('tongyuan_'+event.card.name))||(player.hasMark('tongyuan_tao')&&player.hasMark('tongyuan_wuxie')));
}, },
content:function(){ content:function(){
if(!player.hasMark('tongyuan_'+trigger.card.name)){ if(!player.hasMark('tongyuan_'+trigger.card.name)){
player.addMark('tongyuan_'+trigger.card.name,1,false); player.addMark('tongyuan_'+trigger.card.name,1,false);
game.log(player,'修改了技能','#g【摧坚】'); game.log(player,'修改了技能','#g【摧坚】');
} }
else if(trigger.card.name=='wuxie') trigger.directHit.addArray(game.players); else{
if(trigger.card.name=='wuxie') trigger.directHit.addArray(game.players);
else{ else{
if(typeof trigger.baseDamage!='number') trigger.baseDamage=1; if(typeof trigger.baseDamage!='number') trigger.baseDamage=1;
trigger.baseDamage++; trigger.baseDamage++;
} }
}
}, },
}, },
xianwei:{ xianwei:{
@ -241,6 +243,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return player.countDisabled()>=5; return player.countDisabled()>=5;
}, },
content:function(){ content:function(){
player.gainMaxHp(2);
player.addSkill('xianwei_effect'); player.addSkill('xianwei_effect');
}, },
}, },
@ -382,14 +385,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return evt&&evt.hs&&evt.hs.length&&current.countCards('h')==0; return evt&&evt.hs&&evt.hs.length&&current.countCards('h')==0;
}, },
usable:1, usable:1,
logTarget:'player', logTarget:function(){
return _status.currentPhase;
},
prompt2:'与该角色各摸两张牌', prompt2:'与该角色各摸两张牌',
check:function(event,player){ check:function(event,player){
return get.attitude(player,event.player)>0; return get.attitude(player,_status.currentPhase)>0;
}, },
content:function(){ content:function(){
'step 0' 'step 0'
game.asyncDraw([trigger.player,player],2); game.asyncDraw([_status.currentPhase,player],2);
'step 1' 'step 1'
var e1=player.getHistory('gain',function(evt){ var e1=player.getHistory('gain',function(evt){
return evt.getParent(2)==event; return evt.getParent(2)==event;
@ -398,11 +403,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.addTempSkill('yaner_zhiren',{player:'phaseBegin'}); player.addTempSkill('yaner_zhiren',{player:'phaseBegin'});
game.log(player,'修改了技能','#g【织纴】'); game.log(player,'修改了技能','#g【织纴】');
} }
if(trigger.player.isIn()&&trigger.player.isDamaged()){ var target=_status.currentPhase;
var e2=trigger.player.getHistory('gain',function(evt){ if(target.isIn()&&target.isDamaged()){
var e2=target.getHistory('gain',function(evt){
return evt.getParent(2)==event; return evt.getParent(2)==event;
})[0]; })[0];
if(e2&&e2.cards&&e2.cards.length==2&&get.type(e2.cards[0])==get.type(e2.cards[1])) trigger.player.recover(); if(e2&&e2.cards&&e2.cards.length==2&&get.type(e2.cards[0])==get.type(e2.cards[1])) target.recover();
} }
'step 2' 'step 2'
game.delayx(); game.delayx();
@ -9560,6 +9566,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
huaxin:'华歆157年232年1月30日字子鱼汉族。平原郡高唐县人今山东省高唐县。汉末至三国曹魏初年名士、重臣。华歆早年拜太尉陈球为师与卢植、郑玄、管宁等为同门又与管宁、邴原共称一龙华歆为龙头。汉灵帝时华歆被举为孝廉任郎中因病去官。又被大将军何进征召为尚书郎。后任豫章太守甚得民心。孙策率军南下华歆举郡投降被奉为上宾。官渡之战时被征为议郎、参司空军事。入为尚书、侍中又代荀彧为尚书令。丞相曹操讨孙权时授华歆为军师。后为魏王国的御史大夫。曹丕即王位拜华歆为相国封安乐乡侯。曹魏建立后其相国职名改称司徒。魏明帝即位升任太尉晋封博平侯。太和五年十二月232年1月华歆去世年七十五谥号“敬”。有文集三十卷今佚失其余见《全三国文》。', huaxin:'华歆157年232年1月30日字子鱼汉族。平原郡高唐县人今山东省高唐县。汉末至三国曹魏初年名士、重臣。华歆早年拜太尉陈球为师与卢植、郑玄、管宁等为同门又与管宁、邴原共称一龙华歆为龙头。汉灵帝时华歆被举为孝廉任郎中因病去官。又被大将军何进征召为尚书郎。后任豫章太守甚得民心。孙策率军南下华歆举郡投降被奉为上宾。官渡之战时被征为议郎、参司空军事。入为尚书、侍中又代荀彧为尚书令。丞相曹操讨孙权时授华歆为军师。后为魏王国的御史大夫。曹丕即王位拜华歆为相国封安乐乡侯。曹魏建立后其相国职名改称司徒。魏明帝即位升任太尉晋封博平侯。太和五年十二月232年1月华歆去世年七十五谥号“敬”。有文集三十卷今佚失其余见《全三国文》。',
luyusheng:'陆郁生(?年-三国时期吴国官员陆绩之女。陆郁生的父亲陆绩是吴郡公认的才子又是当时吴郡陆氏的领袖。陆绩赴任担任郁林太守遂取此名。陆郁生年少的时候就定下坚贞的志向。建安二十四年219年)陆绩早亡她与两个兄弟陆宏、陆睿当时都只有几岁一起返回吴县被他们的从兄陆瑁接回抚养。13周岁的陆郁生嫁给同郡出身的张白为妻。出嫁3个月后张白因为其兄张温一族的案件遭到连坐被处以流刑后死于流放地陆郁生成为了寡妇其后公开宣言不再改嫁困难于生计但拒绝了所有提亲在艰苦中从未停止服侍、照顾张白的姐妹。事情传到朝廷皇帝褒奖陆郁生号其为“义姑”。她的表侄姚信在文集中称赞她的义举。', luyusheng:'陆郁生(?年-三国时期吴国官员陆绩之女。陆郁生的父亲陆绩是吴郡公认的才子又是当时吴郡陆氏的领袖。陆绩赴任担任郁林太守遂取此名。陆郁生年少的时候就定下坚贞的志向。建安二十四年219年)陆绩早亡她与两个兄弟陆宏、陆睿当时都只有几岁一起返回吴县被他们的从兄陆瑁接回抚养。13周岁的陆郁生嫁给同郡出身的张白为妻。出嫁3个月后张白因为其兄张温一族的案件遭到连坐被处以流刑后死于流放地陆郁生成为了寡妇其后公开宣言不再改嫁困难于生计但拒绝了所有提亲在艰苦中从未停止服侍、照顾张白的姐妹。事情传到朝廷皇帝褒奖陆郁生号其为“义姑”。她的表侄姚信在文集中称赞她的义举。',
dongxie:'董卓之女,牛辅之妻。在《三国群英传》中名为董宜,在电视剧《三国群英会之吕布与貂蝉》中名为董媛。', dongxie:'董卓之女,牛辅之妻。在《三国群英传》中名为董宜,在电视剧《三国群英会之吕布与貂蝉》中名为董媛。',
caoanmin:'曹安民(?-197年沛国谯县今安徽亳州字安民。东汉时期人物曹德之子曹操之侄曹昂的堂兄弟曹丕的堂兄死于宛城之战。按曹丕《典论》记载的“亡兄孝廉子脩、从兄安民遇害。”等情况来看安民应该是曹操侄子错不了曹丕是他们属于兄弟关系肯定不会弄错。另外从典论的记载来看安民是和子脩并提的子脩是曹昂的字安民则肯定也是字不是名至于三国志中记载则应取自曹丕之《典论》但陈寿又不知曹安民其名故写为“长子昂、弟子安民”。',
}, },
characterTitle:{ characterTitle:{
wulan:'#b对决限定武将', wulan:'#b对决限定武将',

View File

@ -5,12 +5,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true, connect:true,
characterSort:{ characterSort:{
tw:{ tw:{
tw_mobile:['tw_beimihu','nashime','tw_gexuan','tw_dongzhao'], tw_mobile:['tw_beimihu','nashime','tw_gexuan','tw_dongzhao','jiachong','duosidawang','wuban'],
tw_yijiang:['tw_caoang','tw_caohong','tw_zumao','tw_dingfeng','tw_maliang','tw_xiahouba'], tw_yijiang:['tw_caoang','tw_caohong','tw_zumao','tw_dingfeng','tw_maliang','tw_xiahouba'],
tw_english:['kaisa'], tw_english:['kaisa'],
}, },
}, },
character:{ character:{
wuban:['male','shu',4,['jintao']],
duosidawang:['male','qun','4/5',['equan','manji']],
jiachong:['male','qun',3,['beini','dingfa']],
tw_dongzhao:['male','wei',3,['twmiaolve','twyingjia']], tw_dongzhao:['male','wei',3,['twmiaolve','twyingjia']],
tw_gexuan:['male','qun',3,['twdanfa','twlingbao','twsidao']], tw_gexuan:['male','qun',3,['twdanfa','twlingbao','twsidao']],
tw_beimihu:['female','qun',3,['zongkui','guju','baijia','bingzhao'],['zhu']], tw_beimihu:['female','qun',3,['zongkui','guju','baijia','bingzhao'],['zhu']],
@ -25,6 +28,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
characterIntro:{ characterIntro:{
nashime:'难升米(なしめ,或なんしょうまい)是倭国大夫。景初二年六月,受女王卑弥呼之命,与都市牛利出使魏国,被魏国拜为率善中郎将。', nashime:'难升米(なしめ,或なんしょうまい)是倭国大夫。景初二年六月,受女王卑弥呼之命,与都市牛利出使魏国,被魏国拜为率善中郎将。',
jiachong:'贾充217年—282年字公闾平阳襄陵今山西襄汾三国曹魏至西晋时期大臣曹魏豫州刺史贾逵之子。西晋王朝的开国元勋。出身平阳贾氏。曾参与镇压淮南二叛和弑杀魏帝曹髦因此深得司马氏信任其女儿贾褒一名荃及贾南风分别嫁予司马炎弟司马攸及次子司马衷与司马氏结为姻亲地位显赫。晋朝建立后转任车骑将军、散骑常侍、尚书仆射后升任司空、太尉等要职。更封鲁郡公。咸宁末为使持节、假黄钺、大都督征讨吴国。吴国平定后增邑八千户。太康三年282年贾充去世。西晋朝廷追赠他为太宰礼官议谥曰荒司马炎不采纳改谥为武。有集五卷。',
duosidawang:'朵思大王是《三国演义》中人物,南蛮秃龙洞的元帅,孟获弟弟孟优的朋友,据说是南蛮第一智者。',
wuban:'吴班字元雄生卒年不详兖州陈留郡治今河南省开封市人。三国时期蜀汉将领。为领军随刘备参加伐吴之战后又随蜀汉丞相诸葛亮参加北伐曹魏的战争并于公元231年建兴九年的北伐中大破司马懿。官至骠骑将军封绵竹侯。吴班以豪爽侠义著称于当时又因族妹吴氏是蜀汉穆皇后在蜀汉将领中有较高的地位。',
}, },
card:{ card:{
dz_mantianguohai:{ dz_mantianguohai:{
@ -123,6 +129,185 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
skill:{ skill:{
jintao:{
mod:{
cardUsable:function(card,player,num){
if(card.name=='sha') return num+1;
},
targetInRange:function(card){
if(card.name=='sha') return true;
},
},
audio:2,
trigger:{player:'useCard'},
forced:true,
filter:function(event,player){
if(event.card.name!='sha') return false;
var evt=event.getParent('phaseUse');
if(!evt||evt.player!=player) return false;
var index=player.getHistory('useCard',function(evtx){
return evtx.card.name=='sha'&&evtx.getParent('phaseUse')==evt;
}).indexOf(event);
return index==0||index==1;
},
content:function(){
var evt=trigger.getParent('phaseUse');
var index=player.getHistory('useCard',function(evtx){
return evtx.card.name=='sha'&&evtx.getParent('phaseUse')==evt;
}).indexOf(trigger);
if(index==0){
game.log(trigger.card,'伤害+1');
if(typeof trigger.baseDamage!='number') trigger.baseDamage=1;
trigger.baseDamage++;
}
else{
game.log(trigger.card,'不可被响应');
trigger.directHit.addArray(game.players);
}
},
},
equan:{
audio:2,
trigger:{global:'damageEnd'},
forced:true,
filter:function(event,player){
return player==_status.currentPhase&&event.player.isIn();
},
logTarget:'player',
content:function(){
trigger.player.addMark('equan',trigger.num,false);
},
group:['equan_block','equan_lose'],
marktext:'毒',
intro:{
name:'恶泉(毒)',
name2:'毒',
},
subSkill:{
lose:{
audio:'equan',
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
filter:function(){
return game.hasPlayer(function(current){
return current.hasMark('equan');
});
},
logTarget:function(){
return game.filterPlayer(function(current){
return current.hasMark('equan');
});
},
content:function(){
game.countPlayer(function(current){
var num=current.countMark('equan');
if(num){
current.removeMark('equan',num);
current.loseHp(num);
}
});
},
},
block:{
trigger:{global:'dyingBegin'},
forced:true,
logTarget:'player',
filter:function(event,player){
var evt=event.getParent(2);
return evt.name=='equan_lose'&&evt.player==player;
},
content:function(){
trigger.player.addTempSkill('fengyin');
},
},
},
},
manji:{
audio:2,
trigger:{global:'loseHpAfter'},
forced:true,
filter:function(event,player){
return player.hp>=event.player.hp||player.isDamaged();
},
logTarget:'player',
content:function(){
if(player.hp<=trigger.player.hp) player.recover();
if(player.hp>=trigger.player.hp) player.draw();
},
},
beini:{
audio:2,
enable:'phaseUse',
usable:1,
filterTarget:lib.filter.notMe,
content:function(){
'step 0'
var str=get.translation(target);
player.chooseControl().set('choiceList',[
'摸两张牌,然后令'+str+'视为对自己使用【杀】',
'令'+str+'摸两张牌,然后视为对其使用【杀】',
]).set('ai',function(){
var evt=_status.event.getParent(),player=evt.player,target=evt.target;
var card={name:'sha',isCard:true},att=get.attitude(player,target)>0;
if(!target.canUse(card,player,false)||get.effect(player,card,target,player)>=0) return 0;
if(att&&(!player.canUse(card,target,false)||get.effect(target,card,player,player)>=0)) return 1;
if(target.hasSkill('nogain')&&player.canUse(card,target,false)&&get.effect(target,card,player,player)>0) return 1;
if(player.hasShan()) return 0;
if(att&&target.hasShan()) return 1;
return 0;
});
'step 1'
var list=[player,target];
if(result.index==1) list.reverse();
event.list=list;
list[0].draw(2);
'step 2'
var list=event.list;
if(list[1].isIn()&&list[0].isIn()&&list[1].canUse('sha',list[0],false)) list[1].useCard({name:'sha',isCard:true},list[0],false);
},
ai:{
order:5,
expose:0,
result:{
player:function(player,target){
var card={name:'sha',isCard:true},att=get.attitude(player,target)>0;
if(!target.canUse(card,player,false)||get.effect(player,card,target,player)>=0) return 2;
if(att&&(!player.canUse(card,target,false)||get.effect(target,card,player,player)>=0)) return 2;
if(target.hasSkill('nogain')&&player.canUse(card,target,false)) return get.effect(target,card,player,player)
if(player.hasShan()) return 1;
if(att&&target.hasShan()) return 1;
return 0;
},
},
},
},
dingfa:{
audio:2,
trigger:{player:'phaseDiscardAfter'},
direct:true,
filter:function(event,player){
var num=0;
player.getHistory('lose',function(evt){
num+=evt.cards2.length;
});
return num>=player.hp;
},
content:function(){
'step 0'
player.chooseTarget(get.prompt('dingfa'),'操作提示:选择自己以回复体力,或选择其他角色以造成伤害',function(card,player,target){
return target==player?player.isDamaged():true;
}).set('ai',function(target){
return target!=player?get.damageEffect(target,player,player):get.recoverEffect(player,player,player)
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('dingfa',target);
if(target==player) player.recover();
else target.damage();
}
},
},
dz_mantianguohai:{ dz_mantianguohai:{
mod:{ mod:{
ignoredHandcard:function(card,player){ ignoredHandcard:function(card,player){
@ -1167,6 +1352,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
twyingjia_info:'一名角色的回合结束时,若你本回合内使用过两张或更多的同名锦囊牌,则你可弃置一张手牌并令一名角色进行一个额外回合。', twyingjia_info:'一名角色的回合结束时,若你本回合内使用过两张或更多的同名锦囊牌,则你可弃置一张手牌并令一名角色进行一个额外回合。',
dz_mantianguohai:'瞒天过海', dz_mantianguohai:'瞒天过海',
dz_mantianguohai_info:'此牌不计入拥有者的手牌上限。出牌阶段,对一至两名区域内有牌的其他角色使用。你获得目标角色一张牌,然后依次交给每名目标角色各一张牌。', dz_mantianguohai_info:'此牌不计入拥有者的手牌上限。出牌阶段,对一至两名区域内有牌的其他角色使用。你获得目标角色一张牌,然后依次交给每名目标角色各一张牌。',
jiachong:'贾充',
beini:'悖逆',
beini_info:'出牌阶段限一次,你可以选择一名体力值不小于你的角色,令你或其摸两张牌,然后未摸牌的角色视为对摸牌的角色使用一张【杀】。',
dingfa:'定法',
dingfa_info:'弃牌阶段结束时若本回合你失去的牌数不小于你的体力值你可以选择一项1、回复1点体力2、对一名其他角色造成1点伤害。 ',
duosidawang:'朵思大王',
equan:'恶泉',
equan_info:'锁定技。①当有角色于你的回合内受到伤害后其获得X枚“毒”X为伤害值。②准备阶段你令所有拥有“毒”标记的角色移去所有“毒”标记并失去等量的体力。③当有角色因〖恶泉②〗进入濒死状态时你令其所有非锁定技失效直到回合结束。',
manji:'蛮汲',
manji_info:'锁定技。其他角色失去体力后若你的体力值不大于该角色你回复1点体力不小于该角色你摸一张牌。',
wuban:'吴班',
jintao:'进讨',
jintao_info:'锁定技,你使用【杀】无距离限制且次数上限+1。你于出牌阶段内使用的第一张【杀】伤害+1第二张【杀】不可被响应。',
tw_mobile:'移动版', tw_mobile:'移动版',
tw_yijiang:'一将成名TW', tw_yijiang:'一将成名TW',
tw_english:'英文版', tw_english:'英文版',

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[ window.noname_asset_list=[
'v1.9.110.9.2', 'v1.9.110.9.2.1',
'audio/background/aozhan_chaoming.mp3', 'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3', 'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3', 'audio/background/aozhan_rewrite.mp3',
@ -4414,6 +4414,9 @@ window.noname_asset_list=[
'image/character/re_panshu.jpg', 'image/character/re_panshu.jpg',
'image/character/zhanghu.jpg', 'image/character/zhanghu.jpg',
'image/character/key_kano.jpg', 'image/character/key_kano.jpg',
'image/character/duosidawang.jpg',
'image/character/jiachong.jpg',
'image/character/wuban.jpg',
'image/character/baiwuchang.jpg', 'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg', 'image/character/baosanniang.jpg',

View File

@ -11682,7 +11682,7 @@
if(!window.isNonameServer){ if(!window.isNonameServer){
var me=game.connectPlayers[0]; var me=game.connectPlayers[0];
me.setIdentity('zhu'); me.setIdentity('zhu');
me.initOL(lib.config.connect_nickname,lib.config.connect_avatar); me.initOL(get.connectNickname(),lib.config.connect_avatar);
me.playerid='1'; me.playerid='1';
game.onlinezhu='1'; game.onlinezhu='1';
} }
@ -17155,7 +17155,7 @@
if(this.hp<this.maxHp||config.gameStarted) str+=('人数:'+this.hp+'/'+this.maxHp); if(this.hp<this.maxHp||config.gameStarted) str+=('人数:'+this.hp+'/'+this.maxHp);
else str+=('人数:<span class="firetext">'+this.hp+'/'+this.maxHp+'</span>'); else str+=('人数:<span class="firetext">'+this.hp+'/'+this.maxHp+'</span>');
str+=(' ('+info[0]+' 的房间)'); str+=(' ('+info[0].slice(0,12)+' 的房间)');
this.config=config; this.config=config;
if(this.hp==this.maxHp&&!config.gameStarted){ if(this.hp==this.maxHp&&!config.gameStarted){
this.roomfull=true; this.roomfull=true;
@ -17494,6 +17494,7 @@
} }
}, },
showGiveup:function(){ showGiveup:function(){
this._giveUp=true;
if(this==game.me){ if(this==game.me){
ui.create.giveup(); ui.create.giveup();
} }
@ -17567,7 +17568,7 @@
return state; return state;
}, },
setNickname:function(str){ setNickname:function(str){
this.node.nameol.innerHTML=str||this.nickname||''; this.node.nameol.innerHTML=(str||this.nickname||'').slice(0,12);
return this; return this;
}, },
setAvatar:function(name,name2,video,fakeme){ setAvatar:function(name,name2,video,fakeme){
@ -18184,7 +18185,7 @@
skills.remove(i); skills.remove(i);
} }
if(arg4!==false){ if(arg4!==false){
skills=game.filterSkills(skills,this); skills=game.filterSkills(skills,this,es);
} }
return skills; return skills;
}, },
@ -18227,7 +18228,7 @@
skills.remove(i); skills.remove(i);
} }
if(arg4!==false){ if(arg4!==false){
skills=game.filterSkills(skills,this); skills=game.filterSkills(skills,this,es);
} }
return skills; return skills;
} }
@ -26401,7 +26402,7 @@
mark:true, mark:true,
intro:{ intro:{
content:function(storage,player,skill){ content:function(storage,player,skill){
var list=player.getSkills(null,null,false).filter(function(i){ var list=player.getSkills(null,false,false).filter(function(i){
return lib.skill.fengyin.skillBlocker(i,player); return lib.skill.fengyin.skillBlocker(i,player);
}); });
if(list.length) return '失效技能:'+get.translation(list); if(list.length) return '失效技能:'+get.translation(list);
@ -26423,7 +26424,7 @@
mark:true, mark:true,
intro:{ intro:{
content:function(storage,player,skill){ content:function(storage,player,skill){
var list=player.getSkills(null,null,false).filter(function(i){ var list=player.getSkills(null,false,false).filter(function(i){
return lib.skill.baiban.skillBlocker(i,player); return lib.skill.baiban.skillBlocker(i,player);
}); });
if(list.length) return '失效技能:'+get.translation(list); if(list.length) return '失效技能:'+get.translation(list);
@ -26887,6 +26888,7 @@
this.inited=true; this.inited=true;
}, },
result:function(result){ result:function(result){
if(lib.node.observing.contains(this)) return;
var player=lib.playerOL[this.id]; var player=lib.playerOL[this.id];
if(player){ if(player){
player.unwait(result); player.unwait(result);
@ -26940,12 +26942,14 @@
} }
}, },
throwEmotion:function(target,emotion){ throwEmotion:function(target,emotion){
if(lib.node.observing.contains(this)) return;
var player=lib.playerOL[this.id]; var player=lib.playerOL[this.id];
if(player){ if(player){
player.throwEmotion(target,emotion); player.throwEmotion(target,emotion);
} }
}, },
emotion:function(id,pack,emotion){ emotion:function(id,pack,emotion){
if(lib.node.observing.contains(this)) return;
var that=this; var that=this;
if(!this.id||(!lib.playerOL[this.id]&&(!game.connectPlayers||!function(){ if(!this.id||(!lib.playerOL[this.id]&&(!game.connectPlayers||!function(){
for(var i=0;i<game.connectPlayers.length;i++){ for(var i=0;i<game.connectPlayers.length;i++){
@ -26969,6 +26973,7 @@
if(player) lib.element.player.emotion.apply(player,[pack,emotion]); if(player) lib.element.player.emotion.apply(player,[pack,emotion]);
}, },
chat:function(id,str){ chat:function(id,str){
if(lib.node.observing.contains(this)) return;
var that=this; var that=this;
if(!this.id||(!lib.playerOL[this.id]&&(!game.connectPlayers||!function(){ if(!this.id||(!lib.playerOL[this.id]&&(!game.connectPlayers||!function(){
for(var i=0;i<game.connectPlayers.length;i++){ for(var i=0;i<game.connectPlayers.length;i++){
@ -26992,6 +26997,7 @@
if(player) lib.element.player.chat.call(player,str); if(player) lib.element.player.chat.call(player,str);
}, },
giveup:function(player){ giveup:function(player){
if(lib.node.observing.contains(this)||!player||!player._giveUp) return;
_status.event.next.length=0; _status.event.next.length=0;
game.createEvent('giveup',false).setContent(function(){ game.createEvent('giveup',false).setContent(function(){
game.log(player,'投降'); game.log(player,'投降');
@ -27000,6 +27006,7 @@
}).player=player; }).player=player;
}, },
auto:function(){ auto:function(){
if(lib.node.observing.contains(this)) return;
var player=lib.playerOL[this.id]; var player=lib.playerOL[this.id];
if(player){ if(player){
player.isAuto=true; player.isAuto=true;
@ -27010,6 +27017,7 @@
} }
}, },
unauto:function(){ unauto:function(){
if(lib.node.observing.contains(this)) return;
var player=lib.playerOL[this.id]; var player=lib.playerOL[this.id];
if(player){ if(player){
player.isAuto=false; player.isAuto=false;
@ -27052,7 +27060,7 @@
game.send('init',lib.versionOL,{ game.send('init',lib.versionOL,{
id:game.onlineID, id:game.onlineID,
avatar:lib.config.connect_avatar, avatar:lib.config.connect_avatar,
nickname:lib.config.connect_nickname nickname:get.connectNickname()
},lib.config.banned_info); },lib.config.banned_info);
if(ui.connecting&&!ui.connecting.splashtimeout){ if(ui.connecting&&!ui.connecting.splashtimeout){
ui.connecting.firstChild.innerHTML='重连成功'; ui.connecting.firstChild.innerHTML='重连成功';
@ -27132,7 +27140,7 @@
ui.auto.hide(); ui.auto.hide();
clearTimeout(_status.createNodeTimeout); clearTimeout(_status.createNodeTimeout);
game.send('server','changeAvatar',lib.config.connect_nickname,lib.config.connect_avatar); game.send('server','changeAvatar',get.connectNickname(),lib.config.connect_avatar);
var proceed=function(){ var proceed=function(){
game.ip=get.trimip(_status.ip); game.ip=get.trimip(_status.ip);
@ -27201,7 +27209,7 @@
n--; n--;
if(findRoom(id)){ if(findRoom(id)){
clearInterval(interval); clearInterval(interval);
game.send('server','enter',id,lib.config.connect_nickname,lib.config.connect_avatar); game.send('server','enter',id,get.connectNickname(),lib.config.connect_avatar);
} }
} }
else{ else{
@ -27244,7 +27252,7 @@
} }
else{ else{
ui.create.connecting(); ui.create.connecting();
game.send('server',(game.roomId==game.onlineKey)?'create':'enter',game.roomId,lib.config.connect_nickname,lib.config.connect_avatar); game.send('server',(game.roomId==game.onlineKey)?'create':'enter',game.roomId,get.connectNickname(),lib.config.connect_avatar);
} }
} }
lib.init.onfree(); lib.init.onfree();
@ -27276,7 +27284,7 @@
if(!i) continue; if(!i) continue;
map[i[4]]=i; map[i[4]]=i;
if(!map2[i[4]]){ if(!map2[i[4]]){
var player=ui.roombase.add('<div class="popup text pointerdiv" style="width:calc(100% - 10px);display:inline-block">空房间</div>'); var player=ui.roombase.add('<div class="popup text pointerdiv" style="width:calc(100% - 10px);display:inline-block;white-space:nowrap">空房间</div>');
player.roomindex=i; player.roomindex=i;
player.initRoom=lib.element.player.initRoom; player.initRoom=lib.element.player.initRoom;
player.addEventListener(lib.config.touchscreen?'touchend':'click',ui.click.connectroom); player.addEventListener(lib.config.touchscreen?'touchend':'click',ui.click.connectroom);
@ -28164,7 +28172,7 @@
} }
if(!window.isNonameServer){ if(!window.isNonameServer){
game.me.playerid=get.id(); game.me.playerid=get.id();
game.me.nickname=lib.config.connect_nickname; game.me.nickname=get.connectNickname();
game.me.setNickname(); game.me.setNickname();
} }
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
@ -28182,7 +28190,7 @@
ui.create.players(); ui.create.players();
ui.create.me(); ui.create.me();
game.me.playerid=game.onlineID; game.me.playerid=game.onlineID;
game.me.nickname=lib.config.connect_nickname; game.me.nickname=get.connectNickname();
for(var i=0;i<map.length;i++){ for(var i=0;i<map.length;i++){
if(map[i][0]==game.me.playerid){ if(map[i][0]==game.me.playerid){
map=map.concat(map.splice(0,i)); map=map.concat(map.splice(0,i));
@ -32744,7 +32752,7 @@
else{ else{
skills2=player.getSkills(true,true,false); skills2=player.getSkills(true,true,false);
} }
skills2=game.filterSkills(skills2.concat(lib.skill.global),player); skills2=game.filterSkills(skills2.concat(lib.skill.global),player,player.getSkills('e'));
event._skillChoice=[]; event._skillChoice=[];
game.expandSkills(skills2); game.expandSkills(skills2);
for(i=0;i<skills2.length;i++){ for(i=0;i<skills2.length;i++){
@ -35144,14 +35152,14 @@
} }
} }
}, },
filterSkills:function(skills,player){ filterSkills:function(skills,player,exclude){
var out=skills.slice(0); var out=skills.slice(0);
for(var i in player.disabledSkills){ for(var i in player.disabledSkills){
out.remove(i); out.remove(i);
} }
if(player.storage.skill_blocker&&player.storage.skill_blocker.length){ if(player.storage.skill_blocker&&player.storage.skill_blocker.length){
for(var i=0;i<out.length;i++){ for(var i=0;i<out.length;i++){
if(get.is.blocked(out[i],player)) out.splice(i--,1); if((!exclude||!exclude.contains(out[i]))&&get.is.blocked(out[i],player)) out.splice(i--,1);
} }
} }
return out; return out;
@ -35330,7 +35338,7 @@
ui.roombase.classList.add('scroll2'); ui.roombase.classList.add('scroll2');
ui.roombase.classList.add('noupdate'); ui.roombase.classList.add('noupdate');
for(var i=0;i<list.length;i++){ for(var i=0;i<list.length;i++){
var player=ui.roombase.add('<div class="popup text pointerdiv" style="width:calc(100% - 10px);display:inline-block">空房间</div>'); var player=ui.roombase.add('<div class="popup text pointerdiv" style="width:calc(100% - 10px);display:inline-block;white-space:nowrap">空房间</div>');
player.roomindex=i; player.roomindex=i;
player.initRoom=lib.element.player.initRoom; player.initRoom=lib.element.player.initRoom;
player.addEventListener(lib.config.touchscreen?'touchend':'click',ui.click.connectroom); player.addEventListener(lib.config.touchscreen?'touchend':'click',ui.click.connectroom);
@ -35977,6 +35985,7 @@
if(!input.innerHTML||get.is.banWords(input.innerHTML)){ if(!input.innerHTML||get.is.banWords(input.innerHTML)){
input.innerHTML='无名玩家'; input.innerHTML='无名玩家';
} }
input.innerHTML=input.innerHTML.slice(0,12);
game.saveConfig('connect_nickname',input.innerHTML); game.saveConfig('connect_nickname',input.innerHTML);
game.saveConfig('connect_nickname',input.innerHTML,'connect'); game.saveConfig('connect_nickname',input.innerHTML,'connect');
} }
@ -36138,10 +36147,10 @@
} }
config.banned=lib.config['connect_'+active.mode+'_banned']; config.banned=lib.config['connect_'+active.mode+'_banned'];
config.bannedcards=lib.config['connect_'+active.mode+'_bannedcards']; config.bannedcards=lib.config['connect_'+active.mode+'_bannedcards'];
game.send('server','create',game.onlineKey,lib.config.connect_nickname,lib.config.connect_avatar,config,active.mode); game.send('server','create',game.onlineKey,get.connectNickname(),lib.config.connect_avatar,config,active.mode);
} }
else{ else{
game.send('server','create',game.onlineKey,lib.config.connect_nickname,lib.config.connect_avatar); game.send('server','create',game.onlineKey,get.connectNickname(),lib.config.connect_avatar);
} }
} }
else{ else{
@ -38686,7 +38695,7 @@
infoExtLine.appendChild(infoExtName); infoExtLine.appendChild(infoExtName);
return infoExtLine; return infoExtLine;
}; };
var authorExtLine=createExtLine('扩展作者',lib.config.connect_nickname); var authorExtLine=createExtLine('扩展作者',get.connectNickname());
var introExtLine=createExtLine('扩展描述'); var introExtLine=createExtLine('扩展描述');
var versionExtLine=createExtLine('扩展版本','1.0'); var versionExtLine=createExtLine('扩展版本','1.0');
var diskExtLine=createExtLine('网盘地址'); var diskExtLine=createExtLine('网盘地址');
@ -38704,7 +38713,7 @@
versionExtLine.querySelector('input').value=lib.extensionPack[name].version||''; versionExtLine.querySelector('input').value=lib.extensionPack[name].version||'';
} }
else{ else{
authorExtLine.querySelector('input').value=lib.config.connect_nickname||''; authorExtLine.querySelector('input').value=get.connectNickname()||'';
introExtLine.querySelector('input').value=''; introExtLine.querySelector('input').value='';
diskExtLine.querySelector('input').value=''; diskExtLine.querySelector('input').value='';
forumExtLine.querySelector('input').value=''; forumExtLine.querySelector('input').value='';
@ -45138,7 +45147,7 @@
utc:utc, utc:utc,
day:parseInt(daysselect.value), day:parseInt(daysselect.value),
hour:parseInt(hoursselect.value), hour:parseInt(hoursselect.value),
nickname:lib.config.connect_nickname, nickname:get.connectNickname(),
avatar:lib.config.connect_avatar, avatar:lib.config.connect_avatar,
content:button.input.value, content:button.input.value,
create:game.onlineKey, create:game.onlineKey,
@ -45194,7 +45203,7 @@
utc:utc, utc:utc,
day:parseInt(daysselect.value), day:parseInt(daysselect.value),
hour:parseInt(hoursselect.value), hour:parseInt(hoursselect.value),
nickname:lib.config.connect_nickname, nickname:get.connectNickname(),
avatar:lib.config.connect_avatar, avatar:lib.config.connect_avatar,
content:button.input.value content:button.input.value
},game.onlineKey); },game.onlineKey);
@ -47606,7 +47615,7 @@
if(!_status.enteringroom){ if(!_status.enteringroom){
_status.enteringroom=true; _status.enteringroom=true;
_status.enteringroomserver=this.serving; _status.enteringroomserver=this.serving;
game.send('server','enter',this.key,lib.config.connect_nickname,lib.config.connect_avatar); game.send('server','enter',this.key,get.connectNickname(),lib.config.connect_avatar);
} }
} }
}, },
@ -49189,6 +49198,9 @@
}, },
}; };
var get={ var get={
connectNickname:function(){
return typeof lib.config.connect_nickname=='string'?(lib.config.connect_nickname.slice(0,12)):'无名玩家';
},
zhinangs:function(filter){ zhinangs:function(filter){
var list=(_status.connectMode?lib.configOL:lib.config).zhinang_tricks; var list=(_status.connectMode?lib.configOL:lib.config).zhinang_tricks;
if(!list||!list.filter||!list.length) return get.inpile('trick','trick').randomGets(3); if(!list||!list.filter||!list.length) return get.inpile('trick','trick').randomGets(3);
@ -51250,6 +51262,8 @@
gainableSkills:function(func,player){ gainableSkills:function(func,player){
var list=[]; var list=[];
for(var i in lib.character){ for(var i in lib.character){
if(lib.filter.characterDisabled(i)) continue;
if(lib.filter.characterDisabled2(i)) continue;
if(lib.character[i][4]){ if(lib.character[i][4]){
if(lib.character[i][4].contains('boss')) continue; if(lib.character[i][4].contains('boss')) continue;
if(lib.character[i][4].contains('hiddenboss')) continue; if(lib.character[i][4].contains('hiddenboss')) continue;

View File

@ -10,7 +10,8 @@
var bannedKeyWords=[]; var bannedKeyWords=[];
var messages={ var messages={
create:function(key,nickname,avatar,config,mode){ create:function(key,nickname,avatar,config,mode){
this.nickname=nickname; if(this.onlineKey!=key) return;
this.nickname=util.getNickname(nickname);
this.avatar=avatar; this.avatar=avatar;
var room={}; var room={};
rooms.push(room); rooms.push(room);
@ -21,7 +22,7 @@
this.sendl('createroom',key); this.sendl('createroom',key);
}, },
enter:function(key,nickname,avatar){ enter:function(key,nickname,avatar){
this.nickname=nickname; this.nickname=util.getNickname(nickname);
this.avatar=avatar; this.avatar=avatar;
var room=false; var room=false;
for(var i of rooms){ for(var i of rooms){
@ -40,10 +41,10 @@
if(room.servermode&&!room.owner._onconfig&&config&&mode){ if(room.servermode&&!room.owner._onconfig&&config&&mode){
room.owner.sendl('createroom',index,config,mode); room.owner.sendl('createroom',index,config,mode);
room.owner._onconfig=this; room.owner._onconfig=this;
room.owner.nickname=nickname; room.owner.nickname=util.getNickname(nickname);
room.owner.avatar=avatar; room.owner.avatar=avatar;
} }
else if(!room.config){ else if(!room.config||(room.config.gameStarted&&(!room.config.observe||!room.config.observeReady))){
this.sendl('enterroomfailed'); this.sendl('enterroomfailed');
} }
else{ else{
@ -54,7 +55,7 @@
} }
}, },
changeAvatar:function(nickname,avatar){ changeAvatar:function(nickname,avatar){
this.nickname=nickname; this.nickname=util.getNickname(nickname);
this.avatar=avatar; this.avatar=avatar;
util.updateclients(); util.updateclients();
}, },
@ -68,7 +69,7 @@
else{ else{
room.owner=this; room.owner=this;
this.room=room; this.room=room;
this.nickname=cfg[1]; this.nickname=util.getNickname(cfg[1]);
this.avatar=cfg[2]; this.avatar=cfg[2];
this.sendl('createroom',cfg[0],{},'auto') this.sendl('createroom',cfg[0],{},'auto')
} }
@ -103,7 +104,7 @@
delete this.keyCheck; delete this.keyCheck;
}, },
events:function(cfg,id,type){ events:function(cfg,id,type){
if(bannedKeys.indexOf(id)!=-1||typeof id!='string'){ if(bannedKeys.indexOf(id)!=-1||typeof id!='string'||this.onlineKey!=id){
bannedIps.push(this._socket.remoteAddress); bannedIps.push(this._socket.remoteAddress);
console.log(id, this._socket.remoteAddress); console.log(id, this._socket.remoteAddress);
this.close(); this.close();
@ -148,7 +149,7 @@
this.sendl('eventsdenied','ban'); this.sendl('eventsdenied','ban');
} }
else{ else{
cfg.nickname=cfg.nickname||'无名玩家'; cfg.nickname=util.getNickname(nickname);
cfg.avatar=cfg.nickname||'caocao'; cfg.avatar=cfg.nickname||'caocao';
cfg.creator=id; cfg.creator=id;
cfg.id=util.getid(); cfg.id=util.getid();
@ -205,6 +206,9 @@
}, },
}; };
var util={ var util={
getNickname:function(str){
return typeof str=='string'?(str.slice(0,12)):'无名玩家';
},
isBanned:function(str){ isBanned:function(str){
for(var i of bannedKeyWords){ for(var i of bannedKeyWords){
if(str.indexOf(i)!=-1) return true; if(str.indexOf(i)!=-1) return true;

View File

@ -1,6 +1,6 @@
window.noname_update={ window.noname_update={
version:'1.9.110.9.2', version:'1.9.110.9.2.1',
update:'1.9.110.9.1', update:'1.9.110.9.2',
changeLog:[ changeLog:[
'雾岛佳乃', '雾岛佳乃',
'十周年潘淑、曹安民、张虎、国战邓芝', '十周年潘淑、曹安民、张虎、国战邓芝',
@ -14,15 +14,15 @@ window.noname_update={
//'card/huanlekapai.js', //'card/huanlekapai.js',
//'card/mtg.js', //'card/mtg.js',
//'card/sp.js', //'card/sp.js',
//'card/standard.js', 'card/standard.js',
//'card/swd.js', //'card/swd.js',
//'card/yunchou.js', //'card/yunchou.js',
'card/yingbian.js', //'card/yingbian.js',
//'card/zhenfa.js', //'card/zhenfa.js',
//'card/zhulu.js', //'card/zhulu.js',
'character/diy.js', 'character/diy.js',
'character/extra.js', //'character/extra.js',
'character/hearth.js', //'character/hearth.js',
//'character/gujian.js', //'character/gujian.js',
//'character/gwent.js', //'character/gwent.js',
//'character/hearth.js', //'character/hearth.js',
@ -36,13 +36,13 @@ window.noname_update={
'character/shenhua.js', 'character/shenhua.js',
'character/sp.js', 'character/sp.js',
'character/sp2.js', 'character/sp2.js',
//'character/tw.js', 'character/tw.js',
//'character/standard.js', //'character/standard.js',
//'character/swd.js', //'character/swd.js',
//'character/xianjian.js', //'character/xianjian.js',
//'character/xinghuoliaoyuan.js', //'character/xinghuoliaoyuan.js',
//'character/yingbian.js', //'character/yingbian.js',
'character/yijiang.js', //'character/yijiang.js',
//'character/yxs.js', //'character/yxs.js',
//'extension/boss/extension.js', //'extension/boss/extension.js',
'layout/default/layout.css', 'layout/default/layout.css',
@ -54,7 +54,7 @@ window.noname_update={
//'mode/chess.js', //'mode/chess.js',
//'mode/connect.js', //'mode/connect.js',
//'mode/doudizhu.js', //'mode/doudizhu.js',
'mode/guozhan.js', //'mode/guozhan.js',
//'mode/identity.js', //'mode/identity.js',
//'mode/single.js', //'mode/single.js',
//'mode/stone.js', //'mode/stone.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

BIN
image/character/wuban.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

View File

@ -2125,6 +2125,7 @@ div:not(.handcards)>.card>.info>span,
width: 100%; width: 100%;
font-size: 12px; font-size: 12px;
text-align: center; text-align: center;
white-space: nowrap;
/*opacity: 0;*/ /*opacity: 0;*/
} }
.player:hover>.nameol { .player:hover>.nameol {