找回密码
 点一下
查看: 1969|回复: 5

让一个单位除了释放某技能外什么也干不了的无聊函数

[复制链接]
发表于 2008-8-4 10:40:47 | 显示全部楼层 |阅读模式
[codes=jass]
function PauseUnit_Condition takes nothing returns boolean
    if ( ( GetIssuedOrderId() == String2OrderIdBJ( smart ) ) ) then
        return true
    endif
    if ( ( GetIssuedOrderId() == String2OrderIdBJ( attack ) ) ) then
        return true
    endif
    if ( ( GetIssuedOrderId() == String2OrderIdBJ( attackground ) ) ) then
        return true
    endif
    if ( ( GetIssuedOrderId() == String2OrderIdBJ( move ) ) ) then
        return true
    endif
    if (GetSpellAbilityId()!= 0 and GetSpellAbilityId()!= A00E ) then //这就是单位唯一能释放的技能Id。
        return true
    endif
    return false
endfunction


function StopUnitXL takes nothing returns nothing
call IssueImmediateOrderById(I2U(GetStoredInteger(udg_Data,I2S(H2I(GetExpiredTimer())), TheHero )), 851972 )
call FlushStoredMission(udg_Data,I2S(H2I(GetExpiredTimer())))
call DestroyTimer(GetExpiredTimer())
endfunction


function PauseUnitXL takes nothing returns nothing
local timer ti=null
set ti=CreateTimer()
call StoreInteger(udg_Data,I2S(H2I(ti)), TheHero ,H2I(GetTriggerUnit()))
call TimerStart(ti,0.00001,false,function StopUnitXL)
set ti=null
endfunction


function PauseUnit_a takes unit u returns nothing
local trigger t=CreateTrigger()
call TriggerRegisterUnitEvent(t,u,EVENT_UNIT_ISSUED_POINT_ORDER)
call TriggerRegisterUnitEvent(t,u,EVENT_UNIT_ISSUED_TARGET_ORDER)
call TriggerRegisterUnitEvent(t,u,EVENT_UNIT_SPELL_CHANNEL)
call TriggerAddCondition(t,Condition(function PauseUnit_Condition))
call TriggerAddAction(t,function PauseUnitXL)
set t=null
endfunction[/codes]
附:测试地图
作用:看得见别的技能的图标,就是不能使。
BUG:单位能在攻击范围内自动攻击。

PS:改了一下。

让一个单位除了释放某技能外什么也干不了的无聊函数.w3x

22 KB, 下载次数: 35

评分

参与人数 1威望 +20 收起 理由
狡猾的兔子 + 20 原创内容

查看全部评分

发表于 2008-8-4 10:48:08 | 显示全部楼层
居然连缓存都用上了
发送个打断或停止命令不就好了
回复

使用道具 举报

发表于 2008-8-4 10:48:24 | 显示全部楼层
有一个事件可以解决那个bug,就是单位注意到目标着事件
回复

使用道具 举报

 楼主| 发表于 2008-8-4 10:49:42 | 显示全部楼层
(被自己忍无可忍的和谐掉了)
回复

使用道具 举报

发表于 2008-8-4 11:09:38 | 显示全部楼层
可以说j都不一定要用。。详细单位事件里有个单位注意到目标事件(着事件某人进入此单位的主动攻击范围后触发的),还有一个是获取攻击目标(就是攻击时触发的),可以在这两个事件中下功夫
回复

使用道具 举报

 楼主| 发表于 2008-8-4 11:13:37 | 显示全部楼层
(被自己忍无可忍的和谐掉了)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 22:07 , Processed in 0.450464 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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