CD:B1修改前置建筑条件的具体方法
本帖最后由 贤知有您 于 2013-12-27 13:38 编辑先看帮助内容
CD:B1/#1/#2/$1/$2
#1 = 城镇类型 (见 格式 T)
#2 = 建筑物类型 (见 格式 BL)
$1 = 第一个建筑的双字值(数位0-3) (见 格式 BL)
$2 = 第二个建筑的双字值(数位4-5) (见 格式 BL)
在BL格式列表中,最左的一列代表数位.
所以,前置建筑数位(0-3)的值包含在 $1参数中,(4-5)的值包含在 $2参数中.
若前置建筑没有(4-5)数位的建筑,则$2的参数可直接写0.
附件列出了所有建筑对应的实际值,要设置多个前置建筑值,只需把对应的值相加就行了.
先来验证一下,人族的7级兵低级巢穴的前置建筑值(条件).
首先可直接用脚本获得该值:
ZVSE
!?PI;
!!CD:B1/0/36/?y1/?y2; 读取
!!IF:M^%Y1 - %Y2^;
这里
Y1=1073807489
Y2=6
对应的(0-3)前置建筑是:
堡垒 (128)
一级魔法行会 (1)
铁匠铺 (65536)
岗楼 (2147483648)
2147483648+65536+128+1=1073807489
对应的(4-5)前置建筑:
兵营(4级巢穴) (2)
寺院(5级巢穴) (4)
2+4=6
-----------------------------------------------------------------------------------
举例:
例子一:
人族的二级低级巢穴不需要岗楼条件(1级低级巢穴)
最直接的脚本
(在正常情况下,以下脚本正确,但当有其它脚本修改过这个值时,直接减法脚本会很危险)
ZVSE
!?PI;
!!CD:B1/0/31/?y1/?y2; 读取
!!VRy1:-1073741824; [直接减去巢穴1的值]
!!CD:B1/0/31/y1/d;
当然为了慎重起见,脚本应这样写:
ZVSE
!?PI;
!!CD:B1/0/31/?y1/?y2; 读取
!!VRy3:Sy1 &1073741824;
!!VRy1&y3>0:-1073741824; [若第1巢穴是前提,则去掉这个前提]
!!CD:B1/0/31/y1/d;
或者(&-数值的语法)
把1073741824 加1 再变负数
ZVSE
!?PI;
!!CD:B1/0/31/?y1/?y2; 读取
!!VRy1:&-1073741825; [与上面语句功能一样]
!!CD:B1/0/31/y1/d;
例子二:
高级蛮牛不需要物资仓库和市场.
物资仓库和市场都属于(0-3)建筑
ZVSE
!?PI;
!!CD:B1/7/41/?y1/d;
!!VRy2:Sy1 &32768;
!!VRy1&y2>0:-32768; [最好各个值分别检测]
!!VRy2:Sy1 &16384;
!!VRy1&y2>0:-16384;
!!CD:B1/7/41/y1/d;
或
ZVSE
!?PI;
!!CD:B1/7/41/?y1/d;
!!VRy1:&-32769; [物资仓库]每个数值都要单独负数一次
!!VRy1:&-16385; [市场]
!!CD:B1/7/41/y1/d;
例子三:
人族的狮鹫不需要兵营条件
兵营属于(4-5)的建筑(数值2),所以更改的是最后一个参数
ZVSE
!?PI;
!!CD:B1/0/32/d/?y1; 读取
!!VRy1:&-3;
!!CD:B1/0/32/d/y1;
最后一点:
如果所需的前提混合了(0-5)的建筑,那么最后2个参数要分别按照上面规则来设置.
具体的参数表
(注:EXCEL数值表最后几个数字有误,具体参考下面帖子的表格值)
[ 本帖最后由 贤知有您 于 2013-5-29 09:04 编辑 ] 字节
字节数位编号建筑名称 (城镇编号)
如果没有写则没有实际值010一级魔法行会1021二级魔法行会2042三级魔法行会4083四级魔法行会80104五级魔法行会160205酒馆320406船坞(0,4,7,8)
640807壁垒128118大本营256129城堡5121410议事堂10241811内政厅204811012议会409612013国会819214014市场1638418015资源仓库327682116铁匠铺655362217灯塔(0)
魔幻池(1)
宝物商人(2,5,8)
黑暗天幕(4)
遁逸之路(6)
战神之栏(7)
1310722418为低级生物提高产量的建筑:
狮鹫(0)
矮人(1)
石人(2)
小怪物 (3)
骷髅(4)
穴居者(5)
大耳怪(6)
狼人(7)
小精灵(8)
2621442819为高级生物提高产量的建筑:
皇家狮鹫(0)
战斗矮人(1)
铁人(2)
大怪物 (3)
骷髅勇士(4)
地狱穴居者(5)
大耳怪王(6)
狼人王(7)
大精灵(8)52428822021马场(0)
幸运泉(1)
了望塔(2)
硫云风暴(3)
招魂塔(4)
魔力旋涡(5)
自由职业者协会(6)
恐怖浮雕(7)
魔法学院(8)
209715224022兄弟会(0)
金库(1)
图书馆(2)
城镇大门 (3)
骷髅转换场(4)
召唤之门(5)
弩车工场(6)
血塔(7)
419430428023知识强(2)
烈火神柱(3)
斗士学院(5)
英烈祠(6)
83886083124为低级生物提高产量的建筑:
枯木卫士(1)
地狱猎犬 (3)
167772163225为高级生物提高产量的建筑:
枯木战士(1)
三首猎犬 (3)335544323426神迹6710886434030巢穴 1
107374182438031巢穴 2
21474836484132巢穴 3
14233巢穴 4
24434巢穴 5
44835巢穴 6
841036巢穴 7
1642037高级巢穴 1
3244038高级巢穴 2
6448039高级巢穴 3
1285140高级巢穴 4
2565241高级巢穴 5
5125442高级巢穴 6
10245843高级巢穴 7
2048
[ 本帖最后由 贤知有您 于 2013-5-29 09:03 编辑 ] 前面3个参数,我经常用,后面的2个,之前还真不知道是什么意思。现在明白啦。辛苦了,贤知大师。;oweojs; 好东西,先顶后看…… 没想到是用“实际值”,erm帮助里似乎也没写要用这么大的数值,所以就陷入迷茫了,还有给建筑添加建筑的方法嘛?
另外!?PI;这个是起到什么作用呢,我看脚本里不大用
[ 本帖最后由 titanzwh 于 2013-5-21 00:07 编辑 ] 还想知道 /y1/d 中的d是啥意思呢,和y1,y2有什么区别没有?
[ 本帖最后由 titanzwh 于 2013-5-21 00:21 编辑 ]
回复 论坛兴旺玩家受益 5# 的帖子
PI触发器有点类似 !#的说明,但运行在 !# 之后,在大地图呈现之前.还想知道 /y1/d 中的d是啥意思呢,和y1,y2有什么区别没有?
d原来主要用于 数值的增加,比如某语法参数用 d8 表示在原有值的基础上加8.
这里单用一个d只是充当填充参数作用,不改变任何值.
这在不清楚原值而又必须输入参数的情况下非常好用.
回复 发帖回帖人人有责 6# 的帖子
在设置前置建筑之前, 最好先用检测语法看看原本的 值是多少(就是说看看原本包含了什么前置建筑, 结合游戏中的描述可详细得到,最容易漏掉的是壁垒) 得 学习学习! 经测试,高级巢穴 4 后面的数值应该继续是128的倍数顺下来。
回复 10# 的帖子
你说得很正确.我忘记写 4-5的建筑的值了, 只关心0-3的值.呵呵 新手来学习下 本帖最后由 yingxiong 于 2014-1-15 20:20 编辑
;exp; 好像看懂了...可是最后一个例子又晕了....求帮助...
例子三:
人族的狮鹫不需要兵营条件
兵营属于(4-5)的建筑(数值2),所以更改的是最后一个参数
ZVSE
!?PI;
!!CD:B1/0/32/d/?y1; 读取
!!VRy1:&-3;就是这里有疑惑.
!!CD:B1/0/32/d/y1;
这个例子中,兵营的实际参数不是2吗?
这个3是找的哪个值呢?...我在看答案前,自己写的是!!VRy1:&-2; ;ym; 难道我前面理解的都是错的0 0 .....求问3怎么来的
.....啊..为什么我直接复制粘贴进去实验...提示wog化脚本前就报错??
还有格式省略了? 额... 抱歉.急于解决建筑物条件问题.... 囫囵吞枣学的. 我看第一,二个例子好像明白了框架,
大致是根据一个公式,将某个存储量读出来,然后减去相关的参数,再根据一个公式写入原本存储中去. 额..我就欠缺修改建筑条件知识了.我的"烂透顶"地图就可以完成了..嘿嘿...
手机码字。楼上的兄弟,数值2是没错,但你没明白所谓标志的处理。当要增加一个标志2,不论原数是否包含2这个标志,则用|2语法。它相当于&2检测是否带2标志,没有则+2。同理,当想剔除一个数值中的2标志,一般做法是先&2判断是否包含2标志,若包含则-2。也可以直接用&-3达到相同效果,具体就是&一个2置负再减1的数。这些属于erm语法。希望对你有帮助。 本帖最后由 yingxiong 于 2014-1-15 23:29 编辑
贤知有您 发表于 2014-1-15 22:56
手机码字。楼上的兄弟,数值2是没错,但你没明白所谓标志的处理。当要增加一个标志2,不论原数是否包含2这 ...
诶多.....差...差不多明白点了..嘿嘿...我..我再请问下..如果我要做到这个效果,我这么写对不对.(我想要城堡的云层云建筑条件为:先做1级魔法会,铁匠铺其余无)
ZVSE
!?PI;
!!CD:B1/0/36/d/?y1; 读取,7级巢穴是36
!!VRy1:&-7;兵营是2,祭祀是4,再减1,总共是7
!!CD:B1/0/36/d/y1;
额..我这么写进事件里后,游戏开始时,就提示我语法错误....
贤知有您 发表于 2014-1-15 22:56
手机码字。楼上的兄弟,数值2是没错,但你没明白所谓标志的处理。当要增加一个标志2,不论原数是否包含2这 ...
36..36.不是32..汗,一激动....
页:
[1]