EIP表只能拿来排查弱智错误,对于表里查不到的报错没有任何意义!!不要再往论坛里张贴你的except.txt了!!!!
英文版http://modenc.renegadeprojects.com/Internal_Error
在你开始借助工具检查IE原因之前,请先阅读查错指南
不要以为自己的代码没问题,你的代码要是真的没问题就不会出错。既然已经出了问题,就别试图证明自己是正确的了
EIP能查到的基本都是可以直接手工复现的低级错误,所以现代查eip意义不大
最常见的小白错误两个:
点击图标即出错:武器名写错
造出来后才出错:IMAGE要么没写要么写错
天真的游客们,你们真的以为这个私人会所论坛是X度的贴吧一样,可以没个号照样什么都能看?
最最有效的解决问题办法绝对绝对是重写,花5分钟复制一段正常代码覆盖掉故障代码再修改回自己需要的某些属性比死盯代码试图查错效率高100倍。
如果复制后正常,修改后异常,则应该一句一句的修改测试。在此之前,先确认规范性,你的弹头,粒子,动画等等注册了没有?应该照抄原版注册的东西你抄了没有?菜鸟喜欢偷懒,容易犯各种低级错误。
一般单位正常的重做流程是:完全复制犀牛或动员兵→换个注册名,要和你刚才出问题的单位名字不同→加上Image→修改武器为之前武器代码→修改生命护甲速度等等
真正的查错只能从image步骤开始。盯着自己漏洞百出的代码试图找出错误基本是浪费时间。
一般的IE生成的EIP都能在表里查到。随机产生,无法再现的出错请自求多福,比如从0开始把整个MOD重制。
请勿胡乱猜测IE原因。新手总是高估自己的水平,把自己写错代码导致的IE当成平台限制。事实上,平台限制的表现模式通常只是代码无效,如果IE,肯定是你水平不够规范性太差之类。
关于平台限制看帖
http://www.ra2diy.com/bbs/forum.php?mod=viewthread&tid=1890&page=1&extra=#pid15892
乱猜IE原因会对查错造成误导,抱着完全未知的心态最好。如果是武器,伤害,物体类的代码错误,效果将是立竿见影的。武器开火,单位创建,掉出碎片等,都是立刻IE,目前来说查不到,可能导致不稳定IE的大多是AI问题。如在AI无法建立某必须建筑之类,只有在AI试图建造此建筑时才会IE。选择特区爆洞,将所有能建造的单位都造一遍打打地面,如果没有IE表示很可能是AI问题。检查aimd以及rules中宏观AI的部分。
排查IE的最好办法就是人为引发,你认为IE是因为AI的超武坏了,那就让ai的超武就绪,让ai的超武就绪并丢出来,不IE就不是这个问题。你觉得是什么原因,就去创造这个条件,人工改错就这方法。因此,建立一张自己专用的测试地图是非常有必要的,它可以再现一切需要再现的状况。all01umd.map,画好一切,所有单位敌我方都放一个,然后记事本打开地图,剪切粘贴进写字板再放回去,然后把所有playercontrol=no改成yes,就是一张专用的测试图。你觉得XX打XX引发IE,就在测试图里打打看,不IE就不是这回事。很多时候你的附会根本就没抓住重点,所以,不要附会IE原因,踏踏实实查错。或者就是下述,控制变量法。
绝大多数单位IE(或者攻击代码失效)都是武器造成的。首先更换使用的武器名。直接的更改就是把武器改为M60,如果不IE,可见是新武器的问题。如果换武器仍然IE,请你重写单位代码(随意复制一个存在的单位,改注册名重新注册,即可)
然后在你的出错武器基础上更改抛射体为InvisibleAll,如果不IE,可证明是抛射体问题。弹头验证就用RailShot。
首先以此法验证出出问题的是武器系统的到底哪个组件,然后将现行的出错部件和正常部件逐条比对,直到找出特定的一句代码差异。填写数字的语句通常不会导致IE,但是如果实在没有办法,也得逐条验证。验证方法就是填写一些肯定不会导致IE的数字或者关联,一条条验证无误后改回原来的内容,直到找出IE原因。
说白了,让你觉得不可思议的IE可控,随时可以重现,即可。然后改错方式自选,可以重写(高度推荐,反正复制改名花不了几分钟),或者修改出错语句。
代码语句大小写不规范也会导致代码失效甚至IE,强烈建议新手遭遇IE时检查拼写。
新阵营,伪阵营AI导致的IE概不负责,新阵营请用第四第五阵营空模板。伪阵营属于找抽,问了不会有人回答。
强调一遍:eip表能查到的都是常规错误,用ini检查工具就能查到。查不到的非常规错误老老实实手动。发eip毫无意义,谁都不会管的
YR1.001及其衍生版本NP在IE后会在YR根目录生成except.txt,打开,在此表中查询EIP即可探知IE原因。注意,此表的所有EIP都只适合YR1.001及在此基础上衍生出的NP系列!此外,EIP表只可探知IE的出错性质,无法探明具体是ini的哪个位置有问题,详细内容请使用LH_Mouse的ini检查脚本。而有一些IE如空降舱IE是平台本身缺陷导致的,ini书写再规范也会随机出现,这类IE的唯一避免办法是不使用这些导致随机IE的平台功能。
注意,不要过分依赖EIP表,出现IE后如果EIP表检查不出,脚本也查不出问题,则应该努力试图再现IE,即在特定地图,特定操作,特定单位时必定发生此IE。如果是电脑进行某操作导致的IE,把自己和电脑的阵营对调,试图揪出IE元凶。找到后自然好办。并不是所有IE的情况都能收录的。有些IE属于灵异现象,不要试图知道为什么IE,只要找出让此IE触发失效的办法就行了。曾有一次只要辐射兵展开即IE,EIP显示是radlevel过小,但是注销了radlevel照样IE,最后把raderuptionweapon复制改名居然不IE了。对于这种情况,只要能不IE就行了。手工查错是基础。
如果你的INI出错或者失效,在你不知廉耻地伸手求人帮你检查ini之前:详细描述出错时的现象,何时发生,发生的时候你在做什么,有什么东西进行了什么动作,以及你到底做了什么尝试来试图解决这个IE,甚至有时候还得张贴代码,总之别说一句弹框就坐等。
游客,本帖隐藏的内容需要积分高于 9999 才可浏览,您当前积分为 0
|