一生挚爱 发表于 2024-9-18 20:44:18

变量定义和赋值的实际操作

本帖最后由 一生挚爱 于 2024-9-18 21:03 编辑





最近一直在论坛请教问题,很多大佬说完之后,理解怎么回事,但不知道怎么写,在网上搜了搜,总结了一些有用的信息,和小白们一起分享学习(包括我自己)。


标识-(各引擎不同标识的上限值不能。正常的是499个),这不是变量,这是标识
标识的初始值是关闭的,它不会因为人物下线或服务器重启而重置
标识和变量不同的是只有0和1,标识是私有的,不共享。
一般适用于游戏内的个人任务系统
相关命令格式:

[*]Check [001] 0 的意思是检测你的标识[001是否关闭
[*]SET [001] 1 的意思是设置你的标识[001为开的状态
[*]reset [100] 7 意思是将从100开始的7个变量回复到原始值0,就是把100 101 102 103 104 105 106 107赋值为0



变量详解($STR)
[*]P0-P999 (私人变量,数字型) 关闭对话框重置为0,该变量只对当前对话NPC内有效果。
[*]D0-D999 (私人变量,数字型) 下线不保存.该变量在人物不下线时对全局NPC通用传递。
[*]M0-M999 (私人变量,数字型) 下线不保存.切换地图清空.
[*]N0-N999 (私人变量,数字型) 下线不保存.小退归0.
[*]S0-S999 (私人变量,字符型) 下线不保存.小退归0.
[*]I0-I999 (全局变量,数字型) 不可保存,服务器重启自动重置为0。
[*]G0-G999 (全局变量,数字型) 可保存,该变量不属于人物属性范围,对于全服务器内该变量唯一并且全局NPC通用传递。(存放在Mir200/GlobalVal.ini文件里面)
[*]A0-A999 (全局变量,字符型) 可保存,该变量不属于人物属性范围,对于全服务器内该变量唯一并且全局NPC通用传递。(存放在Mir200/GlobalVal.ini文件里面)
[*]U0-U99 (私人变量,数字型) 可保存。(存放在人物数据库Mir.db里面、值最大范围正负21亿)
[*]T0-T99 (私人变量,字符型) 可保存。(存放在人物数据库Mir.db里面、字符长度100<1个字母为1字符、1汉字为2字符>)


变量S和变量N的扩展
扩展字符变量S和数字变量N,除了支持0~499以外,可以在S$变量或N$变量后面增加任意字符
[@test]#ACTMOV N$我的杀怪总数 100
INC <$STR(N$我的当前杀怪数)> 1
SENDMSG 6 【杀怪总数=<$STR(N$我的杀怪总数)>】【当前杀怪数=<$STR(N$我的当前杀怪数)>】 255 253


操作变量

示例说明
small G88 5;检测变量G88,是否小于5
large G88 5;检测变量G88,是否大于5
equal G88 5;检测变量G88,是否等于5
mov G88 5;设置G88=5
INC G88 5;设置变量G88=G88+5
DEC G88 5;设置变量G88=G88-5 减少值,DEC 1 就是减1
MUL G88 5;设置变量G88=G88*5
DIV G88 5;设置变量G88=G88/5
PERCENT G88 5;设置变量G88=G88/5*100%


使用变量
示例说明
small M88 <$STR(G88)>;检测私人变量M88,是否小于全局变量G88
large M88 <$STR(G88)>;检测私人变量M88,是否大于全局变量G88
EQUAL M88 <$STR(G88)>;检测私人变量M88,是否等于全局变量G88
mov G88 <$STR(M88)>;设置全局变量G88=M88
inc G88 <$STR(M88)>;设置全局变量G88=G88+M88
DEC G88 <$STR(M88)>;设置全局变量G88=G88-M88
MUL M88 $STR(M89);设置私人变量M88=M88*M89
DIV M88 $STR(M89);设置私人变量M88=M88/M89
PERCENT M88 $STR(M89);设置私人变量M88=M88/M89*100%

Small、Large、Equal、mov、INC、DEC、MUL、DIV、PERCENT 支持第3参数
[*]#Small、Large、Equal、mov、INC、DEC、MUL、DIV、PERCENT 支持第3参数
[*]LARGE N1 <$STR(P0)> <$STR(M5)>
[*]#表达式为: N1 > ( $STR(P0) * $STR(M5) ) ,即检测N1是否大于( $STR(P0) 乘以 $STR(M5) )




自定义变量注意: 自定义变量不要以P、G、M、I、D、N、S、A开头
数据类型
[*]字符型
[*]数字型

变量类型
[*]HUMAN 个人变量 ($HUMAN )
[*]GUILD 行会变量 ($GUILD )
[*]GLOBAL 公共变量 ($GLOBAL )

自定义变量的使用
[*]声明变量 (创建数字型 个人变量 变量名为QQQQ)
VAR Integer HUMAN QQQQ


[*]读取变量 (从VarSave.txt读取个人变量QQQQ)
LOADVAR HUMAN QQQQ VarSave.txt


[*]保存变量 (将个人变量 QQQQ 保存到VarSave.txt)
SAVEVAR HUMAN QQQQ VarSave.txt


[*]删除变量
[*]DEC QQQQ 1


[*]修改变量 (将个人变量QQQQ 减5 可以使用±/*)
CALCVAR HUMAN QQQQ - 5


[*]检测变量 (检测个人变量QQQQ是否大于3 , 可以使用> ,< ,=)
CHECKVAR HUMAN QQQQ > 3



变量(VAR )声明以后一定要读取(LOADVAR ),否则只是声明了玩家的该变量数值不管怎么改变,服务器均视为0.


hi8 发表于 2024-9-18 21:45:18

Small、Large、Equal、mov、INC、DEC、MUL、DIV、PERCENT 支持第3参数

#Small、Large、Equal、mov、INC、DEC、MUL、DIV、PERCENT 支持第3参数
LARGE N1 <$STR(P0)> <$STR(M5)>
#表达式为: N1 > ( $STR(P0) * $STR(M5) ) ,即检测N1是否大于( $STR(P0) 乘以 $STR(M5) )

请问支持第三个变量都是以和第二变量相乘表达吗?

一生挚爱 发表于 2024-9-18 23:10:25

hi8 发表于 2024-9-18 21:45
Small、Large、Equal、mov、INC、DEC、MUL、DIV、PERCENT 支持第3参数

#Small、Large、Equal、mov、INC、D ...

搜了好多,都是这么写的,我刚研究到声明变量

Cstyle 发表于 2024-9-19 08:46:11

:victory::victory:

为什么呀呀呀 发表于 2024-9-19 22:58:29

支持大佬的作品!

cq5388309 发表于 2024-9-20 11:05:08

秀儿,是你吗?

1428764923 发表于 2024-9-24 20:31:59

哥们 你自己试过没有 你确定mall、Large、Equal、mov、INC、DEC、MUL、DIV、PERCENT 支持第3参数第三参数?   
而且这个命令PERCENT 说明书都没有

lx1345112 发表于 2024-9-24 23:02:40

奈何自己没文化,一句我曹走天下!! 我曹!!**!!

滋滋冒水 发表于 2024-10-5 06:55:41

谢谢了,楼主好人啊

yhm230 发表于 2024-11-17 22:24:37

回顾一下 感觉挺详细的
页: [1]
查看完整版本: 变量定义和赋值的实际操作