Ребят, попытался переделать счётчик хендлов с vjass на WURST, но ничего не создаётся, что я сделал не так?
Код
package HandlerTest

import ClosureTimers

public location array P
public leaderboard array HB

init
    doAfter(0.01) ->
        integer i = 0
        integer id = 0
        real result = 0

        for p = 0 to 12
            HB[p] = CreateLeaderboard()
            LeaderboardSetLabel(HB[p],"Handle Counter")
            PlayerSetLeaderboard(players[p],HB[p])
            LeaderboardDisplay(HB[p],true)
            LeaderboardAddItem(HB[p],"Handles",0,players[p])
            LeaderboardSetSizeByItemCount(HB[p],1)
            doPeriodically(0.05) hc ->
                while i >= 50
                    i = 1 + 1
                    P[i] = Location(0,0)
                    id = GetHandleId(P[i])
                    result = result + (id - 0x100000)
                result = result / i - i / 2
                while i <= 1
                    RemoveLocation(P[i])
                    P[i] = null
                    i = i-1
                LeaderboardSetItemValue(HB[p],0,R2I(result))
Делал на основе этого счётчика
library HC initializer init
    globals
        leaderboard HB
    endglobals
    private function HCU takes nothing returns nothing
        local integer i = 0
        local integer id
        local location array P
        local real result = 0
        loop
            exitwhen i >= 50
            set i = i+1
            set P[i] = Location(0,0)
            set id = GetHandleId(P[i])
            set result = result+(id-0x100000)
        endloop
        set result = result/i-i/2
        loop
            call RemoveLocation(P[i])
            set P[i] = null
            exitwhen i <= 1
            set i = i-1
        endloop
        call LeaderboardSetItemValue(HB,0,R2I(result))
    endfunction

    private function HCA takes nothing returns nothing
        set HB = CreateLeaderboard()
        call LeaderboardSetLabel(HB,"Handle Counter")
        call PlayerSetLeaderboard(GetLocalPlayer(),HB)
        call LeaderboardDisplay(HB,true)
        call LeaderboardAddItem(HB,"Handles",0,Player(0))
        call LeaderboardSetSizeByItemCount(HB,1)
        call HCU()
        call TimerStart(GetExpiredTimer(),.05,true,function HCU)
    endfunction

    private function init takes nothing returns nothing
        call TimerStart(CreateTimer(),0,false,function HCA)
    endfunction
endlibrary

У тебя локалки объявлены выше скоупом, чем doPeriodically и используются всеми таймерами сразу (или не используются вообще, если в вурст нет замыканий).
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.