| Random Mixed Neutrals on any map |   This thread is  pages long:  1 2 · NEXT» |   
 |  
 
 Asheera 
  
     
         
Honorable 
Undefeatable Hero 
Elite Assassin 
  | 
 
 
posted August 21, 2008 03:20 PM | 
  bonus applied by VokialBG on 21 Aug 2008. | 
Edited by Asheera at 12:26, 29 Aug 2008. 
 | 
 
 
 
Random Mixed Neutrals on any map
  Hello all, in this thread I'll give you (the map makers especially) the possibility to place random mixed neutrals on any map. I'll use the script for this.  
 
First, add this piece of code to the start of the map script, or in "scripts/common.lua" file (my creation): 
 
  
 
-- Function for handling the generation of neutrals 
function CreateCreeps(creeps, creep_groups) 
  local additional_stacks = {} 
  local x = 1 
 
  -- go through all creeps 
  for i, creep in creeps do 
    -- get current creep properties 
    local creep_name = "Creep_" .. i 
    local groups = creep_groups[creep.group] 
    local group = groups[random(length(groups))+1] 
 
    -- create the monster on the map with the first stack 
    local stack = group[1] 
    CreateMonster(creep_name, stack.type, stack.min+random(stack.max-stack.min+1), creep.x, creep.y, creep.u or 0, creep.mood or 1, creep.courage or 2, creep.rot) 
 
    -- the additional stacks need to be created later, because it seems the engine doesn't create the creeps immediately when CreateMonster is called 
    -- this means that an object with the name 'creep_name' doesn't exist yet, and AddObjectCreatures will thus fail 
    -- so for now we just store the additional stack information in our temporary array 
    local numStacks = length(group) 
    for j = 2, numStacks do 
      stack = group[j] 
      additional_stacks[x] = {Name = creep_name, Id = stack.type, Num = stack.min+random(stack.max-stack.min+1)} 
      x = x + 1 
    end 
  end 
 
  -- pause the script so the engine can place the neutrals on the map 
  sleep(2) 
 
  -- add additional stacks (NOTE: only the first stack's size is adjusted by the difficulty of the game, we need to do it here manually) 
  x = GetDifficulty(); local y = 1.0 
  if     x == 0 then y = 0.5 
  elseif x == 2 then y = 1.12 
  elseif x == 3 then y = 1.4 
  end 
 
  for i, v in additional_stacks do 
    AddObjectCreatures(v.Name, v.Id, v.Num*y) 
  end 
end 
 
  
 
Now for each map you want random mixed neutrals, you'll need to place a map script in it. And also, don't place any neutrals on the map, the script will handle that for you. 
 
The Map script should look like the following (this is only an example - the possibilities are endless) 
 
  
 
-- define neutrals 
NeutralGroups = 
{ 
  -- group 1 
  [1] = 
  { 
    [1] = 
    { 
      [1] = {min = 50, max = 60, type =   1}, -- Peasants 
    }, 
    [2] = 
    { 
      [1] = {min = 20, max = 30, type =   2}, -- Conscripts 
      [2] = {min = 15, max = 35, type = 106}, -- Brutes 
    }, 
  }, 
 
  -- group 2 
  [2] = 
  { 
    [1] = 
    { 
      [1] = {min =  7, max = 11, type =   3}, -- Archers 
      [2] = {min =  5, max =  8, type =   5}, -- Footmen 
      [3] = {min =  1, max =  2, type = 108}, -- Vindicators 
    }, 
    [2] = 
    { 
      [1] = {min =  5, max =  7, type = 108}, -- Vindicators 
      [2] = {min = 13, max = 19, type = 106}, -- Brutes 
    }, 
    [3] = 
    { 
      [1] = {min = 14, max = 20, type =  43}, -- Pixies 
    }, 
    [4] = 
    { 
      [1] = {min =  7, max = 11, type = 146}, -- Wind Dancers 
    }, 
    [5] = 
    { 
      [1] = {min =  7, max =  9, type =  93}, -- Shield Guards 
      [2] = {min =  2, max =  4, type = 167}, -- Harpooners 
    }, 
    [6] = 
    { 
      [1] = {min = 16, max = 24, type =  57}, -- Gremlins 
      [2] = {min =  6, max =  9, type = 159}, -- Gremlin Saboteurs 
    }, 
    [7] = 
    { 
      [1] = {min = 10, max = 15, type =  71}, -- Scouts 
    }, 
    [8] = 
    { 
      [1] = {min =  3, max =  6, type =  73}, -- Blood Maidens 
      [2] = {min =  3, max =  3, type = 139}, -- Blood Sisters 
    }, 
    [9] = 
    { 
      [1] = {min = 12, max = 17, type =  16}, -- Familiars 
    }, 
    [10] = 
    { 
      [1] = {min = 17, max = 27, type =  29}, -- Skeletons 
      [2] = {min =  9, max = 12, type = 152}, -- Skeleton Warriors 
    }, 
  }, 
 
  -- group 3 
  [3] = 
  { 
    [1] = 
    { 
      [1] = {min = 30, max = 50, type =  3}, -- Archers 
    }, 
    [2] = 
    { 
      [1] = {min =  6, max = 20, type = 71}, -- Scouts 
    }, 
  }, 
 
  -- group 4 
  [4] = 
  { 
    [1] = 
    { 
      [1] = {min = 30, max = 50, type = 4}, -- Marksmen 
    }, 
  }, 
 
  -- group 5 
  [5] = 
  { 
    [1] = 
    { 
      [1] = {min = 20, max = 40, type = 5}, -- Footmen 
    }, 
  }, 
 
  -- group 6 
  [6] = 
  { 
    [1] = 
    { 
      [1] = {min = 10, max = 15, type = 7}, -- Griffins 
    }, 
  }, 
 
  -- group 7 
  [7] = 
  { 
    [1] = 
    { 
      [1] = {min = 10, max = 15, type = 8}, -- Imperial Griffins 
    }, 
  }, 
 
  -- group 8 
  [8] = 
  { 
    [1] = 
    { 
      [1] = {min = 6, max = 9, type = 10}, -- Inquisitors 
    }, 
  }, 
 
  -- group 9 
  [9] = 
  { 
    [1] = 
    { 
      [1] = {min = 4, max = 6, type = 11}, -- Cavaliers 
    }, 
  }, 
 
  -- group 10 
  [10] = 
  { 
    [1] = 
    { 
      [1] = {min = 4, max = 6, type = 111}, -- Champions 
    }, 
  }, 
 
  -- group 11 
  [11] = 
  { 
    [1] = 
    { 
      [1] = {min = 1, max = 3, type = 14}, -- ArchAngels 
    }, 
  }, 
} 
MapNeutrals = 
{ 
  [1] = {group =  1, x =  5, y = 76, rot =  90}, 
  [2] = {group =  2, x = 17, y = 83, rot =   0}, 
  [3] = {group =  3, x = 26, y = 91, rot =   0}, 
  [4] = {group =  4, x = 76, y = 90, rot =  90, u=1}, 
  [5] = {group =  1, x = 80, y = 99, rot =   0}, 
  [6] = {group =  1, x = 55, y =  1, rot = 270, u=1}, 
  [7] = {group =  3, x = 32, y = 44, rot =   0}, 
  [8] = {group =  8, x = 11, y = 37, rot = 180}, 
  [9] = {group =  5, x =  4, y = 82, rot =  90, u=1}, 
} 
 
-- place neutrals on the map 
CreateCreeps(MapNeutrals, NeutralGroups) 
 
  
 
The MapNeutrals table holds the neutral "objects" on the map. You have to specify the position (x, y), if it is underground (u=1 means it's underground) and the group of the neutrals. The group is a look up in the NeutralGroups table. For example, we see that group 1 spawns two possible neutrals (chosen randomly with equal chance at the start of the map): 
 
1. 50-60 Peasants   not mixed with anything 
2. 20-30 Conscripts AND 15-35 Brutes   mixed neutral stack 
 
The same for the other groups (group 2 is an interesting one, it has a lot of possible "choices" at the start of the map to choose from - some mixed, some not) 
 
(yes, type is the creature ID) 
 
  
 
NOTE: it takes some time to generate the neutrals at the start of the map (if there are a lot) - please be patient and wait until you can enter the town - that's a sign that the neutrals have been successfully added   
 
I hope Map Makers will like to create maps with mixed neutrals from now on  (no more Garrisons mixed neutrals only, etc)
 ____________ 
 
 | 
 
 
 
 |   
 Asheera 
  
     
         
Honorable 
Undefeatable Hero 
Elite Assassin 
  | 
 
 
posted August 21, 2008 04:22 PM | 
 | 
Edited by Asheera at 17:52, 21 Aug 2008. 
 | 
 
 
 
Misunderstandings? Post them here and I'll clarify  
 
EDIT: 28 Views and no Replies 
 ____________ 
 
 | 
 
 
 
 |   
 radar 
  
    
        
Responsible 
Legendary Hero 
Castle/Haven player 
  | 
 
 
posted August 21, 2008 06:01 PM | 
 | 
 | 
 
 
 
who the hell are you  
 ____________ 
 
 | 
 
 
 
 |   
 Asheera 
  
     
         
Honorable 
Undefeatable Hero 
Elite Assassin 
  | 
 
 
posted August 21, 2008 06:06 PM | 
 | 
 | 
 
 
 
Quote: who the hell are you  
  I'm from Nival [/joking] 
 
Now seriously, I just studied LUA and H5 scripting in my free time 
 ____________ 
 
 | 
 
 
 
 |   
 TheDeath 
  
    
         
Responsible 
Undefeatable Hero 
with serious business 
  | 
 
 
posted August 21, 2008 06:09 PM | 
 | 
 | 
 
 
 
Ash, I don't know how to say this, but you're a geek   
 
Only geeks study programming/scripting in their free time   
 
welcome to the HAXXOR community  
 
 | 
 
 
 
 |   
 Asheera 
  
     
         
Honorable 
Undefeatable Hero 
Elite Assassin 
  | 
 
 
posted August 21, 2008 06:11 PM | 
 | 
 | 
 
 
 
Aren't all community members geeks since they are fans of a video game?  
 
But enough offtopicness
 ____________ 
 
 | 
 
 
 
 |   
 Nebdar 
  
   
       
Promising 
Supreme Hero 
Generation N 
  | 
 
 
posted August 21, 2008 08:42 PM | 
 | 
 | 
 
 
 
Nice idea  but as for me it seems a lot of work it has to be done so much that I'm overwhelmed. 
 
so i have to delete all random neutrals and they will pop up anywhere?
 
 | 
 
 
 
 |   
 VokialBG 
  
     
        
Honorable 
Legendary Hero 
First in line 
  | 
 
 
posted August 21, 2008 08:52 PM | 
 | 
Edited by VokialBG at 21:09, 21 Aug 2008. 
 | 
 
 
 
 
 |   
 Asheera 
  
     
         
Honorable 
Undefeatable Hero 
Elite Assassin 
  | 
 
 
posted August 21, 2008 08:59 PM | 
 | 
Edited by Asheera at 21:24, 21 Aug 2008. 
 | 
 
 
 
Quote: Nice idea  but as for me it seems a lot of work it has to be done so much that I'm overwhelmed.
  You don't have to do really much work, since you don't have to understand the function (just copy-paste it) 
 
Quote: so i have to delete all random neutrals and they will pop up anywhere?
  It will be pretty hard to re-create the neutrals on an already neutral populated map, because you'll have to make the neutrals from scratch. 
 
 
 
Let's consider a new map and you want to add neutrals. Place a normal Random Neutral on the map where you want the random mixed stack, copy its position and place it in the MapNeutrals table. Something like this: (an example -> 5 and 76 are some arbitrary numbers) 
MapNeutrals  
{ 
  [1] = {group =  1, x =  5, y = 76, rot =  90}, 
} 
 
The rot value is the creep's orientation in degrees. Note that in the editor you have it in radians, and you'll need to convert it (multiply the radians by 57.295779513082) and then write it in the script. Also add a new value (u=1) if the stack is underground. After you're done adding the data to the script, delete the creep from the map. 
 
The "group" is defined in the other table, NeutralGroups. For example, the "normal" default neutrals have 7 groups - for each tier (you know, level 1 creep, level 5 creep, etc). My system is much more flexible, as you can add an unlimited number of groups, not to mention mixed stacks. 
 
The NeutralGroups table contains, on the first layer, the groups. 
 
NeutralGroups = 
{ 
  -- group 1 
  [1] = 
  { 
  }, 
} 
 
A group contains a list of possible neutral monsters. The function which I provided chooses from this list randomly. 
 
NeutralGroups = 
{ 
  -- group 1 
  [1] = 
  { 
    [1] = 
    { 
    }, 
    [2] = 
    { 
    }, 
  }, 
} 
 
Now, a neutral monster contains a list of neutral stacks. And each stack contains a minimum value, a maximum value, and a creature type (the ID). The function I provided chooses a random value between the min and max when creating the neutral stack. 
 
NeutralGroups = 
{ 
  -- group 1 
  [1] = 
  { 
    [1] = 
    { 
     [1] = {min = 50, max = 60, type =   1}, -- Peasants 
    }, 
    [2] = 
    { 
      [1] = {min = 20, max = 30, type =   2}, -- Conscripts 
      [2] = {min = 15, max = 35, type = 106}, -- Brutes 
    }, 
  }, 
} 
 
In the above example, group 1 neutrals will spawn either 50-60 Peasants (not mixed stack), or 20-30 Conscripts + 15-35 Brutes (mixed stack) 
 
  
 
Let's consider that you add another neutral with the same group on the map in underground. It should look like this: 
MapNeutrals  
{ 
  [1] = {group =  1, x =  5, y = 76, rot =  90}, 
  [2] = {group =  1, x = 54, y = 46, rot = 180, u = 1}, 
} 
 
  
 
You can simulate the Nival neutrals with my system as well. It has 7 groups (for each tier), each with 8 sub-groups (for each race), each with different min/max values depending on creature growth, and different types depending on the creature ID of course. 
 
 
 
EDIT: Vokial, I know you can place them, but my system generates RANDOM mixed neutrals.
 ____________ 
 
 | 
 
 
 
 |   
 Nebdar 
  
   
       
Promising 
Supreme Hero 
Generation N 
  | 
 
 
posted August 21, 2008 10:04 PM | 
 | 
Edited by Nebdar at 22:05, 21 Aug 2008. 
 | 
 
 
 
Quote:
  
 
First, add this piece of code to "scripts/common.lua" file (my creation): 
 
   
 
-- Function for handling the generation of neutrals 
function CreateCreeps(creeps, creep_groups) 
  local additional_stacks = {} 
  local x = 1 
 
  -- go through all creeps 
  for i, creep in creeps do 
    -- get current creep properties 
    local creep_name = "Creep_" .. i 
    local groups = creep_groups[creep.group] 
    local group = groups[random(length(groups))+1] 
 
    -- create the monster on the map with the first stack 
    local stack = group[1] 
    CreateMonster(creep_name, stack.type, stack.min+random(stack.max-stack.min+1), creep.x, creep.y, creep.u or 0, creep.mood or 1, creep.courage or 2, creep.rot) 
 
    -- the additional stacks need to be created later, because it seems the engine doesn't create the creeps immediately when CreateMonster is called 
    -- this means that an object with the name 'creep_name' doesn't exist yet, and AddObjectCreatures will thus fail 
    -- so for now we just store the additional stack information in our temporary array 
    local numStacks = length(group) 
    for j = 2, numStacks do 
      stack = group[j] 
      additional_stacks[x] = {Name = creep_name, Id = stack.type, Num = stack.min+random(stack.max-stack.min+1)} 
      x = x + 1 
    end 
  end 
 
  -- pause the script so the engine can place the neutrals on the map 
  sleep(2) 
 
  -- add additional stacks (NOTE: only the first stack's size is adjusted by the difficulty of the game, we need to do it here manually) 
  x = GetDifficulty(); local y = 1.0 
  if     x == 0 then y = 0.5 
  elseif x == 2 then y = 1.12 
  elseif x == 3 then y = 1.4 
  end 
 
  for i, v in additional_stacks do 
    AddObjectCreatures(v.Name, v.Id, v.Num*y) 
  end 
end 
 
  
 
Now for each map you want random mixed neutrals, you'll need to place a map script in it. And also, don't place any neutrals on the map, the script will handle that for you. 
 
The Map script should look like the following (this is only an example - the possibilities are endless) 
 
  
 
-- define neutrals 
NeutralGroups = 
{ 
  -- group 1 
  [1] = 
  { 
    [1] = 
    { 
      [1] = {min = 50, max = 60, type =   1}, -- Peasants 
    }, 
    [2] = 
    { 
      [1] = {min = 20, max = 30, type =   2}, -- Conscripts 
      [2] = {min = 15, max = 35, type = 106}, -- Brutes 
    }, 
  }, 
 
  -- group 2 
  [2] = 
  { 
    [1] = 
    { 
      [1] = {min =  7, max = 11, type =   3}, -- Archers 
      [2] = {min =  5, max =  8, type =   5}, -- Footmen 
      [3] = {min =  1, max =  2, type = 108}, -- Vindicators 
    }, 
    [2] = 
    { 
      [1] = {min =  5, max =  7, type = 108}, -- Vindicators 
      [2] = {min = 13, max = 19, type = 106}, -- Brutes 
    }, 
    [3] = 
    { 
      [1] = {min = 14, max = 20, type =  43}, -- Pixies 
    }, 
    [4] = 
    { 
      [1] = {min =  7, max = 11, type = 146}, -- Wind Dancers 
    }, 
    [5] = 
    { 
      [1] = {min =  7, max =  9, type =  93}, -- Shield Guards 
      [2] = {min =  2, max =  4, type = 167}, -- Harpooners 
    }, 
    [6] = 
    { 
      [1] = {min = 16, max = 24, type =  57}, -- Gremlins 
      [2] = {min =  6, max =  9, type = 159}, -- Gremlin Saboteurs 
    }, 
    [7] = 
    { 
      [1] = {min = 10, max = 15, type =  71}, -- Scouts 
    }, 
    [8] = 
    { 
      [1] = {min =  3, max =  6, type =  73}, -- Blood Maidens 
      [2] = {min =  3, max =  3, type = 139}, -- Blood Sisters 
    }, 
    [9] = 
    { 
      [1] = {min = 12, max = 17, type =  16}, -- Familiars 
    }, 
    [10] = 
    { 
      [1] = {min = 17, max = 27, type =  29}, -- Skeletons 
      [2] = {min =  9, max = 12, type = 152}, -- Skeleton Warriors 
    }, 
  }, 
 
  -- group 3 
  [3] = 
  { 
    [1] = 
    { 
      [1] = {min = 30, max = 50, type =  3}, -- Archers 
    }, 
    [2] = 
    { 
      [1] = {min =  6, max = 20, type = 71}, -- Scouts 
    }, 
  }, 
 
  -- group 4 
  [4] = 
  { 
    [1] = 
    { 
      [1] = {min = 30, max = 50, type = 4}, -- Marksmen 
    }, 
  }, 
 
  -- group 5 
  [5] = 
  { 
    [1] = 
    { 
      [1] = {min = 20, max = 40, type = 5}, -- Footmen 
    }, 
  }, 
 
  -- group 6 
  [6] = 
  { 
    [1] = 
    { 
      [1] = {min = 10, max = 15, type = 7}, -- Griffins 
    }, 
  }, 
 
  -- group 7 
  [7] = 
  { 
    [1] = 
    { 
      [1] = {min = 10, max = 15, type = 8}, -- Imperial Griffins 
    }, 
  }, 
 
  -- group 8 
  [8] = 
  { 
    [1] = 
    { 
      [1] = {min = 6, max = 9, type = 10}, -- Inquisitors 
    }, 
  }, 
 
  -- group 9 
  [9] = 
  { 
    [1] = 
    { 
      [1] = {min = 4, max = 6, type = 11}, -- Cavaliers 
    }, 
  }, 
 
  -- group 10 
  [10] = 
  { 
    [1] = 
    { 
      [1] = {min = 4, max = 6, type = 111}, -- Champions 
    }, 
  }, 
 
  -- group 11 
  [11] = 
  { 
    [1] = 
    { 
      [1] = {min = 1, max = 3, type = 14}, -- ArchAngels 
    }, 
  }, 
} 
MapNeutrals = 
{ 
  [1] = {group =  1, x =  5, y = 76, rot =  90}, 
  [2] = {group =  2, x = 17, y = 83, rot =   0}, 
  [3] = {group =  3, x = 26, y = 91, rot =   0}, 
  [4] = {group =  4, x = 76, y = 90, rot =  90, u=1}, 
  [5] = {group =  1, x = 80, y = 99, rot =   0}, 
  [6] = {group =  1, x = 55, y =  1, rot = 270, u=1}, 
  [7] = {group =  3, x = 32, y = 44, rot =   0}, 
  [8] = {group =  8, x = 11, y = 37, rot = 180}, 
  [9] = {group =  5, x =  4, y = 82, rot =  90, u=1}, 
} 
 
-- place neutrals on the map 
CreateCreeps(MapNeutrals, NeutralGroups) 
 
  
  
  
ok if i properly understand i have to copy this(without --descriptions) and i have to  "define neutrals" but it seems a lot of writing if i had to have all faction/neutral mixes right 
 
 | 
 
 
 
 |   
 Asheera 
  
     
         
Honorable 
Undefeatable Hero 
Elite Assassin 
  | 
 
 
posted August 21, 2008 10:45 PM | 
 | 
 | 
 
 
 
Yes, unfortunately it's a lot of work to create a wide variety of neutrals... 
 
But someone has to start, and if Nival don't do it then it's up to us 
 ____________ 
 
 | 
 
 
 
 |   
 TheDeath 
  
    
         
Responsible 
Undefeatable Hero 
with serious business 
  | 
 
 
posted August 21, 2008 11:15 PM | 
 | 
 | 
 
 
 
Personally, I like to write code, but you know, they call me the weird HAXXOR anyway so my advice is biased   
 
btw this is great, I guess, mixed neutrals might stop abuses  
 
 | 
 
 
 
 |   
 SimonaK 
  
   
       
Promising 
Supreme Hero 
  | 
 
 
posted August 21, 2008 11:48 PM | 
 | 
 | 
 
 
 
Quote: Yes, unfortunately it's a lot of work to create a wide variety of neutrals... 
 
But someone has to start, and if Nival don't do it then it's up to us 
   
 
RTMG does it extremely well. 
 
I already done this work. 
 
Moreover, the best is not to create code 
but to create code which creates code 
 
  
 
 
 | 
 
 
 
 |   
 Asheera 
  
     
         
Honorable 
Undefeatable Hero 
Elite Assassin 
  | 
 
 
posted August 22, 2008 12:01 AM | 
 | 
 | 
 
 
 
Quote: RTMG does it extremely well. 
 
I already done this work.
  You made a wide and balanced variety of mixed neutrals? 
 
Good for you  
 
Although it's pretty easy and straightforward to create mixed neutral groups in my table, it's a tedious job to make a lot of neutrals (to provide variety) there - and they also have to be somewhat balanced... 
 
It will be excellent if someone (like you did) will create the table with a lot of balanced neutral possibilities... unfortunately I'm not that good at testing and balance in this game.
 ____________ 
 
 | 
 
 
 
 |   
 SimonaK 
  
   
       
Promising 
Supreme Hero 
  | 
 
 
posted August 22, 2008 12:21 AM | 
 | 
 | 
 
 
 
I think the algo too complicated for nothing. 
 
and the work to make verrrry too tiresome. 
 
RTMG doesn't function like it and the variety of mixed neutrals is wide and balanced. 
 
the RTMG's algo is based on random numbers. 
 
A exemple:  
 
5 lucks on 6 that all creatures in mixed neutrals come from same faction. 
else a random number is selected to know how much factions will be mixed together. 
etc.. etc.. 
 
And this random concept accepts some existence of strange mix as haven+inferno 
 
the quantity about each tier uses a formula like: 
 
Quote: NewMonsterAmount = [AMO_AMOUNT * (1.4 ^ (AMO_TIER - (AMO_TIER - NEW_AMO_TIER)))]
   
 
 
BTW, If I would want to make your way, I would to create code which creates the code 
and not directly create the code. 
 
more dynamic, more effective, more palpitating 
 
 | 
 
 
 
 |   
 Asheera 
  
     
         
Honorable 
Undefeatable Hero 
Elite Assassin 
  | 
 
 
posted August 22, 2008 12:25 AM | 
 | 
 | 
 
 
 
I didn't want to be completely random though  (like yours) 
 
I think it's better to create more balanced team of neutrals (Zombies + Horned Demons is not such a good team, for example )
 ____________ 
 
 | 
 
 
 
 |   
 SimonaK 
  
   
       
Promising 
Supreme Hero 
  | 
 
 
posted August 22, 2008 12:39 AM | 
 | 
Edited by SimonaK at 00:40, 22 Aug 2008. 
 | 
 
 
 
I know and I understand. 
 
But this not allow to experimente some strange randomize situations 
and that is damage. 
 
Your « balanced team of neutrals », RTMG can obtains it with random, 5 times on 6, 
like a « normal » creation of team. 
 
BTW, if I want, in next version, I could create a check to active just balanced team of neutrals. 
 
Its enough 4 ligns of code to have just that in the map.   
 
Maybe I think too « random maps »   
 
 
 
 
 
 
 
 | 
 
 
 
 |   
 Asheera 
  
     
         
Honorable 
Undefeatable Hero 
Elite Assassin 
  | 
 
 
posted August 22, 2008 12:49 AM | 
 | 
 | 
 
 
 
Quote: Maybe I think too « random maps »  
  Hehe, maybe  
 
Still, at least with the script you'll get different neutrals each time you play the same map (no need to update it)  
 
But your work with that Random Map Generator is awesome 
 ____________ 
 
 | 
 
 
 
 |   
 Zenithale 
  
   
      
Promising 
Famous Hero 
Zen Mind 
  | 
 
 
posted August 25, 2008 05:59 PM | 
 | 
 | 
 
 
 
 
 |   
 Warmonger 
  
   
        
Promising 
Legendary Hero 
fallen artist 
  | 
 
 
posted August 25, 2008 06:46 PM | 
 | 
 | 
 
 
 
I actually did something similar for my currently developed map Cyclophobia (didn't expect adding linked joiners to be so complicated), though didn't know it could be linked to game code itself. Good job! 
 
Hopefully it will add some variety to duel maps. 
If anyone figures out how to place creatures by their power rating, it gets even better.
 
 | 
 
 
 
 |  | 
 | 
 
  |