• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!

The_Clam's Perpetual item storing system

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
This system is mate entirely with GUI, and supports 1 hero per player, and 12 players. I think it's then called MUI, right? Well, read below for ALOT of information. This system is extremely simple, and supports near-infinite items stored. Primarily made for Forgotten_Warlord - and Titans of Archia

This systems takes you ALL THE WAY through importing and setting up. - and is somewhat easy to use, even for beginning map makers - although i did a reference to a Unit-array...

Taken from the in-spell information comment:


Hello!

Welcome to my, The_Clam, aka Gamecrafter_DK's Perpetual item storing system!

Well - I've posted notes in the comment area above the triggers - to guide you to a successful 'installment' of this system.

-----------------------

How to import:
Copy the 'Bag system' Folder, open your map,

Skip this if you already have variablecreation on paste activated, if not, please do, it saves you a lot of trouble.
Find 'preferences' under the 'file' tab, click it, go to the 'general' tab in the new window, and check 'Automatically crate unknown variables while pasting trigger data'

Paste the folder into your maps triggers, and voila! you're done - read the 'notes' to configure your system into working.

-----------------------

Compatible:
This system stores items. And carries over these values:
Custom values,
Charges,
Owners,
Item type and
Label for easy access.

It doesn't carry damage done to the items over.

-----------------------

How to use:
To store items with this system, press ESC - this will store the last item in the player's hero's inventory.
Any player can write -id to check what items that player has stored, as well as getting a label for all the items that player has stored.
Any player may write -w X Where X is the label of the item that is desired to be withdrawn.

-----------------------

Notes:
The 'Hero' variable must be changed to the unit (array?) variable, that you (presumably) use, to keep track of the heroes of the players.
You must change all instances of my 'hero' variable, to suit your map - or it won't work.
In the initialization trigger - I set the hero to be my preset unit - remove that trigger, as you (presumably) want to set your hero variable by yourself.

If your map tends to grant the players alot of items - you might want to enable the wait action in 'Display' - to let the player properly access all items.
- or else only 16 items stored this way will be visible, when writing -id.

-----------------------

Changelog:
v1.00
Launch

-----------------------

Credits:
The_Clam / Gamecrafter_DK - Made it from scratch
Forgotten_Warlord for inspiring me to do it.

-----------------------

Ideas:
Transferring items from one player to another.
Selling through this system.
getting more information on the items in the storage system.

-----------------------



Keywords:
Bag, easy, system, storing, charges, store, item, items, storage, bank, withdraw, withdrawal, get, gain, label, easily, commands, GUI.
Contents

Just another Warcraft III map (Map)

Reviews
12th Dec 2015 IcemanBo: Too long time as NeedsFix. Rejected. 19:18, 17th Jun 2010 Hanky: There are two points that have to be improved: - the system is to small, add more possibilities - never use custom item values in a system/spell After...

Moderator

M

Moderator

12th Dec 2015
IcemanBo: Too long time as NeedsFix. Rejected.

19:18, 17th Jun 2010
Hanky:
There are two points that have to be improved:
- the system is to small, add more possibilities
- never use custom item values in a system/spell

After you have improved those stuff message me or one of the other spell moderators.
 
Level 19
Joined
Feb 4, 2009
Messages
1,313
I really like your idea
...and made my own GUI item storing system
feel free to upload it if you like it but please mention me :grin:
things to do:
-set item icons
-(optional) prevent swapping items between heroes of one player

edit: added screenshot

  • Events
    • Time - Elapsed game time is 0.00 seconds
  • Conditions
  • Actions
    • -------- Setup multiboard --------
    • Multiboard - Create a multiboard with 3 columns and 32 rows, titled Stuff that's in you...
    • Set BagSys_Multiboard = (Last created multiboard)
    • Multiboard - Set the text for BagSys_Multiboard item in column 1, row 1 to Slot
    • Multiboard - Set the text for BagSys_Multiboard item in column 2, row 1 to Item-Type
    • Multiboard - Set the text for BagSys_Multiboard item in column 3, row 1 to Charges
    • Multiboard - Set the display style for BagSys_Multiboard item in column 2, row 1 to Show text and Hide icons
    • For each (Integer i) from 1 to 32, do (Actions)
      • Loop - Actions
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • i Not equal to 1
          • Then - Actions
            • Multiboard - Set the text for BagSys_Multiboard item in column 1, row i to (String((i - 1)))
            • Multiboard - Set the text for BagSys_Multiboard item in column 3, row i to 0
          • Else - Actions
        • Multiboard - Set the width for BagSys_Multiboard item in column 1, row i to 2.00% of the total screen width
        • Multiboard - Set the width for BagSys_Multiboard item in column 2, row i to 10.00% of the total screen width
        • Multiboard - Set the width for BagSys_Multiboard item in column 3, row i to 3.00% of the total screen width
        • Multiboard - Set the display style for BagSys_Multiboard item in column 1, row i to Show text and Hide icons
        • Multiboard - Set the display style for BagSys_Multiboard item in column 3, row i to Show text and Hide icons
    • Multiboard - Show BagSys_Multiboard
    • Multiboard - Minimize BagSys_Multiboard
    • -------- Create events --------
    • Player Group - Pick every player in (All players) and do (Actions)
      • Loop - Actions
        • Trigger - Add to BagSysStore <gen> the event (Player - (Picked player) skips a cinematic sequence)
        • Trigger - Add to BagSysGet <gen> the event (Player - (Picked player) types a chat message containing -get as A substring)
  • Events
  • Conditions
  • Actions
    • Set u = No unit
    • Custom script: set bj_wantDestroyGroup = true
    • Unit Group - Pick every unit in (Units currently selected by (Triggering player)) and do (Actions)
      • Loop - Actions
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • (Owner of (Picked unit)) Equal to (Triggering player)
            • ((Picked unit) is A Hero) Equal to True
          • Then - Actions
            • Set u = (Picked unit)
          • Else - Actions
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • If - Conditions
        • u Equal to No unit
      • Then - Actions
        • -------- Player did not select a hero which belongs to him --------
        • Game - Display to (Player group((Triggering player))) the text: No valid unit selec...
      • Else - Actions
        • -------- Player did select a hero which belongs to him --------
        • Set i2 = (Player number of (Triggering player))
        • -------- Search for an item in this hero's inventory --------
        • For each (Integer i) from 1 to 7, do (Actions)
          • Loop - Actions
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • i Equal to 7
              • Then - Actions
                • -------- No items --------
                • Game - Display to (Player group((Triggering player))) the text: You don't have any ...
                • Skip remaining actions
              • Else - Actions
            • Set item = (Item carried by u in slot i)
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • item Equal to No item
              • Then - Actions
                • -------- No item in this slot --------
                • -------- Continue --------
              • Else - Actions
                • -------- Found an item --------
                • -------- Search for an empty slot in the bag --------
                • For each (Integer i) from 2 to 33, do (Actions)
                  • Loop - Actions
                    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      • If - Conditions
                        • i Equal to 33
                      • Then - Actions
                        • -------- Full bag --------
                        • Game - Display to (Player group((Triggering player))) the text: Your bag is full
                        • Skip remaining actions
                      • Else - Actions
                    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      • If - Conditions
                        • BagSys_Item[((i2 x 32) + i)] Equal to No item
                      • Then - Actions
                        • -------- Found empty slot --------
                        • -------- Save item --------
                        • Set BagSys_Item[((i2 x 32) + i)] = item
                        • Set loc = (Position of u)
                        • -------- Hide item --------
                        • Item - Move item to loc
                        • Item - Hide item
                        • Custom script: call RemoveLocation(udg_loc)
                        • -------- Redraw multiboard --------
                        • For each (Integer i) from 2 to 32, do (Actions)
                          • Loop - Actions
                            • Multiboard - Set the text for BagSys_Multiboard item in column 2, row i to (Name of BagSys_Item[((i2 x 32) + i)])
                            • Multiboard - Set the text for BagSys_Multiboard item in column 3, row i to (String((Charges remaining in BagSys_Item[((i2 x 32) + i)])))
                        • Skip remaining actions
                      • Else - Actions
  • Events
  • Conditions
  • Actions
    • -------- Get the entered slot number --------
    • Set s = (Entered chat string)
    • Set s2 = (Substring(s, 1, 5))
    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • If - Conditions
        • s2 Equal to -get
      • Then - Actions
        • Set s2 = (Substring(s, 6, 7))
        • Set i = (Integer(s2))
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • i Greater than 0
            • i Less than 33
          • Then - Actions
            • Set u = No unit
            • Custom script: set bj_wantDestroyGroup = true
            • -------- Check for valid hero --------
            • Unit Group - Pick every unit in (Units currently selected by (Triggering player)) and do (Actions)
              • Loop - Actions
                • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  • If - Conditions
                    • (Owner of (Picked unit)) Equal to (Triggering player)
                    • ((Picked unit) is A Hero) Equal to True
                  • Then - Actions
                    • Set u = (Picked unit)
                  • Else - Actions
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • u Equal to No unit
              • Then - Actions
                • -------- Player did not select a hero which belongs to him --------
                • Game - Display to (Player group((Triggering player))) the text: No valid unit selec...
              • Else - Actions
                • -------- Increase i by 1 cause we started with slot 0 --------
                • Set i = (i + 1)
                • Set i2 = (Player number of (Triggering player))
                • Set item = BagSys_Item[((i2 x 32) + i)]
                • -------- Check if slot contains an item --------
                • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  • If - Conditions
                    • item Equal to No item
                  • Then - Actions
                    • -------- No item in this slot --------
                    • Game - Display to (Player group((Triggering player))) the text: This slot does not ...
                  • Else - Actions
                    • -------- Give item to hero and delete itemslot --------
                    • Hero - Give item to u
                    • Set BagSys_Item[((i2 x 32) + i)] = No item
                    • -------- Redraw multiboard --------
                    • For each (Integer i) from 2 to 32, do (Actions)
                      • Loop - Actions
                        • Multiboard - Set the text for BagSys_Multiboard item in column 2, row i to (Name of BagSys_Item[((i2 x 32) + i)])
                        • Multiboard - Set the text for BagSys_Multiboard item in column 3, row i to (String((Charges remaining in BagSys_Item[((i2 x 32) + i)])))
          • Else - Actions
            • Game - Display to (Player group((Triggering player))) the text: Please enter a slot...
      • Else - Actions
 

Attachments

  • GUI Bag System.w3x
    22.5 KB · Views: 160
  • BagSysScreeny.jpg
    BagSysScreeny.jpg
    330.3 KB · Views: 201
Thanks!

Uh, i'm not going to use your system - it's nice to see other people's ideas, yet this is something i made to get myself on a RPG-making team. - so it's gotta be all me ;) I like the idea of a multiboard - yet i never really cared for them, or liked to use them. And - your system - doesn't it just work for 1 player? I'm satisfied with my own system, and writing -id. It's also infinite bag slots. - the labels might just get annoying at one time. Also - I can only store with your system... what about withdrawing?
 
Level 19
Joined
Feb 4, 2009
Messages
1,313
Thanks!

Uh, i'm not going to use your system - it's nice to see other people's ideas, yet this is something i made to get myself on a RPG-making team. - so it's gotta be all me ;) I like the idea of a multiboard - yet i never really cared for them, or liked to use them. And - your system - doesn't it just work for 1 player? I'm satisfied with my own system, and writing -id. It's also infinite bag slots. - the labels might just get annoying at one time. Also - I can only store with your system... what about withdrawing?

it should work for multiplayer but I can't test it since I am only one person
(the multiboard will probably show wrong stuff but the local player check should fix it)
you get items back by writing "-get " and some number
if you red the code... :p (I think withdraw fits better to stuff with money then to items)
well I could display the usage though
there can't be more then 31 slots cause mutltiboards have a limit of 32 rows
however they are much more comfortable when it comes to displaying things as you already pointed out (you need waits for it which is kind of bad)
 
Yeah, i read the code, just briefly - but i must've looked the wrong places, since i thought only 1 player, then. Yeah, it really helps the display, but my way won't take up 10% of the screen, anyway ^^ Nah, i'll stick to my solution - You have my permission to post what you've made, as long as you credit me as original maker of it. Perhaps you could link here, and i'll link to you, so people can choose for themselves?
 
Top