wanghy 发表于 2011-10-17 20:52:15

自己吼不住了,老师(克招)这两天可能事比较多。只能求助各位前辈先贤了。。。。

老师(克招)这两天可能事比较多,只能麻烦各位大能了。
我有这样一段脚本:
!!DO8003/1/n/1&n>0:Px16;

!?FU8003;
!!UN:U5/-1/x1/8050;
但实测下来无论怎样取值下面的x1都无法继承上一句的x16的值(总等于0),要x1继承x16的值应该怎么写?
先声明一下:这段本来就是程序里的一小段。我觉得问题就发生在这两句,所以就贴了这两句。如果大家觉得有困扰,我就先抱歉了,

这个问题我用影子变量解决了。基本没有问题。但是又有个问题整个循环体循环循环3~4次后会出现v9306取值错误(前3,4个循环内容和功用都正确)!!UN:U5/-1/?v9307; 统计对象数量
!!IF:M^宝物数量 %Vn^;
!!VRv9306:S0;
!!DO8003/1/v9307/1&v9307>0:P;
!!UN:R1;
!!FU:E;
!?FU8003; 实际获取宝物
!!VRv9306:+1;
!!UN:U5/-1/v9306/8050;
!!FU&v8052<>v9305:E;
!!VRy7&v8050>v9303:Sv8050-v9303;
!!VRy7&v8050<v9303:Sv9303-v8050;
!!VRy8&v8051>v9304:Sv8051-v9304;
!!VRy8&v8051<v9304:Sv9304-v8051;
!!VRy7:*y7; 以下为坐标距离判断
!!VRy8:*y8;
!!VRy7:+y8;
!!VRv9302:*v9302;
!!FU&y7>v9302:E;
!!OBv8050/v8051/v8052:U?y9;
!!FU&y9<7:E; 非常规宝物退出
!!CA-1:H1/?y68;
!!HEy68:Ay9;
!!UN:Ay9/9/?z999;
!!IF:M^你获得了%Z999这件宝物。^;
!!UN:Ov8050/v8051/v8052/1;
!!FU:E;

[ 本帖最后由 wanghy 于 2011-10-18 13:05 编辑 ]

兽哥哥 发表于 2011-10-17 21:00:25

问下寻梦和沧海他们吧,还有老实猪这几天也在的。;hi;

克招 发表于 2011-10-17 21:43:44

我不是说了今晚帮你改嘛,而且你只发这一小段上来,人家怎么看啊。

wanghy 发表于 2011-10-17 21:52:42

我查过了问题应该就是在这一段上,老师您不是说您今天没空吗?

克招 发表于 2011-10-17 21:59:04

好像你给我的脚本和这个不同,这个一看就知道是错的。

wanghy 发表于 2011-10-17 22:13:46

这个是我后来调整过的,原来那个测试过P后面啥都不加无论x16或是x1都是等于0
所以我猜想可不可以直接把x16传下来
但是也失败了;ooru; ;ooru; ;ooru;

wanghy 发表于 2011-10-17 22:14:46

我要传的就是循环变量x16,可是。。。。。

寻梦人 发表于 2011-10-17 23:11:30

搞一个嵌套函数应该可以!

寻梦人 发表于 2011-10-17 23:12:08

还有你的N值也要定义好

wanghy 发表于 2011-10-18 10:57:04

先声明一下:这段本来就是程序里的一小段。我觉得问题就发生在这两句,所以就贴了这两句。如果大家觉得有困扰,我就先抱歉了,

这个问题我用影子变量解决了。基本没有问题。但是又有个问题整个循环体循环循环3~4次后会出现v9306取值错误(前3,4个循环内容和功用都正确)!!UN:U5/-1/?v9307; 统计对象数量
!!IF:M^宝物数量 %Vn^;
!!VRv9306:S0;
!!DO8003/1/v9307/1&v9307>0:P;
!!UN:R1;
!!FU:E;
!?FU8003; 实际获取宝物
!!VRv9306:+1;
!!UN:U5/-1/v9306/8050;
!!FU&v8052<>v9305:E;
!!VRy7&v8050>v9303:Sv8050-v9303;
!!VRy7&v8050<v9303:Sv9303-v8050;
!!VRy8&v8051>v9304:Sv8051-v9304;
!!VRy8&v8051<v9304:Sv9304-v8051;
!!VRy7:*y7; 以下为坐标距离判断
!!VRy8:*y8;
!!VRy7:+y8;
!!VRv9302:*v9302;
!!FU&y7>v9302:E;
!!OBv8050/v8051/v8052:U?y9;
!!FU&y9<7:E; 非常规宝物退出
!!CA-1:H1/?y68;
!!HEy68:Ay9;
!!UN:Ay9/9/?z999;
!!IF:M^你获得了%Z999这件宝物。^;
!!UN:Ov8050/v8051/v8052/1;
!!FU:E;

[ 本帖最后由 wanghy 于 2011-10-18 10:58 编辑 ]

老实猪 发表于 2011-10-18 12:13:14

!!DO8003/1/n/1&n>0:P;

!?FU8003;
!!UN:U5/-1/x16/8050;

wanghy 发表于 2011-10-18 13:12:23

回复 12# 的帖子

猪大,您提的办法我试过,测试无效x16=0;
这个我现在用影子变量解决了
能不能麻烦您看看我一楼提到的问题

寻梦人 发表于 2011-10-18 13:38:45

回复 13# 的帖子

猪大已经写出来了!
不要用x1,用x16就可以了!
因为Px16,只有函数触发后才有x1----x16的值!
而触发器里是没有用的!
在接收器才可以直接调用x1---x16的值!

老实猪 发表于 2011-10-18 15:27:11

原帖由 wanghy 于 2011-10-18 13:12 发表 http://www.wogcn.net/images/common/back.gif
猪大,您提的办法我试过,测试无效x16=0;
这个我现在用影子变量解决了
能不能麻烦您看看我一楼提到的问题 [/q

x16就是逐一取1-n的数值 不可能出现=0的情况 你是否又用了其他变量储存结果?

你之前触发器用“Px16;”后面接收器用x1取x16数值,这种错误源于你根本没明白这个函数的正确使用方法,多看看erm帮助文档再动手,不要光急着写功能脚本

打好基础后你就会明白 现在困扰你的并不是这个脚本功能有多难 往往是你自己从一开始就误解了原本简单的函数和变量的使用方法

另外你一楼的问题我看不懂 什么叫影子变量?什么叫循环3-4遍出错?

寻梦人 发表于 2011-10-18 16:36:54

回复 15# 的帖子

猪大这样说,小克会表示压力好大!
其实现在肯学ERM的同学很很少了,我们应当鼓励+支持!
还有不耐其烦的交流!

共勉!!!

沧海一粟 发表于 2011-10-18 17:35:06

ERM没有想像的那么复杂,循环函数循环就行,说什么影子变量复合变量之类的,听到都觉得头晕。

无心云 发表于 2011-10-18 20:19:30

我也来凑个热闹
人家半个月九引来一对大能

按都几年了还是小白依旧啊

wanghy 发表于 2011-10-18 22:07:28

影子变量是我们自己的一种叫法就是当一个变量在特殊环境下无法取值或取值不正确时用另一个取值完全一样的变量来代替它用作输出。这个办法有的时候虽然增加了使用变量的数量。但可以解决很多传输错误的办法。
至于猪大大说的这个问题。其实第一遍我就是按照猪大的写法写的。写完以后测试了几次,结果直接就是0退出。我也不知道问提出在哪里。只能用这样的办法绕过去了。
至于遍历3-4次
就是整个循环前3,4次完全没有错误,因为是遍历整个地图寻找对象,所以实际上是种双层循环(因为遍历本身也是一种循环)。相对于单纯的循环,系统资源的消耗量会成几何级数增加。

wanghy 发表于 2011-10-18 22:11:14

不好意思,习惯了,做it地不靠一大堆专业术语怎么把客户脑子搞乱呢;orz; ;orz;
后面的你明白的。。。。

老实猪 发表于 2011-10-18 23:00:19

你们说的这种影子变量 根本是一种自欺欺人的方法

当一个变量无法取值或者取值错误 那肯定是脚本不严谨造成的

应该做的就是除虫 而不是用另一个变量来补充

即浪费的变量 也增加了脚本的繁琐性 关键的除虫没做到

习惯了用绕圈子的方法写脚本 说明作者自己都是一知半解 脚本和谈稳定性?

还有你对循环和双循环的解释 我还是不明白你针对的是什么问题

俗话说深入浅出复杂的东西用简洁的话语交流最有效

那些独创的词汇实在理解不能 帮不了你了
页: [1] 2
查看完整版本: 自己吼不住了,老师(克招)这两天可能事比较多。只能求助各位前辈先贤了。。。。

捐赠