EYHN / hexo-helper-live2d

Add the Sseexxyyy live2d to your hexo!
GNU General Public License v2.0
3.86k stars 472 forks source link

请问对话框是怎么配置的? #141

Closed chishuix closed 4 years ago

chishuix commented 5 years ago
live2d:
  enable: true
  scriptFrom: local
  pluginRootPath: live2dw/
  pluginJsPath: lib/
  pluginModelPath: assets/
  tagMode: false
  log: false
  model:
    use: live2d-widget-model-shizuku
  display:
    position: right
    width: 150
    height: 300
  mobile:
    show: false
  react:
    opacity: 1
  dialog: 
    enable: true
    script:
      'every idle 10s': 'text1'
      'tap face': 'text2'
      'tap body': 'text3'

这样写的话 对话框的opacity 不会改变 文字也不会插入对话框

yanickxia commented 5 years ago

+1

sandyzikun commented 5 years ago

同问,求关于对话框的配置教程

LLszzz commented 4 years ago

暴力解决方法,改源码,L2Dwidget.0.min.js和L2Dwidget.common.min.js里面都有一个$()函数,这个是配置启用一言堂api才生效的,每10s会执行该函数,请求一次一言堂,获取对话内容,这样问题就简单了 注释掉原本的代码,自己写一下就好了,至于摸头和摸身体的还在看,不过万变不离其宗吧

function $() { var rdm = Math.floor(Math.random()*10); var arr = ['颜哥牛批!','颜哥强啊!','强啊颜哥!','强啊佳炀','强啊佳炀','强啊佳炀','强啊佳炀','强啊佳炀','强啊佳炀','强啊佳炀']; l(arr[rdm]); setTimeout($, 10000); }

easy-do commented 4 years ago

我找到了.... 挺难得翻了半天 在路径 /blog/node_modules/live2d-widget/src/dialog/index.js中

function showHitokotoLoop() { var xhr = new XMLHttpRequest(); xhr.open('get', 'https://v1.hitokoto.cn'); xhr.setRequestHeader("Cache-Control", "no-cache"); xhr.onreadystatechange = function () { if (xhr.readyState === 4) { var data = JSON.parse(xhr.responseText); alertText(data.hitokoto); setTimeout(showHitokotoLoop, 10000) } } xhr.send(); }

修改这一处调用一言堂消息改为自定义的就好了

easy-do commented 4 years ago
live2d:
  enable: true
  scriptFrom: local
  pluginRootPath: live2dw/
  pluginJsPath: lib/
  pluginModelPath: assets/
  tagMode: false
  log: false
  model:
    use: live2d-widget-model-shizuku
  display:
    position: right
    width: 150
    height: 300
  mobile:
    show: false
  react:
    opacity: 1
  dialog: 
    enable: true
    script:
      'every idle 10s': 'text1'
      'tap face': 'text2'
      'tap body': 'text3'

这样写的话 对话框的opacity 不会改变 文字也不会插入对话框

暴力修改L2Dwidget.0.min [4].js

像我这样改 百开启连接的地方直接改成自己创建一个数组然后随机取

function $(){

/ var t=new XMLHttpRequest; t.open("get","https://v1.hitokoto.cn"), t.setRequestHeader("Cache-Control","no-cache"), t.onreadystatechange=function(){ if(4===t.readyState){ l(JSON.parse(t.responseText).hitokoto), setTimeout($,1e4) } }, t.send() / var arr = ['杰哥不要~','讨厌~','你看我扎不扎你~','你的报应就是我`','不要~','是那个男人来了吗...','大家好,我是练习时长两年半的个人练习生','让我康康~','来了老弟……','你是魔鬼吗?','我劝你善良','奥利给!','扎心了老铁','我的40米大刀呢?','我向佛祖许愿~','我们面对什么困难都不要怕,微笑着面对他!'] var randomInex = randomNum(0,arr.length) l(arr[randomInex]) setTimeout($,1e4) }

回头我做个完善的修改 把语音修改也弄出来 做一个扩展型的插件