Local Variables

Jazradel

Helping people do more by doing less.
Reaction score
102
This trigger doesn't work at the moment. If I remove the local variable declarations it does. Why?
Code:
Psychokenesis
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Psychokenesis 
    Actions
        Custom script:   local unit udg_castunit
        Custom script:   local unit udg_spelltarget
        Custom script:   local unit udg_dummyunit
        Custom script:   local location udg_spellpoint
        Set castunit = (Casting unit)
        Set spelltarget = (Target unit of ability being cast)
        Set spellpoint = (Position of spelltarget)
        Game - Display to (All players) the text: (Name of castunit)
        Game - Display to (All players) the text: (Name of spelltarget)
        Unit - Add Storm Crow Form Edit  to spelltarget
        Unit - Pause spelltarget
        Unit - Remove Crow Form from spelltarget
        Wait 0.30 game-time seconds
        Animation - Change spelltarget flying height to ((Default flying height of spelltarget) + 500.00) at 1000.00
        Wait 0.50 game-time seconds
        Animation - Change spelltarget flying height to (Default flying height of spelltarget) at 1000.00
        Wait 0.25 game-time seconds
        Unit - Unpause spelltarget
        Unit - Create 1 dummy for (Owner of castunit) at spellpoint facing Default building facing degrees
        Set dummyunit = (Last created unit)
        Unit - Add Telekinesis Stun  to dummyunit
        Unit - Set Level of Telekinesis Stun  for dummyunit to (Level of Psychokenesis  for castunit)
        Unit - Order dummyunit to Orc Tauren Chieftain - War Stomp
        Unit - Add a 1.00 second Generic expiration timer to dummyunit
        Custom script:   call RemoveLocation( udg_spellpoint )
 

Rad

...
Reaction score
228
Looks like what xPheRe suggested to me to use psuedo-locals (or whatever).

Can you declare locals like that? Without having to set them to something? Does it have a script error or just not work right... Also you dont need to edit storm crow form just add then remove then do whatever (Dont need anything in between)
 

Jazradel

Helping people do more by doing less.
Reaction score
102
Sorry I didn't use more detail. The script doesn't give any errors and worked perfectly, but when I add in the lines to declare local variables the script suddenly stop working. No errors just nothing.

Where is the stuff about pseudo locals?

I thought the point of locals was declaring them at the trigger start and then setting them but I'll switch them round and see.
Edit: I just tried switching them round and it gave the error: Expected Code Expression

I know the thing about Storm Crow it's just left over from the guy I got the map from.
 

xPheRe

New Member
Reaction score
43
I don't know exactly where the error is, but maybe initializing locals to a value or even to null will help.
Code:
Custom script:   local unit udg_castunit = null
Custom script:   local unit udg_spelltarget = null
Custom script:   local unit udg_dummyunit = null
Custom script:   local location udg_spellpoint = null
 

Jazradel

Helping people do more by doing less.
Reaction score
102
Good idea, but I have a slightly better one. I'll set them in the same line like:
Code:
Custom script:   local unit udg_castunit = GetSpellAbilityUnit()

Edit: No luck so far. I've tried it with nulls, and the above.
 
B

BlizzScripts

Guest
if u have in the variable editor those varibles:
castunit
spelltarget
dummyunit
spellpoint
it probaly wont work but if u dont have it should...
also just to test remove the udg's from the variables
 

Jazradel

Helping people do more by doing less.
Reaction score
102
To be able to use local variables in the GUI you need to create them in the Variable Editor, then add a udg_(so the game looks for a pre-declared variable) whenever you refer to them in custom script.

Otherwise there would be no way to select them in the GUI would there?
 

xPheRe

New Member
Reaction score
43
Jazradel said:
Good idea, but I have a slightly better one. I'll set them in the same line like:
Code:
Custom script:   local unit udg_castunit = GetSpellAbilityUnit()
IT's a slighty better idea for those who know JASS, for people who don't know (or hate) it, use null.
Jazradel said:
Edit: No luck so far. I've tried it with nulls, and the above.
Try converting your trigger to custom script and posting it here to check for errors.
 

Jazradel

Helping people do more by doing less.
Reaction score
102
phyrex1an said:
I read at www.elilz.com that udg_ locals could start pointing to each other if you used more than 1. I never encountered this myself but it is worth a try.
Convert the trigger to jass and remove all udg_'s
I thought that just applied to carrying them over functions. I'll have a look, thanks for the pointer.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top