"StartPrison": type: world debug: false events: on server start: - ^inject SetRanks - run PrisonScoreboard on reload scripts: - ^inject SetRanks - ^foreach { - ^flag %value% sbrank:! - ^flag %value% sbbalance:! - ^flag %value% sbnextrank:! - ^flag %value% sbneeded:! } - ^run PrisonScoreboard on player join: - ^scoreboard remove id:rank - ^flag player sbrank:! - ^flag player sbbalance:! - ^flag player sbnextrank:! - ^flag player sbneeded:! - run StartPlayerScoreboardHeaders as: instantly - execute as_player "/spawn" on player quit: - ^flag player sbrank:! - ^flag player sbbalance:! - ^flag player sbnextrank:! - ^flag player sbneeded:! on player right clicks dispenser: - if ! && == w@Prison { - determine cancelled } on player right clicks dropper: - if ! && == w@Prison { - determine cancelled } on sbreset command: - ^flag player sbrank:! - ^flag player sbbalance:! - ^flag player sbnextrank:! - ^flag player sbneeded:! - scoreboard remove id:rank - run StartPlayerScoreboardHeaders as: - determine fulfilled "PrisonScoreboard": type: task debug: false script: - foreach { - run UpdateScoreboard as:%value% instantly } - wait 10s - run PrisonScoreboard "UpdateScoreboard": type: task debug: false script: - ^inject GetPlayerRank - ^define prank - ^define nrank ]> - ^define balance ]> - ^define nextrank ]> - ^define needed ]> - ^define needed ]:0||%needed%>]> - ^define pname - if { - ^scoreboard remove id:rank%pname% "obj:Ranking Info" score:8 lines: - ^flag player sbrank:%prank% - ^scoreboard add id:rank%pname% "obj:Ranking Info" score:8 lines:%prank% } - if ]> { - ^scoreboard remove id:rank%pname% "obj:Ranking Info" score:6 lines: - ^flag player "sbbalance:" - ^scoreboard add id:rank%pname% "obj:Ranking Info" score:6 lines: } - if ]> { - ^scoreboard remove id:rank%pname% "obj:Ranking Info" score:4 lines: - ^flag player sbnextrank: - ^scoreboard add id:rank%pname% "obj:Ranking Info" score:4 lines: } - if ]> { - ^scoreboard remove id:rank%pname% "obj:Ranking Info" score:2 lines: - ^flag player sbneeded: - ^scoreboard add id:rank%pname% "obj:Ranking Info" score:2 lines: } "StartPlayerScoreBoardHeaders": type: task debug: false script: - ^define pname - ^scoreboard add id:rank%pname% "obj:Ranking Info" score:9 "lines:Rank" - ^scoreboard add id:rank%pname% "obj:Ranking Info" score:7 "lines:Balance" - ^scoreboard add id:rank%pname% "obj:Ranking Info" score:5 "lines:Next Rank" - ^scoreboard add id:rank%pname% "obj:Ranking Info" score:3 "lines:Needed" - ^scoreboard id:rank%pname% viewers:%pname% - run UpdateScoreboard instantly "GetPlayerRank": type: task debug: false script: - foreach { - if { - ^flag player rank:%value% - foreach stop } } - if ! ^flag player rank:Prisoner "SetRanks": type: task debug: false script: - ^flag global Ranks:! - ^flag global Ranks.List:|:Free|Z|Y|X|W|V|U|T|S|R|Q|P|O|N|M|L|K|J|I|H|G|F|E|D|C|B|A|Prisoner - ^flag global Ranks.Prisoner.Amount:0 - ^flag global Ranks.A.Amount:0 - ^flag global Ranks.B.Amount:30000 - ^flag global Ranks.C.Amount:75000 - ^flag global Ranks.D.Amount:120000 - ^flag global Ranks.E.Amount:200000 - ^flag global Ranks.F.Amount:400000 - ^flag global Ranks.G.Amount:750000 - ^flag global Ranks.H.Amount:1000000 - ^flag global Ranks.I.Amount:5000000 - ^flag global Ranks.J.Amount:10000000 - ^flag global Ranks.K.Amount:15000000 - ^flag global Ranks.L.Amount:20000000 - ^flag global Ranks.M.Amount:30000000 - ^flag global Ranks.N.Amount:50000000 - ^flag global Ranks.O.Amount:75000000 - ^flag global Ranks.P.Amount:100000000 - ^flag global Ranks.Q.Amount:200000000 - ^flag global Ranks.R.Amount:400000000 - ^flag global Ranks.S.Amount:750000000 - ^flag global Ranks.T.Amount:1000000000 - ^flag global Ranks.U.Amount:1500000000 - ^flag global Ranks.V.Amount:2000000000 - ^flag global Ranks.W.Amount:3000000000 - ^flag global Ranks.X.Amount:5000000000 - ^flag global Ranks.Y.Amount:7500000000 - ^flag global Ranks.Z.Amount:10000000000 - ^flag global Ranks.Free.Amount:20000000000 # # Inject task script for all mines to rank up # "rankup": type: assignment debug: true script: # If the NPC guard has the mission flag and the players flag for that mission is false - ^define mine - ^define pmine ]> - if { - ^narrate "You have already ranked up to %mine%, please proceed to the mine or use /warp %mine%." } else if ! { - ^narrate "You haven't achieved Rank %pmine% yet. Come back later." } else if >= { - ^narrate "Taking your fee to rank up." - ^take money qty: - ^narrate "You have now achieved the Prisoner Rank of %mine%!" - ^announce "Prisoner has achieved Rank %mine%" - ^wait 1 - ^group add %mine% world:prison - ^narrate "You may now proceed to mine %mine%." } else { - ^narrate "You don't have the required fee to rank up." - ^narrate "Come back when you have ]>." } # - ^execute as_server "manselect Prison" # - ^execute as_server "manuaddsub %mine%"