mirror of
https://gitlab.com/phoenix-dvpmt/mmocore.git
synced 2024-11-21 23:55:28 +01:00
Merge remote-tracking branch 'origin/master'
# Conflicts: # MMOCore-API/MMOCore-API.iml # MMOCore-Dist/MMOCore-Dist.iml
This commit is contained in:
commit
a82f19ca3b
@ -1,103 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_16">
|
||||
<output url="file://$MODULE_DIR$/target/classes" />
|
||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.spigotmc:spigot-1.17.1:dev" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.papermc:paperlib:1.0.5" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.projectlombok:lombok:1.18.20" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: io.lumine:Mythic-Dist:5.0.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: me.clip:placeholderapi:2.9.2" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.github.MilkBowl:VaultAPI:1.7" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.bukkit:bukkit:1.13.1-R0.1-SNAPSHOT" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-lang:commons-lang:2.6" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.googlecode.json-simple:json-simple:1.1.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: junit:junit:4.10" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.hamcrest:hamcrest-core:1.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.guava:guava:21.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.gson:gson:2.8.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.yaml:snakeyaml:1.21" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sk89q.worldguard:worldguard-bukkit:7.0.2-SNAPSHOT" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sk89q.worldedit:worldedit-bukkit:7.1.0-SNAPSHOT" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sk89q.worldguard:worldguard-core:7.0.2-SNAPSHOT" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sk89q.worldguard.worldguard-libs:core:7.0.2-SNAPSHOT" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sk89q.worldedit:worldedit-core:7.1.0-SNAPSHOT" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sk89q.worldedit.worldedit-libs:core:7.1.0-SNAPSHOT" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: de.schlichtherle:truezip:6.8.3" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truevfs:truevfs-profile-default_2.13:0.12.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.scala-lang:scala-library:2.13.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truevfs:truevfs-driver-http:0.12.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truevfs:truevfs-kernel-spec:0.12.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truecommons:truecommons-annotations:2.5.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.findbugs:annotations:3.0.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truecommons:truecommons-cio:2.5.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truecommons:truecommons-io:2.5.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truecommons:truecommons-services:2.5.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truecommons:truecommons-logging:2.5.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.inject:javax.inject:1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.httpcomponents:httpclient:4.5.10" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.httpcomponents:httpcore:4.4.12" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-codec:commons-codec:1.11" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.slf4j:jcl-over-slf4j:1.7.28" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truevfs:truevfs-driver-odf:0.12.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truevfs:truevfs-comp-zipdriver:0.12.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truevfs:truevfs-comp-zip:0.12.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.bouncycastle:bcprov-jdk15on:1.63" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truevfs:truevfs-driver-tar:0.12.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truevfs:truevfs-comp-tardriver:0.12.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.commons:commons-compress:1.19" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truevfs:truevfs-driver-tar-bzip2:0.12.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truevfs:truevfs-driver-tar-gzip:0.12.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truevfs:truevfs-driver-tar-xz:0.12.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.tukaani:xz:1.8" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truevfs:truevfs-driver-zip-raes:0.12.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truevfs:truevfs-profile-base_2.13:0.12.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truevfs:truevfs-access-swing:0.12.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truevfs:truevfs-access:0.12.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truevfs:truevfs-driver-file:0.12.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truevfs:truevfs-driver-jar:0.12.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truevfs:truevfs-driver-zip:0.12.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truevfs:truevfs-comp-ibm437:0.12.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truevfs:truevfs-kernel-impl_2.13:0.12.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truecommons:truecommons-key-console:2.5.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truecommons:truecommons-key-default:2.5.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truecommons:truecommons-key-swing:2.5.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truecommons:truecommons-key-macosx:2.5.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truecommons:truecommons-key-spec:2.5.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.truecommons:truecommons-shed:2.5.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.java.dev.jna:jna:4.1.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.mozilla:rhino:1.7.11" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.findbugs:jsr305:1.3.9" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.slf4j:slf4j-api:1.7.26" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: it.unimi.dsi:fastutil:8.2.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.antlr:antlr4-runtime:4.7.2" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.flywaydb:flyway-core:3.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.sk89q:commandbook:2.3" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.bstats:bstats-bukkit:1.5" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.comphenix.protocol:ProtocolLib:4.8.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.bytebuddy:byte-buddy:1.12.8" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.citizensnpcs:Citizens:2.0.25" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: de.simonsator:DevelopmentPAFSpigot:1.0.65" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: de.simonsator:Party-and-Friends-MySQL-Edition-Spigot-API:1.5.4-RELEASE" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: de.simonsator:spigot-party-api-for-party-and-friends:1.0.4-RELEASE" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.alessiodp:Parties:3.1.14" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.gmail.nossr50:mcMMO:2.1.209" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: de.erethon:DungeonsXL:0.18-PRE-02" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.denizen:Dungeons:1.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: me.blackvein:Quests:4.4.1-b340" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: fr.skytasul.quests:BeautyQuests:0.19.5" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.guillaumevdn:QuestCreator:6.39.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.guillaumevdn:GCore:8.39.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.massivecraft:Factions:1.6.9.5-2.9.8-RC" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: me.ulrich:UltimateClans:4.2.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: me.glaremasters:Guilds:3.5.6.0" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.kingdoms.main:Kingdoms:1.11.15.0.0.0.1.1" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: io.lumine:MythicLib-dist:1.4.3-SNAPSHOT" level="project" />
|
||||
<module version="4">
|
||||
<component name="FacetManager">
|
||||
<facet type="minecraft" name="Minecraft">
|
||||
<configuration>
|
||||
<autoDetectTypes>
|
||||
<platformType>SPIGOT</platformType>
|
||||
<platformType>MCP</platformType>
|
||||
<platformType>BUKKIT</platformType>
|
||||
</autoDetectTypes>
|
||||
</configuration>
|
||||
</facet>
|
||||
</component>
|
||||
<component name="McpModuleSettings">
|
||||
<option name="srgType" value="SRG" />
|
||||
</component>
|
||||
</module>
|
@ -2,8 +2,12 @@ package net.Indyuce.mmocore.api.player;
|
||||
|
||||
import io.lumine.mythic.lib.MythicLib;
|
||||
import io.lumine.mythic.lib.api.player.MMOPlayerData;
|
||||
import io.lumine.mythic.lib.api.stat.StatInstance;
|
||||
import io.lumine.mythic.lib.api.stat.modifier.StatModifier;
|
||||
import io.lumine.mythic.lib.player.cooldown.CooldownMap;
|
||||
import io.lumine.mythic.lib.player.skill.PassiveSkill;
|
||||
import net.Indyuce.mmocore.party.provided.MMOCorePartyModule;
|
||||
import net.Indyuce.mmocore.party.provided.Party;
|
||||
import net.Indyuce.mmocore.MMOCore;
|
||||
import net.Indyuce.mmocore.api.ConfigMessage;
|
||||
import net.Indyuce.mmocore.api.SoundEvent;
|
||||
@ -30,9 +34,8 @@ import net.Indyuce.mmocore.experience.droptable.ExperienceTable;
|
||||
import net.Indyuce.mmocore.guild.provided.Guild;
|
||||
import net.Indyuce.mmocore.loot.chest.particle.SmallParticleEffect;
|
||||
import net.Indyuce.mmocore.party.AbstractParty;
|
||||
import net.Indyuce.mmocore.party.provided.MMOCorePartyModule;
|
||||
import net.Indyuce.mmocore.party.provided.Party;
|
||||
import net.Indyuce.mmocore.player.Unlockable;
|
||||
import net.Indyuce.mmocore.player.stats.StatInfo;
|
||||
import net.Indyuce.mmocore.skill.ClassSkill;
|
||||
import net.Indyuce.mmocore.skill.RegisteredSkill;
|
||||
import net.Indyuce.mmocore.skill.cast.SkillCastingHandler;
|
||||
@ -58,7 +61,6 @@ import org.jetbrains.annotations.NotNull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.*;
|
||||
import java.util.logging.Level;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
public class PlayerData extends OfflinePlayerData implements Closable, ExperienceTableClaimer {
|
||||
@ -118,6 +120,7 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
|
||||
|
||||
// NON-FINAL player data stuff made public to facilitate field change
|
||||
public boolean noCooldown;
|
||||
private boolean statLoaded;
|
||||
public CombatRunnable combat;
|
||||
|
||||
/**
|
||||
@ -132,6 +135,15 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
|
||||
this.mmoData = mmoData;
|
||||
questData = new PlayerQuests(this);
|
||||
playerStats = new PlayerStats(this);
|
||||
|
||||
//Used to see if the triggers need to be applied
|
||||
boolean statLoaded = false;
|
||||
for (StatInstance instance : mmoData.getStatMap().getInstances())
|
||||
for (StatModifier modifier : instance.getModifiers())
|
||||
if (modifier.getKey().startsWith("trigger"))
|
||||
statLoaded = true;
|
||||
this.statLoaded = statLoaded;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -167,12 +179,14 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
|
||||
for (SkillTree skillTree : MMOCore.plugin.skillTreeManager.getAll())
|
||||
skillTree.setupNodeState(this);
|
||||
|
||||
//Stat triggers setup
|
||||
for (SkillTree skillTree : MMOCore.plugin.skillTreeManager.getAll()) {
|
||||
for (SkillTreeNode node : skillTree.getNodes()) {
|
||||
node.getExperienceTable().claimStatTriggers(this, node);
|
||||
|
||||
if (!statLoaded)
|
||||
//Stat triggers setup
|
||||
for (SkillTree skillTree : MMOCore.plugin.skillTreeManager.getAll()) {
|
||||
for (SkillTreeNode node : skillTree.getNodes()) {
|
||||
node.getExperienceTable().claimStatTriggers(this, node);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -181,6 +195,14 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
|
||||
return pointSpent.getOrDefault(skillTree, 0);
|
||||
}
|
||||
|
||||
public HashMap<SkillTree, Integer> getPointsSpent() {
|
||||
return new HashMap<>(pointSpent);
|
||||
}
|
||||
|
||||
public void clearPointsSpent() {
|
||||
pointSpent.clear();
|
||||
|
||||
}
|
||||
|
||||
public void setSkillTreePoints(String treeId, int points) {
|
||||
skillTreePoints.put(treeId, points);
|
||||
@ -194,10 +216,18 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
|
||||
return nodeLevels.keySet().stream().filter(node -> node.getTree().equals(skillTree)).mapToInt(nodeLevels::get).sum();
|
||||
}
|
||||
|
||||
/**
|
||||
* We make a copy to assure that the object created is independent of the state of playerData.
|
||||
*/
|
||||
public Map<String, Integer> getSkillTreePoints() {
|
||||
return skillTreePoints;
|
||||
return new HashMap(skillTreePoints);
|
||||
}
|
||||
|
||||
public void clearSkillTreePoints() {
|
||||
skillTreePoints.clear();
|
||||
}
|
||||
|
||||
|
||||
public boolean containsSkillPointTreeId(String treeId) {
|
||||
return skillTreePoints.containsKey(treeId);
|
||||
}
|
||||
@ -210,8 +240,16 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
|
||||
return nodeLevelsString.entrySet();
|
||||
}
|
||||
|
||||
public boolean isStatLoaded() {
|
||||
return statLoaded;
|
||||
}
|
||||
|
||||
public Map<SkillTreeNode, Integer> getNodeLevels() {
|
||||
return nodeLevels;
|
||||
return new HashMap<>(nodeLevels);
|
||||
}
|
||||
|
||||
public void clearNodeLevels() {
|
||||
nodeLevels.clear();
|
||||
}
|
||||
|
||||
public boolean canIncrementNodeLevel(SkillTreeNode node) {
|
||||
@ -219,7 +257,7 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
|
||||
//Check the State of the node
|
||||
if (nodeState != NodeState.UNLOCKED && nodeState != NodeState.UNLOCKABLE)
|
||||
return false;
|
||||
return getNodeLevel(node) < node.getMaxLevel() && (skillTreePoints.get(node.getTree().getId()) > 0 || skillTreePoints.get("global") > 0);
|
||||
return getNodeLevel(node) < node.getMaxLevel() && (skillTreePoints.getOrDefault(node.getTree().getId(), 0) > 0 || skillTreePoints.getOrDefault("global", 0) > 0);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -268,7 +306,7 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
|
||||
}
|
||||
|
||||
public int getSkillTreePoint(String treeId) {
|
||||
return skillTreePoints.get(treeId);
|
||||
return skillTreePoints.getOrDefault(treeId, 0);
|
||||
}
|
||||
|
||||
public void withdrawSkillTreePoints(String treeId, int withdraw) {
|
||||
@ -301,12 +339,17 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
|
||||
for (SkillTreeNode node : skillTree.getNodes()) {
|
||||
node.getExperienceTable().reset(this, node);
|
||||
setNodeLevel(node, 0);
|
||||
nodeStates.remove(node);
|
||||
}
|
||||
skillTree.setupNodeState(this);
|
||||
}
|
||||
|
||||
public Map<SkillTreeNode, NodeState> getNodeStates() {
|
||||
return nodeStates;
|
||||
return new HashMap<>(nodeStates);
|
||||
}
|
||||
|
||||
public void clearNodeStates() {
|
||||
nodeStates.clear();
|
||||
}
|
||||
|
||||
public Map<String, Integer> getNodeTimesClaimed() {
|
||||
@ -393,6 +436,7 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
|
||||
return Math.max(1, level);
|
||||
}
|
||||
|
||||
|
||||
@Nullable
|
||||
public AbstractParty getParty() {
|
||||
return MMOCore.plugin.partyModule.getParty(this);
|
||||
@ -446,6 +490,7 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
|
||||
|
||||
public int getClaims(String key) {
|
||||
return tableItemClaims.getOrDefault(key, 0);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -455,8 +500,10 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
|
||||
|
||||
public void setClaims(String key, int times) {
|
||||
tableItemClaims.put(key, times);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public Map<String, Integer> getItemClaims() {
|
||||
return tableItemClaims;
|
||||
}
|
||||
@ -716,9 +763,9 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
|
||||
final double r = Math.sin((double) t / warpTime * Math.PI);
|
||||
for (double j = 0; j < Math.PI * 2; j += Math.PI / 4)
|
||||
getPlayer().getLocation().getWorld().spawnParticle(Particle.REDSTONE, getPlayer().getLocation().add(
|
||||
Math.cos((double) 5 * t / warpTime + j) * r,
|
||||
(double) 2 * t / warpTime,
|
||||
Math.sin((double) 5 * t / warpTime + j) * r),
|
||||
Math.cos((double) 5 * t / warpTime + j) * r,
|
||||
(double) 2 * t / warpTime,
|
||||
Math.sin((double) 5 * t / warpTime + j) * r),
|
||||
1, new Particle.DustOptions(Color.PURPLE, 1.25f));
|
||||
}
|
||||
}.runTaskTimer(MMOCore.plugin, 0, 1);
|
||||
@ -751,27 +798,21 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
|
||||
if (value <= 0)
|
||||
return;
|
||||
|
||||
// Splitting exp through party members
|
||||
AbstractParty party;
|
||||
if (splitExp && (party = getParty()) != null) {
|
||||
final List<PlayerData> nearbyMembers = party.getOnlineMembers().stream()
|
||||
.filter(pd -> {
|
||||
if (equals(pd))
|
||||
return false;
|
||||
final double maxDis = MMOCore.plugin.configManager.partyMaxExpSplitRange;
|
||||
return maxDis <= 0 || pd.getPlayer().getLocation().distanceSquared(getPlayer().getLocation()) < maxDis * maxDis;
|
||||
}).collect(Collectors.toList());
|
||||
value /= (nearbyMembers.size() + 1);
|
||||
for (PlayerData member : nearbyMembers)
|
||||
member.giveExperience(value, source, null, false);
|
||||
}
|
||||
|
||||
// Must be placed after exp spliting
|
||||
if (hasReachedMaxLevel()) {
|
||||
setExperience(0);
|
||||
return;
|
||||
}
|
||||
|
||||
// Splitting exp through party members
|
||||
AbstractParty party;
|
||||
if (splitExp && (party = getParty()) != null) {
|
||||
List<PlayerData> onlineMembers = party.getOnlineMembers();
|
||||
value /= onlineMembers.size();
|
||||
for (PlayerData member : onlineMembers)
|
||||
if (!equals(member))
|
||||
member.giveExperience(value, source, null, false);
|
||||
}
|
||||
|
||||
// Apply buffs AFTER splitting exp
|
||||
value *= (1 + getStats().getStat("ADDITIONAL_EXPERIENCE") / 100) * MMOCore.plugin.boosterManager.getMultiplier(null);
|
||||
|
||||
@ -1131,7 +1172,7 @@ public class PlayerData extends OfflinePlayerData implements Closable, Experienc
|
||||
* checks if they could potentially upgrade to one of these
|
||||
*
|
||||
* @return If the player can change its current class to
|
||||
* a subclass
|
||||
* a subclass
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean canChooseSubclass() {
|
||||
|
@ -9,6 +9,7 @@ import net.Indyuce.mmocore.manager.data.PlayerDataManager;
|
||||
import net.Indyuce.mmocore.skill.RegisteredSkill;
|
||||
import net.Indyuce.mmocore.tree.SkillTreeNode;
|
||||
import net.Indyuce.mmocore.tree.skilltree.SkillTree;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
|
||||
import java.util.HashMap;
|
||||
@ -26,7 +27,7 @@ public class SavedClassInformation {
|
||||
/**
|
||||
* Stores the tableItemsClaims values but only for skill tree node as it is class based.
|
||||
*/
|
||||
private final Map<String,Integer> nodeTimesClaimed;
|
||||
private final Map<String, Integer> nodeTimesClaimed;
|
||||
|
||||
public SavedClassInformation(ConfigurationSection config) {
|
||||
level = config.getInt("level");
|
||||
@ -78,7 +79,7 @@ public class SavedClassInformation {
|
||||
if (json.has("node-levels"))
|
||||
for (Entry<String, JsonElement> entry : json.getAsJsonObject("node-levels").entrySet())
|
||||
nodeLevels.put(MMOCore.plugin.skillTreeManager.getNode(entry.getKey()), entry.getValue().getAsInt());
|
||||
nodeTimesClaimed=new HashMap<>();
|
||||
nodeTimesClaimed = new HashMap<>();
|
||||
if (json.has("node-times-claimed"))
|
||||
for (Entry<String, JsonElement> entry : json.getAsJsonObject("node-times-claimed").entrySet())
|
||||
nodeTimesClaimed.put(entry.getKey(), entry.getValue().getAsInt());
|
||||
@ -89,7 +90,7 @@ public class SavedClassInformation {
|
||||
public SavedClassInformation(PlayerData player) {
|
||||
this(player.getLevel(), player.getExperience(), player.getSkillPoints(), player.getAttributePoints(), player.getAttributeReallocationPoints()
|
||||
, player.getSkillTreeReallocationPoints(), player.getSkillReallocationPoints(),
|
||||
player.getAttributes().mapPoints(), player.mapSkillLevels(), player.getSkillTreePoints(), player.getNodeLevels(),player.getNodeTimesClaimed());
|
||||
player.getAttributes().mapPoints(), player.mapSkillLevels(), player.getSkillTreePoints(), player.getNodeLevels(), player.getNodeTimesClaimed());
|
||||
}
|
||||
|
||||
public SavedClassInformation(PlayerDataManager.DefaultPlayerData data) {
|
||||
@ -97,11 +98,12 @@ public class SavedClassInformation {
|
||||
}
|
||||
|
||||
public SavedClassInformation(int level, double experience, int skillPoints, int attributePoints, int attributeReallocationPoints, int skillTreeReallocationPoints, int skillReallocationPoints) {
|
||||
this(level, experience, skillPoints, attributePoints, attributeReallocationPoints, skillTreeReallocationPoints, skillReallocationPoints, new HashMap<>(), new HashMap<>(), new HashMap<>(), new HashMap<>(),new HashMap<>());
|
||||
this(level, experience, skillPoints, attributePoints, attributeReallocationPoints, skillTreeReallocationPoints, skillReallocationPoints, new HashMap<>(), new HashMap<>(), new HashMap<>(), new HashMap<>(), new HashMap<>());
|
||||
}
|
||||
|
||||
public SavedClassInformation(int level, double experience, int skillPoints, int attributePoints, int attributeReallocationPoints, int skillTreeReallocationPoints, int skillReallocationPoints,
|
||||
Map<String, Integer> attributes, Map<String, Integer> skills, Map<String, Integer> skillTreePoints, Map<SkillTreeNode, Integer> nodeLevels,Map<String, Integer> nodeTimesClaimed) {
|
||||
Map<String, Integer> attributes, Map<String, Integer> skills, Map<String, Integer> skillTreePoints, Map<SkillTreeNode, Integer> nodeLevels, Map<String, Integer> nodeTimesClaimed) {
|
||||
|
||||
this.level = level;
|
||||
this.skillPoints = skillPoints;
|
||||
this.attributePoints = attributePoints;
|
||||
@ -113,7 +115,7 @@ public class SavedClassInformation {
|
||||
this.skills = skills;
|
||||
this.skillTreePoints = skillTreePoints;
|
||||
this.nodeLevels = nodeLevels;
|
||||
this.nodeTimesClaimed=nodeTimesClaimed;
|
||||
this.nodeTimesClaimed = nodeTimesClaimed;
|
||||
}
|
||||
|
||||
public int getLevel() {
|
||||
@ -173,6 +175,7 @@ public class SavedClassInformation {
|
||||
return nodeLevels.get(node);
|
||||
}
|
||||
|
||||
|
||||
public Set<String> getSkillTreePointsKeys() {
|
||||
return skillTreePoints.keySet();
|
||||
}
|
||||
@ -186,7 +189,7 @@ public class SavedClassInformation {
|
||||
}
|
||||
|
||||
public int getAttributeLevel(String id) {
|
||||
return attributes.getOrDefault(id,0);
|
||||
return attributes.getOrDefault(id, 0);
|
||||
}
|
||||
|
||||
public void registerAttributeLevel(PlayerAttribute attribute, int level) {
|
||||
@ -212,13 +215,18 @@ public class SavedClassInformation {
|
||||
|
||||
player.mapSkillLevels().forEach((skill, level) -> player.resetSkillLevel(skill));
|
||||
player.getAttributes().getInstances().forEach(ins -> ins.setBase(0));
|
||||
|
||||
player.clearSkillTreePoints();
|
||||
player.clearNodeLevels();
|
||||
player.clearNodeStates();
|
||||
player.clearPointsSpent();
|
||||
// We reset the experience table for each skill tree node to remove the perm stat.
|
||||
for (SkillTree skillTree : player.getProfess().getSkillTrees())
|
||||
for (SkillTree skillTree : player.getProfess().getSkillTrees()) {
|
||||
for (SkillTreeNode node : skillTree.getNodes())
|
||||
node.getExperienceTable().reset(player, node);
|
||||
player.getNodeLevels().clear();
|
||||
player.getNodeStates().clear();
|
||||
}
|
||||
|
||||
while (player.hasPassiveSkillBound(0))
|
||||
player.unbindPassiveSkill(0);
|
||||
|
||||
while (player.hasSkillBound(0))
|
||||
player.unbindSkill(0);
|
||||
@ -238,18 +246,24 @@ public class SavedClassInformation {
|
||||
|
||||
(skills).forEach(player::setSkillLevel);
|
||||
attributes.forEach((id, pts) -> player.getAttributes().setBaseAttribute(id, pts));
|
||||
skillTreePoints.forEach((skillTree, point) -> player.setSkillTreePoints(skillTree, point));
|
||||
//Setup node levels and node state.
|
||||
nodeLevels.forEach((node, level) -> player.setNodeLevel(node, level));
|
||||
for(SkillTree skillTree: profess.getSkillTrees())
|
||||
|
||||
//Careful, the global points must not be forgotten.
|
||||
player.setSkillTreePoints("global", skillTreePoints.getOrDefault("global", 0));
|
||||
for (SkillTree skillTree : profess.getSkillTrees()) {
|
||||
player.setSkillTreePoints(skillTree.getId(), skillTreePoints.getOrDefault(skillTree.getId(), 0));
|
||||
for (SkillTreeNode node : skillTree.getNodes()) {
|
||||
player.setNodeLevel(node, nodeLevels.getOrDefault(node, 0));
|
||||
}
|
||||
|
||||
skillTree.setupNodeState(player);
|
||||
}
|
||||
|
||||
//Add the values to the times claimed table and claims the corresponding stat triggers.
|
||||
nodeTimesClaimed.forEach((str,val)->player.setClaims(str,val));
|
||||
nodeTimesClaimed.forEach((str, val) -> player.setClaims(str, val));
|
||||
//We claim back the stats triggers for all the skill tree nodes of the new class.
|
||||
for(SkillTree skillTree:profess.getSkillTrees())
|
||||
for(SkillTreeNode node:skillTree.getNodes())
|
||||
node.getExperienceTable().claimStatTriggers(player,node);
|
||||
for (SkillTree skillTree : profess.getSkillTrees())
|
||||
for (SkillTreeNode node : skillTree.getNodes())
|
||||
node.getExperienceTable().claimStatTriggers(player, node);
|
||||
|
||||
/*
|
||||
* unload current class information and set the new profess once
|
||||
|
@ -100,10 +100,11 @@ public class PlayerProfessions {
|
||||
for (Entry<String, JsonElement> entry : obj.getAsJsonObject("timesClaimed").entrySet())
|
||||
playerData.getItemClaims().put("profession." + entry.getKey(), entry.getValue().getAsInt());
|
||||
|
||||
for (Profession profession : MMOCore.plugin.professionManager.getAll()) {
|
||||
if (profession.hasExperienceTable())
|
||||
profession.getExperienceTable().claimStatTriggers(playerData, profession);
|
||||
}
|
||||
if (!playerData.isStatLoaded())
|
||||
for (Profession profession : MMOCore.plugin.professionManager.getAll()) {
|
||||
if (profession.hasExperienceTable())
|
||||
profession.getExperienceTable().claimStatTriggers(playerData, profession);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -337,6 +337,9 @@ public class SkillTreeViewer extends EditableInventory {
|
||||
|
||||
@Override
|
||||
public void whenClicked(InventoryClickContext event, InventoryItem item) {
|
||||
if(event.getClickedItem()==null)
|
||||
return;
|
||||
|
||||
if (item.getFunction().equals("next-tree-list-page")) {
|
||||
treeListPage++;
|
||||
open();
|
||||
|
@ -75,13 +75,17 @@ public class ConfigManager {
|
||||
loadDefaultFile("expcurves", "levels.txt");
|
||||
loadDefaultFile("expcurves", "mining.txt");
|
||||
}
|
||||
/*
|
||||
|
||||
if(!new File(MMOCore.plugin.getDataFolder()+"/skilltree").exists()) {
|
||||
loadDefaultFile("skilltree","combat.yml");
|
||||
loadDefaultFile("skilltree","autocombat.yml");
|
||||
loadDefaultFile("skilltree","customcombat.yml");
|
||||
loadDefaultFile("skilltree","mage-arcane-mage.yml");
|
||||
loadDefaultFile("skilltree","rogue-marksman.yml");
|
||||
loadDefaultFile("skilltree","warrior-paladin.yml");
|
||||
loadDefaultFile("skilltree","general.yml");
|
||||
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
loadDefaultFile("attributes.yml");
|
||||
loadDefaultFile("items.yml");
|
||||
loadDefaultFile("messages.yml");
|
||||
|
@ -57,7 +57,7 @@ public class SkillTreeManager extends MMOCoreRegister<SkillTree> {
|
||||
public void initialize(boolean clearBefore) {
|
||||
if (clearBefore)
|
||||
registered.clear();
|
||||
File file = new File(MMOCore.plugin.getDataFolder() + "/skillTree");
|
||||
File file = new File(MMOCore.plugin.getDataFolder() + "/skilltree");
|
||||
if (!file.exists())
|
||||
file.mkdirs();
|
||||
load(file);
|
||||
|
@ -73,6 +73,9 @@ public class SkillBar implements Listener {
|
||||
*/
|
||||
if (event.getPreviousSlot() == event.getNewSlot()) return;
|
||||
|
||||
//If the player is sneaking, we don't trigger the casting mode (used to avoid conflicts with other plugins using shift+F to open GUI.
|
||||
if(player.isSneaking()) return;
|
||||
|
||||
event.setCancelled(true);
|
||||
int slot = event.getNewSlot() + (event.getNewSlot() >= player.getInventory().getHeldItemSlot() ? -1 : 0);
|
||||
|
||||
|
@ -1,17 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_16">
|
||||
<output url="file://$MODULE_DIR$/target/classes" />
|
||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="module" module-name="MMOCore-API" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.spigotmc:spigot-1.17.1:dev" level="project" />
|
||||
<orderEntry type="library" scope="PROVIDED" name="Maven: io.lumine:MythicLib-dist:1.4.1-SNAPSHOT" level="project" />
|
||||
<module version="4">
|
||||
<component name="FacetManager">
|
||||
<facet type="minecraft" name="Minecraft">
|
||||
<configuration>
|
||||
<autoDetectTypes>
|
||||
<platformType>SPIGOT</platformType>
|
||||
<platformType>MCP</platformType>
|
||||
</autoDetectTypes>
|
||||
</configuration>
|
||||
</facet>
|
||||
</component>
|
||||
<component name="McpModuleSettings">
|
||||
<option name="srgType" value="SRG" />
|
||||
</component>
|
||||
</module>
|
@ -39,7 +39,7 @@ public class PlayerListener implements Listener {
|
||||
*/
|
||||
@EventHandler
|
||||
public void b(InventoryClickEvent event) {
|
||||
if (event.getInventory().getHolder() instanceof PluginInventory)
|
||||
if (event.getInventory().getHolder() instanceof PluginInventory&&event.getCurrentItem()!=null)
|
||||
((PluginInventory) event.getInventory().getHolder())
|
||||
.whenClicked(new InventoryClickContext(event.getRawSlot(), event.getCurrentItem(), event.getClick(), event, event.getInventory()));
|
||||
}
|
||||
|
@ -34,6 +34,10 @@ exp-curve: levels
|
||||
# The maximum level players can reach
|
||||
max-level: 100
|
||||
|
||||
skill-trees:
|
||||
- 'general'
|
||||
- 'mage-arcane-mage'
|
||||
|
||||
# This class must not display in /class
|
||||
# because it is a subclass of mage
|
||||
options:
|
||||
|
@ -32,6 +32,10 @@ exp-curve: levels
|
||||
# The maximum level players can reach
|
||||
max-level: 100
|
||||
|
||||
skill-trees:
|
||||
- 'general'
|
||||
- 'mage-arcane-mage'
|
||||
|
||||
exp-table: class_exp_table
|
||||
|
||||
# This is the default mana display options, however it is not mandatory
|
||||
|
@ -33,7 +33,9 @@ max-level: 100
|
||||
|
||||
exp-table: class_exp_table
|
||||
|
||||
|
||||
skill-trees:
|
||||
- 'general'
|
||||
- 'rogue-marksman'
|
||||
|
||||
# Particles displayed around the player
|
||||
# when he enters the casting mode.
|
||||
|
@ -31,6 +31,10 @@ display:
|
||||
exp-curve: levels
|
||||
|
||||
|
||||
skill-trees:
|
||||
- 'general'
|
||||
- 'warrior-paladin'
|
||||
- 'combat'
|
||||
|
||||
# The maximum level players can reach
|
||||
max-level: 100
|
||||
|
@ -34,6 +34,11 @@ max-level: 100
|
||||
exp-table: class_exp_table
|
||||
|
||||
|
||||
skill-trees:
|
||||
- 'general'
|
||||
- 'rogue-marksman'
|
||||
|
||||
|
||||
options:
|
||||
# Mana and health regen only applies when out of combat
|
||||
off-combat-mana-regen: true
|
||||
|
@ -36,6 +36,12 @@ exp-curve: levels
|
||||
# The maximum level players can reach
|
||||
max-level: 100
|
||||
|
||||
skill-trees:
|
||||
- 'general'
|
||||
- 'warrior-paladin'
|
||||
- 'combat'
|
||||
|
||||
|
||||
# Warrior has rage which he gains while casting spells
|
||||
# Rage increase its skill damage. Use <mmocore.rage>
|
||||
# to get the player's rage (MythicMobs formulas)
|
||||
|
@ -51,4 +51,286 @@ second_exp_table:
|
||||
some_other_item:
|
||||
period: 3
|
||||
triggers:
|
||||
- 'exp{amount=100}'
|
||||
- 'exp{amount=100}'
|
||||
|
||||
|
||||
|
||||
### Skill Tree
|
||||
|
||||
## MANA_REGENERATION
|
||||
skilltree_mana_regeneration1:
|
||||
mana_regeneration:
|
||||
triggers:
|
||||
- 'stat{stat="MANA_REGENERATION";amount=1;type="FLAT"}'
|
||||
skilltree_mana_regeneration2:
|
||||
mana_regeneration:
|
||||
triggers:
|
||||
- 'stat{stat="MANA_REGENERATION";amount=2;type="FLAT"}'
|
||||
|
||||
## HEALTH_REGENERATION
|
||||
skilltree_health_regeneration1:
|
||||
health_regeneration:
|
||||
triggers:
|
||||
- 'stat{stat="HEALTH_REGENERATION";amount=1;type="FLAT"}'
|
||||
skilltree_health_regeneration2:
|
||||
health_regeneration:
|
||||
triggers:
|
||||
- 'stat{stat="HEALTH_REGENERATION";amount=2;type="FLAT"}'
|
||||
|
||||
|
||||
## COOLDOWN_REDUCTION
|
||||
skilltree_cooldown_reduction5:
|
||||
cooldown_reduction:
|
||||
triggers:
|
||||
- 'stat{stat="COOLDOWN_REDUCTION";amount=5;type="FLAT"}'
|
||||
skilltree_cooldown_reduction10:
|
||||
cooldown_reduction:
|
||||
triggers:
|
||||
- 'stat{stat="COOLDOWN_REDUCTION";amount=10;type="FLAT"}'
|
||||
skilltree_cooldown_reduction15:
|
||||
cooldown_reduction:
|
||||
triggers:
|
||||
- 'stat{stat="COOLDOWN_REDUCTION";amount=15;type="FLAT"}'
|
||||
|
||||
## CRITICAL_STRIKE_CHANCE
|
||||
skilltree_critical_strike_chance1:
|
||||
critical_strike_chance:
|
||||
triggers:
|
||||
- 'stat{stat="CRITICAL_STRIKE_CHANCE";amount=1;type="FLAT"}'
|
||||
skilltree_critical_strike_chance2:
|
||||
critical_strike_chance:
|
||||
triggers:
|
||||
- 'stat{stat="CRITICAL_STRIKE_CHANCE";amount=2;type="FLAT"}'
|
||||
skilltree_critical_strike_chance3:
|
||||
critical_strike_chance:
|
||||
triggers:
|
||||
- 'stat{stat="CRITICAL_STRIKE_CHANCE";amount=3;type="FLAT"}'
|
||||
skilltree_critical_strike_chance5:
|
||||
critical_strike_chance:
|
||||
triggers:
|
||||
- 'stat{stat="CRITICAL_STRIKE_CHANCE";amount=5;type="FLAT"}'
|
||||
|
||||
|
||||
## WEAPON_DAMAGE
|
||||
skilltree_weapon_damage1:
|
||||
weapon_damage:
|
||||
triggers:
|
||||
- 'stat{stat="WEAPON_DAMAGE";amount=1;type="FLAT"}'
|
||||
skilltree_weapon_damage2:
|
||||
weapon_damage:
|
||||
triggers:
|
||||
- 'stat{stat="WEAPON_DAMAGE";amount=2;type="FLAT"}'
|
||||
skilltree_weapon_damage4:
|
||||
weapon_damage:
|
||||
triggers:
|
||||
- 'stat{stat="WEAPON_DAMAGE";amount=4;type="FLAT"}'
|
||||
|
||||
## DAMAGE_REDUCTION
|
||||
skilltree_damage_reduction1:
|
||||
weapon_damage:
|
||||
triggers:
|
||||
- 'stat{stat="DAMAGE_REDUCTION";amount=1;type="FLAT"}'
|
||||
skilltree_damage_reduction2:
|
||||
weapon_damage:
|
||||
triggers:
|
||||
- 'stat{stat="DAMAGE_REDUCTION";amount=2;type="FLAT"}'
|
||||
|
||||
## LIFESTEAL
|
||||
skilltree_lifesteal1:
|
||||
lifesteal:
|
||||
triggers:
|
||||
- 'stat{stat="LIFESTEAL";amount=1;type="FLAT"}'
|
||||
skilltree_lifesteal2:
|
||||
lifesteal:
|
||||
triggers:
|
||||
- 'stat{stat="LIFESTEAL";amount=2;type="FLAT"}'
|
||||
skilltree_lifesteal3:
|
||||
lifesteal:
|
||||
triggers:
|
||||
- 'stat{stat="LIFESTEAL";amount=3;type="FLAT"}'
|
||||
|
||||
## MAX_HEALTH
|
||||
skilltree_max_health1:
|
||||
max_health:
|
||||
triggers:
|
||||
- 'stat{stat="MAX_HEALTH";amount=1;type="FLAT"}'
|
||||
skilltree_max_health2:
|
||||
max_health:
|
||||
triggers:
|
||||
- 'stat{stat="MAX_HEALTH";amount=2;type="FLAT"}'
|
||||
skilltree_max_health4:
|
||||
max_health:
|
||||
triggers:
|
||||
- 'stat{stat="MAX_HEALTH";amount=4;type="FLAT"}'
|
||||
skilltree_max_health5:
|
||||
max_health:
|
||||
triggers:
|
||||
- 'stat{stat="MAX_HEALTH";amount=5;type="FLAT"}'
|
||||
|
||||
## MAGIC_DAMAGE
|
||||
skilltree_magic_damage1:
|
||||
magic_damage:
|
||||
triggers:
|
||||
- 'stat{stat="MAGIC_DAMAGE";amount=1;type="FLAT"}'
|
||||
skilltree_magic_damage2:
|
||||
magic_damage:
|
||||
triggers:
|
||||
- 'stat{stat="MAGIC_DAMAGE";amount=2;type="FLAT"}'
|
||||
skilltree_magic_damage3:
|
||||
magic_damage:
|
||||
triggers:
|
||||
- 'stat{stat="MAGIC_DAMAGE";amount=3;type="FLAT"}'
|
||||
|
||||
## ATTACK_SPEED
|
||||
skilltree_attack_speed5:
|
||||
attack_speed:
|
||||
triggers:
|
||||
- 'stat{stat="ATTACK_SPEED";amount=5;type="RELATIVE"}'
|
||||
skilltree_attack_speed10:
|
||||
attack_speed:
|
||||
triggers:
|
||||
- 'stat{stat="ATTACK_SPEED";amount=10;type="RELATIVE"}'
|
||||
skilltree_attack_speed15:
|
||||
attack_speed:
|
||||
triggers:
|
||||
- 'stat{stat="ATTACK_SPEED";amount=15;type="RELATIVE"}'
|
||||
|
||||
## PHYSICAL_DAMAGE_REDUCTION
|
||||
skilltree_physical_damage_reduction5:
|
||||
physical_damage_reduction:
|
||||
triggers:
|
||||
- 'stat{stat="PHYSICAL_DAMAGE_REDUCTION";amount=5;type="FLAT"}'
|
||||
skilltree_physical_damage_reduction10:
|
||||
physical_damage_reduction:
|
||||
triggers:
|
||||
- 'stat{stat="PHYSICAL_DAMAGE_REDUCTION";amount=10;type="FLAT"}'
|
||||
skilltree_physical_damage_reduction15:
|
||||
physical_damage_reduction:
|
||||
triggers:
|
||||
- 'stat{stat="PHYSICAL_DAMAGE_REDUCTION";amount=15;type="FLAT"}'
|
||||
|
||||
## PARRY_RATING
|
||||
skilltree_parry_rating5:
|
||||
parry_rating:
|
||||
triggers:
|
||||
- 'stat{stat="PARRY_RATING";amount=5;type="FLAT"}'
|
||||
skilltree_parry_rating10:
|
||||
parry_ratingn:
|
||||
triggers:
|
||||
- 'stat{stat="PARRY_RATING";amount=10;type="FLAT"}'
|
||||
|
||||
## KNOCKBACK_RESISTANCE
|
||||
skilltree_knockback_resistance5:
|
||||
knockback_resistance:
|
||||
triggers:
|
||||
- 'stat{stat="KNOCKBACK_RESISTANCE";amount=0.05;type="FLAT"}'
|
||||
skilltree_knockback_resistance10:
|
||||
knockback_resistance:
|
||||
triggers:
|
||||
- 'stat{stat="KNOCKBACK_RESISTANCE";amount=0.1;type="FLAT"}'
|
||||
|
||||
## DODGE_RATING
|
||||
skilltree_dodge_rating2:
|
||||
dodge_rating:
|
||||
triggers:
|
||||
- 'stat{stat="DODGE_RATING";amount=2;type="FLAT"}'
|
||||
skilltree_dodge_rating3:
|
||||
dodge_rating:
|
||||
triggers:
|
||||
- 'stat{stat="DODGE_RATING";amount=3;type="FLAT"}'
|
||||
skilltree_dodge_rating5:
|
||||
dodge_rating:
|
||||
triggers:
|
||||
- 'stat{stat="DODGE_RATING";amount=100;type="FLAT"}'
|
||||
|
||||
## SKILL_DAMAGE
|
||||
skilltree_skill_damage5:
|
||||
skill_damage:
|
||||
triggers:
|
||||
- 'stat{stat="SKILL_DAMAGE";amount=5;type="FLAT"}'
|
||||
skilltree_skill_damage10:
|
||||
skill_damage:
|
||||
triggers:
|
||||
- 'stat{stat="SKILL_DAMAGE";amount=10;type="FLAT"}'
|
||||
|
||||
## SPELL_VAMPIRISM
|
||||
skilltree_spell_vampirism2:
|
||||
spell_vampirism:
|
||||
triggers:
|
||||
- 'stat{stat="SPELL_VAMPIRISM";amount=2;type="FLAT"}'
|
||||
skilltree_spell_vampirism6:
|
||||
spell_vampirism:
|
||||
triggers:
|
||||
- 'stat{stat="SPELL_VAMPIRISM";amount=6;type="FLAT"}'
|
||||
|
||||
## ADDITIONAL_EXPERIENCE
|
||||
skilltree_additional_experience2:
|
||||
additional_experience:
|
||||
triggers:
|
||||
- 'stat{stat="ADDITIONAL_EXPERIENCE";amount=2;type="FLAT"}'
|
||||
skilltree_additional_experience3:
|
||||
additional_experience:
|
||||
triggers:
|
||||
- 'stat{stat="ADDITIONAL_EXPERIENCE";amount=3;type="FLAT"}'
|
||||
skilltree_additional_experience5:
|
||||
additional_experience:
|
||||
triggers:
|
||||
- 'stat{stat="ADDITIONAL_EXPERIENCE";amount=5;type="FLAT"}'
|
||||
|
||||
## MAGIC_DAMAGE_REDUCTION
|
||||
skilltree_magic_damage_reduction5:
|
||||
magic_damage_reduction:
|
||||
triggers:
|
||||
- 'stat{stat="MAGIC_DAMAGE_REDUCTION";amount=5;type="FLAT"}'
|
||||
skilltree_magic_damage_reduction10:
|
||||
magic_damage_reduction:
|
||||
triggers:
|
||||
- 'stat{stat="MAGIC_DAMAGE_REDUCTION";amount=10;type="FLAT"}'
|
||||
|
||||
## SKILL_CRITICAL_STRIKE_CHANCE
|
||||
skilltree_skill_critical_strike_chance5:
|
||||
skill_critical_strike_chance:
|
||||
triggers:
|
||||
- 'stat{stat="SKILL_CRITICAL_STRIKE_CHANCE";amount=5;type="FLAT"}'
|
||||
skilltree_skill_critical_strike_chance10:
|
||||
skill_critical_strike_chance:
|
||||
triggers:
|
||||
- 'stat{stat="SKILL_CRITICAL_STRIKE_CHANCE";amount=10;type="FLAT"}'
|
||||
skilltree_skill_critical_strike_chance15:
|
||||
skill_critical_strike_chance:
|
||||
triggers:
|
||||
- 'stat{stat="SKILL_CRITICAL_STRIKE_CHANCE";amount=15;type="FLAT"}'
|
||||
|
||||
## ARROW_VELOCITY
|
||||
skilltree_arrow_velocity10:
|
||||
arrow_velocity:
|
||||
triggers:
|
||||
- 'stat{stat="ARROW_VELOCITY";amount=10;type="RELATIVE"}'
|
||||
skilltree_arrow_velocity15:
|
||||
arrow_velocity:
|
||||
triggers:
|
||||
- 'stat{stat="ARROW_VELOCITY";amount=15;type="RELATIVE"}'
|
||||
skilltree_arrow_velocity25:
|
||||
arrow_velocity:
|
||||
triggers:
|
||||
- 'stat{stat="ARROW_VELOCITY";amount=25;type="RELATIVE"}'
|
||||
|
||||
## MOVEMENT_SPEED
|
||||
skilltree_movement_speed2:
|
||||
movement_speed:
|
||||
triggers:
|
||||
- 'stat{stat="MOVEMENT_SPEED";amount=10;type="RELATIVE"}'
|
||||
skilltree_movement_speed6:
|
||||
movement_speed:
|
||||
triggers:
|
||||
- 'stat{stat="MOVEMENT_SPEED";amount=10;type="RELATIVE"}'
|
||||
|
||||
## PROJECTILE_DAMAGE
|
||||
skilltree_projectile_damage2:
|
||||
projectile_damage:
|
||||
triggers:
|
||||
- 'stat{stat="PROJECTILE_DAMAGE";amount=10;type="FLAT"}'
|
||||
skilltree_projectile_damage6:
|
||||
projectile_damage:
|
||||
triggers:
|
||||
- 'stat{stat="PROJECTILE_DAMAGE";amount=6;type="FLAT"}'
|
||||
|
@ -1,179 +0,0 @@
|
||||
id: autocombat
|
||||
name: AutoCombat
|
||||
type: automatic
|
||||
item: GOLDEN_AXE
|
||||
lore:
|
||||
- '&6This autoskill tree is used for combat abilities!'
|
||||
|
||||
nodes:
|
||||
strength:
|
||||
name: 'Combat strength'
|
||||
children:
|
||||
strong:
|
||||
force: 2
|
||||
agility: 1
|
||||
wisdom: 3
|
||||
experience-table: class_exp_table
|
||||
max-level: 3
|
||||
size: 1
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1 :
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
|
||||
wisdom:
|
||||
name: 'Wisdom'
|
||||
size: 1
|
||||
max-children: 2
|
||||
max-level: 2
|
||||
experience-table: class_exp_table
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1 :
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
|
||||
agility:
|
||||
name: 'Agility'
|
||||
size: 1
|
||||
max-children: 2
|
||||
max-level: 2
|
||||
experience-table: class_exp_table
|
||||
children:
|
||||
strong:
|
||||
agility2: 1
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1 :
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
|
||||
agility2:
|
||||
name: 'Agility2'
|
||||
size: 1
|
||||
max-children: 2
|
||||
max-level: 2
|
||||
experience-table: class_exp_table
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1 :
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
|
||||
force:
|
||||
name: 'Force'
|
||||
size: 1
|
||||
max-children: 1
|
||||
max-level: 2
|
||||
experience-table: class_exp_table
|
||||
children:
|
||||
strong:
|
||||
weaponry: 1
|
||||
archery: 1
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1 :
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
|
||||
weaponry:
|
||||
name: 'Weaponry'
|
||||
max-level: 2
|
||||
experience-table: class_exp_table
|
||||
size: 1
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1 :
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
|
||||
archery:
|
||||
name: 'Archery'
|
||||
experience-table: class_exp_table
|
||||
max-level: 2
|
||||
size: 1
|
||||
children:
|
||||
strong:
|
||||
archery2: 2
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1 :
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
archery2:
|
||||
name: 'Archery2'
|
||||
experience-table: class_exp_table
|
||||
max-level: 2
|
||||
size: 1
|
||||
children:
|
||||
strong:
|
||||
archery3: 1
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1 :
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
archery3:
|
||||
name: 'Archery3'
|
||||
experience-table: class_exp_table
|
||||
max-level: 2
|
||||
size: 1
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1 :
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
|
||||
|
||||
icons:
|
||||
unlocked:
|
||||
1:
|
||||
item: 'GREEN_DYE'
|
||||
locked:
|
||||
1:
|
||||
item: "BROWN_DYE"
|
||||
unlockable:
|
||||
1:
|
||||
item: "BLUE_DYE"
|
||||
fully-locked:
|
||||
1:
|
||||
item: "BLACK_DYE"
|
||||
path:
|
||||
item: "WHITE_DYE"
|
@ -4,117 +4,408 @@ lore:
|
||||
- '&6This skill tree is used for combat abilities!'
|
||||
type: 'linked'
|
||||
item: 'DIAMOND_AXE'
|
||||
max-point-spent: 20
|
||||
nodes:
|
||||
strength:
|
||||
name: 'Combat strength'
|
||||
a1:
|
||||
name: 'Cooldown Reduction'
|
||||
coordinates:
|
||||
x: -3
|
||||
y: -2
|
||||
|
||||
max-level: 1
|
||||
is-root: true
|
||||
size: 1
|
||||
experience-table: skilltree_cooldown_reduction5
|
||||
lores:
|
||||
0:
|
||||
- "&eReduces cooldowns of item and player skills (5%)"
|
||||
1:
|
||||
- "&eReduces cooldowns of item and player skills (5%)"
|
||||
|
||||
|
||||
|
||||
a2:
|
||||
name: 'Cooldown Reduction'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_cooldown_reduction10
|
||||
coordinates:
|
||||
x: -2
|
||||
y: -2
|
||||
lores:
|
||||
0:
|
||||
- "&eReduces cooldowns of item and player skills (10%)"
|
||||
1:
|
||||
- "&eReduces cooldowns of item and player skills (10%)"
|
||||
|
||||
a3:
|
||||
name: 'Cooldown Reduction'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_cooldown_reduction15
|
||||
coordinates:
|
||||
x: -1
|
||||
y: -2
|
||||
lores:
|
||||
0:
|
||||
- "&eReduces cooldowns of item and player skills (15%)"
|
||||
1:
|
||||
- "&eReduces cooldowns of item and player skills (15%)"
|
||||
|
||||
### B
|
||||
|
||||
b1:
|
||||
name: 'Critical Strike Chance'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_critical_strike_chance1
|
||||
coordinates:
|
||||
x: 0
|
||||
y: -2
|
||||
lores:
|
||||
0:
|
||||
- "&eCritical Strikes deal more damage in % chance"
|
||||
1:
|
||||
- "&eCritical Strikes deal more damage in +%2 chance"
|
||||
|
||||
b2:
|
||||
name: 'Critical Strike Chance'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_critical_strike_chance2
|
||||
coordinates:
|
||||
x: 0
|
||||
y: -1
|
||||
lores:
|
||||
0:
|
||||
- "&eCritical Strikes deal more damage in % chance"
|
||||
1:
|
||||
- "&eCritical Strikes deal more damage in +%3 chance"
|
||||
|
||||
b3:
|
||||
name: 'Critical Strike Chance'
|
||||
size: 1
|
||||
max-children: 2
|
||||
experience-table: skilltree_critical_strike_chance3
|
||||
coordinates:
|
||||
x: 0
|
||||
y: 0
|
||||
|
||||
max-level: 2
|
||||
is-root: true
|
||||
size: 1
|
||||
experience-table: class_exp_table
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1 :
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
|
||||
- "&eCritical Strikes deal more damage in % chance"
|
||||
1:
|
||||
- "&eCritical Strikes deal more damage in +%5 chance"
|
||||
|
||||
## C
|
||||
|
||||
force:
|
||||
name: 'Force'
|
||||
c1:
|
||||
name: 'Life Steal'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: class_exp_table
|
||||
experience-table: skilltree_lifesteal1
|
||||
coordinates:
|
||||
x: 1
|
||||
x: -1
|
||||
y: 0
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1 :
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
|
||||
weaponry:
|
||||
name: 'Weaponry'
|
||||
coordinates:
|
||||
x: 2
|
||||
y: 0
|
||||
experience-table: class_exp_table
|
||||
max-level: 2
|
||||
- "&ePercentage of damage you gain back as health when inflicting weapon damage +%1"
|
||||
1:
|
||||
- "&ePercentage of damage you gain back as health when inflicting weapon damage +%1"
|
||||
|
||||
c2:
|
||||
name: 'Life Steal'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_lifesteal2
|
||||
coordinates:
|
||||
x: -2
|
||||
y: 0
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1 :
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
|
||||
archery:
|
||||
name: 'Archery'
|
||||
- "&ePercentage of damage you gain back as health when inflicting weapon damage +%2"
|
||||
1:
|
||||
- "&ePercentage of damage you gain back as health when inflicting weapon damage +%2"
|
||||
|
||||
c3:
|
||||
name: 'Life Steal'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_lifesteal2
|
||||
coordinates:
|
||||
x: 1
|
||||
x: -3
|
||||
y: 0
|
||||
lores:
|
||||
0:
|
||||
- "&ePercentage of damage you gain back as health when inflicting weapon damage +%3"
|
||||
1:
|
||||
- "&ePercentage of damage you gain back as health when inflicting weapon damage +%3"
|
||||
|
||||
## D
|
||||
|
||||
d1:
|
||||
name: 'Damage Reduction'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_damage_reduction1
|
||||
coordinates:
|
||||
x: 0
|
||||
y: 1
|
||||
experience-table: class_exp_table
|
||||
max-level: 2
|
||||
size: 1
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1 :
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
archery2:
|
||||
name: 'Archery2'
|
||||
- "&eReduces damage from any source in +%1"
|
||||
1:
|
||||
- "&eReduces damage from any source in +%1"
|
||||
|
||||
d2:
|
||||
name: 'Damage Reduction'
|
||||
size: 1
|
||||
max-children: 2
|
||||
experience-table: skilltree_damage_reduction2
|
||||
coordinates:
|
||||
x: 0
|
||||
y: 2
|
||||
lores:
|
||||
0:
|
||||
- "&eReduces damage from any source in +%2"
|
||||
1:
|
||||
- "&eReduces damage from any source in +%2"
|
||||
|
||||
d3:
|
||||
name: 'Damage Reduction'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_damage_reduction2
|
||||
coordinates:
|
||||
x: -1
|
||||
y: 2
|
||||
lores:
|
||||
0:
|
||||
- "&eReduces damage from any source in +%2"
|
||||
1:
|
||||
- "&eReduces damage from any source in +%2"
|
||||
|
||||
## E
|
||||
|
||||
e1:
|
||||
name: 'Health Regeneration'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_health_regeneration1
|
||||
coordinates:
|
||||
x: -2
|
||||
y: 2
|
||||
lores:
|
||||
0:
|
||||
- "&eHealth regen in pts/sec +1"
|
||||
1:
|
||||
- "&eHealth regen in pts/sec +1"
|
||||
|
||||
e2:
|
||||
name: 'Health Regeneration'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_health_regeneration2
|
||||
coordinates:
|
||||
x: -3
|
||||
y: 2
|
||||
lores:
|
||||
0:
|
||||
- "&eHealth regen in pts/sec +2"
|
||||
1:
|
||||
- "&eHealth regen in pts/sec +2"
|
||||
|
||||
e3:
|
||||
name: 'Health Regeneration'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_health_regeneration2
|
||||
coordinates:
|
||||
x: -3
|
||||
y: 1
|
||||
lores:
|
||||
0:
|
||||
- "&eHealth regen in pts/sec +2"
|
||||
1:
|
||||
- "&eHealth regen in pts/sec +2"
|
||||
|
||||
## F
|
||||
|
||||
f1:
|
||||
name: 'Mana Regeneration'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_mana_regeneration1
|
||||
coordinates:
|
||||
x: 1
|
||||
y: 2
|
||||
experience-table: class_exp_table
|
||||
max-level: 2
|
||||
size: 1
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1 :
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
archery3:
|
||||
name: 'Archery3'
|
||||
- "&eMana regen in pts/sec +1"
|
||||
1:
|
||||
- "&eMana regen in pts/sec +1"
|
||||
|
||||
f2:
|
||||
name: 'Mana Regeneration'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_mana_regeneration2
|
||||
coordinates:
|
||||
x: 1
|
||||
y: 3
|
||||
|
||||
max-level: 2
|
||||
size: 1
|
||||
x: 2
|
||||
y: 2
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1 :
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
|
||||
- "&eMana regen in pts/sec +2"
|
||||
1:
|
||||
- "&eMana regen in pts/sec +2"
|
||||
|
||||
f3:
|
||||
name: 'Mana Regeneration'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_mana_regeneration2
|
||||
coordinates:
|
||||
x: 3
|
||||
y: 2
|
||||
lores:
|
||||
0:
|
||||
- "&eMana regen in pts/sec +2"
|
||||
1:
|
||||
- "&eMana regen in pts/sec +2"
|
||||
|
||||
## G
|
||||
|
||||
g1:
|
||||
name: 'Magic Damage'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_magic_damage1
|
||||
coordinates:
|
||||
x: 3
|
||||
y: 1
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional magic skill damage in +%1"
|
||||
1:
|
||||
- "&eAdditional magic skill damage in +%1"
|
||||
|
||||
g2:
|
||||
name: 'Magic Damage'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_magic_damage2
|
||||
coordinates:
|
||||
x: 4
|
||||
y: 1
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional magic skill damage in +%2"
|
||||
1:
|
||||
- "&eAdditional magic skill damage in +%2"
|
||||
|
||||
g3:
|
||||
name: 'Magic Damage'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_magic_damage2
|
||||
coordinates:
|
||||
x: 4
|
||||
y: 0
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional magic skill damage in +%2"
|
||||
1:
|
||||
- "&eAdditional magic skill damage in +%2"
|
||||
|
||||
## H
|
||||
|
||||
h1:
|
||||
name: 'Max Health'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_max_health2
|
||||
coordinates:
|
||||
x: 4
|
||||
y: -1
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional amount of health in +%2"
|
||||
1:
|
||||
- "&eAdditional amount of health in +%2"
|
||||
|
||||
h2:
|
||||
name: 'Max Health'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_max_health4
|
||||
coordinates:
|
||||
x: 4
|
||||
y: -2
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional amount of health in +%4"
|
||||
1:
|
||||
- "&eAdditional amount of health in +%4"
|
||||
|
||||
h3:
|
||||
name: 'Max Health'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_max_health4
|
||||
coordinates:
|
||||
x: 3
|
||||
y: -2
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional amount of health in +%4"
|
||||
1:
|
||||
- "&eAdditional amount of health in +%4"
|
||||
|
||||
## J
|
||||
|
||||
j1:
|
||||
name: 'Weapon Damage'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_weapon_damage2
|
||||
coordinates:
|
||||
x: 2
|
||||
y: -2
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional on-hit weapon damage in +%2."
|
||||
1:
|
||||
- "&eAdditional on-hit weapon damage in +%2."
|
||||
|
||||
j2:
|
||||
name: 'Weapon Damage'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_weapon_damage4
|
||||
coordinates:
|
||||
x: 2
|
||||
y: -1
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional on-hit weapon damage in +%4"
|
||||
1:
|
||||
- "&eAdditional on-hit weapon damage in +%4"
|
||||
|
||||
j3:
|
||||
name: 'Weapon Damage'
|
||||
size: 1
|
||||
max-children: 1
|
||||
experience-table: skilltree_weapon_damage4
|
||||
coordinates:
|
||||
x: 2
|
||||
y: 0
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional on-hit weapon damage in +%4"
|
||||
1:
|
||||
- "&eAdditional on-hit weapon damage in +%4"
|
||||
|
||||
|
||||
|
||||
|
||||
paths:
|
||||
path1:
|
||||
|
@ -1,170 +0,0 @@
|
||||
id: customcombat
|
||||
name: CustomCombat
|
||||
type: custom
|
||||
item: GOLDEN_AXE
|
||||
lore:
|
||||
- '&6This autoskill tree is used for combat abilities!'
|
||||
|
||||
nodes:
|
||||
strength:
|
||||
name: 'Combat strength'
|
||||
children:
|
||||
strong:
|
||||
force: 2
|
||||
agility: 1
|
||||
wisdom: 3
|
||||
experience-table: class_exp_table
|
||||
max-level: 3
|
||||
size: 1
|
||||
coordinates:
|
||||
x: 0
|
||||
y: 0
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1:
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
|
||||
wisdom:
|
||||
name: 'Wisdom'
|
||||
size: 1
|
||||
max-children: 2
|
||||
max-level: 2
|
||||
coordinates:
|
||||
x: -1
|
||||
y: 0
|
||||
experience-table: class_exp_table
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1:
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
|
||||
agility:
|
||||
name: 'Agility'
|
||||
size: 1
|
||||
max-children: 2
|
||||
max-level: 2
|
||||
experience-table: class_exp_table
|
||||
coordinates:
|
||||
x: 1
|
||||
y: 0
|
||||
children:
|
||||
strong:
|
||||
agility2: 1
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1:
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
|
||||
agility2:
|
||||
name: 'Agility2'
|
||||
size: 1
|
||||
max-children: 2
|
||||
max-level: 2
|
||||
experience-table: class_exp_table
|
||||
coordinates:
|
||||
x: 1
|
||||
y: -1
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1:
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
|
||||
force:
|
||||
name: 'Force'
|
||||
size: 1
|
||||
max-children: 1
|
||||
max-level: 2
|
||||
children:
|
||||
strong:
|
||||
weaponry: 1
|
||||
archery: 1
|
||||
experience-table: class_exp_table
|
||||
coordinates:
|
||||
x: 0
|
||||
y: 1
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1:
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
|
||||
weaponry:
|
||||
name: 'Weaponry'
|
||||
max-level: 2
|
||||
size: 1
|
||||
coordinates:
|
||||
x: 1
|
||||
y: 1
|
||||
experience-table: class_exp_table
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1:
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
|
||||
archery:
|
||||
name: 'Archery'
|
||||
max-level: 2
|
||||
size: 1
|
||||
experience-table: class_exp_table
|
||||
coordinates:
|
||||
x: 0
|
||||
y: -1
|
||||
lores:
|
||||
0:
|
||||
- "&eThis lore will be shown when level 0"
|
||||
1:
|
||||
- "&eThis lore will be shown when level 1"
|
||||
2:
|
||||
- "&eThis lore will be shown when level 2"
|
||||
3:
|
||||
- "&eThis lore will be shown when level 3"
|
||||
|
||||
|
||||
icons:
|
||||
unlocked:
|
||||
1:
|
||||
item: 'YELLOW_DYE'
|
||||
model-data: 1
|
||||
2:
|
||||
item: 'ORANGE_DYE'
|
||||
model-data: 0
|
||||
locked:
|
||||
1:
|
||||
item: "BROWN_DYE"
|
||||
unlockable:
|
||||
1:
|
||||
item: "BLUE_DYE"
|
||||
fully-locked:
|
||||
1:
|
||||
item: "BLACK_DYE"
|
||||
path:
|
||||
item: "WHITE_DYE"
|
428
MMOCore-Dist/src/main/resources/default/skilltree/general.yml
Normal file
428
MMOCore-Dist/src/main/resources/default/skilltree/general.yml
Normal file
@ -0,0 +1,428 @@
|
||||
id: 'general'
|
||||
name: '&4General'
|
||||
type: 'custom'
|
||||
item: 'DIAMOND_AXE'
|
||||
lore:
|
||||
- '&6This skill tree is used for combat abilities!'
|
||||
max-point-spent: 11
|
||||
|
||||
nodes:
|
||||
|
||||
#### A
|
||||
a1:
|
||||
name: 'Mana Regeneration'
|
||||
coordinates:
|
||||
x: -3
|
||||
y: -2
|
||||
|
||||
max-level: 1
|
||||
is-root: true
|
||||
size: 1
|
||||
experience-table: skilltree_mana_regeneration1
|
||||
lores:
|
||||
0:
|
||||
- "&eMana regen in pts/sec +1"
|
||||
1:
|
||||
- "&eMana regen in pts/sec +1"
|
||||
a2:
|
||||
name: 'Mana Regeneration'
|
||||
coordinates:
|
||||
x: -2
|
||||
y: -2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
a1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_mana_regeneration2
|
||||
lores:
|
||||
0:
|
||||
- "&eMana regen in pts/sec +2"
|
||||
1:
|
||||
- "&eMana regen in pts/sec +2"
|
||||
a3:
|
||||
name: 'Mana Regeneration'
|
||||
coordinates:
|
||||
x: -1
|
||||
y: -1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
a2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_mana_regeneration2
|
||||
lores:
|
||||
0:
|
||||
- "&eMana regen in pts/sec +2"
|
||||
1:
|
||||
- "&eMana regen in pts/sec +2"
|
||||
|
||||
#### B
|
||||
b1:
|
||||
name: 'Health Regeneration'
|
||||
coordinates:
|
||||
x: -3
|
||||
y: -0
|
||||
|
||||
max-level: 1
|
||||
is-root: true
|
||||
size: 1
|
||||
experience-table: skilltree_health_regeneration1
|
||||
lores:
|
||||
0:
|
||||
- "&eHealth regen in pts/sec +1"
|
||||
1:
|
||||
- "&eHealth regen in pts/sec +1"
|
||||
|
||||
b2:
|
||||
name: 'Health Regeneration'
|
||||
coordinates:
|
||||
x: -2
|
||||
y: -0
|
||||
|
||||
parents:
|
||||
strong:
|
||||
b1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_health_regeneration2
|
||||
lores:
|
||||
0:
|
||||
- "&eHealth regen in pts/sec +2"
|
||||
1:
|
||||
- "&eHealth regen in pts/sec +2"
|
||||
|
||||
b3:
|
||||
name: 'Health Regeneration'
|
||||
coordinates:
|
||||
x: -1
|
||||
y: -0
|
||||
|
||||
parents:
|
||||
strong:
|
||||
b2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_health_regeneration2
|
||||
lores:
|
||||
0:
|
||||
- "&eHealth regen in pts/sec +2"
|
||||
1:
|
||||
- "&eHealth regen in pts/sec +2"
|
||||
|
||||
#### C
|
||||
c1:
|
||||
name: 'Cooldown Reduction'
|
||||
coordinates:
|
||||
x: -3
|
||||
y: 2
|
||||
|
||||
max-level: 1
|
||||
is-root: true
|
||||
size: 1
|
||||
experience-table: skilltree_cooldown_reduction5
|
||||
lores:
|
||||
0:
|
||||
- "&eReduces cooldowns of item and player skills (5%)"
|
||||
1:
|
||||
- "&eReduces cooldowns of item and player skills (5%)"
|
||||
|
||||
c2:
|
||||
name: 'Cooldown Reduction'
|
||||
coordinates:
|
||||
x: -2
|
||||
y: 2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
c1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_cooldown_reduction10
|
||||
lores:
|
||||
0:
|
||||
- "&eReduces cooldowns of item and player skills (10%)"
|
||||
1:
|
||||
- "&eReduces cooldowns of item and player skills (10%)"
|
||||
|
||||
c3:
|
||||
name: 'Cooldown Reduction'
|
||||
coordinates:
|
||||
x: -1
|
||||
y: 1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
c2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_cooldown_reduction15
|
||||
lores:
|
||||
0:
|
||||
- "&eReduces cooldowns of item and player skills (15%)"
|
||||
1:
|
||||
- "&eReduces cooldowns of item and player skills (15%)"
|
||||
|
||||
#### D
|
||||
d1:
|
||||
name: 'Critical Strike Chance'
|
||||
coordinates:
|
||||
x: 0
|
||||
y: 0
|
||||
|
||||
parents:
|
||||
soft:
|
||||
a3: 1
|
||||
b3: 1
|
||||
c3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_critical_strike_chance1
|
||||
lores:
|
||||
0:
|
||||
- "&eCritical Strikes deal more damage in +%2 chance"
|
||||
1:
|
||||
- "&eCritical Strikes deal more damage in +%2 chance"
|
||||
|
||||
d2:
|
||||
name: 'Critical Strike Chance'
|
||||
coordinates:
|
||||
x: 1
|
||||
y: 0
|
||||
|
||||
parents:
|
||||
strong:
|
||||
d1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_critical_strike_chance2
|
||||
lores:
|
||||
0:
|
||||
- "&eCritical Strikes deal more damage in % chance"
|
||||
1:
|
||||
- "&eCritical Strikes deal more damage in +%3 chance"
|
||||
|
||||
d3:
|
||||
name: 'Critical Strike Chance'
|
||||
coordinates:
|
||||
x: 2
|
||||
y: 0
|
||||
|
||||
parents:
|
||||
strong:
|
||||
d2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_critical_strike_chance5
|
||||
lores:
|
||||
0:
|
||||
- "&eCritical Strikes deal more damage in % chance"
|
||||
1:
|
||||
- "&eCritical Strikes deal more damage in +%5 chance"
|
||||
|
||||
|
||||
#### E
|
||||
e1:
|
||||
name: 'Damage Reduction'
|
||||
coordinates:
|
||||
x: 2
|
||||
y: 1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
d3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_damage_reduction1
|
||||
lores:
|
||||
0:
|
||||
- "&eReduces damage from any source in %."
|
||||
1:
|
||||
- "&eReduces damage from any source in +%1."
|
||||
|
||||
e2:
|
||||
name: 'Damage Reduction'
|
||||
coordinates:
|
||||
x: 2
|
||||
y: 2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
e1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_damage_reduction2
|
||||
lores:
|
||||
0:
|
||||
- "&eReduces damage from any source in %."
|
||||
1:
|
||||
- "&eReduces damage from any source in +%2."
|
||||
|
||||
e3:
|
||||
name: 'Damage Reduction'
|
||||
coordinates:
|
||||
x: 3
|
||||
y: 2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
e2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_damage_reduction2
|
||||
lores:
|
||||
0:
|
||||
- "&eReduces damage from any source in %."
|
||||
1:
|
||||
- "&eReduces damage from any source in +%2."
|
||||
|
||||
#### F
|
||||
f1:
|
||||
name: 'Weapon Damage'
|
||||
coordinates:
|
||||
x: 2
|
||||
y: -1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
d3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_weapon_damage1
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional on-hit weapon damage in +%1."
|
||||
1:
|
||||
- "&eAdditional on-hit weapon damage in +%1."
|
||||
|
||||
f2:
|
||||
name: 'Weapon Damage'
|
||||
coordinates:
|
||||
x: 2
|
||||
y: -2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
f1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_weapon_damage2
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional on-hit weapon damage in +%2."
|
||||
1:
|
||||
- "&eAdditional on-hit weapon damage in +%2."
|
||||
|
||||
f3:
|
||||
name: 'Weapon Damage'
|
||||
coordinates:
|
||||
x: 3
|
||||
y: -2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
f2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_weapon_damage2
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional on-hit weapon damage in +%2."
|
||||
1:
|
||||
- "&eAdditional on-hit weapon damage in +%2."
|
||||
|
||||
|
||||
##last line
|
||||
g1:
|
||||
name: 'Life Steal'
|
||||
coordinates:
|
||||
x: 4
|
||||
y: -1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
f3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_lifesteal3
|
||||
lores:
|
||||
0:
|
||||
- "&ePercentage of damage you gain back as health when inflicting weapon damage."
|
||||
1:
|
||||
- "&ePercentage of damage you gain back as health when inflicting weapon damage +%3"
|
||||
|
||||
j1:
|
||||
name: 'Max Health'
|
||||
coordinates:
|
||||
x: 4
|
||||
y: 0
|
||||
|
||||
parents:
|
||||
soft:
|
||||
g1: 1
|
||||
h1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_max_health5
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional amount of health in +%5"
|
||||
1:
|
||||
- "&eAdditional amount of health in +%5"
|
||||
|
||||
h1:
|
||||
name: 'Magic Damage'
|
||||
coordinates:
|
||||
x: 4
|
||||
y: 1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
e3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_magic_damage3
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional magic skill damage in +%3"
|
||||
1:
|
||||
- "&eAdditional magic skill damage in +%3"
|
||||
|
||||
|
||||
|
||||
|
||||
icons:
|
||||
unlocked:
|
||||
1:
|
||||
item: 'GREEN_DYE'
|
||||
locked:
|
||||
1:
|
||||
item: "BROWN_DYE"
|
||||
unlockable:
|
||||
1:
|
||||
item: "BLUE_DYE"
|
||||
fully-locked:
|
||||
1:
|
||||
item: "BLACK_DYE"
|
||||
path:
|
||||
item: "WHITE_DYE"
|
@ -0,0 +1,426 @@
|
||||
id: 'mage-arcane-mage'
|
||||
name: '&4Mage'
|
||||
type: 'custom'
|
||||
item: 'DIAMOND_AXE'
|
||||
lore:
|
||||
- '&6This skill tree is used for Mage & Arcane Mage class only!'
|
||||
max-point-spent: 21
|
||||
|
||||
nodes:
|
||||
|
||||
#### A
|
||||
a1:
|
||||
name: 'Mana Regeneration'
|
||||
coordinates:
|
||||
x: 1
|
||||
y: -2
|
||||
|
||||
max-level: 1
|
||||
is-root: true
|
||||
size: 1
|
||||
experience-table: skilltree_mana_regeneration1
|
||||
lores:
|
||||
0:
|
||||
- "&eMana regen in pts/sec +1"
|
||||
1:
|
||||
- "&eMana regen in pts/sec +1"
|
||||
a2:
|
||||
name: 'Mana Regeneration'
|
||||
coordinates:
|
||||
x: 0
|
||||
y: -2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
a1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_mana_regeneration2
|
||||
lores:
|
||||
0:
|
||||
- "&eMana regen in pts/sec +2"
|
||||
1:
|
||||
- "&eMana regen in pts/sec +2"
|
||||
a3:
|
||||
name: 'Mana Regeneration'
|
||||
coordinates:
|
||||
x: -1
|
||||
y: -2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
a2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_mana_regeneration2
|
||||
lores:
|
||||
0:
|
||||
- "&eMana regen in pts/sec +2"
|
||||
1:
|
||||
- "&eMana regen in pts/sec +2"
|
||||
|
||||
## B
|
||||
|
||||
b1:
|
||||
name: 'Skill Damage'
|
||||
coordinates:
|
||||
x: -2
|
||||
y: -1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
a3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_skill_damage5
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional ability damage in +%5"
|
||||
1:
|
||||
- "&eAdditional ability damage in +%5"
|
||||
b2:
|
||||
name: 'Skill Damage'
|
||||
coordinates:
|
||||
x: -3
|
||||
y: 0
|
||||
|
||||
parents:
|
||||
strong:
|
||||
b1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_skill_damage5
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional ability damage in +%5"
|
||||
1:
|
||||
- "&eAdditional ability damage in +%5"
|
||||
b3:
|
||||
name: 'Skill Damage'
|
||||
coordinates:
|
||||
x: -2
|
||||
y: 1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
b2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_skill_damage10
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional ability damage in +%10"
|
||||
1:
|
||||
- "&eAdditional ability damage in +%10"
|
||||
|
||||
## C
|
||||
|
||||
c1:
|
||||
name: 'Spell Vampirism'
|
||||
coordinates:
|
||||
x: -2
|
||||
y: 2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
b3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_spell_vampirism2
|
||||
lores:
|
||||
0:
|
||||
- "&ePercentage of damage you gain back as health when inflicting skill damage +%2"
|
||||
1:
|
||||
- "&ePercentage of damage you gain back as health when inflicting skill damage +%2"
|
||||
c2:
|
||||
name: 'Spell Vampirism'
|
||||
coordinates:
|
||||
x: -1
|
||||
y: 2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
c1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_spell_vampirism2
|
||||
lores:
|
||||
0:
|
||||
- "&ePercentage of damage you gain back as health when inflicting skill damage +%2"
|
||||
1:
|
||||
- "&ePercentage of damage you gain back as health when inflicting skill damage +%2"
|
||||
c3:
|
||||
name: 'Spell Vampirism'
|
||||
coordinates:
|
||||
x: 0
|
||||
y: 2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
c2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_spell_vampirism6
|
||||
lores:
|
||||
0:
|
||||
- "&ePercentage of damage you gain back as health when inflicting skill damage +%6"
|
||||
1:
|
||||
- "&ePercentage of damage you gain back as health when inflicting skill damage +%6"
|
||||
|
||||
## D
|
||||
|
||||
d1:
|
||||
name: 'Additional Experience'
|
||||
coordinates:
|
||||
x: 0
|
||||
y: 1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
c3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_additional_experience2
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional MMOCore main class experience +%2"
|
||||
1:
|
||||
- "&eAdditional MMOCore main class experience +%2"
|
||||
d2:
|
||||
name: 'Additional Experience'
|
||||
coordinates:
|
||||
x: 0
|
||||
y: 0
|
||||
|
||||
parents:
|
||||
strong:
|
||||
d1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_additional_experience3
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional MMOCore main class experience +%3"
|
||||
1:
|
||||
- "&eAdditional MMOCore main class experience +%3"
|
||||
d3:
|
||||
name: 'Additional Experience'
|
||||
coordinates:
|
||||
x: 1
|
||||
y: 0
|
||||
|
||||
parents:
|
||||
strong:
|
||||
d2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_additional_experience5
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional MMOCore main class experience +%5"
|
||||
1:
|
||||
- "&eAdditional MMOCore main class experience +%5"
|
||||
|
||||
## E
|
||||
|
||||
e1:
|
||||
name: 'Magic Damage Reduction'
|
||||
coordinates:
|
||||
x: 2
|
||||
y: 0
|
||||
|
||||
parents:
|
||||
strong:
|
||||
d3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_magic_damage_reduction5
|
||||
lores:
|
||||
0:
|
||||
- "&eReduce magic damage dealt by potions %5"
|
||||
1:
|
||||
- "&eReduce magic damage dealt by potions %5"
|
||||
e2:
|
||||
name: 'Magic Damage Reduction'
|
||||
coordinates:
|
||||
x: 2
|
||||
y: 1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
e1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_magic_damage_reduction5
|
||||
lores:
|
||||
0:
|
||||
- "&eReduce magic damage dealt by potions %5"
|
||||
1:
|
||||
- "&eReduce magic damage dealt by potions %5"
|
||||
e3:
|
||||
name: 'Magic Damage Reduction'
|
||||
coordinates:
|
||||
x: 2
|
||||
y: 2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
e2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_magic_damage_reduction10
|
||||
lores:
|
||||
0:
|
||||
- "&eReduce magic damage dealt by potions %10"
|
||||
1:
|
||||
- "&eReduce magic damage dealt by potions %10"
|
||||
|
||||
## F
|
||||
|
||||
f1:
|
||||
name: 'Skill Critical Strike Chance'
|
||||
coordinates:
|
||||
x: 3
|
||||
y: 2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
e3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_skill_critical_strike_chance5
|
||||
lores:
|
||||
0:
|
||||
- "&eIncreases the chance of dealing skill crits +%5"
|
||||
1:
|
||||
- "&eIncreases the chance of dealing skill crits +%5"
|
||||
f2:
|
||||
name: 'Skill Critical Strike Chance'
|
||||
coordinates:
|
||||
x: 4
|
||||
y: 2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
f1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_skill_critical_strike_chance10
|
||||
lores:
|
||||
0:
|
||||
- "&eIncreases the chance of dealing skill crits +%10"
|
||||
1:
|
||||
- "&eIncreases the chance of dealing skill crits +%10"
|
||||
f3:
|
||||
name: 'Skill Critical Strike Chance'
|
||||
coordinates:
|
||||
x: 4
|
||||
y: 1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
f2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_skill_critical_strike_chance15
|
||||
lores:
|
||||
0:
|
||||
- "&eIncreases the chance of dealing skill crits +%15"
|
||||
1:
|
||||
- "&eIncreases the chance of dealing skill crits +%15"
|
||||
|
||||
## G
|
||||
|
||||
g1:
|
||||
name: 'Magic Damage'
|
||||
coordinates:
|
||||
x: 4
|
||||
y: 0
|
||||
|
||||
parents:
|
||||
strong:
|
||||
f3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_magic_damage1
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional magic skill damage in +%1"
|
||||
1:
|
||||
- "&eAdditional magic skill damage in +%1"
|
||||
g2:
|
||||
name: 'Magic Damage'
|
||||
coordinates:
|
||||
x: 4
|
||||
y: -1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
g1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_magic_damage2
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional magic skill damage in +%2"
|
||||
1:
|
||||
- "&eAdditional magic skill damage in +%2"
|
||||
g3:
|
||||
name: 'Magic Damage'
|
||||
coordinates:
|
||||
x: 4
|
||||
y: -2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
g2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_magic_damage2
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional magic skill damage in +%2"
|
||||
1:
|
||||
- "&eAdditional magic skill damage in +%2"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
icons:
|
||||
unlocked:
|
||||
1:
|
||||
item: 'GREEN_DYE'
|
||||
locked:
|
||||
1:
|
||||
item: "BROWN_DYE"
|
||||
unlockable:
|
||||
1:
|
||||
item: "BLUE_DYE"
|
||||
fully-locked:
|
||||
1:
|
||||
item: "BLACK_DYE"
|
||||
path:
|
||||
item: "WHITE_DYE"
|
@ -0,0 +1,422 @@
|
||||
id: 'rogue-marksman'
|
||||
name: '&4Rogue&Marksman'
|
||||
type: 'custom'
|
||||
item: 'DIAMOND_AXE'
|
||||
lore:
|
||||
- '&6This skill tree is used for Rogue & Marksman class only!'
|
||||
max-point-spent: 21
|
||||
|
||||
nodes:
|
||||
|
||||
#### A
|
||||
a1:
|
||||
name: 'Additional Experience'
|
||||
coordinates:
|
||||
x: -3
|
||||
y: 0
|
||||
|
||||
max-level: 1
|
||||
is-root: true
|
||||
size: 1
|
||||
experience-table: skilltree_additional_experience2
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional MMOCore main class experience +%2"
|
||||
1:
|
||||
- "&eAdditional MMOCore main class experience +%2"
|
||||
a2:
|
||||
name: 'Additional Experience'
|
||||
coordinates:
|
||||
x: -2
|
||||
y: 0
|
||||
|
||||
parents:
|
||||
strong:
|
||||
a1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_additional_experience3
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional MMOCore main class experience +%3"
|
||||
1:
|
||||
- "&eAdditional MMOCore main class experience +%3"
|
||||
a3:
|
||||
name: 'Additional Experience'
|
||||
coordinates:
|
||||
x: -1
|
||||
y: 0
|
||||
|
||||
parents:
|
||||
strong:
|
||||
a2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_additional_experience5
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional MMOCore main class experience +%5"
|
||||
1:
|
||||
- "&eAdditional MMOCore main class experience +%5"
|
||||
|
||||
## B
|
||||
|
||||
b1:
|
||||
name: 'Arrow Velocity'
|
||||
coordinates:
|
||||
x: -1
|
||||
y: -1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
a3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_arrow_velocity10
|
||||
lores:
|
||||
0:
|
||||
- "&eDetermines how far your weapon can shoot +%10"
|
||||
1:
|
||||
- "&eDetermines how far your weapon can shoot +%10"
|
||||
b2:
|
||||
name: 'Arrow Velocity'
|
||||
coordinates:
|
||||
x: -1
|
||||
y: -2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
b1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_arrow_velocity15
|
||||
lores:
|
||||
0:
|
||||
- "&eDetermines how far your weapon can shoot +%15"
|
||||
1:
|
||||
- "&eDetermines how far your weapon can shoot +%15"
|
||||
b3:
|
||||
name: 'Arrow Velocity'
|
||||
coordinates:
|
||||
x: 0
|
||||
y: -2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
b2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_arrow_velocity25
|
||||
lores:
|
||||
0:
|
||||
- "&eDetermines how far your weapon can shoot +%25"
|
||||
1:
|
||||
- "&eDetermines how far your weapon can shoot +%25"
|
||||
|
||||
## C
|
||||
|
||||
c1:
|
||||
name: 'Life Steal'
|
||||
coordinates:
|
||||
x: 1
|
||||
y: -2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
b3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_lifesteal1
|
||||
lores:
|
||||
0:
|
||||
- "&ePercentage of damage you gain back as health when inflicting weapon damage +%1"
|
||||
1:
|
||||
- "&ePercentage of damage you gain back as health when inflicting weapon damage +%1"
|
||||
c2:
|
||||
name: 'Life Steal'
|
||||
coordinates:
|
||||
x: 2
|
||||
y: -2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
c1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_lifesteal2
|
||||
lores:
|
||||
0:
|
||||
- "&ePercentage of damage you gain back as health when inflicting weapon damage +%2"
|
||||
1:
|
||||
- "&ePercentage of damage you gain back as health when inflicting weapon damage +%2"
|
||||
c3:
|
||||
name: 'Life Steal'
|
||||
coordinates:
|
||||
x: 3
|
||||
y: -2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
c2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_lifesteal2
|
||||
lores:
|
||||
0:
|
||||
- "&ePercentage of damage you gain back as health when inflicting weapon damage +%2"
|
||||
1:
|
||||
- "&ePercentage of damage you gain back as health when inflicting weapon damage +%2"
|
||||
|
||||
## D
|
||||
|
||||
d1:
|
||||
name: 'Knockback Resistance'
|
||||
coordinates:
|
||||
x: 3
|
||||
y: -1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
c3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_knockback_resistance5
|
||||
lores:
|
||||
0:
|
||||
- "&eThe chance of you to block the knockback +%5"
|
||||
1:
|
||||
- "&eThe chance of you to block the knockback +%5"
|
||||
d2:
|
||||
name: 'Knockback Resistance'
|
||||
coordinates:
|
||||
x: 4
|
||||
y: -1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
d1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_knockback_resistance5
|
||||
lores:
|
||||
0:
|
||||
- "&eThe chance of you to block the knockback +%5"
|
||||
1:
|
||||
- "&eThe chance of you to block the knockback +%5"
|
||||
d3:
|
||||
name: 'Knockback Resistance'
|
||||
coordinates:
|
||||
x: 4
|
||||
y: 0
|
||||
|
||||
parents:
|
||||
strong:
|
||||
d2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_knockback_resistance10
|
||||
lores:
|
||||
0:
|
||||
- "&eThe chance of you to block the knockback +%5"
|
||||
1:
|
||||
- "&eThe chance of you to block the knockback +%5"
|
||||
|
||||
## E
|
||||
|
||||
e1:
|
||||
name: 'Critical Strike Chance'
|
||||
coordinates:
|
||||
x: 4
|
||||
y: 1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
d3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_critical_strike_chance2
|
||||
lores:
|
||||
0:
|
||||
- "&eCritical Strikes deal more damage in +%2 chance"
|
||||
1:
|
||||
- "&eCritical Strikes deal more damage in +%2 chance"
|
||||
e2:
|
||||
name: 'Critical Strike Chance'
|
||||
coordinates:
|
||||
x: 4
|
||||
y: 2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
e1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_critical_strike_chance3
|
||||
lores:
|
||||
0:
|
||||
- "&eCritical Strikes deal more damage in +%3 chance"
|
||||
1:
|
||||
- "&eCritical Strikes deal more damage in +%3 chance"
|
||||
e3:
|
||||
name: 'Critical Strike Chance'
|
||||
coordinates:
|
||||
x: 3
|
||||
y: 2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
e2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_critical_strike_chance5
|
||||
lores:
|
||||
0:
|
||||
- "&eCritical Strikes deal more damage in +%5 chance"
|
||||
1:
|
||||
- "&eCritical Strikes deal more damage in +%5 chance"
|
||||
|
||||
## F
|
||||
|
||||
f1:
|
||||
name: 'Movement Speed'
|
||||
coordinates:
|
||||
x: 2
|
||||
y: 2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
e3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_movement_speed2
|
||||
lores:
|
||||
0:
|
||||
- "&eMovement Speed increase walk speed. +%2"
|
||||
1:
|
||||
- "&eMovement Speed increase walk speed. +%2"
|
||||
f2:
|
||||
name: 'Movement Speed'
|
||||
coordinates:
|
||||
x: 2
|
||||
y: 1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
f1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_movement_speed2
|
||||
lores:
|
||||
0:
|
||||
- "&eMovement Speed increase walk speed. +%2"
|
||||
1:
|
||||
- "&eMovement Speed increase walk speed. +%2"
|
||||
f3:
|
||||
name: 'Movement Speed'
|
||||
coordinates:
|
||||
x: 1
|
||||
y: 1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
f2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_movement_speed6
|
||||
lores:
|
||||
0:
|
||||
- "&eMovement Speed increase walk speed. +%6"
|
||||
1:
|
||||
- "&eMovement Speed increase walk speed. +%6"
|
||||
|
||||
## G
|
||||
|
||||
g1:
|
||||
name: 'Projectile Damage'
|
||||
coordinates:
|
||||
x: 0
|
||||
y: 1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
f3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_projectile_damage2
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional skill/weapon projectile damage +%2"
|
||||
1:
|
||||
- "&eAdditional skill/weapon projectile damage +%2"
|
||||
g2:
|
||||
name: 'Projectile Damage'
|
||||
coordinates:
|
||||
x: 0
|
||||
y: 2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
g1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_projectile_damage2
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional skill/weapon projectile damage +%2"
|
||||
1:
|
||||
- "&eAdditional skill/weapon projectile damage +%2"
|
||||
g3:
|
||||
name: 'Projectile Damage'
|
||||
coordinates:
|
||||
x: -1
|
||||
y: 2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
g2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_projectile_damage6
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional skill/weapon projectile damage +%6"
|
||||
1:
|
||||
- "&eAdditional skill/weapon projectile damage +%6"
|
||||
|
||||
|
||||
|
||||
icons:
|
||||
unlocked:
|
||||
1:
|
||||
item: 'GREEN_DYE'
|
||||
locked:
|
||||
1:
|
||||
item: "BROWN_DYE"
|
||||
unlockable:
|
||||
1:
|
||||
item: "BLUE_DYE"
|
||||
fully-locked:
|
||||
1:
|
||||
item: "BLACK_DYE"
|
||||
path:
|
||||
item: "WHITE_DYE"
|
@ -0,0 +1,424 @@
|
||||
id: 'warrior-paladin'
|
||||
name: '&4Warrior&Paladin'
|
||||
type: 'custom'
|
||||
item: 'DIAMOND_AXE'
|
||||
lore:
|
||||
- '&6This skill tree is used for Warrior and Paladin class only!'
|
||||
max-point-spent: 21
|
||||
|
||||
nodes:
|
||||
|
||||
#### A
|
||||
a1:
|
||||
name: 'Attack Speed'
|
||||
coordinates:
|
||||
x: -1
|
||||
y: 2
|
||||
|
||||
max-level: 1
|
||||
is-root: true
|
||||
size: 1
|
||||
experience-table: skilltree_attack_speed5
|
||||
lores:
|
||||
0:
|
||||
- "&eThe speed at which your weapon strikes. +%5"
|
||||
1:
|
||||
- "&eThe speed at which your weapon strikes. +%5"
|
||||
a2:
|
||||
name: 'Attack Speed'
|
||||
coordinates:
|
||||
x: -2
|
||||
y: 1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
a1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_attack_speed10
|
||||
lores:
|
||||
0:
|
||||
- "&eThe speed at which your weapon strikes. +%10"
|
||||
1:
|
||||
- "&eThe speed at which your weapon strikes. +%10"
|
||||
a3:
|
||||
name: 'Attack Speed'
|
||||
coordinates:
|
||||
x: -3
|
||||
y: 0
|
||||
|
||||
parents:
|
||||
strong:
|
||||
a2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_attack_speed15
|
||||
lores:
|
||||
0:
|
||||
- "&eThe speed at which your weapon strikes. +%15"
|
||||
1:
|
||||
- "&eThe speed at which your weapon strikes. +%15"
|
||||
|
||||
## B
|
||||
|
||||
b1:
|
||||
name: 'Health Regeneration'
|
||||
coordinates:
|
||||
x: -2
|
||||
y: -1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
a3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_health_regeneration1
|
||||
lores:
|
||||
0:
|
||||
- "&eCCC"
|
||||
1:
|
||||
- "&eCCC"
|
||||
b2:
|
||||
name: 'Health Regeneration'
|
||||
coordinates:
|
||||
x: -1
|
||||
y: -2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
b1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_health_regeneration2
|
||||
lores:
|
||||
0:
|
||||
- "&eCCC"
|
||||
1:
|
||||
- "&eCCC"
|
||||
b3:
|
||||
name: 'Health Regeneration'
|
||||
coordinates:
|
||||
x: 0
|
||||
y: -2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
b2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_health_regeneration2
|
||||
lores:
|
||||
0:
|
||||
- "&eCCC"
|
||||
1:
|
||||
- "&eCCC"
|
||||
|
||||
## C
|
||||
|
||||
c1:
|
||||
name: 'Physical Damage Reduction'
|
||||
coordinates:
|
||||
x: 0
|
||||
y: -1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
b3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_physical_damage_reduction5
|
||||
lores:
|
||||
0:
|
||||
- "&eReduces physical damage In -%5"
|
||||
1:
|
||||
- "&eReduces physical damage In -%5"
|
||||
c2:
|
||||
name: 'Physical Damage Reduction'
|
||||
coordinates:
|
||||
x: -1
|
||||
y: 0
|
||||
|
||||
parents:
|
||||
strong:
|
||||
c1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_physical_damage_reduction10
|
||||
lores:
|
||||
0:
|
||||
- "&eReduces physical damage In -%10"
|
||||
1:
|
||||
- "&eReduces physical damage In -%10"
|
||||
c3:
|
||||
name: 'Physical Damage Reduction'
|
||||
coordinates:
|
||||
x: 0
|
||||
y: 1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
c2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_physical_damage_reduction15
|
||||
lores:
|
||||
0:
|
||||
- "&eReduces physical damage In -%15"
|
||||
1:
|
||||
- "&eReduces physical damage In -%15"
|
||||
|
||||
## D
|
||||
|
||||
d1:
|
||||
name: 'Parry Rating'
|
||||
coordinates:
|
||||
x: 1
|
||||
y: 1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
c3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_parry_rating5
|
||||
lores:
|
||||
0:
|
||||
- "&eThe chance to parry an attack. Parrying negates the damage and knocks the attacker back +%5"
|
||||
1:
|
||||
- "&eThe chance to parry an attack. Parrying negates the damage and knocks the attacker back +%5"
|
||||
d2:
|
||||
name: 'Parry Rating'
|
||||
coordinates:
|
||||
x: 2
|
||||
y: 1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
d1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_parry_rating5
|
||||
lores:
|
||||
0:
|
||||
- "&eThe chance to parry an attack. Parrying negates the damage and knocks the attacker back +%5"
|
||||
1:
|
||||
- "&eThe chance to parry an attack. Parrying negates the damage and knocks the attacker back +%5"
|
||||
d3:
|
||||
name: 'Parry Rating'
|
||||
coordinates:
|
||||
x: 2
|
||||
y: 2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
d2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_parry_rating10
|
||||
lores:
|
||||
0:
|
||||
- "&eThe chance to parry an attack. Parrying negates the damage and knocks the attacker back +%10"
|
||||
1:
|
||||
- "&eThe chance to parry an attack. Parrying negates the damage and knocks the attacker back +%10"
|
||||
|
||||
## E
|
||||
|
||||
e1:
|
||||
name: 'Knockback Resistance'
|
||||
coordinates:
|
||||
x: 3
|
||||
y: 2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
d3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_knockback_resistance5
|
||||
lores:
|
||||
0:
|
||||
- "&eThe chance of you to block the knockback +%5"
|
||||
1:
|
||||
- "&eThe chance of you to block the knockback +%5"
|
||||
e2:
|
||||
name: 'Knockback Resistance'
|
||||
coordinates:
|
||||
x: 4
|
||||
y: 2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
e1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_knockback_resistance5
|
||||
lores:
|
||||
0:
|
||||
- "&eThe chance of you to block the knockback +%5"
|
||||
1:
|
||||
- "&eThe chance of you to block the knockback +%5"
|
||||
e3:
|
||||
name: 'Knockback Resistance'
|
||||
coordinates:
|
||||
x: 4
|
||||
y: 1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
e2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_knockback_resistance10
|
||||
lores:
|
||||
0:
|
||||
- "&eThe chance of you to block the knockback +%10"
|
||||
1:
|
||||
- "&eThe chance of you to block the knockback +%10"
|
||||
|
||||
## F
|
||||
|
||||
f1:
|
||||
name: 'Dodge Rating'
|
||||
coordinates:
|
||||
x: 4
|
||||
y: 0
|
||||
|
||||
parents:
|
||||
strong:
|
||||
e3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_dodge_rating2
|
||||
lores:
|
||||
0:
|
||||
- "&eThe change to dodge an attack. Dodging completely negates the attack damage. +%2"
|
||||
1:
|
||||
- "&eThe change to dodge an attack. Dodging completely negates the attack damage. +%2"
|
||||
f2:
|
||||
name: 'Dodge Rating'
|
||||
coordinates:
|
||||
x: 4
|
||||
y: -1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
f1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_dodge_rating3
|
||||
lores:
|
||||
0:
|
||||
- "&eThe change to dodge an attack. Dodging completely negates the attack damage. +%3"
|
||||
1:
|
||||
- "&eThe change to dodge an attack. Dodging completely negates the attack damage. +%3"
|
||||
f3:
|
||||
name: 'Dodge Rating'
|
||||
coordinates:
|
||||
x: 4
|
||||
y: -2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
f2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_dodge_rating5
|
||||
lores:
|
||||
0:
|
||||
- "&eThe change to dodge an attack. Dodging completely negates the attack damage. +%5"
|
||||
1:
|
||||
- "&eThe change to dodge an attack. Dodging completely negates the attack damage. +%5"
|
||||
|
||||
## G
|
||||
|
||||
g1:
|
||||
name: 'Weapon Damage'
|
||||
coordinates:
|
||||
x: 3
|
||||
y: -2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
f3: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_weapon_damage1
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional on-hit weapon damage in +%1."
|
||||
1:
|
||||
- "&eAdditional on-hit weapon damage in +%1."
|
||||
g2:
|
||||
name: 'Weapon Damage'
|
||||
coordinates:
|
||||
x: 2
|
||||
y: -2
|
||||
|
||||
parents:
|
||||
strong:
|
||||
g1: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_weapon_damage2
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional on-hit weapon damage in +%1."
|
||||
1:
|
||||
- "&eAdditional on-hit weapon damage in +%1."
|
||||
g3:
|
||||
name: 'Weapon Damage'
|
||||
coordinates:
|
||||
x: 2
|
||||
y: -1
|
||||
|
||||
parents:
|
||||
strong:
|
||||
g2: 1
|
||||
|
||||
max-level: 1
|
||||
size: 1
|
||||
experience-table: skilltree_weapon_damage2
|
||||
lores:
|
||||
0:
|
||||
- "&eAdditional on-hit weapon damage in +%1."
|
||||
1:
|
||||
- "&eAdditional on-hit weapon damage in +%1."
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
icons:
|
||||
unlocked:
|
||||
1:
|
||||
item: 'GREEN_DYE'
|
||||
locked:
|
||||
1:
|
||||
item: "BROWN_DYE"
|
||||
unlockable:
|
||||
1:
|
||||
item: "BLUE_DYE"
|
||||
fully-locked:
|
||||
1:
|
||||
item: "BLACK_DYE"
|
||||
path:
|
||||
item: "WHITE_DYE"
|
2
pom.xml
2
pom.xml
@ -16,7 +16,7 @@
|
||||
<description>Offer your players a brand new RPG experience!!</description>
|
||||
|
||||
<properties>
|
||||
<revision>1.10.3-SNAPSHOT</revision>
|
||||
<revision>1.11.0-SNAPSHOT</revision>
|
||||
<downloadSources>false</downloadSources>
|
||||
<downloadJavadocs>false</downloadJavadocs>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
|
Loading…
Reference in New Issue
Block a user