找回密码
 点一下
查看: 1717|回复: 12

关于Hashtable的问题

[复制链接]
发表于 2012-8-7 13:29:30 | 显示全部楼层 |阅读模式
今天郁闷地发现,我做的图中有两部分很相似的使用了Hashtable的代码,但恶心的是读取这两段代码存储的数据时距离远的只能读到0,而距离近的却能正常工作,这是为神马啊???表示很疑惑

我把地图发上来: 神选之战.w3x (358 KB, 下载次数: 4)
要使用YDWE打开(我的是1.21.6修正版),读取数据的代码在触发器UniversalAbility的TimerAction_MoveOrb函数中,而那两部分代码分别在触发器UniversalAbility的Action_OrbAttack中和触发器UnitBaseAbility的Ability_A002中。
发表于 2012-8-7 14:51:36 | 显示全部楼层
为什么我的ydwe总是提示有语法错呢。。。

我记得war3map.j里是按这个顺序排列代码顺序的, 无标题.png
把main 改名成_main 看看能不能解决。。(纯属猜测。。)
回复

使用道具 举报

 楼主| 发表于 2012-8-7 17:41:07 | 显示全部楼层
我先申明一件WE很令人无奈的现象,在war3地图原代码中,仅按触发器的申明顺序在代码中排序,无论你把一个触发器拖到哪,它原来在源代码中的位置是不会变的(包括改变其所属的类别,因为类别是不会参与源代码的)。。。
回复

使用道具 举报

 楼主| 发表于 2012-8-9 13:48:07 | 显示全部楼层
难道GA没人能解决么?
头目求救,SOS!!!!
回复

使用道具 举报

发表于 2012-8-9 13:54:33 | 显示全部楼层
WE检查语法的时候,每个触发都是单独检查的
这和触发的排列顺序无关
回复

使用道具 举报

发表于 2012-8-9 13:58:58 | 显示全部楼层
而触发的排序会按照一个不知道什么的顺序来排......

所以干嘛你非要分开写呢,直接写在一起不就行了嘛...
回复

使用道具 举报

发表于 2012-8-9 14:01:09 | 显示全部楼层
怎么看都是代码问题啊,或者YDWE的问题,目前没见hashtable有这样的bug
回复

使用道具 举报

 楼主| 发表于 2012-8-10 11:26:37 | 显示全部楼层
WE检查语法的时候,每个触发都是单独检查的
这和触发的排列顺序无关
而触发的排序会按照一个不知道什么的顺序来排......
所以干嘛你非要分开写呢,直接写在一起不就行了嘛...
触发在地图代码中是按申明顺序排列的,我分开写是为了方便修改和阅读,模块化编程的要求啊!
另外,看过这张图的,有心应该会发现,这张图已经有2600+行的代码了,不分开来想找东西都找不到。
回复

使用道具 举报

 楼主| 发表于 2012-8-10 11:28:38 | 显示全部楼层
怎么看都是代码问题啊,或者YDWE的问题,目前没见hashtable有这样的bug
我测试时发现,如果在下面那段代码中加入读取hashtable的代码则可以读出,而在上面的读出代码中则只能读到初值。
回复

使用道具 举报

发表于 2012-8-10 11:45:24 | 显示全部楼层
如果两个函数都是在同一时间的时候被调用的
可以用“ExecuteFunc”来相互调用,以保证先后顺序...
回复

使用道具 举报

发表于 2012-8-10 11:54:55 | 显示全部楼层
好好检查下执行顺序
回复

使用道具 举报

发表于 2012-8-10 13:36:55 | 显示全部楼层

回 foxsaisas 的帖子

foxsaisas:触发在地图代码中是按申明顺序排列的,我分开写是为了方便修改和阅读,模块化编程的要求啊!
另外,看过这张图的,有心应该会发现,这张图已经有2600+行的代码了,不分开来想找东西都找不到。 (2012-08-10 11:26) 
我测试了一下,结果是,代码是按触发编辑器里的顺序排列的,但是必须重启we才能使新的排列生效。ydwe1.22.9
回复

使用道具 举报

 楼主| 发表于 2012-8-11 10:14:10 | 显示全部楼层
我那两段代码功效(为技能添加参数)是一样的,只不过是调用它们的情形不一样罢了。
另外,我做的TimerAction_MoveOrb函数是一个模板,所以只用修改参数就能发挥不同的功效。
所以就很奇怪,这两段功能相同的代码为什么就发挥不了相同的功能呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-24 08:36 , Processed in 0.034150 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表