逆转裁判千问第一章

Infinity用千问写的剧情,对话函数Infinity手搓

适配设备:Pro

作者:infinity_man

下载量:11 · 点赞:0

可信源码风险提示:保存或下载前请阅读源码和权限声明。
SHA-25633a5cdbff31db442e9232d64c522cd68e16052c656fa03d3f99dac27b976fcdd
ui.showHeader(false)

let u
let m = ["", "???", "成步堂", "千寻", "矢张", "亚内", "裁判长", "山野"]

function c(q1) {
  let q = [
    "#ffffff",
    "#aaffaa",
    "#aaddff",
  ]
  return q[q1]
}

let z = 1
let zj = [0, 3]

function zcd() {
  ui.render(() => [
    ui.column([
      ui.text(),
      ui.row([
        ui.heading("逆转", { width: 155, size: 36, color: "#88bbdd", align: "right" }),
        ui.heading("裁判", { width: 91, size: 36, color: "#aaddff" })
      ], { background: "#" }),
      ui.text("成步堂 龙一的冒险\n ", { align: "center", color: "#ffffaa" }),
      ui.spacer(60),
      ui.spacer(100),
      ui.row([
        ui.button("游玩第" + z + "章", j, { color: "#", background: "#131313", size: 36 }),
      ], { background: "#131313" }),
      ui.text(),
    ], { background: "#111111", radius: 45 })
  ])
}

function die() {
  ui.render(() => [
    ui.column([
      ui.text("\n你失败了\n\n\n\n\n\n ", { align: "center", size: 36 }),
      ui.spacer(5),
      ui.button("主页面 ", zcd, { tone: "danger", size: 36 }),
      ui.text("")
    ], { background: "#ff5566", radius: 45 })
  ])
}

function x(q3, q1, q2) {
  for (let i = 0; i < q1.length; i += 1) {
    q1[i] = { label: q1[i], value: i }
  }
  dialog.select({ title: " ", message: q3, items: q1 })
    .then(q => {
      console.log(q)
      if (q == null) { x(q3, q1, q2) }
      a(["你选择了" + q1[q.value].label], q2[q.value])
    })
}

function a(q, q1, q2, qm, qc, qa) {
  let q4 = 0
  if (q2 == u) {
    q2 = 0
    qc = c(0)
    qm = ""
  }

  if (typeof q[q2] == "number") {
    qm = m[q[q2]]
    return a(q, q1, q2 + 1, qm, qc, qa)
  }
  if (typeof q[q2] == "string" && q[q2][0] == "#") {
    qc = q[q2]
    return a(q, q1, q2 + 1, qm, qc, qa)
  }

  let qt = [""]
  let qz = ""
  for (let i = 0; i < q[q2].length; i += 1) {
    if (q[q2][i] != "|") {
      if (q[q2][i] != "{" && q[q2][i] != "}") {
        qz += q[q2][i]
      }
    } else {
      for (let o = 0; o < 5; o++) {
        qt.push(qz)
      }
    }
    qt.push(qz)
    if (q[q2][i] == "}") qz = ""
  }

  let q3 = () => {
    let zd = () => {
      if (qt[q4] != qt[q4 - 1] && q[q2][q4] != "{" && q[q2][q4] != "\n") {
        system.vibration.vibrate({ mode: "short" })
      }
    }
    let b = ui.button("", "", { background: "#ffffff" })
    ui.render(() => [
      ui.column([
        ui.spacer(100),
        ui.spacer(25),
        ui.text("\n\n\n " + qm, { color: "#005599", size: 36, align: "cnter" }),
        ui.column([
          ui.text(qt[q4], { align: "ceter", color: qc, size: 20 }),
        ], { background: "#30353a", padding: 16, radius: 0 }),
        b,
      ], { background: "#ffffff", radius: 45 })
    ])
    zd()
    if (q[q2][q4] == "{") {
      system.vibration.vibrate({ mode: "long" })
    }
    setTimeout(() => {
      if (q4 < qt.length - 1) {
        q4++
        q3()
      } else {
        q2++
        b = ui.row([
          ui.button("[ 确认 ]", () => {
            if (q2 < q.length) {
              a(q, q1, q2, qm, qc, qa)
            } else if (q1 !== u) {
              console.log(q)
              q1()
            } else {
              ui.render([
                ui.text("第一章结束。")
              ])
            }
          }, { size: 30, background: "#ffffff", color: "#cdcdff" })
        ])
        ui.refresh()
      }
    }, 70)
  }
  q3()
}

function j() {
  let q = (q2) => { q1[q2]() }
  let q1 = [
    () => {
      a([
        0,
        "鲜血从一只沾满了鲜血的凶器——小型雕像上滴下,||}一只可怕的手正握着这雕像……",
        "#aaddff",
        1,
        "……混蛋,为什么我会碰到这种事……||}……我可不能被抓住……所以……||}一定要找个人嫁祸,可是找谁呢!",
        "……对了,就找那家伙……",
        0,
        "男子的脑海中浮现出一个身影",
        "#aaddff",
        1,
        "如果嫁祸给他的话……",
        0,
        "#aaffaa",
        "8月3日上午9点47分,地方法院被告人第二候客室中",
        "#ffffff",
        2,
        "呼啊……呼啊……",
        c(0),
        "(我叫成步堂龙一。)",
        "(是一名新人律师。)",
        "(今天……是我第一次出庭。)",
        0,
        "成步堂龙一和所长寒喧几句。||}主角因为是第一次登上法庭,所以十分紧张。||}并表示这次的辩护,也是因为十分想帮助委托人。",
        0,
        "这时传来一阵喧哗……",
        4,
        "我……我不想活了……||}失去了最心爱的女友,我还活着干什么……",
        0,
        "一个叫矢张的人哭闹着来到主角面前,他一心想死,因为失去了最心爱的女友。",
        0,
        "#aaffaa",
        "8月3日上午10点整,地方法院第二法庭",
        "#ffffff",
        5,
        "本次开庭,现在开始!",
        6,
        "首先,请说出这次事件的被告人名字。",
        2,
        "矢张政志",
        6,
        "下一个问题,现在审理的是杀人事件,请说出被害人的名字。",
        2,
        "高日美佳",
        6,
        "被害者的死因是什么?",
        2,
        "被不尖利的凶器所杀",
        6,
        "检察官,我有问题想问你,正如成步堂所说,被害者是被钝物所杀,||}那钝物到底是什么样子的?",
        5,
        "是一个\"思想者\"的摆设,就横放在死者的旁边。",
        5,
        "被告,你是否最近被死者甩了?",
        4,
        "什么!我们可是本世纪最合适的一对恋人,||}只是最近不打电话也不见面了而已。||}太小看我了!",
        5,
        "我们通常把这种情况称作\"被甩了\",死者根本就是玩弄你,把你甩在一边,||}被害前一天也是刚从海外旅游回来。",
        5,
        "法官大人,这是死者的护照,死者||}在被害前一天,还在纽约。",
        5,
        "死者虽然是模特,但是收入并不多。||}好象有很多给她小费的老头子,||}死者应该是以这种援助交际的形式来取得钱,并且去海外旅游的,||}被害者就是这样一个女人。现在请问被告,你认为死者是怎样一个人呢?",
        4,
        "混蛋,那臭女人竟敢耍我,我要宰了她!!!||}去天国问那臭女人吧!",
        5,
        "被告,事件发生当日,你去过死者房间吗?",
        0,
        "无论怎么选,亚内都会表示有证人目击被告从现场逃离",
        5,
        "那么,传唤第一位证人。",
        0,
        "证人 山野星雄 入场。",
        "#aaddff",
        7,
        "我在进行报纸推销,这时从某个房间走出一个男人。||}这男人慌慌张张,门半开着人就走了。||}觉得有些古怪,我去偷偷看了一下房间。||}一看,噢哟,有个女人死在房里!||}我吓得腰都软了,没敢进入那房间。||}我想这事得立即向警察通报。||}但是,屋里的电话无法使用。||}所以我只得到附近的公用电话处通报。||}时间我记得很清楚,是下午2点。||}逃走的男人,就是站在那儿的被告,完全没错。",
        0,
        "#aaffaa",
        "山野星雄证词 第二次·关于尸体发现的时间",
        "#ffffff",
        7,
        "发现尸体的时候,我是听到时间的。||}那声音像是电台报时……大概、是电视里的报时吧。||}啊、但是、如果是报时,不可能相差2个小时的。||}我想很可能是被害人在看录像什么的吧。||}我听到后,就以为当时时间是2点。||}对不起,给大家添麻烦了……",
        0,
        "#aaffaa",
        "山野星雄证词 第三次·关于听到时间",
        "#ffffff",
        7,
        "(关于听到报时的证词)",
        0,
        "#aaffaa",
        "最终反驳",
        "#ffffff",
        2,
        "这钟只有拿起那摆设仔细看,才能发现。||}但你没有进屋子,你又是怎么知道那是一个钟的?||}而且还看了时间?这不是天大的矛盾吗?||}一定是因为你事发当日,进入了那房间。||}为什么你会知道那个摆设是钟呢?||}那一定是因为||}你当天进入了那间屋子。所以说,||}那天用时钟摆设打倒死者的人就是你!!!",
        "一定是因为当时正好那个钟响了,而且你听到了那钟声!||}山野君……你因为被惊吓了,所以那摆设就从手上滑了下来。||}而那时候的响声,给你留下了很深的印象,所以你只对时间记得如此的清楚。",
        7,
        "我当时……确实……听到了……不……是看到了……啊……||}真烦人,竟然对这些细小的事抓住不放。||}就是那家伙,我看见他了,处死他,把他处死……",
        5,
        "法官大人,辩护人还没有拿出什么证据呢。",
        6,
        "辩护人,你为什么说证人听到的就是这个摆设中时钟的报时声呢?",
        2,
        "这是非常简单就能知道的事。",
        0,
        "试着让时钟报时",
        2,
        "众人听到的声音是9:25。但现在的时间却是11:25,||}那正好证明了山野听到的声音也是晚了2小时的钟,||}和这个摆设的时钟一模一样。",
        7,
        "虽然这钟也晚了两小时,但是你又怎么知道这摆设在事发当时也是晚了2小时呢?……",
        2,
        "就是那护照!死者那天从纽约刚回日本,而纽约和日本的时差是14小时。||}那也就是说,纽约凌晨2点的时候,日本正好是下午4点。||}死者在回国后,没有把时钟的时差调整过来!||}所以你听到的时间就差了两个小时。||}怎么样,山野……",
        0,
        "#aaffaa",
        "判决",
        "#ffffff",
        6,
        "成步堂,你竟然那么直截了当,让我吃惊不小,||}竟然在那么短的时间里就让你的委托人解困,并让犯人显出原形。||}现在我就开始判决,被告人矢张政志,无罪!!!",
        0,
        "法庭上下顿时一片欢呼,这时法官宣布审理结束。",
        0,
        "#aaffaa",
        "庭审后",
        "#ffffff",
        2,
        "叫做山野的男人,好象是趁家中无人,而去行窃的惯犯。||}一边卖报纸,一边以无人的家庭作为目标。||}那一天,矢张去拜访的时候,死者不在家,||}等他走了后,山野就潜入房中。||}正在行窃时,死者回家了,勃然大怒的山野就拿起身边的摆设……",
        4,
        "(认为死去的美佳在玩弄他的感情)",
        2,
        "(以美佳带着矢张制作的摆设一起去了纽约为证据,说明美佳还是想着矢张的)",
        3,
        "成步堂君,证物就是这样一种东西,从不同的角度看,它的意义是完全不同的。||}人也是这样,我们并不知道被告是有罪还是无罪。||}但是作为辩护人,我们需要做的就是相信他,相信委托人,就是相信自己。||}成步堂君……变的更强吧……||}自己坚信的东西,即使到最后也不能放弃。",
        0,
        "第一章 完",
      ], () => q(1))
    },

    () => {
      ui.render([
        ui.text("第一章结束。\n\n等待第二章...")
      ])
    }
  ]

  ui.render([ui.text("Loading...")])
  setTimeout(() => { q(zj[z - 1]) }, 200)
}


zcd()