找回密码
 点一下
查看: 1681|回复: 6

这J有错误吗?

[复制链接]
发表于 2008-8-27 10:33:44 | 显示全部楼层 |阅读模式
call GroupEnumUnitsInRange(udg_Cluster,GetUnitX(ta_u),GetUnitY(ta_u),i+33,Condition(function act))
如题:这J有错误吗?GroupEnumUnitsInRange是什么意思啊?
发表于 2008-8-27 11:54:45 | 显示全部楼层
[codes=jass]native GroupEnumUnitsInRange                takes group whichGroup, real x, real y, real radius, boolexpr filter returns nothing[/codes]

这个函数是把圆区域内(圆心为(x,y),半径为r)满足filter条件的单位都加入whichgroup这个单位组内

lz是指什么错误?报错的话可能是变量名错了或是什么,没效果的话看一下udg_Cluster这个单位组有没有初始化
回复

使用道具 举报

 楼主| 发表于 2008-8-28 03:25:20 | 显示全部楼层
这句话出自JASS区的"群体技能函数模版",JASS电子书上说了,能将别人的代码复制到自己的图里,算是学会"复制",我复制进自己图里了,上面这句WE说:编译错误,错误名字.

[codes=jass]function Cluster_skill takes integer i,integer aid returns nothing
local unit t_u = GetSpellAbilityUnit()
local unit ta_u = GetSpellTargetUnit()
local player t_p = GetOwningPlayer(t_u)
call StoreInteger(GameCache(),"I2S(H2I(t_u))","aid",aid)
call StoreInteger(GameCache(),"I2S(H2I(t_u))","spell",GetSpellAbilityId())
if IsUnitAlly(GetSpellTargetUnit(),t_p) == true then
call StoreBoolean(GameCache(),"I2S(H2I(t_u))","tf",true)
elseif IsUnitEnemy(GetSpellTargetUnit(),t_p) == true then
call StoreBoolean(GameCache(),"I2S(H2I(t_u))","tf",false)
endif
call GroupEnumUnitsInRange(udg_Cluster,GetUnitX(ta_u),GetUnitY(ta_u),i+33,Condition(function act))
call FlushStoredMission(GameCache(),"I2S(H2I(t_u))")
set t_u = null
set ta_u = null
endfunction

function act takes nothing returns nothing
local unit t_u = GetSpellAbilityUnit()
local player t_p = GetOwningPlayer(t_u)
local integer aid = GetStoredInteger(GameCache(),"I2S(H2I(t_u))","aid")
local integer spell = GetStoredInteger(GameCache(),"I2S(H2I(t_u))","spell")
local boolean tf = GetStoredBoolean(GameCache(),"I2S(H2I(t_u))","tf")
local unit last_u
if IsUnitAlly(GetFilterUnit(),t_p) == tf then
set last_u = CreateUnit(t_p,'nOOE',GetUnitX(t_u),GetUnitY(t_u),0)
call UnitAddAbility(last_u,aid)
call SetUnitAbilityLevel(last_u,aid,GetUnitAbilityLevel(t_u,spell))
call ShowUnit(last_u,false)
call UnitApplyTimedLife(last_u,'BHwe',1)
call IssueTargetOrder(last_u,OrderId2StringBJ(GetUnitCurrentOrder(t_u)),GetFilterUnit())
endif
set last_u = null
set t_u = null
set t_p = null
endfunction[/codes]

"T"
事件:任意单位开始施放技能
条件:(某某某技能)= 真
动作:call Cluster_skill("500",AOO1)
回复

使用道具 举报

发表于 2008-8-28 08:20:55 | 显示全部楼层
问题可能是LZ没有复制全部代码~~~

在call GroupEnumUnitsInRange(udg_Cluster,GetUnitX(ta_u),GetUnitY(ta_u),i+33,Condition(function act))这一句中
udg_Cluster是一个变量。。。说不定是因为没有这个变量的缘故^_^
回复

使用道具 举报

发表于 2008-8-28 10:48:15 | 显示全部楼层
call Cluster_skill("500",AOO1)
这个完全不对吧
参数是2个整数
而你 一个是字符串
一个是非法字符
我想你是要写成这样把
call Cluster_skill(500,'AOO1')


还有ACT函数要放到上面去
回复

使用道具 举报

发表于 2008-8-28 11:34:45 | 显示全部楼层
恩,正如ls所说AOO1什么都不是,除非他是一个变量,而ASCII整数的格式是'AOO1'这样的

而且据我估计,应该不是AOO1,而是A001………………
回复

使用道具 举报

发表于 2008-8-28 13:00:34 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 21:02 , Processed in 0.050712 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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