传奇服务端制作修改教程-4.3变量

变量有效的扩大了脚本的灵活性.

 

4.3.1已定义变量

 

P0-P9 私人变量(数字型) 不可保存

 

G0-G499 全局变量(数字型) 可保存

 

M0-M99 私人变量(数字型) 不可保存

 

I0-I99 全局变量(数字型) 不可保存

 

D0-D9 私人变量(数字型) 不可保存

 

N0-N99 私人变量(数字型) 不可保存

 

S0-S99 私人变量(字符型) 不可保存

 

A0-A499 全局变量(字符型) 可保存

 

 

注意:自定义变量不要以P、G、M、I、D、N、S、A开头

 

 

变量赋值

 

 

 

MOV命令使用说明:

 

 

增加MOV命令可以 直接在2个变量之间操作 。

 

假设已经定义自定义字符变量Name和数字型自定义变量TEST

 

以下是MOV的几种使用方法

 

 

MOV HUMAN Name S0 这句的意思就是把S0值 传给自定义变量Name

 

MOV S0 HUMAN Name 把自定义变量Name值 传给变量S0

 

MOV S0 你好 把“你好”传给变量S0

 

MOV HUMAN Name 你好 把“你好”传给自定义变量Name

 

MOV S0 S1 把S1值传给S0

 

MOV D1 1 把1传给变量D1 (这个是最常见的使用方法)

 

MOV HUMAN TEST D1 把变量D1值传给自定义变量TEST

 

MOV D1 HUMAN TEST 把自定义变量TEST传给变量D1

 

MOV HUMAN TEST 1 把1传给自定义变量TEST

 

 

 

 

变量运算

 

   除法    格式: DIV N1 N2 N3 即N1=N2/N3

 

   乘法    格式: MUL N1 N2 N3 即N1=N2*N3

 

   百分比  格式: PERCENT N1 N2 N3 即N1=(N2/N3)*100< /STRONG>

 

   [@MAIN]

 

   #IF

 

   #ACT

 

   Mov M2 10

 

   MUL N1 M2 <$LEVEL>

 

   SENDMSG 1 恭喜∶<$STR(N1)>,获得金刚<$STR(M2)>石锻造附赠品∶<$LEVEL>

 

 

 

 

DEC和INC命令使用说明:

 

 

增加DEC和INC命令可以直接在2个变量之间操作 。

 

假设已经定义自定义数字型自定义变量TEST

 

以DEC为例,以下是DEC的几种使用方法

 

 

DEC D0 1 意思是 D0 = D0 – 1 (这个是最常见的使用方法)

 

DEC D0 D1 意思是 D0 = D0 – D1

 

DEC HUMAN TEST D0 意思是 TEST = TEST – D0

 

DEC D0 HUMAN TEST 意思是 D1 = TEST – D0

 

 

INC命令使用和DEC一样

 

 

 

变量的比较

 

SMALL和LARGE命令使用说明

 

 

增加SMALL和LARGE命令可以 直接在2个变量之间操作 。

 

假设已经定义数字型自定义变量TEST

 

以SMALL为例以下是SMALL的几种使用方法

 

 

SMALL D0 1 检测D0值是否小于1值 (这个是最常见的使用方法)

 

SMALL HUMAN TEST D0 检测自定义变量TEST值是否小于D0值

 

SMALL D0 HUMAN TEST 检测D0值是否小于自定义变量TEST值

 

SMALL HUMAN TEST 1 检测自定义变量TEST值是否小于1值

 

LARGE和SMALL用法完全一样

 

 

equal (变量) (字符串) ;测试变量是不是等于指定字符串(不区分大小写)

 

 

 

 

4.3.2 自定义变量

 

自定义变量功能,不再受固定几个变量限制

 

 

使用方法:

 

三个步骤:

 

    1、首先要声明变量

 

    2、读取变量

 

    3、保存变量

 

该变量支持增加、减少、脚本查看、检查大小等功能,该功能的开发突破了变量使用受限制,利用该变量可制作出超强功能脚本。

 

脚本样例:

 

=========================================

 

<声明变量/@newvarInteger> \

 

<查看变量/@viewvarInteger>\

 

<读取变量/@loadvarInteger> \

 

<保存变量/@savevarInteger> \

 

<增加变量/@calcvarinc>  <检查变量是否大于5/@checklarage5>\

 

<减少变量/@calcvardec>  <检查变量是否小于5/@checksmall5>\

 

<检查变量是否等于5/@checkequal5>

 

[@calcvarinc]

 

#IF

 

#ACT

 

  CALCVAR HUMAN QQQQ + 5

 

goto @varcontrol

 

[@calcvardec]

 

#IF

 

#ACT

 

  CALCVAR HUMAN QQQQ – 5

 

goto @varcontrol

 

[@checkequal5]

 

#IF

 

  CHECKVAR HUMAN QQQQ = 5

 

#ACT

 

  sendmsg 7 等于5

 

  goto @varcontrol

 

#ELSEACT

 

  sendmsg 7 不等于5

 

  goto @varcontrol

 

[@checklarage5]

 

#IF

 

CHECKVAR HUMAN QQQQ > 5

 

#ACT

 

  sendmsg 7 大于5

 

  goto @varcontrol

 

#ELSEACT

 

  sendmsg 7 小于5

 

  goto @varcontrol

 

[@checksmall5]

 

#IF

 

CHECKVAR HUMAN QQQQ < 5

 

#ACT

 

  sendmsg 7 小于5

 

  goto @varcontrol

 

#ELSEACT

 

  sendmsg 7 大于5

 

  goto @varcontrol

 

 

[@decInteger]

 

#ACT

 

  DEC QQQQ 1

 

  sendmsg 7 <$HUMAN(QQQQ)>

 

  goto @varcontrol

 

[@addInteger]

 

#ACT

 

  INC QQQQ 1

 

  sendmsg 7 <$HUMAN(QQQQ)>

 

  goto @varcontrol

 

[@loadvarInteger]

 

#IF

 

#ACT

 

  LOADVAR HUMAN QQQQ VarSave.txt

 

  sendmsg 7 OK

 

  GOTO @varcontrol

 

 

[@savevarInteger]

 

#IF

 

#ACT

 

  SAVEVAR HUMAN QQQQ VarSave.txt

 

  sendmsg 7 OK

 

  GOTO @varcontrol

 

[@viewvarInteger]

 

#ACT

 

  sendmsg 7 <$HUMAN(QQQQ)>

 

  GOTO @varcontrol

 

 

[@newvarInteger]

 

#IF

 

#ACT

 

  VAR Integer HUMAN QQQQ

 

  sendmsg 7 OK

 

  GOTO @varcontrol

 

[@viewvarString]

 

<$HUMAN(QQQS)>

 

 

4.3.3 人物标志(标识)

 

[001]-[800](各引擎不同标识的上限值不能。IGE的是800个),这不是变量,这是标识

 

标识的初始值是关闭的,它不会因为人物下线或服务器重启而重置

 

相关命令格式:

 

Check [001] 0   的意思是检测你的标识[001]是否关闭

 

SET [001] 1     的意思是设置你的标识[001]为开的状态

发表回复

后才能评论