Moderator
M
Moderator
17:07, 3rd Dec 2012
Magtheridon96: This utility is alright.
Well done.
Magtheridon96: This utility is alright.
Well done.
CHA_Owner Presents
Model and Effects Viewer
Created by razor21, a.k.a gekigengar
Map Info
This is basically just a very advanced version of the "Epic Animation Viewer" and of course I got full permission to continue this system;
razor21 said:
Features
This system comes loaded with a ton of special features such as;
- Easily view any model or effect in wc3.
- Skip through effects using chat commands.
- Loop unit animations while viewing them.
- Adjust your camera anyway that you desire.
- Easily add/remove any additional models or effects.
- Even view attachments on a unit while using animations.
Testers/Viewers Included
These are the testers included so far;
- Animations/Animation Names.
- Sky Models/Sky Model Names and Raw Codes.
- Terrain Tiles/Terrain Tile Names and Raw Codes.
- Ubersplat Effects/Ubersplat Names and Raw Codes.
- Lightning Effects/Lightning Names and Raw Codes.
- Fade Filters/Fade Filter Names and Paths.
- Weather Effects/Weather Effect Names and Raw Codes.
- Attachment Models/Attachment Names and Paths.
vJASS Triggers
JASS:library FirstInitialization initializer Init // Setting up global declarations globals boolean LoopingCommand boolean ShowBoard boolean array ArrowKey camerasetup Camera effect array TempEffect integer CamMode integer NewTerrainType integer SystemInUse integer TerrainType integer array Index integer array MinIndex integer array MaxIndex integer array TerrainChoice integer array WeatherChoice lightning TempLightning = null real XofActor real YofActor real NewYofActor real FinalYofActor real array CamSetting string array AnimationName string array AnimationNameA string array BootsChoiceLeft string array BootsChoiceRight string array BootsName string array BracersChoiceLeft string array BracersChoiceRight string array BracersName string array CameraModeName string array ChestChoice string array ChestName string array FadeChoice string array FadeName string array HelmetChoice string array HelmetName string array LightningChoice string array LightningName string array Line string array ShieldChoice string array ShieldName string array SkyChoice string array SkyName string array SwordChoice string array SwordName string array TerrainName string array UbersplatChoice string array UbersplatName string array WeatherName trigger Looping unit array Actor unit array ControlPanel BoardEx Board endglobals // -------------------------------------------- private function InitActionsFirst takes nothing returns nothing // Terrain Tile Name Changer set Index[0] = 0 set TerrainName[0] = "None" set TerrainName[1] = "('Ldrt') Lordaeron Summer Dirt (cliff)" set TerrainName[2] = "('Ldro') Lordaeron Summer Rough Dirt" set TerrainName[3] = "('Ldrg') Lordaeron Summer Grassy Dirt" set TerrainName[4] = "('Lrok') Lordaeron Summer Rock" set TerrainName[5] = "('Lgrs') Lordaeron Summer Grass (cliff)" set TerrainName[6] = "('Lgrd') Lordaeron Summer Dark Grass" set TerrainName[7] = "('Fdrt') Lordaeron Fall Dirt (cliff)" set TerrainName[8] = "('Fdro') Lordaeron Fall Rough Dirt" // -------------------------------------------- // Terrain Tile Index Changer set TerrainChoice[1] = 'Ldrt' set TerrainChoice[2] = 'Ldro' set TerrainChoice[3] = 'Ldrg' set TerrainChoice[4] = 'Lrok' set TerrainChoice[5] = 'Lgrs' set TerrainChoice[6] = 'Lgrd' set TerrainChoice[7] = 'Fdrt' set TerrainChoice[8] = 'Fdro' // Terrain Tile Max and Min Index set MinIndex[0] = 0 set MaxIndex[0] = 8 // -------------------------------------------- // Ubersplat Name Changer set Index[1] = 0 set UbersplatName[0] = "None" set UbersplatName[1] = "(\"LSDS\") Lordaeron Summer Plain Dirt Small" set UbersplatName[2] = "(\"LSDM\") Lordaeron Summer Plain Dirt Medium" set UbersplatName[3] = "(\"LSDL\") Lordaeron Summer Plain Dirt Large" set UbersplatName[4] = "(\"HCRT\") Human Crater" set UbersplatName[5] = "(\"UDSU\") Undead Uber Splat" set UbersplatName[6] = "(\"DNCS\") Death Neutral City Building Small" set UbersplatName[7] = "(\"HMTP\") Human Mass Teleport" set UbersplatName[8] = "(\"SCTP\") Scroll Of Town Portal" set UbersplatName[9] = "(\"AMRC\") Amulet Of Recall" set UbersplatName[10] = "(\"DRKC\") Dark Conversion" set UbersplatName[11] = "(\"DOSB\") Death Orc Small Building" set UbersplatName[12] = "(\"DOMB\") Death Orc Medium Building" set UbersplatName[13] = "(\"DOLB\") Death Orc Large Building" set UbersplatName[14] = "(\"DHSB\") Death Human Small Building" set UbersplatName[15] = "(\"DHMB\") Death Human Medium Building" set UbersplatName[16] = "(\"DHLB\") Death Human Large Building" set UbersplatName[17] = "(\"DUSB\") Death Undead Small Building" set UbersplatName[18] = "(\"DUMB\") Death Undead Medium Building" set UbersplatName[19] = "(\"DULB\") Death Undead Large Building" set UbersplatName[20] = "(\"DNSB\") Death NightElf Small Building" set UbersplatName[21] = "(\"DNMB\") Death NightElf Medium Building" set UbersplatName[22] = "(\"DNSA\") Death NightElf Small Ancient" set UbersplatName[23] = "(\"DNMA\") Death NightElf Medium Ancient" set UbersplatName[24] = "(\"HSMA\") Human Small Building" set UbersplatName[25] = "(\"HMED\") Human Medium Building" set UbersplatName[26] = "(\"HLAR\") Human Large Building" set UbersplatName[27] = "(\"OSMA\") Orc Small Building" set UbersplatName[28] = "(\"OMED\") Orc Medium Building" set UbersplatName[29] = "(\"OLAR\") Orc Large Building" set UbersplatName[30] = "(\"USMA\") Undead Small Building" set UbersplatName[31] = "(\"UMED\") Undead Medium Building" set UbersplatName[32] = "(\"ULAR\") Undead Large Building" set UbersplatName[33] = "(\"ESMA\") NightElf Small Ancient" set UbersplatName[34] = "(\"EMDA\") NightElf Medium Ancient" set UbersplatName[35] = "(\"ESMB\") NightElf Small Building" set UbersplatName[36] = "(\"EMDB\") NightElf Medium Building" set UbersplatName[37] = "(\"HTOW\") Town Hall" set UbersplatName[38] = "(\"HCAS\") Castle" set UbersplatName[39] = "(\"NGOL\") Goldmine" set UbersplatName[40] = "(\"THND\") Thunder Clap" set UbersplatName[41] = "(\"NDGS\") Demon Gate" set UbersplatName[42] = "(\"CLTS\") Thorny Shield" set UbersplatName[43] = "(\"HFS1\") Human Flame Strike 1" set UbersplatName[44] = "(\"HFS2\") Human Flame Strike 2" set UbersplatName[45] = "(\"USBR\") Burrow" set UbersplatName[46] = "(\"NLAR\") Naga Large Building" set UbersplatName[47] = "(\"NMED\") Naga Medium Building" set UbersplatName[48] = "(\"DPSW\") Dark Portal SW" set UbersplatName[49] = "(\"DPSE\") Dark Portal SE" set UbersplatName[50] = "(\"NVOL\") Volcano" set UbersplatName[51] = "(\"NVCR\") Volcano Crater" // -------------------------------------------- // Ubersplat Index Changer set UbersplatChoice[1] = "LSDS" set UbersplatChoice[2] = "LSDM" set UbersplatChoice[3] = "LSDL" set UbersplatChoice[4] = "HCRT" set UbersplatChoice[5] = "UDSU" set UbersplatChoice[6] = "DNCS" set UbersplatChoice[7] = "HMTP" set UbersplatChoice[8] = "SCTP" set UbersplatChoice[9] = "AMRC" set UbersplatChoice[10] = "DRKC" set UbersplatChoice[11] = "DOSB" set UbersplatChoice[12] = "DOMB" set UbersplatChoice[13] = "DOLB" set UbersplatChoice[14] = "DHSB" set UbersplatChoice[15] = "DHMB" set UbersplatChoice[16] = "DHLB" set UbersplatChoice[17] = "DUSB" set UbersplatChoice[18] = "DUMB" set UbersplatChoice[19] = "DULB" set UbersplatChoice[20] = "DNSB" set UbersplatChoice[21] = "DNMB" set UbersplatChoice[22] = "DNSA" set UbersplatChoice[23] = "DNMA" set UbersplatChoice[24] = "HSMA" set UbersplatChoice[25] = "HMED" set UbersplatChoice[26] = "HLAR" set UbersplatChoice[27] = "OSMA" set UbersplatChoice[28] = "OMED" set UbersplatChoice[29] = "OLAR" set UbersplatChoice[30] = "USMA" set UbersplatChoice[31] = "UMED" set UbersplatChoice[32] = "ULAR" set UbersplatChoice[33] = "ESMA" set UbersplatChoice[34] = "EMDA" set UbersplatChoice[35] = "ESMB" set UbersplatChoice[36] = "EMDB" set UbersplatChoice[37] = "HTOW" set UbersplatChoice[38] = "HCAS" set UbersplatChoice[39] = "NGOL" set UbersplatChoice[40] = "THND" set UbersplatChoice[41] = "NDGS" set UbersplatChoice[42] = "CLTS" set UbersplatChoice[43] = "HFS1" set UbersplatChoice[44] = "HFS2" set UbersplatChoice[45] = "USBR" set UbersplatChoice[46] = "NLAR" set UbersplatChoice[47] = "NMED" set UbersplatChoice[48] = "DPSW" set UbersplatChoice[49] = "DPSE" set UbersplatChoice[50] = "NVOL" set UbersplatChoice[51] = "NVCR" // Ubersplat Max and Min Index set MinIndex[1] = 0 set MaxIndex[1] = 51 // -------------------------------------------- // Lightning Name Changer set Index[2] = 0 set LightningName[0] = "None" set LightningName[1] = "(\"CLPB\") Chain Lightning - Primary" set LightningName[2] = "(\"CLSB\") Chain Lightning - Secondary" set LightningName[3] = "(\"DRAB\") Drain" set LightningName[4] = "(\"DRAL\") Drain Life" set LightningName[5] = "(\"DRAM\") Drain Mana" set LightningName[6] = "(\"AFOD\") Finger of Death" set LightningName[7] = "(\"FORK\") Forked Lightning" set LightningName[8] = "(\"HWPB\") Healing Wave - Primary" set LightningName[9] = "(\"HWSB\") Healing Wave - Secondary" set LightningName[10] = "(\"CHIM\") Lightning Attack" set LightningName[11] = "(\"LEAS\") Magic Leash" set LightningName[12] = "(\"MBUR\") Mana Burn" set LightningName[13] = "(\"MFPB\") Mana Flare" set LightningName[14] = "(\"SPLK\") Spirit Link" // -------------------------------------------- // Lightning Index Changer set LightningChoice[1] = "CLPB" set LightningChoice[2] = "CLSB" set LightningChoice[3] = "DRAB" set LightningChoice[4] = "DRAL" set LightningChoice[5] = "DRAM" set LightningChoice[6] = "AFOD" set LightningChoice[7] = "FORK" set LightningChoice[8] = "HWPB" set LightningChoice[9] = "HWSB" set LightningChoice[10] = "CHIM" set LightningChoice[11] = "LEAS" set LightningChoice[12] = "MBUR" set LightningChoice[13] = "MFPB" set LightningChoice[14] = "SPLK" // Lightning Max and Min Index set MinIndex[2] = 0 set MaxIndex[2] = 14 // -------------------------------------------- // Fade Filter Name Changer set Index[3] = 0 set FadeName[0] = "None" set FadeName[1] = "White Mask" set FadeName[2] = "Black Mask" set FadeName[3] = "Haze Filter" set FadeName[4] = "Ground Fog" set FadeName[5] = "Haze And Fog" set FadeName[6] = "Diagonal Slash" set FadeName[7] = "Dream" set FadeName[8] = "Scope" set FadeName[9] = "Pow!" set FadeName[10] = "Splatt!" set FadeName[11] = "Panda-n-Cub" // -------------------------------------------- // Fade Filter Index Changer set FadeChoice[1] = "ReplaceableTextures\\CameraMasks\\White_mask.blp" set FadeChoice[2] = "ReplaceableTextures\\CameraMasks\\Black_mask.blp" set FadeChoice[3] = "ReplaceableTextures\\CameraMasks\\HazeFilter_mask.blp" set FadeChoice[4] = "ReplaceableTextures\\CameraMasks\\GroundFog_mask.blp" set FadeChoice[5] = "ReplaceableTextures\\CameraMasks\\HazeAndFogFilter_Mask.blp" set FadeChoice[6] = "ReplaceableTextures\\CameraMasks\\DiagonalSlash_mask.blp" set FadeChoice[7] = "ReplaceableTextures\\CameraMasks\\DreamFilter_Mask.blp" set FadeChoice[8] = "ReplaceableTextures\\CameraMasks\\Scope_Mask.blp" set FadeChoice[9] = "ReplaceableTextures\\CameraMasks\\SpecialPowMask.blp" set FadeChoice[10] = "ReplaceableTextures\\CameraMasks\\SpecialSplatMask.blp" set FadeChoice[11] = "ReplaceableTextures\\CameraMasks\\Panda-n-Cub.blp" // Fade Filter Max and Min Index set MinIndex[3] = 0 set MaxIndex[3] = 11 // -------------------------------------------- // Sky Name Changer set Index[4] = 0 set SkyName[0] = "None" set SkyName[1] = "Blizzard Sky" set SkyName[2] = "Dalaran Sky" set SkyName[3] = "Felwood Sky" set SkyName[4] = "Fogged Sky" set SkyName[5] = "Generic Sky" set SkyName[6] = "Lordaeron Fall Sky" set SkyName[7] = "Lordaeron Summer Sky" set SkyName[8] = "Lordaeron Winter Sky" set SkyName[9] = "Lordaeron Winter Sky (Bright Green)" set SkyName[10] = "Lordaeron Winter Sky (Pink)" set SkyName[11] = "Lordaeron Winter Sky (Purple)" set SkyName[12] = "Lordaeron Winter Sky (Red)" set SkyName[13] = "Lordaeron Winter Sky (Yellow)" set SkyName[14] = "Outland Sky" // -------------------------------------------- // Sky Index Changer set SkyChoice[1] = "Environment\\Sky\\BlizzardSky\\BlizzardSky.mdl" set SkyChoice[2] = "Environment\\Sky\\DalaranSky\\DalaranSky.mdl" set SkyChoice[3] = "Environment\\Sky\\FelwoodSky\\FelwoodSky.mdl" set SkyChoice[4] = "Environment\\Sky\\FoggedSky\\FoggedSky.mdl" set SkyChoice[5] = "Environment\\Sky\\Sky\\SkyLight.mdl" set SkyChoice[6] = "Environment\\Sky\\LordaeronFallSky\\LordaeronFallSky.mdl" set SkyChoice[7] = "Environment\\Sky\\LordaeronSummerSky\\LordaeronSummerSky.mdl" set SkyChoice[8] = "Environment\\Sky\\LordaeronWinterSky\\LordaeronWinterSky.mdl" set SkyChoice[9] = "Environment\\Sky\\LordaeronWinterSkyBrightGreen\\LordaeronWinterSkyBrightGreen.mdl" set SkyChoice[10] = "Environment\\Sky\\LordaeronWinterSkyPink\\LordaeronWinterSkyPink.mdl" set SkyChoice[11] = "Environment\\Sky\\LordaeronWinterSkyPurple\\LordaeronWinterSkyPurple.mdl" set SkyChoice[12] = "Environment\\Sky\\LordaeronWinterSkyRed\\LordaeronWinterSkyRed.mdl" set SkyChoice[13] = "Environment\\Sky\\LordaeronWinterSkyYellow\\LordaeronWinterSkyYellow.mdl" set SkyChoice[14] = "Environment\\Sky\\Outland_Sky\\Outland_Sky.mdl" // Sky Max and Min Index set MinIndex[4] = 0 set MaxIndex[4] = 14 // -------------------------------------------- // Weather Name Changer set Index[5] = 0 set WeatherName[0] = "None" set WeatherName[1] = "('RAhr') Ashenvale Rain (Heavy)" set WeatherName[2] = "('RAlr') Ashenvale Rain (Light)" set WeatherName[3] = "('MEds') Dalaran Shield" set WeatherName[4] = "('FDbh') Dungeon Blue Fog (Heavy)" set WeatherName[5] = "('FDbl') Dungeon Blue Fog (Light)" set WeatherName[6] = "('FDgh') Dungeon Green Fog (Heavy)" set WeatherName[7] = "('FDgl') Dungeon Green Fog (Light)" set WeatherName[8] = "('FDrh') Dungeon Red Fog (Heavy)" set WeatherName[9] = "('FDrl') Dungeon Red Fog (Light)" set WeatherName[10] = "('FDwh') Dungeon White Fog (Heavy)" set WeatherName[11] = "('FDwl') Dungeon White Fog (Light)" set WeatherName[12] = "('RLhr') Lordaeron Rain (Heavy)" set WeatherName[13] = "('RLlr') Lordaeron Rain (Light)" set WeatherName[14] = "('SNbs') Northrend Blizzard" set WeatherName[15] = "('SNhs') Northrend Snow (Heavy)" set WeatherName[16] = "('SNls') Northrend Snow (Light)" set WeatherName[17] = "('WOcw') Outland Wind (Heavy)" set WeatherName[18] = "('WOlw') Outland Wind (Light)" set WeatherName[19] = "('LRaa') Rays Of Light" set WeatherName[20] = "('LRma') Rays Of Moonlight" set WeatherName[21] = "('WNcw') Wind (Heavy)" // -------------------------------------------- // Weather Index Changer set WeatherChoice[1]='RAhr' set WeatherChoice[2]='RAlr' set WeatherChoice[3]='MEds' set WeatherChoice[4]='FDbh' set WeatherChoice[5]='FDbl' set WeatherChoice[6]='FDgh' set WeatherChoice[7]='FDgl' set WeatherChoice[8]='FDrh' set WeatherChoice[9]='FDrl' set WeatherChoice[10]='FDwh' set WeatherChoice[11]='FDwl' set WeatherChoice[12]='RLhr' set WeatherChoice[13]='RLlr' set WeatherChoice[14]='SNbs' set WeatherChoice[15]='SNhs' set WeatherChoice[16]='SNls' set WeatherChoice[17]='WOcw' set WeatherChoice[18]='WOlw' set WeatherChoice[19]='LRaa' set WeatherChoice[20]='LRma' set WeatherChoice[21]='WNcw' // Weather Max and Min Index set MinIndex[5] = 0 set MaxIndex[5] = 21 // -------------------------------------------- // Animation Name Changer set Index[6] = 0 set AnimationName[0] = "Stand - 1" set AnimationName[1] = "Stand - 2" set AnimationName[2] = "Stand - 3" set AnimationName[3] = "Stand - 4" set AnimationName[4] = "Attack - 1" set AnimationName[5] = "Stand Work - 1" set AnimationName[6] = "Walk" set AnimationName[7] = "Death - 1" set AnimationName[8] = "Decay Flesh" set AnimationName[9] = "Decay Bone" set AnimationName[10] = "Stand Ready" set AnimationName[11] = "Stand Flesh First" set AnimationName[12] = "Stand Flesh Second" set AnimationName[13] = "Attack Morph - 1" set AnimationName[14] = "Attack Morph - 2" set AnimationName[15] = "Attack Morph - 3" set AnimationName[16] = "Attack Morph - 4" set AnimationName[17] = "Attack Morph - 5" set AnimationName[18] = "Attack Morph - 6" set AnimationName[19] = "Attack Morph - 7" set AnimationName[20] = "Attack Morph - 8" set AnimationName[21] = "Attack Morph - 9" set AnimationName[22] = "Attack Morph - 10" set AnimationName[23] = "Attack Morph - 11" set AnimationName[24] = "Attack Morph - 12" set AnimationName[25] = "Attack Morph - 13" set AnimationName[26] = "Attack Morph - 14" set AnimationName[27] = "Attack Morph - 15" set AnimationName[28] = "Attack Morph - 16" set AnimationName[29] = "Attack Morph - 17" set AnimationName[30] = "Attack Morph - 18" set AnimationName[31] = "Attack Morph - 19" set AnimationName[32] = "Attack Morph - 20" set AnimationName[33] = "Attack Morph - 21" set AnimationName[34] = "Attack Morph - 22" set AnimationName[35] = "Attack Morph - 23" set AnimationName[36] = "Attack Morph - 24" set AnimationName[37] = "Attack Morph - 25" set AnimationName[38] = "Attack Morph - 26" set AnimationName[39] = "Attack Morph - 27" set AnimationName[40] = "Attack Morph - 28" set AnimationName[41] = "Attack Morph - 29" set AnimationName[42] = "Attack Morph - 30" set AnimationName[43] = "Attack - 2" set AnimationName[44] = "Attack - 3" set AnimationName[45] = "Attack - 4" set AnimationName[46] = "Attack - 5" set AnimationName[47] = "Attack - 6" set AnimationName[48] = "Attack - 7" set AnimationName[49] = "Attack - 8" set AnimationName[50] = "Attack - 9" set AnimationName[51] = "Attack - 10" set AnimationName[52] = "Attack - 11" set AnimationName[53] = "Attack - 12" set AnimationName[54] = "Attack - 13" set AnimationName[55] = "Attack - 14" set AnimationName[56] = "Attack - 15" set AnimationName[57] = "Attack Alternate - 1" set AnimationName[58] = "Attack Alternate - 2" set AnimationName[59] = "Attack Alternate - 3" set AnimationName[60] = "Attack Alternate - 4" set AnimationName[61] = "Attack Alternate - 5" set AnimationName[62] = "Attack Alternate - 6" set AnimationName[63] = "Attack Alternate - 7" set AnimationName[64] = "Attack Alternate - 8" set AnimationName[65] = "Attack Alternate - 9" set AnimationName[66] = "Stand Hit - 1" set AnimationName[67] = "Stand Hit - 2" set AnimationName[68] = "Stand Hit - 3" set AnimationName[69] = "Stand Hit - 4" set AnimationName[70] = "Stand Hit - 5" set AnimationName[71] = "Stand Hit - 6" set AnimationName[72] = "Stand Hit - 7" set AnimationName[73] = "Stand Hit - 8" set AnimationName[74] = "Stand Hit - 9" set AnimationName[75] = "Stand Hit - 10" set AnimationName[76] = "Stand Hit - 11" set AnimationName[77] = "Stand Hit - 12" set AnimationName[78] = "Stand Hit - 13" set AnimationName[79] = "Stand Victory - 1" set AnimationName[80] = "Stand Victory - 2" set AnimationName[81] = "Stand Victory - 3" set AnimationName[82] = "Stand Victory - 4" set AnimationName[83] = "Stand Victory - 5" set AnimationName[84] = "Stand Victory - 6" set AnimationName[85] = "Stand Victory - 7" set AnimationName[86] = "Stand Victory - 9" set AnimationName[87] = "Stand Victory - 10" set AnimationName[88] = "Stand Victory - 11" set AnimationName[89] = "Stand Victory - 12" set AnimationName[90] = "Stand Victory - 13" set AnimationName[91] = "Walk Gold" set AnimationName[92] = "Stand Gold" set AnimationName[93] = "Attack Gold - 1" set AnimationName[94] = "Attack Gold - 2" set AnimationName[95] = "Walk Lumber" set AnimationName[96] = "Stand Lumber" set AnimationName[97] = "Attack Lumber - 1" set AnimationName[98] = "Stand Victory - 14" set AnimationName[99] = "Stand Victory - 15" set AnimationName[100] = "Stand Victory - 16" set AnimationName[101] = "Stand Victory - 17" set AnimationName[102] = "Attack Lumber - 2" set AnimationName[103] = "Stand Victory - 18" set AnimationName[104] = "Stand Victory - 19" set AnimationName[105] = "Stand Victory - 20" set AnimationName[106] = "Stand Victory - 21" set AnimationName[107] = "Stand Defend - 1" set AnimationName[108] = "Stand Defend - 2" set AnimationName[109] = "Stand Defend - 3" set AnimationName[110] = "Stand Defend - 4" set AnimationName[111] = "Stand Defend - 5" set AnimationName[112] = "Walk Defend" set AnimationName[113] = "Attack Defend - 1" set AnimationName[114] = "Attack Defend - 2" set AnimationName[115] = "Stand Victory - 22" set AnimationName[116] = "Stand Victory - 23" set AnimationName[117] = "Stand Work - 2" set AnimationName[118] = "Attack Throw - 1" set AnimationName[119] = "Attack Throw - 2" set AnimationName[120] = "Attack Throw - 3" set AnimationName[121] = "Attack Throw - 4" set AnimationName[122] = "Attack Throw - 5" set AnimationName[123] = "Attack Throw - 6" set AnimationName[124] = "Attack Throw - 7" set AnimationName[125] = "Stand Victory - 24" set AnimationName[126] = "Stand Victory - 25" set AnimationName[127] = "Stand Victory - 26" set AnimationName[128] = "Stand Victory - 27" set AnimationName[129] = "Stand Victory - 28" set AnimationName[130] = "Stand Victory - 29" set AnimationName[131] = "Stand Victory - 30" set AnimationName[132] = "Stand Victory - 31" set AnimationName[133] = "Stand Victory - 32" set AnimationName[134] = "Stand Victory - 33" set AnimationName[135] = "Stand Victory - 34" set AnimationName[136] = "Stand Victory - 35" set AnimationName[137] = "Stand Victory - 36" set AnimationName[138] = "Stand Victory - 37" set AnimationName[139] = "Stand Victory - 38" set AnimationName[140] = "Stand Victory - 39" set AnimationName[141] = "Stand Victory - 40" set AnimationName[142] = "Walk Upgrade" set AnimationName[143] = "Stand Upgrade" set AnimationName[144] = "Attack Upgrade - 1" set AnimationName[145] = "Attack Upgrade - 2" set AnimationName[146] = "Attack Upgrade - 3" set AnimationName[147] = "Attack Upgrade - 4" set AnimationName[148] = "Death Upgrade" set AnimationName[149] = "Stand Victory - 41" set AnimationName[150] = "Stand Victory - 42" set AnimationName[151] = "Stand Victory - 43" set AnimationName[152] = "Stand Victory - 44" set AnimationName[153] = "Stand Victory - 45" set AnimationName[154] = "Stand Victory - 46" set AnimationName[155] = "Stand Victory - 47" set AnimationName[156] = "Stand Victory - 48" set AnimationName[157] = "Stand Victory - 49" set AnimationName[158] = "Stand Victory - 50" set AnimationName[159] = "Stand Victory - 51" set AnimationName[160] = "Stand Victory - 52" set AnimationName[161] = "Stand Victory - 53" set AnimationName[162] = "Stand Victory - 54" set AnimationName[163] = "Stand Victory - 55" set AnimationName[164] = "Stand Victory - 56" set AnimationName[165] = "Stand Victory - 57" set AnimationName[166] = "Stand Victory - 58" set AnimationName[167] = "Stand Victory - 59" set AnimationName[168] = "Stand Victory - 60" set AnimationName[169] = "Stand Victory - 61" set AnimationName[170] = "Stand Victory - 62" set AnimationName[171] = "Stand Victory - 63" set AnimationName[172] = "Stand Victory - 64" set AnimationName[173] = "Stand Victory - 65" set AnimationName[174] = "Stand Victory - 66" set AnimationName[175] = "Stand Victory - 67" set AnimationName[176] = "Stand Victory - 68" set AnimationName[177] = "Stand Victory - 69" set AnimationName[178] = "Stand Victory - 70" set AnimationName[179] = "Stand Victory - 71" set AnimationName[180] = "Stand Victory - 72" set AnimationName[181] = "Stand Victory - 73" set AnimationName[182] = "Stand Victory - 74" set AnimationName[183] = "Stand Victory - 75" set AnimationName[184] = "Stand Victory - 76" set AnimationName[185] = "Death - 2" set AnimationName[186] = "Death - 3" set AnimationName[187] = "Flesh - 1" set AnimationName[188] = "Walk Victory - 1" set AnimationName[189] = "Walk Victory - 2" set AnimationName[190] = "Death - 4" set AnimationName[191] = "Stand Victory - 77" set AnimationName[192] = "Stand Victory - 78" set AnimationName[193] = "Stand Victory - 79" set AnimationName[194] = "Stand Victory - 80" set AnimationName[195] = "Stand Victory - 81" set AnimationName[196] = "Stand Victory - 82" set AnimationName[197] = "Stand Victory - 83" set AnimationName[198] = "Stand Victory - 84" set AnimationName[199] = "Stand Victory - 85" set AnimationName[200] = "Stand Victory - 86" set AnimationName[201] = "Walk Victory - 3" set AnimationName[202] = "Stand Victory - 87" set AnimationName[203] = "Stand Victory - 88" set AnimationName[204] = "Stand Victory - 89" set AnimationName[205] = "Stand Victory - 90" set AnimationName[206] = "Stand Victory - 91" set AnimationName[207] = "Stand Victory - 92" set AnimationName[208] = "Stand Victory - 93" set AnimationName[209] = "Flesh - 2" set AnimationName[210] = "Flesh - 3" set AnimationName[211] = "Flesh - 4" set AnimationName[212] = "Flesh - 5" set AnimationName[213] = "Flesh - 6" set AnimationName[214] = "Flesh - 7" set AnimationName[215] = "Flesh - 8" set AnimationName[216] = "Flesh - 9" set AnimationName[217] = "Flesh - 10" set AnimationName[218] = "Flesh - 11" set AnimationName[219] = "Stand Flesh - 1" set AnimationName[220] = "Walk Flesh - 1" set AnimationName[221] = "Death Flesh - 1" set AnimationName[222] = "Attack Flesh - 1" set AnimationName[223] = "Attack Flesh - 2" set AnimationName[224] = "Stand Spin First - 1" set AnimationName[225] = "Attack Spin First - 1" set AnimationName[226] = "Attack Spin First - 2" set AnimationName[227] = "Attack Spin First - 3" set AnimationName[228] = "Attack Spin First - 4" set AnimationName[229] = "Attack Spin First Spell - 1" set AnimationName[230] = "Attack Spin First Spell - 2" set AnimationName[231] = "Attack Spin First Spell Slam - 1" set AnimationName[232] = "Walk Spin Second - 1" set AnimationName[233] = "Stand Spin Second - 1" set AnimationName[234] = "Stand Spin Morph First - 1" set AnimationName[235] = "Stand Spin Morph Second - 1" set AnimationName[236] = "Attack Spin Second - 1" set AnimationName[237] = "Attack Spin Second - 2" set AnimationName[238] = "Attack Second Spell Slam - 1" set AnimationName[239] = "Death Spin Second" set AnimationName[240] = "Stand Victory - 94" set AnimationName[241] = "Stand Victory - 95" set AnimationName[242] = "Stand Victory - 96" set AnimationName[243] = "Stand Victory - 97" set AnimationName[244] = "Stand Victory - 98" set AnimationName[245] = "Walk Victory - 4" set AnimationName[246] = "Stand Victory - 99" set AnimationName[247] = "Stand Victory - 100" set AnimationName[248] = "Stand Victory - 101" set AnimationName[249] = "Stand Victory - 102" set AnimationName[250] = "Stand Victory - 103" set AnimationName[251] = "Stand Victory - 104" set AnimationName[252] = "Stand Victory - 105" set AnimationName[253] = "Stand Victory - 106" set AnimationName[254] = "Stand Victory - 107" // This is to set up the Maximum and Minimum Animation Index Range. set MinIndex[6] = 0 set MaxIndex[6] = 254 // -------------------------------------------- endfunction private function Init takes nothing returns nothing local trigger t = CreateTrigger( ) call TriggerRegisterTimerEvent( t, 0.01, false) call TriggerAddAction( t, function InitActionsFirst ) set t = null endfunction endlibrary
JASS:scope SecondInitialization initializer Init private function InitActionsSecond takes nothing returns nothing // Creating local variables local quest q local integer i = 0 local integer ie = 15 // -------------------------------------------- // Animation Name Changer set Index[7] = 0 set AnimationNameA[0] = "Stand" set AnimationNameA[1] = "Stand - 2" set AnimationNameA[2] = "Stand - 3" set AnimationNameA[3] = "Stand - 4" set AnimationNameA[4] = "Attack" set AnimationNameA[5] = "Stand Work" set AnimationNameA[6] = "Walk" set AnimationNameA[7] = "Death" set AnimationNameA[8] = "Decay Flesh" set AnimationNameA[9] = "Decay Bone" set AnimationNameA[10] = "Stand Ready" set AnimationNameA[11] = "Stand Flesh First" set AnimationNameA[12] = "Stand Flesh Second" // This is to set up the Maximum and Minimum Animation Index Range. set MinIndex[7] = 0 set MaxIndex[7] = 12 // -------------------------------------------- // Helmet Name Changer set Index[8] = 0 set HelmetName[0] = "None" set HelmetName[1] = "Bronze Helmet" set HelmetName[2] = "Metal Helmet" set HelmetName[3] = "Bone Helmet" // -------------------------------------------- // Helmet Choice Changer set HelmetChoice[1] = "war3mapImported\\Bronze Helmet.mdx" set HelmetChoice[2] = "war3mapImported\\White_Helm_Tier3_Portrait.mdx" set HelmetChoice[3] = "war3mapImported\\BoneHelmet.mdx" // This is to set up the Maximum and Minimum Index Range. set MinIndex[8] = 0 set MaxIndex[8] = 3 // -------------------------------------------- // Chest Name Changer set Index[9] = 0 set ChestName[0] = "None" set ChestName[1] = "Bronze Chestplate" set ChestName[2] = "Metal Heavy Armor" set ChestName[3] = "Bone Armor" // -------------------------------------------- // Chest Choice Changer set ChestChoice[1] = "war3mapImported\\Bronze Chestplate.mdx" set ChestChoice[2] = "war3mapImported\\White_HeavyArmour_Tier3_Portrait.mdx" set ChestChoice[3] = "war3mapImported\\BoneArmorWhite2.mdx" // This is to set up the Maximum and Minimum Index Range. set MinIndex[9] = 0 set MaxIndex[9] = 3 // -------------------------------------------- // Sword Name Changer set Index[10] = 0 set SwordName[0] = "None" set SwordName[1] = "Bronze Broadsword" set SwordName[2] = "Ripper Sword" set SwordName[3] = "Bone Axe" // -------------------------------------------- // Sword Choice Changer set SwordChoice[1] = "war3mapImported\\Bronze Broadsword.mdx" set SwordChoice[2] = "war3mapImported\\Ripper Sword.mdx" set SwordChoice[3] = "war3mapImported\\boneaxe9.mdx" // This is to set up the Maximum and Minimum Index Range. set MinIndex[10] = 0 set MaxIndex[10] = 3 // -------------------------------------------- // Shield Name Changer set Index[11] = 0 set ShieldName[0] = "None" set ShieldName[1] = "Bronze Buckler" set ShieldName[2] = "Metal Shield" set ShieldName[3] = "Bone Spiked Shield" // -------------------------------------------- // Shield Choice Changer set ShieldChoice[1] = "war3mapImported\\Bronze Buckler.mdx" set ShieldChoice[2] = "war3mapImported\\Metal_Shield_Tier3_Portrait.mdx" set ShieldChoice[3] = "war3mapImported\\bonespikedshield.mdx" // This is to set up the Maximum and Minimum Index Range. set MinIndex[11] = 0 set MaxIndex[11] = 3 // -------------------------------------------- // Boots Name Changer set Index[12] = 0 set BootsName[0] = "None" set BootsName[1] = "Bronze Boots" set BootsName[2] = "Metal Boots" set BootsName[3] = "N/A" // -------------------------------------------- // Boots Choice Changer set BootsChoiceLeft[1] = "war3mapImported\\Bronze Boots - Left.mdx" set BootsChoiceRight[1] = "war3mapImported\\Bronze Boots.mdx" set BootsChoiceLeft[2] = "war3mapImported\\MetalBoots_T3_byAstarothZion_LeftFoot.mdx" set BootsChoiceRight[2] = "war3mapImported\\MetalBoots_T3_byAstarothZion.mdx" set BootsChoiceLeft[3] = "" set BootsChoiceRight[3] = "" // This is to set up the Maximum and Minimum Index Range. set MinIndex[12] = 0 set MaxIndex[12] = 3 // -------------------------------------------- // Bracers Name Changer set Index[13] = 0 set BracersName[0] = "None" set BracersName[1] = "Bronze Bracers" set BracersName[2] = "Metal Guantlets" set BracersName[3] = "N/A" // -------------------------------------------- // Bracers Choice Changer set BracersChoiceLeft[1] = "war3mapImported\\Bronze Bracer Left.mdx" set BracersChoiceRight[1] = "war3mapImported\\Bronze Bracers.mdx" set BracersChoiceLeft[2] = "war3mapImported\\Guantlet_Metal_Tier3_Portrait.mdx" set BracersChoiceRight[2] = "war3mapImported\\Guantlet_Metal_Tier3.mdx" set BracersChoiceLeft[3] = "" set BracersChoiceRight[3] = "" // This is to set up the Maximum and Minimum Index Range. set MinIndex[13] = 0 set MaxIndex[13] = 3 // -------------------------------------------- // Setting the initial camera set Camera = CreateCameraSetup() set CamSetting[0] = 325.00 set CamSetting[1] = 1900.00 set CamSetting[2] = 0 set CamSetting[3] = 0 set CamSetting[4] = 200.00 set CamSetting[5] = 10000.00 set CamSetting[6] = 350.00 set CamMode = 0 // -------------------------------------------- // Camera Mode Maker set CameraModeName[0] = "Normal" set CameraModeName[1] = "Roll" set CameraModeName[2] = "Zoom" // -------------------------------------------- // Do Not Change This set Actor[0] = CreateUnit(Player(0), 'h001', 130.00, -240.00, 0) set Actor[1] = CreateUnit(Player(0), 'h000', 1540.00, 2280.00, 0) call SetUnitFacing(Actor[0], 180.00) call SetUnitFacing(Actor[1], 180.00) set ControlPanel[0] = CreateUnit(Player(0), 'H002', 1540.00, 2280.00, 0) set ControlPanel[1] = CreateUnit(Player(0), 'H003', 1540.00, 2280.00, 0) set ControlPanel[2] = CreateUnit(Player(0), 'H004', 1540.00, 2280.00, 0) set ControlPanel[3] = CreateUnit(Player(0), 'H005', 1540.00, 2280.00, 0) call SetCameraTargetController(Actor[0], 0, 0, false) call ClearSelection() call SelectUnit(ControlPanel[0], true) set XofActor = GetUnitX(Actor[0]) set YofActor = GetUnitY(Actor[0]) set NewYofActor = YofActor - 350.00 set FinalYofActor = YofActor + 350.00 set TerrainType = GetTerrainType(XofActor, YofActor) set NewTerrainType = GetTerrainType(XofActor, FinalYofActor) set SystemInUse = 0 set ShowBoard = true set LoopingCommand = false set ArrowKey[0] = false set ArrowKey[1] = false set ArrowKey[2] = false set ArrowKey[3] = false // -------------------------------------------- // Camera Setup and Display call CameraSetupSetField(Camera,CAMERA_FIELD_ANGLE_OF_ATTACK,CamSetting[0],0) call CameraSetupSetField(Camera,CAMERA_FIELD_TARGET_DISTANCE,CamSetting[1],0) call CameraSetupSetField(Camera,CAMERA_FIELD_ROLL,CamSetting[2],0) call CameraSetupSetField(Camera,CAMERA_FIELD_ROTATION,CamSetting[3],0) call CameraSetupSetField(Camera,CAMERA_FIELD_ZOFFSET,CamSetting[4],0) call CameraSetupSetField(Camera,CAMERA_FIELD_FARZ,CamSetting[5],0) call CameraSetupSetField(Camera,CAMERA_FIELD_FIELD_OF_VIEW,CamSetting[6],0) set Line[0] = "---------- C a m e r a ----------" set Line[1] = ( "Camera Mode : " + "Normal" ) set Line[2] = ( "Distance : " + R2S(CamSetting[1]) ) set Line[3] = ( "Angle of Attack : " + R2S(CamSetting[0]) ) set Line[4] = ( "Rotation : " + R2S(CamSetting[3]) ) set Line[5] = ( "Cam Height : " + R2S(CamSetting[4]) ) set Line[6] = ( "Roll : " + R2S(CamSetting[2]) ) set Line[7] = "---------- M o d e l s ----------" set Line[8] = ( "Unit Animations : " + ( ( "(" + ( "0" + ") " ) ) + "Stand - 1" ) ) set Line[9] = ( "Weather Effects : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) set Line[10] = ( "Sky Models : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) set Line[11] = ( "Fade Filters : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) set Line[12] = ( "Lightning Effects : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) set Line[13] = ( "Ubersplat Effects : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) set Line[14] = ( "Terrain Tiles : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) // -------------------------------------------- // Multiboard Setup and Display set Board = Board.create(ie,1,true,true) call Board.setTitle("Effects Tester - (Looping is : OFF)") call Board.setAllWidth(0.28) call Board.display(false,true) loop exitwhen i > ie call Board.setText(i,0,Line[i]) if i == 0 then call Board.setIcon(i,0,"ReplaceableTextures\\CommandButtons\\BTN_NormCamera.blp") elseif i == 7 then call Board.setIcon(i,0,"ReplaceableTextures\\CommandButtons\\BTNAltarOfKings.blp") else call Board.setIcon(i,0,"ReplaceableTextures\\PassiveButtons\\PASBTNStatUp.blp") endif set i = i + 1 endloop // -------------------------------------------- // First optional quest set q = CreateQuest() call QuestSetTitle(q, "Effects Tester") call QuestSetDescription(q, "You can now make animations loop with the following commands; -loop ### (Loops every x amount of seconds entered), -loop off You can jump through all of the different numbers by using these commands; -animation ###, -weather ##, -sky ##, -filter ##, -lightning ##, -ubersplat ##, -terrain # You can also switch to the attachment tester and back at any time simply by typing; -attachments, -effects (effects tester being the initial multiboard)") call QuestSetIconPath(q, "ReplaceableTextures\\CommandButtons\\BTNSell.blp") call QuestSetRequired(q, false) call QuestSetDiscovered(q, true) call QuestSetCompleted(q, false) // Nulling quest variable set q = null // -------------------------------------------- // Second optional quest set q = CreateQuest() call QuestSetTitle(q, "Attachments Tester") call QuestSetDescription(q, "You can now make animations loop with the following commands; -loop ### (Loops every x amount of seconds entered), -loop off You can jump through all of the different numbers by using these commands; -animation #, -helmet #, -chest #, -sword #, -shield #, -boots #, -bracers # You can also switch to the attachment tester and back at any time simply by typing; -attachments, -effects (effects tester being the initial multiboard)") call QuestSetIconPath(q, "ReplaceableTextures\\CommandButtons\\BTNDustOfAppearance.blp") call QuestSetRequired(q, false) call QuestSetDiscovered(q, true) call QuestSetCompleted(q, false) // Nulling quest variable set q = null // -------------------------------------------- // First required quest set q = CreateQuest() call QuestSetTitle(q, "Credits") call QuestSetDescription(q, "-Blood Raven (Bronze Armor Pack) -InfernalTater (Bone Equipment) -Astaroth Zion (Attachment Pack) -IcemanBo (for his help with coding) -Mckill2009 (BoardEx (multiboard wrapper)) -Graber (for his Villager 255 Animations) -Supermj (for his White Grid) -Rysnt11 (for modifying the white grid (added Alpha)) -Razor21 a.k.a gekigengar (for making the map) -Darkdeathknight (for his camera icon pack) -CHA_Owner (for greatly improving this system)") call QuestSetIconPath(q, "ReplaceableTextures\\CommandButtons\\BTNSelectHeroOn.blp") call QuestSetRequired(q, true) call QuestSetDiscovered(q, true) call QuestSetCompleted(q, false) // Nulling quest variable set q = null // -------------------------------------------- // Other settings and setup call SetUnitAnimationByIndex(Actor[0], Index[6]) call SetFloatGameState(GAME_STATE_TIME_OF_DAY, 12.00) call SuspendTimeOfDay(true) set bj_useDawnDuskSounds = false call FogEnable(false) call FogMaskEnable(false) // -------------------------------------------- endfunction function ResetMultiboard takes nothing returns nothing if SystemInUse == 0 then // Reset Animation set Index[6] = 0 call SetUnitAnimationByIndex(Actor[0], Index[6]) set Line[8] = ( "Unit Animations : " + ( ( "(" + ( "0" + ") " ) ) + "Stand - 1" ) ) call Board.setText(8,0,Line[8]) // -------------------------------------------- // Reset Weather set Index[5] = 0 call RemoveWeatherEffect( bj_lastCreatedWeatherEffect ) set Line[9] = ( "Weather Effects : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) call Board.setText(9,0,Line[9]) // -------------------------------------------- // Reset Sky set Index[4] = 0 call SetSkyModel( null ) set Line[10] = ( "Sky Models : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) call Board.setText(10,0,Line[10]) // -------------------------------------------- // Reset Fade Filter set Index[3] = 0 if (bj_cineFadeContinueTimer != null) then call DestroyTimer(bj_cineFadeContinueTimer) elseif (bj_cineFadeFinishTimer != null) then call DestroyTimer(bj_cineFadeFinishTimer) endif set bj_cineFadeFinishTimer = null call DisplayCineFilter(false) set Line[11] = ( "Fade Filters : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) call Board.setText(11,0,Line[11]) // -------------------------------------------- // Reset Lightning set Index[2] = 0 call DestroyLightning( TempLightning ) set Line[12] = ( "Lightning Effects : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) call Board.setText(12,0,Line[12]) // -------------------------------------------- // Reset Ubersplat set Index[1] = 0 call DestroyUbersplat( bj_lastCreatedUbersplat ) set Line[13] = ( "Ubersplat Effects : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) call Board.setText(13,0,Line[13]) // -------------------------------------------- // Reset Terrain set Index[0] = 0 call SetTerrainType(XofActor, NewYofActor, TerrainType, 0, 1, 0) set Line[14] = ( "Terrain Tiles : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) call Board.setText(14,0,Line[14]) // -------------------------------------------- elseif SystemInUse == 1 then // Reset Animation set Index[7] = 0 call SetUnitAnimationByIndex(Actor[1], Index[7]) set Line[8] = ( "Unit Animations : " + ( ( "(" + ( "0" + ") " ) ) + "Stand" ) ) call Board.setText(8,0,Line[8]) // -------------------------------------------- // Reset Helmet set Index[8] = 0 call DestroyEffect(TempEffect[0]) set Line[9] = ( "Helmet Models : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) call Board.setText(9,0,Line[9]) // -------------------------------------------- // Reset Chest set Index[9] = 0 call DestroyEffect(TempEffect[1]) set Line[10] = ( "Chest Models : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) call Board.setText(10,0,Line[10]) // -------------------------------------------- // Reset Sword set Index[10] = 0 call DestroyEffect(TempEffect[2]) set Line[11] = ( "Sword Models : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) call Board.setText(11,0,Line[11]) // -------------------------------------------- // Reset Shield set Index[11] = 0 call DestroyEffect(TempEffect[3]) set Line[12] = ( "Shield Models : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) call Board.setText(12,0,Line[12]) // -------------------------------------------- // Reset Boots set Index[12] = 0 call DestroyEffect(TempEffect[4]) call DestroyEffect(TempEffect[5]) set Line[13] = ( "Boot Models : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) call Board.setText(13,0,Line[13]) // -------------------------------------------- // Reset Bracers set Index[13] = 0 call DestroyEffect(TempEffect[6]) call DestroyEffect(TempEffect[7]) set Line[14] = ( "Bracer Models : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) call Board.setText(14,0,Line[14]) // -------------------------------------------- endif endfunction private function FinishFade takes nothing returns nothing set bj_cineFadeFinishTimer = null call DisplayCineFilter(false) endfunction // call RunFade( fade out/in, texture ) function RunFade takes integer f, string s returns nothing if (bj_cineFadeContinueTimer != null) then call DestroyTimer(bj_cineFadeContinueTimer) elseif (bj_cineFadeFinishTimer != null) then call DestroyTimer(bj_cineFadeFinishTimer) endif if (f == bj_CINEFADETYPE_FADEOUT) then // Fade out to the requested color. call SetCineFilterTexture(s) call SetCineFilterBlendMode(BLEND_MODE_BLEND) call SetCineFilterTexMapFlags(TEXMAP_FLAG_NONE) call SetCineFilterStartUV(0, 0, 1, 1) call SetCineFilterEndUV(0, 0, 1, 1) call SetCineFilterStartColor(255, 255, 255, 0) call SetCineFilterEndColor(255, 255, 255, 255) call SetCineFilterDuration(2.00) call DisplayCineFilter(true) elseif (f == bj_CINEFADETYPE_FADEIN) then // Fade in from the requested color. call SetCineFilterTexture(s) call SetCineFilterBlendMode(BLEND_MODE_BLEND) call SetCineFilterTexMapFlags(TEXMAP_FLAG_NONE) call SetCineFilterStartUV(0, 0, 1, 1) call SetCineFilterEndUV(0, 0, 1, 1) call SetCineFilterStartColor(255, 255, 255, 255) call SetCineFilterEndColor(255, 255, 255, 0) call SetCineFilterDuration(2.00) call DisplayCineFilter(true) set bj_cineFadeFinishTimer = CreateTimer() call TimerStart(bj_cineFadeFinishTimer, 1.00, false, function FinishFade) endif endfunction private function Init takes nothing returns nothing local trigger t = CreateTrigger( ) call TriggerRegisterTimerEvent( t, 0.02, false) call TriggerAddAction( t, function InitActionsSecond ) set t = null endfunction endscope
JASS:scope CameraSystem initializer Init private function CameraActions takes nothing returns nothing // Creating local variables local integer i = 0 // -------------------------------------------- if ArrowKey[0] == true then if CamMode == 0 then set CamSetting[0] = ( CamSetting[0] - 1 ) if CamSetting[0] < 0.00 then set CamSetting[0] = ( CamSetting[0] + 360.00 ) endif set Line[3] = ( "Angle of Attack : " + R2S(CamSetting[0]) ) call Board.setText(3,0,Line[3]) elseif CamMode == 1 then set CamSetting[4] = ( CamSetting[4] + 3.00 ) if CamSetting[4] >= 4000.00 then set CamSetting[4] = 4000.00 endif set Line[5] = ( "Cam Height : " + R2S(CamSetting[4]) ) call Board.setText(5,0,Line[5]) elseif CamMode == 2 then set CamSetting[1] = ( CamSetting[1] - 30.00 ) if CamSetting[1] <= 300.00 then set CamSetting[1] = 300.00 endif set Line[2] = ( "Distance : " + R2S(CamSetting[1]) ) call Board.setText(2,0,Line[2]) endif endif if ArrowKey[1] == true then if CamMode == 0 then set CamSetting[0] = ( CamSetting[0] + 1 ) if CamSetting[0] >= 360.00 then set CamSetting[0] = ( CamSetting[0] - 360.00 ) endif set Line[3] = ( "Angle of Attack : " + R2S(CamSetting[0]) ) call Board.setText(3,0,Line[3]) elseif CamMode == 1 then set CamSetting[4] = ( CamSetting[4] - 3.00 ) if CamSetting[4] <= -2000.00 then set CamSetting[4] = -2000.00 endif set Line[5] = ( "Cam Height : " + R2S(CamSetting[4]) ) call Board.setText(5,0,Line[5]) elseif CamMode == 2 then set CamSetting[1] = ( CamSetting[1] + 30.00 ) if CamSetting[1] >= 3000.00 then set CamSetting[1] = 3000.00 endif set Line[2] = ( "Distance : " + R2S(CamSetting[1]) ) call Board.setText(2,0,Line[2]) endif endif if ArrowKey[2] == true then if CamMode == 0 then set CamSetting[3] = ( CamSetting[3] - 1 ) if CamSetting[3] < 0.00 then set CamSetting[3] = ( CamSetting[3] + 360.00 ) endif set Line[4] = ( "Rotation : " + R2S(CamSetting[3]) ) call Board.setText(4,0,Line[4]) elseif CamMode == 1 then set CamSetting[2] = ( CamSetting[2] - 1 ) if CamSetting[2] < 0.00 then set CamSetting[2] = ( CamSetting[2] + 360.00 ) endif set Line[6] = ( "Roll : " + R2S(CamSetting[2]) ) call Board.setText(6,0,Line[6]) elseif CamMode == 2 then set CamSetting[1] = 300.00 set Line[2] = ( "Distance : " + R2S(CamSetting[1]) ) call Board.setText(2,0,Line[2]) endif endif if ArrowKey[3] == true then if CamMode == 0 then set CamSetting[3] = ( CamSetting[3] + 1 ) if CamSetting[3] >= 360.00 then set CamSetting[3] = ( CamSetting[3] - 360.00 ) endif set Line[4] = ( "Rotation : " + R2S(CamSetting[3]) ) call Board.setText(4,0,Line[4]) elseif CamMode == 1 then set CamSetting[2] = ( CamSetting[2] + 1 ) if CamSetting[2] >= 360.00 then set CamSetting[2] = ( CamSetting[2] - 360.00 ) endif set Line[6] = ( "Roll : " + R2S(CamSetting[2]) ) call Board.setText(6,0,Line[6]) elseif CamMode == 2 then set CamSetting[1] = 3000.00 set Line[2] = ( "Distance : " + R2S(CamSetting[1]) ) call Board.setText(2,0,Line[2]) endif endif call SetCameraField(CAMERA_FIELD_FARZ, CamSetting[5], 0) call SetCameraField(CAMERA_FIELD_TARGET_DISTANCE, CamSetting[1], 0) call SetCameraField(CAMERA_FIELD_ANGLE_OF_ATTACK, CamSetting[0], 0) call SetCameraField(CAMERA_FIELD_ROTATION, CamSetting[3], 0) call SetCameraField(CAMERA_FIELD_ZOFFSET, CamSetting[4], 0) call SetCameraField(CAMERA_FIELD_ROLL, CamSetting[2], 0) loop exitwhen i > 3 if (GetUnitAbilityLevel(ControlPanel[i], 'BEim') > 0) == true then set CamSetting[3] = ( CamSetting[3] + 1.00 ) if CamSetting[3] >= 360.00 then set CamSetting[3] = ( CamSetting[3] - 360.00 ) endif set Line[4] = ( "Rotation : " + R2S(CamSetting[3]) ) call Board.setText(4,0,Line[4]) endif set i = i + 1 endloop endfunction private function Init takes nothing returns nothing local trigger t = CreateTrigger( ) call TriggerRegisterTimerEvent( t, 0.03, true) call TriggerAddAction( t, function CameraActions ) set t = null endfunction endscope
JASS:scope CameraController initializer Init private function ControllerActions takes nothing returns nothing // Creating local variables local eventid id = GetTriggerEventId() // -------------------------------------------- // Up Arrow Key Pressed if id == EVENT_PLAYER_ARROW_UP_DOWN then set ArrowKey[0] = true // Up Arrow Key Released elseif id == EVENT_PLAYER_ARROW_UP_UP then set ArrowKey[0] = false // Down Arrow Key Pressed elseif id == EVENT_PLAYER_ARROW_DOWN_DOWN then set ArrowKey[1] = true // Down Arrow Key Released elseif id == EVENT_PLAYER_ARROW_DOWN_UP then set ArrowKey[1] = false // Left Arrow Key Pressed elseif id == EVENT_PLAYER_ARROW_LEFT_DOWN then set ArrowKey[2] = true // Left Arrow Key Released elseif id == EVENT_PLAYER_ARROW_LEFT_UP then set ArrowKey[2] = false // Right Arrow Key Pressed elseif id == EVENT_PLAYER_ARROW_RIGHT_DOWN then set ArrowKey[3] = true // Right Arrow Key Released elseif id == EVENT_PLAYER_ARROW_RIGHT_UP then set ArrowKey[3] = false // Esc Key Used elseif id == EVENT_PLAYER_END_CINEMATIC then // Camera Setup and Display set CamSetting[0] = CameraSetupGetField(Camera, CAMERA_FIELD_ANGLE_OF_ATTACK) set CamSetting[1] = CameraSetupGetField(Camera, CAMERA_FIELD_TARGET_DISTANCE) set CamSetting[2] = CameraSetupGetField(Camera, CAMERA_FIELD_ROLL) set CamSetting[3] = CameraSetupGetField(Camera, CAMERA_FIELD_ROTATION) set CamSetting[4] = CameraSetupGetField(Camera, CAMERA_FIELD_ZOFFSET) set CamSetting[5] = CameraSetupGetField(Camera, CAMERA_FIELD_FARZ) set CamMode = 0 set Line[1] = ( "Camera Mode : " + "Normal" ) set Line[2] = ( "Distance : " + R2S(CamSetting[1]) ) set Line[3] = ( "Angle of Attack : " + R2S(CamSetting[0]) ) set Line[4] = ( "Rotation : " + R2S(CamSetting[3]) ) set Line[5] = ( "Cam Height : " + R2S(CamSetting[4]) ) set Line[6] = ( "Roll : " + R2S(CamSetting[2]) ) call Board.setText(1,0,Line[1]) call Board.setText(2,0,Line[2]) call Board.setText(3,0,Line[3]) call Board.setText(4,0,Line[4]) call Board.setText(5,0,Line[5]) call Board.setText(6,0,Line[6]) // -------------------------------------------- endif // Nulling the eventid variable set id = null endfunction private function Init takes nothing returns nothing local trigger t = CreateTrigger( ) call TriggerRegisterPlayerEvent( t, Player(0), EVENT_PLAYER_ARROW_UP_DOWN ) call TriggerRegisterPlayerEvent( t, Player(0), EVENT_PLAYER_ARROW_UP_UP ) call TriggerRegisterPlayerEvent( t, Player(0), EVENT_PLAYER_ARROW_DOWN_DOWN ) call TriggerRegisterPlayerEvent( t, Player(0), EVENT_PLAYER_ARROW_DOWN_UP ) call TriggerRegisterPlayerEvent( t, Player(0), EVENT_PLAYER_ARROW_RIGHT_DOWN ) call TriggerRegisterPlayerEvent( t, Player(0), EVENT_PLAYER_ARROW_RIGHT_UP ) call TriggerRegisterPlayerEvent( t, Player(0), EVENT_PLAYER_ARROW_LEFT_DOWN ) call TriggerRegisterPlayerEvent( t, Player(0), EVENT_PLAYER_ARROW_LEFT_UP ) call TriggerRegisterPlayerEvent( t, Player(0), EVENT_PLAYER_END_CINEMATIC) call TriggerAddAction( t, function ControllerActions ) set t = null endfunction endscope
JASS:scope SkippingNumbers initializer Init private function LoopAnimation takes nothing returns nothing if SystemInUse == 0 then call SetUnitAnimationByIndex( Actor[0], Index[6] ) elseif SystemInUse == 1 then call SetUnitAnimationByIndex( Actor[1], Index[7] ) endif endfunction private function SkippingActions takes nothing returns nothing // Creating local variables local string s = GetEventPlayerChatString() local integer a = StringLength(s) local integer i = 0 local integer ie = 15 // -------------------------------------------- if SubString(s, 0, 11) == "-animation " then if SystemInUse == 0 then set Index[6] = S2I(SubString(s, 11, a)) if Index[6] > MaxIndex[6] then set Index[6] = MinIndex[6] elseif Index[6] < MinIndex[6] then set Index[6] = MaxIndex[6] endif set Line[8] = ( "Unit Animations : " + ( ( "(" + ( I2S(Index[6]) + ") " ) ) + AnimationName[Index[6]] ) ) call SetUnitAnimationByIndex(Actor[0], Index[6]) call Board.setText(8,0,Line[8]) else set Index[7] = S2I(SubString(s, 11, a)) if Index[7] > MaxIndex[7] then set Index[7] = MinIndex[7] elseif Index[7] < MinIndex[7] then set Index[7] = MaxIndex[7] endif set Line[8] = ( "Unit Animations : " + ( ( "(" + ( I2S(Index[7]) + ") " ) ) + AnimationNameA[Index[7]] ) ) call SetUnitAnimationByIndex(Actor[1], Index[7]) call Board.setText(8,0,Line[8]) endif elseif SubString( s, 0, 6) == "-loop " and LoopingCommand == false then set LoopingCommand = true if SystemInUse == 0 then call Board.setTitle("Effects Tester - (Looping is : ON)") elseif SystemInUse == 1 then call Board.setTitle("Attachments Tester - (Looping is : ON)") endif set Looping = CreateTrigger() call TriggerRegisterTimerEvent( Looping, S2R(SubString( s, 6, a)), true ) call TriggerAddAction( Looping, function LoopAnimation ) elseif s == "-loop off" and LoopingCommand == true then set LoopingCommand = false if SystemInUse == 0 then call Board.setTitle("Effects Tester - (Looping is : OFF)") elseif SystemInUse == 1 then call Board.setTitle("Attachments Tester - (Looping is : OFF)") endif call DestroyTrigger( Looping ) set Looping = null elseif SystemInUse == 0 then if SubString(s, 0, 9) == "-weather " then set Index[5] = S2I(SubString(s, 9, a)) if Index[5] > MaxIndex[5] then set Index[5] = MinIndex[5] elseif Index[5] < MinIndex[5] then set Index[5] = MaxIndex[5] endif call RemoveWeatherEffect( bj_lastCreatedWeatherEffect ) if Index[5] != MinIndex[5] then set bj_lastCreatedWeatherEffect = AddWeatherEffect(gg_rct_Map_Area, WeatherChoice[Index[5]]) call EnableWeatherEffect( bj_lastCreatedWeatherEffect, true ) endif set Line[9] = ( "Weather Effects : " + ( ( "(" + ( I2S(Index[5]) + ") " ) ) + WeatherName[Index[5]] ) ) call Board.setText(9,0,Line[9]) elseif SubString(s, 0, 5) == "-sky " then set Index[4] = S2I(SubString(s, 5, a)) if Index[4] > MaxIndex[4] then set Index[4] = MinIndex[4] elseif Index[4] < MinIndex[4] then set Index[4] = MaxIndex[4] endif if Index[4] != MinIndex[4] then call SetSkyModel(SkyChoice[Index[4]]) else call SetSkyModel( null ) endif set Line[10] = ( "Sky Models : " + ( ( "(" + ( I2S(Index[4]) + ") " ) ) + SkyName[Index[4]] ) ) call Board.setText(10,0,Line[10]) elseif SubString(s, 0, 8) == "-filter " then set Index[3] = S2I(SubString(s, 8, a)) if Index[3] > MaxIndex[3] then set Index[3] = MinIndex[3] elseif Index[3] < MinIndex[3] then set Index[3] = MaxIndex[3] endif if (bj_cineFadeContinueTimer != null) then call DestroyTimer(bj_cineFadeContinueTimer) elseif (bj_cineFadeFinishTimer != null) then call DestroyTimer(bj_cineFadeFinishTimer) endif set bj_cineFadeFinishTimer = null call DisplayCineFilter(false) if Index[3] != MinIndex[3] then call RunFade( 1, FadeChoice[Index[3]] ) endif set Line[11] = ( "Fade Filters : " + ( ( "(" + ( I2S(Index[3]) + ") " ) ) + FadeName[Index[3]] ) ) call Board.setText(11,0,Line[11]) elseif SubString(s, 0, 11) == "-lightning " then set Index[2] = S2I(SubString(s, 11, a)) if Index[2] > MaxIndex[2] then set Index[2] = MinIndex[2] elseif Index[2] < MinIndex[2] then set Index[2] = MaxIndex[2] endif call DestroyLightning( TempLightning ) if Index[2] != MinIndex[2] then set TempLightning = AddLightningEx(LightningChoice[Index[2]], true, 128.500, -12.000, 400, 128.500, -516.00, 400) endif set Line[12] = ( "Lightning Effects : " + ( ( "(" + ( I2S(Index[2]) + ") " ) ) + LightningName[Index[2]] ) ) call Board.setText(12,0,Line[12]) elseif SubString(s, 0, 11) == "-ubersplat " then set Index[1] = S2I(SubString(s, 11, a)) if Index[1] > MaxIndex[1] then set Index[1] = MinIndex[1] elseif Index[1] < MinIndex[1] then set Index[1] = MaxIndex[1] endif call DestroyUbersplat( bj_lastCreatedUbersplat ) if Index[1] != MinIndex[1] then set bj_lastCreatedUbersplat = CreateUbersplat(XofActor, FinalYofActor, UbersplatChoice[Index[1]], 255, 255, 255, 255, true, true) call SetUbersplatRenderAlways( bj_lastCreatedUbersplat, true ) call ShowUbersplat( bj_lastCreatedUbersplat, true ) endif set Line[13] = ( "Ubersplat Effects : " + ( ( "(" + ( I2S(Index[1]) + ") " ) ) + UbersplatName[Index[1]] ) ) call Board.setText(13,0,Line[13]) elseif SubString(s, 0, 9) == "-terrain " then set Index[0] = S2I(SubString(s, 9, a)) if Index[0] > MaxIndex[0] then set Index[0] = MinIndex[0] elseif Index[0] < MinIndex[0] then set Index[0] = MaxIndex[0] endif if Index[0] != MinIndex[0] then call SetTerrainType( XofActor, NewYofActor, TerrainChoice[Index[0]], 0, 1, 0 ) else call SetTerrainType( XofActor, NewYofActor, NewTerrainType, 0, 1, 0 ) endif set Line[14] = ( "Terrain Tiles : " + ( ( "(" + ( I2S(Index[0]) + ") " ) ) + TerrainName[Index[0]] ) ) call Board.setText(14,0,Line[14]) elseif s == "-attachments" then // Hiding previous multiboard and control panels call ResetMultiboard() call SetUnitPosition(Actor[0], 1540.00, 2280.00) set SystemInUse = 1 call SetUnitPosition(Actor[1], 130.00, -240.00) call SetCameraTargetController(Actor[1], 0, 0, false) call ClearSelection() call SelectUnit(ControlPanel[2], true) // -------------------------------------------- // Camera Setup and Display set CamSetting[0] = CameraSetupGetField(Camera, CAMERA_FIELD_ANGLE_OF_ATTACK) set CamSetting[1] = CameraSetupGetField(Camera, CAMERA_FIELD_TARGET_DISTANCE) set CamSetting[2] = CameraSetupGetField(Camera, CAMERA_FIELD_ROLL) set CamSetting[3] = CameraSetupGetField(Camera, CAMERA_FIELD_ROTATION) set CamSetting[4] = CameraSetupGetField(Camera, CAMERA_FIELD_ZOFFSET) set CamSetting[5] = CameraSetupGetField(Camera, CAMERA_FIELD_FARZ) set CamMode = 0 set Line[0] = "---------- C a m e r a ----------" set Line[1] = ( "Camera Mode : " + "Normal" ) set Line[2] = ( "Distance : " + R2S(CamSetting[1]) ) set Line[3] = ( "Angle of Attack : " + R2S(CamSetting[0]) ) set Line[4] = ( "Rotation : " + R2S(CamSetting[3]) ) set Line[5] = ( "Cam Height : " + R2S(CamSetting[4]) ) set Line[6] = ( "Roll : " + R2S(CamSetting[2]) ) set Line[7] = "---------- M o d e l s ----------" set Line[8] = ( "Unit Animations : " + ( ( "(" + ( "0" + ") " ) ) + "Stand" ) ) set Line[9] = ( "Helmet Models : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) set Line[10] = ( "Chest Models : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) set Line[11] = ( "Sword Models : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) set Line[12] = ( "Shield Models : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) set Line[13] = ( "Boot Models : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) set Line[14] = ( "Bracer Models : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) // -------------------------------------------- // Multiboard Setup and Display call Board.setTitle("Attachments Tester - (Looping is : OFF)") call Board.setAllWidth(0.28) loop exitwhen i > ie call Board.setText(i,0,Line[i]) if i == 0 then call Board.setIcon(i,0,"ReplaceableTextures\\CommandButtons\\BTN_NormCamera.blp") elseif i == 7 then call Board.setIcon(i,0,"ReplaceableTextures\\CommandButtons\\BTNAltarOfKings.blp") else call Board.setIcon(i,0,"ReplaceableTextures\\PassiveButtons\\PASBTNStatUp.blp") endif set i = i + 1 endloop // -------------------------------------------- endif elseif SystemInUse == 1 then if SubString(s, 0, 8) == "-helmet " then set Index[8] = S2I(SubString(s, 8, a)) if Index[8] > MaxIndex[8] then set Index[8] = MinIndex[8] elseif Index[8] < MinIndex[8] then set Index[8] = MaxIndex[8] endif call DestroyEffect(TempEffect[0]) if Index[8] != MinIndex[8] then set TempEffect[0] = AddSpecialEffectTarget(HelmetChoice[Index[8]], Actor[1], "head") endif set Line[9] = ( "Helmet Models : " + ( ( "(" + ( I2S(Index[8]) + ") " ) ) + HelmetName[Index[8]] ) ) call Board.setText(9,0,Line[9]) elseif SubString(s, 0, 7) == "-chest " then set Index[9] = S2I(SubString(s, 7, a)) if Index[9] > MaxIndex[9] then set Index[9] = MinIndex[9] elseif Index[9] < MinIndex[9] then set Index[9] = MaxIndex[9] endif call DestroyEffect(TempEffect[1]) if Index[9] != MinIndex[9] then set TempEffect[1] = AddSpecialEffectTarget(ChestChoice[Index[9]], Actor[1], "chest") endif set Line[10] = ( "Chest Models : " + ( ( "(" + ( I2S(Index[9]) + ") " ) ) + ChestName[Index[9]] ) ) call Board.setText(10,0,Line[10]) elseif SubString(s, 0, 7) == "-sword " then set Index[10] = S2I(SubString(s, 7, a)) if Index[10] > MaxIndex[10] then set Index[10] = MinIndex[10] elseif Index[10] < MinIndex[10] then set Index[10] = MaxIndex[10] endif call DestroyEffect(TempEffect[2]) if Index[10] != MinIndex[10] then set TempEffect[2] = AddSpecialEffectTarget(SwordChoice[Index[10]], Actor[1], "hand, right") endif set Line[11] = ( "Sword Models : " + ( ( "(" + ( I2S(Index[10]) + ") " ) ) + SwordName[Index[10]] ) ) call Board.setText(11,0,Line[11]) elseif SubString(s, 0, 8) == "-shield " then set Index[11] = S2I(SubString(s, 8, a)) if Index[11] > MaxIndex[11] then set Index[11] = MinIndex[11] elseif Index[11] < MinIndex[11] then set Index[11] = MaxIndex[11] endif call DestroyEffect(TempEffect[3]) if Index[11] != MinIndex[11] then set TempEffect[3] = AddSpecialEffectTarget(ShieldChoice[Index[11]], Actor[1], "hand, left") endif set Line[12] = ( "Shield Models : " + ( ( "(" + ( I2S(Index[11]) + ") " ) ) + ShieldName[Index[11]] ) ) call Board.setText(12,0,Line[12]) elseif SubString(s, 0, 7) == "-boots " then set Index[12] = S2I(SubString(s, 7, a)) if Index[12] > MaxIndex[12] then set Index[12] = MinIndex[12] elseif Index[12] < MinIndex[12] then set Index[12] = MaxIndex[12] endif call DestroyEffect(TempEffect[4]) call DestroyEffect(TempEffect[5]) if Index[12] != MinIndex[12] then set TempEffect[4] = AddSpecialEffectTarget(BootsChoiceLeft[Index[12]], Actor[1], "foot, left") set TempEffect[5] = AddSpecialEffectTarget(BootsChoiceRight[Index[12]], Actor[1], "foot, right") endif set Line[13] = ( "Boot Models : " + ( ( "(" + ( I2S(Index[12]) + ") " ) ) + BootsName[Index[12]] ) ) call Board.setText(13,0,Line[13]) elseif SubString(s, 0, 9) == "-bracers " then set Index[13] = S2I(SubString(s, 9, a)) if Index[13] > MaxIndex[13] then set Index[13] = MinIndex[13] elseif Index[13] < MinIndex[13] then set Index[13] = MaxIndex[13] endif call DestroyEffect(TempEffect[6]) call DestroyEffect(TempEffect[7]) if Index[13] != MinIndex[13] then set TempEffect[6] = AddSpecialEffectTarget(BracersChoiceLeft[Index[13]], Actor[1], "hand, left") set TempEffect[7] = AddSpecialEffectTarget(BracersChoiceRight[Index[13]], Actor[1], "hand, right") endif set Line[14] = ( "Bracer Models : " + ( ( "(" + ( I2S(Index[13]) + ") " ) ) + BracersName[Index[13]] ) ) call Board.setText(14,0,Line[14]) elseif s == "-effects" then // Hiding previous multiboard and control panels call ResetMultiboard() call SetUnitPosition(Actor[1], 1540.00, 2280.00) set SystemInUse = 0 call SetUnitPosition(Actor[0], 130.00, -240.00) call SetCameraTargetController(Actor[0], 0, 0, false) call ClearSelection() call SelectUnit(ControlPanel[0], true) // -------------------------------------------- // Camera Setup and Display set CamSetting[0] = CameraSetupGetField(Camera, CAMERA_FIELD_ANGLE_OF_ATTACK) set CamSetting[1] = CameraSetupGetField(Camera, CAMERA_FIELD_TARGET_DISTANCE) set CamSetting[2] = CameraSetupGetField(Camera, CAMERA_FIELD_ROLL) set CamSetting[3] = CameraSetupGetField(Camera, CAMERA_FIELD_ROTATION) set CamSetting[4] = CameraSetupGetField(Camera, CAMERA_FIELD_ZOFFSET) set CamSetting[5] = CameraSetupGetField(Camera, CAMERA_FIELD_FARZ) set CamMode = 0 set Line[0] = "---------- C a m e r a ----------" set Line[1] = ( "Camera Mode : " + "Normal" ) set Line[2] = ( "Distance : " + R2S(CamSetting[1]) ) set Line[3] = ( "Angle of Attack : " + R2S(CamSetting[0]) ) set Line[4] = ( "Rotation : " + R2S(CamSetting[3]) ) set Line[5] = ( "Cam Height : " + R2S(CamSetting[4]) ) set Line[6] = ( "Roll : " + R2S(CamSetting[2]) ) set Line[7] = "---------- M o d e l s ----------" set Line[8] = ( "Unit Animations : " + ( ( "(" + ( "0" + ") " ) ) + "Stand - 1" ) ) set Line[9] = ( "Weather Effects : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) set Line[10] = ( "Sky Models : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) set Line[11] = ( "Fade Filters : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) set Line[12] = ( "Lightning Effects : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) set Line[13] = ( "Ubersplat Effects : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) set Line[14] = ( "Terrain Tiles : " + ( ( "(" + ( "0" + ") " ) ) + "None" ) ) // -------------------------------------------- // Multiboard Setup and Display call Board.setTitle("Effects Tester - (Looping is : OFF)") call Board.setAllWidth(0.28) loop exitwhen i > ie call Board.setText(i,0,Line[i]) if i == 0 then call Board.setIcon(i,0,"ReplaceableTextures\\CommandButtons\\BTN_NormCamera.blp") elseif i == 7 then call Board.setIcon(i,0,"ReplaceableTextures\\CommandButtons\\BTNAltarOfKings.blp") else call Board.setIcon(i,0,"ReplaceableTextures\\PassiveButtons\\PASBTNStatUp.blp") endif set i = i + 1 endloop // -------------------------------------------- endif endif // Nulling the string variable set s = null // -------------------------------------------- endfunction private function Init takes nothing returns nothing local trigger t = CreateTrigger( ) call TriggerRegisterPlayerChatEvent( t, Player(0), "", false ) call TriggerAddAction( t, function SkippingActions ) set t = null endfunction endscope
JASS:scope ControlPanel initializer Init private function ControlPanelActions takes nothing returns nothing // Creating local variables local unit u = GetTriggerUnit() local integer uid = GetUnitTypeId(u) local integer aid = GetSpellAbilityId() // -------------------------------------------- // Why Begins Casting an Ability? So that you could browse between animations a lot faster. call IssueImmediateOrder( u, "stop" ) // Whats with the Stop? to prevent the Control Panel from casting anything. if aid == 'A004' then set CamMode = ( CamMode + 1 ) if CamMode > 2 then set CamMode = 0 endif set Line[1] = ( "Camera Mode : " + CameraModeName[CamMode] ) call Board.setText(1,0,Line[1]) elseif aid == 'A001' or aid == 'A000' then if uid == 'H002' or uid == 'H003' then if aid == 'A001' then set Index[6] = ( Index[6] + 1 ) else set Index[6] = ( Index[6] - 1 ) endif if Index[6] > MaxIndex[6] then set Index[6] = MinIndex[6] elseif Index[6] < MinIndex[6] then set Index[6] = MaxIndex[6] endif set Line[8] = ( "Unit Animations : " + ( ( "(" + ( I2S(Index[6]) + ") " ) ) + AnimationName[Index[6]] ) ) call SetUnitAnimationByIndex(Actor[0], Index[6]) call Board.setText(8,0,Line[8]) else if aid == 'A001' then set Index[7] = ( Index[7] + 1 ) else set Index[7] = ( Index[7] - 1 ) endif if Index[7] > MaxIndex[7] then set Index[7] = MinIndex[7] elseif Index[7] < MinIndex[7] then set Index[7] = MaxIndex[7] endif set Line[8] = ( "Unit Animations : " + ( ( "(" + ( I2S(Index[7]) + ") " ) ) + AnimationNameA[Index[7]] ) ) call SetUnitAnimationByIndex(Actor[1], Index[7]) call Board.setText(8,0,Line[8]) endif elseif aid == 'A006' or aid == 'A007' then if aid == 'A006' then set Index[5] = ( Index[5] + 1 ) else set Index[5] = ( Index[5] - 1 ) endif if Index[5] > MaxIndex[5] then set Index[5] = MinIndex[5] elseif Index[5] < MinIndex[5] then set Index[5] = MaxIndex[5] endif call RemoveWeatherEffect( bj_lastCreatedWeatherEffect ) if Index[5] != MinIndex[5] then set bj_lastCreatedWeatherEffect = AddWeatherEffect(gg_rct_Map_Area, WeatherChoice[Index[5]]) call EnableWeatherEffect( bj_lastCreatedWeatherEffect, true ) endif set Line[9] = ( "Weather Effects : " + ( ( "(" + ( I2S(Index[5]) + ") " ) ) + WeatherName[Index[5]] ) ) call Board.setText(9,0,Line[9]) elseif aid == 'A00B' or aid == 'A00A' then if aid == 'A00B' then set Index[4] = ( Index[4] + 1 ) else set Index[4] = ( Index[4] - 1 ) endif if Index[4] > MaxIndex[4] then set Index[4] = MinIndex[4] elseif Index[4] < MinIndex[4] then set Index[4] = MaxIndex[4] endif if Index[4] != MinIndex[4] then call SetSkyModel(SkyChoice[Index[4]]) else call SetSkyModel( null ) endif set Line[10] = ( "Sky Models : " + ( ( "(" + ( I2S(Index[4]) + ") " ) ) + SkyName[Index[4]] ) ) call Board.setText(10,0,Line[10]) elseif aid == 'A00E' or aid == 'A00F' then if aid == 'A00E' then set Index[3] = ( Index[3] + 1 ) else set Index[3] = ( Index[3] - 1 ) endif if Index[3] > MaxIndex[3] then set Index[3] = MinIndex[3] elseif Index[3] < MinIndex[3] then set Index[3] = MaxIndex[3] endif if (bj_cineFadeContinueTimer != null) then call DestroyTimer(bj_cineFadeContinueTimer) elseif (bj_cineFadeFinishTimer != null) then call DestroyTimer(bj_cineFadeFinishTimer) endif set bj_cineFadeFinishTimer = null call DisplayCineFilter(false) if Index[3] != MinIndex[3] then call RunFade( 1, FadeChoice[Index[3]] ) endif set Line[11] = ( "Fade Filters : " + ( ( "(" + ( I2S(Index[3]) + ") " ) ) + FadeName[Index[3]] ) ) call Board.setText(11,0,Line[11]) elseif aid == 'A00G' or aid == 'A00H' then if aid == 'A00G' then set Index[2] = ( Index[2] + 1 ) else set Index[2] = ( Index[2] - 1 ) endif if Index[2] > MaxIndex[2] then set Index[2] = MinIndex[2] elseif Index[2] < MinIndex[2] then set Index[2] = MaxIndex[2] endif call DestroyLightning( TempLightning ) if Index[2] != MinIndex[2] then set TempLightning = AddLightningEx(LightningChoice[Index[2]], true, 128.500, -12.000, 400, 128.500, -516.00, 400) endif set Line[12] = ( "Lightning Effects : " + ( ( "(" + ( I2S(Index[2]) + ") " ) ) + LightningName[Index[2]] ) ) call Board.setText(12,0,Line[12]) elseif aid == 'A00I' or aid == 'A00J' then if aid == 'A00I' then set Index[1] = ( Index[1] + 1 ) else set Index[1] = ( Index[1] - 1 ) endif if Index[1] > MaxIndex[1] then set Index[1] = MinIndex[1] elseif Index[1] < MinIndex[1] then set Index[1] = MaxIndex[1] endif call DestroyUbersplat( bj_lastCreatedUbersplat ) if Index[1] != MinIndex[1] then set bj_lastCreatedUbersplat = CreateUbersplat(XofActor, FinalYofActor, UbersplatChoice[Index[1]], 255, 255, 255, 255, true, true) call SetUbersplatRenderAlways( bj_lastCreatedUbersplat, true ) call ShowUbersplat( bj_lastCreatedUbersplat, true ) endif set Line[13] = ( "Ubersplat Effects : " + ( ( "(" + ( I2S(Index[1]) + ") " ) ) + UbersplatName[Index[1]] ) ) call Board.setText(13,0,Line[13]) elseif aid == 'A00L' or aid == 'A00K' then if aid == 'A00L' then set Index[0] = ( Index[0] + 1 ) else set Index[0] = ( Index[0] - 1 ) endif if Index[0] > MaxIndex[0] then set Index[0] = MinIndex[0] elseif Index[0] < MinIndex[0] then set Index[0] = MaxIndex[0] endif if Index[0] != MinIndex[0] then call SetTerrainType( XofActor, NewYofActor, TerrainChoice[Index[0]], 0, 1, 0 ) else call SetTerrainType( XofActor, NewYofActor, NewTerrainType, 0, 1, 0 ) endif set Line[14] = ( "Terrain Tiles : " + ( ( "(" + ( I2S(Index[0]) + ") " ) ) + TerrainName[Index[0]] ) ) call Board.setText(14,0,Line[14]) elseif aid == 'A008' then if ShowBoard == true then set ShowBoard = false call Board.display(true,false) else set ShowBoard = true call Board.display(false,true) endif elseif aid == 'A002' then call ResetMultiboard() elseif aid == 'A00C' then if uid == 'H002' or uid == 'H003' then call ClearSelection() call SelectUnit(ControlPanel[1], true) else call ClearSelection() call SelectUnit(ControlPanel[3], true) endif elseif aid == 'A00D' then if uid == 'H002' or uid == 'H003' then call ClearSelection() call SelectUnit(ControlPanel[0], true) else call ClearSelection() call SelectUnit(ControlPanel[2], true) endif elseif aid == 'A00N' or aid == 'A00O' then if aid == 'A00N' then set Index[8] = ( Index[8] + 1 ) else set Index[8] = ( Index[8] - 1 ) endif if Index[8] > MaxIndex[8] then set Index[8] = MinIndex[8] elseif Index[8] < MinIndex[8] then set Index[8] = MaxIndex[8] endif call DestroyEffect(TempEffect[0]) if Index[8] != MinIndex[8] then set TempEffect[0] = AddSpecialEffectTarget(HelmetChoice[Index[8]], Actor[1], "head") endif set Line[9] = ( "Helmet Models : " + ( ( "(" + ( I2S(Index[8]) + ") " ) ) + HelmetName[Index[8]] ) ) call Board.setText(9,0,Line[9]) elseif aid == 'A00M' or aid == 'A003' then if aid == 'A00M' then set Index[9] = ( Index[9] + 1 ) else set Index[9] = ( Index[9] - 1 ) endif if Index[9] > MaxIndex[9] then set Index[9] = MinIndex[9] elseif Index[9] < MinIndex[9] then set Index[9] = MaxIndex[9] endif call DestroyEffect(TempEffect[1]) if Index[9] != MinIndex[9] then set TempEffect[1] = AddSpecialEffectTarget(ChestChoice[Index[9]], Actor[1], "chest") endif set Line[10] = ( "Chest Models : " + ( ( "(" + ( I2S(Index[9]) + ") " ) ) + ChestName[Index[9]] ) ) call Board.setText(10,0,Line[10]) elseif aid == 'A00P' or aid == 'A00Q' then if aid == 'A00P' then set Index[10] = ( Index[10] + 1 ) else set Index[10] = ( Index[10] - 1 ) endif if Index[10] > MaxIndex[10] then set Index[10] = MinIndex[10] elseif Index[10] < MinIndex[10] then set Index[10] = MaxIndex[10] endif call DestroyEffect(TempEffect[2]) if Index[10] != MinIndex[10] then set TempEffect[2] = AddSpecialEffectTarget(SwordChoice[Index[10]], Actor[1], "hand, right") endif set Line[11] = ( "Sword Models : " + ( ( "(" + ( I2S(Index[10]) + ") " ) ) + SwordName[Index[10]] ) ) call Board.setText(11,0,Line[11]) elseif aid == 'A00R' or aid == 'A00S' then if aid == 'A00R' then set Index[11] = ( Index[11] + 1 ) else set Index[11] = ( Index[11] - 1 ) endif if Index[11] > MaxIndex[11] then set Index[11] = MinIndex[11] elseif Index[11] < MinIndex[11] then set Index[11] = MaxIndex[11] endif call DestroyEffect(TempEffect[3]) if Index[11] != MinIndex[11] then set TempEffect[3] = AddSpecialEffectTarget(ShieldChoice[Index[11]], Actor[1], "hand, left") endif set Line[12] = ( "Shield Models : " + ( ( "(" + ( I2S(Index[11]) + ") " ) ) + ShieldName[Index[11]] ) ) call Board.setText(12,0,Line[12]) elseif aid == 'A00T' or aid == 'A00U' then if aid == 'A00T' then set Index[12] = ( Index[12] + 1 ) else set Index[12] = ( Index[12] - 1 ) endif if Index[12] > MaxIndex[12] then set Index[12] = MinIndex[12] elseif Index[12] < MinIndex[12] then set Index[12] = MaxIndex[12] endif call DestroyEffect(TempEffect[4]) call DestroyEffect(TempEffect[5]) if Index[12] != MinIndex[12] then set TempEffect[4] = AddSpecialEffectTarget(BootsChoiceLeft[Index[12]], Actor[1], "foot, left") set TempEffect[5] = AddSpecialEffectTarget(BootsChoiceRight[Index[12]], Actor[1], "foot, right") endif set Line[13] = ( "Boot Models : " + ( ( "(" + ( I2S(Index[12]) + ") " ) ) + BootsName[Index[12]] ) ) call Board.setText(13,0,Line[13]) elseif aid == 'A00V' or aid == 'A00W' then if aid == 'A00V' then set Index[13] = ( Index[13] + 1 ) else set Index[13] = ( Index[13] - 1 ) endif if Index[13] > MaxIndex[13] then set Index[13] = MinIndex[13] elseif Index[13] < MinIndex[13] then set Index[13] = MaxIndex[13] endif call DestroyEffect(TempEffect[6]) call DestroyEffect(TempEffect[7]) if Index[13] != MinIndex[13] then set TempEffect[6] = AddSpecialEffectTarget(BracersChoiceLeft[Index[13]], Actor[1], "hand, left") set TempEffect[7] = AddSpecialEffectTarget(BracersChoiceRight[Index[13]], Actor[1], "hand, right") endif set Line[14] = ( "Bracer Models : " + ( ( "(" + ( I2S(Index[13]) + ") " ) ) + BracersName[Index[13]] ) ) call Board.setText(14,0,Line[14]) endif // Nulling the variables set u = null // -------------------------------------------- endfunction private function Init takes nothing returns nothing local trigger t = CreateTrigger( ) call TriggerRegisterPlayerUnitEvent( t, Player(0), EVENT_PLAYER_UNIT_SPELL_CAST, null) call TriggerAddAction( t, function ControlPanelActions ) set t = null endfunction endscope
Change Log
- Rewrote entire system into vJASS.
- Fixed all previous glitches and issues.
- Removed multiple triggers and combined others.
- Added more content with much, much more to come.
- Greatly improved all coding.
- Separated initialization triggers.
- Improved descriptions, comments, and readability.
- Added more content with much, much more to come.
- Finished completely improving the coding.
- Fixed hopefully the last few bugs and glitches that occured.
- Improved descriptions, comments, and readability yet again.
- Inserted the new multiboard wrapper to get rid of BJs.
- Changed the way the multiboard setup was done to be more efficient.
- Added more content with much, much more to come.
- Coding has been completely reworked once again for efficiency.
- Fixed the multiboard glitch having to do with minimizing.
- Improved descriptions, comments, and readability yet again.
- Finished the multiboard wrappers and are now completely functioning.
- Started separating the initialization triggers for readability.
- Big changes made to global variables greatly reducing calls.
- Added more content with much, much more to come.
- Terrain tiles reduced to 8 due to WC3 limits.
- Commands and credits now fully up to date.
- Fixed camera system so controls are no longer inverted.
- Resized multiboard to be slightly smaller now.
- Got rid of all udg_ variables now all listed as globals.
- Recoded camera system for vJASS camera objects.
- Fixed glitch regarding camera system updating text.
- Fixed glitch with lightnings not getting correctly destroyed.
- Redone camera system to check keys individually.
- Condensed initialization triggers and rearranged them.
- Added the other 154 animation names to system.
- Made system more modular for later updates.
- Finished making the attachment tester fully functional.
- Rewrote chat commands system for better efficiency.
- Added new model to better view the attachments.
- Changed a bunch of icons and descriptions to better fit.
- Added 2 additional attachment sets as examples for new system.
- System is now fully functional on new patches.
- Special effects and attachments are now destroyed immediately.
Credits
Special Thanks:
- IcemanBo - Coding Improvements
- Mckill2009 - BoardEx (multiboard wrapper)
- Blood Raven - Bronze Armor Pack
- InfernalTater - Bone Equipment
- Astaroth Zion - Attachment Pack
- Graber - Villager 255 Animations
- Supermj - White Grid
- Rysnt11 - Modified White Grid Added Alpha
- Darkdeathknight - Camera Icon Pack
Map Description Template Created by -Kobas-Author's Notes
- Make sure all of your WC3 visual settings are on high due to ubersplats and other special effects not displaying otherwise!
- Terrain tiles are now limited to 8 in example due to the WC3 hardcoded terrain tile limit being 16.
- Attachments have a slight delay when removing due to death animations within the models themselves not the system. <<< SOLVED
- To solve the above issue with attachments goto your gameplay constants and set your Decay Time (sec) - Effects to 0 then the attachments will be correctly removed without model editing.
Find more here: Map Description - Templates