Creating permanent life book

Crusher

You can change this now in User CP.
Reaction score
121
So, I want something like when you kill a creep, to gain +1 Strength for 30/40/50 seconds (based on level).

But, when you kill hero, to gain 2/4/6 Strength which will last 30/40/50 seconds.

Any idea how to do this?

Note: it's an spell.
 

BlueMirage

Trust, but doubt.
Reaction score
39
Done. This should work, but I'm not sure what happens if the unit dies while it has the bonus.

Trigger:
  • Life Book
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Level of Your Ability for (Killing unit)) Greater than or equal to 1
    • Actions
      • Custom script: local integer i
      • Custom script: local unit u = GetKillingUnitBJ()
      • Set TempInteger = (Level of Your Ability for (Killing unit))
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Matching unit) is A structure) Equal to False
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Matching unit) is A Hero) Equal to False
            • Then - Actions
              • Custom script: set i = 1
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ((Matching unit) is A Hero) Equal to True
                • Then - Actions
                  • Custom script: set i = ( 2 * udg_TempInteger )
                • Else - Actions
        • Else - Actions
      • Custom script: set udg_TempInteger = i
      • Hero - Modify Strength of (Killing unit): Add TempInteger
      • Wait (20.00 + (10.00 x (Real((Level of Your Ability for (Killing unit)))))) game-time seconds
      • Custom script: set udg_TempInteger = i
      • Hero - Modify Strength of (Killing unit): Subtract TempInteger

Again, I've used some roundabout ways to make this trigger easier to change. It could be shorter, but you'd have to know more JASS to change it then.
 

Crusher

You can change this now in User CP.
Reaction score
121
While I'm already here and I don't want to create another thread for it, did anyone played World of Warcraft as a Warlock? Did you used that spell ''Siphon Life'' which drains mana and damages the target?

Let's make it more simplier in W3ish way. I want a no - target Drain Life. That means that I simply have to click it and then cast my spell which should be no target, and then the spell will occur. If I don't have any target, the spell won't occur.
 

BlueMirage

Trust, but doubt.
Reaction score
39
Oh yeah, I've heard that BJ's are bad because Blizzard JASS sucks.
Why exactly though?
 

Carnerox

The one and only.
Reaction score
84
I'm pretty sure they can cause leaks, also you forgot to null unit u.

JASS:
set u=null
 

Crusher

You can change this now in User CP.
Reaction score
121
You mean... Area of Effect?

No, I mean something like any WoW spell. You have to first select the target, then fire the spell (click on it, whatever) and then the spell will fire on the targeted unit.

Note: the spell is going to be no target.
 

BlueMirage

Trust, but doubt.
Reaction score
39
I don't think that's possible. If you select an enemy unit in Warcraft 3, you unselect your main unit. Thus, you won't be able to even cast a spell.
Though you could do a whole system based on it. If your own unit had an ability that would "Mark" an enemy, it would be possible. However, I don't think it's worth creating that system for only one spell. Sticking with the standard WC3 way seems wiser.
 

cleeezzz

The Undead Ranger.
Reaction score
268
>I thought units didn't leak?
>I don't think it's necessary, atleast not in GUI.

you have to null local handles (units)

Crusher, you can do a Unit Target Spell, use the spell on the target enemy, that does nothing, but a trigger remembers this unit. At the same time, after selecting a target, the spell is removed, and the Fire ability (non target) is added.
 

Zanderist

New Member
Reaction score
5
When I declare something locally, do I have to create a variable(as in the variable editor) for it or is it already created?
 

Carnerox

The one and only.
Reaction score
84
When I declare something locally, do I have to create a variable(as in the variable editor) for it or is it already created?
If you do,
JASS:
local unit u = GetTriggerUnit()


You do nothing with making a variable.

if you want to use GUI, like
JASS:
local unit u = udg_Caster()


then you'd have you make a variable, but remember with GUI variables they must be set somewhere to be used.
 
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