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

jass基础-排行榜案例-赛马

2023-07-21 00:36 作者:庞各庄大棚  | 我要投稿

// 排行榜 案例  赛马

library demo initializer test

    globals

        unit array horseArr

        location array ltArr

        location array terminalltArr

        leaderboard lb

        timer t

    endglobals


    function changeSpeed takes nothing returns nothing

        local real ranSpeed = GetRandomReal(10, 520)

        local integer i = GetRandomInt(0, 3)

        call SetUnitMoveSpeed(horseArr[i], ranSpeed)

        call BJDebugMsg("下标为" + I2S(i) + "的马速度改变为了:" + R2S(ranSpeed))

    endfunction


    function horseSort takes nothing returns nothing

        local integer i = 0

        loop

            exitwhen i == 4

            call LeaderboardSetItemValue(lb, LeaderboardGetPlayerIndex(lb, Player(i)), R2I(GetUnitX(horseArr[i])))

            set i = i + 1

        endloop

        // call LeaderboardSortItemsBJ(lb, 0, false)

        call LeaderboardSortItemsByValue(lb, false)

    endfunction


    function checkX takes nothing returns nothing

        local integer i = 0

        loop

            exitwhen i == 4

            if GetUnitX(horseArr[i]) >= 1980 then

                call BJDebugMsg("马" + I2S(i) + "获胜了")

                call PauseTimer(GetExpiredTimer())

                call PauseTimer(t)

            endif

            set i = i + 1

        endloop

        call horseSort()

    endfunction


    function doSomething takes nothing returns nothing

        local integer i = 0

        local timer t2 = CreateTimer()

        loop

            exitwhen i == 4

            call IssuePointOrderLoc(horseArr[i], "move", terminalltArr[i])

            set i = i + 1

        endloop

        set t = CreateTimer()

        call TimerStart(t, 1, true, function changeSpeed)

        call TimerStart(t2, 0.2, true, function checkX)

    endfunction


    function boardInit takes nothing returns nothing

        set lb = CreateLeaderboard()

        call LeaderboardDisplay(lb, true)

        call PlayerSetLeaderboard(Player(0), lb)

        call LeaderboardSetSizeByItemCount(lb, 10)

        call LeaderboardSetLabel(lb, "赛马")


        call LeaderboardAddItem(lb, "马0", 0, Player(0))

        call LeaderboardAddItem(lb, "马1", 0, Player(1))

        call LeaderboardAddItem(lb, "马2", 0, Player(2))

        call LeaderboardAddItem(lb, "马3", 0, Player(3))


        call LeaderboardResizeBJ(lb)

    endfunction


    function triggerInit takes nothing returns nothing

        local trigger t = CreateTrigger()

        local trigger t2 = CreateTrigger()

        call TriggerRegisterPlayerChatEvent(t, Player(0), "1", true)

        call TriggerAddAction(t, function doSomething)

       

        call TriggerRegisterTimerEventSingle(t2, 1)

        call TriggerAddAction(t2, function boardInit)

    endfunction


    function gameInit takes nothing returns nothing

        call FogEnable(false)

        call FogMaskEnable(false)


        set ltArr[0] = Location(0, 0)

        set ltArr[1] = Location(0, 200)

        set ltArr[2] = Location(0, 400)

        set ltArr[3] = Location(0, 600)


        set terminalltArr[0] = Location(2000, 0)

        set terminalltArr[1] = Location(2000, 200)

        set terminalltArr[2] = Location(2000, 400)

        set terminalltArr[3] = Location(2000, 600)


        set horseArr[0] = CreateUnitAtLoc(Player(0), 'hrdh', ltArr[0], 0)

        set horseArr[1] = CreateUnitAtLoc(Player(0), 'hrdh', ltArr[1], 0)

        set horseArr[2] = CreateUnitAtLoc(Player(0), 'hrdh', ltArr[2], 0)

        set horseArr[3] = CreateUnitAtLoc(Player(0), 'hrdh', ltArr[3], 0)

    endfunction


    function test takes nothing returns nothing

        call gameInit()

        call triggerInit()

    endfunction

endlibrary

jass基础-排行榜案例-赛马的评论 (共 条)

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