Plugin which brings RPG features into minecraft.
20

Skill Trees

  • Name: Unique id., which may be referenced in any Class configuration.
  • Skills: A config. object which contains list of skills.
  • AsciiMap: An ascii map which is used to build the inventory view of the skill tree
Skills
Skills: [
    {
        SkillId: "ntrpg:bandage"
        MinPlayerLevel: 1
        MaxSkillLevel: 4
        Conflicts: [

        ]
        SoftDepends: [

        ]
        HardDepeneds: [

        ]
        SkillSettings: {
            healed-amount: 4,
            range: 3,
            range_levelbonus: 0,
            healed-amount_levelbonus: 2,
            manacost: 20
            manacost_levelbonus: 5,
            cooldown: 30000,
            cooldown_levelbonus: -500
        }
        SkillTreeId: 1
    },
    {
        SkillId: "ntrpg:arrowstorm"
        MinPlayerLevel: 2
        MaxSkillLevel: 4
        Conflicts: [

        ]
        SoftDepends: [
            "ntrpg:Bandage": 1
        ]
        HardDepeneds: [

        ]
        SkillSettings: {
            damage: 6,
            period: 100,
            min-arrows_levelbonus: 1,
            period_levelbonus: -10,
            min-arrows: 2,
            max-arrows: 7,
            damage_levelbonus: 2,
            max-arrow_levelbonus: 2,
            manacost: 10
            manacost_levelbonus: 4,
            cooldown: 60000,
            cooldown_levelbonus: -10000
            combination: RL
        }
        SkillTreeId: 2
    },
    {
        SkillId: "ntrpg:grapplinghook"
        MinPlayerLevel: 1
        MaxSkillLevel: 3
        Conflicts: [

        ]
        SoftDepends [

        ]
        HardDepeneds [

        ]
        SkillSettings: {
            range: 8,
            range_levelbonus: 4,
            manacost: 10,
            manacost_levelbonus: 5
        }
        SkillTreeId: 91
    },
    {
        SkillId: "ntrpg:dodge"
        MinPlayerLevel: 3
        MaxSkillLevel: 4
        Conflicts: [
              
        ]
        SoftDepends: [
            "ntrpg:GrapplingHook":2
        ]
        HardDepeneds: [
        ]
        SkillSettings: {
            chance: 5,
            chance_levelbonus: 5
        }
        SkillTreeId: 92
    }
]
  • MinPlayerLevel - Player has to have same or higher level to be able to learn the skil
  • MaxSkillLevel - How much skillpoints may player invest in the skill
    • The real skill level may be incremented by
      • all_skills_bonus property
      • “Tempoar” level bonus. This kind of bonus might have lots of sources - Custom enchantments/effects, specializations etc.
  • Conflicts - If a player already has a skill in this array then wont be able to learn the skills defining the array.
    • If you want to efficiently stop player from being able to learn two skills at the same time the conflict has to be defined on both “sides”
    • There is no validation if when a player joins a game. If you change your skilltree later player’s will keep all conflicting keys (same rule applies for HardDepends and SoftDepends configuration)
  • HardDepends - Before being able to learn the skill, the player has to have at least one skillpoint in all skills in the array
  • SoftDepneds - Before being able to learn the skill, the player has to have at least one skillpoint in any skill in the array
  • SkillSettings - The main configuration for the skill,
    • There always has to be all possible configuration nodes.
    • You can find configuration nodes in the dump file in the config/nt-rpg folder
  • SkillTreeId - Unique id (numeric) which is used as a reference to the skill in the AsciiMap
AsciiMap
  • AsciiMap - To write this ascii array might be a little bit tricky
    • X - initial point which is displayed as a center after typing /skilltree command
    • Any non number character is taken as a blank space in the menu
    • All rows has to have same amount of “columns” (any number is taken as one dot/column, even numbers with two and more digits) i will try to make this simpler in future
    • Its possible to reload this map at any time via the reload command
    • - and | will be displayed as wooden sticks with custom display names, again i suggest you to use optifine’s CIT & custom resource pack to make this looks better
AsciiMap: [
...................
.....91-2...........
.....|.X...........
.....3-11............        
]

Generic Skills

  • Sharing possible configuration nodes as any other skill, expect SkillSettings section

  • types

    • spec
    • item-access
    • attribute
    • property
Spec
  • If you would like to have some class specialization this is the way to go.
    {
        SkillId: "mynamespace:someid"
        Type: spec
        Tier: 1
	EnterCommands: []
        ExitCommands: []
    }
Property
    {
        SkillId: "mynamespace:someid"
        Type: property     
    	MinPlayerLevel: 3
    	MaxSkillLevel: 1
    	type: property
    	Properties: [
    		{
    			level: 1
    			property-name: ice_damage_bonus_mult
    			value: 0.7
    		}
    	]
    	SkillTreeId: 5
    }

Item access
{
        Type: item-access
        SkillId: "mynamespace:someid"
        MinPlayerLevel: 2
        MaxSkillLevel: 1
	type: item-access
        Items: [
    	    {
		level: 1
		items: [
			"DIAMOND_AXE;7;Battle Axe"
		]
	    }
        ]
        SkillTreeId: 4
    }

gui.conf

within the gui.conf file you can define skills to change their icon within the skilltree; this is useful when using the CIT feature of Optifine.

You can use either the SkillId: or the Name: of the skill; this must be in a “Skill:Id”:“item:id” or "Name:“item:id” format.

SkillId: Example:

    "ntrpg:bandage":"minecraft:potion"
    "ntrpg:grapplinghook":"minecraft:bow"

‘Name:’ Example:

    "Rage":"minecraft:stained_glass_pane"
    "Flame Sphere":"minecraft:fire_charge"

Category: Role Playing

Published on Jul 2, 2017

views

stars

watchers

total downloads

Licensed under GNU General Public License (GPL)

Promoted Versions

Members