Item Combining System is Glitching

Heavy-Gear

New Member
Reaction score
7
In the game I'm currently working on, some of the heroes have the an ability spellbook used for creating items (similar to island troll tribes). Instead of an ITT-like system of knowing what makes what, my map uses an ability within a spellbook that you click. If you have the correct items in your inventory (no particular order) it will create the item:

Code:
AcquireItem
    Events
        Unit - A unit Acquires an item
    Conditions
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Item-type of (Item being manipulated)) Equal to Stone
            Then - Actions
                Set StoneCount[(Player number of (Owner of (Triggering unit)))] = (StoneCount[(Player number of (Owner of (Triggering unit)))] + 1)
                Game - Display to (All players) the text: (String(StoneCount[1]))
            Else - Actions
                Do nothing

Code:
LosesItem
    Events
        Unit - A unit Loses an item
    Conditions
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Item-type of (Item being manipulated)) Equal to Stone
            Then - Actions
                Set StoneCount[(Player number of (Owner of (Triggering unit)))] = (StoneCount[(Player number of (Owner of (Triggering unit)))] - 1)
                Game - Display to (All players) the text: (String(StoneCount[1]))
            Else - Actions
                Do nothing

Code:
CreateItem
    Events
        Unit - A unit Begins casting an ability
    Conditions
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Ability being cast) Equal to Build Hammerstone 
                StoneCount[(Player number of (Owner of (Triggering unit)))] Greater than or equal to 2
            Then - Actions
                Item - Remove (Item carried by (Triggering unit) of type Stone)
                Hero - Create Hammerstone and give it to (Triggering unit)
                Item - Remove (Item carried by (Triggering unit) of type Stone)
                Game - Display to (All players) the text: (String(StoneCount[1]))
                Game - Display to (All players) the text: Hammer Time!
            Else - Actions
                Do nothing
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Ability being cast) Equal to Build Sharpened Stone 
                StoneCount[(Player number of (Owner of (Triggering unit)))] Greater than or equal to 1
            Then - Actions
                Item - Remove (Item carried by (Triggering unit) of type Stone)
                Hero - Create Sharpened Stone and give it to (Triggering unit)
                Game - Display to (All players) the text: (String(StoneCount[1]))
                Game - Display to (All players) the text: Sharpie!
            Else - Actions
                Do nothing

EDIT: Forgot to say what actually happens. Well, regardless of whether you use the Sharpened Stone or Hammer Stone ability, the outcome is the same; If you have only a single stone or two stones in your inventory it will make a sharpened stone out of one of them(removing one stone/giving a sharpened stone). If you have three stones or more it will make both types of stone and remove a surprisingly appropriate three stones from the inventory.

I think the problem is with the "(Ability being cast) Equal to Build Sharpened Stone" but I don't know another way of doing this. Any help appreciated :)

btw, the text displays are for testing purposes
 

Heavy-Gear

New Member
Reaction score
7
Nope I've tried. The problem remains the same; that both triggers will go at the same time because only the amount of stones condition appears to be working. Theres something wrong with my ability comparison, it's just not registering..
 

FrozenShadow

I am a WolfieeifloW fan.
Reaction score
75
I do not see any problem, thought, it must be my tired eyes, I haven't slept in 1 day, I think I should go take a nap, I haven't found any problems with yours though.
 

Dameon

"All the power in the world resides in the eyes"
Reaction score
127
Here you go hope this helps, with it set up this way you dont need stonecount to be an array.



Code:
CreateItem
    Events
        Unit - A unit Begins casting an ability
    Conditions
    Actions
                
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Item-type of (Item Held By Triggering unit)) Equal to Stone
                StoneCount Equal to 0
            Then - Actions
                Set StoneCount= 1
                Game - Display to (All players) the text: (String(StoneCount)
            Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Item-type of (Item Held By Triggering unit)) Equal to Stone
                StoneCount Equal to 1
            Then - Actions
                Set StoneCount= 2
                Game - Display to (All players) the text: (String(StoneCount)
            Else - Actions
                Do nothing

If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Ability being cast) Equal to Build Sharpened Stone 
                StoneCount greater then 0
            Then - Actions
                Item - Remove (Item carried by (Triggering unit) of type Stone)
                Hero - Create Sharpened Stone and give it to (Triggering unit)
                Game - Display to (All players) the text: (String(StoneCount)
                Game - Display to (All players) the text: Sharpie!
            Else - Actions
                Do nothing

If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Ability being cast) Equal to Build Hammerstone 
                StoneCount equal to 2
            Then - Actions
                Item - Remove (Item carried by (Triggering unit) of type Stone)
                Item - Remove (Item carried by (Triggering unit) of type Stone)
                Hero - Create Hammerstone and give it to (Triggering unit)
                Game - Display to (All players) the text: (String(StoneCount)
                Game - Display to (All players) the text: Hammer Time!
            Else - Actions
                Do nothing
 

Heavy-Gear

New Member
Reaction score
7
I think you misunderstood me Dameon, there's nothing wrong with the stonecount variable. 1) It's an array to allow for multiple players and 2) It seems to work fine. Thanks for your help though :)

EDIT: Nvm, I think I've worked it out. I based both of my abilities off of the same ability and they're both casting at the same time. Thx for your help guys :)
 
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