找回密码
 点一下
查看: 1828|回复: 7

这个触发怎么做才好?(问题很不确定)

[复制链接]
发表于 2007-11-20 19:21:39 | 显示全部楼层 |阅读模式
[jass]
function Master1B_Conditions takes nothing returns boolean
      if ( GetUnitAbilityLevel(GetTriggerUnit(), 'BNba') > 0 )   then
      return true
      endif
      return false
endfunction

function Master1B_Actions takes nothing returns nothing
      local integer i = ( GetUnitAbilityLevel(udg_Master1, 'A04H') * 21 )
      local unit a3 = GetTriggerUnit()
      local player pl = GetOwningPlayer(a3)
      local location p
      if ( GetUnitState(a3, UNIT_STATE_LIFE) > I2R(i) ) then
      call SetUnitLifeBJ( a3, ( GetUnitState(a3, UNIT_STATE_LIFE) - I2R(i) ) )
      else
      set p = GetUnitLoc(GetAttackedUnitBJ())
      call KillUnit( a3 )
      call ReviveHeroLoc( a3, p , false )
      call SetUnitOwner( a3, Player(11), false )
      call UnitShareVision( a3, pl, true )
      endif
endfunction

function M1B_con takes nothing returns boolean
      local trigger t
      local unit x = GetAttackedUnitBJ()
      if ( not ( GetUnitTypeId(GetAttacker()) == 'NC14' ) ) then
      return false
      endif
      set t = CreateTrigger()
      call TriggerRegisterUnitEvent(t, x, EVENT_UNIT_DAMAGED)
      call TriggerAddCondition( t, Condition( function Master1B_Conditions ) )
      call TriggerAddAction( t, function Master1B_Actions )
      set x = null
      return false
endfunction

//===========================================================================
function InitTrig_Master1B takes nothing returns nothing
      set gg_trg_Master1B = CreateTrigger(   )
      call TriggerRegisterPlayerUnitEventSimple( gg_trg_Master1B, Player(0), EVENT_PLAYER_UNIT_ATTACKED )
      call TriggerRegisterPlayerUnitEventSimple( gg_trg_Master1B, Player(1), EVENT_PLAYER_UNIT_ATTACKED )
      call TriggerRegisterPlayerUnitEventSimple( gg_trg_Master1B, Player(2), EVENT_PLAYER_UNIT_ATTACKED )
      call TriggerRegisterPlayerUnitEventSimple( gg_trg_Master1B, Player(3), EVENT_PLAYER_UNIT_ATTACKED )
      call TriggerRegisterPlayerUnitEventSimple( gg_trg_Master1B, Player(4), EVENT_PLAYER_UNIT_ATTACKED )
      call TriggerRegisterPlayerUnitEventSimple( gg_trg_Master1B, Player(5), EVENT_PLAYER_UNIT_ATTACKED )
      call TriggerRegisterPlayerUnitEventSimple( gg_trg_Master1B, Player(6), EVENT_PLAYER_UNIT_ATTACKED )
      call TriggerRegisterPlayerUnitEventSimple( gg_trg_Master1B, Player(7), EVENT_PLAYER_UNIT_ATTACKED )
      call TriggerAddCondition( gg_trg_Master1B, Condition( function M1B_con ) )
endfunction
[/jass]



我给所有英雄设置了变量
在英雄复活的最后加上 改变XX所有者为XX
可惜在几次之后
就变不回来了
不知道为什么
发表于 2007-11-21 20:09:51 | 显示全部楼层
楼主不要总用T转jass,太不自然了。
如果总这样的话,那你就直接用T好了,何必多此一举呢?
回复

使用道具 举报

发表于 2007-11-21 21:39:50 | 显示全部楼层
我用T的复活很自然,没有出现LZ的问题哦
回复

使用道具 举报

 楼主| 发表于 2007-11-22 06:55:41 | 显示全部楼层
引用第1楼朱朱于2007-11-21 20:09发表的  :
楼主不要总用T转jass,太不自然了。
如果总这样的话,那你就直接用T好了,何必多此一举呢?

从来没记住过句子。。。
只能去T里找
我用J的原因是格式比T方便。。。
回复

使用道具 举报

发表于 2007-11-22 09:52:57 | 显示全部楼层
能用T解决的我一般用T。。。。。。。。。极少用J。。。。。。。
回复

使用道具 举报

发表于 2007-11-22 09:54:02 | 显示全部楼层
你这个老出问题还是
local unit a3 = GetTriggerUnit()
local player pl = GetOwningPlayer(a3)
如果用全局绑定就不会出错了.....
回复

使用道具 举报

发表于 2007-11-22 10:18:03 | 显示全部楼层
这个烂触发。。。当攻击者类型等于NC14的时候就会自动给被攻击对象创建一个触发。。。。

可能是叠加伤害什么的,但是这么做时间长了不会很卡么。。
回复

使用道具 举报

 楼主| 发表于 2007-11-24 13:48:08 | 显示全部楼层
我是只想先把效果做出来。。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 03:38 , Processed in 0.068581 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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