# ###################### # UltraPVP # # Version 0.1.1Alpha # # ###################### # ############ # Setup # # ############ #============# # MYSQL # #============# options: # Name of database name_bd: SEUBANCODEDADOS # Username of database user_bd: xxxxxx # Password of database pass_bd: xxxxxx # Ip of database ip_bd: localhost #============# # Message # #============# # Variable : %player% # If you put "||", you skip a line in lore Options: Prefix: &c[&6UltraPvP&c] &7:&r DeathMSG: &4%victim% &7was defeat by &b%attacker%&7! ErrorTrueOrFalse: &cError in config >> Please set ''true'' or ''false''. Player_uknown: &cPlayer's name uknown ! ELOWIN: &6WIN !b Your elo is now ELOLOSE: &cLose...&b Your elo is now ELORESET: &bYour elo has been reset TitleStats: &bStats &3&l>>&b %arg 1% TitleTwo: &eStats of %arg 1% OverallStats: &4-=- &cOverall stats &4-=- OverallStats_Lore: ||&aELO &7>> &e%{elo.%arg 1%}%||&aKills &7>> &e%{kills.%player%}%||&aDeaths &7>> &e%{morts.%player%}%||&aKillStreak&7 >> &e%{killstreak.%player%}%||&aRatio &7>> &e%{kills.%player%}/{morts.%player%}% FI: &4-=- &cFurther information &4-=- FI_Lore: ||&aFirst login &7>> &e%{firstjoin.%player%}%||&aLast login &7>> &e%{dernierjoin.%player%}%|| TOP_10kill: &8&m-------&r&6 [ &bTOP 10 of kills ! &6] &8&m------- TOP_10deaths: &8&m-------&r&6 [ &bTOP 10 of deaths ! &6] &8&m------- Other_player: &bOther Players no_player: &bThere are no other players... First: &cFirst > Second: &6Second > Third: &eThird > Top_3: &bTop 3 Combat_Command_Block: &cYou're not allowed to use commands during a combat! Punish: &c%player% has been punished for combat logging No_logout: &cYou're in combat now with %attacker%, don't log out! NOLcombat: &cYou're no longer in a combat no_allow_gamemode: You're not allowed to attack players in creative gamemode! Fly_combat: &cYou cannot fly while you're in a combat! Godmode_combat: &cYou're not allowed to attack players in god mode! no_enderpearl: &cYou're not allowed to use ender pearls while being in combat! No_apple: &cYou're not allowed to use golden apples while being in combat! cancel_killsteel: &cDamage has been cancelled for kill steel! No_TP: &cYou're not allowed to teleport during a combat! PvP_not_enable: &ePvP is not enabled! PvP_enable: &aPvP is enable ! PvP_disable: &cPvP is disable ! Else_PvP: &eSomething went wrong! EnderMessage: &cYou have to wait %difference between {@EnderCooldown} and {_waited}%!! #===================# # PvP restriction # #===================# # Kill steel time out KillSteelTimeOut: 10 seconds # Minimum health before checking kill steel KillSteelMinHp: 2 # Action if the player combat log PunishAction: kill player # Amount of times before taking another action if the player combat log PunishAgainAfter: 5 # The second action if the player combat log for amount of time specified above PunishAgain: execute console command "tempban %player% 5m &cCombat logging is not allowed!" # When to reset combat logs of players CombatLogReset: 1 hour # When can a player logout after being tagged for combat LogoutAfter: 10 # Disable combat log while being tagged CombatLog: true # Disable gapples while being tagged Gapple: true # Disable enderpearls while being tagged EnderPearl: true # Disable teleport while being tagged (can be bugged, disable commands most likely will disable teleportation too) Teleport: true # Disable creative while being tagged Creative: true # Disable god mode while being tagged God: true # Disable fly while being tagged Fly: true # Disable kill steel KillSteel: true # Disable commands while being tagged Commands: true # What commands should be disabled while being tagged # If you set this to "" it will disable all the commands # If you want to disable only few commands set it like this # "f" "spawn", "warp", "tp", "tphere", "tpo", "tpohere", "tpa", "tpaccept", "tpahere", "back", "home", "world" or "god" Command: "" # Brodcast custom death messages Death: true #============# # Elo # #============# # Enable or disable elo Enable_elo: true #============# # EnderPearl # #============# # To bypass it (UltraPVP.ep) EnderCooldown: 20 seconds # ############################################################# # ############################################################# # ############################################################# # Finish setup # # ############################################################# # ############################################################# # ############################################################# # ############################################################# # ############################################################# # ############################################################# # ############################################################# # ############################################################# # ############################################################# # ############################################################# # ############################################################# # ############################################################# # ############################################################# # ############################################################# # ############################################################# # ############################################################# # ############################################################# #============# # Elo # #============# on join: if {@Enable_elo} is true: if {elo.%player%} is not set: set {elo.%player%} to 900 else: send "&8&m---------------------------------" send "" send "&d&l>> &5Hello &3%player%" send "&d&l>> &5ELO : &3%{elo.%player%}%" send "" send "&8&m---------------------------------" else: broadcast "{@Prefix} {@ErrorTrueOrFalse}" stop command /setelo [] []: usage: &5/setelo trigger: if {@Enable_elo} is true: if player is op: if arg 1 is set: set {elo.%arg 1%} to arg 2 send "&5You have set the ELO of &d%arg 1% &5to &d%arg 2%" else: send "&5/setelo " else: send "&cYou are no op." else: broadcast "{@Prefix} {@ErrorTrueOrFalse}" stop command /elo []: trigger: if {@Enable_elo} is true: if arg 1 is set: send "" send "&5ELO : &d%{elo.%arg 1%}%" send "" else: send "" send "&5ELO : &d%{elo.%player%}%" send "" else: broadcast "{@Prefix} {@ErrorTrueOrFalse}" stop command /resetelo : executable by: console trigger: if {@Enable_elo} is true: if arg 1 is set: set {elo.%arg 1%} to 1500 send "{@ELORESET}" to arg 1 else: send "&5/resetelo !" else: broadcast "{@Prefix} {@ErrorTrueOrFalse}" stop on death: if {@Enable_elo} is true: attacker is a player victim is a player if {elo.%attacker%} < {elo.%victim%}: set {_elobetwin} to {elo.%victim%}-{elo.%attacker%} if {_elobetwin} is between 0 and 24: add 16 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+16)" to attacker remove 16 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-16)" to victim if {_elobetwin} is between 25 and 49: add 17 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+17)" to attacker remove 17 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-17)" to victim if {_elobetwin} is between 50 and 74: add 18 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+18)" to attacker remove 18 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-18)" to victim if {_elobetwin} is between 75 and 99: add 19 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+19)" to attacker remove 19 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-19)" to victim if {_elobetwin} is between 100 and 124: add 20 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+20)" to attacker remove 20 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-20)" to victim if {_elobetwin} is between 125 and 149: add 21 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+21)" to attacker remove 11 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-21)" to victim if {_elobetwin} is between 150 and 174: add 21 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+22)" to attacker remove 10 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-22)" to victim if {_elobetwin} is between 175 and 199: add 23 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+23)" to attacker remove 9 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-23)" to victim if {_elobetwin} is between 200 and 224: add 23 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+24)" to attacker remove 8 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-24)" to victim if {_elobetwin} is between 225 and 249: add 25 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+25)" to attacker remove 25 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-25)" to victim if {_elobetwin} is between 250 and 274: add 26 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+26)" to attacker remove 26 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-26)" to victim if {_elobetwin} is between 275 and 299: add 27 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+27)" to attacker remove 27 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-27)" to victim if {_elobetwin} > 299: add 28 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+28)" to attacker remove 28 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-28)" to victim else: set {_elobetwin} to {elo.%attacker%}-{elo.%victim%} if {_elobetwin} is between 0 and 24: add 16 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+16)" to attacker remove 16 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-16)" to victim if {_elobetwin} is between 25 and 49: add 15 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+15)" to attacker remove 15 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-15)" to victim if {_elobetwin} is between 50 and 74: add 14 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+14)" to attacker remove 14 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-14)" to victim if {_elobetwin} is between 75 and 99: add 13 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+13)" to attacker remove 13 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-13)" to victim if {_elobetwin} is between 100 and 124: add 12 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+12)" to attacker remove 12 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-12)" to victim if {_elobetwin} is between 125 and 149: add 11 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+11)" to attacker remove 11 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-11)" to victim if {_elobetwin} is between 150 and 174: add 10 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+10)" to attacker remove 10 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-10)" to victim if {_elobetwin} is between 175 and 199: add 9 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+9)" to attacker remove 9 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-9)" to victim if {_elobetwin} is between 200 and 224: add 8 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+8)" to attacker remove 8 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-8)" to victim if {_elobetwin} is between 225 and 249: add 7 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+7)" to attacker remove 7 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-7)" to victim if {_elobetwin} is between 250 and 274: add 6 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+6)" to attacker remove 6 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-6)" to victim if {_elobetwin} is between 275 and 299: add 5 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+5)" to attacker remove 5 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-5)" to victim if {_elobetwin} > 299: add 4 to {elo.%attacker%} send "{@ELOWIN} &d%{elo.%attacker%}% &6(+4)" to attacker remove 4 from {elo.%victim%} send "{@ELOLOSE} &d%{elo.%victim%}% &4(-4)" to victim else: broadcast "{@Prefix} {@ErrorTrueOrFalse}" stop # ============# # Stats # # ============# command /stats : trigger: if arg 1 is not set: send "{@Player_uknown}" if arg 1 is set: open chest with 6 row named "{@TitleStats}" to player wait 1 tick # ############# # Decoration # # ############# format slot 0 of player with black glass named "" to close format slot 1 of player with black glass named "" to close format slot 2 of player with black glass named "" to close format slot 3 of player with black glass named "" to close format slot 5 of player with black glass named "" to close format slot 6 of player with black glass named "" to close format slot 7 of player with black glass named "" to close format slot 8 of player with black glass named "" to close format slot 9 of player with black glass named "" to close format slot 17 of player with black glass named "" to close format slot 18 of player with black glass named "" to close format slot 26 of player with black glass named "" to close format slot 27 of player with black glass named "" to close format slot 35 of player with black glass named "" to close format slot 36 of player with black glass named "" to close format slot 44 of player with black glass named "" to close format slot 45 of player with black glass named "" to close format slot 46 of player with black glass named "" to close format slot 47 of player with black glass named "" to close format slot 48 of player with black glass named "" to close format slot 49 of player with black glass named "" to close format slot 50 of player with black glass named "" to close format slot 51 of player with black glass named "" to close format slot 52 of player with black glass named "" to close format slot 53 of player with black glass named "" to close # ######## # Stats # # ######## format slot 4 of player with book named "{@TitleTwo}" to close format slot 22 of player with diamond sword named "{@OverallStats}" with lore "{@OverallStats_Lore}" to close format slot 31 of player with nether star named "{@FI}" with lore "{@FI_Lore}" to close variables: {kills.%player%} = 0 {morts.%player%} = 0 {killstreak.%player%} = 0 on death of player: add 1 to {kills.%attacker%} add 1 to {killstreak.%attacker%} add 1 to {morts.%victim%} set {killstreak.%victim%} to 0 on first join: set {firstjoin.%player%} to now on join: set {dernierjoin.%player%} to now set {connected.%player%} to true if {firstjoin.%player%} is not set: set {firstjoin.%player%} to now on quit: set {dernierquit.%player%} to now set {connected.%player%} to false # ==================# # TopKill/Deaths # # ==================# function setVarYML(to: text , value: text , file: text): set yaml value "%{_to}%" from file "%{_file}%.yml" to "%{_value}%" function setListYML(to: text , value: text , file: text): set yaml value "%{_to}%" from file "%{_file}%.yml" to "%{_value}%" add "%{_value}%" to yaml list "%{_to}%" from file "%{_file}%.yml" function getVarYML(research: text , file: text) :: text: set {_g} to yaml value {_research} from file "%{_file}%.yml" return {_g} function getListYML(research: text , file: text) :: texts: set {_g::*} to yaml list "%{_research}%" from file "%{_file}%.yml" return {_g::*} on death: wait 5 ticks set {_world} to "unioncraft" if attacker's world is "%{_world}%": if attacker is a player: if victim is a player: set {_tue} to getVarYML("%uuid of attacker%.stats.tues" , "YML-Player") set {_mort} to getVarYML("%uuid of victim%.stats.mort" , "YML-Player") set {_tue} to "%{_tue}%" parsed as number add 1 to {_tue} broadcast "%{_tue}%" set {_mort} to "%{_mort}%" parsed as number add 1 to {_mort} broadcast "%{_mort}%" setVarYML("%uuid of attacker%.stats.tues" , "%{_tue}%" , "YML-Player") setVarYML("%uuid of victim%.stats.mort" , "%{_mort}%" , "YML-Player") command /topkill: aliases: topkills trigger: execute player command "/top kill" command /topdeath: aliases: topdeaths trigger: execute player command "/top death" command /top []: trigger: if arg 1 is "kill" or "kills": loop all players: wait 1 tick set {_tue} to getVarYML("%uuid of loop-player%.stats.tues" , "YML-Player") set {_tue} to "%{_tue}%" parsed as integer set {_valuelist::%loop-player%} to {_tue} set {_valuelist::*} to {_valuelist::*} sorted from highest to lowest with output "@index with @value kill(s)" message "{@TOP_10kill}" set {_size} to size of {_valuelist::*} message "{@Top_3}" loop {_valuelist::*}: set {_li} to "%loop-index%" parsed as number if {_li} = 1: message "{@First}%loop-value%" else if {_li} = 2: message "{@Second}%loop-value%" else if {_li} = 3: message "{@Third}%loop-value%" if {_li} = 3: exit loop message "" message "{@Other_player}" loop {_valuelist::*}: set {_li} to "%loop-index%" parsed as number if {_li} > 3: message " &a%{_li}% > %loop-value%" if {_li} = {_size}: message "{@no_player}" if {_li} = 11: exit loop if arg 1 is "death" or "deaths": loop all players: wait 1 tick set {_tue} to getVarYML("%uuid of loop-player%.stats.mort" , "YML-Player") set {_tue} to "%{_tue}%" parsed as integer set {_valuelist::%loop-player%} to {_tue} set {_valuelist::*} to {_valuelist::*} sorted from highest to lowest with output "@index died @value time(s)" message "{@TOP_10deaths}" set {_size} to size of {_valuelist::*} message "{@Top_3}" loop {_valuelist::*}: set {_li} to "%loop-index%" parsed as number if {_li} = 1: message "{@First}%loop-value%" else if {_li} = 2: message "{@Second}%loop-value%" else if {_li} = 3: message "{@Third}%loop-value%" if {_li} = 3: exit loop message "" message "{@Other_player}" loop {_valuelist::*}: set {_li} to "%loop-index%" parsed as number if {_li} > 3: message " &a%{_li}% > %loop-value%" if {_li} = {_size}: message "{@no_player}" if {_li} = 11: exit loop on quit: delete {PvPManager::players::%player%::*} if {PvPManager::players::%player%::in.combat} is true: {@PunishAction} broadcast "{@Punish}" delete {PvPManager::players::%player%::in.combat} delete {PvPManager::players::%player%::in.seconds.until.out} set {PvPManager::players::%player%::cooldown::punishment} to now if difference between now and {PvPManager::players::%player%::cooldown::punishment} is less than {@CombatLogReset}: {@CombatLog} is true add 1 to {PvPManager::totallogout::%player%} if {PvPManager::totallogout::%player%} is more than {@PunishAgainAfter}: {@CombatLog} is true {@PunishAgain} if difference between now and {PvPManager::players::%player%::cooldown::punishment} is more than {@CombatLogReset}: {@CombatLog} is true set {PvPManager::players::%player%::cooldown::punishment} to 1 stop on command: {PvPManager::players::%player%::in.combat} is true {@Commands} is true command contains {@Command} message "{@Combat_Command_Block}" cancel the event stop on damage: victim is a player attacker is a player attacker is not the victim attacker is online victim is online {@CombatLog} is true if {PvPManager::players::%victim%::in.combat} is true: set {PvPManager::players::%victim%::in.seconds.until.out} to {@LogoutAfter} stop send "&cYou're in combat now with %attacker%, don't log out!" to victim set {PvPManager::players::%victim%::in.combat} to true set {PvPManager::players::%victim%::in.seconds.until.out} to {@LogoutAfter} while {PvPManager::players::%victim%::in.seconds.until.out} is more than 1: {PvPManager::players::%victim%::in.seconds.until.out} is not set: stop subtract 1 from {PvPManager::players::%victim%::in.seconds.until.out} wait 1 second delete {PvPManager::players::%victim%::in.combat} delete {PvPManager::players::%victim%::in.seconds.until.out} message "{@NOLcombat}" to victim stop on death: wait 1 tick if {PvPManager::players::%victim%::in.combat} is true: delete {PvPManager::players::%victim%::in.combat} delete {PvPManager::players::%victim%::in.seconds.until.out} delete {PvPManager::players::%player%::enemy} send "{@NOLcombat}" to victim stop on damage: attacker is a player victim is a player attacker is not the victim attacker is online victim is online {@CombatLog} is true if {PvPManager::players::%attacker%::in.combat} is true: set {PvPManager::players::%attacker%::in.seconds.until.out} to {@LogoutAfter} stop send "{@No_logout}" to attacker set {PvPManager::players::%attacker%::in.combat} to true set {PvPManager::players::%attacker%::in.seconds.until.out} to {@LogoutAfter} while {PvPManager::players::%attacker%::in.seconds.until.out} is more than 1: {PvPManager::players::%attacker%::in.seconds.until.out} is not set: stop subtract 1 from {PvPManager::players::%attacker%::in.seconds.until.out} wait 1 second delete {PvPManager::players::%victim%::enemy} delete {PvPManager::players::%attacker%::enemy} delete {PvPManager::players::%attacker%::in.combat} delete {PvPManager::players::%attacker%::in.seconds.until.out} send "{@NOLcombat}" to attacker stop on join: delete {PvPManager::players::%player%::in.combat} delete {PvPManager::players::%player%::in.seconds.until.out} delete {PvPManager::players::%player%::enemy} if {godmode.%player%} is 1: execute server command "god %player% off" delete {godmode.%player%} on script load: delete {PvPManager::*} on skript load: delete {PvPManager::*} on skript disable: delete {PvPManager::*} on damage: victim is a player attacker is a player attacker is not the victim attacker is online victim is online if attacker's flight mode is true: {@Fly} is true attacker's gamemode is not creative set attacker's flight mode to false cancel event damage the attacker by 1 heart message "{@Fly_combat}" to attacker stop if victim's flight mode is true: {@Fly} is true victim's gamemode is not creative set victim's flight mode to false {PvPManager::players::%victim%::in.combat} is true victim's gamemode is not creative damage the victim by 1 heart message "{@Fly_combat}" to victim stop if attacker's gamemode is creative: cancel event {@Creative} is true set attacker's gamemode to survival damage the attacker by 1 heart send "{@no_allow_gamemode}" to attacker stop if attacker's gamemode is not creative: {godmode.%attacker%} is 1 {@God} is true cancel event execute console command "god %attacker% off" damage the attacker by 1 heart set {godmode.%attacker%} to 0 send "{@Godmode_combat}" to attacker stop # ==================# # Combat # # ==================# on rightclick holding a ender pearl: if player don't have the permission "UltraPVP.ep": set {_waited} to difference between {enderpearl.%player%.lastused} and now if {_waited} is less than {@EnderCooldown}: message "{@EnderMessage}" cancel the event else: set {enderpearl.%player%.lastused} to now every {@CombatLogReset}: delete {PvPManager::totallogout::*} on command "/god": sender is player if player has permissions "essentials.god": if {godmode.%player%} is not set: set {godmode.%player%} to 1 stop if {godmode.%player%} is 1: delete {godmode.%player%} stop on damage: attacker is a player victim is a player attacker is not the victim attacker is online victim is online if health of victim is less than {@KillSteelMinHp}: if {PvPManager::players::%victim%::enemy} is not set: set {PvPManager::players::%victim%::enemy} to attacker wait {@KillSteelTimeOut} delete {PvPManager::players::%victim%::enemy} delete {PvPManager::players::%attacker%::enemy} if {PvPManager::players::%attacker%::enemy} is not set: set {PvPManager::players::%attacker%::enemy} to victim wait {@KillSteelTimeOut} delete {PvPManager::players::%victim%::enemy} delete {PvPManager::players::%attacker%::enemy} if attacker is not {PvPManager::players::%victim%::enemy}: cancel event {@KillSteel} is true send "{@cancel_killsteel}" to attacker wait {@KillSteelTimeOut} delete {PvPManager::players::%victim%::enemy} delete {PvPManager::players::%attacker%::enemy} if victim is not {PvPManager::players::%attacker%::enemy}: cancel event {@KillSteel} is true send "{@cancel_killsteel}" to attacker wait {@KillSteelTimeOut} delete {PvPManager::players::%victim%::enemy} delete {PvPManager::players::%attacker%::enemy} on damage: attacker is a player victim is a player attacker is not the victim attacker is online victim is online if {PvPManager::players::%victim%::enemy} is not set: set {PvPManager::players::%victim%::enemy} to attacker wait {@KillSteelTimeOut} delete {PvPManager::players::%victim%::enemy} delete {PvPManager::players::%attacker%::enemy} if {PvPManager::players::%attacker%::enemy} is not set: set {PvPManager::players::%attacker%::enemy} to victim wait {@KillSteelTimeOut} delete {PvPManager::players::%victim%::enemy} delete {PvPManager::players::%attacker%::enemy} on teleport: if {@Teleport} is true: if {PvPManager::players::%player%::in.combat} is true: if player is online: set {PvPManager::players::%player%::location} to player's location set {PvPManager::players::%player%::formerworld} to player's world set {PvPManager::players::%player%::formerchunk} to player's chunk set {PvPManager::players::%player%::formerx} to player's x location set {PvPManager::players::%player%::formery} to player's y location set {PvPManager::players::%player%::formerz} to player's z location wait 1 tick set {PvPManager::players::%player%::futureworld} to player's world set {PvPManager::players::%player%::futurechunk} to player's chunk set {PvPManager::players::%player%::futurex} to player's x location set {PvPManager::players::%player%::futurey} to player's y location set {PvPManager::players::%player%::futurez} to player's z location set {PvPManager::teleported} to {PvPManager::players::%player%::enemy} wait 1 tick if {PvPManager::players::%player%::formerchunk} is not {PvPManager::players::%player%::futurechunk}: if {PvPManager::players::%player%::teleport} is not set: set {PvPManager::players::%player%::teleport} to true message "{@No_TP}" wait 1 ticks teleport player to {PvPManager::players::%player%::location} delete {PvPManager::players::%{PvPManager::teleported}%::in.combat} delete {PvPManager::players::%{PvPManager::teleported}%::in.seconds.until.out} delete {PvPManager::players::%{PvPManager::teleported}%::enemy} send "{@NOLcombat}" stop stop if difference between {PvPManager::players::%player%::futurex} and {PvPManager::players::%player%::formerx} is more than 5: if {PvPManager::players::%player%::teleport} is not set: set {PvPManager::players::%player%::teleport} to true message "{@No_TP}" wait 1 ticks teleport player to {PvPManager::players::%player%::location} delete {PvPManager::players::%{PvPManager::teleported}%::in.combat} delete {PvPManager::players::%{PvPManager::teleported}%::in.seconds.until.out} delete {PvPManager::players::%{PvPManager::teleported}%::enemy} send "{@NOLcombat}" stop stop if difference between {PvPManager::players::%player%::futurey} and {PvPManager::players::%player%::formery} is more than 3: if {PvPManager::players::%player%::teleport} is not set: set {PvPManager::players::%player%::teleport} to true message "{@No_TP}" wait 1 ticks teleport player to {PvPManager::players::%player%::location} delete {PvPManager::players::%{PvPManager::teleported}%::in.combat} delete {PvPManager::players::%{PvPManager::teleported}%::in.seconds.until.out} delete {PvPManager::players::%{PvPManager::teleported}%::enemy} send "{@NOLcombat}" stop stop if difference between {PvPManager::players::%player%::futurez} and {PvPManager::players::%player%::formerz} is more than 5: if {PvPManager::players::%player%::teleport} is not set: set {PvPManager::players::%player%::teleport} to true message "{@No_TP}" wait 1 ticks teleport player to {PvPManager::players::%player%::location} delete {PvPManager::players::%{PvPManager::teleported}%::in.combat} delete {PvPManager::players::%{PvPManager::teleported}%::in.seconds.until.out} delete {PvPManager::players::%{PvPManager::teleported}%::enemy} send "{@NOLcombat}" stop stop if {PvPManager::players::%player%::futureworld} is not {PvPManager::players::%player%::formerworld}: if {PvPManager::players::%player%::teleport} is not set: message "{@No_TP}" wait 1 ticks teleport player to {PvPManager::players::%player%::location} delete {PvPManager::players::%{PvPManager::teleported}%::in.combat} delete {PvPManager::players::%{PvPManager::teleported}%::in.seconds.until.out} delete {PvPManager::players::%{PvPManager::teleported}%::enemy} send "{@NOLcombat}" stop stop else: stop else: stop else: stop on teleport: {@Teleport} is true player is online wait 5 ticks delete {PvPManager::players::%player%::futureworld} delete {PvPManager::players::%player%::formerworld} delete {PvPManager::players::%player%::futurechunk} delete {PvPManager::players::%player%::formerchunk} delete {PvPManager::players::%player%::formerx} delete {PvPManager::players::%player%::formery} delete {PvPManager::players::%player%::formerz} delete {PvPManager::players::%player%::teleport} stop on death: {@Death} is true attacker is a player victim is a player attacker is not the victim attacker is online victim is online set death message to "" broadcast "{@DeathMSG}" # ================# # Toggle PVP # # ================# command /pvp: permission: UltraPvP.toggle.pvp trigger: if {pvp} is not set: set {pvp} to false broadcast "{@PvP_disable}" stop else if {pvp} is false: set {pvp} to true broadcast "{@PvP_enable}" stop else if {pvp} is true: set {pvp} to false broadcast "{@PvP_disable}" stop else: message "{@Else_PvP}" on damage of player: if attacker is a player: if {pvp} is false: cancel event message "{@PvP_not_enable}" to the attacker