| 06-14-2004, 06:10 PM | #1 |
This is only about half-way done, but I'm 90% sure I can finish it and was wondering how many people would be interested in making use of such a thing. Features: - Stackable items - Quick access to "beltable" items, such as potions and scrolls - An inventory of nearly any size--access items 6 at a time through Inventory "pages" - Equip items by clicking on them in your inventory. They'll be assigned to the proper spot on your body, removing whatever is already there. To unequip an item, click on it again from your inventory. Downsides: - Each hero requires a second version to display the inventory/equipment. - Each item requires a second version to pick up. - Each piece of equipment requires a corresponding ability to show that its equipped. - Hero may not move while the inventory is displayed (still auto-acquires and attacks enemies). - Requires numerous 1D and 2D arrays to be populated manually. - Some abilities may not be able to be replicated using this system (but I'm not sure yet). - Castable abilities certainly won't work with just this system (I will be attempting to create a D2:LOD skill system later, which will work together with this to cast abilities). Ummm... I'm sure there are more features and downsides, but I'm too hungry to think. Check out the screenshot and cast your vote. |
| 06-14-2004, 06:30 PM | #2 |
cool idea i realy like it and cool icons to |
| 06-16-2004, 08:04 AM | #3 |
Thanks, Sandro. The icons are just ripped out of D2. Anyone else got some feedback? I could really use some. |
| 06-19-2004, 03:47 PM | #4 |
Ya but to apply the damage and stuff you gotta pop out that backpack thing but when you pop it out no skills are avaliable, use the Dark Lineage backpack one or get another unit. |
| 06-19-2004, 08:59 PM | #5 | |
Quote:
What on earth are you talking about? |
| 06-20-2004, 03:41 AM | #6 |
I say go for it. It may take a loooong time to finish it, and it may not be easy, but the finished results will be worth the blood (Yum), sweat, and tears. Sort of how it's going to be on team project, Ilisdus Year IV. There has to be at least a couple hundred custom models, voices, it's going to be huge. But the result will be so satisfying to people who player it, let alone me, that it's worth it. The harder something is to finish, the better it's reward is. |
| 08-03-2004, 01:39 AM | #7 |
Looks really cool. Continue working on it ... PLEASE! Looking forward to playing a map with it. |
| 08-07-2004, 01:51 AM | #8 |
I'll tell you that its very difficult to make inventory systems. The main qualm is that the items are probably the best damn unit related device you have access to, and yet you can only have 6 at a time on a hero. Abilities are too annoying. Spellbooks and such are buggy, and you need to make sure they have different order strings. Good luck finding 11 do nothing abilties. Good luck finding 5 for that matter. I originally planed DT4a with the idea that you'd have a backpack and when you picked up items they would automatically enter your inventory or backpack. I found out to get this "simple" feature down required two different version of each item. THe next kicker was that since I was basing this off FFTa items could fit in multiple slots. So I decided the best idea was to make all equipment items just enter the inventory list and then sort the list (this is probably the most wasteful thing in DT4a. If I could understand my code still I would add insertion methods). And when you wanted to use one it would just filter the items and display them. Now I wanted to let you have 6 items being displayed and maybe some abilities to let you tinker with the list. I found abilities to be really annoying and spastic. Also requiring 3 abilities (out of what 6 good usable ability slots?) for basic function struck me sour, so I decided to just leave the list at 4 items and just have a convient nextpage and cancel button. For tacky diabloesqueness I threw in the attributer. Dt4a was also written in, at the time, the pinical of jass coding. Hellish memory management, brilliant bug exploitation, and more 2d arrays and tricks then you could shake a stick at. While today you have a hashtable, gamecache, at your exposal, you are still looking at one annoying coding process. DT4a .9 was written in four days. I had probably tested the code non stop for four days straight. And yet, SOMEHOW, upon release about 20 bugs were discovered. Some minor, some completely engine breaking. Spending about a day I had written a significant total core rewrite. However, despite the core rewrite, there were still fundamental bugs in my design. Which took another even more thorough core fix to get to a point where it is Mostly bug free. DT4a seems alot less restrictive then your set up. You can fully control your guy while equiping items. I don't see a reason why he has to be at a full stop. Further more, why do you need two versions of the hero? DT4a I just showed the 5 items equiped on the hero inventory pane. (Note: DT4a can be expanded to 8 equipment items). Unlimited items is a very bad idea. If you want any organization you'll need a sort of some sorts. Jass has a very crappy thread limit which will crap out after a couple thousand calls or comparision are made. (Dt4a crappy bubble sorts can do 750 in a unique thread. Running from the existing event that caused it to be executed ussually peaked much lower, less then 300 items before dying completely). A 100 items is a safe limit and at the same time pretty obscene in amount. Originally the obscene 100 items was because you couldn't drop or sell items once you got them. So I just gave you a crazy high cap in hopes you'd feel like gmail; when you have such high capacity you'd probably never throw something out. Which gets me to another point. Getting rid of items SUCKS. Dropping and selling items was probably the hardest part of DT4a. I don't even remember what was so hard about it. But I do remember that a big part of it was using a timer and some heavy tricks to get it to appear as if the pick up version of the item was the one you dropped. (you really dropped the equipment version). It worked perfectly. |
| 08-07-2004, 02:26 AM | #9 |
Heh. Thanks for the story, weaaddar. It was actually rather interesting to read. I haven't worked on the inventory system for over a month now--in fact, I lost the files. But I'm hoping to restart it soon... I'm currently busy with a map. To answer some of your questions... The hero can't move while equipping stuff because, in order to display the full 4x3 grid of equipment, you need to remove his move, attack, patrol, stop, etc buttons. I think this is also why I needed two of each hero--the second one would have no movement (freeing up the stop, move, and patrol button slots) and hiding the UI for the attack (freeing up the Attack button slot). Best I can remember as far as dropping is concerned was that the dropped item would be placed slightly offcenter to where it was supposed to be dropped--I'm not sure if I ever fixed that. And having two of each item so that they can immediately enter the inventory is a pain in the butt--especially since items have no Editor Suffix field--but I think that it's worth it, and it is necessary in order to have a potion belt. |
| 08-07-2004, 02:48 AM | #10 |
eeps, I am a culprit of forum necromancy! you found that no editor suffix thing annoying too? I used two different categories because both my items were totally worthless junky items with no relevent datafields so telling them apart was near impossible. (except one was auto consumed and one wasn't). The way you make it appear that a dropped item was where it was suppose to be is kind of simple. You store in some globals the x coordinate of the item that dropped, the y coord of the item that dropped and the itemtype of the item that you want to spawn. Then you remove the item, thenrun a timer that expires in 0 seconds, and in that function make it create the item at the location. No human can tell the difference between them. The main problem was getting the bugger out of the list I think. Required next paging and sorting and junk. Anyway, I'd suggest sticking with DT4a its probably as good as Action RPG equip engines are going to get. Anything that relies on abilities is asking for screw ups. |
| 08-07-2004, 02:53 AM | #11 | ||
Quote:
Sounds familiar--I might've figured that out eventually. It's been so long since I've worked on it... Quote:
To be honest, I never liked DT4A all that much. And if I used that instead of making my own, I'd be denying myself endless fun and satisfaction.. lol. Well, some fun and satisfaction, anyhow. |
| 08-07-2004, 03:04 AM | #12 |
just curious what didn't you like about DT4a? |
| 08-07-2004, 03:37 AM | #13 | |
Quote:
I just took another look at that and your drag-and-drop inventory system. The two of them together would make a pretty good package... I guess my biggest complaint is just that I hate working with such a small window (4 items). And with a lengthy inventory, you're likely to skip the page you wanted and then be forced to cycle all the way through again (no way to go backwards). The demo, providing only a sword and shield, doesn't give a good impression of how much can be done with it. I think my main effort in constructing the D2:LOD Inventory is to provide people with a more comfortable interface--and to make them feel less constrained. Having a maximum of 6 slots in standard WC3 is pretty small to begin with--working with your tools shrinks that to having 4 slots at a time. In my mind I know that the arrow button allows me to cycle through pages, giving me more than 4 slots worth of items--but from what I see there on the screen, 4 is all I get. It's like a whole psychological thing... So with D2:LOD, you'll always be working with the full 6 slots. There's also more freedom in that you can go both forwards and backwards through the pages and hopefully, in the end, everything will be nicely sorted and easy to find. Also, with the inventory, you're given a whooping 9 slots to equip stuff! Alot of RPGs allow the basics... weapon, shield, armor, boots.. then either a helm and ring or 2 potions... stuff along those lines. With mine, you can have up to 6 beltable potions for easy access as well as a huge inventory of items and still be able to equip a weapon (or 2), gloves, helmet, boots, body armor, belt, necklage, and a ring. |
| 08-07-2004, 11:29 AM | #14 |
Remember that DT4a sorts items by priorty and filters them by slot coordination. So its very unlikely you'll lose an item as realistically you shouldn't have too many pages of one type of item. The belt items have always been, in my opinion, your standard inventory. I agree that perhaps I should add a hotkey ability to get back to your standard inventory. Because right now you need to hit cancel I think twice in some cases to get back to the standard inventory. (Maybe too much). If I make cancel an ability I could potentially add a back page button. But again, DT4a has seen its last release in Jan. There is very little motive for me to modify it at the moment. |
| 08-07-2004, 08:26 PM | #15 |
You are right about inventory systems taking a lot of work. I was inspired to make my own inventory sytem based on D&D and the wearable magic item slots(as in 1 suit of armor, 1 pair of gloves, etc.), but with an easier to use system for equiping and dropping/selling items. What I have come up with strikes a good balance between the style of systems that you guys have made. Mine allows you to carry 16 items on your hero and have a backpack that holds 6 items. You can have 1 each of the following item types: Weapon, Armor, Shield, Helmet, Cloak, Gloves, Boots, Belt, Protective Ring, Other Ring, Amulet, and Trinket. You may also carry 4 Wonderous Items which includes things such as potions, scrolls, and wands. The way this works is that your hero starts out with 5 "bag items" called Backpack, Weapons & Armor, Clothing, Jewelry, and Wonderous. Clicking the Backpack item will actually deselect your hero and select a special, invisible and invulnerable backpack unit, which has a 6 slot inventory. Clicking one of the other items will remove the 1st 4 items from inventory and replace them with the 4 items you have in that category. These items are real items and can be dropped, traded, sold, or given to the backpack by dragging the item onto the backpack icon, which is always in slot 6. A Back to Inventory item is placed in the 5th item slot while any of the categories are open. Persistent effects will work even when you are not looking at the appropriate category, but to use an active ability of an item, you must open the proper category and then click that item. When you pickup an item, a check is made to see if you already have an item of that type, if not the item is added to the appropriate category. If you already have one, then a check is made to see if you have room in your backpack and if so the item is added to it, if not the item is dropped and an error message given. This will work no matter how you aquire the item; i.e. picking it up, buying it, or swapping it from your backpack or another player. Since the backpack is actually a unit, you can drop, trade, or sell the items it carries without needing to give them to your hero first. It is not completely finished, as I haven't added the Wonderous item category, since it will work differently than the rest, and I plan to go back through the triggers(half are JASS, half are through the GUI) and optimize them, but the backpack and equipment work flawlessly. I am also thinking of switching to an ability-based control system, but then I would lose the drag and drop functionality, which is really nice. Weaaddar, I used your drag and drop system as a reference and will give you credit when my map finally gets done, but about the only similarity between our systems now is that we both use gamecache to store information. Anyway, maybe we 3 can work together to make the smoothest, most powerful inventory system possible? |
