- Joined
- Feb 5, 2017
- Messages
- 32
I've recently made a Recipe System, it's easy to use and flexible, but it works as long as you don't have recipes with similar items, which is bogging me.
The Recipe System
Problem:
I can redo the system on JASS but i think it might ruin the easy process of making a recipe with the base trigger.
Is there any solution to this system without recurring to a complete overhaul? I was thinking of registering the recipes on init and using hashtables, but wouldn't it cause leaks?
The Recipe System
Problem:
-
Inventory System Run
- Events
- Conditions
-
Actions
- Set InventorySystem_Recap = 0
- -------- Conteo de los objetos --------
-
For each (Integer A) from 1 to 6, do (Actions)
-
Bucle: Actions
- Set InventorySystem_GoodToGo = False
-
For each (Integer B) from 1 to InventorySystem_Max, do (Actions)
-
Loop: Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If: Conditions
- InventorySystem_GoodToGo Equal to False
- (Item-type of (Item carried by (Triggering unit) in slot (Integer A))) Equal to InventorySystem_Objects[(Integer B)]
-
Then: Actions
- Set InventorySystem_GoodToGo = True
- Set InventorySystem_Recap = (InventorySystem_Recap + 1)
- Else: Actions
-
If: Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop: Actions
-
Bucle: Actions
- -------- Creación del objeto --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If: Conditions
- InventorySystem_Recap Equal to InventorySystem_Max
-
Then: Actions
-
For each (Integer A) from 1 to InventorySystem_Max, do (Actions)
-
Loop: Actions
- Item - Remove (Item carried by (Triggering unit) of type InventorySystem_Objects[(Integer A)])
-
Loop: Actions
- Special Effect - Create a special effect at (Position of (Triggering unit)) using InventorySystem_Model
- Special Effect - Destroy (Last created special effect)
- Hero - Create InventorySystem_FinalObject and give it to (Triggering unit)
-
For each (Integer A) from 1 to InventorySystem_Max, do (Actions)
- Else: Actions
-
If: Conditions
-
Item Base A
-
Events
- Unit - A unit Acquires an item
-
Conditions
-
Or - Any (Conditions) are true
-
Conditions
- (Item-type of (Item being manipulated)) Equal to Ring of Protection +1
- (Item-type of (Item being manipulated)) Equal to Rock
-
Conditions
-
Or - Any (Conditions) are true
-
Actions
- -------- How many items are we combining?--------
- Set InventorySystem_Max = 2
- -------- Object List --------
- Set InventorySystem_Objects[1] = Ring of Protection +1
- Set InventorySystem_Objects[2] = Rock
- -------- Final Item --------
- Set InventorySystem_FinalObject = Infernal Stone
- -------- Model. --------
- Set InventorySystem_Model = Abilities\Spells\Items\AIlm\AIlmTarget.mdl
- -------- - --------
- -------- Detonador para las recetas --------
- -------- No borrar --------
- Trigger - Run Inventory System Run <gen> (checking conditions)
-
Events
I can redo the system on JASS but i think it might ruin the easy process of making a recipe with the base trigger.
Is there any solution to this system without recurring to a complete overhaul? I was thinking of registering the recipes on init and using hashtables, but wouldn't it cause leaks?
Last edited: