HeroPickedEventsDialog-AnyDialogItemisusedbyPlayerAnyPlayerwitheventtypeClickedLocalVariablesConditionsActionsGeneral-If(Conditions)thendo(Actions)elsedo(Actions)If(Useddialogitem)==HeroSelectionDialogItems[1]HeroSelectionDialogHero[1]==FalseHeroSelectionPlayerPicked?[(Triggeringplayer)]==FalseThenVariable-SetHeroSelectionDialogHero[1]=TrueVariable-SetHeroSelectionPlayerPicked?[(Triggeringplayer)]=TrueGeneral-If(Conditions)thendo(Actions)elsedo(Actions)IfGameMode==FalseThenDialog-HideHeroSelectionDialogBox[0]for(Playergroup((Triggeringplayer)))ElseDialog-HideHeroSelectionDialogBox[1]for(Playergroup((Triggeringplayer)))Dialog-DestroyHeroSelectionDialogItems[1]Unit-Create1Hero-Gregorforplayer(Triggeringplayer)atTerranHeroRevivefacing270.0degrees(NoOptions)Unit-Make(Lastcreatedunit)InvulnerableVariable-SetHeroSelectionNumberofPlayers=(HeroSelectionNumberofPlayers-1)Variable-SetHero(Unit)[1]=(Lastcreatedunit)UI-Display(((Text(Nameofplayer(Triggeringplayer))withcolor(Color((Currentplayer(Triggeringplayer)color))))+" has picked ")+((Nameof(Unittypeof(Lastcreatedunit)))+"."))for(Allplayers)toSubtitleareaElse
This works fine and has worked until I increased the player count by 3 on my map. I made sure to increase the variables array amounts up by 3. Attached is a screen shot of the player proprieties.
What happens is six players are able to pick a hero and the last three cannot. I don't know why.
What I'm thinking is it has to do with the three new players I added in the player property because they are after the computer in order? Idk even know if that's the issue. This should work, but it doesn't.
I'm seeing a LOT of hard coded array calls there, shouldn't it just be for the triggering player instead?
Out of curiosity, are you testing this as a single player in different slots, or have you had 7 whole peeps in there? I know this wouldn't go over too well with more than 1 as they are all accessing the same dialog with it hard coded that way. That would let one person pick then no one else gets to from what I'm seeing.
Edit: So the hiding the dialog might allow the same hard coded dialog to work with multiple players, I'm rather certain destroying the dialog kills it for everyone though. Still not seeing why it would dislike one player more than another based on this post though.
Really not liking: Hero Selection Dialog Hero[1] == False either, if Hero Selection Dialog hero[] has to be true, and it is hard coded for only Hero Selection Dialog hero[1], how will anyone else use that?
The map opens with a dialog window with nine buttons on it.
Hero Selection Dialog Items[#] = Represents a hero choice.
Hero Selection Dialog Hero[#] = Represents the hero.
Hero Selection Player Picked?[(Triggering player)] = Has the hero already picked a hero?
It makes it so once you pick a hero, it destroys that specific hero dialog button so no one else can pick the hero. No duplicate heroes. Also it makes it so you can't pick another dialog button once you've picked a hero.
There is a trigger for each dialog item. I just didn't post them all.
And yes it works fine with 6 players all picking at the same time. It doesn't work for the 3 new players I added, which is what I'm having a problem with.
Ah I see, probably like 9 other ifs down there. I'm wondering if something got mixed up in all that, might be worth looking into the other hero if statements. Would it mess your map up completely to have the 3 new players get moved up? You thought it might be that, so might be worth trying. Other than that, the code looks a lot better now that you mention that, lol. These lines are a little ambiguous though:
General - If (Conditions) then do (Actions) else do (Actions)
Unit - Create 1 Hero - Gregor for player (Triggering player) at Terran Hero Revive facing 270.0 degrees (No Options)
Unit - Make (Last created unit) Invulnerable
Variable - Set Hero Selection Number of Players = (Hero Selection Number of Players - 1)
Variable - Set Hero (Unit)[1] = (Last created unit)
In particular the Variable - Set Hero Selection Number of Players has me thinking maybe that part is getting screwed up somehow. I would assume such a variable is to keep track of when everyone has picked a hero, yes? Definitely look into what is going on there.
Set Hero Selection Number of Players = (Hero Selection Number of Players - 1)
could that be your problem? After you added 3 new players, did you remember to increase that variable's value also? Other than having a lot more triggers than you should, that is the only problem I can find. you should also be able to condense all of your hero selection triggers into 1 trigger like this:
UnitSelectionButtons = Dialog items with the picture of the hero
UnitArray = The hero associated with the dialog item picked.
Hero Pick Progression = If the player has picked a hero yet
Ya this sets that up before making the dialog setup. Also the hero selection number of players is a condition that once it reaches 0 will start the game in another trigger.
Glorn I'll try that trigger out and see if it makes a difference. I still don't understand why adding 3 more players would cause those 3 players not to be able to pick.
General-ForeachintegerIndexfrom0to16withincrement1,do(Actions)ActionsGeneral-If(Conditions)thendo(Actions)elsedo(Actions)If(Useddialogitem)==HeroSelectionDialogItems[Index]ThenDialog-DestroyHeroSelectionDialogItems[Index]Variable-SetHeroSelectionPlayerPicked?[(Triggeringplayer)]=TrueUnit-Create1HeroIndex[Index]forplayer(Triggeringplayer)atHeroSelectionfacing270.0degrees(NoOptions)Unit-Make(Lastcreatedunit)InvulnerableVariable-SetHero(Unit)[Index]=(Lastcreatedunit)Variable-SetHeroSelectionNumberofPlayers=(HeroSelectionNumberofPlayers-1)UI-Display(((Text(Nameofplayer(Triggeringplayer))withcolor(Color((Currentplayer(Triggeringplayer)color))))+" has picked ")+((Nameof(Unittypeof(Lastcreatedunit)))+"."))for(Allplayers)toSubtitleareaGeneral-If(Conditions)thendo(Actions)elsedo(Actions)IfGameMode==FalseThenDialog-HideHeroSelectionDialogBox[0]for(Playergroup((Triggeringplayer)))ElseDialog-HideHeroSelectionDialogBox[1]for(Playergroup((Triggeringplayer)))Else
So should this work. I added/changed a few things. With a few players it seems fine. Guess I'll try a full house. I didn't get how your Hero Pick Progression worked.
with that setup, your top trigger should be working; and the top trigger still looks.. right. Could there be any other triggers that might cause a problem? That action above, adding players to the player group; does that run on map init, or after the game starts? .1 for example) I know that in wc3, you couldnt "pick players" during map load, because the players would load in at different times than triggers, and could cause problems. Not sure if SC2 has the same problem; but I keep them separate in my map.
Also the above trigger I gave you, the "for each integer from 0 to 16" the second number is the total number of heroes you have in your game. If you have 9, set it to 9. or, well, 8; if you are setting [0] to a unit/dialog as well.
My map is a custom hero arena, there are 8 stages of building a hero, so I have to set their progression 8 times. For you though, you could set it to 0 and 1, or just use a booleen. It is the same variable as you use to determine if the player has picked a hero yet.
Also your "Variable - Set Hero Selection Number of Players = (Hero Selection Number of Players - 1)"
you have a trigger that runs when that hits zero, correct? Maybe look through that trigger, see if there could be a problem there.
This is the trigger that fires after the timer expires:
CheckifSelectionisCompleteEventsTimer-HeroSelectionTimerexpiresLocalVariablesx=0<Integer>ConditionsActionsTimer-DestroyHeroSelectionTimerWindowTrigger-Turn(Currenttrigger)OffTrigger-TurnCheckifallpickedbeforetimerexpiresOffTrigger-RunComputerEconomy(IgnoreConditions,Don't Wait until it finishes) Trigger - Turn Economy Leaderboard Update On Unit Group - Pick each unit in (Any units in (Entire map) owned by player Any Player matching Excluded: Missile, Dead, Hidden, with at most Any Amount) and do (Actions) Actions General - If (Conditions) then do (Actions) else do (Actions) If (Unit type of (Picked unit)) != Base - Data Core - (Burrowed) (Unit type of (Picked unit)) != Base - Data Core (Unit type of (Picked unit)) != Mineral Field (Unit type of (Picked unit)) != Rich Mineral Field Then Unit - Make (Picked unit) Vulnerable Else ------- Comment Player Group - Pick each player in Hero Selection Player Group and do (Actions) Actions General - If (Conditions) then do (Actions) else do (Actions) If Hero Selection Player Picked?[(Picked player)] == False Then Variable - Set Hero Selection Player Picked?[(Picked player)] = True Variable - Set Hero Selection Number of Players = (Hero Selection Number of Players - 1) UI - Display (((Text (Name of player (Picked player)) with color (Color((Current player (Picked player) color)))) + " has been removed from the game") + "!") for (All players) to Subtitle area Game - End game in Defeat for player (Picked player) (Hide dialogs, Show score screen) Else ------- Comment Unit Group - Pick each unit in (Any units in (Any units in (Entire map) owned by player Any Player matching Required: Heroic; Excluded: Structure, Missile, Dead, Hidden, with at most Any Amount) owned by player Any Player matching Excluded: Missile, Dead, Hidden, with at most Any Amoun and do (Actions) Actions General - If (Conditions) then do (Actions) else do (Actions) If (Unit type of (Picked unit)) == Hero - Gregor Then Unit - Move (Picked unit) instantly to Terran Hero Revive (No Blend) Unit Selection - Select (Picked unit) for player (Owner of (Picked unit)) Unit Selection - Add (Picked unit) to control group 1 for player (Owner of (Picked unit)) Camera - Unlock camera input for player (Owner of (Picked unit)) Camera - Pan the camera for player (Owner of (Picked unit)) to (Terran Hero Revive facing 270.0 degrees) over 0.0 seconds with Existing Velocity% initial velocity, 10% deceleration, and Do Not use smart panning Player Group - Add player (Owner of (Picked unit)) to Players = Terran Else General - If (Conditions) then do (Actions) else do (Actions) If (Unit type of (Picked unit)) == Hero - Kristo Then Unit - Move (Picked unit) instantly to Terran Hero Revive (No Blend) Unit Selection - Select (Picked unit) for player (Owner of (Picked unit)) Unit Selection - Add (Picked unit) to control group 1 for player (Owner of (Picked unit)) Camera - Unlock camera input for player (Owner of (Picked unit)) Camera - Pan the camera for player (Owner of (Picked unit)) to (Terran Hero Revive facing 270.0 degrees) over 0.0 seconds with Existing Velocity% initial velocity, 10% deceleration, and Do Not use smart panning Player Group - Add player (Owner of (Picked unit)) to Players = Terran Else General - If (Conditions) then do (Actions) else do (Actions) If (Unit type of (Picked unit)) == Hero - Remi Then Unit - Move (Picked unit) instantly to Terran Hero Revive (No Blend) Unit Selection - Select (Picked unit) for player (Owner of (Picked unit)) Unit Selection - Add (Picked unit) to control group 1 for player (Owner of (Picked unit)) Camera - Unlock camera input for player (Owner of (Picked unit)) Camera - Pan the camera for player (Owner of (Picked unit)) to (Terran Hero Revive facing 270.0 degrees) over 0.0 seconds with Existing Velocity% initial velocity, 10% deceleration, and Do Not use smart panning Player Group - Add player (Owner of (Picked unit)) to Players = Terran Else General - If (Conditions) then do (Actions) else do (Actions) If (Unit type of (Picked unit)) == Hero - Akeru Then Unit - Move (Picked unit) instantly to Protoss Hero Revive (No Blend) Unit Selection - Select (Picked unit) for player (Owner of (Picked unit)) Unit Selection - Add (Picked unit) to control group 1 for player (Owner of (Picked unit)) Camera - Unlock camera input for player (Owner of (Picked unit)) Camera - Pan the camera for player (Owner of (Picked unit)) to (Protoss Hero Revive facing 270.0 degrees) over 0.0 seconds with Existing Velocity% initial velocity, 10% deceleration, and Do Not use smart panning Player Group - Add player (Owner of (Picked unit)) to Players = Protoss Else General - If (Conditions) then do (Actions) else do (Actions) If (Unit type of (Picked unit)) == Hero - Nerix Then Unit - Move (Picked unit) instantly to Protoss Hero Revive (No Blend) Unit Selection - Select (Picked unit) for player (Owner of (Picked unit)) Unit Selection - Add (Picked unit) to control group 1 for player (Owner of (Picked unit)) Camera - Unlock camera input for player (Owner of (Picked unit)) Camera - Pan the camera for player (Owner of (Picked unit)) to (Protoss Hero Revive facing 270.0 degrees) over 0.0 seconds with Existing Velocity% initial velocity, 10% deceleration, and Do Not use smart panning Player Group - Add player (Owner of (Picked unit)) to Players = Protoss Else General - If (Conditions) then do (Actions) else do (Actions) If (Unit type of (Picked unit)) == Hero - Saru Then Unit - Move (Picked unit) instantly to Protoss Hero Revive (No Blend) Unit Selection - Select (Picked unit) for player (Owner of (Picked unit)) Unit Selection - Add (Picked unit) to control group 1 for player (Owner of (Picked unit)) Camera - Unlock camera input for player (Owner of (Picked unit)) Camera - Pan the camera for player (Owner of (Picked unit)) to (Protoss Hero Revive facing 270.0 degrees) over 0.0 seconds with Existing Velocity% initial velocity, 10% deceleration, and Do Not use smart panning Player Group - Add player (Owner of (Picked unit)) to Players = Protoss Else General - If (Conditions) then do (Actions) else do (Actions) If (Unit type of (Picked unit)) == Hero - Darosa Then Unit - Move (Picked unit) instantly to Zerg Hero Revive (No Blend) Unit Selection - Select (Picked unit) for player (Owner of (Picked unit)) Unit Selection - Add (Picked unit) to control group 1 for player (Owner of (Picked unit)) Camera - Unlock camera input for player (Owner of (Picked unit)) Camera - Pan the camera for player (Owner of (Picked unit)) to (Zerg Hero Revive facing 270.0 degrees) over 0.0 seconds with Existing Velocity% initial velocity, 10% deceleration, and Do Not use smart panning Player Group - Add player (Owner of (Picked unit)) to Players = Zerg Else General - If (Conditions) then do (Actions) else do (Actions) If (Unit type of (Picked unit)) == Hero - Kerana Then Unit - Move (Picked unit) instantly to Zerg Hero Revive (No Blend) Unit Selection - Select (Picked unit) for player (Owner of (Picked unit)) Unit Selection - Add (Picked unit) to control group 1 for player (Owner of (Picked unit)) Camera - Unlock camera input for player (Owner of (Picked unit)) Camera - Pan the camera for player (Owner of (Picked unit)) to (Zerg Hero Revive facing 270.0 degrees) over 0.0 seconds with Existing Velocity% initial velocity, 10% deceleration, and Do Not use smart panning Player Group - Add player (Owner of (Picked unit)) to Players = Zerg Else General - If (Conditions) then do (Actions) else do (Actions) If (Unit type of (Picked unit)) == Hero - Valac Then Unit - Move (Picked unit) instantly to Zerg Hero Revive (No Blend) Unit Selection - Select (Picked unit) for player (Owner of (Picked unit)) Unit Selection - Add (Picked unit) to control group 1 for player (Owner of (Picked unit)) Camera - Unlock camera input for player (Owner of (Picked unit)) Camera - Pan the camera for player (Owner of (Picked unit)) to (Zerg Hero Revive facing 270.0 degrees) over 0.0 seconds with Existing Velocity% initial velocity, 10% deceleration, and Do Not use smart panning Player Group - Add player (Owner of (Picked unit)) to Players = Zerg Else Trigger - Run Starting Stuff (Ignore Conditions, Don'tWaituntilitfinishes)Trigger-RunPlayerLeftAfterHeroPick?(IgnoreConditions,Don't Wait until it finishes) Trigger - Turn Idle Units On Trigger - Turn Player Leaves Off Trigger - Turn Terran Spawning Wave On Trigger - Turn Terran Spawning Wave 2 On Trigger - Turn Protoss Spawning Wave On Trigger - Turn Protoss Spawning Wave 2 On Trigger - Turn Zerg Spawning Wave On Trigger - Turn Zerg Spawning Wave 2 On Trigger - Turn Terran Spawning Wave (T4) On Trigger - Turn Protoss Spawning Wave (T4) On Trigger - Turn Zerg Spawning Wave (T4) On Trigger - Turn Spawn Buffs On Trigger - Turn Spawn Buffs 2 On Trigger - Turn Terran Defeat On Trigger - Turn Protoss Defeat On Trigger - Turn Zerg Defeat On Trigger - Turn Victory by Conquest On Trigger - Turn B.O.B. Victory On
This is the map ini trigger:
MapStartEventsGame-MapinitializationLocalVariablesConditionsActionsUI-Display"If you do not pick a hero by the ti..."for(Allplayers)toSubtitleareaGame-SetthegamespeedtoFasterGame-LockgamespeedUI-HideSupplyFramefor(Allplayers)UI-HideHeroPanelfor(Allplayers)Unit-OrderBase-CommandCenter[54.50,113.50]to(SetRallyPointtargetingMineralField[49.00,118.50])(ReplaceExistingOrders)Unit-OrderBase-Nexus[177.50,113.50]to(SetRallyPointtargetingMineralField[182.00,119.50])(ReplaceExistingOrders)Unit-OrderBase-Hatchery[116.50,17.50]to(SetRallyPointtargetingMineralField[118.00,11.50])(ReplaceExistingOrders)Catalog-SetvalueofAbilities"ArmyUpgrades""Points[0]"forplayer7to(String(((ValueofAbilities"ArmyUpgrades""Points[0]"forplayer7asaninteger)+60)))Catalog-SetvalueofAbilities"ArmyUpgrades""Points[0]"forplayer8to(String(((ValueofAbilities"ArmyUpgrades""Points[0]"forplayer8asaninteger)+80)))Catalog-SetvalueofAbilities"ArmyUpgrades""Points[0]"forplayer9to(String(((ValueofAbilities"ArmyUpgrades""Points[0]"forplayer9asaninteger)+80)))Unit-DisableAnyexperiencegainforBase-CommandCenter[54.50,113.50]Unit-DisableAnyexperiencegainforBase-Nexus[177.50,113.50]Unit-DisableAnyexperiencegainforBase-Hatchery[116.50,17.50]TechTree-DisallowtheSetRallyPointabilityforplayer7TechTree-DisallowtheSetRallyPointabilityforplayer8TechTree-DisallowtheSetRallyPointabilityforplayer9TechTree-DisallowtheSetRallyPointabilityforplayer9PlayerGroup-Pickeachplayerin(Allplayers)anddo(Actions)ActionsTechTree-Disallowthe(NoValue)abilityforplayer(Pickedplayer)TechTree-DisallowtheAkeru-Psi-Slash(Dummy)abilityforplayer(Pickedplayer)TechTree-Disallowthe(NoValue)abilityforplayer(Pickedplayer)TechTree-Add1toStoryModeTech-(Bunker)ShrikeTurretupgradeforplayer7TechTree-Add1toStoryModeTech-(Bunker)NeosteelandShrikeTurretIconUpgradeupgradeforplayer7UI-DisallowresourcetradingforMineralsUI-DisallowresourcetradingforCustomResourceUI-DisallowresourcetradingforTerrazineUI-DisallowresourcetradingforVespeneVariable-SetSpawning-Terran[1]=10Variable-SetSpawning-Terran[2]=10Variable-SetSpawning-Terran2[1]=10Variable-SetSpawning-Terran2[2]=10Variable-SetSpawning-Protoss[1]=8Variable-SetSpawning-Protoss[2]=8Variable-SetSpawning-Protoss2[1]=8Variable-SetSpawning-Protoss2[2]=8Variable-SetSpawning-Zerg[1]=16Variable-SetSpawning-Zerg[2]=20Variable-SetSpawning-Zerg2[1]=16Variable-SetSpawning-Zerg2[2]=20UnitGroup-AddBase-Bunker[61.50,88.50]toDefensiveBuildings[1]UnitGroup-AddBase-Bunker[73.50,88.50]toDefensiveBuildings[1]UnitGroup-AddBase-Bunker[79.50,106.50]toDefensiveBuildings[2]UnitGroup-AddBase-Bunker[79.50,94.50]toDefensiveBuildings[2]UnitGroup-AddBase-Bunker[44.50,89.50]toDefensiveBuildings2[1]UnitGroup-AddBase-Bunker[33.50,100.50]toDefensiveBuildings2[1]UnitGroup-AddBase-Bunker[78.50,125.50]toDefensiveBuildings2[2]UnitGroup-AddBase-Bunker[67.50,136.50]toDefensiveBuildings2[2]UnitGroup-AddBase-PhotonCannon[152.00,107.00]toDefensiveBuildings[3]UnitGroup-AddBase-PhotonCannon[152.00,95.00]toDefensiveBuildings[3]UnitGroup-AddBase-PhotonCannon[159.00,88.00]toDefensiveBuildings[4]UnitGroup-AddBase-PhotonCannon[171.00,88.00]toDefensiveBuildings[4]UnitGroup-AddBase-PhotonCannon[189.00,90.00]toDefensiveBuildings2[4]UnitGroup-AddBase-PhotonCannon[198.00,99.00]toDefensiveBuildings2[4]UnitGroup-AddBase-PhotonCannon[154.00,125.00]toDefensiveBuildings2[3]UnitGroup-AddBase-PhotonCannon[163.00,134.00]toDefensiveBuildings2[3]UnitGroup-AddBase-SpineCrawler[98.00,31.00]toDefensiveBuildings[5]UnitGroup-AddBase-SpineCrawler[107.00,40.00]toDefensiveBuildings[5]UnitGroup-AddBase-SpineCrawler[134.00,31.00]toDefensiveBuildings[6]UnitGroup-AddBase-SpineCrawler[125.00,40.00]toDefensiveBuildings[6]UnitGroup-AddBase-SpineCrawler[82.00,29.00]toDefensiveBuildings2[5]UnitGroup-AddBase-SpineCrawler[82.00,17.00]toDefensiveBuildings2[5]UnitGroup-AddBase-SpineCrawler[150.00,29.00]toDefensiveBuildings2[6]UnitGroup-AddBase-SpineCrawler[150.00,17.00]toDefensiveBuildings2[6]-------CommentUnitGroup-AddBase-Bunker[106.50,164.50]toNon-UpgradableDefensiveBuildings[1]UnitGroup-AddBase-Bunker[106.50,150.50]toNon-UpgradableDefensiveBuildings[1]UnitGroup-AddBase-Bunker[19.50,46.50]toNon-UpgradableDefensiveBuildings[1]UnitGroup-AddBase-Bunker[27.50,54.50]toNon-UpgradableDefensiveBuildings[1]UnitGroup-AddBase-SpineCrawler[33.00,33.00]toNon-UpgradableDefensiveBuildings[1]UnitGroup-AddBase-SpineCrawler[41.00,41.00]toNon-UpgradableDefensiveBuildings[1]UnitGroup-AddBase-SpineCrawler[191.00,41.00]toNon-UpgradableDefensiveBuildings[1]UnitGroup-AddBase-SpineCrawler[199.00,33.00]toNon-UpgradableDefensiveBuildings[1]UnitGroup-AddBase-PhotonCannon[214.00,47.00]toNon-UpgradableDefensiveBuildings[2]UnitGroup-AddBase-PhotonCannon[205.00,56.00]toNon-UpgradableDefensiveBuildings[2]UnitGroup-AddBase-PhotonCannon[126.00,151.00]toNon-UpgradableDefensiveBuildings[2]UnitGroup-AddBase-PhotonCannon[126.00,164.00]toNon-UpgradableDefensiveBuildings[2]-------CommentVariable-SetHeroIndex[1]=Hero-GregorVariable-SetHeroIndex[2]=Hero-KristoVariable-SetHeroIndex[3]=Hero-RemiVariable-SetHeroIndex[4]=Hero-AkeruVariable-SetHeroIndex[5]=Hero-NerixVariable-SetHeroIndex[6]=Hero-SaruVariable-SetHeroIndex[7]=Hero-DarosaVariable-SetHeroIndex[8]=Hero-KeranaVariable-SetHeroIndex[9]=Hero-Valac-------CommentUnitGroup-Pickeachunitin(Anyunitsin(Entiremap)ownedbyplayerAnyPlayermatchingExcluded:Missile,Dead,Hidden,withatmostAnyAmount)anddo(Actions)ActionsUnit-Make(Pickedunit)InvulnerableUnitGroup-PickeachunitinNon-UpgradableDefensiveBuildings[1]anddo(Actions)ActionsUnit-Set(Pickedunit)MaximumLifeto2000.0Unit-Set(Pickedunit)Lifeto2000.0Unit-Set(Pickedunit)Bounty(XP)to25.0Unit-Set(Pickedunit)Bounty(Vespene)to50.0Unit-Add1Base-DamageReduction(TurretBuff)to(Pickedunit)from(Pickedunit)Unit-Add1Base-DamageReductionAurato(Pickedunit)from(Pickedunit)Unit-Add1Base-RemoveRepairto(Pickedunit)from(Pickedunit)UnitGroup-PickeachunitinNon-UpgradableDefensiveBuildings[2]anddo(Actions)ActionsUnit-Set(Pickedunit)MaximumShieldsto2000.0Unit-Set(Pickedunit)Shieldsto2000.0Unit-Set(Pickedunit)Bounty(XP)to25.0Unit-Set(Pickedunit)Bounty(Vespene)to50.0Unit-Add1Base-DamageReduction(TurretBuff)to(Pickedunit)from(Pickedunit)Unit-Add1Base-DamageReductionAurato(Pickedunit)from(Pickedunit)Unit-Add1Base-RemoveRepairto(Pickedunit)from(Pickedunit)UnitGroup-Pickeachunitin(RichMineralFieldunitsinLeftLane(TowardsTerran)ownedbyplayerAnyPlayermatchingExcluded:Missile,Dead,Hidden,withatmostAnyAmount)anddo(Actions)ActionsUnitGroup-Add(Pickedunit)toExpansionMinerals[1]UnitGroup-Pickeachunitin(RichMineralFieldunitsinTopExpansionAreaownedbyplayerAnyPlayermatchingExcluded:Missile,Dead,Hidden,withatmostAnyAmount)anddo(Actions)ActionsUnitGroup-Add(Pickedunit)toExpansionMinerals[2]UnitGroup-Pickeachunitin(RichMineralFieldunitsinRightLane(TowardsProtoss)ownedbyplayerAnyPlayermatchingExcluded:Missile,Dead,Hidden,withatmostAnyAmount)anddo(Actions)ActionsUnitGroup-Add(Pickedunit)toExpansionMinerals[3]PlayerGroup-Pickeachplayerin(Allplayers)anddo(Actions)ActionsGeneral-If(Conditions)thendo(Actions)elsedo(Actions)If(Statusofplayer(Pickedplayer))==Playing(Controllerofplayer(Pickedplayer))==UserThenPlayerGroup-Addplayer(Pickedplayer)toHeroSelectionPlayerGroupCamera-Panthecameraforplayer(Pickedplayer)to(DataCorefacing270.0degrees)over0.0secondswithExistingVelocity%initialvelocity,10%deceleration,andDoNotusesmartpanningCamera-Lockcamerainputforplayer(Pickedplayer)ElseVariable-SetHeroSelectionNumberofPlayers=(NumberofplayersinHeroSelectionPlayerGroup)Timer-StartHeroSelectionTimerasaOneShottimerthatwillexpirein60.0GameTimesecondsVariable-SetHeroSelectionTimer=(Laststartedtimer)Timer-Createatimerwindowfor(Laststartedtimer),withthetitle"Time Remaining",usingRemainingtime(initiallyVisible)Variable-SetHeroSelectionTimerWindow=(Lastcreatedtimerwindow)General-If(Conditions)thendo(Actions)elsedo(Actions)If(GameModeHACKgamevalue)==DefaultThenPlayer-Makeallplayersin(Playersonteam1)treateachotherasAlly-------CommentDialog-CreateaModaldialogofsize(620,750)at(0,-120)relativetoCenterofscreenVariable-SetHeroSelectionDialogBox[0]=(Lastcreateddialog)Dialog-CreatealabelfordialogHeroSelectionDialogBox[0]withthedimensions(170,50)anchoredtoTopwithanoffsetof(0,50)withthetext"Select Your Hero"colorsettoWhitetextwriteoutsettoFalsewithawriteoutdurationof2.0Dialog-CreatealabelfordialogHeroSelectionDialogBox[0]withthedimensions(355,50)anchoredtoTopwithanoffsetof(0,75)withthetext"The Hero picked reflects your facti..."colorsettoWhitetextwriteoutsettoFalsewithawriteoutdurationof2.0Dialog-CreateabuttonfordialogHeroSelectionDialogBox[0]withthedimensions(170,180)anchoredtoTopRightwithanoffsetof(50,125)settingthetooltipto"Name: Gregor Faction: The Terran ..."withbuttontext"Assets\Textures\swannmarauderportra..."andthehoverimagesetto""Variable-SetHeroSelectionDialogItems[1]=(Lastcreateddialogitem)Dialog-CreateabuttonfordialogHeroSelectionDialogBox[0]withthedimensions(170,180)anchoredtoTopLeftwithanoffsetof(50,125)settingthetooltipto"Name: Kristo Faction: The Terran ..."withbuttontext"Assets\Textures\stetmannmedicportra..."andthehoverimagesetto""Variable-SetHeroSelectionDialogItems[2]=(Lastcreateddialogitem)Dialog-CreateabuttonfordialogHeroSelectionDialogBox[0]withthedimensions(170,180)anchoredtoTopwithanoffsetof(0,123)settingthetooltipto"Name: Remi Faction: The Terran Re..."withbuttontext"Assets\Textures\novaportrait_static..."andthehoverimagesetto""Variable-SetHeroSelectionDialogItems[3]=(Lastcreateddialogitem)Dialog-CreateabuttonfordialogHeroSelectionDialogBox[0]withthedimensions(170,180)anchoredtoLeftwithanoffsetof(50,37)settingthetooltipto"Name: Akeru Faction: The Protoss ..."withbuttontext"Assets\Textures\zeratulportrait_sta..."andthehoverimagesetto""Variable-SetHeroSelectionDialogItems[4]=(Lastcreateddialogitem)Dialog-CreateabuttonfordialogHeroSelectionDialogBox[0]withthedimensions(170,180)anchoredtoRightwithanoffsetof(50,37)settingthetooltipto"Name: Nerix Faction: The Protoss ..."withbuttontext"Assets\Textures\preserver1portrait_..."andthehoverimagesetto""Variable-SetHeroSelectionDialogItems[5]=(Lastcreateddialogitem)Dialog-CreateabuttonfordialogHeroSelectionDialogBox[0]withthedimensions(170,180)anchoredtoCenterwithanoffsetof(0,37)settingthetooltipto"Name: Saru Faction: The Protoss C..."withbuttontext"Assets\Textures\karassportrait_stat..."andthehoverimagesetto""Variable-SetHeroSelectionDialogItems[6]=(Lastcreateddialogitem)Dialog-CreateabuttonfordialogHeroSelectionDialogBox[0]withthedimensions(170,180)anchoredtoBottomLeftwithanoffsetof(50,50)settingthetooltipto"Name: Darosa Faction: The Zerg Sw..."withbuttontext"Assets\Textures\infestedcolonistpor..."andthehoverimagesetto""Variable-SetHeroSelectionDialogItems[7]=(Lastcreateddialogitem)Dialog-CreateabuttonfordialogHeroSelectionDialogBox[0]withthedimensions(170,180)anchoredtoBottomRightwithanoffsetof(50,50)settingthetooltipto"Name: Kerana Faction: The Zerg Sw..."withbuttontext"Assets\Textures\kerriganportrait_st..."andthehoverimagesetto""Variable-SetHeroSelectionDialogItems[8]=(Lastcreateddialogitem)Dialog-CreateabuttonfordialogHeroSelectionDialogBox[0]withthedimensions(170,180)anchoredtoBottomwithanoffsetof(0,50)settingthetooltipto"Name: Valac Faction: The Zerg Swa..."withbuttontext"Assets\Textures\brutaliskportrait_s..."andthehoverimagesetto""Variable-SetHeroSelectionDialogItems[9]=(Lastcreateddialogitem)-------CommentDialog-ShowHeroSelectionDialogBox[0]for(Allplayers)Trigger-TurnCheckifallpickedbeforetimerexpiresOn-------CommentElseVariable-SetGameMode=TrueDialog-CreateaModaldialogofsize(620,750)at(0,-120)relativetoCenterofscreenVariable-SetHeroSelectionDialogBox[1]=(Lastcreateddialog)Dialog-CreatealabelfordialogHeroSelectionDialogBox[1]withthedimensions(170,50)anchoredtoTopwithanoffsetof(0,50)withthetext"Select Your Hero"colorsettoWhitetextwriteoutsettoFalsewithawriteoutdurationof2.0Dialog-CreateabuttonfordialogHeroSelectionDialogBox[1]withthedimensions(170,180)anchoredtoTopRightwithanoffsetof(50,125)settingthetooltipto"Name: Gregor Faction: The Terran ..."withbuttontext"Assets\Textures\swannmarauderportra..."andthehoverimagesetto""Variable-SetHeroSelectionDialogItems[1]=(Lastcreateddialogitem)Dialog-CreateabuttonfordialogHeroSelectionDialogBox[1]withthedimensions(170,180)anchoredtoTopLeftwithanoffsetof(50,125)settingthetooltipto"Name: Kristo Faction: The Terran ..."withbuttontext"Assets\Textures\stetmannmedicportra..."andthehoverimagesetto""Variable-SetHeroSelectionDialogItems[2]=(Lastcreateddialogitem)Dialog-CreateabuttonfordialogHeroSelectionDialogBox[1]withthedimensions(170,180)anchoredtoTopwithanoffsetof(0,123)settingthetooltipto"Name: Remi Faction: The Terran Re..."withbuttontext"Assets\Textures\novaportrait_static..."andthehoverimagesetto""Variable-SetHeroSelectionDialogItems[3]=(Lastcreateddialogitem)-------CommentDialog-CreateaModaldialogofsize(620,750)at(0,-120)relativetoCenterofscreenVariable-SetHeroSelectionDialogBox[2]=(Lastcreateddialog)Dialog-CreatealabelfordialogHeroSelectionDialogBox[2]withthedimensions(170,50)anchoredtoTopwithanoffsetof(0,50)withthetext"Select Your Hero"colorsettoWhitetextwriteoutsettoFalsewithawriteoutdurationof2.0Dialog-CreateabuttonfordialogHeroSelectionDialogBox[2]withthedimensions(170,180)anchoredtoLeftwithanoffsetof(50,37)settingthetooltipto"Name: Akeru Faction: The Protoss ..."withbuttontext"Assets\Textures\zeratulportrait_sta..."andthehoverimagesetto""Variable-SetHeroSelectionDialogItems[4]=(Lastcreateddialogitem)Dialog-CreateabuttonfordialogHeroSelectionDialogBox[2]withthedimensions(170,180)anchoredtoRightwithanoffsetof(50,37)settingthetooltipto"Name: Nerix Faction: The Protoss ..."withbuttontext"Assets\Textures\preserver1portrait_..."andthehoverimagesetto""Variable-SetHeroSelectionDialogItems[5]=(Lastcreateddialogitem)Dialog-CreateabuttonfordialogHeroSelectionDialogBox[2]withthedimensions(170,180)anchoredtoCenterwithanoffsetof(0,37)settingthetooltipto"Name: Saru Faction: The Protoss C..."withbuttontext"Assets\Textures\karassportrait_stat..."andthehoverimagesetto""Variable-SetHeroSelectionDialogItems[6]=(Lastcreateddialogitem)-------CommentDialog-CreateaModaldialogofsize(620,750)at(0,-120)relativetoCenterofscreenVariable-SetHeroSelectionDialogBox[3]=(Lastcreateddialog)Dialog-CreatealabelfordialogHeroSelectionDialogBox[3]withthedimensions(170,50)anchoredtoTopwithanoffsetof(0,50)withthetext"Select Your Hero"colorsettoWhitetextwriteoutsettoFalsewithawriteoutdurationof2.0Dialog-CreateabuttonfordialogHeroSelectionDialogBox[3]withthedimensions(170,180)anchoredtoBottomLeftwithanoffsetof(50,50)settingthetooltipto"Name: Darosa Faction: The Zerg Sw..."withbuttontext"Assets\Textures\infestedcolonistpor..."andthehoverimagesetto""Variable-SetHeroSelectionDialogItems[7]=(Lastcreateddialogitem)Dialog-CreateabuttonfordialogHeroSelectionDialogBox[3]withthedimensions(170,180)anchoredtoBottomRightwithanoffsetof(50,50)settingthetooltipto"Name: Kerana Faction: The Zerg Sw..."withbuttontext"Assets\Textures\kerriganportrait_st..."andthehoverimagesetto""Variable-SetHeroSelectionDialogItems[8]=(Lastcreateddialogitem)Dialog-CreateabuttonfordialogHeroSelectionDialogBox[3]withthedimensions(170,180)anchoredtoBottomwithanoffsetof(0,50)settingthetooltipto"Name: Valac Faction: The Zerg Swa..."withbuttontext"Assets\Textures\brutaliskportrait_s..."andthehoverimagesetto""Variable-SetHeroSelectionDialogItems[9]=(Lastcreateddialogitem)-------CommentDialog-ShowHeroSelectionDialogBox[1]for(Playersonteam1)Dialog-ShowHeroSelectionDialogBox[2]for(Playersonteam2)Dialog-ShowHeroSelectionDialogBox[3]for(Playersonteam3)Trigger-TurnCheckifallpickedbeforetimerexpiresOn
off topic, but I didnt know you could turn a trigger off and still have the actions after it run.
Also as said above, there is a lot more text in that trigger than there ever should be; though, it may have nothing to do with your problem.
Also, as said above, you should consider moving all of you "pick players" "pick units" function calls and stuff to an elapsed time .5 trigger; rather than init. I have had some problem with them in sc2, but I have 5 different starting triggers, all spaced out; because they were messing up on init. I run 1 on init, just setting variables. 1 on .5 that sets everything with players, units, teams, ect. Then I create dialogs (I have a lotttttt) through 3 other triggers; spread out from 1 second to 5 seconds.
On map init, things get loaded into the map over time; if you have a very long init, it takes longer to load it in; while other parts of the map may be lagging in generating, because of the init size.
Need more info:
The 3 players simply have nothing happen for them when they click on a hero icon in the dialog box? or they click it, it goes away, but they are left with no hero? Did you double and triple check all of your variable arrays?
Trigger - Run Starting Stuff (Ignore Conditions, Don't Wait until it finishes)
Trigger - Run Player Left After Hero Pick? (Ignore Conditions, Don't Wait until it finishes)
those 2 triggers run at the same time; ignoreing conditions. Do the actions from 1 of them in any way at all, have anything to do with the actions of another? It could be the increase in a loop 1 in, makes an action in another happen sooner that it normally would in comparison.
Simple example... count to 6... now, count to 8... which one took longer? What is the time between loops? .0625 or something odd like that? that is .13 more seconds, while actions in that second trigger could be running. It is the off-the-wall idea, but if absolutely everything is correct in your map, there is a slim chance that could be the problem.
Ya if you put the turn trigger off as the first line, it will turn it off and still run the trigger one time. It's useful for times when a trigger could fire multiple times and create duplicate events. I learned that in the wc3 editor.
I'll try spacing it out over a duration, the hardest thing about it is getting 9 people to test to see if it works. Also attached is the variables. They are all set to 9, the ones that matter.
More Info:
I haven't been able to be one of those players, but when I asked them what exactly was happening they said they couldn't pick a hero so I'm assuming that means the buttons for the hero wasn't working. A hero also wasn't spawning. This was also breaking the map because the hero selection player group was > 0.
As for those two triggers I don't see why either of those would cause any problems. I get the logic behind it, but it has nothing to do with the hero picking.
StartingStuffEventsLocalVariablesConditionsActionsTrigger-Turn(Currenttrigger)OffPlayerGroup-PickeachplayerinPlayers=Terrananddo(Actions)ActionsPlayer-Makeplayer(Pickedplayer)andplayer7treateachotherasAllyWithSharedVisionPlayer-Makeplayer7andplayer(Pickedplayer)treateachotherasAllyWithSharedVisionPlayer-Makeplayer(Pickedplayer)andplayer(Player1fromPlayers=Terran)treateachotherasAllyWithSharedVisionPlayer-Makeplayer(Pickedplayer)andplayer(Player2fromPlayers=Terran)treateachotherasAllyWithSharedVisionPlayer-Makeplayer(Pickedplayer)andplayer(Player3fromPlayers=Terran)treateachotherasAllyWithSharedVisionPlayer-Makeplayer(Pickedplayer)andplayer(Pickedplayer)treateachotherasAllyWithSharedVisionPlayer-Setplayer(Player1fromPlayers=Terran)colorto(Player01)Red(Changethecolorofexistingunits)Player-Setplayer(Player2fromPlayers=Terran)colorto(Player06)Orange(Changethecolorofexistingunits)Player-Setplayer(Player3fromPlayers=Terran)colorto(Player05)Yellow(Changethecolorofexistingunits)Player-Makeplayer(Pickedplayer)andplayer(Player1fromPlayers=Protoss)treateachotherasEnemyPlayer-Makeplayer(Pickedplayer)andplayer(Player2fromPlayers=Protoss)treateachotherasEnemyPlayer-Makeplayer(Pickedplayer)andplayer(Player3fromPlayers=Protoss)treateachotherasEnemyPlayer-Makeplayer(Pickedplayer)andplayer(Player1fromPlayers=Zerg)treateachotherasEnemyPlayer-Makeplayer(Pickedplayer)andplayer(Player2fromPlayers=Zerg)treateachotherasEnemyPlayer-Makeplayer(Pickedplayer)andplayer(Player3fromPlayers=Zerg)treateachotherasEnemyPlayerGroup-PickeachplayerinPlayers=Protossanddo(Actions)ActionsPlayer-Makeplayer(Pickedplayer)andplayer8treateachotherasAllyWithSharedVisionPlayer-Makeplayer8andplayer(Pickedplayer)treateachotherasAllyWithSharedVisionPlayer-Makeplayer(Pickedplayer)andplayer(Player1fromPlayers=Protoss)treateachotherasAllyWithSharedVisionPlayer-Makeplayer(Pickedplayer)andplayer(Player2fromPlayers=Protoss)treateachotherasAllyWithSharedVisionPlayer-Makeplayer(Pickedplayer)andplayer(Player3fromPlayers=Protoss)treateachotherasAllyWithSharedVisionPlayer-Makeplayer(Pickedplayer)andplayer(Pickedplayer)treateachotherasAllyWithSharedVisionPlayer-Setplayer(Player1fromPlayers=Protoss)colorto(Player03)Teal(Changethecolorofexistingunits)Player-Setplayer(Player2fromPlayers=Protoss)colorto(Player11)DarkGreen(Changethecolorofexistingunits)Player-Setplayer(Player3fromPlayers=Protoss)colorto(Player13)LightGreen(Changethecolorofexistingunits)Player-Makeplayer(Pickedplayer)andplayer(Player1fromPlayers=Terran)treateachotherasEnemyPlayer-Makeplayer(Pickedplayer)andplayer(Player2fromPlayers=Terran)treateachotherasEnemyPlayer-Makeplayer(Pickedplayer)andplayer(Player3fromPlayers=Terran)treateachotherasEnemyPlayer-Makeplayer(Pickedplayer)andplayer(Player1fromPlayers=Zerg)treateachotherasEnemyPlayer-Makeplayer(Pickedplayer)andplayer(Player2fromPlayers=Zerg)treateachotherasEnemyPlayer-Makeplayer(Pickedplayer)andplayer(Player3fromPlayers=Zerg)treateachotherasEnemyPlayerGroup-PickeachplayerinPlayers=Zerganddo(Actions)ActionsPlayer-Makeplayer(Pickedplayer)andplayer9treateachotherasAllyWithSharedVisionPlayer-Makeplayer9andplayer(Pickedplayer)treateachotherasAllyWithSharedVisionPlayer-Makeplayer(Pickedplayer)andplayer(Player1fromPlayers=Zerg)treateachotherasAllyWithSharedVisionPlayer-Makeplayer(Pickedplayer)andplayer(Player2fromPlayers=Zerg)treateachotherasAllyWithSharedVisionPlayer-Makeplayer(Pickedplayer)andplayer(Player3fromPlayers=Zerg)treateachotherasAllyWithSharedVisionPlayer-Makeplayer(Pickedplayer)andplayer(Pickedplayer)treateachotherasAllyWithSharedVisionPlayer-Setplayer(Player1fromPlayers=Zerg)colorto(Player04)Purple(Changethecolorofexistingunits)Player-Setplayer(Player2fromPlayers=Zerg)colorto(Player08)LightPink(Changethecolorofexistingunits)Player-Setplayer(Player2fromPlayers=Zerg)colorto(Player15)Pink(Changethecolorofexistingunits)Player-Makeplayer(Pickedplayer)andplayer(Player1fromPlayers=Terran)treateachotherasEnemyPlayer-Makeplayer(Pickedplayer)andplayer(Player2fromPlayers=Terran)treateachotherasEnemyPlayer-Makeplayer(Pickedplayer)andplayer(Player3fromPlayers=Terran)treateachotherasEnemyPlayer-Makeplayer(Pickedplayer)andplayer(Player1fromPlayers=Protoss)treateachotherasEnemyPlayer-Makeplayer(Pickedplayer)andplayer(Player2fromPlayers=Protoss)treateachotherasEnemyPlayer-Makeplayer(Pickedplayer)andplayer(Player3fromPlayers=Protoss)treateachotherasEnemyPlayer-MakeallplayersinPlayers=TerrantreateachotherasAllyWithSharedVisionPlayer-MakeallplayersinPlayers=ProtosstreateachotherasAllyWithSharedVisionPlayer-MakeallplayersinPlayers=ZergtreateachotherasAllyWithSharedVisionPlayer-Setplayer7colorto(Player02)Blue(Changethecolorofexistingunits)Player-Setplayer8colorto(Player07)Green(Changethecolorofexistingunits)Player-Setplayer9colorto(Player12)Brown(Changethecolorofexistingunits)Player-Turnplayer(Player1fromPlayers=Terran)ResourceSpendingOntowardsplayer7Player-Turnplayer(Player2fromPlayers=Terran)ResourceSpendingOntowardsplayer7Player-Turnplayer(Player3fromPlayers=Terran)ResourceSpendingOntowardsplayer7Player-Turnplayer(Player1fromPlayers=Protoss)ResourceSpendingOntowardsplayer8Player-Turnplayer(Player2fromPlayers=Protoss)ResourceSpendingOntowardsplayer8Player-Turnplayer(Player3fromPlayers=Protoss)ResourceSpendingOntowardsplayer8Player-Turnplayer(Player1fromPlayers=Zerg)ResourceSpendingOntowardsplayer9Player-Turnplayer(Player2fromPlayers=Zerg)ResourceSpendingOntowardsplayer9Player-Turnplayer(Player3fromPlayers=Zerg)ResourceSpendingOntowardsplayer9Player-Turnplayer7SharedControlOntowardsplayer(Player1fromPlayers=Terran)Player-Turnplayer7SharedControlOntowardsplayer(Player2fromPlayers=Terran)Player-Turnplayer7SharedControlOntowardsplayer(Player3fromPlayers=Terran)Player-Turnplayer8SharedControlOntowardsplayer(Player1fromPlayers=Protoss)Player-Turnplayer8SharedControlOntowardsplayer(Player2fromPlayers=Protoss)Player-Turnplayer8SharedControlOntowardsplayer(Player3fromPlayers=Protoss)Player-Turnplayer9SharedControlOntowardsplayer(Player1fromPlayers=Zerg)Player-Turnplayer9SharedControlOntowardsplayer(Player2fromPlayers=Zerg)Player-Turnplayer9SharedControlOntowardsplayer(Player3fromPlayers=Zerg)Player-Turnplayer7ResourceSpendingOntowardsplayer(Player1fromPlayers=Terran)Player-Turnplayer7ResourceSpendingOntowardsplayer(Player2fromPlayers=Terran)Player-Turnplayer7ResourceSpendingOntowardsplayer(Player3fromPlayers=Terran)Player-Turnplayer8ResourceSpendingOntowardsplayer(Player1fromPlayers=Protoss)Player-Turnplayer8ResourceSpendingOntowardsplayer(Player2fromPlayers=Protoss)Player-Turnplayer8ResourceSpendingOntowardsplayer(Player3fromPlayers=Protoss)Player-Turnplayer9ResourceSpendingOntowardsplayer(Player1fromPlayers=Zerg)Player-Turnplayer9ResourceSpendingOntowardsplayer(Player2fromPlayers=Zerg)Player-Turnplayer9ResourceSpendingOntowardsplayer(Player3fromPlayers=Zerg)UnitGroup-Pickeachunitin(Base-SCVunitsin(Entiremap)ownedbyplayerAnyPlayermatchingExcluded:Missile,Dead,Hidden,withatmostAnyAmount)anddo(Actions)ActionsUnit-Order(Pickedunit)to(SCV-GathertargetingMineralField[49.00,118.50])(ReplaceExistingOrders)UnitGroup-Pickeachunitin(Base-Probeunitsin(Entiremap)ownedbyplayerAnyPlayermatchingExcluded:Missile,Dead,Hidden,withatmostAnyAmount)anddo(Actions)ActionsUnit-Order(Pickedunit)to(Probe-GathertargetingMineralField[182.00,119.50])(ReplaceExistingOrders)UnitGroup-Pickeachunitin(Base-Droneunitsin(Entiremap)ownedbyplayerAnyPlayermatchingExcluded:Missile,Dead,Hidden,withatmostAnyAmount)anddo(Actions)ActionsUnit-Order(Pickedunit)to(Drone-GathertargetingMineralField[115.00,11.50])(ReplaceExistingOrders)Player-Modifyplayer(Player1fromPlayers=Terran)Terrazine:SetTo3Player-Modifyplayer(Player2fromPlayers=Terran)Terrazine:SetTo3Player-Modifyplayer(Player3fromPlayers=Terran)Terrazine:SetTo3Player-Modifyplayer(Player1fromPlayers=Protoss)Terrazine:SetTo3Player-Modifyplayer(Player2fromPlayers=Protoss)Terrazine:SetTo3Player-Modifyplayer(Player3fromPlayers=Protoss)Terrazine:SetTo3Player-Modifyplayer(Player1fromPlayers=Zerg)Terrazine:SetTo3Player-Modifyplayer(Player2fromPlayers=Zerg)Terrazine:SetTo3Player-Modifyplayer(Player3fromPlayers=Zerg)Terrazine:SetTo3General-If(Conditions)thendo(Actions)elsedo(Actions)If(Statusofplayer(Player1fromPlayers=Terran))==PlayingThenUnitSelection-AddBase-CommandCenter[54.50,113.50]tocontrolgroup2forplayer(Player1fromPlayers=Terran)UnitSelection-AddBase-Barracks(LeftLane)[41.50,102.50]tocontrolgroup3forplayer(Player1fromPlayers=Terran)UnitSelection-AddBase-Barracks(BottomMiddleLane)[63.50,97.50]tocontrolgroup4forplayer(Player1fromPlayers=Terran)UnitSelection-AddBase-Barracks(MiddleLane)[70.50,101.50]tocontrolgroup5forplayer(Player1fromPlayers=Terran)UnitSelection-AddBase-Barracks(TopLane)[65.50,126.50]tocontrolgroup6forplayer(Player1fromPlayers=Terran)ElseGeneral-If(Conditions)thendo(Actions)elsedo(Actions)If(Statusofplayer(Player2fromPlayers=Terran))==PlayingThenUnitSelection-AddBase-CommandCenter[54.50,113.50]tocontrolgroup2forplayer(Player2fromPlayers=Terran)UnitSelection-AddBase-Barracks(LeftLane)[41.50,102.50]tocontrolgroup3forplayer(Player2fromPlayers=Terran)UnitSelection-AddBase-Barracks(BottomMiddleLane)[63.50,97.50]tocontrolgroup4forplayer(Player2fromPlayers=Terran)UnitSelection-AddBase-Barracks(MiddleLane)[70.50,101.50]tocontrolgroup5forplayer(Player2fromPlayers=Terran)UnitSelection-AddBase-Barracks(TopLane)[65.50,126.50]tocontrolgroup6forplayer(Player2fromPlayers=Terran)ElseGeneral-If(Conditions)thendo(Actions)elsedo(Actions)If(Statusofplayer(Player3fromPlayers=Terran))==PlayingThenUnitSelection-AddBase-CommandCenter[54.50,113.50]tocontrolgroup2forplayer(Player3fromPlayers=Terran)UnitSelection-AddBase-Barracks(LeftLane)[41.50,102.50]tocontrolgroup3forplayer(Player3fromPlayers=Terran)UnitSelection-AddBase-Barracks(BottomMiddleLane)[63.50,97.50]tocontrolgroup4forplayer(Player3fromPlayers=Terran)UnitSelection-AddBase-Barracks(MiddleLane)[70.50,101.50]tocontrolgroup5forplayer(Player3fromPlayers=Terran)UnitSelection-AddBase-Barracks(TopLane)[65.50,126.50]tocontrolgroup6forplayer(Player3fromPlayers=Terran)ElseGeneral-If(Conditions)thendo(Actions)elsedo(Actions)If(Statusofplayer(Player1fromPlayers=Protoss))==PlayingThenUnitSelection-AddBase-Nexus[177.50,113.50]tocontrolgroup2forplayer(Player1fromPlayers=Protoss)UnitSelection-AddBase-Gateway(RightLane)[190.50,102.50]tocontrolgroup3forplayer(Player1fromPlayers=Protoss)UnitSelection-AddBase-Gateway(BottomMiddleLane)[168.50,97.50]tocontrolgroup4forplayer(Player1fromPlayers=Protoss)UnitSelection-AddBase-Gateway(MiddleLane)[161.50,101.50]tocontrolgroup5forplayer(Player1fromPlayers=Protoss)UnitSelection-AddBase-Gateway(TopLane)[166.50,126.50]tocontrolgroup6forplayer(Player1fromPlayers=Protoss)ElseGeneral-If(Conditions)thendo(Actions)elsedo(Actions)If(Statusofplayer(Player2fromPlayers=Protoss))==PlayingThenUnitSelection-AddBase-Nexus[177.50,113.50]tocontrolgroup2forplayer(Player2fromPlayers=Protoss)UnitSelection-AddBase-Gateway(RightLane)[190.50,102.50]tocontrolgroup3forplayer(Player2fromPlayers=Protoss)UnitSelection-AddBase-Gateway(BottomMiddleLane)[168.50,97.50]tocontrolgroup4forplayer(Player2fromPlayers=Protoss)UnitSelection-AddBase-Gateway(MiddleLane)[161.50,101.50]tocontrolgroup5forplayer(Player2fromPlayers=Protoss)UnitSelection-AddBase-Gateway(TopLane)[166.50,126.50]tocontrolgroup6forplayer(Player2fromPlayers=Protoss)ElseGeneral-If(Conditions)thendo(Actions)elsedo(Actions)If(Statusofplayer(Player3fromPlayers=Protoss))==PlayingThenUnitSelection-AddBase-Nexus[177.50,113.50]tocontrolgroup2forplayer(Player3fromPlayers=Protoss)UnitSelection-AddBase-Gateway(RightLane)[190.50,102.50]tocontrolgroup3forplayer(Player3fromPlayers=Protoss)UnitSelection-AddBase-Gateway(BottomMiddleLane)[168.50,97.50]tocontrolgroup4forplayer(Player3fromPlayers=Protoss)UnitSelection-AddBase-Gateway(MiddleLane)[161.50,101.50]tocontrolgroup5forplayer(Player3fromPlayers=Protoss)UnitSelection-AddBase-Gateway(TopLane)[166.50,126.50]tocontrolgroup6forplayer(Player3fromPlayers=Protoss)ElseGeneral-If(Conditions)thendo(Actions)elsedo(Actions)If(Statusofplayer(Player1fromPlayers=Zerg))==PlayingThenUnitSelection-AddBase-Hatchery[116.50,17.50]tocontrolgroup2forplayer(Player1fromPlayers=Zerg)UnitSelection-AddBase-SpawningPool(LeftLane)[89.50,22.50]tocontrolgroup3forplayer(Player1fromPlayers=Zerg)UnitSelection-AddBase-SpawningPool(LeftMiddleLane)[109.50,28.50]tocontrolgroup4forplayer(Player1fromPlayers=Zerg)UnitSelection-AddBase-SpawningPool(RightMiddleLane)[122.50,28.50]tocontrolgroup5forplayer(Player1fromPlayers=Zerg)UnitSelection-AddBase-SpawningPool(RightLane)[142.50,22.50]tocontrolgroup6forplayer(Player1fromPlayers=Zerg)ElseGeneral-If(Conditions)thendo(Actions)elsedo(Actions)If(Statusofplayer(Player2fromPlayers=Zerg))==PlayingThenUnitSelection-AddBase-Hatchery[116.50,17.50]tocontrolgroup2forplayer(Player2fromPlayers=Zerg)UnitSelection-AddBase-SpawningPool(LeftLane)[89.50,22.50]tocontrolgroup3forplayer(Player2fromPlayers=Zerg)UnitSelection-AddBase-SpawningPool(LeftMiddleLane)[109.50,28.50]tocontrolgroup4forplayer(Player2fromPlayers=Zerg)UnitSelection-AddBase-SpawningPool(RightMiddleLane)[122.50,28.50]tocontrolgroup5forplayer(Player2fromPlayers=Zerg)UnitSelection-AddBase-SpawningPool(RightLane)[142.50,22.50]tocontrolgroup6forplayer(Player2fromPlayers=Zerg)ElseGeneral-If(Conditions)thendo(Actions)elsedo(Actions)If(Statusofplayer(Player3fromPlayers=Zerg))==PlayingThenUnitSelection-AddBase-Hatchery[116.50,17.50]tocontrolgroup2forplayer(Player3fromPlayers=Zerg)UnitSelection-AddBase-SpawningPool(LeftLane)[89.50,22.50]tocontrolgroup3forplayer(Player3fromPlayers=Zerg)UnitSelection-AddBase-SpawningPool(LeftMiddleLane)[109.50,28.50]tocontrolgroup4forplayer(Player3fromPlayers=Zerg)UnitSelection-AddBase-SpawningPool(RightMiddleLane)[122.50,28.50]tocontrolgroup5forplayer(Player3fromPlayers=Zerg)UnitSelection-AddBase-SpawningPool(RightLane)[142.50,22.50]tocontrolgroup6forplayer(Player3fromPlayers=Zerg)ElseUI-Display"You start the game with 3 spawn tok..."for(Allplayers)toSubtitleareaGeneral-Wait30.0GameTimesecondsTrigger-TurnPlayerLeavesOffTrigger-TurnPlayerLeaves(Ingame)On
Yes I know the second trigger is sloppy, but I don't care to redo it. Why change something that's not broken ;p
What if this is adding the 3 computers players I have in the game to the selection EVEN though I specific user. That would make it so the 3 new human players I added wouldn't get to pick. Also the variable is only set to allow 9. I bet this is the problem...
This works fine and has worked until I increased the player count by 3 on my map. I made sure to increase the variables array amounts up by 3. Attached is a screen shot of the player proprieties.
What happens is six players are able to pick a hero and the last three cannot. I don't know why.
What I'm thinking is it has to do with the three new players I added in the player property because they are after the computer in order? Idk even know if that's the issue. This should work, but it doesn't.
Help please anyone?
@Zero0018: Go
I'm seeing a LOT of hard coded array calls there, shouldn't it just be for the triggering player instead?
Out of curiosity, are you testing this as a single player in different slots, or have you had 7 whole peeps in there? I know this wouldn't go over too well with more than 1 as they are all accessing the same dialog with it hard coded that way. That would let one person pick then no one else gets to from what I'm seeing.
Edit: So the hiding the dialog might allow the same hard coded dialog to work with multiple players, I'm rather certain destroying the dialog kills it for everyone though. Still not seeing why it would dislike one player more than another based on this post though.
Really not liking: Hero Selection Dialog Hero[1] == False either, if Hero Selection Dialog hero[] has to be true, and it is hard coded for only Hero Selection Dialog hero[1], how will anyone else use that?
@Deadzergling: Go
Sorry. Guess I should explain how it works.
The map opens with a dialog window with nine buttons on it.
It makes it so once you pick a hero, it destroys that specific hero dialog button so no one else can pick the hero. No duplicate heroes. Also it makes it so you can't pick another dialog button once you've picked a hero.
There is a trigger for each dialog item. I just didn't post them all.
And yes it works fine with 6 players all picking at the same time. It doesn't work for the 3 new players I added, which is what I'm having a problem with.
@Zero0018: Go
Ah I see, probably like 9 other ifs down there. I'm wondering if something got mixed up in all that, might be worth looking into the other hero if statements. Would it mess your map up completely to have the 3 new players get moved up? You thought it might be that, so might be worth trying. Other than that, the code looks a lot better now that you mention that, lol. These lines are a little ambiguous though:
General - If (Conditions) then do (Actions) else do (Actions)
If
Game Mode == False
Then
Dialog - Hide Hero Selection Dialog Box[0] for (Player group((Triggering player)))
Else
Dialog - Hide Hero Selection Dialog Box[1] for (Player group((Triggering player)))
Dialog - Destroy Hero Selection Dialog Items[1]
Unit - Create 1 Hero - Gregor for player (Triggering player) at Terran Hero Revive facing 270.0 degrees (No Options)
Unit - Make (Last created unit) Invulnerable
Variable - Set Hero Selection Number of Players = (Hero Selection Number of Players - 1)
Variable - Set Hero (Unit)[1] = (Last created unit)
In particular the Variable - Set Hero Selection Number of Players has me thinking maybe that part is getting screwed up somehow. I would assume such a variable is to keep track of when everyone has picked a hero, yes? Definitely look into what is going on there.
Set Hero Selection Number of Players = (Hero Selection Number of Players - 1) could that be your problem? After you added 3 new players, did you remember to increase that variable's value also? Other than having a lot more triggers than you should, that is the only problem I can find. you should also be able to condense all of your hero selection triggers into 1 trigger like this: UnitSelectionButtons = Dialog items with the picture of the hero UnitArray = The hero associated with the dialog item picked. Hero Pick Progression = If the player has picked a hero yet
Might help you clear up some clutter.
Skype: [email protected] Current Project: Custom Hero Arena! US: battlenet:://starcraft/map/1/263274 EU: battlenet:://starcraft/map/2/186418
@GlornII: Go
Ya this sets that up before making the dialog setup. Also the hero selection number of players is a condition that once it reaches 0 will start the game in another trigger.
Glorn I'll try that trigger out and see if it makes a difference. I still don't understand why adding 3 more players would cause those 3 players not to be able to pick.
So should this work. I added/changed a few things. With a few players it seems fine. Guess I'll try a full house. I didn't get how your Hero Pick Progression worked.
with that setup, your top trigger should be working; and the top trigger still looks.. right. Could there be any other triggers that might cause a problem? That action above, adding players to the player group; does that run on map init, or after the game starts? .1 for example) I know that in wc3, you couldnt "pick players" during map load, because the players would load in at different times than triggers, and could cause problems. Not sure if SC2 has the same problem; but I keep them separate in my map.
Also the above trigger I gave you, the "for each integer from 0 to 16" the second number is the total number of heroes you have in your game. If you have 9, set it to 9. or, well, 8; if you are setting [0] to a unit/dialog as well.
My map is a custom hero arena, there are 8 stages of building a hero, so I have to set their progression 8 times. For you though, you could set it to 0 and 1, or just use a booleen. It is the same variable as you use to determine if the player has picked a hero yet.
Also your "Variable - Set Hero Selection Number of Players = (Hero Selection Number of Players - 1)" you have a trigger that runs when that hits zero, correct? Maybe look through that trigger, see if there could be a problem there.
Skype: [email protected] Current Project: Custom Hero Arena! US: battlenet:://starcraft/map/1/263274 EU: battlenet:://starcraft/map/2/186418
@GlornII: Go
Ya it setups up everything on map init. How do you do it? Elapsed time 1 second? Well and why would this work for 6 players and not the 3 added ones?
If heroes have all been picked before timer runs out:
This is the trigger that fires after the timer expires:
This is the map ini trigger:
I really could use a solution to this problem. Haven't had internet access past few days.
@Zero0018: Go
Trigger - Turn (Current trigger) Off
off topic, but I didnt know you could turn a trigger off and still have the actions after it run.
Also as said above, there is a lot more text in that trigger than there ever should be; though, it may have nothing to do with your problem. Also, as said above, you should consider moving all of you "pick players" "pick units" function calls and stuff to an elapsed time .5 trigger; rather than init. I have had some problem with them in sc2, but I have 5 different starting triggers, all spaced out; because they were messing up on init. I run 1 on init, just setting variables. 1 on .5 that sets everything with players, units, teams, ect. Then I create dialogs (I have a lotttttt) through 3 other triggers; spread out from 1 second to 5 seconds.
On map init, things get loaded into the map over time; if you have a very long init, it takes longer to load it in; while other parts of the map may be lagging in generating, because of the init size.
Need more info:
The 3 players simply have nothing happen for them when they click on a hero icon in the dialog box? or they click it, it goes away, but they are left with no hero? Did you double and triple check all of your variable arrays?
Trigger - Run Starting Stuff (Ignore Conditions, Don't Wait until it finishes) Trigger - Run Player Left After Hero Pick? (Ignore Conditions, Don't Wait until it finishes)
those 2 triggers run at the same time; ignoreing conditions. Do the actions from 1 of them in any way at all, have anything to do with the actions of another? It could be the increase in a loop 1 in, makes an action in another happen sooner that it normally would in comparison.
Simple example... count to 6... now, count to 8... which one took longer? What is the time between loops? .0625 or something odd like that? that is .13 more seconds, while actions in that second trigger could be running. It is the off-the-wall idea, but if absolutely everything is correct in your map, there is a slim chance that could be the problem.
Skype: [email protected] Current Project: Custom Hero Arena! US: battlenet:://starcraft/map/1/263274 EU: battlenet:://starcraft/map/2/186418
@GlornII: Go
Ya if you put the turn trigger off as the first line, it will turn it off and still run the trigger one time. It's useful for times when a trigger could fire multiple times and create duplicate events. I learned that in the wc3 editor.
I'll try spacing it out over a duration, the hardest thing about it is getting 9 people to test to see if it works. Also attached is the variables. They are all set to 9, the ones that matter.
More Info:
I haven't been able to be one of those players, but when I asked them what exactly was happening they said they couldn't pick a hero so I'm assuming that means the buttons for the hero wasn't working. A hero also wasn't spawning. This was also breaking the map because the hero selection player group was > 0.
As for those two triggers I don't see why either of those would cause any problems. I get the logic behind it, but it has nothing to do with the hero picking.
Yes I know the second trigger is sloppy, but I don't care to redo it. Why change something that's not broken ;p
Update:
I just thought of something. So this trigger:
What if this is adding the 3 computers players I have in the game to the selection EVEN though I specific user. That would make it so the 3 new human players I added wouldn't get to pick. Also the variable is only set to allow 9. I bet this is the problem...