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

建造或升级建筑降低英雄属性

[复制链接]
发表于 2009-7-3 08:55:57 | 显示全部楼层 |阅读模式
每建造一种指定建筑减少1点英雄属性(比如力量啥的)
当那个属性为0时无法建造

事件和条件不知道该写什么了..
事件貌似该是 任意单位 发布无目标指令?
另求具体实现方法..
发表于 2009-7-3 11:30:19 | 显示全部楼层
无目标指令完全错误,因为无法捕捉指定建筑
可以用t模拟建筑建造,施法时判断属性值
回复

使用道具 举报

 楼主| 发表于 2009-7-3 11:45:31 | 显示全部楼层
这样?

[jass]
function EstablishCommArrayConditions takes nothing returns boolean
    return GetSpellAbilityId()=='A01P'
endfunction

function EstablishCommArray takes nothing returns nothing
    local group g = GetUnitsOfTypeIdAll('o001')
    local unit u  = FirstOfGroup(g)
    local real x = GetUnitX(u)
    local real y = GetUnitY(u)
    local player p = GetOwningPlayer(GetTriggerUnit())
    call DestroyGroup(g)
    call RemoveUnit(u)
    set u = null
    set g = null
    call PolledWait(0.1)
    set udg_CommArray = CreateUnit(p,'o001',x,y,0.0)
    call PolledWait(2.25)
    if GetWidgetLife(udg_Hero[GetConvertedPlayerId(p)])>0.405 then
        call ModifyHeroStat( bj_HEROSTAT_INT, udg_Hero[GetConvertedPlayerId(p)], bj_MODIFYMETHOD_SUB, 8 )
    endif
endfunction

function EngineerInit takes unit u returns nothing
    set udg_EngyCommArray = CreateTrigger()
    call TriggerRegisterUnitEvent( udg_EngyCommArray, u, EVENT_UNIT_SPELL_FINISH )
    call TriggerAddCondition( udg_EngyCommArray, Condition( function EstablishCommArrayConditions ) )
    call TriggerAddAction( udg_EngyCommArray, function EstablishCommArray )
endfunction
[/jass]
回复

使用道具 举报

 楼主| 发表于 2009-7-3 11:48:37 | 显示全部楼层
还有个问题..
如何判断为0时无法建造?
回复

使用道具 举报

发表于 2009-7-3 11:56:08 | 显示全部楼层
还有要判断建筑升级中断后的.....
回复

使用道具 举报

发表于 2009-7-3 11:56:25 | 显示全部楼层
if 触发单位的力量值(在整数里面找)=0
then 命令触发单位停止
……
以上。如果能解决就记得改标题分类,谢谢。
回复

使用道具 举报

 楼主| 发表于 2009-7-3 12:01:32 | 显示全部楼层
明白. 已理解~
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-22 00:26 , Processed in 0.039832 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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