fastarrow 发表于 2012-12-27 20:15:15

【更新】八级兵野外巢穴生物积累

更新一下。借鉴老外用的PO办法,不需要再用144个v变量。
仍采用定时器触发。

两种办法都有缺陷,采用OB,则右键文本失效,且只对有归属的生物巢穴有效
采用TM,则无法判断最后一家颜色是否在第7天访问并雇出了八级兵。




ZVSE

***只适用有八个玩家的地图,且粉色不是人类玩家****

!#TM51:S8/999/7/255;
!#TM49:S7/999/7/255;


***保存八级兵生物巢穴可雇佣生物数量***
!?TM49;
!!OW:C?y10;             获取当前玩家颜色
!!FU&y10<>7:E;      非粉色时终止
!!FU656:P1/1;
***保存八级兵生物巢穴可雇佣生物数量***

***星期一叠加八级兵生物巢穴可雇佣生物数量***
!?TM51&1000;
!!FU656:P1/2;
***星期一叠加八级兵生物巢穴可雇佣生物数量***

***功能函数***
!?FU656&x1=1;
!!UN:U17/-1/?y10;                           计算生物巢穴总量
!!DO656/1/y10/1&y10>0/x2=1:P2;   遍历所有生物巢穴
!!DO656/1/y10/1&y10>0/x2=2:P3;   遍历所有生物巢穴


!?FU656&x1=2;
!!VRv51:C-1/-1/-1;                                 初始化变量
!!UN:U17/-1/x16/51;                               获取坐标
!!DWv51/v52/v53:M0/?y11/?y12;获取可雇佣怪物类型数量
!!FU|y11<150/y11>158:E;                  怪物类型非八级兵时终止
!!PO51:V3/y12;                                           储存积累


!?FU656&x1=3;
!!VRv51:C-1/-1/-1;                      初始化变量
!!UN:U17/-1/x16/51;                   获取坐标
!!DWv51/v52/v53:M0/?y11/d;   获取可雇佣的生物类型
!!FU|y11<150/y11>158:E;          非八级兵时终止
!!PO51:V3/?y12;                         读取积累量
!!DWv51/v52/v53:M0/d/dy12;    叠加积累量
***功能函数***

[ 本帖最后由 fastarrow 于 2012-12-29 01:31 编辑 ]

贤知有您 发表于 2012-12-27 20:45:16

支持老离的新脚本!!

看到用了不少V变量哦.
我记得外国人也写过类似的脚本,累积8级巢穴生物.
但翻了一下,一时没找着.
那个脚本我印象中是用 OB 访问8级巢穴来写的,并没有用到TM触发器.

[ 本帖最后由 贤知有您 于 2012-12-27 20:47 编辑 ]

fastarrow 发表于 2012-12-27 20:57:02

看到用了不少V变量哦.

因为地图上最多允许有144个生物巢穴,所以需要144个v变量来记录新的一周来临之前,144个巢穴的生物数量

我记得外国人也写过类似的脚本,累积8级巢穴生物.
但翻了一下,一时没找着.
那个脚本我印象中是用 OB 访问8级巢穴来写的,并没有用到TM触发器.

OB恐怕不行,从逻辑上看,没有办法获取该巢穴过去的时间里,到底累积了多少生物。

贤知有您 发表于 2012-12-27 21:01:48

回复 3# 的帖子

也不是没可能的.
用 PO:V 就可以存储这个坐标的一些数据.
如果我没记错的话,应该记录了2个数据
一个是最后访问时,当前周.估计是用于再次访问时通过经过了多少周来累积.
一个是访问后(招募后),当前巢穴的剩余数量

我得把这个脚本找出来才行.只是看过,也没有放地图上测试.也不知道效果.

沧海一粟 发表于 2012-12-27 21:15:44

老离这脚本写的相当严谨,相当棒,但147个V变量有点心疼哟,感觉还是可以通过其它方式来实现的。
而且和寻梦人的一键招兵的功能上有点冲突了,可惜。。。

fastarrow 发表于 2012-12-27 21:23:34

原帖由 贤知有您 于 2012-12-27 21:01 发表 http://bbs.h3wog.com/images/common/back.gif
也不是没可能的.
用 PO:V 就可以存储这个坐标的一些数据.
如果我没记错的话,应该记录了2个数据
一个是最后访问时,当前周.估计是用于再次访问时通过经过了多少周来累积.
一个是访问后(招募后),当前巢穴的剩余数量 ...


老实说,PO:V我一直搞不太懂用法,PO命令我只用过PO:N,

看ERM说明,是记录一些访问信息,但是生物巢穴,无论对人类玩家还是AI,就算访问了,也不见得就把巢穴里的生物雇佣出来啊……

fastarrow 发表于 2012-12-27 21:28:33

原帖由 沧海一粟 于 2012-12-27 21:15 发表 http://bbs.h3wog.com/images/common/back.gif
老离这脚本写的相当严谨,相当棒,但147个V变量有点心疼哟,感觉还是可以通过其它方式来实现的。
而且和寻梦人的一键招兵的功能上有点冲突了,可惜。。。

老实说,我不大喜欢简化操作太多的脚本。我们应该做一些操作,并不是勤不勤快 的问题,大多数做这些看上去像很无聊的工作时,我们的脑子可以做很多别的事儿,比如考虑下一步的规划,英雄的走位,刚刚打完的仗,战场上的一些数据的分析,如果有异常(看上去跟平时不一样),那么这些异常可能是什么原因,怎么造成的……

三国也好,仙剑也好,游戏时间的一天,我花上一个小时甚至2-3个小时都是不稀奇的。

贤知有您 发表于 2012-12-27 21:30:56

终于翻出来了,都是英文,难怪我找了这么久.
.感觉上只是测试版,可能不完善吧.我也没测试过.
老离看看是不是有用得着的地方

ZVSE

* TestLevel8DwAcc, JHV, Jan. 25, 2011
* Accumulate Creatures in Level 8 Dwellings (Types 17/80-17/88)

!#UN:P1; set Level 8 standard dwelling behavior

!?OB17; visit to type 17 Object
!!OBv998/v999/v1000:U?y1; get subtype
!!FU|y1<80/y1>88:E; do only subtypes 80-88
!!DWv998/v999/v1000:O?y1;
!!FU&y1=-1:E; skip accumulation if not owned
!!PO998:V2/?y2 V3/?y3; get week and count at last visit
!!VRy4:Sc0-1:7+1; current week (first week is week 1)
!!VRy4:-y2; current week-last visit
!!VRy3:+y4; accumulate count
!!DWv998/v999/v1000:M0/d/y3; set accumulated count

!$OB17; post-visit to type 17 Object
!!OBv998/v999/v1000:U?y1; get subtype
!!FU|y1<80/y1>88:E; do only subtypes 80-88
!!VRy3:Sc0-1:7+1; current week
!!DWv998/v999/v1000:M0/d/?y4; get count
!!PO998:V2/y3 V3/y4; save week and count

fastarrow 发表于 2012-12-27 21:56:12

原帖由 贤知有您 于 2012-12-27 21:30 发表 http://bbs.h3wog.com/images/common/back.gif
终于翻出来了,都是英文,难怪我找了这么久.
.感觉上只是测试版,可能不完善吧.我也没测试过.
老离看看是不是有用得着的地方

ZVSE

* TestLevel8DwAcc, JHV, Jan. 25, 2011
* Accumulate Creatures in Level 8...



经过简单测试,可以累积,有个小小的毛病,他没有考虑八级兵的增长率,增长率不一定永远是1.
另外,因为ERM命令,可能使8级兵巢穴不一定招八级兵,非八级兵巢穴也不一定不能招八级兵。仍然会出BUG。
右键增强文本提示在访问巢穴前显示数值不正确。


另外,我仍然看不懂PO:V的用法,能否详细介绍一下?

[ 本帖最后由 fastarrow 于 2012-12-27 22:05 编辑 ]

贤知有您 发表于 2012-12-27 22:15:26

说实话, PO:V 命令我也没用过.只是知道能这么用而已.
ERM里说这个能存储坐标的一些数据,(0-3)即有4项数据可供存储或读取.
相当于一个小数组,每个坐标均可附带这个 4项数据的数组.(类似于W变量吧)
右键增强文本这个倒是好办,自定义个暗示文本就是了.

老离觉得可用的话,不如修改一下,使之完善起来,可以作为一个通用型的ERM脚本.

fastarrow 发表于 2012-12-27 22:26:11

原帖由 贤知有您 于 2012-12-27 22:15 发表 http://bbs.h3wog.com/images/common/back.gif
说实话, PO:V 命令我也没用过.只是知道能这么用而已.
ERM里说这个能存储坐标的一些数据,(0-3)即有4项数据可供存储或读取.
相当于一个小数组,每个坐标均可附带这个 4项数据的数组.(类似于W变量吧)
右键增强文本这个 ...

我觉得比我那种方法好,起码不用那么多V变量。这个我会研究一下。

清风大天使 发表于 2012-12-31 23:26:02

回复 2# 的帖子

学习;orz;

YangChao01 发表于 2016-3-20 13:31:01

以前玩WOG ,觉得八级兵太强,低级兵没有出场机会了,于是将八级兵封存了按自己的想法改ERM 玩。
最近想要加点变化,又开始玩八级兵并调整了各级兵的产量保证出场机会,发现即使开了生物累积,八级兵也不累积产量,觉得是 bug,搜索下找到这个帖子。

楼主说两种办法都有缺陷,我综合两种办法自行作了修改,在没有别的ERM 改变巢穴生物的种类和数量的前提下应该可行了。
基本原理就是用PO:V来记录可招募数量,在数量变化的时候(主要是招走后数量减少和每周初数量增加)同步更新就行了。

!$OB17在英雄访问巢穴招募八级兵生物后用PO:V来记录剩余八级兵数量,!?OB17就不需要了,增加数量的工作由!?TM来完成。
利用!?TM和$weekday$ $once$在每周初运行一次,遍历所有生物巢穴,对于其中的八级兵巢穴,读取PO:V并运算得到累积后的八级兵数量,写入巢穴的招募数量,并相应更新PO:V。
页: [1]
查看完整版本: 【更新】八级兵野外巢穴生物积累

捐赠