jass基礎(chǔ)-回評(píng)2-戰(zhàn)斗力顯示問題

#include "../../jass/BlizzardAPI.j"
library demo initializer test
? ? // 1.數(shù)組定義了 0~10,11個(gè)數(shù),用隨機(jī)取其中n個(gè),且n小于11大于0,如何保證每次取的n個(gè)數(shù)不同/唯一?,
? ? // ? 是否有辦法在取值后臨時(shí)排除被取的數(shù),不加入后續(xù)取值
? ? // 2.在控制臺(tái)顯示戰(zhàn)斗力,戰(zhàn)斗力隨著屬性變化而變化
? ? 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, "戰(zhàn)斗力:")
? ? ? ? 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