夏目友人帐

妖怪联络簿

绿川幸

热血 冒险 神鬼

了和保镖(自称)猫咪老师一同将名字还给妖怪们的日子──? 少年夏目在继承了外婆铃子的遗物──统率妖怪们的契约书「连络簿」之後,就过着将名字归还给妖怪们的日子。有一天,他和同学一起去参加试胆大会,结果在那里发现妖怪的气息!夏目和保镖猫咪老师一同前去追查真相,不过…?妖怪契约奇谭第2集登场。 从外婆铃子那里继承了可以统率妖怪们的契约书「连络簿」之後,少年夏目就一直在将名字归还给妖怪们。有一天,出现和保镖‧猫咪老师一模一样的黑猫咪老师,他从夏目的手中夺走了「连络簿」!慌忙追上去的夏目和猫咪老师所见到的景象居然是…? 拥有强大妖力的外婆‧铃子的遗物「连络簿」,是能够统率众多妖怪的契约书。继承之後,决定归还名字的少年夏目每天都被妖怪攻击,忙得不可开交。就在这时候,在他和妖怪保镖猫咪老师一同前去的积雪空地上,前来要求他帮忙的是? 夏目每天都过着将受到外婆的遗物‧「连络簿」所支配的妖怪们的名字还给他们的日子。有一天,他邂逅了在地面上画下魔法阵的少女‧多轨。多轨为了解除从前妖怪施加在自己身上的咒术而四处奔走,於是夏目决定助她一臂之力。不过,夏目本身也受到了诅咒?妖怪契约奇谭第5集! 外婆的遗物「连络簿」是统率许多妖怪的契约书。继承它之後,每天都忙着归还妖怪名字的夏目在废屋当中,解救了被关在箱子里的少年‧介。虽然击退了攻击他的妖怪,不过还有其他人也盯上了他?妖怪契约奇谭第6集!除了标题作品外,还收录短篇「校园一隅」! 外婆的遗物「连络簿」是统率许多妖怪的契约书。继承这项遗物,每天都在归还名字的夏目,有一天在附近森林里遭遇夺取妖怪鲜血的事件。在与名取共同追查事件的期间,遇上除妖师‧的场一门的首领的场…?同时收录短篇「夏日叹息」! 有一天,像镜子碎片般的东西掉进夏目眼里。为了保护这样的夏目,田沼被妖怪附身。只要协助那个妖怪收集镜子的碎片,他就愿意离开身体。夏目等人决定去找镜子,但其他妖怪也想得到镜子?大受欢迎!妖怪契约奇谭第8集! 夏目继承外婆的遗物──保留许多妖怪名字的「连络簿」後,过着归还名字的日子。有一天,被前来取回名字时遗失戒指的妖怪‧天名袭击──?此外,夏目眼前出现想要抢走连络簿的妖怪集团…?大受欢迎!妖怪契约奇谭第9集! 夏目继承外婆的遗物──保留许多妖怪名字的「连络簿」後,便过着归还名字的日子。有一天,被突然出现的老同学‧柴田硬是拉去见高中女生‧村崎。日後感到不安的夏目在赶去後,在那里见到的她的真面目是…?妖怪契约奇谭第10集! 夏目在继承了外婆与妖怪交换的契约书「连络簿」後,便过着归还名字的日子。有一天,在协助朋友‧多轨打扫家里的仓库时,解放了多轨的祖父封印的坏妖怪。为了阻止他变强,妖怪们协助夏目等人…?妖怪契约奇谭第11集! 夏目在继承了外婆的遗物──写着许多妖怪名字的契约书「连络簿」後,便过着归还名字的日子。有一天,被擅长模仿声音的妖怪‧呼子欺骗,让他进入家中。根据他的说法,是希望夏目能用连络簿替他叫出一只妖怪。当中的理由是──?妖怪契约奇谭第12集! 有一天,夏目收到除妖师一门的首领‧的场寄来的信。不过他还没有看,就把信给弄丢了。在因不知内容而感到不安之际,的场本人出现!他的目的是?同时收录描绘夏目与与友人‧西村&北本邂逅及交流的两篇特别篇。妖怪契约奇谭第13集! 夏目在跑腿途中被小妖怪捉走。在喉咙受伤无法出声时,出现另一只认识他外婆‧铃子的妖怪!夏目也因此获救脱脸。不过,接着却被带往那只妖怪的住处…?同时收录以中级妖怪搭档为主角的特别篇。妖怪契约奇谭第14集! 夏目在街上拾获名取的纸人,造访上头记载的地点。那里有个跟前任除妖人父亲同住的少女。之後,夏目与名取一同调查发生在她家中的怪事…?同时收录描写领养夏目前的藤原夫妇的特别篇。妖怪契约奇谭第15集! 夏目在学校的黑板上发现妖怪的涂鸦。正当他提高警觉时,听说了多轨最近使用魔法阵,救出迷路走进她家的妖怪的事。夏目想要告诉多轨,她的魔法阵在除妖人当中被视为禁术…!同时收录有小妖怪们登场的特别篇。妖怪契约奇谭第16集! 夏目在办完事回家的路上,遇到一个不可思议的少年‧葵,他正在寻找儿时玩伴的少女。由於葵就连她就读哪所学校都不知道,因此夏目带领他到自己就读的学校去寻找线索,接着得知了某项秘密…?同时收录揭晓名取及的场过去的特别篇。妖怪契约奇谭第17集! 夏目遇到在师傅手下学习的妖怪‧白,突然被要求担任裁判。根据他的说法,是想赌上继承人宝座,和另外一名徒弟‧朱一决胜负。不过不知为何,朱四处躲藏…?同时收录描绘夏目&猫咪老师及少女一日的特别篇。妖怪契约奇谭第18集!
更多

评分

05-19

更新时间

连载中

漫画评分

请输入正确的数字
稍后再评分

漫画吐槽

页面内容已过期,前往最新页面

确定 取消

未注册用户只能收藏3部漫画,注册用户不受限制

前往注册 取消

MIP.util.platform.start() if(window.location.origin != 'https://m.happymh.com'){ MIP.setData({sys:{isHost:false}}); } MIP.setData({"sys":{"linkType":"html"}}) var storage = MIP.util.customStorage(0); var user = storage.get("_u"); var uBookcase = storage.get("_bc"); var uHistory = storage.get("_ht"); var bc_time = storage.get("_bc_time"); if(user !== null){ user = JSON.parse(user) uBookcase = JSON.parse(uBookcase) uHistory = JSON.parse(uHistory) MIP.setData({"user":{"detail":user,"uHistory":uHistory ? uHistory : [],"uBookcase": uBookcase ? uBookcase : [],"bc_time":bc_time}}); } MIP.watch('user.changeTime', function (newVal, oldVal) { if(newVal !== 0){ var user = MIP.getData("user"); var detail = user.detail; var bookcase = user.uBookcase; var history = user.uHistory; storage.set("_u",JSON.stringify(detail)); storage.set("_bc",JSON.stringify(bookcase)); storage.set("_ht",JSON.stringify(history)); storage.set("_bc_time",user.bc_time); } }) MIP.watch('user.action', function (newVal, oldVal) { if(newVal === 'exit'){ var expireOld = new Date((new Date()).getTime() - 24 * 3600000 * 365); var host = location.host; var mainHost = host.replace('m.', '.'); document.cookie = "sf_token=; expires=" + expireOld+"; Path=/ ; domain="+mainHost; document.cookie = "sf_token=; expires=" + expireOld+"; Path=/"; storage.clear(); } }) MIP.watch('sys.toastMsg.visible', function (newVal, oldVal) { var toastConfig = MIP.getData("sys.toastMsg"); if(newVal === true){ setTimeout(function(){ MIP.setData({sys:{toastMsg:{visible:false}}}) },toastConfig.timeout) } })
var storage = MIP.util.customStorage(0); var marrange = storage.get("_marrange"); if(marrange === null){ marrange = []; }else{ marrange = JSON.parse(marrange); } var serie_code = MIP.getData('serie_code'); var hasMarrange = marrange.findIndex( vv => vv.serie_code == serie_code); if(hasMarrange >=0){; MIP.setData({chapterArrangeLine:marrange[hasMarrange].chapterArrangeLine}); } MIP.watch("chapterArrangeLine", function(newVal, oldVal){ var storage = MIP.util.customStorage(0); var marrange = storage.get("_marrange"); if(marrange === null){ marrange = []; }else{ marrange = JSON.parse(marrange); } var serie_code = MIP.getData('serie_code'); var hasMarrange = marrange.findIndex( vv => vv.serie_code == serie_code); if(hasMarrange >=0){ marrange[hasMarrange] = {'serie_code':serie_code,'chapterArrangeLine':newVal}; }else{ marrange.push({'serie_code':serie_code,'chapterArrangeLine':newVal}); } storage.set("_marrange", JSON.stringify(marrange)); }) MIP.setData({nowtime:(new Date).getTime()}); setTimeout(function(){ var serie_code = MIP.getData('serie_code'); var uHistory = MIP.getData('user.uHistory'); var sys = MIP.getData('sys'); var hasInHistory = uHistory.find( vv => vv.serie_code == serie_code); if(hasInHistory){ MIP.setData({ history: { chapterId: hasInHistory.read_chapter_id, chapterUrl: sys.origin+'/reads/'+serie_code+'/'+ hasInHistory.read_chapter_id, chapterName: '续看'+hasInHistory.read_chapter_name } }); } var user = MIP.getData('user'); var time = (new Date()).getTime(); MIP.setData({ hotCommentsUrl:'https://m.happymh.com/apis/m/hotComments?m_id=741'+'&s='+time+'&token='+(user.detail.token ? user.detail.token : '') }) },500); MIP.watch("allComments", function(newVal, oldVal){ if(newVal.length < 10){ MIP.setData({hideMore:true}); }else{ MIP.setData({hideMore:false}); } }) setTimeout(function(){ var uBookcase = MIP.getData('user.uBookcase'); var serie_code = MIP.getData('serie_code'); var hasCollect = uBookcase.find(vv => vv.serie_code == serie_code); if(hasCollect){ MIP.setData({inBookcase: true}); } },500) MIP.watch("jumpConfirm", function(newVal, oldVal) { if(newVal == true){ var originUrl = MIP.getData('originUrl'); MIP.viewer.open(originUrl,{isMipLink:false}); } }) MIP.watch("bookcaseAction", function(newVal, oldVal) { var user = MIP.getData('user.detail'); if(user.type == 1){ var code = MIP.getData('serie_code'); var ch_id = 0; var token = MIP.getData('user.detail.token'); var formData = new FormData(); formData.append('code', code); formData.append('ch_id', ch_id); formData.append('token', token); formData.append('action', newVal); fetch('https://m.happymh.com/apis/m/collect', { 'method': 'post', 'body': formData }).then( function(res){ return res.json(); }).then(function(result){ if(result.status != 0){ MIP.setData({sys:{toastMsg:{content:result.msg, visible:true}}}); } }).catch(function(error){ console.log(error.message); }); } }) var hasDownSet = false; var hasUpSet = false; MIP.viewport.on('scroll',function () { var scrolledTop = MIP.viewport.getScrollTop(); if(scrolledTop <=152 && !hasUpSet){ MIP.setData({zOpacity: {"opacity":1}}) hasDownSet=false; hasUpSet=true; } if(scrolledTop>152 && !hasDownSet){ MIP.setData({zOpacity: {"opacity":0}}) hasDownSet = true; hasUpSet = false; } }); // 点赞异步提交 MIP.watch('praiseForm.changeTag', function (newVal, oldVal) { var praiseForm = MIP.getData('praiseForm'); var formData = new FormData(); var user = MIP.getData('user'); formData.append('cid',praiseForm.cid); formData.append('ac',praiseForm.ac); formData.append('token', user.detail.token ? user.detail.token : ''); fetch('https://m.happymh.com/apis/m/praiseComment', { 'method':'post', 'body':formData }).then(function(res){ return res.json(); }).then(function(response){ if(response.status != 0){ //MIP.setData({sys:{toastMsg:{content:response.msg, visible:true}}}); } if(!praiseForm.isHot){ var allComments = MIP.getData('allComments'); MIP.setData({ submiting: false, user: Object.keys(response.u).length ? {changeTime:response.u.login_time,detail:response.u} : {}, allComments: allComments.map( obj => (obj.id != praiseForm.cid ? obj : Object.assign({}, Object.assign(obj,{praiseNum: (obj.hasPraised ? parseInt(obj.praiseNum)-1 : parseInt(obj.praiseNum)+1), hasPraised: !obj.hasPraised}))) ) }); }else{ var hotComments = MIP.getData('hotComments'); MIP.setData({ submiting: false, user: Object.keys(response.u).length ? {changeTime:response.u.login_time,detail:response.u} : {}, hotComments: hotComments.map( obj => (obj.id != praiseForm.cid ? obj : Object.assign({}, Object.assign(obj,{praiseNum: (obj.hasPraised ? parseInt(obj.praiseNum)-1 : parseInt(obj.praiseNum)+1), hasPraised: !obj.hasPraised}))) ) }); } }) })