【ERA平台】时空之门增强iTownPort
本帖最后由 Castle 于 2014-6-9 22:01 编辑TownPortal interface enhenced--iTownPorthttp://h3wog.com/thread-44907-1-1.html
2014年6月2日
2014年6月9日更新(附件“时空之门增强iTownPort20140609.zip”)MOD替换了使用“Town Portal(时空之门)”的选择城镇对话框(只有土系技能高级及专家级才会出现)。根据玩家所拥有的城镇数量,调用不同的对话框显示要选择时空穿梭的城镇:
[*]如果玩家所拥有的城镇数量<=12,只显示一列(类似于游戏中的界面);
[*]城镇数量>12但<=24,显示2列城镇选择;
[*]城镇数量>24但<=36,显示3列城镇选择;
[*]城镇数量>36,显示4列城镇选择;
城镇显示中,加了横杠的,表示已经有英雄访问(但当前英雄不算数!)。
右键城镇,显示城镇的信息小图。
左键点击城镇,如果没有英雄访问,当前英雄会回到该城镇。使用方法:将附件解压后,将“iTownPort”目录复制到 Mods 目录中,运行Mod Manager激活“iTownPort”MOD。注意:本MOD需要ERA支持!只要安装了ERA,无论是否使用高清补丁,都能使用!2014年6月9日更新(附件“时空之门增强iTownPort20140609.zip”)能
[*]修正了冒泡排序算法交换标志设置不当的问题;
[*]所使用的记录城镇ID的v600-v647开始时按城镇数初始化,不完全,容易收二追的变量结果影响。改为全部初始化。
现在的城镇排序完全和系统的顺序一致。2014年6月5日更新(附件“时空之门增强iTownPort20140605.zip”)禁止选择已经有英雄的城镇2014年6月4日更新
在贤知有您和沧海一粟的帮助下,下述问题都已经解决。 修正了不扣除魔法点;在水上的情形改为在穿上判断;增加了对于魔法地带/诅咒之地/岩石之地的判断和处理;微调了部分判断的处理。 新增功能
[*]右键城镇,显示城镇的信息小图---感谢沧海的创意和007的实现
2014年6月3日更新(附件“时空之门增强iTownPort20140603.zip”)
解决了已知问题中的1、2、4,可以完美替换游戏自带的对话框!还需要考虑以下问题:
[*]英雄在船上时,禁止使用时空之门---by 007提醒
[*]蛮族的领地(地形?)一般都是附加专家级的土系
[*]貌似时空之门消耗的移动力只跟拥有的土系等级有关,和地形无关?
已经解决的问题:
[*]暂时无法屏蔽游戏中的对话框,执行/取消游戏中的对话框后才会显示定制的对话框。
[*]开始新游戏后,如果你的英雄已经具有了“土系技能高级及专家级”和“时空之门”魔法(一般是没有的,除非你定制了英雄),需要打开英雄界面或城镇界面等,然后可以正确使用该MOD。问题在于:命令能正确检测到英雄的编号、拥有的城镇数等,但检测土系技能的等级总会返回0,估计是ERm的初始化问题。打开一次界面后,可以准确检测到。
[*]在选择城镇时,无法在小地图上动态显示城镇所在的位置(游戏中的也是这样,但高清补丁增强了这个功能)。
[*]连续使用了这个MOD,可能右侧的城镇/英雄列表处会没有图像。解决方案:打开英雄界面或城镇界面等,或点击一下城堡或英雄,即可复原。问题原因未知。
对话框编号及变量函数等:DL527: ---iTownPort
v13选择v14玩家城镇数量, 城镇类型v5,名称z5, 位置v7/v8/v9v600-v647 玩家城镇在地图中的编号(非列表)v698地图中的城镇总数量
v360可以选择的最大城镇数=97+(v14-1)
v900=tempflag3交换标志 flag2修改内存标志
FU2070, P2700-2701排序, P2711-2713
FU9999949显示城镇暗示信息对话框---by007
致谢本MOD在实现过程中,得到以下朋友的大力支持或建议:
007(贤知有您)——给出了宝贵的建议和关键技术的实现!
沧海一粟——提出了宝贵建议、协助007测试代码,深藏功与名!
老萨(Salamandre)——给出了大地图中正确读取英雄ID的方法。
用线划过的城镇已经有了英雄//右键
城镇数超过36个时//选择的城镇用框出来。
static/image/hrline/4.gif
old
本帖最后由 Castle 于 2014-6-2 23:16 编辑
暂时没有检测土系技能,看“已知问题”中的说明 板凳支持,期待楼主完善 沧海一粟 发表于 2014-6-2 23:16
板凳支持,期待楼主完善
苍老湿是高人,帮看下“已知问题”中的问题,给个解决方案? 又是个很实用的MOD
简直威武~ 本帖最后由 Salamandre 于 2014-6-3 03:59 编辑
To get rid of erm errors, never use H-1 is such searches, it always fails.
Use like this:
!?MG1&v997=9; townportalÑ¡Ôñ³ÇÕòÖ®ºó³öÏÖµÄ--------------ÆÁ±ÎÑ¡Ôñ³ÇÕò£¿
!!OW:A-1/?y2;
!!SN:W^hzworld^/y2;
!!HEy2:M9/?y1; ÓÐtwħ·¨:y1=1
!!HEy2:M=9/1; Flag1=0ÊÇ´Ó¾íÖá»ò±¦Îï¶øÏ°µÃµÄħ·¨
!!FU&y1<1/1:E; ûÓÐtw£¬Ò²Ã»ÓоíÖáÖеÄtw
!!HEy2:S17/?y1; ear.mag level<2? --------------ÎÞ·¨Ì½²â??
;!FU&y1<2:E; ²»ÊǸ߼¶¼°ÒÔÉÏ
!!FU2070:P271;
Then at the end:
!?DL&v998=527/v999=30722/v1000=13; 30722 ok
!!SN:W^hzworld^/?y2;
!!HEy2:W?y1; ;check movement<300?townportalÏûºÄ300Òƶ¯Á¦
!!IF&y1<300:M^Your hero is too tired to cast this spell today,
try again tomorrow!^;
!!FU&y1<300:E;
!!VRy1:Sv13 -97 +600;
!!DO2070/1/v698/1:P2713/vy1; ¶ÔÓ¦v999µÄ³ÇÕòÀàÐÍv5,Ãû³Æz5, λÖÃv7/v8/v9
!!CAv7/v8/v9:H1/?y1; ;check tw have a visiting hero
!!IF&y1>=0:M^The selected town is visited by another hero, try another!^;
!!FU&y1>=0:E;
!!VRy1:S300 *-1;
!!HEy2:Wdy1;
!!HEy2:Pv7/v8/v9/1;
!!DL:C1;
!!SN:Q;
Now no error. 楼主够快手的.脚本都写好了.
那么我就看看内存,把这个弹出框禁掉吧.
HE:S的问题,估计如老萨所说,不应该用HE-1,而是OW检测当前英雄. 刚刚趁机试了一把.先提几个建议.
1.专家级的回城只需200移动力.
2.需要检测地形来调整 土系魔法等级(诅咒之地/魔法平原/岩石地)
3.MG1已经在施法之后,无法屏蔽原对话框.要屏蔽需要在MG0阶段.这点我来想办法解决.
4.小问题一个.并非任何地图的回城都属于土系的.(假设玩家修改过SS9:S)
5.!!FU&y1<1/1:E; 没有tw,也没有卷轴中的tw ---->标志应该用-1吧.
等我有空就帮你解决屏蔽对话框的问题.应该可以处理,计划流程是.
1.MG0检测当前英雄能否使用高级/专家级回城.如果能,设定一个标志,并修改内存屏蔽回城对话框.
2.MG1&v997=9阶段,由于已经屏蔽了对话框,原对话框不触发,在MG1弹出DL对话框.
3.仍然是MG1,检测修改过内存的标志,重新还原内存.(不管英雄是否使用过回城魔法) 贤知有您 发表于 2014-6-3 09:59
楼主够快手的.脚本都写好了.
那么我就看看内存,把这个弹出框禁掉吧.
老萨的方法没问题。
顺便看看“小地图上动态显示城镇所在的位置”的实现? Salamandre 发表于 2014-6-3 03:57
To get rid of erm errors, never use H-1 is such searches, it always fails.
Use like this:
Good! it works well now!
how about issues: 3 &4?
3. MOD fails to display selected town dynamically in upright windows in adventure map, this can be done with Homm3 HD (<3.702).
4. the town/hero list will be blank after continuing casting "Town Portal" and using the custom dialog. a click on town/hero, or opening hero/town screen,is needed to recover the screen.i donot know the reason. 第三个问题不是太了解.因为我没用搞清补丁.能否图片提示一下?
第四个问题因为你没用UN:R1;刷新.
对了,还要限制船上不能触发回城. 还没玩过,留着备用,谢谢了 贤知有您 发表于 2014-6-3 11:39
刚刚趁机试了一把.先提几个建议.
1.专家级的回城只需200移动力.
2.需要检测地形来调整 土系魔法等级(诅咒 ...
考虑周到!
设计的时候确实没有考虑地形:比如水中,还有蛮族的领地(地形?)一般都是附加专家级的土系
第4个问题不明白。5应该没问题:土系非专家且卷轴没有给土魔法 Castle 发表于 2014-6-3 18:30
考虑周到!
设计的时候确实没有考虑地形:比如水中,还有蛮族的领地(地形?)一般都是附加专家级的土系 ...
第5点,我觉得应该是 .!!FU&y1<1/-1:E;才对.
第4点,其实一般都不考虑算了.就是说,回城魔法可能并不是土系魔法.
查看了内存.屏蔽回城术的方法是:
<修改内存>
!!UN:C4311513/4/2425393296;
!!UN:C4311517/4/2425393296;
<还原内存>
!!UN:C4311513/4/3905653591;
!!UN:C4311517/4/2815;
脚本的流程可以这样:
1.MG0判断英雄能否使用中级以上回城,能则修改内存并设定一个标志(以便后面还原).
2.MG1且v997=9时,由于MG0已经屏蔽了回城术(对话框不会出现),此时可以直接调用DL对话框.
3.仍然是MG1触发器,检测修改过内存的那个标志,然后还原内存.
这里之所以分成2个MG1,是因为玩家不一定使用了回城魔法.不管有没有使用,只要修改过内存(标志决定),就需要还原. 贤知有您 发表于 2014-6-3 21:41
第5点,我觉得应该是 .!!FU&y1
MG出的回城术一样是土系,用这个触发器,除了必须激活当前英雄非常重要(这个应该是第一步),如果自动的话似乎我记得英雄是否在城里也要考虑
沧海一粟 发表于 2014-6-3 21:54
MG出的回城术一样是土系,用这个触发器,除了必须激活当前英雄非常重要(这个应该是第一步),如果自动的 ...
之所以说回城术不一定是土系,因为脚本可以通过SS9:S 更改回城术所属魔法系.更改TXT也一样.
比如以前有人创作的脚本就把回城术换成是 火系魔法.
楼主想要的回城效果不是自动的.是想用DL对话框替换掉高级/专家回城的对话框.低级情况就不更改原设定. 沧海一粟 发表于 2014-6-3 21:54
MG出的回城术一样是土系,用这个触发器,除了必须激活当前英雄非常重要(这个应该是第一步),如果自动的 ...
“自动”是指不用选择城镇(不弹出对话框)?这个貌似不用考虑了,MOD主要替代能弹出对话框的情形。 贤知有您 发表于 2014-6-3 22:11
之所以说回城术不一定是土系,因为脚本可以通过SS9:S 更改回城术所属魔法系.更改TXT也一样.
比如以前有人 ...
SS9:S 什么的太复杂了,不懂。
效果就是你说的那样 贤知有您 发表于 2014-6-3 21:41
第5点,我觉得应该是 .!!FU&y1
测试成功!狠强大! 2014年6月3日更新(附件“时空之门增强iTownPort20140603.zip”)
解决了已知问题中的1、2、4,可以完美替换游戏自带的对话框!还需要考虑以下问题:
英雄在船上时,禁止使用时空之门---by 007提醒
蛮族的领地(地形?)一般都是附加专家级的土系
貌似时空之门消耗的移动力只跟拥有的土系等级有关,和地形无关?