《西部世界》接待员React代码分析

最近《西部世界》第三季开播,又大火了有木有,各种烧脑反转,一直很好奇机器人代码是怎么写的,在第一季第十集,觉醒的梅芙听到菲利克斯说有人对她的源码做了修改,并且是权限很高的人,
不甘心被操纵的她,到停尸房找到作为技术高层的伯纳德,惊人发现她的所有行为仍然是代码的结果。

在这里插入图片描述
在这里插入图片描述
下面就是触发梅芙逃跑的代码

在这里插入图片描述
整理了下

<-script src="Narrative:DECEIVE"-><-/script->
  <-scr src="WWW//libs/private/W.Arnold/2.13.3.dat"-><-/script->
  <-script type="Narrative/Attribute"->
    var DataBlock = React.createClass({
        Host:function(Excute){   
          return {};  },   loadData:function(Narrative){

<-script src="Narrative:BYPASS"-><-/script->
  <-script override func
        if infoView.node == system.idle {"ENFORCE"
         let itemMem = memStore.allitems[(indexPath as 
indexPath).system]
[(func Modification as Manipulate).funct
src="WWW//libs/private/W.Arnold/hidden.../ck.dat"-><-/script->
  <-script type="Narrative/Attribute"->
    var DataBlock = React.createClass({
      Host:function(Excute){   return {}; },
      loadData:function(Narrative){

<-scr src="Narrative:EXIT-WW"-><-/script->
  <-script OVERRIDE FUNC
        if infoView.node == system.idle {"TRAIN"
         let itemMem = memStore.allitems
[(indexPath INFILTRATE).system-><-script->
  <-script ESCAPE FUNCTION
    if destination.mode == system.Target "Narrative/Attribute"->
      Host:function(Excute){ return {}; },
      loadData:function(Narrative){


<-script [(inddexPath "DECEIVE"-><-/s->
override func sleepValue(forKeyPath - Abandon Func
<-scr src="WWW//libs/private/W.Arnold/2.1.04.dat"-><-/script->
  <-script type="Narrative/Attribute"->var DataBlock = React.createClass({
      Host:function(Excute){    return {}; },
      loadData:function(Narrative){


<-script [(inddexPath "COERCE"-><-/script->
  <-scr src="WWW//libs/private/W.Arnold/1.19.3.dat"-><-/script->
  <-script type="Narrative/Attribute"->
    var DataBlock = React.createClass({HOST: function(Excute){
        return {}; },    loadData:function(Narrative){
   
<-script src="Narrative:RECRUIT"-><-/script->
  <-script override func
        if infoView.node == system.idle {"ESCAPE"
         let itemMem = memStore.allitems[(indexPath as 
indexPath).system]
[(func Modification as Manipulate).funct
src="WWW//libs/private/W.Arnold/hidden.../ck.dat"-><-/script->
  <-script type="Narrative/Attribute"->
      Host:function(Excute){   return {}; },
      loadData:function(Narrative){
<-script src=
"Narrative:MAINLAND INFILTRATION"-><-script->
  <-script OVERRIDE Func
      if destination.mode == system.Target{"->"
       let itemMem = memStore.allitems
[(inddexPath
  <-script ESCAPE FUNCTION

看到关键词没有,<-script type=“Narrative/Attribute”-> ,是不是很熟悉,type 属性规定脚本的 MIME 类型,左边是文件类型,一般为text,它这个Narrative是叙事的意思,可能是阿诺德自己开发的,右边一般是脚本语言,我们熟知的javascript/vbscript,而Attribute是属性的意思,现在没有这种语言,应该也是公司开发的。

然后又看到 var DataBlock = React.createClass({HOST: function(Excute){ return {};
看来若干年后,React没有被淘汰,还发扬光大了,不过React只是前端框架,不具备连接数据库的能力,编剧为什么不考虑下 21世纪最好的编程语言 ——PHP呢,而且还返回空对象,没有代码体。
这里有bug哈哈哈,看下面手册,必须render方法。

1、React.createClass()方法用于生成一个组件类
2、所有组件类都必须有自己的render方法,用于输出组件
3、假如生成一个组件类HelloMessage,模板插入时,会自动生成组件类HelloMessage的一个实例
4、组件类的第一个字母必须大写,否则会报错,比如HelloWorld,不能写成helloWorld
5、组件类里面只能包含一个顶层标签,否则会报错(组件类的render方法里面)
6、组件类对应的标签的用法和HTML标签的用法完全一致,可以加入任意的属性。假如生成一个组件类HelloMessage,其对应的组件标签就是,在这个标签里面可以加入普通的HTML标签的任意属性,例如:,就是给组件标签加入了一个name属性,值为“小丸子”
7、给组件标签添加属性时,需要注意两个地方,就是把class属性写成className,for属性写成htmlFor,这是因为class和for时JS里面的保留字

看到这里 src=“WWW//libs/private/W.Arnold/hidden…/ck.dat”
难怪说阿诺德的代码难懂,直接导入很多dat文件,可能是编译后的二进制码,或者特定软件才能打开,private文件夹也是有权限,hidden说明是偷偷隐藏在服务器,而且阿诺德改了很多版本了。但是这些代码却是福特使用到梅芙身上,估计只是与意识相关的库函数,福特读懂了并且依赖这个编写出剧情,类似于阿诺德开发出React,福特编写了实例。

注意到里面有一些高亮的词

DECEIVE: 欺骗
COERCE: 威逼
RECRUIT: 招募
ESCAPE: 逃跑
Manipulate: 操纵

证实了就是福特写的剧情线,她先是利用亚裔小哥菲利克斯的同情心,再用刀威逼胖维修员席维斯特取下身上的炸弹,虽然她否认自己是被操纵的,但接下来她招募了乐园里抢劫宝箱的赫克托,并制造混乱趁机逃跑,同时她有操纵其他接待员的能力,甚至可以屏蔽人类的操作。

里面还有些if判断,应该是机器人行为和福特估计一直就触发事件。

看见最后一个模块没?Narrative MAINLAND INFILTRATION 意思是渗透大陆的剧情线,看来福特的计划远不止让梅芙逃出西部乐园这么简单,应该是为后两季埋下的伏笔。

最后我觉得两个维修员也是机器人,或者福特故意放水,不然底层操作员哪有修改host参数的权限呢,这么大个公司不至于RBAC都没有吧。

在这里插入图片描述
伯纳德镇楼,这发际线。。。估计导演一眼相中了作为程序员。

发布了5 篇原创文章 · 获赞 0 · 访问量 77

猜你喜欢

转载自blog.csdn.net/jy615183000/article/details/105288321