• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Random Hero Tavern..

Status
Not open for further replies.
Level 2
Joined
Aug 15, 2007
Messages
26
Hello! I'm making a hero tavern on my map with several heroes on it and I want a random icon in my tavern that chooses a random hero. I believe that this would be very similar to the system thing in Footmen Frenzy..

I'm not sure I will need my old triggers, but I'll post them here aswell..

And one more thing, the random system always picks the same hero...

These are my triggers:

  • Events
    • Map initialization
  • Conditions
  • Actions
    • Player Group - Pick every player in (All players) and do (Actions)
      • Loop - Actions
        • Camera - Pan camera for (Picked player) to (Center of Region 012 <gen>) with height 0.00 above the terrain over 0.00 seconds
    • Set Total_Heroes = 7
    • Set Random_Count = 7
    • Set Hero_Array[1] = Druid of the Talon
    • Set Hero_Array[2] = Ugly Hunter
    • Set Hero_Array[3] = Shadow Caster
    • Set Hero_Array[4] = Secret Keeper
    • Set Hero_Array[5] = Wolf Rider
    • Set Hero_Array[6] = Tauren Chieftain
    • Set Hero_Array[7] = O.o Panda
    • For each (Integer A) from 1 to 7, do (Actions)
      • Loop - Actions
        • Set Random_Data[(Integer A)] = (Integer A)
I don't know if its right, I followed SD_Ryoko's http://world-editor-tutorials.thehelper.net/herotavern.php

  • Random Command
    • Events
      • Player - Player 1 (Red) types a chat message containing -random as An exact match
      • Player - Player 2 (Blue) types a chat message containing -random as An exact match
      • Player - Player 3 (Teal) types a chat message containing -random as An exact match
      • Player - Player 4 (Purple) types a chat message containing -random as An exact match
      • Player - Player 5 (Yellow) types a chat message containing -random as An exact match
      • Player - Player 6 (Orange) types a chat message containing -random as An exact match
      • Player - Player 7 (Green) types a chat message containing -random as An exact match
      • Player - Player 8 (Pink) types a chat message containing -random as An exact match
    • Conditions
      • (Number of units in (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True))) Equal to 0
    • Actions
      • Set Random_Hero = (Random integer number between 1 and Random_Count)
      • Unit - Create 1 Hero_Array[Random_Data[Random_Hero]] for (Triggering player) at ((Triggering player) start location) facing Default building facing degrees
      • Item - Create Scroll of Town Portal at ((Triggering player) start location)
      • Hero - Give (Last created item) to (Last created unit)
      • Item - Create |cff530080Horn of Cenarius at ((Triggering player) start location)
      • Hero - Give (Last created item) to (Last created unit)
      • Game - Display to (All players) for 15.00 seconds the text: ((Name of (Triggering player)) + ( has randomed + (Name of (Last created unit))))
      • Selection - Select (Last created unit) for (Owner of (Last created unit))
      • Player - Set (Triggering player) Current lumber to 0
      • Player Group - Pick every player in (All players) and do (Actions)
        • Loop - Actions
          • Player - Make (Unit-type of (Last created unit)) Unavailable for training/construction by (Picked player)
      • Set Random_Data[Random_Hero] = Random_Count
      • Set Random_Count = (Random_Count - 1)
  • Manual Pick
    • Events
      • Unit - A unit Sells a unit
    • Conditions
      • ((Sold unit) is A Hero) Equal to True
    • Actions
      • Player Group - Pick every player in (All players) and do (Actions)
        • Loop - Actions
          • Player - Make (Unit-type of (Sold unit)) Unavailable for training/construction by (Picked player)
      • Game - Display to (All players) for 15.00 seconds the text: ((Name of (Owner of (Sold unit))) + ( has chosen + (Name of (Sold unit))))
      • Selection - Select (Sold unit) for (Owner of (Sold unit))
Help is very apreaciated!
 
Last edited:
Level 9
Joined
Jun 26, 2007
Messages
659
forget what i've saying, the tuto explain you how to do some thing very complicated: an exclusive hero system
(if a player take the shadow caster, the other ones can't choose it too) is that you want?

(i don't think, because 7 exclusive heroes for 8 players, it's not possible)
 
Level 2
Joined
Aug 15, 2007
Messages
26
What I actually want is a hero tavern (with my heroes ofc) with an icon (question mark) you can
pick and get a random hero. If you've played footmen frenzy you'll know what I'm talking about.
 
Level 9
Joined
Jun 26, 2007
Messages
659
i've not played footmen frenzy

so if you just want an "random" choice:

  • Hero list init
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set Heroes_count = [COLOR="DimGray"]the number of different heroes in your map[/COLOR]
      • Set Hero_Array[1] = [COLOR="dimgray"]your first hero[/COLOR]
      • Set Hero_Array[2] = [COLOR="dimgray"]your second hero[/COLOR]
      • Set Hero_Array[3] = [COLOR="dimgray"]your third hero[/COLOR]
      • [COLOR="dimgray"]etc etc...[/COLOR]
  • Random Choice management
  • Events
    • Player - Player 1 (Red) types a chat message containing -random as An exact match
    • Player - Player 2 (Blue) types a chat message containing -random as An exact match
    • [COLOR="dimgray"]etc etc...[/COLOR]
  • Conditions
    • (Number of units in (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True))) Equal to 0
  • Actions
    • Unit - Create 1 Hero_Array[Random integer number between 1 and Heroes_count] for (Triggering player) at ((Triggering player) start location) facing Default building facing degrees
    • Game - Display to (All players) the text: (A player has randomed + (Name of (Last created unit)))
    • Selection - Select (Last created unit) for (Owner of (Last created unit))
 
Level 2
Joined
Aug 15, 2007
Messages
26
i've not played footmen frenzy

so if you just want an "random" choice:

  • Hero list init
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set Heroes_count = [COLOR="DimGray"]the number of different heroes in your map[/COLOR]
      • Set Hero_Array[1] = [COLOR="dimgray"]your first hero[/COLOR]
      • Set Hero_Array[2] = [COLOR="dimgray"]your second hero[/COLOR]
      • Set Hero_Array[3] = [COLOR="dimgray"]your third hero[/COLOR]
      • [COLOR="dimgray"]etc etc...[/COLOR]
Thanks man:thumbs_up: I'm gonna use this one..

Much easier than I suspected :eekani:

  • Random Choice management
  • Events
    • Player - Player 1 (Red) types a chat message containing -random as An exact match
    • Player - Player 2 (Blue) types a chat message containing -random as An exact match
    • [COLOR="dimgray"]etc etc...[/COLOR]
  • Conditions
    • (Number of units in (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True))) Equal to 0
  • Actions
    • Unit - Create 1 Hero_Array[Random integer number between 1 and Heroes_count] for (Triggering player) at ((Triggering player) start location) facing Default building facing degrees
    • Game - Display to (All players) the text: (A player has randomed + (Name of (Last created unit)))
    • Selection - Select (Last created unit) for (Owner of (Last created unit))

The thing is: I would rather not have a player to have to type -random for a random hero, so I want (in my hero tavern, where you eventually choose your heroes) a "unit" I can buy instead of choosing heroes that buys a random hero.

I hope I explained in a way that you would understand ..
 
Level 2
Joined
Aug 15, 2007
Messages
26
Hmm, I made a try :

  • Set stuff Copy
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set Total_Heroes = 7
      • Set Random_Count = 7
      • Set Hero_Array[1] = Druid of the Talon
      • Set Hero_Array[2] = Ugly Hunter
      • Set Hero_Array[3] = Shadow Caster
      • Set Hero_Array[4] = Secret Keeper
      • Set Hero_Array[5] = Wolf Rider
      • Set Hero_Array[6] = Tauren Chieftain
      • Set Hero_Array[7] = O.o Panda
      • Set Random_Count = (Random integer number between 1 and Random_Count)
  • Random
    • Events
      • Unit - A unit Sells a unit
    • Conditions
      • (Unit-type of (Sold unit)) Equal to Random Hero
    • Actions
      • Unit - Create 1 Hero_Array[(Random integer number between 1 and Random_Count)] for (Owner of (Sold unit)) at ((Owner of (Sold unit)) start location) facing Default building facing degrees
      • Item - Create Scroll of Town Portal at ((Owner of (Last created unit)) start location)
      • Hero - Give (Last created item) to (Last created unit)
      • Item - Create |cff530080Horn of Cenarius at ((Owner of (Last created unit)) start location)
      • Hero - Give (Last created item) to (Last created unit)
      • Game - Display to (All players) for 15.00 seconds the text: ((Name of (Owner of (Last created unit))) + ( has randomed + (Name of (Last created unit))))
      • Selection - Select (Last created unit) for (Owner of (Last created unit))
      • Player - Set (Owner of (Last created unit)) Current lumber to 0
      • Set Random_Count = (Random integer number between 1 and Random_Count)
The "Random Hero" unit is just a unit I made unselectable and won't be noticed ingame...

Now the problem is that I get the same unit every time I buy the "Random Unit" I get the same hero (shadow caster) for some reason..

I know there must be an easier way, but I just did it like this :thumbs_up:
 
Level 9
Joined
Jun 26, 2007
Messages
659
wrong, let see what is done...
Set Random_Count = 7
so Random_count is set to 7
Set Random_Count = (Random integer number between 1 and Random_Count)
so Random_count is now set to something between 1 and 7... maybe 3
and then a player choose random
Unit - Create 1 Hero_Array[(Random integer number between 1 and Random_Count)]
so the player have a hero between the first and maybe the 3rd
Set Random_Count = (Random integer number between 1 and Random_Count)
so Random_count is now set to something between 1 and maybe 3... maybe 2
an other player choose random
Unit - Create 1 Hero_Array[(Random integer number between 1 and Random_Count)]
so the player have a hero between the first and maybe the 2nd
Set Random_Count = (Random integer number between 1 and Random_Count)
so Random_count is now set to something between 1 and maybe 2... maybe 1
an other player choose random
Unit - Create 1 Hero_Array[(Random integer number between 1 and Random_Count)]
so the player have a hero between the first and the first
Set Random_Count = (Random integer number between 1 and Random_Count)
so Random_count is now set to something between 1 and 1... so 1
an other player choose random
Unit - Create 1 Hero_Array[(Random integer number between 1 and Random_Count)]
so the player have a hero between the first and the first
Set Random_Count = (Random integer number between 1 and Random_Count)
so Random_count is now set to something between 1 and 1... so 1
etc etc...

Unit - Create 1 Hero_Array[(Random integer number between 1 and 7)]
that's all, you give each player a random hero in 1, 2, 3, 4, 5, 6 or 7
 
Level 2
Joined
Aug 15, 2007
Messages
26
Is this suppose to work then?

  • Set stuff Copy
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set Total_Heroes = 7
      • Set Random_Count = 7
      • Set Hero_Array[1] = Druid of the Talon
      • Set Hero_Array[2] = Ugly Hunter
      • Set Hero_Array[3] = Shadow Caster
      • Set Hero_Array[4] = Secret Keeper
      • Set Hero_Array[5] = Wolf Rider
      • Set Hero_Array[6] = Tauren Chieftain
      • Set Hero_Array[7] = O.o Panda
  • Random
    • Events
      • Unit - A unit Sells a unit
    • Conditions
      • (Unit-type of (Sold unit)) Equal to Random Hero
    • Actions
      • Unit - Create 1 Hero_Array[(Random integer number between 1 and Random_Count)] for (Owner of (Sold unit)) at ((Owner of (Sold unit)) start location) facing Default building facing degrees
      • Item - Create Scroll of Town Portal at ((Owner of (Last created unit)) start location)
      • Hero - Give (Last created item) to (Last created unit)
      • Item - Create |cff530080Horn of Cenarius at ((Owner of (Last created unit)) start location)
      • Hero - Give (Last created item) to (Last created unit)
      • Game - Display to (All players) for 15.00 seconds the text: ((Name of (Owner of (Last created unit))) + ( has randomed + (Name of (Last created unit))))
      • Selection - Select (Last created unit) for (Owner of (Last created unit))
      • Player - Set (Owner of (Last created unit)) Current lumber to 0
And one more question: how do you make a hidden ability?
 
Level 2
Joined
Aug 15, 2007
Messages
26
Thanks, I got the spellbook thing going nicely :thumbs_up:

But I'm afraid that these triggers don't work yet.. I get the same hero every time ..

  • Set stuff Copy
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set Random_Count = 7
      • Set Hero_Array[1] = Druid of the Talon
      • Set Hero_Array[2] = Ugly Hunter
      • Set Hero_Array[3] = Shadow Caster
      • Set Hero_Array[4] = Secret Keeper
      • Set Hero_Array[5] = Wolf Rider
      • Set Hero_Array[6] = Tauren Chieftain
      • Set Hero_Array[7] = O.o Panda
  • Random
    • Events
      • Unit - A unit Sells a unit
    • Conditions
      • (Unit-type of (Sold unit)) Equal to Random Hero
    • Actions
      • Unit - Create 1 Hero_Array[(Random integer number between 1 and Random_Count)] for (Owner of (Sold unit)) at ((Owner of (Sold unit)) start location) facing Default building facing degrees
      • Item - Create Scroll of Town Portal at ((Owner of (Last created unit)) start location)
      • Hero - Give (Last created item) to (Last created unit)
      • Item - Create |cff530080Horn of Cenarius at ((Owner of (Last created unit)) start location)
      • Hero - Give (Last created item) to (Last created unit)
      • Game - Display to (All players) for 15.00 seconds the text: ((Name of (Owner of (Last created unit))) + ( has randomed + (Name of (Last created unit))))
      • Selection - Select (Last created unit) for (Owner of (Last created unit))
      • Player - Set (Owner of (Last created unit)) Current lumber to 0
Maybe I should ask somewhere else?
 
Status
Not open for further replies.
Top