Neutral Building - Add Item-Type Issues

Aniconic

I am the very model of a modern major general!
Reaction score
3
Hey guys,

I'm still in the process of making a buyable ability system using items as representations of abilities in shops.

I created some items that represented abilities, and used an (add item-type to shop) action to stock my shop because apparently you can't remove items from a shop that haven't been added via trigger. That was no big deal at all.

But when I run the game, instead of the shop just giving the hero the item (like its suppose to) it just dumps the damn thing on the ground.

On top of that, the game doesn't seem to recognize it as an item sale (I used the "unit sells an item" generic unit event).

Is there a way to fix this, or does it require some sort of massive work-around that will make the overall idea a worthless mess?

Thanks, and pardon the mild frustration.
 

Komaqtion

You can change this now in User CP.
Reaction score
469
Please show all of the triggers this problem could be related to :D
This way we can take a look at them, and see if it's a problem there, or where it is :D
 

Aniconic

I am the very model of a modern major general!
Reaction score
3
Please show all of the triggers this problem could be related to :D
This way we can take a look at them, and see if it's a problem there, or where it is :D

Sure, of course.

This part of the trigger creates one of 4 unit-type, the store required for that hero, and then adds the appropriate items to the shop with a looped item type Array.

All based on the result of a dialog button being clicked.

Trigger:
  • For each (Integer A) from 1 to 4, do (Actions)
    • Loop - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Clicked dialog button) Equal to Hero_Dialogbutton[(Integer A)]
        • Then - Actions
          • Set List = (List + 1)
          • Unit - Create 1 Hero_Selection[(Integer A)] for (Triggering player) at (Random point in Town Square <gen>) facing Default building facing degrees
          • Unit Group - Add (Last created unit) to Heroes
          • Set Player_Hero[(Player number of (Triggering player))] = (Last created unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Individual_Player[(Player number of (Triggering player))] is in User_Players) Equal to True
            • Then - Actions
              • Unit - Create 1 Hero_Trainer[(Integer A)] for Individual_Player[(Player number of (Triggering player))] at (Center of Player_Region[(Player number of (Triggering player))]) facing Default building facing degrees
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Integer A) Equal to 1
                • Then - Actions
                  • For each (Integer B) from 1 to 3, do (Actions)
                    • Loop - Actions
                      • Neutral Building - Add WarriorItem[(Integer B)] to (Last created unit) with 1 in stock and a max stock of 1
                • Else - Actions
            • Else - Actions
        • Else - Actions


This trigger works fine. It adds correct unit, its ability shop, and then adds the items in the correct order and everything.

The problem lies with what happens when someone actually clicks one of the added items from the shop. Instead of being directly given to the player after the item is payed for, it is dropped on the ground, allowing just anyone to pick up the item and nullifying this trigger, which worked just fine before outside of removing items from a shop.

Trigger:
  • Ability Sold TEST
    • Events
      • Unit - A unit Sells an item (from shop)
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Item-type of (Sold Item)) Equal to WarriorItem[1]
        • Then - Actions
          • Hero - Give (Last created item) to (Buying unit)
          • Set Button_Click_Column_One[(Player number of (Owner of (Buying unit)))] = (Button_Click_Column_One[(Player number of (Owner of (Buying unit)))] + 1)
          • Unit - Add Cluster Rockets to (Buying unit)
          • Neutral Building - Remove WarriorItem[2] from (Selling unit)
          • Neutral Building - Remove WarriorItem[3] from (Selling unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • And - All (Conditions) are true
                • Conditions
                  • Button_Click_Column_One[(Player number of (Owner of (Buying unit)))] Greater than or equal to 2
            • Then - Actions
              • Unit - Set level of Cluster Rockets for (Buying unit) to Button_Click_Column_One[(Player number of (Owner of (Buying unit)))]
            • Else - Actions
        • Else - Actions


I could switch it to "Unit acquires item" event, but then I wouldn't be able to target the selling unit within the trigger and remove it the 2 other items form the shop.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top