Advanced Abilities Creator

Jun 23, 2019 at 11:03 AM
Advanced Abilities Creator
  • [​IMG][​IMG] [​IMG] [​IMG] [​IMG]

    Step 1: Create the ability(top)

    There are two ways to create an ability file:
    1. You can copy other ability file and paste it (example: bubble_arrow.yml), obviously you have to change the file name, because the file name is the ability ID!
    2. Start your server and use '/abilities creator ability <ID>', example: '/abilities creator ability example_ability'

    Step 2: Set up your ability(top)

    Now you have to edit the file, all created files are in /AdvancedAbilities/abilities/creator/<file.yml>.
    Code (Text):
    # The ability ID is the file name!
    # Set to false if you don't want this ability enabled, if you don't want to remove your ability file you can disable it.
    enable: true

    # Set the name of ability, this is not the id (ID is the file name).
    name: 'Test ability'

    # Set the max level to this ability.
    max_level: 8

    # Item is displayed in the menu as <MATERIAL_ID>,<MATERIAL_DATA>,<MATERIAL_AMOUNT>,<ENCHANTMENT_BOOLEAN>.
    logo_item: '262,0,1,true'

    # Add here custom locations to disable RPG events.
    # Format: '<LOCATION>=<ID>,<ID_2>,<ID_3>...'
    # Locations [Special locations]:
    # - world [].
    # - worldguard_region [not_pvp, not_exploitable, not_buildable, *].
    # - faction [WarZone, SafeZone, *].
    # - towny [wilderness, WarZone, not_pvp, *].
    disabled_locations: []

    # This will be the ability logo description.
    description:
    - "&7DESCRIPTION"


    level:
      '1':
        # This depends on RPG system, players need to have this exp to get this level.
        xp_needed: 2000

        # You can customize this purchase adding conditions.
        # Conditions:
        # - permission: Set a permission to buy this level, example: 'permission=example.example'.
        # - price: Set a price to buy this level, example: 'price=1000'
        # - currency: Set a currency type to the price, default is 'vault', all: [none, vault, playerpoints] also you can hook your money plugin using the API.
        # - by_items: Add items like price, example: 'by_items=5,0,1; 276,0,1,ENCHANTMENTS=KNOCKBACK:1-SHARPNESS:1'. Use ';' to add another item.
        # - by_level: Set a player xp level like price, example: 'by_level=50'.
        buying_options:
        - price=500
        - currency=Vault

        # This will be the ability level description.
        description:
        - "&7DESCRIPTION"
      '2':
        # This depends on RPG system, players need to have this exp to get this level.
        xp_needed: 100

        # You can customize this purchase adding conditions.
        # Conditions:
        # - permission: Set a permission to buy this level, example: 'permission=example.example'.
        # - price: Set a price to buy this level, example: 'price=1000'
        # - currency: Set a currency type to the price, default is 'vault', all: [none, vault, playerpoints] also you can hook your money plugin using the API.
        # - by_items: Add items like price, example: 'by_items=5,0,1; 276,0,1,ENCHANTMENTS=KNOCKBACK:1-SHARPNESS:1'. Use ';' to add another item.
        # - by_level: Set a player xp level like price, example: 'by_level=50'.
        buying_options:
        - price=1000
        - currency=Vault

        # This will be the ability level description.
        description:
          - "&7DESCRIPTION"
      '3':
        # This depends on RPG system, players need to have this exp to get this level.
        xp_needed: 4000

        # You can customize this purchase adding conditions.
        # Conditions:
        # - permission: Set a permission to buy this level, example: 'permission=example.example'.
        # - price: Set a price to buy this level, example: 'price=1000'
        # - currency: Set a currency type to the price, default is 'vault', all: [none, vault, playerpoints] also you can hook your money plugin using the API.
        # - by_items: Add items like price, example: 'by_items=5,0,1; 276,0,1,ENCHANTMENTS=KNOCKBACK:1-SHARPNESS:1'. Use ';' to add another item.
        # - by_level: Set a player xp level like price, example: 'by_level=50'.
        buying_options:
        - price=2000
        - currency=Vault

        # This will be the ability level description.
        description:
          - "&7DESCRIPTION"
      '4':
        # This depends on RPG system, players need to have this exp to get this level.
        xp_needed: 6500

        # You can customize this purchase adding conditions.
        # Conditions:
        # - permission: Set a permission to buy this level, example: 'permission=example.example'.
        # - price: Set a price to buy this level, example: 'price=1000'
        # - currency: Set a currency type to the price, default is 'vault', all: [none, vault, playerpoints] also you can hook your money plugin using the API.
        # - by_items: Add items like price, example: 'by_items=5,0,1; 276,0,1,ENCHANTMENTS=KNOCKBACK:1-SHARPNESS:1'. Use ';' to add another item.
        # - by_level: Set a player xp level like price, example: 'by_level=50'.
        buying_options:
        - price=2500
        - currency=Vault

        # This will be the ability level description.
        description:
          - "&7DESCRIPTION"
      '5':
        # This depends on RPG system, players need to have this exp to get this level.
        xp_needed: 9000

        # You can customize this purchase adding conditions.
        # Conditions:
        # - permission: Set a permission to buy this level, example: 'permission=example.example'.
        # - price: Set a price to buy this level, example: 'price=1000'
        # - currency: Set a currency type to the price, default is 'vault', all: [none, vault, playerpoints] also you can hook your money plugin using the API.
        # - by_items: Add items like price, example: 'by_items=5,0,1; 276,0,1,ENCHANTMENTS=KNOCKBACK:1-SHARPNESS:1'. Use ';' to add another item.
        # - by_level: Set a player xp level like price, example: 'by_level=50'.
        buying_options:
        - price=4000
        - currency=Vault

        # This will be the ability level description.
        description:
        - "&7DESCRIPTION"
      '6':
        # This depends on RPG system, players need to have this exp to get this level.
        xp_needed: 12000

        # You can customize this purchase adding conditions.
        # Conditions:
        # - permission: Set a permission to buy this level, example: 'permission=example.example'.
        # - price: Set a price to buy this level, example: 'price=1000'
        # - currency: Set a currency type to the price, default is 'vault', all: [none, vault, playerpoints] also you can hook your money plugin using the API.
        # - by_items: Add items like price, example: 'by_items=5,0,1; 276,0,1,ENCHANTMENTS=KNOCKBACK:1-SHARPNESS:1'. Use ';' to add another item.
        # - by_level: Set a player xp level like price, example: 'by_level=50'.
        buying_options:
        - price=6500
        - currency=Vault

        # This will be the ability level description.
        description:
        - "&7DESCRIPTION"
      '7':
        # This depends on RPG system, players need to have this exp to get this level.
        xp_needed: 15500

        # You can customize this purchase adding conditions.
        # Conditions:
        # - permission: Set a permission to buy this level, example: 'permission=example.example'.
        # - price: Set a price to buy this level, example: 'price=1000'
        # - currency: Set a currency type to the price, default is 'vault', all: [none, vault, playerpoints] also you can hook your money plugin using the API.
        # - by_items: Add items like price, example: 'by_items=5,0,1; 276,0,1,ENCHANTMENTS=KNOCKBACK:1-SHARPNESS:1'. Use ';' to add another item.
        # - by_level: Set a player xp level like price, example: 'by_level=50'.
        buying_options:
        - price=8800
        - currency=Vault

        # This will be the ability level description.
        description:
        - "&7DESCRIPTION"
      '8':
        # This depends on RPG system, players need to have this exp to get this level.
        xp_needed: 18500

        # You can customize this purchase adding conditions.
        # Conditions:
        # - permission: Set a permission to buy this level, example: 'permission=example.example'.
        # - price: Set a price to buy this level, example: 'price=1000'
        # - currency: Set a currency type to the price, default is 'vault', all: [none, vault, playerpoints] also you can hook your money plugin using the API.
        # - by_items: Add items like price, example: 'by_items=5,0,1; 276,0,1,ENCHANTMENTS=KNOCKBACK:1-SHARPNESS:1'. Use ';' to add another item.
        # - by_level: Set a player xp level like price, example: 'by_level=50'.
        buying_options:
        - price=10000
        - currency=Vault

        # This will be the ability level description.
        description:
        - "
    &7DESCRIPTION"

    Step 3: Create your custom event!(top)

    This is the most important step, now you have to configure how your ability works!

    First of all, these commands will help you creating your ability: '/abilities creator events, options, conditions, effects, info', using these commands you can see the available types. Using 'info' command you can see server values, for example, particles, sounds, potion names, etc. (Each version has different name types!).

    • Variables and placeholders:

    In CONDITIONS you can use '!INVERSE' to inverse the condition, example with 'HEARTS':
    'HEARTS=5' condition checks if the player has more hearts than the value (in this case 5), if you set !INVERSE variable then the condition checks if the player has less hearts than the value (5), example:
    Code (Text):
    HEARTS = 5
    PLAYER_HEARTS = 4

    normal:
    {PLAYER_HEARTS > (Greater than) HEARTS} = FALSE

    !INVERSE:
    {PLAYER_HEARTS < (Less than) HEARTS} = TRUE
    If the condition is false then the ability will not be activated!

    Custom placeholders:

    Code (Text):
    {SELF_HEALTH}, {SELF_MAX_HEALTH}, {ENTITY_HEALTH}, {ENTITY_MAX_HEALTH}.
    How to use:
    Code (Text):
    CHANCE={SELF_HEALTH}

    Arithmetic Operators symbols:


    Code (Text):
    Addition: 2 + 2
    Subtraction: 2 - 2
    Multiplication: 2 * 2
    Division: 2 / 2
    Exponentiation: 2 ^ 2
    Unary Minus, Plus(Sign Operators): +2 - (-2)
    Modulo: 2 % 2
    How to use:
    Code (Text):
    CHANCE=({SELF_HEALTH}/5)*2

    Targets:

    Using '/abilities creator events' command you can see all targets of events.

    How target works?

    Conditions, effects and options use target location, entity and others, example:

    Code (Text):
    TARGET=DAMAGED_ENTITY:SPECIAL_PARTICLES=CIRCLE,SPLASH,0,0.5,0,10,0.5
    This spawns a circle of particles in the DAMAGED_ENTITY location, (example: if player hits a cow then cow will be the target (DAMAGED_ENTITY)).
    Code (Text):
    TARGET=SELF:SPECIAL_PARTICLES=CIRCLE,SPLASH,0,0.5,0,10,0.5
    In this case, plugin uses the player location to spawn particles instead of the damaged entity.

    Levels:

    Always in all lines you have to set 'LEVEL=X', using this you can customize what your ability does in each level, example:
    Code (Text):
    - 'LEVEL=1:CHANCE=3'
    - 'LEVEL=2:CHANCE=4'
    - 'LEVEL=3:CHANCE=5'
    - 'LEVEL=4:CHANCE=7'
    - 'LEVEL=5:CHANCE=9'
    - 'LEVEL=6:CHANCE=11'
    - 'LEVEL=7:CHANCE=13'
    - 'LEVEL=8:CHANCE=20'
    Events:

    Using '/abilities creator events' command you can see all available events in your server version.

    Set the event you want to use, for example:
    Code (Text):
    event: MeleeHitEvent
    Also events can have secondary_events, (example: ShootBowEvent has ArrowHitEvent).
    Code (Text):
    creator:
      events:
        '1':
          event: ShootBowEvent
          conditions: []
          effects: []
          options: []
          secondary_events:
            '1':
              event: ArrowHitEvent
              conditions: []
              effects: []


    Now you know how this system works! It only remains create your custom event!

    Here you can see the events of 'bubble_arrow' ability:
    Code (Text):
    creator:
      events:
        '1':
          event: ShootBowEvent
          conditions:
          - 'LEVEL=1:CHANCE=5'
          - 'LEVEL=2:CHANCE=10'
          - 'LEVEL=3:CHANCE=15'
          - 'LEVEL=4:CHANCE=20'
          - 'LEVEL=5:CHANCE=25'
          - 'LEVEL=6:CHANCE=30'
          - 'LEVEL=7:CHANCE=35'
          - 'LEVEL=8:CHANCE=40'
          effects: []
          options:
          - 'LEVEL=1:ACTION_BAR_MESSAGE:PARTICLES=MOBSPAWNER_FLAMES'
          - 'LEVEL=2:ACTION_BAR_MESSAGE:PARTICLES=MOBSPAWNER_FLAMES'
          - 'LEVEL=3:ACTION_BAR_MESSAGE:PARTICLES=MOBSPAWNER_FLAMES'
          - 'LEVEL=4:ACTION_BAR_MESSAGE:PARTICLES=MOBSPAWNER_FLAMES'
          - 'LEVEL=5:ACTION_BAR_MESSAGE:PARTICLES=MOBSPAWNER_FLAMES'
          - 'LEVEL=6:ACTION_BAR_MESSAGE:PARTICLES=MOBSPAWNER_FLAMES'
          - 'LEVEL=7:ACTION_BAR_MESSAGE:PARTICLES=MOBSPAWNER_FLAMES'
          - 'LEVEL=8:ACTION_BAR_MESSAGE:PARTICLES=MOBSPAWNER_FLAMES'
          secondary_events:
            '1':
              event: ArrowHitEvent
              conditions: []
              effects:
              - 'LEVEL=1:TARGET=ARROW:RADIUS_POTION_EFFECT=LEVITATION,0,20,2.1:RADIUS_DAMAGE=0,2.1'
              - 'LEVEL=2:TARGET=ARROW:RADIUS_POTION_EFFECT=LEVITATION,0,26,2.5:RADIUS_DAMAGE=0,2.5'
              - 'LEVEL=3:TARGET=ARROW:RADIUS_POTION_EFFECT=LEVITATION,0,32,2.7:RADIUS_DAMAGE=0,2.7'
              - 'LEVEL=4:TARGET=ARROW:RADIUS_POTION_EFFECT=LEVITATION,0,38,3:RADIUS_DAMAGE=0,3'
              - 'LEVEL=5:TARGET=ARROW:RADIUS_POTION_EFFECT=LEVITATION,0,44,3.2:RADIUS_DAMAGE=0,3.2'
              - 'LEVEL=6:TARGET=ARROW:RADIUS_POTION_EFFECT=LEVITATION,0,50,3.4:RADIUS_DAMAGE=0,3.4'
              - 'LEVEL=7:TARGET=ARROW:RADIUS_POTION_EFFECT=LEVITATION,0,56,3.8:RADIUS_DAMAGE=0,3.8'
              - 'LEVEL=8:TARGET=ARROW:RADIUS_POTION_EFFECT=LEVITATION,0,60,4:RADIUS_DAMAGE=0,4'
              # Add here options.
              options:
              - 'LEVEL=1:TARGET=ARROW:SOUND=ENTITY_BLAZE_HURT,0.7,0.3:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,5,3:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,2.5,2:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,1.5,1'
              - 'LEVEL=2:TARGET=ARROW:SOUND=ENTITY_BLAZE_HURT,0.7,0.3:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,6.5,3:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,3,2:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,2.5,1'
              - 'LEVEL=3:TARGET=ARROW:SOUND=ENTITY_BLAZE_HURT,0.7,0.3:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,8,3:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,4.5,2:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,3,1'
              - 'LEVEL=4:TARGET=ARROW:SOUND=ENTITY_BLAZE_HURT,0.7,0.3:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,10,3:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,6,2:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,4,1'
              - 'LEVEL=5:TARGET=ARROW:SOUND=ENTITY_BLAZE_HURT,0.7,0.3:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,12,3:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,8,2:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,5,1'
              - 'LEVEL=6:TARGET=ARROW:SOUND=ENTITY_BLAZE_HURT,0.7,0.3:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,14,3:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,10,2:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,6,1'
              - 'LEVEL=7:TARGET=ARROW:SOUND=ENTITY_BLAZE_HURT,0.7,0.3:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,16,3:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,12,2:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,7,1'
              - 'LEVEL=8:TARGET=ARROW:SOUND=ENTITY_BLAZE_HURT,0.7,0.3:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,18,3:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,14,2:SPECIAL_PARTICLES=CIRCLE,FLAME,0,0,0,8,1'
     





    Events, conditions, effects and options:
    Code (Text):
    Events (4):
    - BlockBreakEvent [] TARGETS: {SELF, BLOCK}
    - CommandEvent [] TARGETS: {SELF}
    - DamageEvent [] TARGETS: {SELF}
    - MeleeHitEvent [] TARGETS: {SELF, DAMAGED_ENTITY}
    - ShootBowEvent [ArrowHitEvent] TARGETS: {SELF, ARROW, DAMAGED_ENTITY}

    Effects (17):
    - CHEST=<RANDOM_SLOT_BOOLEAN>,<REGENERATE_BLOCK>,<DURATION_IN_SECONDS>,<CHANCE_DOUBLE#MATERIAL#DATA#AMOUNT;CHANCE_DOUBLE#MATERIAL_2#DATA#AMOUNT>
    - DAMAGE=<DOUBLE_NUMBER>
    - DROP_ITEM=<MATERIAL>,<DATA>,<AMOUNT>,<NAME>
    - ENCHANTMENT_HAND_ITEM=<ENCHANTMENT_TYPE>,<LEVEL>,<TIME>
    - EXPLOSION=<DOUBLE_NUMBER>
    - HEAL=<DOUBLE_NUMBER>
    - POTION_EFFECT=<NAME>,<LEVEL_NUMBER_INTEGER>,<TIME_TICKS>
    - PUSH=<FORCE_DOUBLE>,<Y_FORCE>
    - RADIUS_DAMAGE=<DAMAGE_DOUBLE_NUMBER>,<RADIUS_DOUBLE_NUMBER>
    - RADIUS_HEAL=<HEAL_DOUBLE_NUMBER>,<RADIUS_DOUBLE_NUMBER>
    - RADIUS_POTION_EFFECT=<NAME>,<LEVEL>,<TIME_TICKS>,<RADIUS>
    - RADIUS_PUSH=<FORCE_DOUBLE>,<Y_FORCE>,<RADIUS>
    - REDUCE_DAMAGE=<DOUBLE_NUMBER>
    - TELEPORTATION
    - THUNDER=<ADD_X>,<ADD_Y>,<ADD_Z>
    - TNT_THROW=<DOUBLE_NUMBER>
    - VEHICLE=<ENTITY_TYPE>,<TIME_TICKS>

    Conditions (14):
    - BLOCK=<MATERIAL>
    - BLOCKING
    - BOWPOWER=<NUMBER_DOUBLE>
    - CAUSE=<DAMAGE_CAUSE>
    - CHANCE=<CHANCE_NUMBER_INTEGER>
    - COOLDOWN
    - DAMAGE=<NUMBER_DOUBLE>
    - DISTANCE=<NUMBER_DOUBLE>
    - ENTITY_TYPE=<ENTITY_TYPE>
    - HAS_POTION_EFFECT=<NAME>
    - HEARTS=<NUMBER_DOUBLE>
    - ITEMINHAND=<MATERIAL>
    - ON_BLOCK=<MATERIAL>
    - SNEAKING

    Options (7):
    - ACTION_BAR_MESSAGE
    - EXECUTE_COMMAND=<FROM_CONSOLE_BOOLEAN>,<COMMAND>
    - PARTICLES=<PARTICLES_TYPE>,<ADD_X>,<ADD_Y>,<ADD_Z>
    - PLAYER_CHAT=<TEXT>
    - SOUND=<SOUND_NAME>,<VOLUME_DOUBLE>,<PITCH_DOUBLE>
    - SPECIAL_PARTICLES=<SPECIAL_PARTICLES_TYPE>,<PARTICLES_TYPE>,<ADD_X>,<ADD_Y>,<ADD_Z>,<AMOUNT_NUMBER>,<RADIUS_NUMBER>
    - START_COOLDOWN=<DOUBLE_NUMBER>

    SpecialParticles (5):
    CIRCLE, SPHERE, HELIX, TORNADO, CUBE.
     
    If you're buyer you can request effects, conditions, events, options.
  • Loading...
  • Loading...