中泽伴行 发表于 2013-4-19 00:27:06

请问一下 怎么检查玩家是否访问过一个物体

翻自带的Script的时候没有找到类似的语句。。
我的想法是让寻路术的最低移动速度不和增加陆地移动速度的物体和宝物冲突
现在已经解决物品和技能的问题
但还没能找到怎么解决和马厩的相性。。
因此想问下检查玩家在当周之内是否访问过某个物体该用哪个receiver
另外城堡城镇里的马厩应该和外面的是同一个物体吧
这里放一下我修改之后的寻路术代码
带【】就是我修改的内容
** function for pathfinding    x1 = herox2 = pathfinding
!?FU7025;

!!HEx1:P?v7023/?v7024/?v7025;               
!!TR7023:T?y1/d/d/d/d/d/d/d;                  
!!FU&y1=8:E;                                 


!!VRy6:S0;
!!HEx1:A2/70/?y3/?y4 A2/98/?y3/?y5; 【检测英雄是否有增加移动速度的宝物】
!!VRy6&y4>0:Sy6 +1;【手套+300】
!!VRy6&y5>0:Sy6 +2;【鞋子+600】
!!VRy6:Sy6 *300;
!!HEx1:W?y2;                        
!!HE:S2/?Y7;    【检查后勤术等级】
!!VRy2:Sy2 -y6;【事先减去物品的加成以获取英雄本身的移动速度】
!!VRy2&x2=1/y7=0/y2<1700:S1700;                  
!!VRy2&x2=1/y7=1/y2<1870:S1870;
!!VRy2&x2=1/y7=2/y2<2040:S2040;
!!VRy2&x2=1/y7=3/y2<2210:S2210;
!!VRy2&x2=1/y7=0/y2<1760:S1760;
!!VRy2&x2=2/y7=1/y2<1936:S1936;                  
!!VRy2&x2=2/y7=2/y2<2112:S2112;
!!VRy2&x2=2/y7=3/y2<2288:S2288;
!!VRy2&x2=3/y7=0/y2<1830:S1830;                  
!!VRy2&x2=3/y7=1/y2<2013:S2013;
!!VRy2&x2=1/y7=2/y2<2196:S2196;
!!VRy2&x2=3/y7=3/y2<2379:S2379;
!!VRy2:Sy2 +y6;   【加上物品的加成】
!!HEx1:Wy2 Gy2;


另外还想问下用!#UN:A#/1和!!UN:A#/1语句禁止组合宝物的话
是阻止这个宝物在地图上直接生成但是可以捡小件自己合成
还是完全就禁止这个宝物在游戏里出现?
主要是有些随机图模板放了很多16级随机宝物
结果一开打电脑附近地上就是一堆天使联盟龙王神力。。这根本不能打!

贤知有您 发表于 2013-4-19 11:39:03

检测玩家是否访问过某些特殊建筑(诸如马厩这些)
请使用 HExx:R7/$; 的命令检测.
不过据我了解,是否访问过魔井的检测有可能无效,但马厩是没有问题的.

访问城镇马厩和大地图马厩效果是一样的.

!#UN:A#/1 我认为只是禁止地图上出现而已,不能禁止在游戏中出现..而且地图上手动放置的也是禁止不了的.(未测试过)

中泽伴行 发表于 2013-4-19 16:56:51

回复 消灭零回复 2# 的帖子

多谢了 手册里似乎没有关于!!HEx1:R7/$的用法
$是代表马厩编号还是是否访问过的标志?

贤知有您 发表于 2013-4-20 10:42:45

回复 跟帖促繁荣 3# 的帖子

代表的是标志.
其实我没说出来是想你自己去试验一下.
脚本很多都是靠自身试验得出经验的.

比如这里你想弄明白第二参数的含义.
自己弄个小地图,在指定英雄旁边加点马厩或者水洼之类.
然后弄个脚本, 如HE-1:R7/?y1;
检测英雄访问这些物体后,的R7/$后面的值.
你会发现这些相当于标志位,可以叠加的.
马厩的标志位正是2.

(不过同时我也得说,魔井这个1,有点不正常)

中泽伴行 发表于 2013-4-20 20:38:42

回复 我回帖我光荣 4# 的帖子

这个确实要尝试还是有难度的
因为事先不知道值域以及代表含义的话会不知道从何下手
比如R7/$这个语句在ERM教程里甚至Scl.cfg里都没有找到对应的作用说明
所以就不知所措了。
不过判定上倒是我目前用的R7/?y1和&y1>0 也算误打误撞吧233
回去修改下以免和魔井之类的冲突了

目前我所有的代码都是看已有的代码自行改动或修正的
也有一个专门的测试地图测试各种代码改动
但主要因为ERM和地图的编辑和测试是分开的
每改动一次就要重启游戏
再加上我配置不算好开一次游戏要较长时间
所以要每一个标志位都逐一尝试的话还是很费时间的
要说自己摸索得出经验这是必经之路
毕竟刚开始写代码肯定有各种报错的地方
之后就是不断的完善

中泽伴行 发表于 2013-4-21 20:46:48

回复 我回帖我光荣 4# 的帖子

昨天试了下结果报错了。。。
提示说!!HE:R7/?y8的语法是错误的
请问是怎么回事。。。
代码:
!!VRy6:S0;
!!HEx1:A2/70/?y3/?y4 A2/98/?y3/?y5;
!!VRy6&y4>0:Sy6 +1;
!!VRy6&y5>0:Sy6 +2;
!!VRy6:Sy6 *300;
!!HEx1:W?y2;                                 
!!HEx1:R7/?y8;
!!IF:Q1/36/y8/1^Get The Value Of y8.^;
!!VRy8&y8=2:S400;
!!VRy8&y8<>2:S0;
!!HEx1:S2/?y7;
!!VRy2:Sy2 -y6 -y8;
!!VRy2&x2=1/y7=0/y2<1760:S1760;                  
!!VRy2&x2=1/y7=1/y2<1836:S1836;
!!VRy2&x2=1/y7=2/y2<2112:S2112;
!!VRy2&x2=1/y7=3/y2<2288:S2288;
!!VRy2&x2=2/y7=0/y2<1830:S1830;                  
!!VRy2&x2=2/y7=1/y2<2013:S2013;
!!VRy2&x2=2/y7=2/y2<2196:S2196;
!!VRy2&x2=2/y7=3/y2<2379:S2379;
!!VRy2&x2=3/y7=0/y2<1900:S1900;                  
!!VRy2&x2=3/y7=1/y2<2090:S2090;
!!VRy2&x2=3/y7=2/y2<2280:S2280;
!!VRy2&x2=3/y7=3/y2<2470:S2470;
!!VRy2:Sy2 +y6 +y8;
!!HEx1:Wy2 Gy2;                              
** end of function

报错提示HE:R7/?y8语法错误。

贤知有您 发表于 2013-4-22 11:54:38

看不出有什么问题哦.
莫不是WOG不支持HE:R7吧.

另外,检测是否访问过马厩,不是直接 =2的
它是一个标志,可能含有其它数位.应用 &2 来判断.
参考下生物标志的判断方式.

中泽伴行 发表于 2013-4-25 23:06:59

回复 7# 的帖子

仔细看了下scl.cfg还有较近版本的语法介绍
最多也是到HE:R6就结束了

刚刚看到最新版的帮助手册
总算是看到R7的用法了233
话说马厩的标志是1 魔井是0...
无语了还是报错。。。
难道真的是我的WOG不支持HE:R7?
3.5.8.15的版本应该是现在最新版的WOG吧
难道这个用法只能在59里用?

[ 本帖最后由 中泽伴行 于 2013-4-25 23:34 编辑 ]
页: [1]
查看完整版本: 请问一下 怎么检查玩家是否访问过一个物体

捐赠