《上古卷轴5》Papyrus脚本语言入门指南
第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上了。
(编辑:二游网_173173游戏网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |