wc3campaigns
WC3C Homepage - www.wc3c.netUser Control Panel (Requires Log-In)Engage in discussions with other users and join contests in the WC3C forums!Read one of our many tutorials, ranging in difficulty from beginner to advanced!Show off your artistic talents in the WC3C Gallery!Download quality models, textures, spells (vJASS/JASS), systems, and scripts!Download maps that have passed through our rigorous approval process!

Go Back   Wc3C.net > Resources > Code Resources > Samples
User Name
Password
Register Rules Get Hosted! Chat Pastebin FAQ and Rules Members List Calendar



Reply
 
Thread Tools Search this Thread
Old 07-16-2009, 05:15 PM   #31
Dhaos
User
 
Join Date: Jul 2009
Posts: 1

Dhaos has little to show at this moment (0)

Default Please help!

I'm just finishing a great mod I've made, and need this system as a finishing touch, but when it comes to JASS, I'm a total n00b, and I only have a mediocre knowledge of triggers... So what do I need to do to impliment this into my map? I've imported the triggers, items and abilties and linked the item/abilities correctly... Please can someone help?

Many thanks.

Dhaos.
Dhaos is offline   Reply With Quote
Sponsored Links - Login to hide this ad!
Old 08-20-2009, 12:27 AM   #32
Toadcop
BuranX
 
Toadcop's Avatar
 
Join Date: Jul 2006
Posts: 1,886

Submissions (4)

Toadcop is just really nice (299)Toadcop is just really nice (299)

Approved Map: TcXSpell Making Session 10 Winner

Send a message via ICQ to Toadcop
Default

at first you need JassNewGenPack =)
after (probably) read the system implementetion stuff =) // it should be simple copy paste of triggers at all.

after you need to learn from examples how to use it...
__________________
Toadcop is offline   Reply With Quote
Old 08-20-2009, 09:04 AM   #33
Fledermaus
default string
 
Fledermaus's Avatar
 
Join Date: May 2006
Posts: 705

Submissions (1)

Fledermaus is a jewel in the rough (194)Fledermaus is a jewel in the rough (194)Fledermaus is a jewel in the rough (194)

Send a message via MSN to Fledermaus
Default

You shouldn't really be using this for anything other than Single player because it uses units + selection events which are delayed as hell on bnet (and I think lan too) which will cause it to flip out.
Fledermaus is offline   Reply With Quote
Old 10-07-2009, 11:48 AM   #34
Tot
†6†
 
Tot's Avatar
 
Join Date: Oct 2008
Posts: 841

Tot will become famous soon enough (53)Tot will become famous soon enough (53)

Default

Quote:
Originally Posted by ashujon
Quote:
Originally Posted by Litany
It's kind of old hat actually. The problem is it fails in multiplayer games that allow shared unit control, which makes a method like InvX's preferable even though it's less shiny.
multiplayer possible make, but need time

does the newest version (v1.01) work in multiplayer games or not?
If not, how to get it working?

EDIT:
can't start the map (on pressing STRG+F9 in NewGen WE) the standard wc3 menu (singleplayer, ..., exit) appears
tried to save map 10 times with newest jasshelper --> still dosen't work
(using 1.24b)
__________________
Current Projects:
  • Masters Of WarCraft: Some mixture of AoS and RPG
    Terrain: 100%, Coding: 75%, Heroes: 0%, Items: 0%, Creeps: 0%, Upgrades: 0%
  • hunting emos
____________________________________
scheiss kack dreck sausacksau bundeswehr

Last edited by Tot : 10-07-2009 at 11:54 AM.
Tot is offline   Reply With Quote
Old 10-07-2009, 03:02 PM   #35
Anachron
User
 
Anachron's Avatar
 
Join Date: Mar 2009
Posts: 1,079

Anachron will become famous soon enough (51)Anachron will become famous soon enough (51)

Default

Quote:
Last edited by ashujon : 03-11-2009 at 04:57 PM. Reason: new version

Look, the last edit was in march, where the new version hasn't been out, so this can't work with wc3 1.24 (+).
__________________
CustomInventory [Discussion - Download] - Got Directors Cut!
CustomMissle [Discussion - [Download (not yet)] - In development!
Other systems [Spawn System] [Move System] [CustomBar] [SpellBar]
Anachron is offline   Reply With Quote
Old 10-07-2009, 03:16 PM   #36
Tot
†6†
 
Tot's Avatar
 
Join Date: Oct 2008
Posts: 841

Tot will become famous soon enough (53)Tot will become famous soon enough (53)

Default

Quote:
Originally Posted by Anachron
Look, the last edit was in march, where the new version hasn't been out, so this can't work with wc3 1.24 (+).

mjölk..... :emote_Tot_idiot:
__________________
Current Projects:
  • Masters Of WarCraft: Some mixture of AoS and RPG
    Terrain: 100%, Coding: 75%, Heroes: 0%, Items: 0%, Creeps: 0%, Upgrades: 0%
  • hunting emos
____________________________________
scheiss kack dreck sausacksau bundeswehr
Tot is offline   Reply With Quote
Old 01-13-2010, 06:03 AM   #37
GALLED
User
 
GALLED's Avatar
 
Join Date: May 2006
Posts: 95

Submissions (1)

GALLED has little to show at this moment (1)

Default

Quote:
Originally Posted by Anachron
Look, the last edit was in march, where the new version hasn't been out, so this can't work with wc3 1.24 (+).

I'm studying this map, so I have adapted it to version 1.24

Replace the DataBaseBags library for:
Collapse JASS:
library DataBaseBags initializer InventoryInitDB

globals
    private hashtable gcbag
    integer TypeTextureBlank = 'dbnk'
endglobals

function GetItemTexture takes integer typeitem returns integer
    //local string hi = I2S(typeitem)
    local integer hi = typeitem
    local string tex
    if HaveSavedString(gcbag, StringHash("Texture"), hi) then
        set tex = LoadStr(gcbag, StringHash("Texture"), hi)
        if HaveSavedInteger(gcbag, StringHash("IconDest"), StringHash(tex)) then
            return LoadInteger(gcbag, StringHash("IconDest"), StringHash(tex))
        endif
    endif
    return TypeTextureBlank
endfunction

function GetItemCost takes integer typeitem returns integer
    //local string hi = I2S(typeitem)
    local integer hi = typeitem
    if HaveSavedInteger(gcbag, StringHash("Cost"), hi) then
        return  LoadInteger(gcbag, StringHash("Cost"), hi)
    endif
    return -1
endfunction

function GetItemDescription takes integer typeitem returns string
    //local string hi = I2S(typeitem)
    local integer hi = typeitem
    if HaveSavedString(gcbag, StringHash("Description"), hi) then
        return LoadStr(gcbag, StringHash("Description"), hi)
    endif
    return null
endfunction

function GetItemHasCharges takes integer typeitem returns boolean
    //local string hi = I2S(typeitem)
    local integer hi = typeitem
    if HaveSavedBoolean(gcbag, StringHash("Charge"), hi) then
        return LoadBoolean(gcbag, StringHash("Charge"), hi)
    endif
    return false
endfunction

function InventoryInitItemDB_Func takes integer ItemType, string Texture, string Description, integer Cost, boolean Charge returns nothing
    //local string ItemTypeStr = I2S(ItemType)
    local integer ItemTypeStr = ItemType
    call SaveStr(gcbag, StringHash("Texture"), ItemTypeStr, Texture)
    call SaveStr(gcbag, StringHash("Description"), ItemTypeStr, Description)
    call SaveInteger(gcbag, StringHash("Cost"), ItemTypeStr, Cost)
    call SaveBoolean(gcbag, StringHash("Charge"), ItemTypeStr, Charge)
endfunction

function InventoryInitDestDB_Func takes integer TypeDest, string Texture returns nothing
    call SaveInteger(gcbag, StringHash("IconDest"), StringHash(Texture), TypeDest)
endfunction

function InventoryInitIconDB_Func takes integer TypeUnit, string Texture returns nothing
    call SaveStr(gcbag, StringHash("Texture"), TypeUnit, Texture)
endfunction

private function InventoryInitDB takes nothing returns nothing
    set gcbag = InitHashtable()
    //---------------------------------------------------------------------------------------------------+
    //                                                                                                   |
    //                                               Item                                                |
    //                                                                                                   |
    //---------------------------------------------------------------------------------------------------+
    //__________
    call InventoryInitItemDB_Func('afac', "BTNAlleriaFlute.blp"     , "Increases nearby ranged units' damage by <AIar,DataA1,%>%. |nDoes not stack with Trueshot Aura.", 400, false)
    call InventoryInitItemDB_Func('spsh', "BTNSpellShieldAmulet.blp", "Blocks a negative spell that an enemy casts on the Hero once every <ANss,Cool1> seconds.", 400, false)
    call InventoryInitItemDB_Func('ajen', "BTNJanggo.blp"           , "Grants the Hero and friendly nearby units increased attack rate and movement speed. |nDoes not stack with Endurance Aura.", 500, false)
    call InventoryInitItemDB_Func('bgst', "BTNBelt.blp"             , "Increases the Strength of the Hero by 6 when worn.", 500, false)
    call InventoryInitItemDB_Func('belv', "BTNBoots.blp"            , "Increases the Agility of the Hero by 6 when worn.", 500, false)
    call InventoryInitItemDB_Func('bspd', "BTNBootsOfSpeed.blp"     , "Increases the movement speed of the Hero when worn.", 150, false)
    call InventoryInitItemDB_Func('cnob', "BTNCirclet.blp"          , "Increases the Strength, Agility and Intelligence of the Hero by 2 when worn.", 175, false)
    call InventoryInitItemDB_Func('ratc', "BTNClawsOfAttack.blp"    , "Increases the attack damage of the Hero by 12 when worn.", 500, false)
    call InventoryInitItemDB_Func('rat6', "BTNClawsOfAttack.blp"    , "Increases the attack damage of the Hero by 6 when worn.", 100, false)
    call InventoryInitItemDB_Func('rat9', "BTNClawsOfAttack.blp"    , "Increases the attack damage of the Hero by 9 when worn.", 400, false)
    call InventoryInitItemDB_Func('clfm', "BTNCloakOfFlames.blp"    , "Engulfs the Hero in fire which deals <AIcf,DataA1> damage per second to nearby enemy land units. |nDoes not stack with Immolation.", 600, false)
    call InventoryInitItemDB_Func('clsd', "BTNCloak.blp"            , "Provides the Hero with invisibility at night when worn. An invisible Hero is untargetable by the enemy unless detected. If the Hero moves, attacks, uses an ability, or casts a spell, the invisibility effect is lost.", 100, false)
    call InventoryInitItemDB_Func('crys', "BTNCrystalBall.blp"      , "Reveals a targeted area. Invisible units are also revealed by the Crystal Ball's effect. |nLasts <AIta,Dur1> seconds.", 500, false) 
    call InventoryInitItemDB_Func('dsum', "BTNDarkSummoning.blp"    , "Teleports <AUds,DataA1> of the player's units within the targeted area to the location of the Hero when used.", 400, false)
    call InventoryInitItemDB_Func('lgdh', "BTNHornOfDoom.blp"       , "Grants the Hero and friendly nearby units increased life regeneration and movement speed. |nDoes not stack with Unholy Aura.", 400, false)
    call InventoryInitItemDB_Func('hval', "BTNHelmOfValor.blp"      , "Increases the Strength and Agility of the Hero by 4 when worn.", 500, false)
    call InventoryInitItemDB_Func('rst1', "BTNGauntletsOfOgrePower.blp", "Increases the Strength of the Hero by 3 when worn.", 100, false)
    call InventoryInitItemDB_Func('gcel', "BTNGlove.blp"            , "Increases the attack speed of the Hero by <AIsx,DataA1,%>% when worn.", 100, false)
    call InventoryInitItemDB_Func('hcun', "BTNHoodOfCunning.blp"    , "Increases the Agility and Intelligence of the Hero by 4 when worn.", 500, false)
    call InventoryInitItemDB_Func('rhth', "BTNPeriapt1.blp"         , "Increases the hit points of the Hero by <AIl2,DataA1> when worn.", 500, false)
    call InventoryInitItemDB_Func('kpin', "BTNPipeOfInsight.blp"    , "Grants the Hero and friendly nearby units a bonus to mana regeneration. |nDoes not stack with Brilliance Aura.", 500, false)
    call InventoryInitItemDB_Func('rin1', "BTNMantleOfIntelligence.blp", "Increases the Intelligence of the Hero by 3 when worn.", 100, false)
    call InventoryInitItemDB_Func('mcou', "BTNMedalionOfCourage.blp", "Increases the Strength and Intelligence of the Hero by 4 when worn.", 500, false)
    call InventoryInitItemDB_Func('odef', "BTNOrbOfDarkness.blp"    , "Adds <AIdf,DataA1> bonus damage to the attack of a Hero when carried. The Hero's attack also becomes ranged when attacking air and will create a Dark Minion when it is the killing blow on an enemy unit. The Dark Minion lasts <ANbs,DataC1> seconds.", 500, false)
    call InventoryInitItemDB_Func('penr', "BTNPendantOfEnergy.blp"  , "Increases the mana capacity of the Hero by <AImb,DataA1> when worn.", 400 , false)
    call InventoryInitItemDB_Func('pmna', "BTNPendantOfMana.blp"    , "Increases the mana capacity of the Hero by <AIbm,DataA1> when worn.", 500, false)
    call InventoryInitItemDB_Func('prvt', "BTNPeriapt.blp"          , "Increases the hit points of the Hero by <AIlf,DataA1> when worn.", 350, false)
    call InventoryInitItemDB_Func('rde1', "BTNRingGreen.blp"        , "Increases the armor of the Hero by 2 when worn.", 150, false)
    call InventoryInitItemDB_Func('rde2', "BTNRingGreen.blp"        , "Increases the armor of the Hero by 3 when worn.", 400, false)
    call InventoryInitItemDB_Func('rde3', "BTNRingGreen.blp"        , "Increases the armor of the Hero by 4 when worn.", 500, false)
    call InventoryInitItemDB_Func('rlif', "BTNRingSkull.blp"        , "Increases the Hero's hit point regeneration by <Arel,DataA1> hit points per second.", 200, false)
    call InventoryInitItemDB_Func('ciri', "BTNRobeOfTheMagi.blp"    , "Increases the Intelligence of the Hero by 6 when worn.", 500, false)
    call InventoryInitItemDB_Func('brac', "BTNRunedBracers.blp"     , "Reduces Magic damage dealt to the Hero by <AIsr,DataB1,%>%.", 400, false)
    call InventoryInitItemDB_Func('sbch', "BTNBoneChimes.blp"       , "Grants a melee Hero and friendly nearby melee units life stealing attacks which take <AIav,DataA1,%>% of the damage they deal and convert it into life. |nDoes not stack with Vampiric Aura.", 450, false)
    call InventoryInitItemDB_Func('rag1', "BTNSlippersOfAgility.blp", "Increases the Agility of the Hero by 3 when worn.", 100, false)
    call InventoryInitItemDB_Func('rwiz', "BTNSobiMask.blp"         , "Increases the Hero's rate of mana regeneration by <AIrm,DataA1,%>% when worn.", 400, false)
    call InventoryInitItemDB_Func('ssil', "BTNStaffOfSilence.blp"   , "Stops all enemies in a target area from casting spells.", 500, false)
    call InventoryInitItemDB_Func('stel', "BTNStaffOfTeleportation.blp", "Teleports the Hero to the targeted allied land unit or structure.", 100, false)
    call InventoryInitItemDB_Func('evtl', "BTNTalisman.blp"         , "Causes attacks against the wearer to miss <AIev,DataA1,%>% of the time. |nDoes not stack with Evasion or Drunken Brawler.", 400, false)
    call InventoryInitItemDB_Func('lhst', "BTNLionHorn.blp"         , "Grants the Hero and friendly nearby units <AIad,DataA1> bonus armor. |nDoes not stack with Devotion Aura.", 400, false)
    call InventoryInitItemDB_Func('ward', "BTNDrum.blp"             , "Increases the attack damage of nearby friendly units by <AIcd,DataA1,%>% when worn. |nDoes not stack with Command Aura.", 500, false)
    //_______ ______
    call InventoryInitItemDB_Func('wild', "BTNAmuletOftheWild.blp"  , "Summons a Furbolg Warrior. The Furbolg lasts <AIuw,Dur1> seconds.", 750, true)
    call InventoryInitItemDB_Func('ankh', "BTNAnkh.blp"             , "Automatically brings the Hero back to life with <AIrc,DataB1> hit points when the Hero wearing the Ankh dies.", 800, true)
    call InventoryInitItemDB_Func('fgsk', "BTNBookOfTheDead.blp"    , "Summons <AIfs,DataA1> Skeleton Warriors and <AIfs,DataB1> Skeleton Archers to fight for you. |nLasts <AIfs,Dur1> seconds.", 450, true)
    call InventoryInitItemDB_Func('fgdg', "BTNDoomGuard.blp"        , "Summons a Doom Guard to fight for you. |nLasts <AIfu,Dur1> seconds.", 750, true)
    call InventoryInitItemDB_Func('whwd', "BTNHealingWard.blp"      , "Drops a ward that heals nearby friendly units for <Ahwd,Dur1> seconds. |nContains <whwd,uses> charges.", 600, true)
    call InventoryInitItemDB_Func('hlst', "BTNHealthStone.blp"      , "Increases the life regeneration rate of the Hero by <Arll,DataA1> hit points per second when worn. Can be consumed for <AIh2,DataA1> health.", 450, true)
    call InventoryInitItemDB_Func('shar', "BTNIceShard.blp"         , "Summons an Ice Revenant. The Ice Revenant lasts <AIir,Dur1> seconds.", 750, true)
    call InventoryInitItemDB_Func('infs', "BTNInfernalStone.blp"    , "Calls an Infernal down from the sky, dealing <AIin,DataA1> damage and stunning enemy land units for <AIin,Dur1> seconds in an area. The Infernal lasts <AIin,DataB1> seconds.", 750, true)
    call InventoryInitItemDB_Func('mnst', "BTNManaStone.blp"        , "Increases the mana regeneration rate of the Hero by <AIrn,DataA1,%>% when worn. Can be consumed for <AIm2,DataA1> mana.", 450, true)
    call InventoryInitItemDB_Func('pdiv', "BTNPotionOfDivinity.blp" , "Turns the Hero invulnerable for <AIdv,Dur1> seconds.", 600, true)
    call InventoryInitItemDB_Func('pghe', "BTNPotionGreen.blp"      , "Heals <AIh2,DataA1> hit points when used.", 400, true)
    call InventoryInitItemDB_Func('pgma', "BTNPotionBlueBig.blp"    , "Restores <AIm2,DataA1> mana when used.", 400, true)
    call InventoryInitItemDB_Func('pnvu', "BTNGreaterInvulneralbility.blp", "Makes the Hero invulnerable to damage for <AIvu,Dur1> seconds when used. An invulnerable Hero may not be the target of spells or effects.", 400, true)
    call InventoryInitItemDB_Func('pomn', "BTNPotionOfOmniscience.blp", "Reveals the entire map for <AIrv,Dur1> seconds when used.", 400, true)
    call InventoryInitItemDB_Func('pres', "BTNPotionOfRestoration.blp", "Restores <AIre,DataA1> hit points and <AIre,DataB1> mana of the Hero when used.", 600, true)
    call InventoryInitItemDB_Func('fgrd', "BTNRedDragon.blp"        , "Summons a Red Drake to fight for you. |nLasts <AIfd,Dur1> seconds.", 450, true)
    call InventoryInitItemDB_Func('rej3', "BTNRejuvPotion.blp"      , "|cff87ceebNon-Combat Consumable|r|nRegenerates <AIp3,DataA1> hit points and <AIp3,DataB1> mana of the Hero over <AIp3,Dur1> seconds.", 400, true)
    call InventoryInitItemDB_Func('sand', "BTNSnazzyScrollPurple.blp", "Raises <AIan,DataA1> nearby dead units to fight for <AIan,Dur1> seconds.", 750, true)
    call InventoryInitItemDB_Func('sres', "BTNScrollOfHealing.blp"  , "Restores <AIra,DataA1> hit points and <AIra,DataB1> mana of friendly non-mechanical units in an area around your Hero.", 750, true)
    call InventoryInitItemDB_Func('srrc', "BTNSnazzyScroll.blp"     , "Brings <AIrs,DataA1> of your nearby dead units back to life.", 750, true)
    call InventoryInitItemDB_Func('sror', "BTNSnazzyScrollGreen.blp", "Gives friendly nearby units a <AIrr,DataA1,%>% bonus to damage for <AIrr,Dur1> seconds.", 400, true)
    call InventoryInitItemDB_Func('wswd', "BTNSentryWard.blp"       , "Drops a Sentry Ward to spy upon an area for <AIsw,Dur1> seconds. |nContains <wswd,uses> charges.", 150, true)
    call InventoryInitItemDB_Func('fgfh', "BTNFelHound.blp"         , "Summons a Fel Stalker to fight for you. |nLasts <AIfh,Dur1> seconds.", 450, true)
    call InventoryInitItemDB_Func('fgrg', "BTNRockGolem.blp"        , "Summons a Rock Golem to fight for you. |nLasts <AIfr,Dur1> seconds.", 450, true)
    call InventoryInitItemDB_Func('totw', "BTNStone.blp"            , "This mystic stone summons a Furbolg to fight for you. |nContains <totw,uses> charges. |nLasts <AIff,Dur1> seconds.", 450, true)
    call InventoryInitItemDB_Func('will', "BTNWand.blp"             , "Create an illusory double of the targeted unit when used. The illusory double deals no damage to enemy units, takes <AIil,DataB1> times the damage from enemy attacks, and will disappear after <AIil,Dur1> seconds or when its hit points reach zero. |nContains <will,uses> charges.", 150, true)
    call InventoryInitItemDB_Func('wlsd', "BTNStarWand.blp"         , "Allows the Hero to cast Lightning Shield on a target unit. Lightning Shield surrounds a unit with electricity, dealing <AIls,DataA1> damage per second to nearby units. |nContains <wlsd,uses> charges. |nLasts <AIls,Dur1> seconds.", 150, true)
    call InventoryInitItemDB_Func('woms', "BTNWandOfManaSteal.blp"  , "Steals mana from a target unit and gives it to the Hero. |nContains <woms,uses> charges.", 400, true)
    call InventoryInitItemDB_Func('wshs', "BTNWandOfShadowSight.blp", "Gives the player vision of a target unit until that unit is dispelled. |nContains <wshs,uses> charges.", 150, true)
    call InventoryInitItemDB_Func('wcyc', "BTNWandOfCyclone.blp"    , "Allows the Hero to cast Cyclone. Cyclone tosses a target enemy unit into the air, rendering it unable to attack, move or cast spells. |nContains <wcyc,uses> charges. |nLasts <AIcy,Dur1> seconds.", 450, true)
    //___________
    //_________
    call InventoryInitItemDB_Func('ratf', "BTNClawsOfAttack.blp"    , "Increases the attack damage of the Hero by 15 when worn.", 800, false)
    call InventoryInitItemDB_Func('ckng', "BTNHelmutPurple.blp"     , "Increases the Strength, Intelligence, and Agility of the Hero by 5 when worn.", 1000, false)
    call InventoryInitItemDB_Func('desc', "BTNDaggerOfEscape.blp"   , "Allows the Hero to teleport a short distance.", 400, false)
    call InventoryInitItemDB_Func('modt', "BTNMaskOfDeath.blp"      , "While wearing this mask, a Hero will recover hit points equal to <AIva,DataA1,%>% of the attack damage dealt to an enemy unit.", 1000, false)
    call InventoryInitItemDB_Func('ofro', "BTNOrbOfFrost.blp"       , "Adds <AIob,DataA1> bonus cold damage to the attack of a Hero when carried. The Hero's attacks also become ranged when attacking air and slow the movement speed and attack rate of the enemy for <AIob,Dur1> seconds.", 800, false)
    call InventoryInitItemDB_Func('rde4', "BTNRingGreen.blp"        , "Increases the armor of the Hero by 5 when worn.", 800, false)
    call InventoryInitItemDB_Func('tkno', "BTNTomeRed.blp"          , "Increases the level of the Hero by <AIlm,DataA1> when used.", 1200, false)
    //__________ _______
    call InventoryInitItemDB_Func('pclr', "BTNPotionOfClarity.blp"  , "|cff87ceebNon-Combat Consumable|r|nRegenerates the Hero's mana by <AIpr,DataB1> over <AIpr,Dur1> seconds when used.", 160, true)
    call InventoryInitItemDB_Func('hslv', "BTNHealingSalve.blp"     , "|cff87ceebNon-Combat Consumable|r|nRegenerates a target unit's hit points by <AIrl,DataA1> over <AIrl,Dur1> seconds when used. |nContains <hslv,uses> charges.", 100, true)
    call InventoryInitItemDB_Func('tsct', "BTNHumanWatchTower.blp"  , "Creates a Scout Tower at a target location.", 30, true)
    call InventoryInitItemDB_Func('plcl', "BTNLesserClarityPotion.blp", "|cff87ceebNon-Combat Consumable|r|nRegenerates the Hero's mana by <AIpl,DataB1> over <AIpl,Dur1> seconds when used.", 70, true)
    call InventoryInitItemDB_Func('mcri', "BTNMechanicalCritter.blp", "Creates a player-controlled critter that can be used to scout enemies.", 50, true)
    call InventoryInitItemDB_Func('moon', "BTNMoonStone.blp"        , "Causes an eclipse that blocks out the sun and creates an artificial night. |nLasts <AIct,Dur1> seconds.", 50, true)
    call InventoryInitItemDB_Func('phea', "BTNPotionGreenSmall.blp" , "Heals <AIh1,DataA1> hit points when used.", 150, true)
    call InventoryInitItemDB_Func('pinv', "BTNLesserInvisibility.blp", "|cff87ceebNon-Combat Consumable|r|nRenders the Hero invisible for <AIv1,Dur1> seconds when used. An invisible Hero is untargetable by the enemy unless detected. If the Hero attacks, uses an ability, or casts a spell, the invisibility effect is lost.", 100, true)
    call InventoryInitItemDB_Func('pnvl', "BTNLesserInvulneralbility.blp", "Makes the Hero invulnerable to damage for <AIvl,Dur1> seconds when used. An invulnerable Hero may not be the target of spells or effects.", 150, true)
    call InventoryInitItemDB_Func('rnec', "BTNRodOfNecromancy.blp"  , "Creates two Skeleton Warriors from a corpse. |nContains <rnec,uses> charges.", 150, true)
    call InventoryInitItemDB_Func('pman', "BTNPotionBlueSmall.blp"  , "Restores <AIm1,DataA1> mana when used.", 200, true)
    call InventoryInitItemDB_Func('skul', "BTNSacrificialSkull.blp" , "Creates an area of Blight at a target location.", 50, true)
    call InventoryInitItemDB_Func('shea', "BTNScrollOfTownPortal.blp", "Heals <AIha,DataA1> hit points to all friendly non-mechanical units around the Hero when used.", 250, true)
    call InventoryInitItemDB_Func('sman', "BTNScrollOfProtection.blp", "Restores <AImr,DataA1> mana to all friendly units in an area around your Hero.", 150, true)
    call InventoryInitItemDB_Func('spro', "BTNScroll.blp"           , "Increases the armor of all friendly units in an area around your Hero by <AIda,DataA1> for <AIda,Dur1> seconds.", 150, true)
    call InventoryInitItemDB_Func('sreg', "BTNScrollOfRegenerationGreen.blp", "|cff87ceebNon-Combat Consumable|r|nRegenerates the hit points of all friendly non-mechanical units in an area around your Hero by <AIsl,DataA1> over <AIsl,Dur1> seconds when used.", 100, true)
    call InventoryInitItemDB_Func('shas', "BTNScrollOfHaste.blp"    , "Increases the movement speed of the Hero and nearby allied units to the maximum movement speed. |nLasts <AIsa,Dur1> seconds.", 50, true)
    call InventoryInitItemDB_Func('stwp', "BTNScrollUber.blp"       , "Teleports the Hero and any of its nearby troops to a target friendly town hall.", 350, true)
    call InventoryInitItemDB_Func('silk', "BTNSpiderSilkBroach.blp" , "Binds a target enemy air unit in webbing, forcing the target to the ground. Webbed units can be hit as though they were land units. |nContains <silk,uses> charges.", 50, true)
    call InventoryInitItemDB_Func('sneg', "BTNStaffOfNegation.blp"  , "Dispels all magical effects in a target area. |n|cffffcc00Deals <AIdi,DataB1> damage to summoned units.|r", 200, true)
    call InventoryInitItemDB_Func('ssan', "BTNStaffOfSanctuary.blp" , "Teleports a target unit to your highest level town hall, stunning the unit and regenerating <ANsa,DataE1> hit points per second. Lasts until the unit is fully healed.", 250, true)
    call InventoryInitItemDB_Func('tcas', "BTNTinyCastle.blp"       , "Creates a Castle at a target location.", 800, true)
    call InventoryInitItemDB_Func('tgrh', "BTNGreathall.blp"        , "Creates a Great Hall at a target location. Human, Night Elf, and Undead players will get their racial equivalent town hall.", 600, true)
    call InventoryInitItemDB_Func('tret', "BTNTomeOfRetraining.blp" , "Unlearns all of the Hero's spells, allowing the Hero to learn different skills.", 300, true)
    call InventoryInitItemDB_Func('vamp', "BTNPotionOfVampirism.blp", "Adds <AIpv,DataA1> bonus damage and a life-stealing attack to the Hero. |nLasts <AIpv,Dur1> seconds.", 75, true)
    call InventoryInitItemDB_Func('wneg', "BTNWandSkull.blp"        , "Dispels all magical effects in a target area. |nContains <wneg,uses> charges. |n|cffffcc00Deals <AIdi,DataB1> damage to summoned units.|r", 200, true)
    call InventoryInitItemDB_Func('wneu', "BTNWandOfNeutralization.blp", "Hurls forth a stream of neutralizing magic that bounces up to <AIdc,DataC1> times, dispelling units in its wake. |nContains <wneu,uses> charges.", 150, true)
    //______ ___ ________
    call InventoryInitItemDB_Func('kybl', "BTNBloodKey.blp"         , "This key is covered in blood.", 200, false)
    call InventoryInitItemDB_Func('ches', "BTNCheese.blp"           , "Cheese cheese cheese cheese!", 250, false)
    call InventoryInitItemDB_Func('bzbe', "BTNVialEmpty.blp"        , "A special vial adept at containing the magical healing waters of a Fountain of Life.", 200, false)
    call InventoryInitItemDB_Func('engs', "BTNEnchantedGemstone.blp", "This artifact of the Kelani Magi is said to hold the power to make constructs out of pure energy. When the Kelani fell to ruin, the Razormane Quillboars were quick to scavenge and covet these beautiful and powerful objects.", 200, false)
    call InventoryInitItemDB_Func('bzbf', "BTNVialFull.blp"         , "A special vial adept at containing the magical healing waters of a Fountain of Life.", 200, false)
    call InventoryInitItemDB_Func('gmfr', "BTNGem.blp"              , "A fragment of a gem from a powerful ring.", 200, false)
    call InventoryInitItemDB_Func('ledg', "BTNSorceressMaster.blp"  , "This Ledger looks to be full of boring facts and figures.", 200, false)
    call InventoryInitItemDB_Func('kygh', "BTNGhostKey.blp"         , "This key is rather insubstantial.", 200, false)
    call InventoryInitItemDB_Func('gopr', "BTNGlyph.blp"            , "Created by ancient druids, this glyph has the power to heal the land.", 250, false)
    call InventoryInitItemDB_Func('azhr', "BTNHeartOfAszune.blp"    , "Legends say that the imprisoned spirit of Aszune seeks out her heart to this very day.", 200, false)
    call InventoryInitItemDB_Func('cnhn', "BTNHornOfCenarius.blp"   , "This ancient relic of the Night Elves is said to hold the power to call the spirits of all Night Elves. It imbues its owner with <AIl1,DataA1> hit points, and a <Arel,DataA1> hit point per second regeneration bonus.", 200, false)
    call InventoryInitItemDB_Func('dkfw', "BTNBarrel.blp"           , "A keg filled to the brim with the strongest drink available this side of Khaz Modan!", 200, false)
    call InventoryInitItemDB_Func('k3m3', "BTN3M3.blp"              , "Cut from the sapphire Body of Enulaia, it opens the soul of the Gate Keeper.", 200, false)
    call InventoryInitItemDB_Func('mgtk', "BTNBlood&GhostKey.blp"   , "This magical chain of keys can open many doors.", 200, false)
    call InventoryInitItemDB_Func('mort', "BTNSpy.blp"              , "The letter is magically sealed. On the front, written in large scrawling letters is the word Thrall.", 200, false)
    call InventoryInitItemDB_Func('kymn', "BTNMoonKey.blp"          , "This key glows faintly.", 200, false)
    call InventoryInitItemDB_Func('k3m1', "BTN3M1.blp"              , "Cut from the emerald Eye of Jennala, it opens the mind of the Gate Keeper.", 200, false)
    call InventoryInitItemDB_Func('jpnt', "BTNScrollOfProtection.blp", "A note from Thrall, for Jaina Proudmoore.", 200, false)
    call InventoryInitItemDB_Func('k3m2', "BTN3M2.blp"              , "Cut from the amethyst Stone of Hannalee, it opens the heart of the Gate Keeper.", 200, false)
    call InventoryInitItemDB_Func('phlt', "BTNUndeadShrine.blp"     , "There is no phatter lewt than this.", 500, false)
    call InventoryInitItemDB_Func('sclp', "BTNSelectHeroOn.blp"     , "Unlocks a secret level!", 75, false)
    call InventoryInitItemDB_Func('sorf', "BTNOrbOfDarkness.blp"    , "A fragment of a powerful artifact.", 200, false)
    call InventoryInitItemDB_Func('shwd', "BTNShimmerWeed.blp"      , "Wondrous plant said to have miraculous mind-expanding properties.", 200, false)
    call InventoryInitItemDB_Func('skrt', "BTNOrbOfCorruption.blp"  , "This ancient artifact entraps the souls of those who die violently, forcing them to relive the last moments of their lives for eternity.", 250, false)
    call InventoryInitItemDB_Func('glsk', "BTNGuldanSkull.blp"      , "Once a powerful user of Demonic magics, the Demons answered his calls, and found a greater use for his head.", 200, false)
    call InventoryInitItemDB_Func('kysn', "BTNSunKey.blp"           , "This key glows brightly.", 200, false)
    call InventoryInitItemDB_Func('sehr', "BTNHeartOfSearinox.blp"  , "The still beating heart of Searinox can be used to imbue an Orb with the fiery powers of a Dragon.", 200, false)
    call InventoryInitItemDB_Func('thle', "BTNThunderLizardEgg.blp" , "This massive egg will not hatch without a parent to warm it.", 200, false)
    call InventoryInitItemDB_Func('dphe', "BTNThunderLizardEgg.blp" , "A rare egg of a Thunder Hawk.", 200, false)
    call InventoryInitItemDB_Func('dthb', "BTNManaFlareOff.blp"     , "An exotic plant well known for its unstable and dangerous properties.", 200, false)
    call InventoryInitItemDB_Func('ktrm', "BTNUrnOfKelThuzad.blp"   , "Formerly the container of King Terenas' ashes, this magically enchanted Urn was chosen by Tichondrius to preserve Kel'Thuzad's remains.", 200, false)
    call InventoryInitItemDB_Func('wtlg', "BTNWirtsLeg.blp"         , "Could it be that a portal opened up and expelled the remains of our dearest pal from the world of Diablo to here? If so, was it a player, or a Demon? Just how many worlds have the Burning Legion conquered? Could the Demons of the Burning Legion and those of Sanctuary be one and the same? The mind wobbles.", 200, false)
    call InventoryInitItemDB_Func('wolg', "BTNWirtsOtherLeg.blp"    , "Perhaps the overzealous adventurer pried this off before his journey here thinking it might give him one last opportunity at bovine slaughter. Little did he know where it would lead him.", 200, false)
    //_____
    call InventoryInitItemDB_Func('amrc', "BTNAmulet.blp"           , "Teleports <AIrt,DataA1> of the player's units within the targeted area to the location of the Hero when used.", 250, true)
    call InventoryInitItemDB_Func('axas', "BTNWitchDoctorMaster.blp", "|cffff8c00Artifact|r|nSummons <AIsh,DataB1> Troll Berserkers to fight for you. Also grants the Hero and friendly nearby units increased attack rate and movement speed.|n|cffffcc00History|r|n|cffffdeadNames of generations of Witch Doctors are carved into this staff. The wielder can call upon them for wisdom and guidance in times of peril.|r", 3000, false)
    call InventoryInitItemDB_Func('anfg', "BTNClayFigurine.blp"     , "Increases the Intelligence of the Hero by 1 when carried.", 150, false)
    call InventoryInitItemDB_Func('pams', "BTNSnazzyPotion.blp"     , "Gives the Hero immunity to magical spells for <AIxs,Dur1> seconds.", 100, true)
    call InventoryInitItemDB_Func('arsc', "BTNBansheeAdept.blp"     , "A powerful scroll that restores <AIha,DataA1> hit points, <AImr,DataA1> mana, and grants <AIda,DataA1> bonus armor to nearby friendly units.", 1000, true)
    call InventoryInitItemDB_Func('arsh', "BTNArcaniteArmor.blp"    , "Reduces damage from ranged attacks to <AIdd,DataA1,%>%. Also increases the Hero's armor by <AId5,DataA1> when worn.", 3500, false)
    call InventoryInitItemDB_Func('asbl', "BTNDaggerOfEscape.blp"   , "Adds <AItj,DataA1> bonus damage to the attack of the Hero when carried. The Hero's attacks also deal <AIsz,DataA1> damage per second, and slow the movement speed and attack rate of the enemy.", 2000, false)
    call InventoryInitItemDB_Func('btst', "BTNOrcBattleStandard.blp", "The Battle Standard of Thrall's Orcs, carry it with pride.", 1000, false)
    call InventoryInitItemDB_Func('blba', "BTNArmorGolem.blp"       , "Grants nearby units <AIad,DataA1> bonus defense. Enhances the Hero's armor by <AId7,DataA1>.", 3500, false)
    call InventoryInitItemDB_Func('bfhr', "BTNPhilosophersStone.blp", "|cff8b00ffUnique|r|nIncreases the Hero's agility by <AIaz,DataA1> when worn.", 2500, false)
    call InventoryInitItemDB_Func('brag', "BTNRingPurple.blp"       , "Increases the Agility of the Hero by 1 when worn.", 50, false)
    call InventoryInitItemDB_Func('cosl', "BTNUsedSoulGem.blp"      , "|cffff8c00Artifact|r|nBrings <AIrx,DataA1> of your nearby dead units back to life. |n|cffffcc00History|r|n|cffffdeadCrafted by the Titans as gifts to their favored creations, the Celestial Orb of Souls channels the powers of the light to bring back to life those who have recently fallen.|r", 10000, false)
    call InventoryInitItemDB_Func('rat3', "BTNClawsOfAttack.blp"    , "Increases the attack damage of the Hero by 3 when worn.", 50, false)
    call InventoryInitItemDB_Func('stpg', "BTNPenguin.blp"          , "This penguin squeak-toy was first created by the goblin tinkerer Salzhigh for the centaur. Regarding it with some awe (having never seen a penguin before) the centaur purchased them as idols and worshipped them at altars.", 450,  false)
    call InventoryInitItemDB_Func('crdt', "BTNRevenant.blp"         , "|cffff8c00Artifact|r|nGrants the ability to fire bolts of pain that deal <AIfz,DataC1> damage. Also increases the Hero's hit points by <AIlf,DataA1> and mana by <AImz,DataA1> when worn.|n|cffffcc00History|r|n|cffffdeadThe Deathlords are rumored to have been mighty Paladins once. One of their order turned from the light when he slaughtered his own family, believing they were impure.|r", 6400, false)
    call InventoryInitItemDB_Func('dtsb', "BTNSorceressMaster.blp"  , "|cffff8c00Artifact|r|nGrants the ability to portal to your home town. Also reduces spell damage by <AIsr,DataB1,%>% and increases the Hero's mana by <AImv,DataA1> while equipped.|n|cffffcc00History|r|n|cffffdeadDrek'Thar's old spellbook is filled with pages stolen from Kirin Tor mages that were slain in battle.|r", 3350, false)
    call InventoryInitItemDB_Func('drph', "BTNDust.blp"             , "Increases the Intelligence of the Hero by 1 when carried.", 50, false)
    call InventoryInitItemDB_Func('dust', "BTNDustOfAppearance.blp" , "Reveals enemy invisible units in an area around the Hero. |nContains <dust,uses> charges. |nLasts <AItb,Dur1> seconds.", 750, true)
    call InventoryInitItemDB_Func('shen', "BTNThoriumArmor.blp"     , "Increases the Hero's armor by <AId2,DataA1> and hit points by <AIlz,DataA1> when worn.", 650, false)
    call InventoryInitItemDB_Func('envl', "BTNVialFull.blp"         , "Regenerates <AIp3,DataA1> hit points and <AIp3,DataB1> mana of the Hero over <AIp3,Dur1> seconds. |nContains <envl,uses> charges.", 450, true)
    call InventoryInitItemDB_Func('esaz', "BTNHeartOfAszune.blp"    , "Legends speak of an intelligent Orc who found the Heart of Aszune. This is the essence of her heart, precious to the Night Elves. It has the power to heal the Hero that wields it. This item is permanent.", 600, false)
    call InventoryInitItemDB_Func('frhg', "BTNAdvancedUnholyStrength.blp", "Increases armor by <AId5,DataA1> and attack rate by <AIs2,DataA1,%>% when worn.", 3500, false)
    call InventoryInitItemDB_Func('fgun', "BTNFlare.blp"            , "Reveals a target area on the map. |nContains <fgun,uses> charges.", 125, false)
    call InventoryInitItemDB_Func('fwss', "BTNGrimWard.blp"         , "This ancient Frost Wyrm skull has been equipped with handles, turning it into a powerful shield. Increases armor by 2 when worn and reduces Magic damage dealt to the Hero by <AIsr,DataB1,%>%.", 750, false)
    call InventoryInitItemDB_Func('frgd', "BTNThoriumMelee.blp"     , "Adds <AIft,DataA1> bonus cold damage to the attack of a Hero and <AId5,DataA1> bonus armor when carried. The Hero's attacks also slow the movement speed and attack rate of the enemy.", 1400, false)
    call InventoryInitItemDB_Func('gemt', "BTNGem.blp"              , "Allows the Hero to detect hidden or invisible units in the Hero's line of sight when carried.", 200, false)
    call InventoryInitItemDB_Func('gvsm', "BTNSpellSteal.blp"       , "|cff8b00ffUnique|r|nGrants the ability to control summoned units. Also increases the intelligence of the Hero by <AIa6,DataA1> when worn.", 1400, false)
    call InventoryInitItemDB_Func('gobm', "BTNGoblinLandMine.blp"   , "Places a hidden land mine at a target point. Enemy units that move near the land mine will activate the mine, destroying the mine and causing area of effect damage to nearby units. |nContains <gobm,uses> charges.", 225, true)
    call InventoryInitItemDB_Func('tels', "BTNTelescope.blp"        , "Provides an increase to the Hero's line of sight radius at night when carried.", 200, false)
    call InventoryInitItemDB_Func('rej4', "BTNGreaterRejuvPotion.blp", "|cff87ceebNon-Combat Consumable|r|nRegenerates <AIp4,DataA1> hit points and <AIp4,DataB1> mana of the Hero over <AIp4,Dur1> seconds.", 450, true)
    call InventoryInitItemDB_Func('rej6', "BTNGreaterRejuvScroll.blp", "|cff87ceebNon-Combat Consumable|r|nRegenerates <AIp6,DataA1> hit points and <AIp6,DataB1> mana of the Hero and nearby friendly units over <AIp6,Dur1> seconds.", 500, true)
    call InventoryInitItemDB_Func('grsl', "BTNNecromancerMaster.blp", "|cff87ceebUnique Consumable|r|nThis powerful book permanently increases the hit points of the Hero by <AIpx,DataA1> each time it is used. |nContains <grsl,uses> charges.", 1350, true)
    call InventoryInitItemDB_Func('hbth', "BTNUnholyAura.blp"       , "|cff8b00ffUnique|r|nGrants the ability to go Berserk, causing the Hero to attack <AIxk,DataB1,%>% faster but take <AIxk,DataC1,%>% more damage. Also increases strength and agility by 4 when worn.", 4200, false)
    call InventoryInitItemDB_Func('sfog', "BTNHornOfFog.blp"        , "Allows the Hero to channel the Cloud ability, which stops an area of enemy towers from attacking for <AIfg,Dur1> seconds.", 200, false)
    call InventoryInitItemDB_Func('flag', "BTNHumanCaptureFlag.blp" , "An object that is often captured in special scenarios as a win condition.", 1000, false)
    call InventoryInitItemDB_Func('iwbr', "BTNNatureTouchGrow.blp"  , "Increases the Strength of the Hero by 1 when carried.", 50, false)
    call InventoryInitItemDB_Func('jdrn', "BTNRingJadeFalcon.blp"   , "Increases the Agility of the Hero by 1 when worn.", 50, false)
    call InventoryInitItemDB_Func('kgal', "BTNBarrel.blp"           , "Increases hit point and mana regeneration.", 850, false)
    call InventoryInitItemDB_Func('klmm', "BTNSpiritWalkerAdeptTraining.blp", "|cffff8c00Artifact|r|nIncreases the attack damage of the Hero by <AItx,DataA1> when carried. Also causes the Hero's attacks to steal life.|n|cffffcc00History|r|n|cffffdeadWhen Dethorin found his lady, Allurana, in the arms of another, he went to the Barrens and cried out. An axe burst forth from the sands as if in answer. Dethorin slew Allurana and her lover, then hurled the axe with all his might into the deep dark sea.|r", 7500, false)
    call InventoryInitItemDB_Func('rej2', "BTNLesserRejuvPotion.blp", "|cff87ceebNon-Combat Consumable|r|nRegenerates <AIp2,DataA1> hit points and <AIp2,DataB1> mana of the Hero over <AIp2,Dur1> seconds.", 150, true)
    call InventoryInitItemDB_Func('rej5', "BTNLesserRejuvScroll.blp", "|cff87ceebNon-Combat Consumable|r|nRegenerates <AIp5,DataA1> hit points and <AIp5,DataB1> mana of the Hero and nearby friendly units over <AIp5,Dur1> seconds.", 400, true)
    call InventoryInitItemDB_Func('lnrn', "BTNRingLionHead.blp"     , "Increases the Agility of the Hero by 1 when worn.", 50, false)
    call InventoryInitItemDB_Func('mlst', "BTNHammer.blp"           , "Increases the Strength of the Hero by 1 when carried.", 50, false)
    call InventoryInitItemDB_Func('mnsf', "BTNBrilliance.blp"       , "Increases the mana of the Hero by <AI2m,DataA1>. Also grants the Hero and friendly nearby units a bonus to mana regeneration.", 1800, false)
    call InventoryInitItemDB_Func('rej1', "BTNMinorRejuvPotion.blp" , "|cff87ceebNon-Combat Consumable|r|nRegenerates <AIp1,DataA1> hit points and <AIp1,DataB1> mana of the Hero over <AIp1,Dur1> seconds.", 100, true)
    call InventoryInitItemDB_Func('lure', "BTNMonsterLure.blp"      , "Creates a ward that draws nearby creeps to it.", 200, true)
    call InventoryInitItemDB_Func('nspi', "BTNNecklace.blp"         , "Renders the Hero invulnerable to magic.", 1000, false)
    call InventoryInitItemDB_Func('nflg', "BTNNightElfCaptureFlag.blp", "An object that is often captured in special scenarios as a win condition.", 1000, false)
    call InventoryInitItemDB_Func('ocor', "BTNOrbOfCorruption.blp"  , "Adds <AIcb,DataA1> bonus damage to the attack of a Hero when carried. The Hero's attacks also become ranged when attacking air and reduce the armor of enemy units for <AIcb,Dur1> seconds.", 400, false)
    call InventoryInitItemDB_Func('ofir', "BTNOrbOfFire.blp"        , "Adds <AIfb,DataA1> bonus fire damage to the attack of a Hero when carried. The Hero's attacks also become ranged when attacking air and do splash damage to nearby enemy units.", 400, false)
    call InventoryInitItemDB_Func('gldo', "BTNUsedSoulGem.blp"      , "Adds <AIgd,DataA1> bonus fire damage to the attack of a Hero when carried. The Hero's attacks also become ranged when attacking air and do splash damage to nearby enemy units.", 450, false)
    call InventoryInitItemDB_Func('olig', "BTNOrbOfLightning.blp"   , "Adds <AIlb,DataA1> bonus damage to the attack of a Hero when carried. The Hero's attacks also become ranged when attacking air, dispel magic and slow the movement speed of the enemy for <AIlp,Dur1> seconds. |n|cffffcc00Deals <AIlp,DataC1> bonus damage to summoned units.", 450, false)
    call InventoryInitItemDB_Func('oli2', "BTNOrbOfLightning.blp"   , "Adds <AIll,DataA1> bonus damage to the attack of a Hero when carried. The Hero's attacks also become ranged when attacking air, and have a chance to dispel magic and slow the movement speed of the enemy for <AIlp,Dur1> seconds. |n|cffffcc00Deals <AIpg,DataC1> bonus damage to summoned units.", 400, false)
    call InventoryInitItemDB_Func('oslo', "BTNOrbofSlowness.blp"    , "Adds <AIsb,DataA1> bonus damage to the attack of a Hero when carried. The Hero's attacks also become ranged when attacking air, and have a chance to slow a target enemy unit's movement speed by <AIos,DataA1,%>% and attack rate by <AIos,DataB1,%>% for <AIos,Dur1> seconds.", 550, false)
    call InventoryInitItemDB_Func('oven', "BTNOrbOfVenom.blp"       , "Adds <AIpb,DataA1> bonus damage to the attack of a Hero when carried. The Hero's attacks also become ranged when attacking air and poison enemy units for <Apo2,Dur1> seconds.", 400, false)
    call InventoryInitItemDB_Func('oflg', "BTNOrcCaptureFlag.blp"   , "An object that is often captured in special scenarios as a win condition.", 1000, false)
    call InventoryInitItemDB_Func('pgin', "BTNGreaterInvisibility.blp", "|cff87ceebNon-Combat Consumable|r|nRenders the Hero invisible for <AIv2,Dur1> seconds when used. An invisible Hero is untargetable by the enemy unless detected. If the Hero attacks, uses an ability, or casts a spell, the invisibility effect is lost.", 200, true)
    call InventoryInitItemDB_Func('pspd', "BTNPotionRed.blp"        , "Increases the movement speed of the Hero by <AIsp,DataA1,%>% for <AIsp,Dur1> seconds.", 75, true)
    call InventoryInitItemDB_Func('rde0', "BTNRingGreen.blp"        , "Increases the armor of the Hero by 1 when worn.", 50, false)
    call InventoryInitItemDB_Func('rnsp', "BTNGoldRing.blp"         , "Increases the Strength, Agility and Intelligence of the Hero by 1 when worn.", 100, false)
    call InventoryInitItemDB_Func('ram1', "BTNRingJadeFalcon.blp"   , "A powerful artifact with a sliver of a fragmented gem inset. Increases the Strength, Agility and Intelligence of the Hero by 1.", 125, false)
    call InventoryInitItemDB_Func('ram4', "BTNRingJadeFalcon.blp"   , "A powerful artifact with a wondrous gem inset. Increases the Strength, Agility and Intelligence of the Hero by 3 and gives nearby friendly units a bonus to mana regeneration.", 750, false)
    call InventoryInitItemDB_Func('ram2', "BTNRingJadeFalcon.blp"   , "A powerful artifact with a part of a fragmented gem inset. Increases the Strength, Agility and Intelligence of the Hero by 2.", 300, false)
    call InventoryInitItemDB_Func('ram3', "BTNRingJadeFalcon.blp"   , "A powerful artifact with most of a fragmented gem inset. Increases the Strength, Agility and Intelligence of the Hero by 3.", 550, false)
    call InventoryInitItemDB_Func('rugt', "BTNImprovedUnholyStrength.blp", "Increases the strength and armor of the Hero by 3 when worn.", 725, false)
    call InventoryInitItemDB_Func('rump', "BTNGatherGold.blp"       , "This heavy pick can be swung with force. Increases the Hero's attack damage by <AItg,DataA1> and gives a <AIbx,DataA1>% chance to stun the enemy.", 100, false)
    call InventoryInitItemDB_Func('horl', "BTNGlyph.blp"            , "A powerful artifact, sacred to the orc shaman. |nGrants the Hero and friendly nearby units increased attack rate and movement speed. |nDoes not stack with Endurance Aura.", 950, false)
    call InventoryInitItemDB_Func('schl', "BTNPriestAdept.blp"      , "Grants the ability to heal a friendly unit. Also grants the Hero and friendly nearby units <AIgx,DataA1,%>% increased hit point regeneration.", 4200, false)
    call InventoryInitItemDB_Func('ccmd', "BTNScepterOfMastery.blp" , "Transfers control of the targeted non-Hero unit to the player who uses the Scepter. The transfer of control is permanent. |nCannot be used on Heroes or on creeps higher than level <AIco,DataA1>. |nContains <ccmd,uses> charges.", 1000, true)
    call InventoryInitItemDB_Func('rots', "BTNWitchDoctorAdept.blp" , "|cff87ceebUnique Consumable|r|nSummons <AIwm,DataA1> Murlocs to fight for you. Also increases the Hero's strength, agility, and intelligence by 2. |nContains <rots,uses> charges.", 1000, true)
    call InventoryInitItemDB_Func('scul', "BTNBansheeMaster.blp"    , "Animates <AIan,DataA1> nearby corpses to fight for you. Lasts <AIan,Dur1> seconds.", 950, true)
    call InventoryInitItemDB_Func('srbd', "BTNArcaniteMelee.blp"    , "Adds <AIfw,DataA1> bonus fire damage to the attack of a Hero when carried. The Hero's attacks also do splash damage to nearby enemy units, and have a <AIcs,DataA1>% chance to deal <AIcs,DataB1> times their normal damage.", 1650, false)
    call InventoryInitItemDB_Func('srtl', "BTNOrcMeleeUpThree.blp"  , "|cffff8c00Artifact|r|nIncreases the attack rate of the Hero by <AIsx,DataA1,%>% and attack damage by <AItf,DataA1>.|n|cffffcc00History|r|n|cffffdeadThis weapon was crafted on Draenor for Kash'drakor and used in the Blood River war that ended with the annihilation of the Dark Scar clan. Nazgrel is the last living relative of Kash'drakor.|r", 5500, false)
    call InventoryInitItemDB_Func('sor1', "BTNOrbOfDarkness.blp"    , "This artifact was imbued with special powers by the Orc Shadow Council. It increases your attack damage by 1.", 50, false)
    call InventoryInitItemDB_Func('sora', "BTNOrbOfDarkness.blp"    , "This artifact was imbued with special powers by the Orc Shadow Council. It increases your attack damage by 10, armor by 3 and grants enhanced hit point regeneration.", 1250, false)
    call InventoryInitItemDB_Func('sor2', "BTNOrbOfDarkness.blp"    , "This artifact was imbued with special powers by the Orc Shadow Council. It increases your attack damage by 2.", 100, false)
    call InventoryInitItemDB_Func('sor3', "BTNOrbOfDarkness.blp"    , "This artifact was imbued with special powers by the Orc Shadow Council. It increases your attack damage by 3.", 200, false)
    call InventoryInitItemDB_Func('sor4', "BTNOrbOfDarkness.blp"    , "This artifact was imbued with special powers by the Orc Shadow Council. It increases your attack damage by 4 and armor by 1.", 300, false)
    call InventoryInitItemDB_Func('sor5', "BTNOrbOfDarkness.blp"    , "This artifact was imbued with special powers by the Orc Shadow Council. It increases your attack damage by 5 and armor by 1.", 350, false)
    call InventoryInitItemDB_Func('sor6', "BTNOrbOfDarkness.blp"    , "This artifact was imbued with special powers by the Orc Shadow Council. It increases your attack damage by 6 and armor by 1.", 400, false)
    call InventoryInitItemDB_Func('sor7', "BTNOrbOfDarkness.blp"    , "This artifact was imbued with special powers by the Orc Shadow Council. It increases your attack damage by 7 and armor by 2.", 550, false)
    call InventoryInitItemDB_Func('sor8', "BTNOrbOfDarkness.blp"    , "This artifact was imbued with special powers by the Orc Shadow Council. It increases your attack damage by 8 and armor by 2.", 700, false)
    call InventoryInitItemDB_Func('sor9', "BTNOrbOfDarkness.blp"    , "This artifact was imbued with special powers by the Orc Shadow Council. It increases your attack damage by 9, armor by 2 and grants enhanced hit point regeneration.", 900, false)
    call InventoryInitItemDB_Func('shcw', "BTNShamanMaster.blp"     , "|cff8b00ffUnique|r|nThese are given to shaman upon the completion of their training. Increases attack damage by <AIlx,DataA1>. The Hero's attacks also have a chance to dispel magic and slow the movement speed of the enemy for <AIpg,Dur1> seconds.", 950, false)
    call InventoryInitItemDB_Func('shtm', "BTNEntrapmentWard.blp"   , "This powerful Orc artifact channels Shamanic powers through its user, allowing them to cast Purge.", 600, false)
    call InventoryInitItemDB_Func('shhn', "BTNHumanArmorUpThree.blp", "|cff8b00ffUnique|r|nGrants nearby friendly units a <AIcd,DataA1,%>% bonus to attack damage. Also increases the armor of the Hero by <AId8,DataA1> when worn.", 3350, false)
    call InventoryInitItemDB_Func('shdt', "BTNLightningShield.blp"  , "|cffff8c00Artifact|r|nEngulfs the Hero in fire which deals <AIcf,DataA1> damage per second to nearby enemy land units. Also increases the Hero's armor by <AId0,DataA1>, hit points by <AIlf,DataA1>, and mana by <AImz,DataA1> when worn. |n|cffffcc00History|r|n|cffffdeadWhen Arthas took up the sword against his own people in Stratholme, the Deathlords committed the same heinous act in many other cities across Lordaeron.|r", 9000, false)
    call InventoryInitItemDB_Func('shrs', "BTNMonsterLure.blp"      , "A tasty roast with a shimmerweed base. Heals <AIhx,DataA1> hit points when eaten. |nContains <shrs,uses> charges.", 150, true)
    call InventoryInitItemDB_Func('sksh', "BTNGrimWard.blp"         , "Increases the Strength of the Hero by 1 when carried.", 200, false)
    call InventoryInitItemDB_Func('soul', "BTNUsedSoulGem.blp"      , "A soul, trapped by the enchantments of a Soul Gem.", 1000, false)
    call InventoryInitItemDB_Func('gsou', "BTNSoulGem.blp"          , "Traps the targeted enemy Hero inside the Soul Gem when used. The enemy Hero is returned to play when the bearer of the Soul Gem is killed. While an enemy Hero is trapped, the bearer of the Soul Gem is revealed to the enemy through the Fog of War.", 1000, true)
    call InventoryInitItemDB_Func('sbok', "BTNSpellBookBLS.blp"     , "A book full of random spells.", 325, false)
    call InventoryInitItemDB_Func('sprn', "BTNRingVioletSpider.blp" , "Increases the Agility of the Hero by 1 when worn.", 50, false)
    call InventoryInitItemDB_Func('spre', "BTNStaffOfPreservation.blp", "Teleports a target friendly unit to its highest level town hall.", 200, false)
    call InventoryInitItemDB_Func('stre', "BTNWandSkull.blp"        , "Animates a nearby corpse to fight your enemies. Lasts <AInd,Dur1> seconds.", 200, false)
    call InventoryInitItemDB_Func('stwa', "BTNOrcMeleeUpOne.blp"    , "Increases the attack damage of the Hero by <AItj,DataA1> when carried.", 600, false)
    call InventoryInitItemDB_Func('thdm', "BTNEnchantedGemstone.blp", "|cff8b00ffUnique|r|nCasts bolts of lightning that deal damage to multiple targets.", 1190, false)
    call InventoryInitItemDB_Func('tbak', "BTNAltarOfKings.blp"     , "Creates a Altar of Kings at a target location.", 180, true)
    call InventoryInitItemDB_Func('tbar', "BTNHumanBarracks.blp"    , "Creates a Barracks at a target location.", 160, true)
    call InventoryInitItemDB_Func('tbsm', "BTNBlacksmith.blp"       , "Creates a Blacksmith at a target location.", 200, true)
    call InventoryInitItemDB_Func('tfar', "BTNFarm.blp"             , "Creates a Farm at a target location.", 75, true)
    call InventoryInitItemDB_Func('tlum', "BTNHumanLumberMill.blp"  , "Creates a Lumber Mill at a target location.", 150, true)
    call InventoryInitItemDB_Func('tgxp', "BTNManual3.blp"          , "Gives the Hero <AIe2,DataA1> bonus experience points when used.", 1000, true)
    call InventoryInitItemDB_Func('tmsc', "BTNNecromancerAdept.blp" , "|cff8b00ffUnique|r|nGrants the ability to sacrifice a friendly non-Hero unit to restore hit points. Also increases the Hero's mana by <AImz,DataA1> while equipped.", 1250, false)
    call InventoryInitItemDB_Func('tmmt', "BTNEntrapmentWard.blp"   , "Increases the Strength of the Hero by 1 when carried.", 50, false)
    call InventoryInitItemDB_Func('uflg', "BTNUndeadCaptureFlag.blp", "An object that is often captured in special scenarios as a win condition.", 1000, false)
    call InventoryInitItemDB_Func('vddl', "BTNShadowPact.blp"       , "Increases the Intelligence of the Hero by 1 when carried.", 50, false)
    //---------------------------------------------------------------------------------------------------+
    //                                                                                                   |
    //                                               Dest                                                |
    //                                                                                                   |
    //---------------------------------------------------------------------------------------------------+
    //________
    call InventoryInitDestDB_Func('D000', "BTNSpellShieldAmulet.blp")
    call InventoryInitDestDB_Func('D001', "BTNAmuletOftheWild.blp")
    call InventoryInitDestDB_Func('D002', "BTNPendantOfMana.blp")
    call InventoryInitDestDB_Func('D003', "BTNAmulet.blp")
    call InventoryInitDestDB_Func('D004', "BTNPendantOfEnergy.blp")
    call InventoryInitDestDB_Func('D005', "BTNSnazzyPotion.blp")
    call InventoryInitDestDB_Func('D006', "BTNArcaniteArmor.blp")
    call InventoryInitDestDB_Func('D007', "BTNOrcMeleeUpOne.blp")
    call InventoryInitDestDB_Func('D008', "BTNDrum.blp")
    call InventoryInitDestDB_Func('D009', "BTNClawsOfAttack.blp")
    call InventoryInitDestDB_Func('D00A', "BTNBarrel.blp")
    call InventoryInitDestDB_Func('D00B', "BTNRingPurple.blp")
    call InventoryInitDestDB_Func('D00C', "BTNCirclet.blp")
    call InventoryInitDestDB_Func('D00D', "BTNNatureTouchGrow.blp")
    call InventoryInitDestDB_Func('D00E', "BTNBlood&GhostKey.blp")
    call InventoryInitDestDB_Func('D00F', "BTNWirtsOtherLeg.blp")
    call InventoryInitDestDB_Func('D00G', "BTNBundleOfLumber.blp")
    call InventoryInitDestDB_Func('D00H', "BTNGoblinLandMine.blp")
    call InventoryInitDestDB_Func('D00I', "BTNTelescope.blp")
    call InventoryInitDestDB_Func('D00J', "BTNOrcMeleeUpThree.blp")
    call InventoryInitDestDB_Func('D00K', "BTNSpy.blp")
    call InventoryInitDestDB_Func('D00L', "BTNArmorGolem.blp")
    call InventoryInitDestDB_Func('D00M', "BTNClayFigurine.blp")
    call InventoryInitDestDB_Func('D00N', "BTNHealingWard.blp")
    call InventoryInitDestDB_Func('D00O', "BTNUsedSoulGem.blp")
    call InventoryInitDestDB_Func('D00P', "BTNWandOfCyclone.blp")
    call InventoryInitDestDB_Func('D00Q', "BTNWand.blp")
    call InventoryInitDestDB_Func('D00R', "BTNPriestAdept.blp")
    call InventoryInitDestDB_Func('D00S', "BTNStarWand.blp")
    call InventoryInitDestDB_Func('D00T', "BTNWitchDoctorAdept.blp")
    call InventoryInitDestDB_Func('D00U', "BTNWandSkull.blp")
    call InventoryInitDestDB_Func('D00V', "BTNRodOfNecromancy.blp")
    call InventoryInitDestDB_Func('D00W', "BTNWandOfManaSteal.blp")
    call InventoryInitDestDB_Func('D00X', "BTNWandOfNeutralization.blp")
    call InventoryInitDestDB_Func('D00Y', "BTNWandOfShadowSight.blp")
    call InventoryInitDestDB_Func('D00Z', "BTNMechanicalCritter.blp")
    call InventoryInitDestDB_Func('D010', "BTNPenguin.blp")
    call InventoryInitDestDB_Func('D011', "BTNSacrificialSkull.blp")
    call InventoryInitDestDB_Func('D012', "BTNEnchantedGemstone.blp")
    call InventoryInitDestDB_Func('D013', "BTNThoriumArmor.blp")
    call InventoryInitDestDB_Func('D014', "BTNShimmerWeed.blp")
    call InventoryInitDestDB_Func('D015', "BTNPotionOfVampirism.blp")
    call InventoryInitDestDB_Func('D016', "BTNPotionOfOmniscience.blp")
    call InventoryInitDestDB_Func('D017', "BTNPotionBlueSmall.blp")
    call InventoryInitDestDB_Func('D018', "BTNLesserInvisibility.blp")
    call InventoryInitDestDB_Func('D019', "BTNGreaterInvulneralbility.blp")
    call InventoryInitDestDB_Func('D01A', "BTNRejuvPotion.blp")
    call InventoryInitDestDB_Func('D01B', "BTNPotionOfClarity.blp")
    call InventoryInitDestDB_Func('D01C', "BTNPotionRed.blp")
    call InventoryInitDestDB_Func('D01D', "BTNGrimWard.blp")
    call InventoryInitDestDB_Func('D01E', "BTNGlyph.blp")
    call InventoryInitDestDB_Func('D01F', "BTNHumanCaptureFlag.blp")
    call InventoryInitDestDB_Func('D01G', "BTNUndeadCaptureFlag.blp")
    call InventoryInitDestDB_Func('D01H', "BTNNightElfCaptureFlag.blp")
    call InventoryInitDestDB_Func('D01I', "BTNOrcBattleStandard.blp")
    call InventoryInitDestDB_Func('D01J', "BTNOrcCaptureFlag.blp")
    call InventoryInitDestDB_Func('D01K', "BTNHumanWatchTower.blp")
    call InventoryInitDestDB_Func('D01L', "BTNBlacksmith.blp")
    call InventoryInitDestDB_Func('D01M', "BTNHumanLumberMill.blp")
    call InventoryInitDestDB_Func('D01N', "BTNFarm.blp")
    call InventoryInitDestDB_Func('D01O', "BTNHumanBarracks.blp")
    call InventoryInitDestDB_Func('D01P', "BTNAltarOfKings.blp")
    call InventoryInitDestDB_Func('D01Q', "BTNTinyCastle.blp")
    call InventoryInitDestDB_Func('D01R', "BTNRockGolem.blp")
    call InventoryInitDestDB_Func('D01S', "BTNSoulGem.blp")
    call InventoryInitDestDB_Func('D01T', "BTNPeriapt1.blp")
    call InventoryInitDestDB_Func('D01U', "BTNMoonStone.blp")
    call InventoryInitDestDB_Func('D01V', "BTNHealthStone.blp")
    call InventoryInitDestDB_Func('D01W', "BTNDarkSummoning.blp")
    call InventoryInitDestDB_Func('D01X', "BTNManaStone.blp")
    call InventoryInitDestDB_Func('D01Y', "BTNInfernalStone.blp")
    call InventoryInitDestDB_Func('D01Z', "BTNGem.blp")
    call InventoryInitDestDB_Func('D020', "BTNHoodOfCunning.blp")
    call InventoryInitDestDB_Func('D021', "BTNBoots.blp")
    call InventoryInitDestDB_Func('D022', "BTNDaggerOfEscape.blp")
    call InventoryInitDestDB_Func('D023', "BTN3M3.blp")
    call InventoryInitDestDB_Func('D024', "BTNGhostKey.blp")
    call InventoryInitDestDB_Func('D025', "BTNNecromancerAdept.blp")
    call InventoryInitDestDB_Func('D026', "BTNTomeOfRetraining.blp")
    call InventoryInitDestDB_Func('D027', "BTNNecromancerMaster.blp")
    call InventoryInitDestDB_Func('D028', "BTNTomeRed.blp")
    call InventoryInitDestDB_Func('D029', "BTNTome.blp")
    call InventoryInitDestDB_Func('D02A', "BTNBookOfTheDead.blp")
    call InventoryInitDestDB_Func('D02B', "BTNTomeBrown.blp")
    call InventoryInitDestDB_Func('D02C', "BTNSpellBookBLS.blp")
    call InventoryInitDestDB_Func('D02D', "BTNShamanMaster.blp")
    call InventoryInitDestDB_Func('D02E', "BTNRingJadeFalcon.blp")
    call InventoryInitDestDB_Func('D02F', "BTNRingGreen.blp")
    call InventoryInitDestDB_Func('D02G', "BTNRingLionHead.blp")
    call InventoryInitDestDB_Func('D02H', "BTNRingVioletSpider.blp")
    call InventoryInitDestDB_Func('D02I', "BTNGoldRing.blp")
    call InventoryInitDestDB_Func('D02J', "BTNRingSkull.blp")
    call InventoryInitDestDB_Func('D02K', "BTNManaFlareOff.blp")
    call InventoryInitDestDB_Func('D02L', "BTNHelmutPurple.blp")
    call InventoryInitDestDB_Func('D02M', "BTNRevenant.blp")
    call InventoryInitDestDB_Func('D02N', "BTNBoneChimes.blp")
    call InventoryInitDestDB_Func('D02O', "BTNAnkh.blp")
    call InventoryInitDestDB_Func('D02P', "BTNSpiritWalkerAdeptTraining.blp")
    call InventoryInitDestDB_Func('D02Q', "BTNBloodKey.blp")
    call InventoryInitDestDB_Func('D02R', "BTNShadowPact.blp")
    call InventoryInitDestDB_Func('D02S', "BTNThoriumMelee.blp")
    call InventoryInitDestDB_Func('D02T', "BTNPotionGreenSmall.blp")
    call InventoryInitDestDB_Func('D02U', "BTNHealingSalve.blp")
    call InventoryInitDestDB_Func('D02V', "BTNMoonKey.blp")
    call InventoryInitDestDB_Func('D02W', "BTN3M1.blp")
    call InventoryInitDestDB_Func('D02X', "BTNMantleOfIntelligence.blp")
    call InventoryInitDestDB_Func('D02Y', "BTNSobiMask.blp")
    call InventoryInitDestDB_Func('D02Z', "BTNMaskOfDeath.blp")
    call InventoryInitDestDB_Func('D030', "BTNMedalionOfCourage.blp")
    call InventoryInitDestDB_Func('D031', "BTNManual.blp")
    call InventoryInitDestDB_Func('D032', "BTNDust.blp")
    call InventoryInitDestDB_Func('D033', "BTNHammer.blp")
    call InventoryInitDestDB_Func('D034', "BTNSpiderSilkBroach.blp")
    call InventoryInitDestDB_Func('D035', "BTNMinorRejuvPotion.blp")
    call InventoryInitDestDB_Func('D036', "BTNSentryWard.blp")
    call InventoryInitDestDB_Func('D037', "BTNWirtsLeg.blp")
    call InventoryInitDestDB_Func('D038', "BTNArcaniteMelee.blp")
    call InventoryInitDestDB_Func('D039', "BTNCloakOfFlames.blp")
    call InventoryInitDestDB_Func('D03A', "BTNRobeOfTheMagi.blp")
    call InventoryInitDestDB_Func('D03B', "BTNNecklace.blp")
    call InventoryInitDestDB_Func('D03C', "BTNUndeadShrine.blp")
    call InventoryInitDestDB_Func('D03D', "BTNFlare.blp")
    call InventoryInitDestDB_Func('D03E', "BTNIceShard.blp")
    call InventoryInitDestDB_Func('D03F', "BTNLesserInvulneralbility.blp")
    call InventoryInitDestDB_Func('D03G', "BTNLesserRejuvPotion.blp")
    call InventoryInitDestDB_Func('D03H', "BTNLesserClarityPotion.blp")
    call InventoryInitDestDB_Func('D03I', "BTNFelHound.blp")
    call InventoryInitDestDB_Func('D03J', "BTNAdvancedUnholyStrength.blp")
    call InventoryInitDestDB_Func('D03K', "BTNGlove.blp")
    call InventoryInitDestDB_Func('D03L', "BTNSpellSteal.blp")
    call InventoryInitDestDB_Func('D03M', "BTNCloak.blp")
    call InventoryInitDestDB_Func('D03N', "BTNVialFull.blp")
    call InventoryInitDestDB_Func('D03O', "BTNDustOfAppearance.blp")
    call InventoryInitDestDB_Func('D03P', "BTNStaffOfSilence.blp")
    call InventoryInitDestDB_Func('D03Q', "BTNStaffOfPreservation.blp")
    call InventoryInitDestDB_Func('D03R', "BTNBrilliance.blp")
    call InventoryInitDestDB_Func('D03S', "BTNStaffOfNegation.blp")
    call InventoryInitDestDB_Func('D03T', "BTNWitchDoctorMaster.blp")
    call InventoryInitDestDB_Func('D03U', "BTNStaffOfSanctuary.blp")
    call InventoryInitDestDB_Func('D03V', "BTNStaffOfTeleportation.blp")
    call InventoryInitDestDB_Func('D03W', "BTNBelt.blp")
    call InventoryInitDestDB_Func('D03X', "BTNMonsterLure.blp")
    call InventoryInitDestDB_Func('D03Y', "BTNVialEmpty.blp")
    call InventoryInitDestDB_Func('D03Z', "BTNGatherGold.blp")
    call InventoryInitDestDB_Func('D040', "BTNLionHorn.blp")
    call InventoryInitDestDB_Func('D041', "BTNHornOfCenarius.blp")
    call InventoryInitDestDB_Func('D042', "BTNHornOfFog.blp")
    call InventoryInitDestDB_Func('D043', "BTNGauntletsOfOgrePower.blp")
    call InventoryInitDestDB_Func('D044', "BTNRune.blp")
    call InventoryInitDestDB_Func('D045', "BTNRunedBracers.blp")
    call InventoryInitDestDB_Func('D046', "BTNImprovedUnholyStrength.blp")
    call InventoryInitDestDB_Func('D047', "BTNBootsOfSpeed.blp")
    call InventoryInitDestDB_Func('D048', "BTNScrollUber.blp")
    call InventoryInitDestDB_Func('D049', "BTNScrollOfHealing.blp")
    call InventoryInitDestDB_Func('D04A', "BTNSnazzyScroll.blp")
    call InventoryInitDestDB_Func('D04B', "BTNSnazzyScrollPurple.blp")
    call InventoryInitDestDB_Func('D04C', "BTNScroll.blp")
    call InventoryInitDestDB_Func('D04D', "BTNSnazzyScrollGreen.blp")
    call InventoryInitDestDB_Func('D04E', "BTNScrollOfTownPortal.blp")
    call InventoryInitDestDB_Func('D04F', "BTNScrollOfProtection.blp")
    call InventoryInitDestDB_Func('D04G', "BTNGreaterRejuvScroll.blp")
    call InventoryInitDestDB_Func('D04H', "BTNLesserRejuvScroll.blp")
    call InventoryInitDestDB_Func('D04I', "BTNBansheeMaster.blp")
    call InventoryInitDestDB_Func('D04J', "BTNScrollOfRegenerationGreen.blp")
    call InventoryInitDestDB_Func('D04K', "BTNBansheeAdept.blp")
    call InventoryInitDestDB_Func('D04L', "BTNScrollOfHaste.blp")
    call InventoryInitDestDB_Func('D04M', "BTNSelectHeroOn.blp")
    call InventoryInitDestDB_Func('D04N', "BTNHeartOfAszune.blp")
    call InventoryInitDestDB_Func('D04O', "BTNHeartOfSearinox.blp")
    call InventoryInitDestDB_Func('D04P', "BTNPhilosophersStone.blp")
    call InventoryInitDestDB_Func('D04Q', "BTNScepterOfMastery.blp")
    call InventoryInitDestDB_Func('D04R', "BTNSunKey.blp")
    call InventoryInitDestDB_Func('D04S', "BTNDoomGuard.blp")
    call InventoryInitDestDB_Func('D04T', "BTNOrbofSlowness.blp")
    call InventoryInitDestDB_Func('D04U', "BTNOrbOfFrost.blp")
    call InventoryInitDestDB_Func('D04V', "BTNOrbOfLightning.blp")
    call InventoryInitDestDB_Func('D04W', "BTNOrbOfFire.blp")
    call InventoryInitDestDB_Func('D04X', "BTNOrbOfCorruption.blp")
    call InventoryInitDestDB_Func('D04Y', "BTNOrbOfDarkness.blp")
    call InventoryInitDestDB_Func('D04Z', "BTNOrbOfVenom.blp")
    call InventoryInitDestDB_Func('D050', "BTNChestOfGold.blp")
    call InventoryInitDestDB_Func('D051', "BTNCheese.blp")
    call InventoryInitDestDB_Func('D052', "BTNTalisman.blp")
    call InventoryInitDestDB_Func('D053', "BTNPeriapt.blp")
    call InventoryInitDestDB_Func('D054', "BTNStone.blp")
    call InventoryInitDestDB_Func('D055', "BTNEntrapmentWard.blp")
    call InventoryInitDestDB_Func('D056', "BTNHornOfDoom.blp")
    call InventoryInitDestDB_Func('D057', "BTNSlippersOfAgility.blp")
    call InventoryInitDestDB_Func('D058', "BTNUrnOfKelThuzad.blp")
    call InventoryInitDestDB_Func('D059', "BTNSorceressMaster.blp")
    call InventoryInitDestDB_Func('D05A', "BTNAlleriaFlute.blp")
    call InventoryInitDestDB_Func('D05B', "BTNPipeOfInsight.blp")
    call InventoryInitDestDB_Func('D05C', "BTNCrystalBall.blp")
    call InventoryInitDestDB_Func('D05D', "BTNPotionGreen.blp")
    call InventoryInitDestDB_Func('D05E', "BTN3M2.blp")
    call InventoryInitDestDB_Func('D05F', "BTNJanggo.blp")
    call InventoryInitDestDB_Func('D05G', "BTNGuldanSkull.blp")
    call InventoryInitDestDB_Func('D05H', "BTNGreathall.blp")
    call InventoryInitDestDB_Func('D05I', "BTNHelmOfValor.blp")
    call InventoryInitDestDB_Func('D05J', "BTNUnholyAura.blp")
    call InventoryInitDestDB_Func('D05K', "BTNHumanArmorUpThree.blp")
    call InventoryInitDestDB_Func('D05L', "BTNLightningShield.blp")
    call InventoryInitDestDB_Func('D05M', "BTNPotionOfRestoration.blp")
    call InventoryInitDestDB_Func('D05N', "BTNPotionBlueBig.blp")
    call InventoryInitDestDB_Func('D05O', "BTNGreaterInvisibility.blp")
    call InventoryInitDestDB_Func('D05P', "BTNPotionOfDivinity.blp")
    call InventoryInitDestDB_Func('D05Q', "BTNGreaterRejuvPotion.blp")
    call InventoryInitDestDB_Func('D05R', "BTNManual3.blp")
    call InventoryInitDestDB_Func('D05S', "BTNThunderLizardEgg.blp")
    call InventoryInitDestDB_Func('D05T', "BTNRedDragon.blp")
endfunction

endlibrary

And the Bags library for:
Collapse JASS:


library Bags initializer Init requires Camera, DGUI, DataBaseBags

private function echo takes string msg returns nothing
    call DisplayTextToPlayer(GetLocalPlayer(), 0, 0, msg)
endfunction

private function BagH2I takes handle h returns integer
    return GetHandleId(h)
endfunction

globals
    private integer TypeItemBag = 'IBAG'
    private code FuncLClickSlot = null
    private code FuncRClickSlot = null
    
    private integer CountWindow = 0
    
    private real array XPosWin
    private real array YPosWin
endglobals

globals
    constant real XIndentionSlot = 0.07
    constant real YIndentionSlot = -0.11
    constant real WidthSlot = 0.08
    constant real HeightSlot = 0.08*AspectRatio
endglobals

struct BAG
    static constant integer MaxCount = 6
    unit Owner
    BAGSYS BS
    private item Bag
    private item array Slot[.MaxCount]
    integer CountItem
    boolean open
    integer Pos
    //window
    private PICTURE Win
    private BUTTON array WinSlot[.MaxCount]
    private TEXT array WinCharge[.MaxCount]

    static method RegistrationItemBag takes item b returns BAG
        local BAG this = BAG.create()
        local integer i = .MaxCount-1
        set .Owner = null
        set .Bag = b
        set .CountItem = 0
        set .open = false
        set .Pos = 0
        call SetItemCharges(b, 0)
        call SetItemUserData(b, this)
        set .Win = PICTURE.NewCostumModel(0, 0, 1, 0.26, 'bwin', 140.002, 42.692, 0)
        loop
            exitwhen i < 0
            set .Slot[i] = null
            set .WinSlot[i] = BUTTON.New(0, 0, WidthSlot, HeightSlot, 0.5, TypeTextureBlank)
            set .WinSlot[i].CostumValue = this*.MaxCount+i
            call .WinSlot[i].AddActionL(FuncLClickSlot)
            call .WinSlot[i].AddActionR(FuncRClickSlot)
            set .WinCharge[i] = TEXT.New(0, 0, 1)
            set i = i - 1
        endloop
        return this
    endmethod
    
    method ResetCharges takes integer slot returns nothing
        local integer charg = GetItemCharges(.Slot[slot])
        if GetItemHasCharges(GetItemTypeId(.Slot[slot])) and (charg > 0) then
            call SetTextTagText(.WinCharge[slot].text, I2S(charg), 7*0.0023)
            call .WinCharge[slot].Show(true, .BS.Camera) //-0.08*StringLength(I2S(GetItemCharges(.Slot[slot])))
            call .WinCharge[slot].SetPosition(XPosWin[.Pos]+XIndentionSlot+(WidthSlot+0.01)*slot+WidthSlot-0.022, YPosWin[.Pos]+YIndentionSlot-HeightSlot)
        else
            call .WinCharge[slot].Show(false, 0)
        endif
    endmethod
    
    method ResetPosition takes integer pos returns nothing
        local integer i = .MaxCount - 1
        set .Pos = pos
        call .Win.SetPosition(XPosWin[pos], YPosWin[pos])
        loop
            exitwhen i < 0
            call .WinSlot[i].SetPosition(XPosWin[.Pos]+XIndentionSlot+(WidthSlot+0.01)*i, YPosWin[pos]+YIndentionSlot)
            call .ResetCharges(i)
            set i = i - 1
        endloop
    endmethod
    
    method Open takes BAGSYS bs, integer pos, integer r returns nothing
        local integer i = .MaxCount-1
        set .open = true
        set .BS = bs
        call .ResetPosition(pos)
        call .Win.SetTexture('D201'+r)
        call .Win.Show(true, bs.Camera)
        loop
            exitwhen i < 0
            if (.Slot[i] != null) then
                call .WinSlot[i].SetTexture(GetItemTexture(GetItemTypeId(.Slot[i])))
            else
                call .WinSlot[i].SetTexture(TypeTextureBlank)
            endif
            call .WinSlot[i].Show(true, bs.Camera)
            set i = i - 1
        endloop
    endmethod
    
    method Close takes nothing returns nothing
        local integer i = .MaxCount-1
        set .BS = 0
        set .open = false
        call .Win.Show(false, 0)
        loop
            exitwhen i < 0
            call .WinSlot[i].Show(false, 0)
            call .WinCharge[i].Show(false, 0)
            set i = i - 1
        endloop
    endmethod
    
    method AddItem takes item add returns boolean
        local integer i = 0
        local BAG b
        local integer charg
        if (GetItemTypeId(add) == TypeItemBag) then
            if (add == .Bag) or (GetItemCharges(add) > 0) then
                return false
            else
                set b = GetItemUserData(add)
                if b != 0 and b.open then
                    call .BS.RemoveBag(b)
                endif
            endif
        endif
        loop
            exitwhen i >= .MaxCount
            if (.Slot[i] == null) then
                set .Slot[i] = add
                set .CountItem = .CountItem + 1
                call SetItemCharges(.Bag, .CountItem)
                call SetItemPosition(add, 0, 0)
                call SetItemVisible(add, false)
                if .open then
                    call .WinSlot[i].SetTexture(GetItemTexture(GetItemTypeId(add)))
                    call .ResetCharges(i)
                endif
                return true
            endif
            set i = i + 1
        endloop
        return false
    endmethod
    
    method ClickSlot takes integer slot returns integer
        local BAG curbag
        local integer curslot
        local item curit
        local item it = .Slot[slot]
        local integer SelectSlot = this*.MaxCount+slot
        if .BS.CurSelectSlot != -1 then
            set curbag = .BS.CurSelectSlot/.MaxCount
            set curslot = .BS.CurSelectSlot-curbag*.MaxCount
            set curit = curbag.Slot[curslot]
            call SetUnitVertexColor(curbag.WinSlot[curslot].picture, 255, 255, 255, 255)
        endif
        if it != null then
            if .BS.CurSelectSlot != SelectSlot then
                call SetUnitVertexColor(.WinSlot[slot].picture, 200, 200, 200, 255)
                set .BS.CurSelectSlot = this*.MaxCount+slot
                return GetItemTypeId(.Slot[slot])
            else
                set .BS.CurSelectSlot = -1
            endif
            //return false
        elseif .BS.CurSelectSlot != -1 then
            set .Slot[slot] = curit
            call .WinSlot[slot].SetTexture(GetItemTexture(GetItemTypeId(curit)))
            call .ResetCharges(slot)
            set curbag.Slot[curslot] = null
            call curbag.WinSlot[curslot].SetTexture(TypeTextureBlank)
            call curbag.ResetCharges(curslot)
            set .BS.CurSelectSlot = -1
            if (curbag != this) then
                set curbag.CountItem = curbag.CountItem - 1
                set .CountItem = .CountItem + 1
                call SetItemCharges(curbag.Bag, curbag.CountItem)
                call SetItemCharges(.Bag, .CountItem)
            endif
        endif
        return 0
    endmethod
    
    method DropItemInSlot takes integer slot returns boolean
        local boolean b = false
        if .Slot[slot] != null then
            call SetItemVisible(.Slot[slot], true)
            if not UnitAddItem(.Owner, .Slot[slot]) then
                call SetItemPosition(.Slot[slot], GetUnitX(.Owner), GetUnitY(.Owner))
            endif
            set b = .BS.CurSelectSlot == this*.MaxCount+slot
            if b then
                set .BS.CurSelectSlot = -1
                call SetUnitVertexColor(.WinSlot[slot].picture, 255, 255, 255, 255)
            endif
            call .WinCharge[slot].Show(false, 0)
            set .Slot[slot] = null
            call .WinSlot[slot].SetTexture(TypeTextureBlank)
            set .CountItem = .CountItem - 1
            call SetItemCharges(.Bag, .CountItem)
        endif
        return b
    endmethod
    
endstruct

struct DESCRIPTITEM
    static real PosWinX = -0.88
    static real PosWinY = 0.95
    private BAGSYS BS
    private PICTURE WinDesc
    private PICTURE IconItem
    private TEXT Name
    //private TEXT Cost
    private TEXT Desc
    
    static method New takes BAGSYS bs returns DESCRIPTITEM
        local DESCRIPTITEM this = DESCRIPTITEM.create()
        set .BS = bs
        set .WinDesc = PICTURE.NewCostumModel(.PosWinX, .PosWinY, 1, 0.26, 'dwin', 140.002, 122.646, 'D201'+bs.Race)
        set .IconItem = PICTURE.New(.PosWinX+0.06, .PosWinY-0.06*AspectRatio, 0.07, 0.07*AspectRatio, 0.5, 0)
        set .Name = TEXT.New(.PosWinX+0.15, .PosWinY-0.20, 1)
        call SetTextTagColor(.Name.text, 80, 80, 255, 255)
        //set .Cost = TEXT.New(.PosWinX+0.07, .PosWinY-0.30, 1)
        //call SetTextTagColor(.Cost.text, 255, 255, 0, 255)
        set .Desc = TEXT.New(.PosWinX+0.07, .PosWinY-0.95, 1)
        return this
    endmethod
    
    method DescriptionItem takes integer typeitem returns nothing
        local string name
        local integer cost
        local string desc
        if typeitem != 0 then
            call .IconItem.SetTexture(GetItemTexture(typeitem))
            set name = GetObjectName(typeitem)
            set cost = GetItemCost(typeitem)
            set desc = GetItemDescription(typeitem)
            call SetTextTagText(.Name.text, name, 10 * 0.0023)
            call .Name.Show(true, .BS.Camera)
            //if cost != -1 then
            //    call SetTextTagText(.Cost.text, I2S(cost), 10 * 0.0023)
            //    call .Cost.Show(true, .BS.Camera)
            //else
            //    call .Cost.Show(false, 0)
            //endif
            call SetTextTagText(.Desc.text, desc, 10 * 0.0023)
            call .Desc.Show(true, .BS.Camera)
        else
            call .Name.Show(false, 0)
            //call .Cost.Show(false, 0)
            call .Desc.Show(false, 0)
        endif
    endmethod
    
    method Show takes boolean show returns nothing
        call .WinDesc.Show(show, .BS.Camera)
        call .IconItem.Show(show, .BS.Camera)
        call .Name.Show(show, .BS.Camera)
        //call .Cost.Show(show, .BS.Camera)
        call .Desc.Show(show, .BS.Camera)
    endmethod
    
endstruct

globals
    private trigger TrigPickupItem = null
    private trigger TrigMoveItem = null
    private trigger TrigUseItem = null
    private trigger TrigDropItem = null
    private conditionfunc itemisbagcondition = null
endglobals

struct BAGSYS
    static constant integer MaxCount = 6
    
    private DESCRIPTITEM DescItem
    private BAG array Bags[.MaxCount]
    private integer Count = 0
    integer CurSelectSlot

    private boolean Enable
    player p
    CAMERA Camera
    integer Race
    
    method EnableBagSys takes nothing returns nothing
        if not .Enable then
            set .p = Player(this)
            set .Race = BagH2I(GetPlayerRace(.p))-1
            set .CurSelectSlot = -1
            set .Enable = true
            call TriggerRegisterPlayerUnitEvent(TrigMoveItem, .p, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER, null)
            call TriggerRegisterPlayerUnitEvent(TrigUseItem, .p, EVENT_PLAYER_UNIT_USE_ITEM, null)
            call TriggerRegisterPlayerUnitEvent(TrigDropItem, .p, EVENT_PLAYER_UNIT_DROP_ITEM, null)
            set .DescItem = DESCRIPTITEM.New(this)
        endif
    endmethod
    
    method AddBag takes BAG b returns boolean
        if .Count < .MaxCount and b != 0 then
            set .Bags[.Count] = b
            call b.Open(this, .Count, .Race)
            set .Count = .Count + 1
            return true
        endif
        return false
    endmethod
    
    method RemoveBag takes BAG bag returns boolean
        local integer i
        local boolean b = false
        local integer a = 0
        if .Count > 0 and bag != 0 then
            set .Count = .Count - 1
            loop
                exitwhen a > .Count
                if (.Bags[a] == bag) then
                    if .CurSelectSlot>=bag*BAG.MaxCount and .CurSelectSlot<(bag+1)*BAG.MaxCount then
                        call .DescriptionItemShow(0)
                    endif
                    call bag.Close()
                    set .Bags[a] = 0
                    set b = true
                endif
                if (.Bags[a] == 0) and (.Bags[a+1] != 0) then
                    set .Bags[a] = .Bags[a+1]
                    set .Bags[a+1] = 0
                    call .Bags[a].ResetPosition(a)
                endif
                set a = a + 1
            endloop
        endif
        return b
    endmethod
    
    method SetCamera takes CAMERA cam returns nothing
        set .Camera = cam
    endmethod
    
    method DescriptionItemShow takes integer typeitem returns nothing
        call .DescItem.DescriptionItem(typeitem)
        call .DescItem.Show(typeitem != 0)
    endmethod
    
endstruct
    
function EnableForPlayerBagSystem takes player p, CAMERA cam returns nothing
    local BAGSYS bs = GetPlayerId(p)
    call bs.EnableBagSys()
    call bs.SetCamera(cam)
endfunction

private function LCkickItemSlot takes nothing returns nothing
    local BUTTON but = GetTriggerButton()
    local BAG bag = but.CostumValue/BAG.MaxCount
    local BAGSYS bs = bag.BS
    local integer Slot = but.CostumValue-bag*BAG.MaxCount
    call bag.BS.DescriptionItemShow(bag.ClickSlot(Slot))
endfunction

private function RCkickItemSlot takes nothing returns nothing
    local BUTTON but = GetTriggerButton()
    local BAG bag = but.CostumValue/BAG.MaxCount
    local integer Slot = but.CostumValue-bag*BAG.MaxCount
    if bag.DropItemInSlot(Slot) then
        call bag.BS.DescriptionItemShow(0)
    endif
endfunction

private function MoveItemInBag takes nothing returns nothing
    local integer NewSlot = GetIssuedOrderId()-0xD0022
    local unit u = GetTriggerUnit()
    local item New = UnitItemInSlot(u, NewSlot)
    local item Old = GetOrderTargetItem()
    local BAG b
    if (Old != New) and (GetItemTypeId(New) == TypeItemBag) then
        set b = GetItemUserData(New)
        call b.AddItem(Old)
    endif
    set u = null
    set New = null
    set Old = null
endfunction

private function UseItemBag takes nothing returns nothing
    local BAGSYS bs = GetPlayerId(GetOwningPlayer(GetTriggerUnit()))
    local item i = GetManipulatedItem()
    local BAG b = GetItemUserData(i)
    call SetItemCharges(i, b.CountItem)
    if b.open then
        call bs.RemoveBag(b)
    else
        call bs.AddBag(b)
    endif
    set i = null
endfunction

private function DropBag takes nothing returns nothing
    local BAGSYS bs = GetPlayerId(GetOwningPlayer(GetTriggerUnit()))
    local BAG b = GetItemUserData(GetManipulatedItem())
    if b.open then
        call bs.RemoveBag(b)
    endif
endfunction

private function RegistrationBag takes nothing returns nothing
    local item i = GetManipulatedItem()
    local BAG b = GetItemUserData(i)
    if (b == 0) then
        set b = BAG.RegistrationItemBag(i)
    endif
    set b.Owner = GetTriggerUnit()
    set i = null
endfunction

private function OrderMoveCondition takes nothing returns boolean
    local integer o = GetIssuedOrderId()
    return 0xD0022<=o and o<=0xD0027
endfunction

private function ItemIsBagCondition takes nothing returns boolean
    return GetItemTypeId(GetManipulatedItem()) == TypeItemBag
endfunction

private function BagsInitTriggers takes nothing returns nothing
    local integer i = bj_MAX_PLAYER_SLOTS-1
    set TrigPickupItem = CreateTrigger()
    loop
        exitwhen i < 0
        call TriggerRegisterPlayerUnitEvent(TrigPickupItem, Player(i), EVENT_PLAYER_UNIT_PICKUP_ITEM, null)
        set i = i - 1
    endloop
    call TriggerAddCondition(TrigPickupItem, itemisbagcondition)
    call TriggerAddAction(TrigPickupItem, function RegistrationBag)
    set TrigMoveItem = CreateTrigger()
    call TriggerAddCondition(TrigMoveItem, Condition(function OrderMoveCondition))
    call TriggerAddAction(TrigMoveItem, function MoveItemInBag)
    set TrigUseItem = CreateTrigger()
    call TriggerAddCondition(TrigUseItem, itemisbagcondition)
    call TriggerAddAction(TrigUseItem, function UseItemBag)
    set TrigDropItem = CreateTrigger()
    call TriggerAddCondition(TrigDropItem, itemisbagcondition)
    call TriggerAddAction(TrigDropItem, function DropBag)
endfunction

private function Init takes nothing returns nothing
    local integer i = 0
    call InventoryInitItemDB_Func(TypeItemBag, "BTNDust.blp", "Bag for 6 item.", 0, true)
    set FuncLClickSlot = function LCkickItemSlot
    set FuncRClickSlot = function RCkickItemSlot
    set itemisbagcondition = Condition(function ItemIsBagCondition)
    call BagsInitTriggers()
    loop
        exitwhen i >= 5
        set XPosWin[i  ] =  0.35
        set XPosWin[i+5] = -0.35
        set YPosWin[i  ] =  -0.52+0.36*i
        set YPosWin[i+5] = YPosWin[i]
        set i = i + 1
    endloop
    set i = 0
endfunction

endlibrary


It's working for me
__________________
Actual Project:

War of Gods
GALLED is offline   Reply With Quote
Old 02-26-2010, 06:04 PM   #38
Slaydon
User
 
Join Date: Jul 2009
Posts: 26

Slaydon has little to show at this moment (0)

Default

Im sorry, but how do we create units to this dgui system and make them move on our cordinates, cant you set globals, like

destructabletype (integer array) = for the look of the button, / background
unittype (integer array)
screeny (real array)
screenx (real array)
z if needed (real array)
integer dguiunits = the count of units there are to move
Slaydon is offline   Reply With Quote
Old 02-27-2010, 01:26 PM   #39
Anachron
User
 
Anachron's Avatar
 
Join Date: Mar 2009
Posts: 1,079

Anachron will become famous soon enough (51)Anachron will become famous soon enough (51)

Default

You don't have to post this everywhere where you can see DGUI.
Just make it yourself, if you need help, feel free to ask in Triggers&Scripts.
__________________
CustomInventory [Discussion - Download] - Got Directors Cut!
CustomMissle [Discussion - [Download (not yet)] - In development!
Other systems [Spawn System] [Move System] [CustomBar] [SpellBar]
Anachron is offline   Reply With Quote
Old 03-07-2010, 03:18 AM   #40
lobster22221
User
 
Join Date: Feb 2009
Posts: 2

lobster22221 has little to show at this moment (0)

Default

Now that galled fixed the code how do you make this mpi?

Last edited by lobster22221 : 03-07-2010 at 03:18 AM.
lobster22221 is offline   Reply With Quote
Old 06-27-2011, 04:23 AM   #41
shilo
User
 
Join Date: May 2011
Posts: 5

shilo has little to show at this moment (0)

Default

How can i have more than six box in this invetory sysytem?
shilo is offline   Reply With Quote
Old 12-03-2013, 01:44 PM   #42
biob
User
 
Join Date: Dec 2013
Posts: 1

biob has little to show at this moment (0)

Default

大家好,我是一个中国人,很高心能来到这个论坛学习新的WE技术,关于您的这个BagSystem,代码我基本能看懂,但却不能理解运行的原理。希望您能写一个教程,让我完全理解这个系统,我会尽量翻译出来发布在 我们那里的论坛。谢谢你。
biob is offline   Reply With Quote
Old 12-03-2013, 03:14 PM   #43
moyack
Evil Emoticon
 
moyack's Avatar


Respected User
Project Leader: PoC
 
Join Date: Jan 2006
Posts: 3,279

Submissions (17)

moyack is a splendid one to behold (666)moyack is a splendid one to behold (666)moyack is a splendid one to behold (666)moyack is a splendid one to behold (666)

AI Tournament #2 - 2nd PlaceHero Contest - Second place

Send a message via MSN to moyack
Default

SAYONARA!!!!!!!
moyack is offline   Reply With Quote
Old 12-05-2013, 07:08 PM   #44
Kyrbi0
AKA Khyrberos
 
Kyrbi0's Avatar
 
Join Date: May 2008
Posts: 2,946

Submissions (1)

Kyrbi0 is a jewel in the rough (170)Kyrbi0 is a jewel in the rough (170)

Send a message via MSN to Kyrbi0
Default

... Sucker?
__________________
My Projects, Resources, + Tutorials: ~Just got back from my mission. Glad to be back. Woot! :P~
=It was brought to my attention recently that the ":P" icon stands for "tongue-sticking out", and not the "smirky half-smile" I was using it for all these years. = Thusly I apologize for any unintentional juvenilization of my messages to anyone so afflicted.=
Kyrbi0 is offline   Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off


All times are GMT. The time now is 10:27 AM.


Affiliates
The Hubb The JASS Vault Clan WEnW Campaign Creations Clan CBS GamesModding Flixreel Videos

Powered by vBulletin (Copyright ©2000 - 2020, Jelsoft Enterprises Ltd).
Hosted by www.OICcam.com
IT Support and Services provided by Executive IT Services