欢迎光临散文网 会员登陆 & 注册

jass基础-回评2-战斗力显示问题

2023-08-08 01:00 作者:庞各庄大棚  | 我要投稿

#include "../../jass/BlizzardAPI.j"

library demo initializer test


    // 1.数组定义了 0~10,11个数,用随机取其中n个,且n小于11大于0,如何保证每次取的n个数不同/唯一?,

    //   是否有办法在取值后临时排除被取的数,不加入后续取值


    // 2.在控制台显示战斗力,战斗力随着属性变化而变化


    globals

        integer powerUI

        integer powerTextUI

        real power = 0

        unit selectedUnit

        integer selectCount = 0

    endglobals


    function calPower takes nothing returns nothing

        local real hp = GetUnitState(selectedUnit, ConvertUnitState(1))

        local real atk = GetUnitState(selectedUnit, ConvertUnitState(21))

        local integer str = GetHeroStr(selectedUnit, true)

        set power = hp * 1.5 + atk * 2 + str * 5

        call BJDebugMsg("血量:" + R2S(hp))

        call BJDebugMsg("攻击:" + R2S(atk))

        call BJDebugMsg("力量:" + I2S(str))

        call BJDebugMsg("----------------------")

    endfunction


    function doSomething takes nothing returns nothing

        set powerUI = DzCreateFrameByTagName("TEXT", "", DzGetGameUI(), "", 0)

        call DzFrameSetAbsolutePoint(powerUI, 6, 0.25, 0.15)

        call DzFrameSetSize(powerUI, 0.04, 0.02)

        call DzFrameSetText(powerUI, "战斗力:")


        set powerTextUI = DzCreateFrameByTagName("TEXT", "", powerUI, "", 0)

        call DzFrameSetPoint(powerTextUI, 6, powerUI, 6, 0.04, 0)

        call DzFrameSetSize(powerTextUI, 0.1, 0.02)

        call DzFrameSetText(powerTextUI, R2S(power))

        call DzFrameShow(powerUI, false)

    endfunction


    function resetCount takes nothing returns nothing

        local timer tm = GetExpiredTimer()

        set selectCount = 0

        call DestroyTimer(tm)

        set tm = null

    endfunction


    function selectAction takes nothing returns nothing

        local timer tm = CreateTimer()

        set selectedUnit = GetTriggerUnit()

        set selectCount = selectCount + 1

        if selectCount > 1 then

            call DzFrameShow(powerUI, false)

            call TimerStart(tm, 0.1, false, function resetCount)

            return

        endif

        call calPower()

        call DzFrameShow(powerUI, true)

        call DzFrameSetText(powerTextUI, R2S(power))

        call TimerStart(tm, 0.1, false, function resetCount)

        set tm = null

    endfunction


    function aaaa takes nothing returns nothing

        local timer tm = GetExpiredTimer()

        call calPower()

        call DzFrameSetText(powerTextUI, R2S(power))

        call DestroyTimer(tm)

        set tm = null

    endfunction


    function addAttr takes nothing returns nothing

        local timer tm = CreateTimer()

        call TimerStart(tm, 0.1, false, function aaaa)

        set tm = null

    endfunction


    function triggerInit takes nothing returns nothing

        local trigger t = CreateTrigger()

        local trigger t2 = CreateTrigger()

        local trigger t3 = CreateTrigger()

        local trigger t4 = CreateTrigger()

        local trigger t5 = CreateTrigger()


        call TriggerRegisterTimerEventSingle(t, 0)

        call TriggerAddAction(t, function doSomething)


        call TriggerRegisterPlayerSelectionEventBJ(t2, Player(0), true)

        call TriggerAddAction(t2, function selectAction)


        call TriggerRegisterPlayerUnitEvent(t3, Player(0), EVENT_PLAYER_UNIT_PICKUP_ITEM, null)

        call TriggerAddAction(t3, function addAttr)


        call TriggerRegisterPlayerUnitEvent(t4, Player(0), EVENT_PLAYER_UNIT_DROP_ITEM, null)

        call TriggerAddAction(t4, function addAttr)


        call TriggerRegisterPlayerUnitEvent(t5, Player(0), EVENT_PLAYER_HERO_LEVEL, null)

        call TriggerAddAction(t5, function addAttr)

        set t = null

    endfunction


    function gameInit takes nothing returns nothing

        local unit u = CreateUnit(Player(0), 'hfoo', - 100, - 100, 0)

        local unit u1 = CreateUnit(Player(0), 'Hpal', - 100, - 100, 0)

        local unit u2 = CreateUnit(Player(0), 'Hamg', - 100, - 100, 0)

        local unit u3 = CreateUnit(Player(0), 'Hamg', - 100, - 100, 0)

        local unit u4 = CreateUnit(Player(0), 'Hamg', - 100, - 100, 0)

        call CreateItem('cnob', 0, 0)

        call CreateItem('cnob', 0, 0)

        call CreateItem('cnob', 0, 0)

        call CreateItem('cnob', 0, 0)

        call CreateItem('cnob', 0, 0)

        call CreateItem('cnob', 0, 0)

        call CreateItem('cnob', 0, 0)


        call CreateItem('tst2', 0, 0)

        call CreateItem('tst2', 0, 0)

        call CreateItem('tst2', 0, 0)

        call CreateItem('tst2', 0, 0)

        call CreateItem('tst2', 0, 0)

        call CreateItem('tst2', 0, 0)

        call CreateItem('tst2', 0, 0)

        call CreateItem('tst2', 0, 0)

       

        call CreateItem('tgxp', 0, 0)

        call CreateItem('tgxp', 0, 0)

        call CreateItem('tgxp', 0, 0)

        call CreateItem('tgxp', 0, 0)

        call CreateItem('tgxp', 0, 0)

        call CreateItem('tgxp', 0, 0)

        call CreateItem('tgxp', 0, 0)


        call FogEnable(false)

        call FogMaskEnable(false)

    endfunction


    function test takes nothing returns nothing

        call gameInit()

        call triggerInit()

    endfunction

endlibrary

jass基础-回评2-战斗力显示问题的评论 (共 条)

分享到微博请遵守国家法律