游民星空 > 攻略秘籍 > 攻略 > 正文

《上古卷轴5》Papyrus脚本语言入门指南

2018-05-29 12:03:24 来源:上古卷轴吧 作者:天涯远不远 我要投稿

第2页:基本概念

展开

基本概念

  papyrus的基本概念包括变量,属性,函数,事件,状态,继承,多线程,持久化等。下面我们详细讲解各个概念,争取能通俗地让大家理解。

1、变量

  (1)papyrus中变量跟其他语言相比没有太大的不同,都是开辟一块内存存储特定类型(包括基本数据类型和类类型)的数据。声明方式也跟其他语言类似

  声明:int counter Message box

  papyrus会用默认值自动为这些声明的变量初始化,这也是我们开头的程序中count不必手动初始化即可保证初始值是0的原因。当然,用户手动初始化也是可以的,具体初始化方式跟其他高级语言相同。

  (2)衍生内容:语句

  papyrus的语句跟其他语言类似,也有循环语句和条件语句。用法也大同小异,只是需要注意语句结束时需要用专门的关键字结尾。

  例如:(根据counter值的不同,决定用哪一个值来初始化chosenbox)

  if (counter==1)

  chosenbox=box1

  else

  chosenbox=box2

  endIf

  例如:(将object数组重新初始化)

  while (currentElement < object.Length)

  object[currentElement].Disable()

  currentElement+=1

  endWhile

  (3)衍生内容:数组

  在papyrus中,数组也是一种特殊的变量,本质上是开辟出一块内存存储一系列相同类型的数据。因为在papyrus中不存在指针,所以其声明方式跟c语言中数组的声明会有所区别。(貌似跟java非常类似,不过楼主好久不接触java有些忘记……惭愧……)

  声明:int[] object(创建一个名为object的整数型数组,数组的长度为0,且初始值为空)

  创建:int[] object = new int[10] (创建一个名为object的整数型数组,数组长度为10,并初始化)

  数组在脚本中可以作为参数和函数返回值

  例如:int Function arrayObject(int[] array)

  或:

  int[] Function arrayObject()

  int[] array = new int[10]

  Return array

  endFunction

  数组的赋值可以用while语句进行,与其他语言的数组赋值并无区别。长度则可以使用“数组名.Length”来计算。

  此外,数组还可以像其他变量一样为其他的数组进行赋值或初始化。(在这里有必要提醒一下,papyrus中数组的本质依旧是指向内存单元的指针,用数组进行赋值之后,会让被赋值的数组指向原数组的内存地址,此时当用户处理原数组的数据后,被赋值的数组相关数据也会发生变化)

2、属性

  概念:

  属性是papyrus独有的一种变量类型。其作用是将mod制作者制作或者游戏本身的物品对象(装备,武器,杂物甚至是随从等等)与脚本进行关联,从而可以通过脚本来控制这些物品对象(如武器发光,剑气,破法者的法术护盾,随从奥妮安会在玩家血量不足的时候释放恢复系法术等等,这些行为都要通过脚本控制)。

  声明方法:

  属性的声明使用property关键字

  例如:Message property box1 auto(声明一个Message类型的属性box1,并自动赋值)

  使用方法:

  首先要在ck中制定好相关物品,然后在ck中将属性跟具体对象连接,之后就可以编写脚本了。

  例如:

  我在ck中创建了一把武器,名为blood_blade。

  然后在脚本中定义属性:Weapon property blade auto

  在ck中将blood_blade连接到blade上,这样一来,我们的blade变量就指向了blood_blade的内存地址

  之后我们在脚本中编写武器发光,剑气之类的内容,就可以直接作用到blood_blade上了。

更多相关内容请关注:上古卷轴5:天际专区

责任编辑:夏目贵志

上一页 1 2 3 4 5 6 下一页
友情提示:支持键盘左右键“← →”翻页

本文是否解决了您的问题

游民星空APP
随手浏览游戏攻略
code
攻略合集
单机游戏下载
休闲娱乐
综合热点资讯
游民星空联运游戏