Can someone tell me what's wrong?

johnnymra

New Member
Reaction score
14
I'm making a map with the wilderness survival idea, i am inspired by island troll tribes which is an extra cool map (10/10). I'm not so pro at that map but anyway the only that bothered me at that map it was that you could only be a troll... and i like all races from Warcraft so i said to make my own map with all the races.

Any way my problem is that for the moment i don't realise how to create heat from the fire. This is a trigger i tried but it doesn't work:
Trigger:
  • Events
    • Time - Every 1.00 seconds of game time
    • Actions
      • Unit Group - Pick every unit in (Units in (Entire map) matching ((Unit-type of (Picked unit)) Equal to Camp Fire)) and do (Actions)
        • Loop - Actions
          • Set fire = (Picked unit)
          • Unit Group - Pick every unit in (Units within 300.00 of (Position of fire)) and do (Player - Add 1 to (Owner of (Picked unit)) Current lumber)


I use lumber as heat.
Can someone point me in the right direction?
 

X-maul

AKA: Demtrod
Reaction score
201
uhmm? how does it work? I've never played that map, and i assume theres more like me - could you explain further?
 

johnnymra

New Member
Reaction score
14
Basically is a RPG map, you have a hero and you survive in the wild... you need to keep warm, eat food, hunt animals and find materials to build up buildings to create various items. Of course there are a lot of wild animals other teams that you fight against.

In my map i use the food to count the meat a player eaten and the lumber for the heat, because every player only has a hero it is theoretically simple but i don't know how to create a trigger that gives heat (lumber) when the hero is near a fire. I already created the triggers for losing heat and food if you dont stay near a fire/eat.
 

laxperson808

New Member
Reaction score
9
every X seconds
set unit_group=every unitwithin X range of unit type fire matching, matching unit is a hero == true
pick every unit in unit group and add X lumber to owner of pick unit.
call DestroyGroup (udg_unit_group)
 

johnnymra

New Member
Reaction score
14
Well This is what i did now:
Trigger:
  • Events
    • Time - Every 1.00 seconds of game time
    • Actions
      • Unit Group - Pick every unit in (Units in (Entire map) matching ((Unit-type of (Picked unit)) Equal to Camp Fire)) and do (Actions)
        • Loop - Actions
          • Set fire = (Picked unit)
          • Set heatedheroes = (Units within 300.00 of (Position of fire) matching (((Triggering unit) is A Hero) Equal to True))
          • Unit Group - Pick every unit in heatedheroes and do (Player - Add 2 to (Owner of (Picked unit)) Current lumber)
          • Custom script: call DestroyGroup(udg_heatedheroes)


But it doesn't work... any other ideas?

EDIT: hmm when i set heatedheroes i mistyped the condition but that should't be a problem because it would just pick all units

EDIT2: i just don't figure what to do... i tried about 4 different triggers with auras, buffs, regions and none work :(
 

johnnymra

New Member
Reaction score
14
Well i found one way to do it... but unfortunately this has a glitch

I create an ability with auto cast that the fire has and then every time a fire casts the ability, the owner of the targeted unit gets 2 heat (lumber).

It works fine but the only problem is that a player has to put the fire to actively use the ability... how could i make the fire use the ability passively? Is there a way to trigger it?

I made this trigger to add the heat... but as i said, the player has to use the ability of the fire even the ability is auto cast (made it from inner fire).
Trigger:
  • Events
    • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Warmth (campfire)
    • Actions
      • Player - Add 2 to (Owner of (Target unit of ability being cast)) Current lumber
 

johnnymra

New Member
Reaction score
14
if you mean the ability that spawns locusts then no... but i just don't see the point of this question.
 

Komaqtion

You can change this now in User CP.
Reaction score
469
He means the ability which the 'Locusts' of the ability 'Locust Swarm' has which makes them invulnerable and untargetable, as this ability also makes them unpickable with that action you're using :D

Anyways, you should change:
Code:
Unit Group - Pick every unit in (Units in (Entire map) matching ((Unit-type of [COLOR="Red"](Picked unit)[/COLOR]) Equal to Camp Fire)) and do (Actions)

That to (Matching unit) ;)
 

johnnymra

New Member
Reaction score
14
Well at last i found the solving,
Thanks to laxperson808 :)

It seems i was to eager to solve the problem and i didn't see that i had to put the condition as matching unit :D

Any way here's the trigger i made now and it works just fine.
Trigger:
  • Auto warm heroes
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in (Units of type Camp Fire) and do (Actions)
        • Loop - Actions
          • Set fire = (Picked unit)
          • Set warmheroes = (Units in (Region centered at (Position of fire) with size (300.00, 300.00)) matching (((Matching unit) is A Hero) Equal to True))
          • Unit Group - Pick every unit in warmheroes and do (Player - Add 2 to (Owner of (Picked unit)) Current lumber)
          • Custom script: call DestroyGroup(udg_warmheroes)


Thanks to all and good luck, also to those who might someday make a map like mine.
 

Ayanami

칼리
Reaction score
288
Well at last i found the solving,
Thanks to laxperson808 :)

It seems i was to eager to solve the problem and i didn't see that i had to put the condition as matching unit :D

Any way here's the trigger i made now and it works just fine.
Trigger:
  • Auto warm heroes
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in (Units of type Camp Fire) and do (Actions)
        • Loop - Actions
          • Set fire = (Picked unit)
          • Set warmheroes = (Units in (Region centered at (Position of fire) with size (300.00, 300.00)) matching (((Matching unit) is A Hero) Equal to True))
          • Unit Group - Pick every unit in warmheroes and do (Player - Add 2 to (Owner of (Picked unit)) Current lumber)
          • Custom script: call DestroyGroup(udg_warmheroes)


Thanks to all and good luck, also to those who might someday make a map like mine.

Just want to point out that your triggers leak. Leak-free version:

Trigger:
  • Auto warm heroes
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Set TempUnitGroup = (Units of type Camp Fire)
      • Unit Group - Pick every unit in TempUnitGroup and do (Actions)
        • Loop - Actions
          • Set Fire = (Picked unit)
          • Set TempPoint = (Position of Fire)
          • Set WarmGroup = (Units within 300.00 of TempPoint) matching (((Matching unit) is A hero) Equal to True))
          • Unit Group - Pick every unit in WarmGroup and do (Player - Add 2 to (Owner of (Picked unit)) Current lumber)
          • Custom script: call DestroyGroup(udg_WarmGroup)
          • Custom script: call RemoveLocation(udg_TempPoint)
      • Custom script: call DestroyGroup(udg_TempUnitGroup)
 

johnnymra

New Member
Reaction score
14
You're right, using variables is a lot more stable and without leaks but if the teams build up many fires i'm not sure it will work very fine. Correct me if i'm wrong please.
 

Ayanami

칼리
Reaction score
288
You're right, using variables is a lot more stable and without leaks but if the teams build up many fires i'm not sure it will work very fine. Correct me if i'm wrong please.

It doesn't matter. Even if there are numerous amount if fires in the map, variables won't malfunction.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top