Miser1 发表于 2013-9-3 14:35:00

【求助】求编辑ERRM时,起始城镇、起始英雄ID的调用方法

【求助】求编辑ERRM时,起始城镇、起始英雄ID的调用方法
在游戏大地图上,选择场景信息(快捷键I),会出现以下图。



现在求一条接收器语法,
用于检查此图中每个玩家(旗帜),对应的起始城镇,和起始英雄ID。。。
我写脚本时用,谢谢。。。


fly123 发表于 2013-9-7 20:15:37

这个很简单啊,仔细看Erm帮助。
!?PI;
!!OW:C?i;检测玩家!!OW:C?i;
!!OW:Ni/0/?y10;初始城镇
!!OW:Hi/6666/1; 存储玩家的第一个英雄编号到v6666

Miser1 发表于 2013-9-7 20:51:27

fly123 发表于 2013-9-7 20:15
这个很简单啊,仔细看Erm帮助。
!?PI;
!!OW:C?i;检测玩家!!OW:C?i;


首先感谢。。

其次,我很抱歉,回答错误。。

这个方法我很早就想到了。。就是在游戏刚开始的时候取第一个城市和第一个英雄保存。

但是,有个概念问题需要纠正。。
起始城镇不等于开始时第一个城镇。。它可以没有。。也可以是你开始时没有的城市类型,也就是说,你最开始时候只有个鬼城,但是你的起始城镇可以是天使城。些都是在地图编辑器里可设置的,当然默认是统一的。



同样,起始英雄也并不等于开始第一个英雄
,可以是第二个,第三个。。。也可以没有,与起始城镇不同的是,如果只有一个英雄,那他一定是起始英雄。。。

起始城镇的意义主要在于酒馆左侧英雄的类型。。。


另外,游戏开始后,起始城镇和起始英雄就固定了,并不会在游戏中改变,即使点击O-R重新开始,这两个值都不会变
,所以说这两个值应该是可以直接取的,并不用引入新的变量储存。话说现在变量资源这么紧张,我都是用一个变量实现十几个功能的。。。

最后。。。再次遗憾的告诉你。。第二句语法没错,但是使用错了,并不会得到第一个城市的类型。。错误有两处。。1是红色玩家不一定是当前玩家。。这是小漏洞。。
最大的问题是。。这个命令是在选中城市后才可以用的。。。你用在PI初始化时,得到的数据只能是0

我不是故意挑毛病。。只是觉得。。。大家多交流多讨论有助于共同提高。。。

再次感谢!!!

fly123 发表于 2013-9-7 20:56:24

Miser1 发表于 2013-9-7 20:51
首先感谢。。

其次,我很抱歉,回答错误。。


反正,我都是这么检测的,到现在没发现什么问题,不过,都是用的红色,单一英雄,你说的问题,我没有时间测试。我也不知道,是你对还是我对。

fly123 发表于 2013-9-7 20:57:23

还有就是酒馆英雄,左右应该是无法检测的吧。

a968574 发表于 2013-9-7 21:09:07

继续跟进,直到解决为止

fly123 发表于 2013-9-7 22:19:05

楼主说的东西,你是否已经验证过,虽然,我写的没有全面验证,但是,我所写的,都是根据Erm帮助来的。
!!OW:XXXX;       
These are commands that apply to a specific player.
C?$;        Get/Check current player
   $ - Get or check current player (will return 0..7 - see Format E1).
Comments:
You can only get or check, but not set the value.
e.g., !!OW:C?i;
H#1/$2/#3;        Calculate and get numbers of Heroes.
   $1 - Owner (-1=current). See Format E1.
   $2 - Start index of v variables to store info.
      v[$2] = number of Heroes.
      v[$2+1] = number of first Hero.
      v[$2+2] = number of second Hero.
   #3 is an index of a Hero the owner has.
      = 0 - store number of all Heroes the owner has in v[#2]
      > 0 - index, store the number of a Hero the owner has to v[#2] if there is no Hero with index, the v[#2] is not changed.There is NO check or get syntax!

Example:
!!OW:H1/99/0; store a number of Heroes the Blue player has to v99
!!OW:H1/100/1; store the number of the first Hero the Blue player has to v100
!!OW:H1/100/2; store the number of the 2nd Hero the Blue player has to v100
!!OW:H1/100/3; store the number of the 3rd Hero the Blue player has to v100
!!OW:H1/100/4; store the number of the 4th Hero the Blue player has to v100
N#1/#2/$;

N#1/#2/$/0;
       Check/get/(set) active town
You can get a number of a town that is shown in one of 5 slots at the right side of the adventure map in the town list:
#1 - is an owner (-1=current)
#2 - is an index of the slot (0=top..4)
$ - is a town number (-1=no town,0..N=number of towns)
Comments:
You can use only GET or check syntax.
Example:
!!OW:N2/3/?y10; get the number of a town that is located in the forth slot for the Blue player and store it in y10.
Note: You can use forth dummy (which can be any number) parameter to use extended syntax

Miser1 发表于 2013-9-7 22:31:26

fly123 发表于 2013-9-7 20:57
还有就是酒馆英雄,左右应该是无法检测的吧。

酒馆里的英雄是可以检测,并且可以设置的。。不过设置时要考虑好情况,不然容易引起同一个英雄被一个玩家多次引用,或者被多个玩家使用的错误,所以不推荐使用。。
V#/$1/$2; 设置/获取/检查酒馆中可以雇佣的英雄
   # - 玩家编号
   $1 - 酒馆界面中靠左的英雄
   $2 - 酒馆界面中靠右的英雄
提示:
不能够保证在你设定一个英雄可以被多个玩家雇佣后(即对另一个玩家使用一个拷贝)仍能够工作正常
当英雄设定为在酒馆中可以被雇佣时,应该暂时设定为禁用。

Miser1 发表于 2013-9-7 22:41:37

fly123 发表于 2013-9-7 22:19
楼主说的东西,你是否已经验证过,虽然,我写的没有全面验证,但是,我所写的,都是根据Erm帮助来的。
!!O ...

别拿英雄忽悠我。。。N#1#2/$/0的语法说明都写错了。。。译文如下:


C?$; 获取/检查当前玩家编号
   $ - 获取或检查当前玩家编号 (将返回 0..7- 见格式E1).
注意:
该命令只能够获取或检查,不能设置。
如, !!OW:C?i;

H#1/$2/#3;计算并获取英雄的数量。
   $1 - 玩家颜色编号(-1=当前)(见格式E1)
   $2 - 用于存储信息的v变量的索引
      v[$2] = 英雄数量
      v[$2+1] = 第一个英雄的编号。
      v[$2+2] = 第二个英雄的编号。
   #3 是一个用于表示英雄所属的索引
      = 0 - 存储一个颜色玩家所属的所有英雄到变量 v[#2]
      > 0 - 索引,存储某一颜色玩家的一个英雄的编号到 v[#2] 。如果没有英雄, v[#2] 不会改变。该值只能设置不能获取和检查。

举例::
!!OW:H1/99/0; 存储蓝色玩家的英雄数量到 v99
!!OW:H1/100/1; 存储蓝色玩家的第一个英雄编号到v100
!!OW:H1/100/2; 存储蓝色玩家的第二个英雄编号到v100
!!OW:H1/100/3; 存储蓝色玩家的第三个英雄编号到v100
!!OW:H1/100/4; 存储蓝色玩家的第四个英雄编号到v100
N#1/#2/$;
N#1/#2/$/0; 移动城镇列表
#1 - 玩家编号 (0...7,-1=当前)(见格式E1)
#2 - 动作类型:
    1 = 把英雄移动到列表顶端
    2 = 英雄上移一个位置
    3 = 英雄下移一个位置
#3 - 城镇的位置槽 (0..4)
#4 - 固定参数(0)
举例:

!!OW:N0/1/4/0; 把红色玩家当前城镇位置槽中的第5座移动到城镇列表的顶端.



C?$; 获取/检查当前玩家编号
   $ - 获取或检查当前玩家编号 (将返回 0..7- 见格式E1).
注意:
该命令只能够获取或检查,不能设置。
如, !!OW:C?i;

H#1/$2/#3;计算并获取英雄的数量。
   $1 - 玩家颜色编号(-1=当前)(见格式E1)
   $2 - 用于存储信息的v变量的索引
      v[$2] = 英雄数量
      v[$2+1] = 第一个英雄的编号。
      v[$2+2] = 第二个英雄的编号。
   #3 是一个用于表示英雄所属的索引
      = 0 - 存储一个颜色玩家所属的所有英雄到变量 v[#2]
      > 0 - 索引,存储某一颜色玩家的一个英雄的编号到 v[#2] 。如果没有英雄, v[#2] 不会改变。该值只能设置不能获取和检查。

举例::
!!OW:H1/99/0; 存储蓝色玩家的英雄数量到 v99
!!OW:H1/100/1; 存储蓝色玩家的第一个英雄编号到v100
!!OW:H1/100/2; 存储蓝色玩家的第二个英雄编号到v100
!!OW:H1/100/3; 存储蓝色玩家的第三个英雄编号到v100
!!OW:H1/100/4; 存储蓝色玩家的第四个英雄编号到v100
N#1/#2/$;
N#1/#2/$/0; 移动城镇列表
检查/获取玩家城市槽中的当前5个城镇在地图中的编号
#1 - 玩家编号 (0...7,-1=当前)(见格式E1)
#2 - 城市槽的编号 (0=顶部..4)
$ - 城镇在地图中的编号 (-1=没有城镇,0..N=城镇的编号)
提示:
该命令只能 用于获取和检查。
举例:

!!OW:N1/3/?y10; 检查蓝色玩家当前城镇槽中第3个城镇在地图上的编号并储存于y1
页: [1]
查看完整版本: 【求助】求编辑ERRM时,起始城镇、起始英雄ID的调用方法

捐赠