找回密码
 点一下
查看: 3974|回复: 22

允许触发器时报错-错误名字-

[复制链接]
发表于 2009-8-8 20:39:48 | 显示全部楼层 |阅读模式
我自己试用return bug 写函数,在一个触发器中使用了,但是报错。
报错提示:错误名字。
一般是什么错误导致系统提示:错误名字?
文件在下面,请高手帮忙看下。
未命名.jpg
发表于 2009-8-8 22:12:52 | 显示全部楼层
这个是因为代码顺序的问题,你触发创建的顺序肯定不是现在这样的吧

把那句禁掉,允许触发,再允许那句就可以了
回复

使用道具 举报

 楼主| 发表于 2009-8-8 22:18:27 | 显示全部楼层

回 1楼(zhuzeitou) 的帖子

那代码顺序怎么解决啊
回复

使用道具 举报

发表于 2009-8-8 22:20:51 | 显示全部楼层
你重新编辑下触发,然后保存,代码的顺序就会自动按照当前触发的顺序来生成的
回复

使用道具 举报

发表于 2009-8-9 07:11:42 | 显示全部楼层
额``      我也有这个问题``              但是不懂怎么解决          能说清楚点么
回复

使用道具 举报

发表于 2009-8-9 11:15:16 | 显示全部楼层
如果你的代码本身并没有什么问题,那么参见上面
如果你根本不知道应该怎么写而只是复制,很有可能遗漏了脚本
回复

使用道具 举报

 楼主| 发表于 2009-8-9 14:52:42 | 显示全部楼层

回 4楼(a287455286) 的帖子

问题自己解决了

我想报名字错误的原因是
变量 函数等在使用前未声明造成的吧
回复

使用道具 举报

发表于 2009-8-9 15:20:40 | 显示全部楼层
是的,所以前面我说你的触发的顺序是后面调整的,这时只需要略微修改一下触发(再改回来),再保存,那么代码的顺序就会按照触发的顺序重新生成

另外,如果把全局使用的函数写在自定义脚本里,可以很大程度避免这个问题
回复

使用道具 举报

发表于 2009-8-9 19:39:51 | 显示全部楼层

回 5楼(zhuzeitou) 的帖子

额``    我重新创建了地图``        又按照正常方式添加了函数```        但是还是不行      是怎么回事呀```
回复

使用道具 举报

发表于 2009-8-9 19:47:10 | 显示全部楼层
这就要问你自己是怎么写的了
如果出这个错误提示的确是缺少相关函数,其他的另当别论
回复

使用道具 举报

发表于 2009-8-9 20:01:36 | 显示全部楼层
额```   就是提示错误名字

这是函数``
  1. function JassCreateUnit takes player P,integer Num,integer N,location point,unit Uid,integer U ,integer red, integer green,integer blue,integer Opacity returns nothing
  2.     local integer i=0
  3.     local unit u
  4.     loop
  5.         set i = i+1
  6.         exitwhen i > Num
  7.         set u = CreateUnitAtLoc( P,U,point,bj_UNIT_FACING)
  8.         call ModifyHeroStat( bj_HEROSTAT_STR, u, bj_MODIFYMETHOD_SET, ( GetHeroStatBJ(bj_HEROSTAT_STR, Uid, false) * N ) )
  9.         call ModifyHeroStat( bj_HEROSTAT_AGI, u, bj_MODIFYMETHOD_SET, ( GetHeroStatBJ(bj_HEROSTAT_AGI, Uid, false) * N ) )
  10.         call ModifyHeroStat( bj_HEROSTAT_INT, u, bj_MODIFYMETHOD_SET, ( GetHeroStatBJ(bj_HEROSTAT_INT, Uid, false) * N ) )
  11.         call SetUnitVertexColorBJ( u, red, green, blue, Opacity )
  12.         call UnitApplyTimedLifeBJ( ( 20.00 * I2R(Num) ), 'BHwe', u )
  13.         call SuspendHeroXPBJ( false, u )
  14.         set u=null
  15.      endloop
  16. endfunction
复制代码




这是运行代码
  1. call JassCreateUnit(Player(0),5,1,udg_point,GetTriggerUnit(),H000,I2R(GetRandomInt(1, 45)),I2R(GetRandomInt(1, 45)),I2R(GetRandomInt(1, 45)),I2R(GetRandomInt(1, 45)))
复制代码


自从在函数中添加了
call SetUnitVertexColorBJ( u, red, green, blue, Opacity )
后就不行了
QQ截图未命名.png
回复

使用道具 举报

发表于 2009-8-9 20:44:21 | 显示全部楼层
你有没有point这个全局点变量?
回复

使用道具 举报

发表于 2009-8-9 20:53:50 | 显示全部楼层
有呀``      先把函数添加到地图里后就设置了变量了```
回复

使用道具 举报

发表于 2009-8-9 21:01:53 | 显示全部楼层
那么你JassCreateUnit函数声明的位置在哪里呢?
另外,一种很常用的排查方法就是,把这些语句全部注释掉,然后一条一条恢复,看具体是哪条出的问题,因为WE的报错机制不怎么完善
回复

使用道具 举报

发表于 2009-8-9 21:11:46 | 显示全部楼层
函数还要声明呀````                              以前这函数也没声明呀``
回复

使用道具 举报

发表于 2009-8-9 21:14:45 | 显示全部楼层
[codes=jass]function JassCreateUnit takes player P,integer Num,integer N,location point,unit Uid,integer U ,integer red, integer green,integer blue,integer Opacity returns nothing
    local integer i=0
    local unit u
    loop
        set i = i+1
        exitwhen i > Num
        set u = CreateUnitAtLoc( P,U,point,bj_UNIT_FACING)
        call ModifyHeroStat( bj_HEROSTAT_STR, u, bj_MODIFYMETHOD_SET, ( GetHeroStatBJ(bj_HEROSTAT_STR, Uid, false) * N ) )
        call ModifyHeroStat( bj_HEROSTAT_AGI, u, bj_MODIFYMETHOD_SET, ( GetHeroStatBJ(bj_HEROSTAT_AGI, Uid, false) * N ) )
        call ModifyHeroStat( bj_HEROSTAT_INT, u, bj_MODIFYMETHOD_SET, ( GetHeroStatBJ(bj_HEROSTAT_INT, Uid, false) * N ) )
        call SetUnitVertexColorBJ( u, red, green, blue, Opacity )
        call UnitApplyTimedLifeBJ( ( 20.00 * I2R(Num) ), 'BHwe', u )
        call SuspendHeroXPBJ( false, u )
        set u=null
     endloop
endfunction[/codes]
这个就是声明……
声明必须在调用之前
回复

使用道具 举报

发表于 2009-8-9 21:21:32 | 显示全部楼层
哦``        我把它放在了自定义代码里面```
回复

使用道具 举报

发表于 2009-8-9 21:22:49 | 显示全部楼层
这个应该没问题吧……

还是把报错的这个函数做一次逐句排查吧
回复

使用道具 举报

发表于 2009-8-9 21:23:59 | 显示全部楼层
额``     怎么做呀``       我刚学``    不明白`
回复

使用道具 举报

发表于 2009-8-9 21:50:48 | 显示全部楼层
………………就是13楼后面说的那样
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 23:21 , Processed in 0.218460 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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