找回密码
 点一下
查看: 3356|回复: 20

求技能,英雄召唤A,A不死,英雄不受到伤害

[复制链接]
发表于 2013-8-16 00:00:57 | 显示全部楼层 |阅读模式
请问怎么设置,就是多有也那个R,跪求...
发表于 2013-8-16 07:56:25 | 显示全部楼层
触发1:事件:任意单位施放技能
条件:发动技能效果=XXX
动作:创建一个XXX在XXX给施法单位的所有者,默认面向建筑角度
设置A[施法单位的所有者的索引号]=最后创建的单位
触发2:游戏初始化
         条件:
         选取可用地图区域内的单位做动作
         LOOP动作:
         为触发4添加事件:选取单位接受伤害
触发3:事件:任意单位进入可用地图区域
          条件:
         动作: 为触发4添加事件:进入的单位接受伤害
触发4:事件:
          条件: A[触发单位的所有者的索引号]是存活的等于TRUE
          动作:为触发单位添加XXX技能(这个技能是一个增加10000000生命上限的单位技能)
                   设置触发单位的生命值=触发单位的生命值+单位所受伤害
                   为触发单位删除XXX技能(这个技能是一个增加10000000生命上限的单位技能)
回复

使用道具 举报

发表于 2013-8-16 08:01:52 | 显示全部楼层
这个我不太懂,是不是英雄召唤出召唤物的时候,只要召唤物不是,英雄就无敌,这样可以让召唤物释放巫毒技能,范围50,只对英雄有效,然后每0.1s移动召唤物到英雄,这样就能做到只对释放英雄的单位有效了。
还可以这样 任意单位发动技能效果 释放技能等于XXX 开启触发器X 创建单位A  变量设置A为变量1
触发器X:任意单位收到伤害 触发单位等于那个英雄 变量1HP大于0 动作设置英雄0.01秒无敌

点评

谢谢回复,我是想让英雄伪无敌,英雄还是会被攻击,但是伤害转移到A那里去了  详情 回复 发表于 2013-8-16 12:43
回复

使用道具 举报

发表于 2013-8-16 09:06:13 | 显示全部楼层
本帖最后由 lfglvstory 于 2013-8-16 09:24 编辑

给楼主提供可移植版J版触发,手写的经测试OK。移植请看代码中的注释,很简单的。

  1. function Trig_Summon_Conditions takes nothing returns boolean
  2.     // 'u001' 修改为你所召唤的单位的编号(在编辑器按ctr+d可以看到)
  3.     return GetUnitTypeId(GetSummonedUnit()) == 'u001'
  4. endfunction

  5. function Trg_Damage_Conditions takes nothing returns boolean
  6.     return GetEventDamage() > 0
  7. endfunction

  8. function Damage_TimerActions takes nothing returns nothing
  9.     local timer t = GetExpiredTimer()
  10.     local integer parentKey = GetHandleId(t)
  11.     local unit hero = LoadUnitHandle(udg_HT,parentKey,StringHash("hero"))
  12.     local real tempLife = LoadReal(udg_HT,parentKey,StringHash("damage"))
  13.     call SetUnitState(hero,UNIT_STATE_LIFE,GetUnitState(hero,UNIT_STATE_LIFE) + tempLife)
  14.     call FlushChildHashtable(udg_HT,parentKey)
  15.     call PauseTimer(t)
  16.     call DestroyTimer(t)
  17.     set t = null
  18.     set hero = null
  19. endfunction

  20. function Trg_Damage_Actions takes nothing returns nothing
  21.     local timer t = CreateTimer()
  22.     local integer key = GetHandleId(t)
  23.     local unit hero = GetTriggerUnit()
  24.     local unit enemy = GetEventDamageSource()
  25.     local unit summon = LoadUnitHandle(udg_HT,GetHandleId(hero),StringHash("summon"))
  26.     local real dmg = GetEventDamage()
  27.     call DisableTrigger(GetTriggeringTrigger())
  28.     if IsUnitAliveBJ(summon) then
  29.         // 将伤害转移给召唤单位(如果不需要转移伤害请删除下面这句)
  30.         call UnitDamageTarget(enemy,summon,dmg,true,false,ATTACK_TYPE_HERO,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
  31.         // 优先判断伤害是否致命
  32.         if dmg > GetUnitState(hero,UNIT_STATE_LIFE) then
  33.             // 若伤害致命,则直回血
  34.             call SetUnitState(hero,UNIT_STATE_LIFE,GetUnitState(hero,UNIT_STATE_LIFE)+dmg)
  35.         else
  36.             // 否则用短时计时器来完美补足生命(不会出现生命值先减少后增加的尴尬现象)
  37.             // 保存回血单位和回血值
  38.             call SaveUnitHandle(udg_HT,key,StringHash("hero"),hero)
  39.             call SaveReal(udg_HT,key,StringHash("damage"),dmg)
  40.             // 启动计时器
  41.             call TimerStart(t,0.0035,FALSE,function Damage_TimerActions)
  42.         endif
  43.     else
  44.         call FlushChildHashtable(udg_HT,GetHandleId(hero))
  45.         call DestroyTrigger(GetTriggeringTrigger())
  46.     endif
  47.     set t = null
  48.     set hero = null
  49.     set enemy = null
  50.     set summon = null
  51.     call EnableTrigger(GetTriggeringTrigger())
  52. endfunction

  53. function Trig_Summon_Actions takes nothing returns nothing
  54.     local unit hero = GetSummoningUnit()
  55.     local unit summon = GetSummonedUnit()
  56.     local trigger trg_Damage = CreateTrigger()
  57.     local integer key = GetHandleId(hero)
  58.     // 保存召唤物
  59.     call SaveUnitHandle(udg_HT,key,StringHash("summon"),summon)
  60.     // 注册触发器
  61.     call TriggerRegisterUnitEvent(trg_Damage,hero,EVENT_UNIT_DAMAGED)
  62.     call TriggerAddCondition(trg_Damage, Condition(function Trg_Damage_Conditions))
  63.     call TriggerAddAction(trg_Damage,function Trg_Damage_Actions)
  64.     set hero = null
  65.     set summon = null
  66. endfunction

  67. //===========================================================================
  68. //移植说明:魔兽1.24以上适用
  69. //> 建一个全局变量哈希表,命名为 HT
  70. //> 新建一个触发器,命名为 Summon,将其转换为自定义文本格式,在将此代码复制进去即可
  71. //===========================================================================
  72. function InitTrig_Summon takes nothing returns nothing
  73.     set gg_trg_Summon = CreateTrigger()
  74.     // 初始化哈希表
  75.     call FlushParentHashtable(udg_HT)
  76.     set udg_HT = InitHashtable()  
  77.     call TriggerRegisterAnyUnitEventBJ(gg_trg_Summon, EVENT_PLAYER_UNIT_SUMMON )
  78.     call TriggerAddCondition(gg_trg_Summon, Condition(function Trig_Summon_Conditions))
  79.     call TriggerAddAction(gg_trg_Summon, function Trig_Summon_Actions)
  80. endfunction
复制代码

点评

跪谢......我要花一点时间看明白了,我是新手...  详情 回复 发表于 2013-8-16 12:41
回复

使用道具 举报

 楼主| 发表于 2013-8-16 12:41:38 | 显示全部楼层
lfglvstory 发表于 2013-8-16 09:06
给楼主提供可移植版J版触发,手写的经测试OK。移植请看代码中的注释,很简单的。

跪谢......我要花一点时间看明白了,我是新手...
回复

使用道具 举报

 楼主| 发表于 2013-8-16 12:43:15 | 显示全部楼层
1170560597 发表于 2013-8-16 08:01
这个我不太懂,是不是英雄召唤出召唤物的时候,只要召唤物不是,英雄就无敌,这样可以让召唤物释放巫毒技能 ...

谢谢回复,我是想让英雄伪无敌,英雄还是会被攻击,但是伤害转移到A那里去了

点评

用无敌-延迟0秒-非无敌来达到伪无敌的作用行不?  详情 回复 发表于 2013-8-16 16:05
用无敌-延迟0秒-非无敌来达到伪无敌的作用行不?  详情 回复 发表于 2013-8-16 16:05
回复

使用道具 举报

发表于 2013-8-16 14:59:40 | 显示全部楼层
灵魂链接
回复

使用道具 举报

发表于 2013-8-16 16:05:08 | 显示全部楼层
guixinmu 发表于 2013-8-16 12:43
谢谢回复,我是想让英雄伪无敌,英雄还是会被攻击,但是伤害转移到A那里去了

用无敌-延迟0秒-非无敌来达到伪无敌的作用行不?
回复

使用道具 举报

发表于 2013-8-16 16:05:11 | 显示全部楼层
guixinmu 发表于 2013-8-16 12:43
谢谢回复,我是想让英雄伪无敌,英雄还是会被攻击,但是伤害转移到A那里去了

用无敌-延迟0秒-非无敌来达到伪无敌的作用行不?不然就多加个加血量无限,加回血无限的技能
回复

使用道具 举报

发表于 2013-8-16 19:04:19 | 显示全部楼层
ls可以
回复

使用道具 举报

发表于 2013-8-16 20:32:19 | 显示全部楼层
这是无T技能我会乱说……
回复

使用道具 举报

发表于 2013-8-18 11:46:32 | 显示全部楼层
楼上的复杂了,召唤个XX(比如毒蛇守卫),召唤带有无毒技能
XX被召唤,命令XX施放巫毒技能,
回复

使用道具 举报

发表于 2013-8-18 13:36:15 | 显示全部楼层
我就是一打酱油的。。。LZ指的是dota的德鲁伊那只熊那样的吗。。死了英雄救扣血。。不死不扣??
回复

使用道具 举报

发表于 2013-8-21 00:02:46 | 显示全部楼层
100%魔抗+硬化皮肤满格挡+法术书隐藏   大概等于 可以被攻击的无敌状态
只要设置好变量,计时器,及时删除就可以了
回复

使用道具 举报

发表于 2013-8-22 18:25:29 | 显示全部楼层
兽族狂战士技能,伤害增加改为负数,持续时间999999, 使用该技能创建单位并添加生命周期 召唤单位死亡时删除英雄的BUFF  目测无误。
回复

使用道具 举报

发表于 2013-8-29 20:23:55 | 显示全部楼层
YDWE瞬间解决.....
回复

使用道具 举报

发表于 2013-8-29 20:24:02 | 显示全部楼层
YDWE瞬间解决.....
回复

使用道具 举报

发表于 2013-8-30 10:32:32 | 显示全部楼层
ls泥垢
光會依賴YDWE可是學不到東西的
回复

使用道具 举报

发表于 2013-8-30 16:18:27 | 显示全部楼层
事件 每当时间过去0.1秒
条件 A生物生命大于(不能等于)0
动作 设置 英雄生命为100%
回复

使用道具 举报

发表于 2013-9-1 01:27:14 | 显示全部楼层
LS..如果我一下就能秒掉英雄呢.....
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 07:58 , Processed in 0.076027 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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