jass 懂得进

下面的代码错在哪?看不懂就不要说了functionxgvhtakesnothingreturnsbooleanreturnIsUnitEnemy(GetTriggerUn... 下面的代码错在哪?看不懂就不要说了

function xgvh takes nothing returns boolean
return IsUnitEnemy(GetTriggerUnit(),GetOwningPlayer(GetFilterUnit()))==true
endfunction
function bmm1 takes nothing returns nothing
local unit p5=GetTriggerUnit()
local unit l=GetSpellTargetUnit()
local unit n=null
local integer i=GetUnitAbilityLevel(p5,'A04C')
local real x=GetUnitX(l)
local real y=GetUnitY(l)
local group g=CreateGroup()
local boolexpr b=null
local unit x=CreateUnit(GetOwningPlayer(p5),'e00E',x,y,0)
call GroupEnumUnitsInRange(g,x,y,100,Condition(function xgvh))
loop
set n=FirstOfGroup(g)
exitwhen n==null
call UnitAddAbility(x,'A04C')
call SetUnitAbilityLevel(x,'A04C',i)
call IssueTargetOrder(x,"entanglingroots",n)
call UnitApplyTimedLife("entanglingroots",'BTLF',4)
set x=null
call GroupRemoveUnit(g,n)
endloop
call DestroyGroup(g)
set p5=null
set l=null
endfunction
function bmm0 takes nothing returns boolean
if GetSpellAbilityId()=='A04C' then
call bmm1()
endif
return false
endfunction
function rxvv takes nothing returns nothing
local trigger t=CreateTrigger()
call gg_RegisterPlayerEvent(t,EVENT_PLAYER_UNIT_SPELL_CAST)
call TriggerAddCondition(t,Condition(function bmm0))
set t=null
endfunction
经你改后的图没多大变化呀,(你自己在魔兽里运行过没?)还是一样:冰女一放第二招冰冻魔兽就直接退出(无错误提示),和原来我改的效果一样,呵呵,你们能改对也行啊,我直说了吧,只要能把冰女第二招对周围所有人作用的代码写出来,分就给谁,你们都没找到实质性错误
而且还加分 ,还有三楼你真搞,你的QQ拒绝被添加,我怎么加呢?
展开
 我来答
奥贝利科斯
2010-07-17 · TA获得超过3447个赞
知道小有建树答主
回答量:729
采纳率:65%
帮助的人:354万
展开全部

你也别光丢一堆代码上来  说说每个FUNCTION的功能和传入参数   代码看的我头晕

运行能通过吗?

等等  注册出发时  用的gg_RegisterPlayerEvent  (t,EVENT_PLAYER_UNIT_SPELL_CAST)

为什么不用单位事件  着看着像是一个技能

== JASS从上大下的执行 那么迹拆

function bmm0 takes nothing returns boolean

if GetSpellAbilityId()=='A04C' then

call bmm1()

endif

return false

endfunction

这个函数肯定会RETURN false 不过这好像没问题

了解了  上个函数RETURN FLASE 那么这个触发这么写

call TriggerAddCondition(t,Condition(function bmm0))

触发不执行

那么

后面

LOCAL UNIT p5=GetTriggerUnit()

得不到实际值   主要错误

后面还有很多这种错误

触发不执行  害死人 

war3是从下向上的编译代码 其旦州亩检测机制有点像C

但是 你说的情况我没模森有发生 代码我的魔兽不会退出 

只是什么都没有罢了

但是确实也不是 触发器执行的问题

奇怪  研究研究 

我研究了一下   发现我用JASS CRAFT 编译你的代码 

首先 我不知道你的那几个自定义技能是什么  也不知道 你的魔兽版本

但是魔兽是可以运行  (改了好一阵)

但是JASSCRAFT检测结果如下

自己看看   变量重名 

句柄类变量释放后即(SET NULL)调用源类型

导致 类型不一样  

我很惊讶 这样的代码都能运行

如果是冰晶的第二个技能  我做的话根本用不到马甲  

用绑定数据做一个计时器伤害   

在搞一个绑定的特效就OK了

DOTA 并不是完美的

临风回顾
2010-07-22 · TA获得超过6825个赞
知道大有可为答主
回答量:2992
采纳率:0%
帮助的人:6285万
展开全部
注册出发时 用的gg_RegisterPlayerEvent (t,EVENT_PLAYER_UNIT_SPELL_CAST)
为什么不用单位事件 着看着像是一个技能
== JASS从上大下的执行 那么
function bmm0 takes nothing returns boolean
if GetSpellAbilityId()=='A04C' then
call bmm1()
endif
return false
endfunction
这个函数肯定会RETURN false 不过这好像没问题
了解了 上个函数RETURN FLASE 那么这个触发这么写
call TriggerAddCondition(t,Condition(function bmm0))
触发不执行
那么
后面
LOCAL UNIT p5=GetTriggerUnit()
得不到实际值 主要错误
后面还有很多这种错误
触发昌团逗不执行 害死人
war3是从下向上的编译代码 其检测机制有点像C
但是 你说的情况我没有发生 代码我的魔兽不会退出
只是什么都没有罢了
但是确实也不是 触发器执行的问题
奇怪 研究研究
我研究了一下 发现我用JASS CRAFT 编译你的代码
首先 我不知道你的那几耐卖个自定义技能是什么 也不知道 你的魔兽版本
但是魔兽是可以运行 (改了好一阵)
但是JASSCRAFT检测结果如下
自己看看 变量重名
句柄类变量释放后即(SET NULL)调用源类型
导致 类型不一样
我很惊讶 这样的代码都能运行
如果是冰晶的第二个技能 我做的话根本用不到马甲
用绑定数据做一个计或谨时器伤害
在搞一个绑定的特效就OK了
DOTA 并不是完美的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友349138a
2010-07-18 · TA获得超过136个赞
知道答主
回答量:291
采纳率:0%
帮助的人:110万
展开全部
首先变量名就重复了~看
local real x=GetUnitX(l)
local unit x=CreateUnit(GetOwningPlayer(p5),'e00E',x,y,0)
修改unit x为其它变量名,就是那句错了,下面的很多对单位x的语句都发生了语法错误;
还有注册事件错了,以下这句
call gg_RegisterPlayerEvent(t,EVENT_PLAYER_UNIT_SPELL_CAST)
你可以用
call TriggerRegisterPlayerUnitEven(触发,缓铅玩家几,事件,布尔表达式)
布尔表达式一般为null,对所有玩家注册事件可以用
call TriggerRegisterAnyUnitEventBJ(t,EVENT_PLAYER_UNIT_SPELL_CAST)直接搞定:
顺便帮你修碧塌改下了所有代码,无错扰慧好!
function xgvh takes nothing returns boolean
return IsUnitEnemy(GetTriggerUnit(),GetOwningPlayer(GetFilterUnit()))==true
endfunction

function bmm1 takes nothing returns nothing
local unit p5=GetTriggerUnit()
local unit l=GetSpellTargetUnit()
local unit n=null
local integer i=GetUnitAbilityLevel(p5,'A04C')
local real x=GetUnitX(l)
local real y=GetUnitY(l)
local group g=CreateGroup()
local boolexpr b=null
local unit u=CreateUnit(GetOwningPlayer(p5),'e00E',x,y,0)
call GroupEnumUnitsInRange(g,x,y,100,Condition(function xgvh))
loop
set n=FirstOfGroup(g)
exitwhen n==null
call UnitAddAbility(u,'A04C')
call SetUnitAbilityLevel(u,'A04C',i)
call IssueTargetOrder(u,"entanglingroots",n)
call UnitApplyTimedLife(u,'BTLF',4)
set u=null
call GroupRemoveUnit(g,n)
endloop
call DestroyGroup(g)
set p5=null
set l=null
endfunction
function bmm0 takes nothing returns boolean
if GetSpellAbilityId()=='A04C' then
call bmm1()
endif
return false
endfunction

function rxvv takes nothing returns nothing
local trigger t=CreateTrigger()
call TriggerAddCondition(t,Condition(function bmm0))
call TriggerRegisterAnyUnitEventBJ(t,EVENT_PLAYER_UNIT_SPELL_CAST)
set t=null
endfunction

call GroupEnumUnitsInRange(g,x,y,100,Condition(function xgvh))
loop
set n=FirstOfGroup(g)
exitwhen n==null
call UnitAddAbility(x,'A04C')
call SetUnitAbilityLevel(x,'A04C',i)
call IssueTargetOrder(x,"entanglingroots",n)
call UnitApplyTimedLife("entanglingroots",'BTLF',4)
set x=null
call GroupRemoveUnit(g,n)
endloop
call DestroyGroup(g)
set p5=null
set l=null
endfunction

function bmm0 takes nothing returns boolean
if GetSpellAbilityId()=='A04C' then
call bmm1()
endif
return false
endfunction

function rxvv takes nothing returns nothing
local trigger t=CreateTrigger()
call TriggerAddCondition(t,Condition(function bmm0))
call TriggerRegisterAnyUnitEventBJ(t,EVENT_PLAYER_UNIT_SPELL_CAST)
set t=null
endfunction
我是wow8的!有什么问题可加QQ921977939
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式