MythicMobsExtension icon indicating copy to clipboard operation
MythicMobsExtension copied to clipboard

Trade mechanic support for placeholder variables for dynamic trading

Open Axolottl opened this issue 3 years ago • 0 comments

Example of Dynamic trading (Trades are automatically chosen from a set of predefined trades with random prices setup) : Mob File :

  AirNomad-Trader:
    Type: Villager
    Display: "&fTrader"
    Options:
      Profession: CLERIC
      Type: DESERT
      Level: 5
    Skills:
    - skill{s=VarInitializeTraderAIR} @self ~onSpawn
    - skill{s=OneTimeTrade} ~onInteract

Skill File :

  GoldenAppleTrade:
    Cooldown: 99999
    Skills:
    - setvariable{var=caster.placeholderItem;type=STRING;value="ironcoin"}  ## Price
    - setvariable{var=caster.placeholderAmount1;type=STRING;value="14to20"} ## Amount of Price
    - setvariable{var=caster.placeholderItem1;type=STRING;value="GOLDEN_APPLE"} ## Traded Item
    - setvariable{var=caster.placeholderAmount;type=STRING;value="1"}       ## Amount of Traded Item
GoldenCarrotTrade:
    Cooldown: 99999
    Skills:
    - setvariable{var=caster.placeholderItem;type=STRING;value="ironcoin"}
    - setvariable{var=caster.placeholderAmount1;type=STRING;value="10to18"}
    - setvariable{var=caster.placeholderItem1;type=STRING;value="GOLDEN_CARROT"}
    - setvariable{var=caster.placeholderAmount;type=STRING;value="1"}
HoneyBottleTrade:
    Cooldown: 99999
    Skills:
    - setvariable{var=caster.placeholderItem;type=STRING;value="ironcoin"}
    - setvariable{var=caster.placeholderAmount1;type=STRING;value="4to6"}
    - setvariable{var=caster.placeholderItem1;type=STRING;value="HONEY_BOTTLE"}
    - setvariable{var=caster.placeholderAmount;type=STRING;value="1"}
MelonSliceTrade:
    Cooldown: 99999
    Skills:
    - setvariable{var=caster.placeholderItem;type=STRING;value="ironcoin"}
    - setvariable{var=caster.placeholderAmount1;type=STRING;value="1to3"}
    - setvariable{var=caster.placeholderItem1;type=STRING;value="MELON_SLICE"}
    - setvariable{var=caster.placeholderAmount;type=STRING;value="1"}
RandomTradeSell:
    Skills:
    - randomskill{s=GoldenAppleTrade,GoldenCarrotTrade,HoneyBottleTrade,MelonSliceTrade}
VarInitializeTraderAIR:
    Skills:
        # Default value setup if trade mechanic fails.
    - setvariable{var=caster.placeholderItem;type=STRING;value="APPLE"}
    - setvariable{var=caster.placeholderAmount1;type=STRING;value="3to6"}
    - setvariable{var=caster.placeholderItem1;type=STRING;value="ironcoin"}
    - setvariable{var=caster.placeholderAmount;type=STRING;value="1"}
        # Assign placeholders with a random trade
    - skill{s=RandomTradeSell}
        # Default value setup if trade mechanic fails.
    - setvariable{var=caster.placeholderItem;type=STRING;value="APPLE"}
    - setvariable{var=caster.placeholderAmount1;type=STRING;value="3to6"}
    - setvariable{var=caster.placeholderItem1;type=STRING;value="ironcoin"}
    - setvariable{var=caster.placeholderAmount;type=STRING;value="1"}
        # Assign placeholders with a random trade
    - skill{s=RandomTradeSell}
        # Assign placeholders to the variables
    - setvariable{var=caster.amountPrice1;type=STRING;value=<caster.var.placeholderAmount>}
    - setvariable{var=caster.resultsItem1;type=STRING;value=<caster.var.placeholderItem>}
    - setvariable{var=caster.resultsAmount1;type=STRING;value=<caster.var.placeholderAmount1>}
    - setvariable{var=caster.priceItem1;type=STRING;value=<caster.var.placeholderItem1>}
    
    OneTimeTrade:
      Cooldown: 99999
      Skills:
      - trade{1=result:<caster.var.resultsItem1>:<caster.var.resultsAmount1>,price1:<caster.var.priceItem1>:<caster.var.amountPrice1>,uses:20}

2021-03-18_13 16 23

Axolottl avatar Jul 10 '21 18:07 Axolottl