#Fix flickering

1 messages · Page 1 of 1 (latest)

viral ruin
#

usiing Make player see target block as 0.5 making it loop alot makes flicker how to fix

viral ruin
#
    set metadata value "last_mine_tick" of player to now
    cancel event
    set {_type} to type of target block
    loop {blocks::*}:
        if {_type} is {blocks::%loop-value%::mat}:
            set {_id} to loop-value
            stop loop
    
    if {_id} is set:
        cancel event
        make player see target block as dirt
        set metadata value "last_mine_tick" of player to now
        
        if metadata value "mining_loop_active" of player is not set:
            set metadata value "mining_loop_active" of player to true
            set metadata value "mining_loc" of player to location of target block
            set metadata value "mining_id" of player to {_id}
            set {_tick_counter} to 0
            set {_block} to target block
            set {_loc} to location of target block
            set {block::%player's uuid%} to target block
            if {blockhp::%{_loc}%} is not set:
                set {blockhp::%{_loc}%} to {blocks::%{_id}%::maxhp}
            
            while target block of player is {_block}:
                set {_diff} to difference between (metadata value "last_mine_tick" of player) and now
                
                if {_diff} > 0.25 seconds:
                    delete metadata value "mining_loop_active" of player
                    delete metadata value "mining_loc" of player
                    delete metadata value "mining_id" of player
                    stop loop
                
                if {_tick_counter} >= 5:
                    mineBlock(player, block at {_loc}, {_id})
                    set {_tick_counter} to 0
                syncBlockCracks(player, block at {_loc}, {_id})
                make player see damage of block at {_loc} as {stage::%player's uuid%} by player
                wait 1 tick
                add 1 to {_tick_counter}```
#
                    delete metadata value "mining_loop_active" of player
                    delete metadata value "mining_loc" of player
                    delete metadata value "mining_id" of player
                    stop loop
            
            delete metadata value "mining_loop_active" of player
            delete metadata value "mining_loc" of player
            delete metadata value "mining_id" of player
            
function syncBlockCracks(p: player, loc: location, id: text):
    set {_max} to {blocks::%{_id}%::maxhp}
    
    if {blockhp::%{_loc}%} is not set:
        set {blockhp::%{_loc}%} to {_max}
    
    set {_current} to {blockhp::%{_loc}%}
    
    if {_current} < 0:
        set {_current} to 0
    if {_current} > {_max}:
        set {_current} to {_max}
    
    set {_stage} to floor((({_max} - {_current}) / {_max}) * 90) / 100
    
    set {stage::%{_p}'s uuid%} to {_stage}
#

@fair wasp

fair wasp
#

Oh

#

I’m bad at this my

#

Mb