|
存地图编译出错,提示:Identifier redeclared:"StringTable"// line 3619
--(previously declared here)//line 2951
经过我接近一个半小时反复对J文件的替换发现是YDWEMemoryLeakHelper文件的问题..真纠结,又经过了文件对比,总算修正了这个BUG...
这是1.21a的正确写法
//=============================================================
// initialize it all.
//
//private static method onInit takes nothing returns nothing
//set ht = InitHashtable()
//endmethod
endstruct
//Hey: Don't instanciate other people's textmacros that you are not supposed to, thanks.
//! textmacro Table__make takes name, type, key
struct $name$ extends GTable
method operator [] takes $type$ key returns integer
//return LoadInteger(ht, integer(this), $key$)
return YDWEGetIntegerByInteger(integer(this), $key$)
endmethod
method operator []= takes $type$ key, integer value returns nothing
//call SaveInteger(ht, integer(this) ,$key$, value)
call YDWESaveIntegerByInteger(integer(this) ,$key$, value)
endmethod
method flush takes $type$ key returns nothing
//call RemoveSavedInteger(ht, integer(this), $key$)
call YDWEFlushStoredIntegerByInteger(integer(this), $key$)
endmethod
method exists takes $type$ key returns boolean
//return HaveSavedInteger( ht, integer(this) ,$key$)
return YDWEHaveSavedIntegerByInteger(integer(this) ,$key$)
endmethod
static method flush2D takes string firstkey returns nothing
//call $name$(- S2I(firstkey)).reset()
call $name$(- YDWES2I(firstkey)).reset()
endmethod
static method operator [] takes string firstkey returns $name$
//return $name$(- S2I(firstkey) )
return $name$(- YDWES2I(firstkey))
endmethod
endstruct
//! endtextmacro
////! runtextmacro Table__make("Table","integer","key" )
////! runtextmacro Table__make("StringTable","string", "S2I(key)" )
//! runtextmacro Table__make("HandleTable","handle","YDWEH2I(key)" )
//endlibrary
将1.21a的代码替换到了1.21c
两者的主要区别都在于(形如下列格式)
//A
B
这个的先后顺序不同
..这是暴雪的一个bug,置换函数的先后顺序可能会导致毫无效果,本人在制作物品合成系统时发现
,我先把物品类型按1,2,3送入内存,索引出当前的是几,删除物品几,创建物品几+1时发现,如果先创建物品(有足够的物品栏),再删除物品,将
会毫无效果
还有我很疑惑不解的是,为什么要加这么多的//,说明,在保存地图时会调用这些函数,导致保存地图变慢...
难道是为了看j文件方便,没有那个作者会去看自己的J文件吧....
最重要的是,用YDWE生成的代码...果然有代码生成器的通病...
又长又让人不懂...里面的很多cj函数可能真的换一种方式比较好:
看玩家需要些什么,他自己去添加..用触发器去实现
动作
为地图添加XXCJ函数...之类的
用完把它删了,就像万能系统那样....
从7:32搞起,搞到我9:34,唉,bug我来修复,真悲催.
作者自己做了功能,先要自己测试下能否通过编译啊,可能你的机子行,我们的不行了.
...比如说,用YDWE做的地图,真的不能在一些魔兽上运行,读图时直接崩溃,真不知道你们注入了什么,
有个玩家反应..他是WIN7系统,开始是读图崩溃,他重搞了魔兽,可以读图了,可触发器不触发....
(这个触发器名字是英文的,事件是当游戏逝去1.1秒时,创建对话框....他就是不创建...我后面的触发都取决这个触发器,所以地图就彻底悲剧了...我不知道它为什么不触发....也就是说,WIN7系统上,逝去难道没作用了?这是你们的原因吗???...我不知道,我会去测试的!!)
YDWE到底在地图初始化的时候...很怀疑啊
..还有暴雪的原因,有时候触发器,cpu高了点,就不触发,比如说,A+B合成C,有了AB,它不合成..你丢掉A,再捡起来,合成了....
....还有,暴雪那所谓的对死循环容错机制,难道是反复运行多少秒停止??因为,我在LOOP语句中用等待语句悲剧了...
...还有的是,没必要每个J文件开头都加一句include xx.j
一次注入难道不可以了吗?!!为什么每个都加..
最重要的问题,用YDWE提供的东西,总有些会提示内存不能为read,经过翻译如下:
进程名称:war3.exe
进程架构:X86
异常代码:0XC0000005
异常信息:该线程尝试读写某个虚拟地址,而它对该地址不具有相应的访问权限.
堆信息:不存在
...很怀疑,你们是不是使用了指针变量,但是用的不太正确..
....真的很多功能没必要,有些又导致魔兽崩溃
有用的都是些很低效的,比如说,任意单位受到伤害事件....
...能不能添加单位组功能....
为那个单位组的单位注册事件,受到伤害
其他一些说明的问题
还是把某些技能的说明给了别人
单位
编辑器-分类-战役和编辑器-分类-特殊的说明是相反的
嗯,假设我有一个句子引用了较多次的YDWE的局部变量(逆天功能),嗯生成的句子长得可怕,
...真的...局部变量真的不能这么搞....让人很蛋的...真的很蛋....
里面的net框架功能是最不错的,...有那么一小点瑕疵(有时候.net的输入框全黑(白?)了,反正是看不到里面文字了..点其中一行,就现一行出来...
...我机子因为某些原因,.net是4.0的....高版本的界面好一点啊,大家也不会拒绝的...
还有一些函数没有任何作用
添加几个单位到单位组(点的那个单位上限最大值是0!!)
任意玩家,没有此函数
YDWE BASE基础依旧错误
这是1.21测试C的bug |
|