Full Screen Inventory

General talk about editing, cheating, and deprotecting maps.

Moderator: Cheaters

Black-Hole
Forum Fanatic
Posts: 315
Joined: October 16th, 2007, 7:32 pm

Full Screen Inventory

Post by Black-Hole »

###### Fullscreen Inventory System, version 2 #######

### Table of Contents ###

1. Key Features
2. Installation
3. Known issues
4. Extra trigger functions
5. Credits & contact info
6. Version history


### 0. Preamble ###


The first version of fullscreen inventory system was released about a year ago, in August 2004.
However, because of lack of multiplayer compatibility and quite hard installation procedure,
it was more an impressive demo rather than a usable system...
The project went to abandoned state soon after release, and I haven't planned to release new versions ever.

But after receiving a lot of comments asking for a multiplayer version, I've finally decided to revive this project, so here we go...
Now it's truly multiplayer and no longer use 280+ imported files.
The code was rewritten from scratch, a powerful back-end fullscreen user interface system was developed, and large backpack is only an example of what could be done using it.
The initial plans were to create a bunch of modules for this system, including:
- Large inventory (this one :))
- Diablo-like inventory (w/ active slots)
- Some kind of a new dialog system
- Shop interface
- Spell Book
- Mini Games :)
Don't know whether I'll have time to code and design any of that stuff, but well, at least the new backpack is ready :)

For JASS developers I'm also planning to release some notes on how to code your own fullscreen interfaces using my system;
if you are interested, please feel free to contact me. (just need to know if anyone will be ever going to read it :))


### 1. Key Features ###


- Up to 100 extra inventory slots;
- Full multiplayer and multiunit compaltibility;
- Blizzard style full screen interface, done for all 4 races;
- No page-based navigation or typing anything in the chat: all controls are placed on the single screen and everything could be done by just clicking the left mouse button;
- Option to pick up/don't click me items directly into backpack;
- Items can be sold directly from backpack if standing enough close to shop;
- Instant-use items (such as healing potions) can be used directly from backpack;
- Extra trigger functions allow to control backpack behaviour via triggers:
you can add/remove items to it, check whether an item is in the backpack,
and even dynamically change backpack size;


### 2. Installing this to your map ###


Installation process is still very complex, but you shouldn't experience problems
if you follow notes in this section carefully as most common issues are explained here.

(If you have a small map, it might be easier to transfer everything from your map to this one...
in this case, you can go directly to step 2.5)


2.1. The first thing you need is to create a 'dead zone' for fullscreen controls in your target map.
Requirements for this zone follow:
1. It must be at least 18 cells wide and located at the left edge of the map;
2. It must be completely flat ground - no water, no cliffs, no objects please;
3. It must be INSIDE camera bounds (note the difference with the first version)
4. Minimal required map height depends on maximal number of players that should be able to use fullscreen interface:
one player requires 10 cells of map height, so map height of 128 will be enough for all 12 players.
If your map height is insufficient, a warning message will be issued when you start the game.

Note: When you start the map, this zone will be automatically isolated
with a chain of black path blockers, and will be excluded from "Playable Map Area" region.

2.2. Transfer all of the imported files from this map to your map.
Importing is a lot easier now, since imported files count reduced to 33 (from enormous 285 in first version).
You can transfer files via WE Import Manager, or use WinMPQ or some other MPQ tool to speed up this process.
Files to be transferred via MPQ tools are all .mdx, .tga and .blp files, and war3map.imp file.
(you'll have to re-import all of your own custom files to the map after that)
Note: all of the imported files should have file paths exactly as in this map!
(this means they should NOT have prefix such as "war3mapImported/"!)

IMPORTANT: Don't forget to make a backup copy of your map before changing it with any MPQ tools.

2.3. Transfer all the triggers and the only variable.
This could be easily done with the WE 'Import/Export Triggers' feature if you're starting a new map,
otherwise, copy & paste the only trigger category and the only gamecache variable.

It is required to place these triggers higher in trigger list than any of your triggers
if you are going to use extra inventory trigger functions.
Be sure also to keep the original order of triggers.

If you're getting compile errors, please read the note in the custom script code section
(click map title at the top of triggers tree to access it)

2.4. Transfer custom destructible doodad data.
The only way to to this is using "Export / Import Destructible Settings" feature in Object Editor.

2.5. Transfer the custom ability.
Just Ctrl-C + Ctrl-V.
If you've already had any custom abilities, you'll have to update
ability ID of inventory ability in the configuration section. (see 2.7)

2.6. Open the "inventory init item settings" trigger and, using the example provided,
fill in information about your custom items
(since this information couldn't be extracted by the script, it has to be typed here manually).

2.7. Open the "configuration" trigger and tweak the options.
You can disable certain features such as direct sell/use if you don't need them.


2.8. Well done! :)


### 3. Known issues ###


3.1. Items in the backpack do not give their passive ability bonuses.
This is rather a feature than a bug, just imagine a hero with 100 attack or stat bonus items :)
I'm planning to make an inventory system with some extra "active" slots that give their bonuses, but this is not the case.

3.2. If your main inventory is full, "pickup to extended inventory" will be automatically disabled,
as you're need to have at least one free slot in your main inventory to use it.

3.3. Items set to undroppable state still could be dropped via fullscreen interface.
The only solution is to completely disable item drop feature via configuration trigger,
as I know no way to detect undroppable state in JASS.

3.4. If you experience problems with camera locking to unit after using the fullscreen interface,
pay attention to the "inv100_lock_cam" option in configuration trigger.


### 4. Extra trigger functions ###


You can use following functions via custom script.
A patch that adds these to trigger editor is also available; it could be found at:
http://dimon.xgm.ru/fsgui/downloads.php

inv100_IsEnabled(player p)
Returns whether inventory panel is currently active for specified player.
Some triggers that deal with "Unit Acquires/Loses An Item" events could collide with
internal inventory routines and cause problems. In such cases, you should add a check
for inactive inventory state to these triggers.

inv100_UnitItemInSlot(unit u, integer slot)
Returns a handle to the item that unit u has in specified backpack slot.
Note: in all of these functions, slot must be 0-99.

inv100_UnitAddItemToSlot(unit u, item i, integer slot)
Takes item i, and places it to specified slot of unit u backpack.
If specified slot is already occupied, or item is a powerup, this function does nothing.

inv100_UnitDropItemSlot(unit u, integer slot)
Removes item from specified backpack slot and places it beneath unit feet.

inv100_SetInventorySize(unit u, integer rows, integer cols)
Sets backpack dimensions of a unit to specified values.
rows and cols must be 1-10.

inv100_UnitHasItem(unit u, item i)
Returns whether a unit has specified item in his backpack.

inv100_UnitHasItemOfType(unit u, itemcode i)
Returns whether a unit has an item of specified type in his backpack.

inv100_SaveToCache(gamecache cache, string missionkey, string label, unit u)
Saves all of backpack contents of a unit to game cache.
cache is the reference to gamecache variable
(you may use bj_lastCreatedGameCache variable to refer to last gamecache created via triggers)
missionkey is exactly what you specify as "Category" in other gamecache actions.
label is an arbitrary string, it must be unique for each unit saved.

inv100_LoadFromCache(gamecache cache, string missionkey, string label, unit u)
Restores all of backpack contents stored at specified label, and attaches them to specified unit.
Note that unit itself has to be restored before calling this action.


### 5. Credits & contact info ###


5.1. DimonT - all of the triggers & JASS coding, and this readme file :)
E-mail : [email protected]
ICQ : 937160

5.2. Illisor - all of 3D-models & custom graphics.
E-mail : [email protected]
ICQ : 221013519

5.3. Special Thanks to:
Markiz
HARN

FSGUI Project Home Page:
http://dimon.xgm.ru/fsgui/


### 6. Version History ###

2.00 (06/08/2005)
- completely new version, now fully multiplayer compatible.

1.15 (31/08/2004)
- fixed a bug allowing to duplicate charged items by clicking "Use Item" button twice;
- fixed description box background in Orc skin;
- readme file included.

1.10 (29/08/2004)
- 4 skins, for all of the races;
- ability to use & sell items from backpack;
- item sell value is displayed;
- support for game cache to transfer backpack contents between maps.

1.00 (23/08/2004)
- initial release.
You do not have the required permissions to view the files attached to this post.
initialD
Some Honorary Title
Posts: 1713
Joined: June 8th, 2007, 5:08 am
Title: Angry Bird

Re: Full Screen Inventory

Post by initialD »

Sounds cool.
But still, a unit can only use 6 items at one time right?
The inventory just let you carry those items , not using them, am i right?
Black-Hole
Forum Fanatic
Posts: 315
Joined: October 16th, 2007, 7:32 pm

Re: Full Screen Inventory

Post by Black-Hole »

The way The TcX pack i uploaded used it they had 7 items equip max, but there all custom items and they dont show on the character.
Helm, Chest, Boots, Glovs, Neckless, and 2 rings.
They also had 9 weapons that did showup on the character when you equiped them.
User avatar
risker
Forum Staff
Posts: 351
Joined: June 8th, 2008, 3:05 am
Location: Australia

Re: Full Screen Inventory

Post by risker »

Tkok has a good system..
Tyreal
Junior Member
Posts: 28
Joined: October 14th, 2008, 6:17 am

Re: Full Screen Inventory

Post by Tyreal »

w8 Lemmie find tkoks system
Direct Link
Forum Link
Heres TKOK EXACT SYSTEM its not original surprise surprise
User avatar
DirtyKiller
Forum Fanatic
Posts: 398
Joined: July 26th, 2008, 4:28 pm
Title: The Faithful
Location: Portugal

Re: Full Screen Inventory

Post by DirtyKiller »

Hmm nice. I guess, but how did they were able to implement the system of WoW inventory into warcraft III (TKoK).
Wasn´t it quite hard or something?
Things can be lost aren´t lost at all.
Image Image
User avatar
Ozzapoo
The Flying Cow!
Posts: 2196
Joined: November 2nd, 2007, 10:34 pm
Location: Melbourne

Re: Full Screen Inventory

Post by Ozzapoo »

Can someone post a screenshot of it :D?
Visit Ozzapoo.net, my blog and the home of AutoCP and Cheatpack Detector!
AutoCP3 now available for free!
User avatar
Bl00D R3av3r
Senior Member
Posts: 165
Joined: January 25th, 2008, 5:20 pm
Title: Lazy

Re: Full Screen Inventory

Post by Bl00D R3av3r »

Here is a pic of it
You do not have the required permissions to view the files attached to this post.
Image
Sig by TheWand
User avatar
risker
Forum Staff
Posts: 351
Joined: June 8th, 2008, 3:05 am
Location: Australia

Re: Full Screen Inventory

Post by risker »

it wouldn't be much different?
Just changing the images?
lol?
User avatar
Ozzapoo
The Flying Cow!
Posts: 2196
Joined: November 2nd, 2007, 10:34 pm
Location: Melbourne

Re: Full Screen Inventory

Post by Ozzapoo »

Wow...Looks pretty neat.
Visit Ozzapoo.net, my blog and the home of AutoCP and Cheatpack Detector!
AutoCP3 now available for free!