• 🏆 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!

I need some help with map making

Status
Not open for further replies.
Level 15
Joined
Jan 12, 2011
Messages
1,197
Hi guys,

I would need some help in the following terms:

1. I would like the make the following: Illidan picks up a blood key item, and it opens an elven gate. I have already tried to make a trigger, but it did not work: http://www.hiveworkshop.com/attachments/névtele4444n-png.257946/?temp_hash=374e578cf3fc34e951c7dd0877248a2b

Can you tell me how to make it work?

2: In a cinematic I want Illidan to face an Archer, I mean looking at her. How do I do it?

3. In a cinematic, I would like to make dead Archer corpses, they would just lying around.

4: In a cinematic. I would like to do the following:

Arthas moves to Arthas. Then Arthas attacks Illidan, then Illidan Arthas.

5: In a custom map I placed a Tree of eternity next to a gold mine. However, when I play the map, the gold mine is not entangled, I have to do it from the tree of life. How do I fix it?

I appreciate every kind of help.
 

Attachments

  • Névtele4444n.png
    Névtele4444n.png
    581 KB · Views: 142

Jampion

Code Reviewer
Level 15
Joined
Mar 25, 2016
Messages
1,327
1. You use Moon Key in the condition and Blood Key in the action.
2.
  • Unit - Make Illidan face Archer over 0.00 seconds
4. Arthas moves to Arthas?
  • Move
    • Events
    • Conditions
    • Actions
      • Set Point = (Position of (Illidan))
      • Unit - Order Arthas to Move To Point
      • Custom script: call RemoveLocation(udg_Point)
The other answers will follow soon.

3.
  • Corpse
    • Events
    • Conditions
    • Actions
      • Set Point = Position, where you want to create a corpse
      • Unit - Create a Archer corpse for Player 1 (Red) at Point
      • Custom script: call RemoveLocation(udg_Point)
5. You can order to entangle a gold mine instantly
  • Unit - Order Tree of Eternity to Night Elf Tree Of Life - Entangle (Instant) Gold Mine
 
Last edited:

Jampion

Code Reviewer
Level 15
Joined
Mar 25, 2016
Messages
1,327
Create a point variable in the variabel editor. In the trigger it should be like in 3.: Store the position, where you want to create the corpse to the variable. Create the corpse at the position of the variable. Remove the Position using custom script. The use of the variable is to prevent a leak. If you do not know what leaks are or how to prevent them, you should check out the Things that leak sticky post.

Note that corpses are decaying. The will only stay there for a certain amount of time. You can use
  • Unit - Suspend corpse decay for (Last created unit)
to stop the decay.
 
Level 15
Joined
Jan 12, 2011
Messages
1,197
Thank you very much. :) I could make the triggers, and the variables, but I see only one corpse (this would be in a cinematic) and is disappears after the cinematic. I don't know why. :( I set the suspend corpse decay, too.

I attach an image and my map below. Maybe it is because of the number of triggers? And can you check in the Arthas cinematic, why Illidan does not attack Arthas? I set the trigger, but nothing happens. Thanks in advance
 

Attachments

  • IllidansPath.w3x
    340.5 KB · Views: 29
  • Corpsebug.png
    Corpsebug.png
    710.9 KB · Views: 50

Jampion

Code Reviewer
Level 15
Joined
Mar 25, 2016
Messages
1,327
you always used point 1 in your create corpse function, but you set point 2/3/4 afterwards. You should always use point1. You only need multiple points, if you need them at the same time. Here you can do it one after another.
  • Actions
    • Set point1 = (Center of (Playable map area))
    • Unit - Create a Archer corpse for Player 3 (Teal) at point1
    • Custom script: call RemoveLocation(udg_point1)
    • Set point1 = (Center of (Playable map area))
    • Unit - Create a Archer corpse for Player 3 (Teal) at point1
    • Custom script: call RemoveLocation(udg_point1)
    • Set point1 = (Center of (Playable map area))
    • Unit - Create a Archer corpse for Player 3 (Teal) at point1
    • Custom script: call RemoveLocation(udg_point1)
You used pause all units. Because of this Illidian/Arthas cannot move/attack.
For units to do targeted orders (attack) they need to have vision of the target.
Vision should be no problem here, because they are standing next to each other.

You could make Player2 and Player4 allies during the cinematic, so they do not auto attack units.
Unpause Illidan and Arthas before ordering them.
 
Last edited:
Level 15
Joined
Jan 12, 2011
Messages
1,197
Thank you very much, the corpses are working. :) But they are still decaying, despite the suspend corpse trigger. Luckily Illidan moved to Arthas, so that is working, too. And the ally trigger was successful.

How do I make that? if Arthas has below 100 health, it becomes invulnurable?

Are the cameras good in my map? Or should I fix their angle?
 

Jampion

Code Reviewer
Level 15
Joined
Mar 25, 2016
Messages
1,327
Condition:
If Arthas takes more damage than hos life-100 means that he would have below 100 hp afterwards.
Actions:
The Unit-Takes Damage Event fires before the actual damage is taken.
Because of this if I set Arthas to invulnerable he would not take damage from the last hit.
Therefore I need to trigger the damage from the last hit.

  • Damage
    • Events
      • Unit - Arthas (Evil) 0000 <gen> Takes damage
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Damage taken) Greater than ((Life of Arthas (Evil) 0000 <gen>) - 100.00)
        • Then - Actions
          • Unit - Make Arthas (Evil) 0000 <gen> Invulnerable
          • Unit - Set life of Arthas (Evil) 0000 <gen> to (Max(1.00, ((Life of Arthas (Evil) 0000 <gen>) - (Damage taken))))
        • Else - Actions
I did not pay much attention to the cameras. :p I did notice in the opening cinematic, when the camera shows the archer, that you can see a black part of Illidan. It's the Beginning Copy camera. You should zoom more towards the archer, so Illidan's foot cannot be seen. You can increase FOV afterwards to make the archer smaller again.
I like your terrain btw. The hill with the satyrs looks awesome.

Some minor changes I would do:

Use the instant entangle, so the gold mine is already finished when you start.
  • Unit - Order Tree of Eternity 0150 <gen> to Night Elf Tree Of Life - Entangle (Instant) Gold Mine 0001 <gen>
Order the wisps to start harvesting.

Some other tips:

The trigger cinematic skipping does not work. Skipping cinematics is much work to do, sadly. :(
Usually you need one trigger for each cinematic to skip.

  • Cinematic Arthas
    • Events
    • Conditions
    • Actions
      • -------- do the intitializaion of the cinematic --------
      • -------- set camera/filter, cinematic mode, ... --------
      • -------- At the beginning of a cinematic you set a variable, that allows you to skip this cinematic --------
      • -------- the index should be unique for every cinematic --------
      • Set CinematicIsOn[0] = True
      • -------- you do that stuff you usually do in cinematics --------
      • Cinematic - Send transmission to (All players) from Arthas (Evil) 0117 <gen> named Arthas: Play No sound and display blabla. Modify duration: Set to 7.00 seconds and Wait
      • -------- after each wait you check, if the cinematic was skipped --------
      • -------- if it was skipped you skip the remaining actions --------
      • -------- else do nothing --------
      • -------- in the send transmission is also a wait, if you set it to wait --------
      • If (CinematicIsOn[0] Equal to False) then do (Skip remaining actions) else do (Do nothing)
      • -------- then you do some other stuff --------
      • Set Point = (Center of (Playable map area))
      • Unit - Order Arthas (Evil) 0117 <gen> to Move To Point
      • Custom script: call RemoveLocation(udg_Point)
      • Wait 2.00 seconds
      • -------- another wait --------
      • If (CinematicIsOn[0] Equal to False) then do (Skip remaining actions) else do (Do nothing)
      • -------- at the end you can run the skip trigger for the respective cinematic --------
      • Trigger - Run Cinematic Arthas Skip <gen> (checking conditions)

  • Cinematic Arthas Skip
    • Events
      • Player - Player 2 (Blue) skips a cinematic sequence
    • Conditions
      • CinematicIsOn[0] Equal to True
    • Actions
      • -------- a cinematic can only be skipped, if it was not skipped already --------
      • Set CinematicIsOn[0] = False
      • -------- the skip trigger assures, that if you skip, the result is the same, as if you would have watched the cinematic --------
      • -------- you ordered arthas in the cinematic to go to a certain point --------
      • -------- now you instantly move him to this position --------
      • Set Point = (Center of (Playable map area))
      • Unit - Move Arthas (Evil) 0117 <gen> instantly to Point
      • Custom script: call RemoveLocation(udg_Point)
      • -------- do the ending of the cinematic --------
      • -------- set camera/filter, cinematic mode, ... --------

These triggers follow the system shown here:
Making Cinematics Skippable

In your triggers with
  • Unit - A unit enters Region
you should always use
  • Trigger - Turn off (This trigger)
first, so the trigger only fires once.
 
Level 15
Joined
Jan 12, 2011
Messages
1,197
Thank you very much for your help. :) Especially the cinematic skipping tip. It did not work, because I had not set it properly, did not know how to make it. Yes, it will take a lot of time to do it, but when I have time (next week) I am gonna work on it.

I also used Turn off trigger in each region-enter trigger. Thanks. I also fixed the entangle trigger, and ordered wisps to mine gold and harvest lumber.

However, I could not make this:
  • (Damage taken) Greater than ((Life of Arthas (Evil) 0000 <gen>) - 100.00)
Should i use Integer or Real comparison? I have been searching for an hour to find it, but I could not. How do I find it?

I am glad you like the terrain, the whole map will have finished terrain, but it will take time. I also fixed the camera. This map will be a part of the Illidan's Path campaign, consisting of 10-15 levels. I will make a project thread for it.
 

Jampion

Code Reviewer
Level 15
Joined
Mar 25, 2016
Messages
1,327
real comparison, event response - damage taken. It's under e .
This map will be a part of the Illidan's Path campaign, consisting of 10-15 levels. I will make a project thread for it.
Nice, I am also doing a campaign at the moment.
 
Level 15
Joined
Jan 12, 2011
Messages
1,197
Thank you very much, I could almost make it, like this: See photo. I could not do this: (Max(1.00, ((Life of Arthas (Evil) 0000 <gen>) How do I make it? Unfortunately, I am not very good at triggering, but i am learning it, of course.

I attach my map again. Is the camera alright now? And are the other cameras ok, too? Does the Terrain Fog look good?

Good to hear, what kind of campaignare you making? Good luck with it. :)
 

Attachments

  • Trigger1.png
    Trigger1.png
    53.2 KB · Views: 51
  • IllidansPath.w3x
    494.9 KB · Views: 30

Jampion

Code Reviewer
Level 15
Joined
Mar 25, 2016
Messages
1,327
Unit set life to:

Math Max

Value1 => 1.00
Value2 => Arithmetic

1.00 => Unit Property Life of unit
+ => -
1.00 => event response - damage taken

GUI is pretty bad, if you need a lot of artithmetic functions. In JASS you can simply write the code, which I think is much easier to do. Especially if you want to change something.

I am making a Demon campaign. It's similar to standard blizzard campagins, just with a different race.
 
Status
Not open for further replies.
Top