Assets from SC2Mapster.com http://http://www.sc2mapster.com//assets/ The latest assets from SC2Mapster.com en-us Sat, 18 May 2013 06:51:32 +0000 SC2Mapster.com (http://www.sc2mapster.com) Wow/wc3 Icon pack JPG/DDS http://www.sc2mapster.com/assets/wowwc3-icon-pack-jpgdds/ <p>Browse for an icon you like in the JPG folder and remember its name, then import the dds version to sc2 ready to use.</p> <p>Over 12.000 Icons</p> Sat, 18 May 2013 06:51:32 +0000 http://www.sc2mapster.com/assets/wowwc3-icon-pack-jpgdds/ http://www.sc2mapster.com/assets/wowwc3-icon-pack-jpgdds/ no-reply@sc2mapster.com () Phanalax's Models http://www.sc2mapster.com/assets/phanalaxs-models/ <p>Models Available now! SC1 Scarab (standard texture) <img src="http://i1343.photobucket.com/albums/o797/beng128/Scarab-IMP3_zps68ff5e1c.png" alt="SC1 Scarab" title="SC1 Scarab"></p> <p>Models soon to be available: SC1 Scarab (Non-standard) <img src="http://i1343.photobucket.com/albums/o797/beng128/scarab-1_zps10d85699.png" alt="SC1 scarab non-standard" title="SC1 scarab non-standard"></p> <p>Models to be available in the near future: SC1 Protoss Forge, SC1 Hydralisk, SC1 Torresque Ultralisk, SC1 Zergling, Fruit Themed Zerg units</p> Fri, 17 May 2013 02:17:03 +0000 http://www.sc2mapster.com/assets/phanalaxs-models/ http://www.sc2mapster.com/assets/phanalaxs-models/ no-reply@sc2mapster.com () Warcraft Custom Models by Triceron http://www.sc2mapster.com/assets/warcraft-footman-model/ <p>Custom Warcraft Model based on Warcraft 3's units. Uses animations from Warcraft 3. Model and Textures created by Triceron. These models are free for public use. Please give credit if you use the model for your maps. Any questions or comments, please PM Triceron.</p> Thu, 16 May 2013 06:50:15 +0000 http://www.sc2mapster.com/assets/warcraft-footman-model/ http://www.sc2mapster.com/assets/warcraft-footman-model/ no-reply@sc2mapster.com () SoulFilcher's Models http://www.sc2mapster.com/assets/soulfilchers-models/ <p>RELEASED MODELS AND TEXTURES</p> <p>SC1 Ion Cannon: Made from WoL Data Core structure, no custom textures.<br> Dropship variations: Dropship made from the Medivac. Some texture variations for it.<br> Nuke Silo placement model.<br> SC1 Hydralisk: Made from WoL Hydralisk to look like the SC1 version.<br> Mothership Core.<br> Metroid unit with some basic animations.<br> Hellion portrait wearing goggles.<br> SC1 Guardian/Devourer Cocoon made from WoL Broodlord Cocoon.<br> Dark Shrine and Obelisk bases.<br> SC1 Ultralisk Cavern made from WoL version.<br> Dead Zerg doodads.<br> Doodad Pack 1: "the chemistry lab"<br> SC1 Battlecruiser / Magistrate Collins portrait.<br> SC1 Overmind portrait.<br> SC1 Supply Depot.<br> Doodad Pack 2: "the bloody living room"<br> Xel'Naga "Docking Bay" (a Stargate-like structure).<br> The one and only "Hellbat".<br> SC1 Young Chrysalis.<br> SC1 High Templar.<br> Critter Pack 1 (see file description).<br> Narud's Hybrid Avatar.<br> SC1 SCV.<br> Defiler.</p> <p>Thanks to PrintIn for his M3 Addon and for his patience with such a noob like me.</p> <p>WIP PROJECTS</p> <p>-Hybrid hydralisk: As I was working with the hydralisk model I decided to work on this idea I had over an year ago, about a hybrid hydralisk strain. This is an early image of this project, as I have already made changes like the blue glowing eyes, and I want to add some new features to it. Suggestions are welcome.<br> <img src="http://www.sc2mapster.com/media/images/43/230/HybridHydralisk_preview.jpg" alt="" title=""></p> <p>-Applelord: This idea crawled into my mind since Blizzard released that masterpiece of artwork, but I didn't have the required abilities back then. Now I'm going to make it happen! If you're not going to eat your fruit, your fruit's going to eat you!<br> <img src="http://www.sc2mapster.com/media/images/52/645/Applelord.jpg" alt="Applelord, a zerg strain full of vitamins!" title="Applelord, a zerg strain full of vitamins!"></p> Wed, 15 May 2013 02:39:23 +0000 http://www.sc2mapster.com/assets/soulfilchers-models/ http://www.sc2mapster.com/assets/soulfilchers-models/ no-reply@sc2mapster.com () Delphinium and NanaKey's Models http://www.sc2mapster.com/assets/delphinium/ <p>In this mod, we collected a part of effects models which we created for our current project and also some old units I created long time ago. I get a lot of fun and help from SC2mapster, so it is time to share which we have.</p> <p>If you use this models plz do me a favor. Show me some pictures of them in your game, that will be very helpful to fix the errors and improve the techologies for our new models. Also if you find any bugs, deficiencies or new models you need, plz PM or reply me. If you think this mod is useful, add the Delphinium and NanaKey in your credits. Both of us come from China, it is our pleasure if you like and use our models, best wishes.</p> <p>We added a list here:</p> <p>Spaceships (Amethyst, Garnet, Clematis) Underwater Effects (Waves and bubbles) </p> <p>UI models</p> <ul><li>Display (Player chosen, minimap, weapon chosen, life point, special cards) </li><li>blood on the screen </li><li>Timer (60s) </li><li>Word on fire (standard, billboard, with camera) </li></ul> <p>Particles &amp; Ribbons</p> <ul><li>Fireworks (Fireworks with/without words in it) </li><li>Lightsaber (standard, teamcolored) </li><li>Bubbles (with/without gravity simulation) </li><li>Cloud </li><li>Bilzzard </li><li>Hybird Wing </li><li>Lightning attack </li><li>Star walls </li><li>Warp (like recall in SC1) </li><li>Peace Tree's death (like KongFu Panda) </li><li>Sleep </li><li>Shield Blast </li></ul> <p>Weapons from WOW</p> <ul><li>Over 20 Axes &amp; Swords </li></ul> <p>Others</p> <ul><li>Platform </li><li>skybox </li><li>wing (Left/Right) </li><li>Magic cycles </li><li>Marine Mike Morhaime </li><li>A girl in the life support system (well that's a long story) </li><li>Jellfish (From WOW)</li></ul> Tue, 14 May 2013 15:52:43 +0000 http://www.sc2mapster.com/assets/delphinium/ http://www.sc2mapster.com/assets/delphinium/ no-reply@sc2mapster.com () Wow-wc3 Icon pack JPG/DDS http://www.sc2mapster.com/assets/wow-wc3-icon-pack-jpgdds/ <p>Browse for an icon you like in the JPG folder and remember its name, then import the dds version to sc2 ready to use.</p> <p>Over 12.000 Icons as soon as i figure out how to upload it</p> Tue, 14 May 2013 15:33:52 +0000 http://www.sc2mapster.com/assets/wow-wc3-icon-pack-jpgdds/ http://www.sc2mapster.com/assets/wow-wc3-icon-pack-jpgdds/ no-reply@sc2mapster.com () Warcraft Model Library http://www.sc2mapster.com/assets/warcraft-model-library/ <section class="toc expanding-module" data-expand-by="toc" data-expand-default="open"><div class="content-box"><div class="content-box-inner"><h3>Table of contents</h3><ol class="toc-level toc-level-1"><li><a href="#w-how-to-use"><span class="toc-number">1</span> <span class="toc-text">How to Use:</span></a><li><a href="#w-warcraft-library-general-information"><span class="toc-number">2</span> <span class="toc-text">Warcraft Library: General Information</span></a><ol class="toc-level toc-level-2"><li><a href="#w-what-is-warcraft-model-library"><span class="toc-number">2.1</span> <span class="toc-text">What is Warcraft Model Library?</span></a><li><a href="#w-how-to-use-the-mods"><span class="toc-number">2.2</span> <span class="toc-text">How to Use the Mods:</span></a><li><a href="#w-how-to-make-a-warcraft-model-library-mod"><span class="toc-number">2.3</span> <span class="toc-text">How to Make a Warcraft Model Library Mod:</span></a></ol><li><a href="#w-library-descriptions"><span class="toc-number">3</span> <span class="toc-text">Library Descriptions</span></a><ol class="toc-level toc-level-2"><li><a href="#w-http-www-sc2mapster-com-assets-warcraft-model-library"><span class="toc-number">3.1</span> <span class="toc-text">Azuremyst Library</span></a><li><a href="#w-http-www-sc2mapster-com-assets-warcraft-model-library-2"><span class="toc-number">3.2</span> <span class="toc-text">Barrens Library</span></a><li><a href="#w-http-www-sc2mapster-com-assets-warcraft-model-library-3"><span class="toc-number">3.3</span> <span class="toc-text">Blood Elf Library</span></a><li><a href="#w-http-www-sc2mapster-com-assets-warcraft-model-library-4"><span class="toc-number">3.4</span> <span class="toc-text">Forest Library</span></a><li><a href="#w-http-www-sc2mapster-com-assets-warcraft-model-library-5"><span class="toc-number">3.5</span> <span class="toc-text">Human Library</span></a><li><a href="#w-http-www-sc2mapster-com-assets-warcraft-model-library-6"><span class="toc-number">3.6</span> <span class="toc-text">Mists of Pandaria Library</span></a><li><a href="#w-http-www-sc2mapster-com-assets-warcraft-model-library-7"><span class="toc-number">3.7</span> <span class="toc-text">Moonglade Library</span></a><li><a href="#w-http-www-sc2mapster-com-assets-warcraft-model-library-8"><span class="toc-number">3.8</span> <span class="toc-text">Night Elf Library</span></a><li><a href="#w-http-www-sc2mapster-com-assets-warcraft-model-library-9"><span class="toc-number">3.9</span> <span class="toc-text">Northrend Library</span></a><li><a href="#w-http-www-sc2mapster-com-assets-warcraft-model-library-10"><span class="toc-number">3.10</span> <span class="toc-text">Orc and Troll Library</span></a><li><a href="#w-http-www-sc2mapster-com-assets-warcraft-model-library-11"><span class="toc-number">3.11</span> <span class="toc-text">Pandaria Library</span></a><li><a href="#w-http-www-sc2mapster-com-assets-warcraft-model-library-12"><span class="toc-number">3.12</span> <span class="toc-text">Tirisfall Ghostlands Library</span></a><li><a href="#w-http-www-sc2mapster-com-assets-warcraft-model-library-13"><span class="toc-number">3.13</span> <span class="toc-text">Uldum Library</span></a></ol><li><a href="#w-want-to-help"><span class="toc-number">4</span> <span class="toc-text">Want to Help?</span></a><ol class="toc-level toc-level-2"><li><a href="#w-downloading-the-mods-here"><span class="toc-number">4.1</span> <span class="toc-text">Downloading the Mods Here</span></a></ol><li><a href="#w-in-association-with-http-www-warcraftanewdawn-com-warcraft"><span class="toc-number">5</span> <span class="toc-text">In Association with: Warcraft A New Dawn project</span></a><li><a href="#w-other-warcraft-resources"><span class="toc-number">6</span> <span class="toc-text">Other Warcraft Resources</span></a><ol class="toc-level toc-level-2"><li><a href="#w-"><span class="toc-number">6.1</span> <span class="toc-text"></span></a><li><a href="#w-wow-model-pack-by-http-www-sc2mapster-com-profiles"><span class="toc-number">6.2</span> <span class="toc-text">WoW Model-Pack By Zarakk</span></a><ol class="toc-level toc-level-3"><li><a href="#w--2"><span class="toc-number">6.2.1</span> <span class="toc-text"></span></a></ol><li><a href="#w-warcraft-3-icons-by-http-www-sc2mapster-com-profiles"><span class="toc-number">6.3</span> <span class="toc-text">Warcraft 3 Icons By 7H3LaughingMan</span></a><ol class="toc-level toc-level-3"><li><a href="#w--3"><span class="toc-number">6.3.1</span> <span class="toc-text"></span></a></ol><li><a href="#w-warcraft-footman-model-by-http-www-sc2mapster-com-profiles"><span class="toc-number">6.4</span> <span class="toc-text">Warcraft Footman Model By Triceron</span></a><ol class="toc-level toc-level-3"><li><a href="#w--4"><span class="toc-number">6.4.1</span> <span class="toc-text"></span></a></ol><li><a href="#w-world-of-warcraft-weapon-pack-by-http-www-sc2mapster"><span class="toc-number">6.5</span> <span class="toc-text">World of Warcraft Weapon Pack By Malpheus</span></a></ol></ol></div></div></section> <p><img src="http://i842.photobucket.com/albums/zz343/XenobloodAION/ModelLibraryLogo.png" alt="" title=""> <img src="http://s8.postimage.org/63gc2srr9/Uploaded_Mods_6.png" alt="" title=""></p> <p><img src="http://i842.photobucket.com/albums/zz343/XenobloodAION/NewModsandUpdates.png" alt="" title=""></p> <ul><li><span style="color:#00ff00"><strong><em>UPLOAD</em></strong></span> <a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/38-barrens-library-by-terminator-version-1-1/"><strong><em>Barrens Library (by Terminator)</em></strong></a> - <strong>Version 1.1</strong>: <em>Uploaded 10/24/2012</em> </li><li><span style="color:#00ff00"><strong><em>NEW</em></strong></span> <a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/37-human-library-by-the-holy-ark-version-1-1/"><strong><em>Human Library (by TheHolyArk)</em></strong></a> - <strong>Version 1.1</strong>: <em>Uploaded 11/24/2012</em> </li><li><span style="color:#00ff00"><strong><em>UPLOAD</em></strong></span> <a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/34-uldum-library-by-terminator-version-1-1/"><strong><em>Uldum Library (by Terminator)</em></strong></a> - <strong>Version 1.1</strong>: <em>Uploaded 11/20/2012</em> </li><li><span style="color:#00ff00"><strong><em>UPLOAD</em></strong></span> <a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/32-uldum-library-by-terminator-version-1-0/"><strong><em>Uldum Library (by Terminator)</em></strong></a> - <strong>Version 1.0</strong>: <em>Uploaded 10/5/2012</em> </li></ul> <p><img src="http://i842.photobucket.com/albums/zz343/XenobloodAION/BlankPadding.png" alt="" title=""></p> <h3 id="w-how-to-use">How to Use:</h3> <ol><li>Open up the Sc2 Editor and load your map. </li><li>Once loaded, go to <em><span style="color:#ffff00">File</span> </em>-&gt; <em><span style="color:#ffff00">Dependencies</span></em> and click the button that says: "<em><span style="color:#ffff00">Add Other</span></em>". </li><li>A dialog will appear called "Choose Document". Click on the tab that says <em><span style="color:#ffff00">Battle.net</span></em> (it's at the top left next to <em>Local Files</em>). </li><li>Make sure you are logged into your Battle.net account (click the log in button). Click on the <em><span style="color:#ffff00">Source</span> dropdown menu</em> and select <em><span style="color:#ffff00">Map/Mod Name</span></em>. </li><li>There will be a search box right next to that. Type in: <strong><span style="color:#00ff00">WC Library</span></strong> and click <em>"<span style="color:#ffff00">Go</span>"</em>. </li><li>Select the mod you wish to add and click <em>"<span style="color:#ffff00">OK</span>"</em>. </li><li>Repeat these steps if you wish to add more than one mod (yes, you can do that!). After you're done adding mods, click "<em><span style="color:#ffff00">OK</span></em>" and it will load the dependencies. </li><li>To use the doodads, go to the doodad pallet and search for <span style="color:#00ff00"><strong><em>(W)</em></strong></span> to filter all the Warcraft Models. </li><li>If models are too big/small, go into the data editor go to the <em>models tab</em> and search for the model you wish to change (sometimes this is easier by going to the <em>ACTORS </em>tab and then seeing which model is linked to the doodad you're wanting to change). Edit the <em><span style="color:#ffff00">Art Scale Maximum</span></em> and <em><span style="color:#ffff00">Art Scale Minimum</span></em> (make sure they're the same). </li></ol> <p>List of Model Libraries in the <strong><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/">Files Tab</a></strong> <img src="http://i842.photobucket.com/albums/zz343/XenobloodAION/BlankPadding.png" alt="" title=""></p> <h2 id="w-warcraft-library-general-information">Warcraft Library: General Information</h2> <h4 id="w-what-is-warcraft-model-library">What is Warcraft Model Library?</h4> <p>The Warcraft Model Library is a project with the intent to make creating Warcraft themed maps even easier. This library includes several Mod files that will be uploaded and updated on Battle.net for everyone to use. All you need to do to use these mods is download the mod file and place it in the mods directory in your Starcraft 2 folder (I will put a link or create a tutorial on how to do that later). Currently this library consists of <strong>DOODAD </strong>models only. However, I hope to add units and tree resource models soon. In addition, myself and a team are currently going through each model and enhancing the detail by adding normal maps.</p> <p>If you decide to use any of these mods, I only ask that you give proper credits on the loading screen or in the map itself. In addition, <strong>anybody </strong>can add mod files or update current mod files by using the Warcraft Model Library site set up.</p> <p>If you have any questions or would like to work with me more closely in making this project more robust, please contact me at Warcraft.ModelLibrary@gmail.com.</p> <p>Here is the link to and alternate download for the Warcraft Model Library Database: <a href="https://docs.google.com/folder/d/0BzZAVewOvxpYY1psQU15WnlrQTA/edit?pli=1">HERE</a>. <strong><em>Note</em></strong>: Not all Mod Files are currently uploaded to Battle.Net. If you would like to help me upload and maintain these mod files, please contact me! </p> <h4 id="w-how-to-use-the-mods">How to Use the Mods:</h4> <p>For a walk-through go <a href="http://www.sc2mapster.com/assets/warcraft-model-library/pages/main/#w-using-the-mods">HERE</a>.</p> <h4 id="w-how-to-make-a-warcraft-model-library-mod">How to Make a Warcraft Model Library Mod:</h4> <p>For a walk-through go <a href="http://www.sc2mapster.com/forums/resources/tutorials/41001-warcraft-model-library-how-to/#p1">HERE</a>.</p> <h2 id="w-library-descriptions">Library Descriptions</h2> <h4 id="w-http-www-sc2mapster-com-assets-warcraft-model-library"><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/1-azuremyst-library-by-christian-petrescu/">Azuremyst Library</a></h4> <p><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/1-azuremyst-library-by-the-holy-ark-version-1-0/#w-screenshots"><strong><em>Pictures </em>of Azuremyst Models Models: </strong></a></p> <p><strong>-</strong> There are currently <strong><em>36 </em></strong>models in this mod map. (<strong><em>None are enhanced with embedded normal maps</em></strong>)</p> <p><strong>-</strong> The Azuremyst Library includes models that would fit a Draenei styled map. </p> <h4 id="w-http-www-sc2mapster-com-assets-warcraft-model-library-2"><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/38-barrens-library-by-terminator-version-1-1/">Barrens Library</a></h4> <p><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/38-barrens-library-by-terminator-version-1-1/#w-pictures"><strong><em>Pictures </em>of Barrens Models Models: </strong></a></p> <p><strong>-</strong> There are currently <strong><em>116 </em></strong>models in this library. (<strong><em>None are enhanced with embedded normal maps</em></strong>)</p> <p><strong>-</strong> The Barrens Library includes models that would fit a desert/red styled map. Models are from the Barrens, Blades Edges, Durotar, Redridge, and Badlands areas.</p> <h4 id="w-http-www-sc2mapster-com-assets-warcraft-model-library-3"><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/15-blood-elf-library-by-christian-petrescu-version-1-1/">Blood Elf Library</a></h4> <p><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/15-blood-elf-library-by-the-holy-ark-version-1-1/#w-screenshots"><strong><em>Pictures </em>of Blood Elf Library Models: </strong></a></p> <p><strong>-</strong> There are currently <strong><em>109 </em></strong>models in this library. (<strong><em>None are enhanced with embedded normal maps</em></strong>)</p> <p><strong>-</strong> The Blood Elf Library includes models that would fit a blood elf themed map. Models are from various blood elf areas and the netherstorm region.</p> <h4 id="w-http-www-sc2mapster-com-assets-warcraft-model-library-4"><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/29-forest-library-by-terminator-version-1-0/">Forest Library</a></h4> <p><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/29-forest-library-by-terminator-version-1-0/#w-screenshots"><strong><em>Pictures </em>of Forest Library Models: </strong></a></p> <p><strong>-</strong> There are currently <strong><em>146 </em></strong>models in this library. (<strong><em>None are enhanced with embedded normal maps</em></strong>)</p> <p><strong>-</strong> The Forest Library includes models that would fit a green, foresty themed map. Models are from Darkshore, Dustwallow, Ashenvale, Elwynn, and Un Goro areas.</p> <h4 id="w-http-www-sc2mapster-com-assets-warcraft-model-library-5"><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/37-human-library-by-the-holy-ark-version-1-1/">Human Library</a></h4> <p><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/37-human-library-by-the-holy-ark-version-1-1/#w-pictures"><strong><em>Pictures </em>of Human Library Models: </strong></a></p> <p><strong>-</strong> There are currently <strong><em>78 </em></strong>models in this library. (<strong><em>None are enhanced with embedded normal maps</em></strong>)</p> <p><strong>-</strong> The Human Library includes models that would fit a human city themed map. Models are from Stormwind, Elwynn, and other human areas.</p> <h4 id="w-http-www-sc2mapster-com-assets-warcraft-model-library-6"><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/28-mists-of-pandaria-library-by-terminator-version-1-0/">Mists of Pandaria Library</a></h4> <p><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/28-mists-of-pandaria-library-by-terminator-version-1-0/#w-pictures"><strong><em>Pictures </em>of Mists of Pandaria Library Models: </strong></a></p> <p><strong>-</strong> There are currently <strong><em>579!!!</em></strong>models in this library. (<strong><em>None are enhanced with embedded normal maps</em></strong>)</p> <p><strong>-</strong> The Mists of Pandaria Library includes a HUGE amount of models from the new Mists of Pandaria Expansion. This mod will eventually contain all (or most) of the Mists of Pandaria models; I will also split this mod into smaller pieces as well if people want.</p> <h4 id="w-http-www-sc2mapster-com-assets-warcraft-model-library-7"><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/6-moonglade-library-by-christian-petrescu/">Moonglade Library</a></h4> <p><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/6-moonglade-library-by-the-holy-ark-version-1-0/#w-pictures"><strong><em>Pictures </em>of Moonglade Library Models: </strong></a></p> <p><strong>-</strong> There are currently <strong><em>36 </em></strong>models in this library. ALSO CONTAINS A GROUND TEXTURE SET! (<strong><em>None are enhanced with embedded normal maps</em></strong>)</p> <p><strong>-</strong> The Moonglade Library includes models that would fit a Night Elf styled map. Models are from the Moonglade region.</p> <h4 id="w-http-www-sc2mapster-com-assets-warcraft-model-library-8"><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/20-night-elf-library-by-the-holy-ark-version-1-2/">Night Elf Library</a></h4> <p><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/20-night-elf-library-by-the-holy-ark-version-1-2/#w-pictures"><strong><em>Pictures </em>of Night Elf Library Models: </strong></a></p> <p><strong>-</strong> There are currently <strong><em>88 </em></strong>models in this library. ALSO CONTAINS A GROUND TEXTURE SET! (<strong><em>None are enhanced with embedded normal maps</em></strong>)</p> <p><strong>-</strong> The Night Elf Library includes models that would fit a Night Elf styled map. Models are from various Night Elven regions.</p> <h4 id="w-http-www-sc2mapster-com-assets-warcraft-model-library-9"><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/25-northrend-library-by-terminator-and-ahner-nick-version/">Northrend Library</a></h4> <p><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/25-northrend-library-by-terminator-and-ahner-nick-version/#w-screenshots"><strong><em>Pictures </em>of Northrend Library Models: </strong></a></p> <p><strong>-</strong> There are currently <strong><em>151 </em></strong>models in this library. (<strong><em>Some are enhanced with embedded normal maps</em></strong>)</p> <p><strong>-</strong> The Northrend Library includes models that would fit a snowy themed map. Models are from the Argent Dawn, Vrykul, Dragonblight, Borean Tundra, Snow Furbolg, Icecrown, Crystal Song Forest, and Titan regions (mainly Ulduar).</p> <h4 id="w-http-www-sc2mapster-com-assets-warcraft-model-library-10"><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/18-orc-and-troll-library-by-terminator-version-1-2/">Orc and Troll Library</a></h4> <p><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/18-orc-and-troll-library-by-terminator-version-1-2/#w-pictures"><strong><em>Pictures </em>of Orc and Troll Library Models: </strong></a></p> <p><strong>-</strong> There are currently <strong><em>70 </em></strong>models in this library. (<strong><em>None are enhanced with embedded normal maps</em></strong>)</p> <p><strong>-</strong> The Orc and Troll Library includes models that would fit a Horde Styled map. Models are from various Orc and Troll regions.</p> <h4 id="w-http-www-sc2mapster-com-assets-warcraft-model-library-11"><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/27-pandaria-library-by-the-holy-ark-and-terminator-version/">Pandaria Library</a></h4> <p><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/27-pandaria-library-by-the-holy-ark-and-terminator-version/#w-pictures"><strong><em>Pictures </em>of Pandaria Library Models: </strong></a></p> <p><strong>-</strong> There are currently <strong><em>74 </em></strong>models in this library. (<strong><em>None are enhanced with embedded normal maps</em></strong>)</p> <p><strong>-</strong> The Pandaria Library includes <strong><em>BRAND NEW</em></strong> models from the upcoming Expansion: <em>Mists of Pandaria</em>!</p> <h4 id="w-http-www-sc2mapster-com-assets-warcraft-model-library-12"><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/33-trisfal-library-by-terminator-version-1-0/">Tirisfall Ghostlands Library</a></h4> <p><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/33-trisfal-library-by-terminator-version-1-0/#w-pictures"><strong><em>Pictures </em>of Tirisfall Ghostlands Library Models: </strong></a></p> <p><strong>-</strong> There are currently <strong><em>229 </em></strong>models in this library. (<strong><em>None are enhanced with embedded normal maps</em></strong>)</p> <p><strong>-</strong> The Trisfall Ghostlands Library includes models that would fit a haunted themed map. Models are from Ghostlands, Twilight, and Worgen regions.</p> <h4 id="w-http-www-sc2mapster-com-assets-warcraft-model-library-13"><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/34-uldum-library-by-terminator-version-1-1/">Uldum Library</a></h4> <p><a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/34-uldum-library-by-terminator-version-1-1/#w-current-list-of-models"><strong>List of Uldum Library Models: </strong></a></p> <p><strong>-</strong> There are currently <strong><em>120 </em></strong>models in this library. (<strong><em>None are enhanced with embedded normal maps</em></strong>)</p> <p><strong>-</strong> The Uldum Library includes models that would fit a desert style map. Models are from Uldum and a Desert Twilight regions.</p> <h2 id="w-want-to-help">Want to Help?</h2> <p>This project is completely open source. Anyone can use these mods for any project. All I ask is for proper credits somewhere. This also means that anybody can help improve this project! Whether you'd like to help host a mod file, report bugs, update/improve existing mods, or even add your own model libraries to the mix, it is all encouraged. By helping with any of these things, you will receive proper credit and my tanks <span class="emote emote-smile" title="Smile">:)</span></p> <p>Currently, we need help hosting all the model libraries. Because of the restrictions Blizzard has created, I alone cannot host every mod file. If you would like to <strong>Sponsor </strong>a Mod file, you will be given credit in the actual Mod name on Sc2 Mapster or any other Website with the mod. </p> <p>I also would appreciate feedback on the Libraries themselves. Any activity and posting helps keep this project relevant.</p> <p>If you would like to help, contact me here or at www.Warcraft.ModelLibraries@gmail.com </p> <h4 id="w-downloading-the-mods-here">Downloading the Mods Here</h4> <ol><li>First, you need to download the mod files either <a href="http://www.sc2mapster.com/assets/warcraft-model-library/files/">here</a> at Sc2Mapster, or at the alternate site <a href="https://docs.google.com/folder/d/0BzZAVewOvxpYY1psQU15WnlrQTA/edit?pli=1">here</a>. </li><li>Go to your downloads folder (or wherever you downloaded the Mods to) and move them to your Sc2 Mod Directory. (This is usually at <span style="color:#ffff00"><em>C:\Program Files\StarCraft II\Mods</em></span> or <span style="color:#ffff00"><em>C:\Program Files (x86)\StarCraft II\Mods</em></span>) </li></ol> <h2 id="w-in-association-with-http-www-warcraftanewdawn-com-warcraft">In Association with: <a href="http://www.warcraftanewdawn.com/">Warcraft A New Dawn</a> project</h2> <p>If you would like to join and help out with this project as well, please PM me here!</p> <h2 id="w-other-warcraft-resources">Other Warcraft Resources</h2> <p>Here I will make a list of other resources put together by other people on Sc2Mapster that will assist people in making Warcraft-themed maps! None of these links are my own work. They are made from their respected creators which I will list here. If any of the people responsible for these assets finds this repost intolerable or wrong in any way, please contact me and I will remove your asset from the list. I will never link directly to the actual download, only to the main page of the asset itself. Enjoy!</p> <h4 id="w-"></h4> <h3 id="w-wow-model-pack-by-http-www-sc2mapster-com-profiles">WoW Model-Pack By <a href="http://www.sc2mapster.com/profiles/Zarakk/">Zarakk</a></h3> <p>Tons and tons of unit models that have working animations and can be used in maps to create Warcraft-like units. I really admire this project and hope to someday improve upon it by making a database mod purely filled with every Warcraft Unit Available!</p> <ul><li><a href="http://www.sc2mapster.com/forums/resources/art-assets/8347-wow-model-pack-requests/">LINK</a> </li></ul> <h4 id="w--2"></h4> <h3 id="w-warcraft-3-icons-by-http-www-sc2mapster-com-profiles">Warcraft 3 Icons By <a href="http://www.sc2mapster.com/profiles/7H3LaughingMan/">7H3LaughingMan</a></h3> <p>This resource contains all 1,062 Warcraft 3 Icons edited so that it has 100% Integration into Starcraft 2. These icons are from the Warcraft 3 game. I'll try to get a similar asset with WoW icons, or find one that somebody else has done.</p> <ul><li><a href="http://www.sc2mapster.com/assets/warcraft-3-icons/">LINK</a> </li></ul> <h4 id="w--3"></h4> <h3 id="w-warcraft-footman-model-by-http-www-sc2mapster-com-profiles">Warcraft Footman Model By <a href="http://www.sc2mapster.com/profiles/Triceron/">Triceron</a></h3> <p>This is a custom Footman Model based on Warcraft 3's Footman from the cinematics. Uses animations from Warcraft 3. Model and Textures created by Triceron. This model is free for public use.</p> <ul><li><a href="http://www.sc2mapster.com/assets/warcraft-footman-model/">LINK</a> </li></ul> <h4 id="w--4"></h4> <h3 id="w-world-of-warcraft-weapon-pack-by-http-www-sc2mapster">World of Warcraft Weapon Pack By <a href="http://www.sc2mapster.com/profiles/Malpheus/">Malpheus</a></h3> <p>WOW Weapon Model Packs for your use. This is approximately 10% of the models exported at <a href="http://www.sc2eagle.com/">SC2EAGLE</a>, I will add as I get around to it. Credit to Shock for doing all the work.</p> <ul><li><a href="http://www.sc2mapster.com/assets/world-warcraft-weapon-packs/">LINK</a></li></ul> Mon, 13 May 2013 02:53:45 +0000 http://www.sc2mapster.com/assets/warcraft-model-library/ http://www.sc2mapster.com/assets/warcraft-model-library/ no-reply@sc2mapster.com () SC1 Raynor on Vulture http://www.sc2mapster.com/assets/sc1-raynor-vulture/ <p>This is the Vulture model that has been changed with our cool guy Raynor, especially made for the SC1 Remake</p> Fri, 10 May 2013 21:31:47 +0000 http://www.sc2mapster.com/assets/sc1-raynor-vulture/ http://www.sc2mapster.com/assets/sc1-raynor-vulture/ no-reply@sc2mapster.com () Custom Textures by RC131 http://www.sc2mapster.com/assets/rc131-specops-dropship-medivac-t/ <ol><li>Updated Fortress Roach textures 09/05/2013 </li></ol> <p>High quality customized textures based on original blizzard art asset. I'm currently spending my 2013 summer on studying custom model making and animations for SC2. Hopefully will be making custom models before the summer ends</p> <p>Author:<br> Scythelisk #587</p> <p>Final version of Fortress Roach<br> Thanks to println for making the great functional blender m3 plugin!!</p> <p><img src="http://bbs.islga.org/data/attachment/forum/201305/17/121109umaubq3tpq6m2vb2.png" alt="http://bbs.islga.org/data/attachment/forum/201305/17/121109umaubq3tpq6m2vb2.png" title="http://bbs.islga.org/data/attachment/forum/201305/17/121109umaubq3tpq6m2vb2.png"></p> <p><img src="http://bbs.islga.org/data/attachment/forum/201305/04/084437xuw9cq5li51755pq.png" alt="http://bbs.islga.org/data/attachment/forum/201305/04/084437xuw9cq5li51755pq.png" title="http://bbs.islga.org/data/attachment/forum/201305/04/084437xuw9cq5li51755pq.png"></p> Wed, 08 May 2013 23:20:51 +0000 http://www.sc2mapster.com/assets/rc131-specops-dropship-medivac-t/ http://www.sc2mapster.com/assets/rc131-specops-dropship-medivac-t/ no-reply@sc2mapster.com () Syberia fighter (protoss air unit) http://www.sc2mapster.com/assets/syberia-fighter-protoss-air-unit/ <p>Light protoss air unit, has all the required stuff, like hit tests and attachments. Has some anims. Created in Art Tools. <img src="http://i.snag.gy/GfhJr.jpg" alt="http://i.snag.gy/GfhJr.jpg" title="http://i.snag.gy/GfhJr.jpg"></p> Sat, 04 May 2013 10:14:43 +0000 http://www.sc2mapster.com/assets/syberia-fighter-protoss-air-unit/ http://www.sc2mapster.com/assets/syberia-fighter-protoss-air-unit/ no-reply@sc2mapster.com () SC2 Localizing http://www.sc2mapster.com/assets/sc2-localising/ <section class="toc expanding-module" data-expand-by="toc" data-expand-default="open"><div class="content-box"><div class="content-box-inner"><h3>Table of contents</h3><ol class="toc-level toc-level-1"><li><a href="#w-sc2-translate-1-0-10-14"><span class="toc-number">1</span> <span class="toc-text">SC2-translate 1.0.10.14</span></a><ol class="toc-level toc-level-2"><li><a href="#w-features"><span class="toc-number">1.1</span> <span class="toc-text">FEATURES</span></a><ol class="toc-level toc-level-3"><li><a href="#w-localize-a-file"><span class="toc-number">1.1.1</span> <span class="toc-text">localize a file</span></a><li><a href="#w-re-localize-a-file"><span class="toc-number">1.1.2</span> <span class="toc-text">re-localize a file</span></a><li><a href="#w-settings"><span class="toc-number">1.1.3</span> <span class="toc-text">settings</span></a><li><a href="#w-errors"><span class="toc-number">1.1.4</span> <span class="toc-text">errors</span></a></ol><li><a href="#w-what-you-have-to-pay-attention-for"><span class="toc-number">1.2</span> <span class="toc-text">What you have to pay attention for</span></a><li><a href="#w-what-you-need"><span class="toc-number">1.3</span> <span class="toc-text">What you need</span></a><li><a href="#w-known-glitches"><span class="toc-number">1.4</span> <span class="toc-text">KNOWN glitches</span></a><li><a href="#w-changelog"><span class="toc-number">1.5</span> <span class="toc-text">+CHANGELOG</span></a><li><a href="#w-todo"><span class="toc-number">1.6</span> <span class="toc-text">+TODO</span></a><li><a href="#w-special-thanks"><span class="toc-number">1.7</span> <span class="toc-text">special thanks</span></a></ol></ol></div></div></section> <h2 id="w-sc2-translate-1-0-10-14">SC2-translate 1.0.10.14</h2> <p>I thought about the problems with localizing a new version of a Map or Mod, because the SC2Editor have no option to do this automatically and it seemed to me that to do these will be a waste of time. Therefore I began to write a small tool to help map developers in this fact.</p> <p>If you have an idea or a comment, just send me an PM or post something. I will be happy about it.</p> <p>I'm also happy if you test it, or give me a hint what is missing in the program.</p> <h3 id="w-features">FEATURES</h3> <h4 id="w-localize-a-file">localize a file</h4> <ul><li>preview and replace localized files per drag and drop (images, audio, video) </li><li>automatic convertion to destination codec </li><li>renaming ingame strings more easier than in SC2Editor (linefeeds and multiple spaces are snipped automatically) </li><li>sort the GameStrings.txt by occurrence in the Trigger file </li></ul> <h4 id="w-re-localize-a-file">re-localize a file</h4> <p>Problem: you have localized a file. Now a new version of the file is out and you have to do it again.</p> <ul><li>automatically copy localized files/strings from the old to the new version </li><li>manually check for new, converted, moved or discarded files to rematch them </li><li>for rematching also previews are available </li></ul> <p>Possible problem: you have to do this for many languages.</p> <ul><li>therefore a MatchLog will be created to log all your manually moved and converted files, to do this for the other runs also automatically </li></ul> <h4 id="w-settings">settings</h4> <ul><li>after you installed VLC you can recheck to the path without restarting the program </li><li>you can select nightly builds for autoupdates </li><li>you can change the default settings for the convertion dialog and can choose the option to use them anyway without a request </li></ul> <h4 id="w-errors">errors</h4> <ul><li>if an error occurs, you can send them with a note to me w/o using any mail-client (uses http:post) </li></ul> <h3 id="w-what-you-have-to-pay-attention-for">What you have to pay attention for</h3> <ul><li>The Map/Mod you want to (re)localize has to be in a SC2.subfolder (e.g. /Maps). It's important, that MPQEditor can access the file. </li></ul> <h3 id="w-what-you-need">What you need</h3> <ul><li>SC2 installed </li><li>.Net 4 Framework </li><li>(optional) VLC for viewing videos in the form, else the program open the standard player </li><li>the tool: <a href="http://www.sc2mapster.com/assets/sc2-localising/files/5-sc2-translate-1-0-8/">SC2-translate 1.0.8.0</a> (updates automatically to actual release) </li><li>(you can get the source under: <a href="https://sourceforge.net/p/sc2translate/code/">sourceforge.net/p/sc2translate/</a> , I'm using <a href="http://easyhg.org/">EasyMercurial</a>) </li></ul> <h3 id="w-known-glitches">KNOWN glitches</h3> <h3 id="w-changelog">+CHANGELOG</h3> <h3 id="w-todo">+TODO</h3> <p><a href="https://sourceforge.net/p/sc2translate/wiki/dev_issues/">look here</a></p> <h3 id="w-special-thanks">special thanks</h3> <p>goes to the developer of the libs irrKlang and FreeImage, further more to the developer of the MPQEditor and ffmpeg</p> Fri, 03 May 2013 19:15:30 +0000 http://www.sc2mapster.com/assets/sc2-localising/ http://www.sc2mapster.com/assets/sc2-localising/ no-reply@sc2mapster.com () SoulFilcher and Ghostnova Library http://www.sc2mapster.com/assets/soulfilcher-and-ghostnova-librar/ <p>This is where the models and assets that both myself and SoulFilcher have worked on can be found.</p> Thu, 02 May 2013 20:43:33 +0000 http://www.sc2mapster.com/assets/soulfilcher-and-ghostnova-librar/ http://www.sc2mapster.com/assets/soulfilcher-and-ghostnova-librar/ no-reply@sc2mapster.com () Gigalisk http://www.sc2mapster.com/assets/gigalisk/ <p><img src="http://i1343.photobucket.com/albums/o797/beng128/gigalisk_zpsc5ced883.jpg" alt="Gigalisk" title="Gigalisk"></p> <p>A concept model i made for Fun. I'm going to texture and animate it later, then let anyone they want use it. Suggestions are welcome, or mabye even requests. ps, the render lighting is funky cause i wanted you to be able to see the whole thing. </p> <p>I wanted it to be around the same size as ultra lisk in game, if you wanted to know about its scale.</p> Thu, 02 May 2013 02:12:26 +0000 http://www.sc2mapster.com/assets/gigalisk/ http://www.sc2mapster.com/assets/gigalisk/ no-reply@sc2mapster.com () [Mod] Orion http://www.sc2mapster.com/assets/mod-orion/ <p>Orion is a powerful mod that facilitates creating own role playing or shooter games. It provides an extensive trigger library that exceeds any other mod I know, has full GUI support, and grants a huge amount of configurability and flexibility.</p> <p>Got interested? Test it out by playing the presentation map "Orion Sample", which is online on EU servers or can be downloaded here on SC2Mapster.com (please read the notes in the map's patch notes to learn how to install the mod). You can also use that map as an example of how to use the mod (currently there is no English tutorial for the mod).</p> <p>Please PM me for any feedback, bug reports or ideas for new features. Please also PM me if you want to get the mod explained.</p> Tue, 30 Apr 2013 18:26:58 +0000 http://www.sc2mapster.com/assets/mod-orion/ http://www.sc2mapster.com/assets/mod-orion/ no-reply@sc2mapster.com () Modern Warfare Assets http://www.sc2mapster.com/assets/modern-warfare-models/ <p>A collection of poorly edited SC2-style models based on modern warfare/prototype aircraft, vehicles and technology made entirely from stock SC2 assets, so no custom textures needed! </p> <p>NEW! NOW INCLUDING AWESOME CUSTOM ICONS AND OTHER ASSORTED COOL STUFF!</p> <p>Made possible only with NiNtoxicated and Leruster's <a href="http://www.sc2mapster.com/assets/m3-export-plugin-3ds-max/">3DS Max m3 plugin</a>.</p> <p>Unless specified, most models require the Liberty (Campaign) dependency, so make sure you have it added to your map or some of the models may not display properly in-game. Those that do not will have the Swarm (Campaign) dependency specified as a prerequisite and cannot be used in Wings of Liberty maps/mods; <strong>I'm not liable for your woes if Blizz hits you with the banhammer because you ignored this warning!</strong></p> <p>As usual, just give credit if you use any of these assets in your maps.</p> <p>Currently Available Assets ('+' denotes that it has additional assets included for it):</p> <ul><li>F-22A Raptor </li><li>LAV-25 + </li><li>M1A3 Abrams + </li><li>Woodland MARPAT</li></ul> Mon, 29 Apr 2013 00:13:58 +0000 http://www.sc2mapster.com/assets/modern-warfare-models/ http://www.sc2mapster.com/assets/modern-warfare-models/ no-reply@sc2mapster.com () Galaxy++ editor by Beier http://www.sc2mapster.com/assets/galaxy-editor-beier/ <section class="toc expanding-module" data-expand-by="toc" data-expand-default="open"><div class="content-box"><div class="content-box-inner"><h3>Table of contents</h3><ol class="toc-level toc-level-1"><li><a href="#w-documentation"><span class="toc-number">1</span> <span class="toc-text">Documentation</span></a><ol class="toc-level toc-level-2"><li><a href="#w-general"><span class="toc-number">1.1</span> <span class="toc-text">General</span></a><li><a href="#w-compiler-options"><span class="toc-number">1.2</span> <span class="toc-text">Compiler options</span></a><ol class="toc-level toc-level-3"><li><a href="#w-obfuscation"><span class="toc-number">1.2.1</span> <span class="toc-text">Obfuscation</span></a></ol><li><a href="#w-declarations"><span class="toc-number">1.3</span> <span class="toc-text">Declarations</span></a><ol class="toc-level toc-level-3"><li><a href="#w-namespaces"><span class="toc-number">1.3.1</span> <span class="toc-text">Namespaces</span></a><li><a href="#w-initializers-and-library-definitions"><span class="toc-number">1.3.2</span> <span class="toc-text">Initializers and Library definitions</span></a><li><a href="#w-includes"><span class="toc-number">1.3.3</span> <span class="toc-text">Includes</span></a><li><a href="#w-methods"><span class="toc-number">1.3.4</span> <span class="toc-text">Methods</span></a><ol class="toc-level toc-level-4"><li><a href="#w-inline-methods"><span class="toc-number">1.3.4.1</span> <span class="toc-text">Inline methods</span></a><li><a href="#w-trigger-methods"><span class="toc-number">1.3.4.2</span> <span class="toc-text">Trigger methods</span></a><li><a href="#w-reference-parameters-and-extra-return-values"><span class="toc-number">1.3.4.3</span> <span class="toc-text">Reference parameters and extra return values</span></a><li><a href="#w-passing-bulkcopy-data"><span class="toc-number">1.3.4.4</span> <span class="toc-text">Passing bulkcopy data</span></a></ol><li><a href="#w-fields"><span class="toc-number">1.3.5</span> <span class="toc-text">Fields</span></a><li><a href="#w-visibility-modifiers"><span class="toc-number">1.3.6</span> <span class="toc-text">Visibility modifiers</span></a><li><a href="#w-structs"><span class="toc-number">1.3.7</span> <span class="toc-text">Structs</span></a><li><a href="#w-classes"><span class="toc-number">1.3.8</span> <span class="toc-text">Classes</span></a><li><a href="#w-generics"><span class="toc-number">1.3.9</span> <span class="toc-text">Generics</span></a><li><a href="#w-enums"><span class="toc-number">1.3.10</span> <span class="toc-text">Enums</span></a><li><a href="#w-enrichments"><span class="toc-number">1.3.11</span> <span class="toc-text">Enrichments</span></a><li><a href="#w-constructors"><span class="toc-number">1.3.12</span> <span class="toc-text">Constructors</span></a><li><a href="#w-deconstructors"><span class="toc-number">1.3.13</span> <span class="toc-text">Deconstructors</span></a><li><a href="#w-array-based-pointers"><span class="toc-number">1.3.14</span> <span class="toc-text">Array based pointers</span></a><li><a href="#w-enheritance"><span class="toc-number">1.3.15</span> <span class="toc-text">Enheritance</span></a><li><a href="#w-properties"><span class="toc-number">1.3.16</span> <span class="toc-text">Properties</span></a><li><a href="#w-bank-preload-statement"><span class="toc-number">1.3.17</span> <span class="toc-text">Bank preload statement</span></a><li><a href="#w-trigger-declaration"><span class="toc-number">1.3.18</span> <span class="toc-text">Trigger declaration</span></a><li><a href="#w-operator-overloading"><span class="toc-number">1.3.19</span> <span class="toc-text">Operator overloading</span></a></ol><li><a href="#w-statements"><span class="toc-number">1.4</span> <span class="toc-text">Statements</span></a><ol class="toc-level toc-level-3"><li><a href="#w-if-statements"><span class="toc-number">1.4.1</span> <span class="toc-text">If statements</span></a><li><a href="#w-for-statements"><span class="toc-number">1.4.2</span> <span class="toc-text">For statements</span></a><li><a href="#w-switch-statements"><span class="toc-number">1.4.3</span> <span class="toc-text">Switch statements</span></a><li><a href="#w-async-invoke-statement"><span class="toc-number">1.4.4</span> <span class="toc-text">AsyncInvoke statement</span></a><li><a href="#w-local-declarations"><span class="toc-number">1.4.5</span> <span class="toc-text">Local declarations</span></a><li><a href="#w-array-resize-statement"><span class="toc-number">1.4.6</span> <span class="toc-text">Array Resize statement</span></a></ol><li><a href="#w-expressions"><span class="toc-number">1.5</span> <span class="toc-text">Expressions</span></a><ol class="toc-level toc-level-3"><li><a href="#w-the-and-expressions"><span class="toc-number">1.5.1</span> <span class="toc-text">The ++ and -- expressions</span></a><li><a href="#w-invoke"><span class="toc-number">1.5.2</span> <span class="toc-text">Invoke</span></a><li><a href="#w-assignments"><span class="toc-number">1.5.3</span> <span class="toc-text">Assignments</span></a><li><a href="#w-array-length"><span class="toc-number">1.5.4</span> <span class="toc-text">Array length</span></a><li><a href="#w-casts-and-implicit-casts"><span class="toc-number">1.5.5</span> <span class="toc-text">Casts and implicit casts</span></a><li><a href="#w-the-this-expression"><span class="toc-number">1.5.6</span> <span class="toc-text">The this expression</span></a><li><a href="#w-expression-ifs"><span class="toc-number">1.5.7</span> <span class="toc-text">Expression if&#39;s</span></a></ol><li><a href="#w-pointers"><span class="toc-number">1.6</span> <span class="toc-text">Pointers</span></a><ol class="toc-level toc-level-3"><li><a href="#w-pointer-types"><span class="toc-number">1.6.1</span> <span class="toc-text">Pointer types</span></a><li><a href="#w-dynamic-array-types"><span class="toc-number">1.6.2</span> <span class="toc-text">Dynamic array types</span></a><li><a href="#w-the-expression"><span class="toc-number">1.6.3</span> <span class="toc-text">The * expression</span></a><li><a href="#w-the-expression-2"><span class="toc-number">1.6.4</span> <span class="toc-text">The -&gt; expression</span></a><li><a href="#w-the-new-expression"><span class="toc-number">1.6.5</span> <span class="toc-text">The new expression</span></a><li><a href="#w-the-delete-statement"><span class="toc-number">1.6.6</span> <span class="toc-text">The delete statement</span></a><li><a href="#w-null-checks"><span class="toc-number">1.6.7</span> <span class="toc-text">Null checks</span></a></ol><li><a href="#w-delegates-function-pointers"><span class="toc-number">1.7</span> <span class="toc-text">Delegates (function pointers)</span></a><ol class="toc-level toc-level-3"><li><a href="#w-definition"><span class="toc-number">1.7.1</span> <span class="toc-text">Definition</span></a><li><a href="#w-delegate-creation-expression-and-invocation"><span class="toc-number">1.7.2</span> <span class="toc-text">Delegate creation expression and invocation</span></a></ol></ol></ol></div></div></section> <p>The program is now only released on my ftp server - see the thread linked below. <a href="http://forums.sc2mapster.com/resources/third-party-tools/19619-galaxy-editor/#p1">http://forums.sc2mapster.com/resources/third-party-tools/19619-galaxy-editor/#p1</a></p> <h1 id="w-documentation">Documentation</h1> <h2 id="w-general">General</h2> <p>Galaxy<code>++</code> is a programming language that extends upon the original galaxy language, adding a lot more features. This means that any galaxy code you have should run exactly the same way when feeding it to the galaxy<code>++</code> compiler.<br> Like most other programming languages, comments and whitespace is ignored by the compiler, so they can be placed pretty much anywhere without changing the behavior of the program.<br> If you feel some of your questions still go unanswered after reading this, or you find errors in the documentation, please pm me or post a reply. I will get back to you, and perhaps add to the documentation. </p> <h2 id="w-compiler-options">Compiler options</h2> <p>Although they might not classify as a language feature, I feel it's relevant to highlight some of the options in the compiler.</p> <h3 id="w-obfuscation">Obfuscation</h3> <p>There are a couple of tools for obfuscating the code. One is to rename everything to short names such as a, b, c. The other is to obfuscate string literals. What this will do is to "encrypt" every string so it is not readable by humans, and "decrypt" them when starting the map.<br> Please note that no code obfuscation can completely prevent others from reading, understanding and stealing your code. It just makes it difficult.</p> <h2 id="w-declarations">Declarations</h2> <h3 id="w-namespaces">Namespaces</h3> <p>There are multiple ways of defining namespaces.</p> <div class="code-wrapper" data-lexer="matlab"><div class="markup-code"><pre><span class="n">namespace</span> <span class="n">a</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">c</span> <span class="o">//</span><span class="n">This</span> <span class="n">way</span><span class="p">,</span> <span class="n">everything</span> <span class="n">in</span> <span class="n">the</span> <span class="n">file</span> <span class="n">will</span> <span class="n">be</span> <span class="n">in</span> <span class="n">the</span> <span class="n">namespace</span> <span class="n">a</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">c</span> <span class="n">using</span> <span class="n">a</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">c</span><span class="o">//</span><span class="n">The</span> <span class="n">whole</span> <span class="n">file</span> <span class="n">can</span> <span class="n">directly</span> <span class="n">reference</span> <span class="n">declarations</span> <span class="n">in</span> <span class="n">the</span> <span class="n">namespace</span> <span class="n">a</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">c</span> <span class="n">int</span> <span class="n">field1</span><span class="p">;</span> <span class="n">namespace</span> <span class="n">d</span><span class="p">.</span><span class="n">e</span> <span class="p">{</span> <span class="o">//</span><span class="n">Stuff</span> <span class="n">in</span> <span class="n">here</span> <span class="n">will</span> <span class="n">be</span> <span class="n">in</span> <span class="n">the</span> <span class="n">a</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">c</span><span class="p">.</span><span class="n">d</span><span class="p">.</span><span class="n">e</span> <span class="n">namespace</span> <span class="n">int</span> <span class="n">field2</span><span class="p">;</span> <span class="p">}</span> <span class="n">namespace</span> <span class="n">d</span> <span class="p">{</span> <span class="n">int</span> <span class="n">field3</span><span class="p">;</span> <span class="n">namespace</span> <span class="n">e</span> <span class="p">{</span> <span class="o">//</span><span class="n">Stuff</span> <span class="n">in</span> <span class="n">here</span> <span class="n">will</span> <span class="n">also</span> <span class="n">be</span> <span class="n">in</span> <span class="n">the</span> <span class="n">a</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">c</span><span class="p">.</span><span class="n">d</span><span class="p">.</span><span class="n">e</span> <span class="n">namespace</span> <span class="n">int</span> <span class="n">field4</span><span class="p">;</span> <span class="n">void</span> <span class="n">method</span><span class="p">()</span> <span class="p">{</span> <span class="n">a</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">c</span><span class="p">.</span><span class="n">d</span><span class="p">.</span><span class="n">field3</span> <span class="p">=</span> 1<span class="p">;</span><span class="o">//</span><span class="n">Have</span> <span class="n">to</span> <span class="n">make</span> <span class="n">an</span> <span class="n">absolute</span> <span class="n">naming</span> <span class="n">field1</span> <span class="p">=</span> 2<span class="p">;</span><span class="o">//</span><span class="n">Can</span> <span class="n">be</span> <span class="n">referenced</span> <span class="n">directly</span> <span class="n">due</span> <span class="n">to</span> <span class="n">the</span> <span class="n">using</span> <span class="n">declaration</span><span class="p">.</span> <span class="n">field2</span> <span class="p">=</span> <span class="n">field4</span><span class="p">;</span><span class="o">//</span><span class="n">Both</span> <span class="n">declarations</span> <span class="n">are</span> <span class="n">in</span> <span class="n">the</span> <span class="n">current</span> <span class="n">namespace</span> <span class="p">}</span> <span class="p">}</span> <span class="p">}</span> <span class="n">void</span> <span class="n">method</span><span class="p">()</span> <span class="p">{</span> <span class="n">field1</span> <span class="p">=</span> 2<span class="p">;</span><span class="o">//</span><span class="n">You</span> <span class="n">can</span> <span class="n">directly</span> <span class="n">reference</span> <span class="n">declarations</span> <span class="n">in</span> <span class="n">your</span> <span class="n">current</span> <span class="n">namespace</span> <span class="n">d</span><span class="p">.</span><span class="n">field3</span> <span class="p">=</span> 3<span class="p">;</span><span class="o">//</span><span class="n">You</span> <span class="n">can</span> <span class="n">reference</span> <span class="n">namespaces</span> <span class="n">in</span> <span class="n">your</span> <span class="n">current</span> <span class="n">namespace</span> <span class="n">directly</span> <span class="n">a</span><span class="p">.</span><span class="n">b</span><span class="p">.</span><span class="n">c</span><span class="p">.</span><span class="n">d</span><span class="p">.</span><span class="n">e</span><span class="p">.</span><span class="n">field4</span> <span class="p">=</span> 4<span class="p">;</span><span class="o">//</span><span class="n">You</span> <span class="n">can</span> <span class="n">also</span> <span class="n">choose</span> <span class="n">to</span> <span class="n">write</span> <span class="n">the</span> <span class="n">whole</span> <span class="n">namespace</span> <span class="p">}</span> </pre></div> </div><h3 id="w-initializers-and-library-definitions">Initializers and Library definitions</h3> <p>Initializes are basically methods that are run at first, when the map loads. Unless you made your own call to initialize the standard library, this call will be inserted before calling the initializers. You can make a simple initialize with</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">Initializer</span> <span class="p">{</span> <span class="p">[</span><span class="n">statements</span><span class="p">]</span> <span class="p">}</span> </pre></div> </div><p>The initializers can also contain data about a library you are defining. There are 4 different library fields: LibraryName, LibraryVersion, SupportedVersions and RequiredLibraries. An example of a library initializer is</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">Initializer</span> <span class="p">(</span> <span class="n">LibraryName</span> <span class="o">=</span> <span class="s2">"</span><span class="s">my library"</span> <span class="n">LibraryVersion</span> <span class="o">=</span> <span class="s2">"</span><span class="s">enterprise"</span><span class="p">,</span> <span class="n">SupportedVersions</span> <span class="o">=</span> <span class="s2">"</span><span class="s">trial, basic"</span> <span class="n">RequiredLibraries</span> <span class="o">=</span> <span class="s2">"</span><span class="s">other lib 1:version2, (otherLib2:v1.7.4)"</span> <span class="p">)</span> <span class="p">{</span> <span class="p">[</span><span class="n">statements</span><span class="p">]</span> <span class="p">}</span> </pre></div> </div><p>All the library fields are optional, except you need both a name and a version in order for others to add it as a requirement. If your library version is not on the list of supported versions, it will be added. You may not use “:”, “(“, “)” or “,” in the name or versions, and all leading and trailing whitespace is ignored. The method block is optional. It can be replaced with a semicolon.<br> If an initializer has defined any required libraries, the initializers of those libraries will be called first. In case of cyclic dependencies, a warning is reported, and as few dependencies as possible are ignored.</p> <h3 id="w-includes">Includes</h3> <p>Any custom includes are ignored. Includes will be inserted by the compiler as needed, but all code except for the standard libraries are required in the project.</p> <h3 id="w-methods">Methods</h3> <p>Unlike normal galaxy, it is not needed to have defined the method before using it.</p> <h4 id="w-inline-methods">Inline methods</h4> <p>Inline methods are marked with the keyword inline. When compiling a call to an inline method, the contents of the method is inserted instead of calling the actual method. This is done in a way so that there is no semantic difference to calling the method instead.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">inline</span> <span class="n">int</span> <span class="n">method</span><span class="p">(</span><span class="o">...</span><span class="p">)</span> <span class="p">{</span> <span class="o">...</span> <span class="p">}</span> </pre></div> </div><p>Note that inline methods may not be recursive i.e. they may not be called from themselves.</p> <h4 id="w-trigger-methods">Trigger methods</h4> <p>The Trigger can be put infront of methods, but it no longer has any effect. It was previously used to identify methods that were triggers, but this is now done by searching for a string in a call to TriggerCreate. The keyword is kept for backward compatibility.</p> <h4 id="w-reference-parameters-and-extra-return-values">Reference parameters and extra return values</h4> <p>You can mark parameters with the ref or out keywords. Arguments passed to parameters marked with one of these must be variables. The effect of ref is that any changes done to the variable during the method call is reflected back in the calling method after the call. out is similar. Like with ref the changes done to this variable will also be done after the call, but unlike ref, it is required that the called method assigns a value to an out parameter, and he cannot read the parameter before he assigns a value to it. After compilation, an out parameter is not actually passed to the function, it is only returned, so it can be used as extra return values.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">string</span><span class="p">[</span><span class="mi">17</span><span class="p">]</span> <span class="n">strings</span><span class="p">;</span> <span class="n">string</span> <span class="n">Next</span><span class="p">(</span><span class="n">ref</span> <span class="n">int</span> <span class="n">i</span><span class="p">,</span> <span class="n">out</span> <span class="n">bool</span> <span class="n">hasNext</span><span class="p">)</span> <span class="p">{</span> <span class="n">hasNext</span> <span class="o">=</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">&lt;</span> <span class="n">strings</span><span class="p">.</span><span class="n">length</span><span class="p">;</span> <span class="k">if</span> <span class="p">(</span><span class="n">hasNext</span><span class="p">)</span> <span class="k">return</span> <span class="n">strings</span><span class="p">[</span><span class="o">++</span><span class="n">i</span><span class="p">];</span> <span class="k">return</span> <span class="s2">"</span><span class="s">"</span><span class="p">;</span> <span class="p">}</span> </pre></div> </div><h4 id="w-passing-bulkcopy-data">Passing bulkcopy data</h4> <p>Another thing to not is that it is now possible to pass types that would otherwise result in a bulk copy error between methods. This includes struct types and arrays. From your point of view, they are passed in exactly the same way as normal types. The compiler will send them via the data table instead.</p> <h3 id="w-fields">Fields</h3> <p>Fields are pretty much what they are in galaxy, except that you don't have to have defined them above where you use them.</p> <h3 id="w-visibility-modifiers">Visibility modifiers</h3> <p>You can mark global methods, fields and properties as public or private. By default, they will be set to public. If you mark them as private, they can only be accessed from inside the current namespace.</p> <p>For methods, fields and properties inside structs, you can mark them as public, private and protected.<br> Like above, marking them with public is the same as not marking them at all.<br> If you set them to private, they can only be used from within the current struct.<br> If you set them to protected, they can only be used from within the current struct, or some other struct that enherit from it.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">namespace</span> <span class="n">myNS</span> <span class="n">private</span> <span class="n">int</span> <span class="n">privateField</span><span class="p">;</span> <span class="n">struct</span> <span class="n">Str</span> <span class="p">{</span> <span class="n">private</span> <span class="n">int</span> <span class="n">privateProp</span> <span class="p">{</span> <span class="n">get</span> <span class="p">{</span> <span class="k">return</span> <span class="mi">2</span><span class="p">;</span> <span class="p">}</span> <span class="p">}</span> <span class="n">protected</span> <span class="n">void</span> <span class="n">protectedMethod</span><span class="p">()</span> <span class="p">{</span> <span class="p">}</span> <span class="p">}</span> </pre></div> </div><h3 id="w-structs">Structs</h3> <p>Like with fields and methods, you don't have to define structs above where you use them.<br> A new thing in galaxy<code>++</code> is that structs can now contain methods. Simply place a method inside a struct, and that method will be a struct method. Struct methods will always be called with a specific instance of the struct. It is possible to directly refer to the members of the struct that is being called on by just typing the name of the member.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">struct</span> <span class="n">Foo</span> <span class="p">{</span> <span class="n">int</span><span class="p">[</span><span class="mi">10</span><span class="p">]</span> <span class="n">elements</span><span class="p">;</span> <span class="n">int</span> <span class="n">GetSum</span><span class="p">()</span> <span class="p">{</span> <span class="n">int</span> <span class="n">sum</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="k">for</span> <span class="p">(</span><span class="n">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">elements</span><span class="p">.</span><span class="n">length</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="n">sum</span> <span class="o">+=</span> <span class="n">elements</span><span class="p">[</span><span class="n">i</span><span class="p">];</span> <span class="k">return</span> <span class="n">sum</span><span class="p">;</span> <span class="p">}</span> <span class="p">}</span> <span class="o">...</span> <span class="n">void</span> <span class="n">Method</span><span class="p">(</span><span class="n">Foo</span> <span class="n">foo</span><span class="p">)</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="n">foo</span><span class="p">.</span><span class="n">GetSum</span><span class="p">()</span> <span class="o">&gt;</span> <span class="mi">9000</span><span class="p">)</span> <span class="o">...</span> <span class="o">...</span> <span class="p">}</span> </pre></div> </div><h3 id="w-classes">Classes</h3> <p>Classes are defined in the same way as structs. They are added to be purely dynamic types.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">class</span> <span class="n">Foo</span> <span class="p">{</span> <span class="n">int</span> <span class="n">a</span><span class="p">;</span> <span class="n">int</span> <span class="n">DoSomething</span><span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="n">a</span><span class="o">++</span><span class="p">;</span> <span class="p">}</span> <span class="p">}</span> </pre></div> </div><p>The differences between classes and structs are</p> <ul><li>The this keyword can not be used in struct methods (but can be used in constructors). </li><li>It is not possible to make a non pointer variable of a class. </li><li>There are some extra work that needs to be done for structs when calling a method on a pointer type (var-&gt;method()). For class types, the pointer is simply sent to the method. See the generated code. In short, if you only use your type in a dynamic context, use classes instead of structs. </li></ul> <h3 id="w-generics">Generics</h3> <p>You can make generic structs or classes.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">struct</span> <span class="n">Pair</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="n">G</span><span class="o">&gt;</span> <span class="p">{</span> <span class="n">T</span> <span class="n">p1</span><span class="p">;</span> <span class="n">G</span> <span class="n">p2</span><span class="p">;</span> <span class="p">}</span> <span class="n">Pair</span><span class="o">&lt;</span><span class="n">int</span><span class="p">,</span> <span class="n">bool</span><span class="o">&gt;</span> <span class="n">field</span><span class="p">;</span> </pre></div> </div><p>In the example above, a copy of Str is made, where all T in the struct are replaced with integer types, and all G are replaced with boolean types.<br> It's possible to nest the types, but be aware that if you type &gt;&gt; it will be taken as the bit shift operator.</p> <div class="code-wrapper" data-lexer="matlab"><div class="markup-code"><pre><span class="n">Pair</span><span class="o">&lt;</span><span class="n">unit</span><span class="p">,</span> <span class="n">Pair</span><span class="o">&lt;</span><span class="n">int</span><span class="p">,</span> <span class="n">fixed</span><span class="o">&gt;&gt;</span> <span class="n">field</span><span class="p">;</span><span class="o">//</span><span class="n">This</span> <span class="n">won</span><span class="o">'</span><span class="n">t</span> <span class="n">parse</span> <span class="n">Pair</span><span class="o">&lt;</span><span class="n">unit</span><span class="p">,</span> <span class="n">Pair</span><span class="o">&lt;</span><span class="n">int</span><span class="p">,</span> <span class="n">fixed</span><span class="o">&gt;</span> <span class="o">&gt;</span> <span class="n">field</span><span class="p">;</span><span class="o">//</span><span class="n">This</span> <span class="n">will</span> </pre></div> </div><p>The transformation are done before everything is type checked. As a result, you can do stuff like this</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">struct</span> <span class="n">Str</span> <span class="p">{</span> <span class="n">void</span> <span class="n">foo</span><span class="p">()</span> <span class="p">{</span> <span class="p">}</span> <span class="p">}</span> <span class="n">struct</span> <span class="n">Gen</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span> <span class="p">{</span> <span class="n">void</span> <span class="n">bar</span><span class="p">(</span><span class="n">T</span> <span class="n">item</span><span class="p">)</span> <span class="p">{</span> <span class="o">//</span><span class="n">This</span> <span class="n">looks</span> <span class="n">fishy</span> <span class="o">-</span> <span class="n">no</span> <span class="n">garuantee</span> <span class="n">that</span> <span class="n">T</span> <span class="n">has</span> <span class="n">a</span> <span class="n">foo</span> <span class="n">method</span><span class="p">.</span> <span class="n">item</span><span class="p">.</span><span class="n">foo</span><span class="p">();</span> <span class="p">}</span> <span class="p">}</span> <span class="n">Gen</span><span class="o">&lt;</span><span class="n">Str</span><span class="o">&gt;</span> <span class="n">field1</span><span class="p">;</span><span class="o">//</span><span class="n">Will</span> <span class="n">be</span> <span class="n">okay</span> <span class="n">Gen</span><span class="o">&lt;</span><span class="n">int</span><span class="o">&gt;</span> <span class="n">field2</span><span class="p">;</span><span class="o">//</span><span class="n">Will</span> <span class="n">cause</span> <span class="n">a</span> <span class="nb">type</span> <span class="n">checking</span> <span class="nb">error</span> </pre></div> </div><h3 id="w-enums">Enums</h3> <p>You can create an enum with the following syntax</p> <div class="code-wrapper" data-lexer="matlab"><div class="markup-code"><pre><span class="n">enum</span> <span class="n">Days</span> <span class="p">{</span> <span class="n">Monday</span> <span class="p">=</span> 1<span class="p">,</span> <span class="n">Tuesday</span><span class="p">,</span> <span class="n">Wednesday</span><span class="p">,</span> <span class="n">Thursday</span><span class="p">,</span> <span class="n">Friday</span><span class="p">,</span> <span class="n">Saturday</span><span class="p">,</span> <span class="n">Sunday</span> <span class="p">}</span> </pre></div> </div><p>You can define an integer literal value for each of the elements. If you don't, they automatically get an integer value one higher than the previous element. If the first element hasn't been given a value, it will recieve the value 0. Two elements may not have the same value.</p> <p>You can cast enums to/from int and byte, as well as to string.</p> <div class="code-wrapper" data-lexer="matlab"><div class="markup-code"><pre><span class="n">Days</span> <span class="n">myDay</span> <span class="p">=</span> <span class="n">Days</span><span class="p">.</span><span class="n">Thursday</span><span class="p">;</span> <span class="n">int</span> <span class="n">dayNr</span> <span class="p">=</span> <span class="p">(</span><span class="n">int</span><span class="p">)</span><span class="n">myDay</span><span class="p">;</span><span class="o">//</span><span class="n">Will</span> <span class="n">get</span> <span class="n">the</span> <span class="n">value</span> 4 <span class="n">dayNr</span><span class="o">++</span><span class="p">;</span> <span class="n">myDay</span> <span class="p">=</span> <span class="p">(</span><span class="n">Days</span><span class="p">)</span><span class="n">dayNr</span><span class="p">;</span><span class="o">//</span><span class="n">Will</span> <span class="n">get</span> <span class="n">the</span> <span class="n">element</span> <span class="n">Friday</span> <span class="n">string</span> <span class="n">dayName</span> <span class="p">=</span> <span class="p">(</span><span class="n">string</span><span class="p">)</span><span class="n">myDay</span><span class="p">;</span><span class="o">//</span><span class="n">Will</span> <span class="n">get</span> <span class="n">the</span> <span class="n">string</span> "<span class="n">Friday</span>" </pre></div> </div><h3 id="w-enrichments">Enrichments</h3> <p>Enrichments is a way to add properties and methods to non struct/class type variables. You can also use it to make a non struct type pointer be handeled in an array. See Array based pointers.<br></p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">enrich</span> <span class="n">unit</span> <span class="p">{</span> <span class="n">fixed</span> <span class="n">HP</span> <span class="p">{</span> <span class="n">get</span> <span class="p">{</span> <span class="k">return</span> <span class="n">UnitGetPropertyFixed</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">c_unitPropLife</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span> <span class="p">}</span> <span class="n">set</span> <span class="p">{</span> <span class="n">UnitSetPropertyFixed</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">c_unitPropLife</span><span class="p">,</span> <span class="n">value</span><span class="p">);</span> <span class="p">}</span> <span class="p">}</span> <span class="n">inline</span> <span class="n">void</span> <span class="n">Select</span><span class="p">(</span><span class="n">int</span> <span class="n">player</span><span class="p">)</span> <span class="p">{</span> <span class="n">UnitClearSelection</span><span class="p">(</span><span class="n">player</span><span class="p">);</span> <span class="n">UnitSelect</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span> <span class="p">}</span> <span class="p">}</span> <span class="n">void</span> <span class="n">foo</span><span class="p">(</span><span class="n">unit</span> <span class="n">u</span><span class="p">)</span> <span class="p">{</span> <span class="n">u</span><span class="p">.</span><span class="n">Select</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span> <span class="n">u</span><span class="p">.</span><span class="n">HP</span><span class="o">++</span><span class="p">;</span> <span class="p">}</span> </pre></div> </div><p>You can enrich any type except structs or classes. So also pointers and arrays.</p> <h3 id="w-constructors">Constructors</h3> <p>It is now possible to define constructors in structs and classes.<br> They are defined like methods, except they have no return type, and they must have the same name as the enclosing struct/class.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">class</span> <span class="n">Foo</span> <span class="p">{</span> <span class="n">int</span> <span class="n">A</span><span class="p">;</span> <span class="n">Foo</span><span class="p">(</span><span class="n">int</span> <span class="n">a</span><span class="p">)</span> <span class="p">{</span> <span class="n">A</span> <span class="o">=</span> <span class="n">a</span><span class="p">;</span> <span class="p">}</span> <span class="p">}</span> <span class="n">void</span> <span class="n">method</span><span class="p">()</span> <span class="p">{</span> <span class="n">Foo</span><span class="o">*</span> <span class="n">foo</span> <span class="o">=</span> <span class="n">new</span> <span class="n">Foo</span><span class="p">(</span><span class="mi">2</span><span class="p">);</span> <span class="o">...</span> <span class="p">}</span> </pre></div> </div><h3 id="w-deconstructors">Deconstructors</h3> <p>In addition to constructors, you can also define deconstructors. Theese will be called just before an object is deleted with the delete statement.<br> You can define them in both enrichments, structs and classes. In structs and classes, they must have the same name as the enclosing struct or class. In enrichments, they can have any name.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">class</span> <span class="n">Foo</span> <span class="p">{</span> <span class="n">private</span> <span class="n">Bar</span><span class="o">*</span> <span class="n">b</span><span class="p">;</span> <span class="o">//</span><span class="n">This</span> <span class="n">is</span> <span class="n">a</span> <span class="n">deconstructor</span> <span class="k">for</span> <span class="n">Foo</span> <span class="err">~</span><span class="n">Foo</span><span class="p">()</span> <span class="p">{</span> <span class="o">//</span><span class="n">In</span> <span class="n">this</span> <span class="n">case</span><span class="p">,</span> <span class="n">when</span> <span class="n">foo</span> <span class="n">is</span> <span class="n">deleted</span><span class="p">,</span> <span class="n">so</span> <span class="n">is</span> <span class="n">the</span> <span class="n">variable</span> <span class="n">b</span> <span class="n">delete</span> <span class="n">b</span><span class="p">;</span> <span class="p">}</span> <span class="p">}</span> </pre></div> </div><p>You can also mark them as public/private/protected.</p> <h3 id="w-array-based-pointers">Array based pointers</h3> <p>With version 2.2.0, I added struct based pointers. Previously, all pointers was based on the data table, which means that all the values was entries in the data table. Now you can specify that you want the struct/class pointers to be in a global array instead.<br> The advantage of having array based pointers is that they are faster than the data table.<br> On the downside however, you must specify an upper bound on the ammount of pointers you will have allocated at one time. This number will be the dimensions of a global array. That means that the memory required by the entire array will be reserved all the time. That is a problem, because a map can't use more than 2mb of memory for the script.<br> So, keep this number as low as you can, while you are sure that you won't ever need more pointers than that.<br> You can define the bound with the following code.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">struct</span><span class="p">[</span><span class="mi">42</span><span class="p">]</span> <span class="n">Str</span> <span class="p">{</span> <span class="n">int</span> <span class="n">i</span><span class="p">;</span> <span class="n">bool</span> <span class="n">b</span><span class="p">;</span> <span class="p">}</span> </pre></div> </div><p>It works the same way for classes and enrichments.</p> <h3 id="w-enheritance">Enheritance</h3> <p>Structs and classes can enherit all fields properties and methods of another struct or class with the following syntax.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">struct</span> <span class="n">Super</span> <span class="p">{</span> <span class="n">int</span> <span class="n">i</span><span class="p">;</span> <span class="n">Super</span><span class="p">(</span><span class="n">int</span> <span class="n">a</span><span class="p">)</span> <span class="p">{</span> <span class="n">this</span><span class="o">-&gt;</span><span class="n">i</span> <span class="o">=</span> <span class="n">a</span><span class="p">;</span> <span class="p">}</span> <span class="n">void</span> <span class="n">foo</span><span class="p">(</span><span class="n">int</span> <span class="n">a</span><span class="p">)</span> <span class="p">{</span> <span class="n">i</span> <span class="o">=</span> <span class="n">a</span><span class="p">;</span> <span class="p">}</span> <span class="p">}</span> <span class="n">struct</span> <span class="n">Sub</span> <span class="p">:</span> <span class="n">Super</span> <span class="p">{</span> <span class="n">int</span> <span class="n">j</span><span class="p">;</span> <span class="n">Sub</span><span class="p">(</span><span class="n">int</span> <span class="n">a</span><span class="p">,</span> <span class="n">int</span> <span class="n">b</span><span class="p">)</span> <span class="p">:</span> <span class="n">base</span><span class="p">(</span><span class="n">a</span><span class="p">)</span><span class="o">//</span><span class="n">Call</span> <span class="n">to</span> <span class="n">the</span> <span class="n">constructor</span> <span class="k">in</span> <span class="n">Super</span> <span class="p">{</span> <span class="n">this</span><span class="o">-&gt;</span><span class="n">j</span> <span class="o">=</span> <span class="n">b</span><span class="p">;</span> <span class="p">}</span> <span class="n">void</span> <span class="n">bar</span><span class="p">(</span><span class="n">int</span> <span class="n">a</span><span class="p">)</span> <span class="p">{</span> <span class="n">foo</span><span class="p">(</span><span class="n">a</span><span class="p">);</span> <span class="n">j</span> <span class="o">=</span> <span class="n">i</span><span class="p">;</span> <span class="p">}</span> <span class="p">}</span> </pre></div> </div><p>You can refference all fields, methods and properties from a supertype in a struct.<br> It is not possible to cast a type to a type that enherits it, however you can assign a struct type to a variable of a supertype.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">void</span> <span class="n">foo</span><span class="p">()</span> <span class="p">{</span> <span class="n">Sub</span> <span class="n">sub</span><span class="p">;</span> <span class="n">Super</span> <span class="n">super</span><span class="p">;</span> <span class="n">super</span> <span class="o">=</span> <span class="n">sub</span><span class="p">;</span><span class="o">//</span><span class="n">Allowed</span> <span class="n">sub</span> <span class="o">=</span> <span class="p">(</span><span class="n">Sub</span><span class="p">)</span> <span class="n">super</span><span class="p">;</span><span class="o">//</span><span class="n">Not</span> <span class="n">allowed</span> <span class="p">}</span> </pre></div> </div><p>It is also not possible to override anything in the subtype.</p> <h3 id="w-properties">Properties</h3> <p>Properties are basically a convinient way of making a getter and setter method, but use them as a single variable.<br> Like fields, properties can be defined either globally, or as a memeber of a struct/class.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">fixed</span> <span class="n">radians</span><span class="p">;</span> <span class="n">fixed</span> <span class="n">Degrees</span> <span class="p">{</span> <span class="n">get</span> <span class="p">{</span> <span class="k">return</span> <span class="n">radians</span><span class="o">*</span><span class="mi">180</span><span class="o">/</span><span class="mf">3.14159</span><span class="p">;</span> <span class="p">}</span> <span class="n">set</span> <span class="p">{</span> <span class="n">radians</span> <span class="o">=</span> <span class="n">value</span><span class="o">/</span><span class="p">(</span><span class="mi">180</span><span class="o">/</span><span class="mf">3.14159</span><span class="p">);</span> <span class="p">}</span> <span class="p">}</span> </pre></div> </div><p>Both the get block or the set block are optional, and the order in which they apear makes no diffrence.<br> Note that in the setter, the keyword value is used to refere to the value that is being assigned to the property.<br> You use the property just as you would use a field.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">void</span> <span class="n">m</span><span class="p">()</span> <span class="p">{</span> <span class="k">for</span><span class="p">(</span><span class="n">Degrees</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">Degrees</span> <span class="o">&lt;</span> <span class="mi">360</span><span class="p">;</span> <span class="n">Degrees</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span> <span class="n">FireProjectileOfDeath</span><span class="p">(</span><span class="n">radians</span><span class="p">);</span> <span class="p">}</span> <span class="p">}</span> </pre></div> </div><p>You can also create array properties, which means you can do stuff like this.</p> <div class="code-wrapper" data-lexer="matlab"><div class="markup-code"><pre><span class="n">enrich</span> <span class="n">unitgroup</span> <span class="p">{</span> <span class="n">unit</span> <span class="n">this</span><span class="p">[</span><span class="n">int</span> <span class="n">index</span><span class="p">]</span> <span class="p">{</span> <span class="n">get</span> <span class="p">{</span> <span class="k">return</span> <span class="n">UnitGroupUnit</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">index</span> <span class="o">+</span> 1<span class="p">);</span> <span class="p">}</span> <span class="p">}</span> <span class="n">int</span> <span class="n">Count</span> <span class="p">{</span> <span class="n">get</span> <span class="p">{</span> <span class="k">return</span> <span class="n">UnitGroupCount</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">c_unitCountAll</span><span class="p">);</span> <span class="p">}</span> <span class="p">}</span> <span class="p">}</span> <span class="n">Initializer</span> <span class="p">{</span> <span class="n">unitgroup</span> <span class="n">group</span> <span class="p">=</span> <span class="n">UnitGroup</span><span class="p">(</span><span class="n">null</span><span class="p">,</span> <span class="n">c_playerAny</span><span class="p">,</span> <span class="n">RegionEntireMap</span><span class="p">(),</span> <span class="n">null</span><span class="p">,</span> 0<span class="p">);</span> <span class="k">for</span> <span class="p">(</span><span class="n">int</span> <span class="nb">i</span> <span class="p">=</span> 0<span class="p">;</span> <span class="nb">i</span> <span class="o">&lt;</span> <span class="n">group</span><span class="p">.</span><span class="n">Count</span><span class="p">;</span> <span class="nb">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span> <span class="n">unit</span> <span class="n">u</span> <span class="p">=</span> <span class="n">group</span><span class="p">[</span><span class="nb">i</span><span class="p">];</span> <span class="p">...</span> <span class="p">}</span> <span class="p">}</span> </pre></div> </div><p>This type of property can only be placed inside structs and enrichments. The type of the index variable can be any type, as long as it doesn't result in a conflict with a normal array index. The property has to have the name this, but the index variable can have any name.</p> <h3 id="w-bank-preload-statement">Bank preload statement</h3> <p>The preload bank statement from GUI triggers is not an actual method call in code, so I added extra functionality to call this.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">PreloadBank</span><span class="p">(</span><span class="s2">"</span><span class="s">BankName"</span><span class="p">,</span> <span class="mi">2</span><span class="p">);</span> </pre></div> </div><p>I felt that it would be misleading to place it inside functions, since it is not a statement which is executed there, but rather just a message to Starcraft II to load the bank when loading the map. Therefore it is placed out next to methods and fields. Note that the name and playerNr must be literals. I.e. you can not use any kind of variables or expressions other than what you see above.</p> <h3 id="w-trigger-declaration">Trigger declaration</h3> <p>There is a short way you can choose to specify triggers. Use the following notation</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">Trigger</span> <span class="n">TriggerName</span> <span class="p">{</span> <span class="n">events</span> <span class="p">{</span> <span class="o">//</span><span class="n">Add</span> <span class="n">the</span> <span class="n">events</span> <span class="n">the</span> <span class="n">usual</span> <span class="n">way</span> <span class="n">TriggerAddEventMapInit</span><span class="p">(</span><span class="n">TriggerName</span><span class="p">);</span> <span class="p">}</span> <span class="n">conditions</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="o">...</span><span class="p">)</span> <span class="k">return</span> <span class="kc">false</span><span class="p">;</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="o">...</span><span class="p">)</span> <span class="k">return</span> <span class="kc">true</span><span class="p">;</span> <span class="o">//</span><span class="n">Here</span><span class="p">,</span> <span class="kc">true</span> <span class="n">is</span> <span class="n">automatically</span> <span class="n">returned</span> <span class="p">}</span> <span class="n">actions</span> <span class="p">{</span> <span class="o">//</span><span class="n">Add</span> <span class="n">the</span> <span class="n">actions</span> <span class="n">of</span> <span class="n">the</span> <span class="n">trigger</span> <span class="n">the</span> <span class="n">usual</span> <span class="n">way</span><span class="p">.</span> <span class="p">}</span> <span class="p">}</span> </pre></div> </div><p>The events, conditions and actions sections are all optional. The conditions are only tested if testConds are true. The actions are only run if runActions are true, and testConds are false or the conditions return true.<br> If nothing is return from the conditions, true is assumed.<br> You can reference testConds and runActions from within the conditions and actions sections.<br> You can reference the trigger variable with the name of the trigger as done in the above example in events. You can also call the trigger function as you would normally be able to by typing TriggerName(&lt;testConds&gt;, &lt;runActions&gt;);<br> The return type in the actions section is void.</p> <h3 id="w-operator-overloading">Operator overloading</h3> <p>You can define your own binary operators.</p> <div class="code-wrapper" data-lexer="matlab"><div class="markup-code"><pre><span class="n">Initializer</span> <span class="p">{</span> <span class="n">point</span> <span class="n">p1</span> <span class="p">=</span> <span class="n">Point</span><span class="p">(</span>1<span class="p">,</span> 2<span class="p">);</span> <span class="n">point</span> <span class="n">p2</span> <span class="p">=</span> <span class="n">p1</span> <span class="o">+</span> 2<span class="p">.</span>2<span class="p">;</span><span class="o">//</span><span class="n">p2</span> <span class="n">will</span> <span class="n">then</span> <span class="n">have</span> <span class="n">the</span> <span class="n">value</span> <span class="p">(</span>3<span class="p">.</span>2<span class="p">,</span> 4<span class="p">.</span>2<span class="p">)</span> <span class="p">}</span> <span class="n">point</span> <span class="n">operator</span> <span class="o">+</span><span class="p">(</span><span class="n">point</span> <span class="n">p</span><span class="p">,</span> <span class="n">fixed</span> <span class="n">f</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="n">Point</span><span class="p">(</span><span class="n">PointGetX</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> <span class="o">+</span> <span class="n">f</span><span class="p">,</span> <span class="n">PointGetY</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> <span class="o">+</span> <span class="n">f</span><span class="p">);</span> <span class="p">}</span> </pre></div> </div><p>You can overload the following binary operators:<br> +, -, *, /, %, ==, !=, &lt;, &lt;=, &gt;, &gt;=, &amp;, |, ^, &lt;&lt;, &gt;&gt;<br> Like methods, you can mark operators as public/private, as well as static.</p> <h2 id="w-statements">Statements</h2> <p>A statement is basically the members of functions where it doesn't make sense to talk about it having a type. Examples of statements in galaxy are while statements, if statements and expression statements. In this documentation I will only cover statements that are new or have added functionality in galaxy<code>++</code>.</p> <h3 id="w-if-statements">If statements</h3> <p>In galaxy you were forced to place a block inside if statements, now you can also place a single statement without the block.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="k">if</span> <span class="p">(</span><span class="n">i</span> <span class="o">&lt;</span> <span class="n">ar</span><span class="p">.</span><span class="n">length</span><span class="p">)</span> <span class="n">i</span><span class="o">++</span><span class="p">;</span> </pre></div> </div><h3 id="w-for-statements">For statements</h3> <p>I added for statements in galaxy<code>++</code>.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="k">for</span> <span class="p">([</span><span class="n">init</span><span class="p">];</span> <span class="p">[</span><span class="n">test</span><span class="p">];</span> <span class="p">[</span><span class="n">update</span><span class="p">])</span> <span class="p">[</span><span class="n">body</span><span class="p">]</span> </pre></div> </div><p>Basically, what it will do is first execute the init, then for as long as the test evaluates to true, the body and then the update is executed. Like GUI for sentences.</p> <h3 id="w-switch-statements">Switch statements</h3> <p>I also added switch statements.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">int</span> <span class="n">ammount</span><span class="p">;</span> <span class="n">bool</span> <span class="n">isRanged</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span> <span class="n">switch</span> <span class="p">(</span><span class="n">GetUnitTypeString</span><span class="p">())</span> <span class="p">{</span> <span class="n">case</span> <span class="s2">"</span><span class="s">Zergling"</span><span class="p">:</span> <span class="n">ammount</span> <span class="o">=</span> <span class="mi">100</span><span class="p">;</span> <span class="k">break</span><span class="p">;</span> <span class="n">case</span> <span class="s2">"</span><span class="s">Marine"</span><span class="p">:</span> <span class="n">isRanged</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span> <span class="n">case</span> <span class="s2">"</span><span class="s">Zealot"</span><span class="p">:</span> <span class="n">ammount</span> <span class="o">=</span> <span class="mi">50</span><span class="p">;</span> <span class="k">break</span><span class="p">;</span> <span class="n">case</span> <span class="n">GetSuperUnitName</span><span class="p">():</span> <span class="n">ammount</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="k">break</span><span class="p">;</span> <span class="n">default</span><span class="p">:</span> <span class="n">ammount</span> <span class="o">=</span> <span class="mi">10</span><span class="p">;</span> <span class="k">break</span><span class="p">;</span> <span class="p">}</span> </pre></div> </div><p>It will test the expression it gets in the first parenthesis against every case in the order they are listed. When one of them equals, it will execute the contents of the case. If no cases were equal to the expression, the contents of default will be executed. Note that it is possible to fall through to the next case if one doesn't write break, like it is done from marine to zealot. Another thing to mention is that the method GetUnitTypeString() will only be called once, no matter how many cases there are. Also, GetSuperUnitName() is only called if none of the above cases matched.</p> <h3 id="w-async-invoke-statement">AsyncInvoke statement</h3> <p>The AsyncInvoke statement will call a method in a new thread, and continue its own thread. This is done by running a new trigger, so the operator stack is also reset in the process (in case you are wondering, this is a good thing :)). If you wanted to call a method like</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">int</span> <span class="n">CallMe</span><span class="p">(</span><span class="n">int</span> <span class="n">a</span><span class="p">,</span> <span class="n">bool</span> <span class="n">b</span><span class="p">){</span><span class="o">...</span><span class="p">}</span> </pre></div> </div><p>you could write</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">InvokeAsync</span><span class="o">&lt;</span><span class="n">CallMe</span><span class="o">&gt;</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="kc">false</span><span class="p">);</span> </pre></div> </div><p>In case CallMe is in another namespace called OtherNS, you can write </p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">InvokeAsync</span><span class="o">&lt;</span><span class="n">OtherNS</span><span class="p">.</span><span class="n">CallMe</span><span class="o">&gt;</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="kc">false</span><span class="p">);</span> </pre></div> </div><p>Since the target function is called in a new thread, it is not possible to return a value from it, so any return values are ignored.</p> <h3 id="w-local-declarations">Local declarations</h3> <p>I made it possible to make multiple local declarations in one statement as long as they are of the same type.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">int</span> <span class="n">a</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span> <span class="o">=</span> <span class="n">a</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span> </pre></div> </div><h3 id="w-array-resize-statement">Array Resize statement</h3> <p>Dynamic arrays can be resized more quickly than deleting them and recreating them.</p> <div class="code-wrapper" data-lexer="matlab"><div class="markup-code"><pre><span class="n">int</span><span class="p">[]</span> <span class="n">array</span> <span class="p">=</span> <span class="n">new</span> <span class="n">int</span><span class="p">[</span>42<span class="p">]();</span> <span class="n">array</span><span class="o">-&gt;</span><span class="n">Resize</span><span class="p">(</span>20<span class="p">);</span><span class="o">//</span><span class="n">Will</span> <span class="n">run</span> <span class="n">through</span> <span class="n">and</span> <span class="n">delete</span> <span class="n">the</span> 22 <span class="n">last</span> <span class="n">elements</span> <span class="n">array</span><span class="o">-&gt;</span><span class="n">Resize</span><span class="p">(</span>5912730<span class="p">);</span><span class="o">//</span><span class="n">Will</span> <span class="n">take</span> <span class="n">constant</span> <span class="n">time</span> </pre></div> </div><p>As can be seen from the comments, shrinking takes linear time in the number of elements removed, and extending takes constant time regardless of the new size.</p> <h2 id="w-expressions">Expressions</h2> <p>Expressions are everything that can have a type. Examples of this is method calls, references to local, global or struct variables, binary operations (+, -, *, /, %), etc. Like with statements, I won't cover the expressions that are the same in galaxy as in galaxy<code>++</code>.</p> <h3 id="w-the-and-expressions">The <code>++</code> and <code>--</code> expressions</h3> <p>I added support for the <code>++</code> and <code>--</code> expressions. They can be placed before and after a variable, and will increment or decrement the variable. When placed after the variable, the current value of the variable is placed where the expression is, and then the variable is updated. For instance, if you write</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">ar</span><span class="p">[</span><span class="n">i</span><span class="o">++</span><span class="p">]</span> <span class="o">=</span> <span class="n">i</span><span class="p">;</span> </pre></div> </div><p>then then you will have set the 0th index of ar to 1. Placing it before the variable will update the variable, and then the updated value is placed where the expression is. E.g.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">ar</span><span class="p">[</span><span class="o">++</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">i</span><span class="p">;</span> </pre></div> </div><p>will set the 1st index of ar to 1. This is most commonly used as a quick way of writing i = i + 1;</p> <h3 id="w-invoke">Invoke</h3> <p>Similar to the AsyncInvoke statement, this expression will call the target method via a trigger in order to reset the operator stack. Unlike AsyncInvoke however, this is not done in a separate thread. This means that all return values can still be fetched.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">InvokeSync</span><span class="o">&lt;</span><span class="n">namespace</span><span class="p">.</span><span class="n">methodName</span><span class="o">&gt;</span><span class="p">(</span><span class="n">args</span><span class="p">);</span> </pre></div> </div><h3 id="w-assignments">Assignments</h3> <p>With galaxy<code>++</code> you can now place assignments inside expressions rather than just in statements. For instance you can write</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">a</span> <span class="o">=</span> <span class="n">b</span> <span class="o">=</span> <span class="n">c</span> <span class="o">=</span> <span class="n">d</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> </pre></div> </div><p>and all of them will have the value 2. Note that the type of the assignments are the type of the left side. What this means is that for instance if c is of type fixed, and b is an integer, you will get an error since fixed is not assignable to int.</p> <h3 id="w-array-length">Array length</h3> <p>You can get the length of an array by calling .length on it.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">String</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="n">ar</span><span class="p">;</span> <span class="k">return</span> <span class="n">ar</span><span class="p">.</span><span class="n">length</span><span class="p">;</span> <span class="o">//</span><span class="n">returns</span> <span class="mi">2</span> </pre></div> </div><h3 id="w-casts-and-implicit-casts">Casts and implicit casts</h3> <p>I added cast expressions. They are a quick way of converting between types that can be converted between.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">fixed</span> <span class="n">f</span> <span class="o">=</span> <span class="mf">2.2</span><span class="p">;</span> <span class="n">int</span> <span class="n">i</span> <span class="o">=</span> <span class="p">(</span><span class="n">int</span><span class="p">)</span> <span class="n">f</span><span class="p">;</span> </pre></div> </div><p>I also made some implicit casts, which means that between some types the cast occurs automatically.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="n">UIDisplayMessage</span><span class="p">(</span><span class="n">playergroupAll</span><span class="p">(),</span> <span class="n">c_messageAreaSubtitle</span><span class="p">,</span> <span class="s2">"</span><span class="s">i = "</span> <span class="o">+</span> <span class="n">i</span><span class="p">);</span> </pre></div> </div><p>In this example, the i is cast to a string, then the two strings are concatenated, and the whole string is cast to a text.</p> <h3 id="w-the-this-expression">The this expression</h3> <p>You can use the this expression inside constructors and class methods. It is a pointer to the current class/struct.</p> <div class="code-wrapper" data-lexer="matlab"><div class="markup-code"><pre><span class="n">class</span> <span class="n">Foo</span> <span class="p">{</span> <span class="n">int</span><span class="o">*</span> <span class="n">a</span><span class="p">;</span> <span class="p">...</span> <span class="n">void</span> <span class="n">Dispose</span><span class="p">()</span> <span class="p">{</span> <span class="n">delete</span> <span class="n">a</span><span class="p">;</span> <span class="n">delete</span> <span class="n">this</span><span class="p">;</span> <span class="p">}</span> <span class="p">}</span> </pre></div> </div><h3 id="w-expression-ifs">Expression if's</h3> <p>The syntax for creating an expression if is</p> <div class="code-wrapper" data-lexer="cpp"><div class="markup-code"><pre><span class="o">&lt;</span><span class="n">condition</span><span class="o">&gt;</span> <span class="o">?</span> <span class="o">&lt;</span><span class="n">then</span> <span class="n">branch</span><span class="o">&gt;</span> <span class="o">:</span> <span class="o">&lt;</span><span class="k">else</span> <span class="n">branch</span><span class="o">&gt;</span> </pre></div> </div><p>If the condition is true, the expression will return the then branch, and otherwise the else branch.<br> Note that the types of the then and else branches must in some way be assignable to eachother. In other words, either the type of the then branch must be assignable to the type of the else branch, or the type of the else branch must be assignable to the type of the then branch.</p> <div class="code-wrapper" data-lexer="cpp"><div class="markup-code"><pre><span class="kt">int</span> <span class="n">Tester</span><span class="p">(</span><span class="kt">bool</span> <span class="n">b</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="n">b</span> <span class="o">?</span> <span class="mi">1</span> <span class="o">:</span> <span class="mi">2</span><span class="p">;</span> <span class="p">}</span> </pre></div> </div><h2 id="w-pointers">Pointers</h2> <p>This is placed a little out of place compared to the structure of the rest of the documentation, but I thought I would keep everything regarding pointers together.</p> <h3 id="w-pointer-types">Pointer types</h3> <p>You can define a type as a pointer by appending *. For instance</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">int</span><span class="o">*</span> <span class="n">i</span><span class="p">;</span> <span class="n">string</span><span class="o">**</span> <span class="n">s</span><span class="p">;</span> </pre></div> </div><p>Here i will be a pointer to an int, and s will be a pointer to a pointer to a string.</p> <h3 id="w-dynamic-array-types">Dynamic array types</h3> <p>You can define a dynamic array type by not specifying array bounds. For instance</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">int</span><span class="p">[]</span> <span class="n">ar1</span><span class="p">;</span> <span class="n">int</span><span class="o">*</span><span class="p">[]</span> <span class="n">ar2</span><span class="p">;</span> </pre></div> </div><p>Here, ar1 is a dynamic array of type int, and ar2 is a dynamic array of pointers to int's.</p> <h3 id="w-the-expression">The * expression</h3> <p>If you have an expression of pointer type, and you would like to get the value of that expression, you prefix it with *. For instance</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">void</span> <span class="n">foo</span><span class="p">(</span><span class="n">string</span><span class="o">*</span> <span class="n">s</span><span class="p">)</span> <span class="p">{</span> <span class="n">UIDisplayMessage</span><span class="p">(</span><span class="n">PlayerGroupAll</span><span class="p">(),</span> <span class="n">c_messageAreaSubtitle</span><span class="p">,</span> <span class="p">(</span><span class="n">text</span><span class="p">)(</span><span class="o">*</span><span class="n">s</span><span class="p">));</span> <span class="p">}</span> </pre></div> </div><p>Here, the *is needed to get the actual contents of s. Also note that *s is in a parenthesis. If this was not the case the compiler would have tried to multiply a variable called text with the variable s.</p> <h3 id="w-the-expression-2">The -&gt; expression</h3> <p>The -&gt; expression is really just a quick way of writing (*foo).bar.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">struct</span> <span class="n">Foo</span> <span class="p">{</span> <span class="n">int</span> <span class="n">bar</span><span class="p">;</span> <span class="p">}</span> <span class="n">void</span> <span class="n">method</span><span class="p">(</span><span class="n">Foo</span><span class="o">*</span> <span class="n">foo</span><span class="p">)</span> <span class="p">{</span> <span class="n">foo</span><span class="o">-&gt;</span><span class="n">bar</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="p">(</span><span class="o">*</span><span class="n">foo</span><span class="p">).</span><span class="n">bar</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="p">}</span> </pre></div> </div><p>Here, the two statements are equivalent. In both cases, bar will be set to 2.</p> <h3 id="w-the-new-expression">The new expression</h3> <p>To create new pointers or dynamic arrays, use the new expression. For instance</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">int</span><span class="o">*</span> <span class="n">i</span> <span class="o">=</span> <span class="n">new</span> <span class="n">int</span><span class="p">();</span> <span class="n">int</span><span class="p">[]</span> <span class="n">ar1</span> <span class="o">=</span> <span class="n">new</span> <span class="n">int</span><span class="p">[</span><span class="o">*</span><span class="n">i</span><span class="p">]();</span> </pre></div> </div><p>Here, i is initialized to a new integer, and ar1 is initialized to a dynamic array of size *i (which will be 0 in this case).<br> Note that the new expression allocates a new instance in the data table. To avoid memory leaks, remember to call delete after you are done with the instance.</p> <h3 id="w-the-delete-statement">The delete statement</h3> <p>The delete expression will remove the supplied pointer or dynamic array from the data table. You should make sure that you call delete if you are done with your pointer or dynamic array. Note that the delete statement will only remove the actual pointer you supply to it. So writing</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">void</span> <span class="n">foo</span><span class="p">(</span><span class="n">int</span><span class="o">*</span><span class="p">[]</span> <span class="n">intAr</span><span class="p">)</span> <span class="p">{</span> <span class="n">delete</span> <span class="n">intAr</span><span class="p">;</span> <span class="p">}</span> </pre></div> </div><p>Will remove the array, but will not remove any of the child pointers. If you wish to purge all allocated instances, you can clear the global data table with the method.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">DataTableClear</span><span class="p">(</span><span class="kc">true</span><span class="p">);</span> </pre></div> </div><p>So, note that you shouldn't call this unless you wish to lose all pointers and dynamic arrays.</p> <h3 id="w-null-checks">Null checks</h3> <p>As of 3.0.0, null checks are now reliable. What this means that if a pointer is uninitialized, pointing to a deleted object, or has been assigned null, writing (p == null) will return true.</p> <div class="code-wrapper" data-lexer="matlab"><div class="markup-code"><pre><span class="n">int</span><span class="o">*</span> <span class="n">p</span><span class="p">;</span> <span class="n">Initializer</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="n">p</span> <span class="o">==</span> <span class="n">null</span><span class="p">)</span> <span class="p">{</span><span class="o">//</span><span class="n">This</span> <span class="n">will</span> <span class="n">be</span> <span class="n">true</span><span class="p">,</span> <span class="n">since</span> <span class="n">p</span> <span class="n">has</span> <span class="n">not</span> <span class="n">been</span> <span class="n">allocated</span> <span class="n">yet</span> <span class="n">p</span> <span class="p">=</span> <span class="n">new</span> <span class="n">int</span><span class="p">();</span> <span class="p">}</span> <span class="k">if</span> <span class="p">(</span><span class="n">p</span> <span class="o">==</span> <span class="n">null</span><span class="p">)</span> <span class="p">{</span><span class="o">//</span><span class="n">This</span> <span class="n">will</span> <span class="n">be</span> <span class="n">false</span><span class="p">.</span> <span class="p">...</span> <span class="p">}</span> <span class="n">Wait</span><span class="p">(</span>1<span class="p">,</span> 0<span class="p">);</span> <span class="k">if</span> <span class="p">(</span><span class="n">p</span> <span class="o">==</span> <span class="n">null</span><span class="p">)</span> <span class="p">{</span><span class="o">//</span><span class="n">This</span> <span class="n">will</span> <span class="n">be</span> <span class="n">true</span> <span class="k">if</span> <span class="n">p</span> <span class="n">was</span> <span class="n">deleted</span> <span class="n">during</span> <span class="n">the</span> <span class="n">wait</span> <span class="p">...</span> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="n">p</span> <span class="p">=</span> <span class="n">null</span><span class="p">;</span><span class="o">//</span><span class="n">Any</span> <span class="n">null</span> <span class="n">checks</span> <span class="n">from</span> <span class="n">here</span> <span class="n">on</span> <span class="n">will</span> <span class="n">be</span> <span class="n">true</span><span class="p">.</span> <span class="p">}</span> <span class="p">}</span> </pre></div> </div><p>All of this is done with a constant ammount of operations (no loops).</p> <h2 id="w-delegates-function-pointers">Delegates (function pointers)</h2> <h3 id="w-definition">Definition</h3> <p>A delegate is a specification of a method. It is defined like a method, but without a body.</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">delegate</span> <span class="n">int</span> <span class="n">Comparer</span><span class="p">(</span><span class="n">MyStruct</span> <span class="n">s1</span><span class="p">,</span> <span class="n">MyStruct</span> <span class="n">s2</span><span class="p">);</span> <span class="o">...</span> <span class="n">void</span> <span class="n">foo</span><span class="p">()</span> <span class="p">{</span> <span class="n">Comparer</span> <span class="n">cmp</span><span class="p">;</span> <span class="p">}</span> </pre></div> </div><p>You can assign one type of delegate to another as long as the return types and parameters are explicitly assignable.</p> <h3 id="w-delegate-creation-expression-and-invocation">Delegate creation expression and invocation</h3> <p>To create a new "instance" of a delegate with the following code</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">MyDelegate</span> <span class="n">d</span> <span class="o">=</span> <span class="n">delegate</span><span class="o">&lt;</span><span class="n">MyDelegate</span><span class="o">&gt;</span><span class="p">(</span><span class="n">MyMethod</span><span class="p">);</span> </pre></div> </div><p>And then, to invoke the delegate, call .Invoke</p> <div class="code-wrapper" data-lexer="lua"><div class="markup-code"><pre><span class="n">d</span><span class="p">.</span><span class="n">Invoke</span><span class="p">(</span><span class="n">arg1</span><span class="p">,</span> <span class="n">arg2</span><span class="p">);</span> </pre></div> </div><p>If a delegate is called which has not been assigned a value, a runtime error will occur, and execution in that trigger will halt. Delegates are not dynamic types. There is no need to call delete for them.</p> Sun, 28 Apr 2013 07:52:21 +0000 http://www.sc2mapster.com/assets/galaxy-editor-beier/ http://www.sc2mapster.com/assets/galaxy-editor-beier/ no-reply@sc2mapster.com () Abilities and upgrades icon pack http://www.sc2mapster.com/assets/abilities-and-upgrades-icon-pack/ <p><strong>ATTENTION:</strong> To access older packs click the 'Files' tab up here /\ /\ /\</p> <p>DDS icons created using SC2 originals, blizzard artwork, and a few made by myself. Good for abilities, upgrades, tips and any other idea you may have.</p> <p>Pack 02 - 16 new icons from Blizzard assets and artwork. I created some of these for my mod and the others just because I got bored.<br> <img src="http://www.sc2mapster.com/media/images/34/248/icon_pack_2.jpg" alt="http://www.sc2mapster.com/media/images/34/248/icon_pack_2.jpg" title="http://www.sc2mapster.com/media/images/34/248/icon_pack_2.jpg"></p> <p>Pack 03 - More icons.<br> <img src="http://www.sc2mapster.com/media/images/34/420/icon_pack_3.jpg" alt="http://www.sc2mapster.com/media/images/34/420/icon_pack_3.jpg" title="http://www.sc2mapster.com/media/images/34/420/icon_pack_3.jpg"></p> <p>Pack 04 - More icons.<br> <img src="http://www.sc2mapster.com/media/images/35/272/icon_pack_4.jpg" alt="http://www.sc2mapster.com/media/images/35/272/icon_pack_4.jpg" title="http://www.sc2mapster.com/media/images/35/272/icon_pack_4.jpg"></p> <p>Pack 05 - More icons, some based on SC2 beta achievements<br> <img src="http://www.sc2mapster.com/media/images/35/811/icon_pack_5.jpg" alt="http://www.sc2mapster.com/media/images/35/811/icon_pack_5.jpg" title="http://www.sc2mapster.com/media/images/35/811/icon_pack_5.jpg"></p> <p>Pack 06 - Lost Vikings! The spades icon with a chick looks ok in game, nevermind that weird preview.<br> <img src="http://www.sc2mapster.com/media/images/36/277/icon_pack_6.jpg" alt="http://www.sc2mapster.com/media/images/36/277/icon_pack_6.jpg" title="http://www.sc2mapster.com/media/images/36/277/icon_pack_6.jpg"></p> <p>Pack 07 - Protoss upgrades and some icons based on Blizzard's Christmas cards. See you guys next year!<br> <img src="http://www.sc2mapster.com/media/images/36/760/icon_pack_7.jpg" alt="http://www.sc2mapster.com/media/images/36/760/icon_pack_7.jpg" title="http://www.sc2mapster.com/media/images/36/760/icon_pack_7.jpg"></p> <p>Pack 08 - Zerg upgrades with stars. Bonus: Terran Napalm Weapons.<br> <img src="http://www.sc2mapster.com/media/images/38/525/icon_pack_8.jpg" alt="http://www.sc2mapster.com/media/images/38/525/icon_pack_8.jpg" title="http://www.sc2mapster.com/media/images/38/525/icon_pack_8.jpg"></p> <p>Pack 09 - More achievement icons and a few more.<br> <img src="http://www.sc2mapster.com/media/images/39/956/icon_pack_9.jpg" alt="http://www.sc2mapster.com/media/images/39/956/icon_pack_9.jpg" title="http://www.sc2mapster.com/media/images/39/956/icon_pack_9.jpg"></p> <p>Pack 10 - Zerg attacks and more achievement icons.<br> <img src="http://www.sc2mapster.com/media/images/40/247/icon_pack_10.jpg" alt="http://www.sc2mapster.com/media/images/40/247/icon_pack_10.jpg" title="http://www.sc2mapster.com/media/images/40/247/icon_pack_10.jpg"></p> <p>Pack 11 - More achievement icons and some I reworked. Plus a "placeholder" Stasis Field.<br> <img src="http://www.sc2mapster.com/media/images/40/512/icon_pack_11.jpg" alt="http://www.sc2mapster.com/media/images/40/512/icon_pack_11.jpg" title="http://www.sc2mapster.com/media/images/40/512/icon_pack_11.jpg"></p> <p>Pack 12 - Dark Protoss upgrades. Titanium Housing, Lockdown. Colored Irradiate and Phase Shift. WoW spells and Blizzard DOTA items.<br> <img src="http://www.sc2mapster.com/media/images/40/770/icon_pack_12.jpg" alt="http://www.sc2mapster.com/media/images/40/770/icon_pack_12.jpg" title="http://www.sc2mapster.com/media/images/40/770/icon_pack_12.jpg"></p> <p>Pack 13 - DOTA pack. Hero abilities: Thrall, Arthas, Muradin and Witch Doctor. DOTA items, plus 2 achievement icons just to complete the last row.<br> <img src="http://www.sc2mapster.com/media/images/40/938/icon_pack_13.jpg" alt="http://www.sc2mapster.com/media/images/40/938/icon_pack_13.jpg" title="http://www.sc2mapster.com/media/images/40/938/icon_pack_13.jpg"></p> <p>Pack 14 - Colored icons and other stuff.<br> <img src="http://www.sc2mapster.com/media/images/41/491/icon_pack_14.jpg" alt="http://www.sc2mapster.com/media/images/41/491/icon_pack_14.jpg" title="http://www.sc2mapster.com/media/images/41/491/icon_pack_14.jpg"></p> <p>Pack 15 - Colored icons and other requests.<br> <img src="http://www.sc2mapster.com/media/images/41/922/icon_pack_15.jpg" alt="http://www.sc2mapster.com/media/images/41/922/icon_pack_15.jpg" title="http://www.sc2mapster.com/media/images/41/922/icon_pack_15.jpg"></p> <p>Pack 16 - Some colored icons, some requests and some new stuff.<br> <img src="http://www.sc2mapster.com/media/images/43/788/icon_pack_16.jpg" alt="http://www.sc2mapster.com/media/images/43/788/icon_pack_16.jpg" title="http://www.sc2mapster.com/media/images/43/788/icon_pack_16.jpg"></p> <p>Pack 17 - Dark protoss upgrades and abilities. Some random stuff as well.<br> <img src="http://www.sc2mapster.com/media/images/45/586/icon_pack_17.jpg" alt="http://www.sc2mapster.com/media/images/45/586/icon_pack_17.jpg" title="http://www.sc2mapster.com/media/images/45/586/icon_pack_17.jpg"></p> <p>Pack 18 - New stuff, remakes, requests, and so on.<br> <img src="http://www.sc2mapster.com/media/images/46/571/icon_pack_18.jpg" alt="http://www.sc2mapster.com/media/images/46/571/icon_pack_18.jpg" title="http://www.sc2mapster.com/media/images/46/571/icon_pack_18.jpg"></p> <p>Pack 19 - Achievements, recolors, warcraft stuff and that Hexagon thingy that came out of my mind, should I have used another unit? Or something else?<br> <img src="http://www.sc2mapster.com/media/images/47/141/icon_pack_19.jpg" alt="http://www.sc2mapster.com/media/images/47/141/icon_pack_19.jpg" title="http://www.sc2mapster.com/media/images/47/141/icon_pack_19.jpg"></p> <p>Pack 20 - Aiur Chef and Left 2 Die icons. Old icpns. A lot of requests and a few other things.<br> <img src="http://www.sc2mapster.com/media/images/48/229/icon_pack_20.jpg" alt="http://www.sc2mapster.com/media/images/48/229/icon_pack_20.jpg" title="http://www.sc2mapster.com/media/images/48/229/icon_pack_20.jpg"></p> <p>Pack 21 - Dark terran upgrades, rocket boot, other requests and lots of random stuff, enjoy!<br> <img src="http://www.sc2mapster.com/media/images/48/390/icon_pack_21.jpg" alt="http://www.sc2mapster.com/media/images/48/390/icon_pack_21.jpg" title="http://www.sc2mapster.com/media/images/48/390/icon_pack_21.jpg"></p> <p>Pack 22 - Some random stuff and lots of requests (I felt like Andy Warhol making these lol).<br> <img src="http://www.sc2mapster.com/media/images/49/146/icon_pack_22.jpg" alt="http://www.sc2mapster.com/media/images/49/146/icon_pack_22.jpg" title="http://www.sc2mapster.com/media/images/49/146/icon_pack_22.jpg"></p> <p>Pack 23 - Requests, requests, requests, and some random stuff too!<br> <img src="http://www.sc2mapster.com/media/images/50/368/icon_pack23.jpg" alt="http://www.sc2mapster.com/media/images/50/368/icon_pack23.jpg" title="http://www.sc2mapster.com/media/images/50/368/icon_pack23.jpg"></p> <p>Pack 24 - Some old requests, some HoTS achievements. (files with HoTS suffix are meant for HoTS maps only).<br> <img src="http://www.sc2mapster.com/media/images/55/434/icon_pack_24.jpg" alt="http://www.sc2mapster.com/media/images/55/434/icon_pack_24.jpg" title="http://www.sc2mapster.com/media/images/55/434/icon_pack_24.jpg"></p> <p><strong>ATTENTION:</strong> To access older packs click the 'Files' tab up there /\ /\ /\</p> Sun, 28 Apr 2013 00:56:44 +0000 http://www.sc2mapster.com/assets/abilities-and-upgrades-icon-pack/ http://www.sc2mapster.com/assets/abilities-and-upgrades-icon-pack/ no-reply@sc2mapster.com () [Library] Vote Kick http://www.sc2mapster.com/assets/library-vote-kick/ <p>I want to share my vote kick library, which is used in Probes vs Zealot 2. You can easy to change it to your own requirements. Just copy script into your map.</p> Thu, 25 Apr 2013 03:23:23 +0000 http://www.sc2mapster.com/assets/library-vote-kick/ http://www.sc2mapster.com/assets/library-vote-kick/ no-reply@sc2mapster.com () Ghostnova's Mods http://www.sc2mapster.com/assets/ghostnovas-mods/ <p>All Icons,Wireframes and Hero Icons for my mods can be found here: <a href="http://www.sc2mapster.com/assets/unit-icon-and-wireframe-pack/">http://www.sc2mapster.com/assets/unit-icon-and-wireframe-pack/</a></p> <table><tr><td></td></tr> <tr><td></td></tr> <tr><td></td></tr> <tr><td></td></tr> <tr><td></td></tr> <tr><td></td></tr> </table> <p>Check out my other assets as well!|</p> <p>BW Firebat <a href="http://www.sc2mapster.com/assets/brood-war-firebat/">http://www.sc2mapster.com/assets/brood-war-firebat/</a></p> <p><img src="http://farm8.staticflickr.com/7254/7458243060_5d4e07bed3_s.jpg" alt="" title=""></p> <p>Duran and Stukov! <a href="http://www.sc2mapster.com/assets/samir-duran-and-alexei-stukov/">http://www.sc2mapster.com/assets/samir-duran-and-alexei-stukov/</a></p> <p><img src="http://farm9.staticflickr.com/8020/7458242622_7a7d804b4e_s.jpg" alt="" title=""></p> <p>Arclite Siege Tank (BW) <a href="http://www.sc2mapster.com/assets/arclite-siege-tank/">http://www.sc2mapster.com/assets/arclite-siege-tank/</a></p> <p><img src="http://farm9.staticflickr.com/8017/7458243004_71b1fb4022_s.jpg" alt="" title=""></p> <p>Vindicator <a href="http://www.sc2mapster.com/assets/vindicator/">http://www.sc2mapster.com/assets/vindicator/</a></p> <p><img src="http://farm8.staticflickr.com/7256/7458242940_4c138478f6_s.jpg" alt="" title=""></p> <p>Also check out my Brood War Tileset!</p> <p><a href="http://www.sc2mapster.com/maps/brood-war-terrain/images/">http://www.sc2mapster.com/maps/brood-war-terrain/images/</a></p> Sat, 20 Apr 2013 22:26:51 +0000 http://www.sc2mapster.com/assets/ghostnovas-mods/ http://www.sc2mapster.com/assets/ghostnovas-mods/ no-reply@sc2mapster.com () Portrait (Static) Pack http://www.sc2mapster.com/assets/portrait-static-pack/ <p>ATTENTION: To access older packs click the 'Files' tab up here /\ /\ /\ /\</p> <p>(SoulFilcher) Pack 1: (Blurred civilian, night elf banshee, Hall, demon marine) and a few Alpha/Beta ones (Red suit marine, Fatty/Swarm Host, Nullifier, Disruptor and an alternative Infested Marine).</p> <p>(SoulFilcher)Pack 2: Abathur, de-infested Kerrigan, Izsha and Grunty (murloc marine).</p> <p>(SoulFilcher) Pack 3: HoTS' Widow Mine, Lessara. GhostNova's Firebat, General Duke, Duran, Stukov, Vindicator. Thrikodias' Aldaris, Tassadar, Stone Zealot, Cerebrate and Daggoth.</p> <p>(rikky333) pack 4: Hots viper, Oracle <br> Thrikodias: Cosrair, Reaver DuGalle, Raven (Front), Templar Stalker, Infested Tychus<br> Ghost nova : zerg buster, Fenix<br> WoL alpha: adjudant (old)<br> rikky art : Dark Archon<br> Blizzard : choker, Pufiler</p> <p>(SoulFicher) Pack 5: I had created some that rikky333 uploaded but here they are along with some new ones. Dark Archon. A new de-infested Kerrigan portrait. GhostNova's Banshee Pilot, Zerg Buster, Goliath and Fenix (Zealot and Dragoon. Thrikodias' Valkyrie.</p> <p>(SoulFilcher &amp; rikky333) Pack 6: Thrikodias' Dark Archon, SC1 Adjutant.Reaver GhostNova's female Templar, Fatty,&nbsp;&nbsp;Gestalt Zero.cafe never: Spartan, Blizzard All Stars (DOTA) : Sylvanas (evil), Stitches and Zamuro.</p> <p>(Soulfilcher) Pack 7: Ghost Echo. Some units with alternative lighting, as requested, Zergling, Hydralisk, Mutalisk, Queen of Blades, High Templar, Immortal, Archon, Tassadar.</p> <p>(rikky333) Pack 8: cloaked banshee,Infested MULE, l2d: Spotter, Thrikodias: Merc Vulture, SoulFilcher: Merc Helion, Ghostnova: Dragoon, Raszagal, Salirth: Psionic Hydralisk, KORroy: Aldaris.</p> <p>(rikky333) Pack 9 : Ghostnova's: duke old, kerrigen, infested duran, zeredek: fenix, Cafenaver: cretoss, iron marine, Thrikodias: cerebrate, Brood Mother blizzard - sons of storms: male banshee, spectre with no mask, tempest, Beta zealot,</p> <p>(rikky333) Pack 10: Hots Helion, Warhound, Widow mine, Tempest, Carrier, Oracle, Viper, Locust, Swarmhost, battle hellion battle mode.<br> Tree Viper, Viking with no mask,</p> <p>(SoulFilcher&amp;rikky333) Pack 11: Thrikodias' Reaver with reddish light, GhostNova's Raynor and Sarah. Diablo 3 Tyrael, Diablo and Azmodan. Hots: Cleaning bot. WoW: Panda</p> <p>(SoulFilcher) Pack 12: Cloaking Tosh, Beta Civilians, Rocking Thor, Facepalm Hellion, Smoking Horner, Red-hat Duran and Dark Duran.</p> <p>(SoulFilcher) HoTS Pack: See file description for complete list.</p> <p>ATTENTION: To access older packs click the 'Files' tab up here /\ /\ /\ /\</p> <p>ATTENTION 2: Using HoTS assets in WoL maps can get your map banned. We are nor responsible for any consequences.</p> Mon, 01 Apr 2013 19:21:40 +0000 http://www.sc2mapster.com/assets/portrait-static-pack/ http://www.sc2mapster.com/assets/portrait-static-pack/ no-reply@sc2mapster.com ()