Jass, ngôn ngữ cơ bản của War 3 - Các bạn vào tham khảo

Thảo luận trong 'World Editor' bắt đầu bởi hyaTHa_dk, 9/8/06.

  1. hyaTHa_dk

    hyaTHa_dk Mr & Ms Pac-Man

    Tham gia ngày:
    10/4/05
    Bài viết:
    235
    Nơi ở:
    Hà Nội
    hình như còn phải destroyeffect do' nữa ....

    còn bạn chịu khó đợi, phái mưa của bạn tui sẽ làm cho multi hero cast ..... đc chưa ?
    ----------------------------------------------------------------------
    thế không ai hỏi gi` về bài trên ah ?
    tui còn nghĩ đến những mem khác chưa biết nhiều đến cách thức làm phép, nhiều khi nghĩ ra phép rồi mà ko làm đc ..... thế nên mong bạn thông cảm, tui sẽ cố gắng post tut nhanh hơn chút.... vì giờ cũng hơi rảnh
     
  2. Diệp Thanh

    Diệp Thanh Kirin Tor Moderator Lão Làng GVN

    Tham gia ngày:
    7/2/04
    Bài viết:
    4,398
    À...bài trên thì anh hiểu hết rồi...tuy nhiên mới nghiệm ra phép cast chain lightning mà Frost nova mỗi target đó..rất hay..cám ơn Hy tha nhé...(Thực ra thích từ cái hồi down spell pack của em về xem nhưng lúc ấy còn sợ Jass)
    Hytha rảnh thì post bài tiếp đi..về một số thứ mà GUI Làm ko được hoặc ko thể convert được ý...
    Giờ mới có dịp xem lại mấy map Demo Jass quý giá ở trang 1 :D
     
  3. Vua_Do_Hoa

    Vua_Do_Hoa Mr & Ms Pac-Man

    Tham gia ngày:
    30/3/08
    Bài viết:
    217
    Nơi ở:
    Tp Hồ Chí Minh
    :DOkei.
    Hum nay troi mua sẵn post một bài rất ư là quan trong đối với một số người yêu thích tìm hiểu JASS like me.:D

    Ai muốn tiềm hiểu thêm liên hệ tác giả , not me, him
     
  4. sukaraki

    sukaraki Donkey Kong

    Tham gia ngày:
    12/5/08
    Bài viết:
    356
    Nơi ở:
    Demonworld
    @ to Vua_Do_Hoa :
    - Cảm ơn nhóc, đây là việc chính nghĩa duy nhất mà em làm từ khi bước vào forum tới giờ [for me] :))

    -Còn 1 việc quan trọng muốn nói riêng với em : tên của em , ban đầu anh nghĩ là Vua Do Hoa ~ tên Hàn Quốc.Vì bên Hàn có tên Do cheun , Do Hoa , Do ... nói chung là 1 cái tên Hàn. Nhưng sau đó lại nghe em tự xưng là Vua Dở Hóa . Tiếp đó lại muốn anh gọi là Vua Đồ Họa . Chà có 1 cái tên mà sao 3 nghĩa hiểu đều ổn >"< tiếng Việt 0 dấu thật nguy hiểm ,nguy hiểm 8-}
     
  5. hyaTHa_dk

    hyaTHa_dk Mr & Ms Pac-Man

    Tham gia ngày:
    10/4/05
    Bài viết:
    235
    Nơi ở:
    Hà Nội
    lên tìm 1 soft tên là "Jass Shop Pro 1.4.3.6" thì phải
    lên là, có tất,
    + hỗ trợ viết jass (hiện popup để viết dễ dàng hơn)
    + check lỗi
    + tra cứu function
    + nếu ai dùng caster system thì cũng có luôn ....
    ......

    hoặc có thể lên thẳng wc3campaigns, trên đấy có nhiều thứ hay lắm :D
     
  6. Diệp Thanh

    Diệp Thanh Kirin Tor Moderator Lão Làng GVN

    Tham gia ngày:
    7/2/04
    Bài viết:
    4,398
    Hê hê...vậy là copy được cái system unit path của Zek rùi..đỡ quá..trước kia làm = GUI lên tới 7, 8 trigger...cố lên anh em...mình finish được thằng Paladin rồi.

    À mà anh em cho tớ hỏi.
    Tớ muốn làm cái spell Holy incantation - miễn nhiễm với Diseas.. Tức là khi đối thủ cast lên mà Paladin đã học Holy Incantation và Sacred Strength thì sẽ remove cái buff đó.
    Jass nó xem buff như abi nên code như này phải ko:

    Nhưng sao anh làm hoài ko được hè ???
     
  7. god_of_the_noob

    god_of_the_noob Mr & Ms Pac-Man

    Tham gia ngày:
    6/3/08
    Bài viết:
    188
    Nơi ở:
    Bốn bể là nhà
    anh em nhà ta vỗ tay cho em [​IMG] cái nào....bài guide nì thực sự quý giá chúng ta=D>=D>=D>=D>=D>=D>
     
  8. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    @ a Rex, anh viết sai rồi, UnitRemoveAbility( unit, buffcode ) mới đúng
     
  9. Vua_Do_Hoa

    Vua_Do_Hoa Mr & Ms Pac-Man

    Tham gia ngày:
    30/3/08
    Bài viết:
    217
    Nơi ở:
    Tp Hồ Chí Minh
    có anh nào biết cách đăt biến
    để làm gì ko ?
    Sử dụng nó ra sao...::(
    Cai' tre^n em hoi chi la` chung chung. ai do huong dan day` du du`m em di
    (Dang danh may tu nhien hu bo go~ tieng' viet a`):-s
     
  10. Diệp Thanh

    Diệp Thanh Kirin Tor Moderator Lão Làng GVN

    Tham gia ngày:
    7/2/04
    Bài viết:
    4,398
    globals
    endglobas

    để đóng và mở một khối lệnh có chứa các biến toàn cục..(có thể được gọi bởi bất kì function nào)

    previte này là vJass rồi..tên rất rõ ràng nó gán các biến thuộc dạng private mà chỉ các hàm trong khối lênh gọi được...
    Ở đây có lẽ nằm trong Scope/endscope hoặc struct...
     
  11. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    @Vua_Do_Hoa, cái đó là khai báo biến global. đấy là feature trong vJass.
    Bình thường nếu em extract script từ trong map ra (File \ Export Script... ) khi mở ra bằng notepad, em sẽ thấy các biến global (mà ấn Ctrl + B để khai báo) đc khai báo như sau: (ví dụ có 2 biến Count, integer và Amount, real)
    Mã:
    globals
        integer udg_Count
        real udg_Amount
    endglobals
    Nhưng các biến đc khai báo: trong "block" globals.... endglobals này thì cho dù có udg_ đằng trước tên, nó cũng ko hiện ra ở trong hộp Ctrl + B, tức là dùng jass để truy nhập.
    ---
    Còn cái "private" hoặc "public" ở đằng trước, có thể hiểu là làm cho biến đó là biến "riêng" hay "chung" trong trường hợp đặt trong 1 library hoặc 1 scope. Tên biến sẽ đc thêm "<tên của library hoặc scope>_" đằng trước, mục đích có lẽ là để đỡ trùng tên :|

    Ví dụ 1 library:

    Mã:
    library Tom
        globals
            private integer Count
            public real Amount
        endglobals
    endlibrary
    Viết như trên thì ta sẽ có 2 biến Tom_Count và Tom_Amount, nhg chú ý, tên biến chỉ đổi như vậy khi map script đc kiểm tra (syntax check).
    Còn sự khác nhau giữa "private" và "public" là các biến "private" chỉ cho phép truy nhập trong library/scope chứa nó, còn biến "public" thì truy nhập bình thường, như biến ko có "public", nhưng tên biến sẽ khác khi script đc kiểm tra. (nhưng vấn đề này ko cần quan tâm :-j )

    Mã:
    library Tom
        globals
            private integer Count
            public real Amount
        endglobals
    endlibrary
    
    library Tom2
        function Test takes nothing returns nothing
            set Count = 5     //báo lỗi
            set Amount = 10.  //ok
        endfunction
    endlibrary
    private và public có lẽ chỉ để giải quyết vài vấn đề về tên biến.
     
  12. Vua_Do_Hoa

    Vua_Do_Hoa Mr & Ms Pac-Man

    Tham gia ngày:
    30/3/08
    Bài viết:
    217
    Nơi ở:
    Tp Hồ Chí Minh
    Thế có cách nào khai báo biến dùng cho tất cả function trong 1 trigger ko.
    Ví dụ như đặt một biến
    sau đó qua nhiều function cùng set u = ...().
    không cần phải dùng local gọi lại nữa

    ________--
    Còn library thì mình có bắt buộc bỏ vào không
     
  13. god_of_the_noob

    god_of_the_noob Mr & Ms Pac-Man

    Tham gia ngày:
    6/3/08
    Bài viết:
    188
    Nơi ở:
    Bốn bể là nhà
    cho mình hỏi mấy cái này trong trig là ji2...nó convert ko bít đọc:
    local unit Caster = GetTriggerUnit()
    local integer i = 0
    local group UnitGroup
    local unit TargetRandom
    local unit Target = GetSpellTargetUnit()
    local effect Phoenix
    local location R
    local real Damage = GetRandomInt(280, 320)
    local integer Amount = ( GetHeroStatBJ(bj_HEROSTAT_AGI, GetSpellAbilityUnit(), true) / 4 )
     
  14. Diệp Thanh

    Diệp Thanh Kirin Tor Moderator Lão Làng GVN

    Tham gia ngày:
    7/2/04
    Bài viết:
    4,398
    Ok...2 Hero đầu tiên đã xong...mình sẽ làm từ đơn giản đến phức tạp..tuy nhiên trình độ Jass còn non nên cần Tom, Hytha hay Zek kiểm tra giùm..xem code đã tối ưu chưa..có leak chỗ nào ko..

    Về spell thì mình đã post ở topic Hero rồi.
    Map demo kèm ở dưới vì GVN k có Jass tag nên khó nhòm..(chú ý: tài nguyên của Project..cấm share lung tung)

    Tom nhớ giữ mấy cái spell cũ em làm đi nhé...À, mà ko biết mấy cái ABC, PUI, Hanvar gì đó nó có xung đột với caster system ko...anh định dùng ::)

    --Chịu khó rà tý Tom nhé.. Code nhìn thì dài chứ Pro như các cậu chắc ko khó lắm đâu mà..hì...

    EDIT: Dùng Jass NewGenpack và bật Jasshelper lên mới mở được.
    -Mình dùng scope để quản lý nên mỗi Hero sẽ chỉ có 1 trigger...mấy cái đấy nó liên quan nhau nên anh em check kỹ với nhé...mình hoa cả mắt rồi..kiểu này chắc phải kiếm Aspirin về uống.

    //Paladin:
    -Lay on Hands
    -Holy Incantation
    -Judicial Chop
    -Sacred Strength


    Mã:
    scope paladin
    globals
     private integer bonus = 0
    endglobals
    
    //=====================
    //Lay on Hands
    //=====================
    private function LOH_con takes nothing returns boolean
        return GetSpellAbilityId() == 'A003'
    endfunction
    
    function LOH_act takes nothing returns nothing
    local unit Caster_LOH = GetTriggerUnit()
    local integer Int_LOH = GetUnitAbilityLevel(Caster_LOH, 'A003')
    local unit Target_LOH = GetSpellTargetUnit()
    call PolledWait(0.50)
    if IsUnitAlly(Target_LOH, GetOwningPlayer(Caster_LOH))then
     call SetUnitState(Target_LOH, UNIT_STATE_LIFE, GetUnitState(Target_LOH, UNIT_STATE_LIFE) + (Int_LOH * 80. + bonus))
    else
     call UnitDamageTargetBJ(Caster_LOH, Target_LOH, (80. * Int_LOH + bonus), ATTACK_TYPE_HERO, DAMAGE_TYPE_NORMAL)
    endif
    set Caster_LOH = null
    set Target_LOH = null
    endfunction
    
    public function LOH takes nothing returns nothing
        local trigger Trig = CreateTrigger()
        call TriggerRegisterAnyUnitEventBJ(Trig, EVENT_PLAYER_UNIT_SPELL_CHANNEL )
        call TriggerAddCondition(Trig, Condition( function LOH_con ) )
        call TriggerAddAction(Trig, function LOH_act )
        set Trig = null
    endfunction
    //==========================
    //Judicial Chop
    //==========================
    private function JC_con takes nothing returns boolean
       return GetSpellAbilityId() == 'AHtb' 
    endfunction
    
    private function JC_act takes nothing returns nothing
        local unit c = GetTriggerUnit()
        local unit t = GetSpellTargetUnit()
        local integer i = 100 * GetUnitAbilityLevel(c, 'A007')
        local integer iss = GetUnitAbilityLevel(c, 'A007')
        if iss >0 and IsUnitType(t, UNIT_TYPE_UNDEAD) then
          call PolledWait(0.50)
          call UnitDamageTargetBJ(c, t, i, ATTACK_TYPE_HERO, DAMAGE_TYPE_NORMAL)
          call CreateTextTagUnitBJ( ( "+" + I2S(i) ), t, 0, 10, 100, 0.00, 0.00, 0 )
          call SetTextTagVelocityBJ( GetLastCreatedTextTag(), 40.00, 90 )
          call SetTextTagPermanentBJ( GetLastCreatedTextTag(), false )
          call SetTextTagLifespanBJ( GetLastCreatedTextTag(), 3.00 )
        endif
        set c = null
        set t = null
    endfunction
    
    //===========================================================================
    public function JC takes nothing returns nothing
        local trigger Trig = CreateTrigger()
        call TriggerRegisterAnyUnitEventBJ( Trig, EVENT_PLAYER_UNIT_SPELL_CAST )
        call TriggerAddCondition( Trig, Condition( function JC_con ) )
        call TriggerAddAction( Trig, function JC_act )
        set Trig = null
    endfunction
    
    //===================
    //Conversion
    //===================   
    
    private function con_con takes nothing returns boolean
    return GetUnitTypeId(GetAttacker()) =='Hpal' and IsUnitType(GetTriggerUnit(), UNIT_TYPE_UNDEAD) and GetUnitAbilityLevel(GetAttacker(), 'A007') >=1 and GetUnitAbilityLevel(GetAttacker(), 'AEah') >0 and not IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO )
    endfunction
    
    private function con_act takes nothing returns nothing
      local unit c = GetAttacker()
      local unit t = GetTriggerUnit()
      local integer ir = GetRandomInt(1,100)
      local integer ic = (3 * GetUnitAbilityLevel(c, 'A007'))
    if ir <= ic then
      call SetUnitAnimation(c, "attack")
      call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Human\\HolyBolt\\HolyBoltSpecialArt.mdl", t, "origin"))
      call SetUnitOwner(t, GetOwningPlayer(c), true)
      call UnitAddAbility(t, 'A004')
    endif
      set c = null
      set t = null
    endfunction
    
    public function con takes nothing returns nothing
    local trigger Trig = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(Trig, EVENT_PLAYER_UNIT_ATTACKED)
    call TriggerAddCondition(Trig, Condition(function con_con))
    call TriggerAddAction(Trig, function con_act)
    set Trig = null
    endfunction
    
    //=================
    //Sacred Strength
    //================
    private function SS_con takes nothing returns boolean
      return GetLearnedSkillBJ() == 'A007'and GetUnitTypeId(GetTriggerUnit()) == 'Hpal'
    endfunction
    
    private function SS_act takes nothing returns nothing
      local unit c = GetTriggerUnit()
      local integer i = GetUnitAbilityLevel(c, 'A007')
      set bonus = 3 * i
      if i == 1 then
         call UnitAddAbility(c, 'A008')
       elseif i ==2 then
               call UnitRemoveAbility(c, 'A008')
               call UnitAddAbility(c, 'A009')
         elseif i == 3 then
                call UnitRemoveAbility(c, 'A009')
                call UnitAddAbility(c, 'A00A')
      endif
      set c = null
    endfunction
    
    public function SS takes nothing returns nothing
        local trigger Trig = CreateTrigger()
        call TriggerRegisterAnyUnitEventBJ(Trig, EVENT_PLAYER_HERO_SKILL )
        call TriggerAddCondition(Trig, Condition( function SS_con ) )
        call TriggerAddAction(Trig, function SS_act )
    endfunction
    endscope
    
    function InitTrig_Paladin takes nothing returns nothing
    call paladin_LOH()
    call paladin_JC()
    call paladin_con()
    call paladin_SS()
    endfunction

    //Barbarian:
    -Intercept
    -Vigorous Strike


    Mã:
    scope barbarian
    globals
      private integer hit
      private string e = "Abilities\\Spells\\Other\\HealingSpray\\HealBottleMissile.mdl"
      private unit c
      private unit t
      private real dam
      public trigger VSTrig
      public trigger VSStop
      public effect VSeffect
    endglobals
    
    //====================
    //Vigorous Strike
    //====================
    private function VS2_con takes nothing returns boolean
    return GetSpellAbilityId() == 'A00D'
    endfunction
    
    private function VS2_act takes nothing returns nothing
        set VSStop = GetTriggeringTrigger()
        call DisableTrigger(VSTrig)
        call SetUnitTimeScalePercent(c, 100 )
        call ResetUnitAnimation(c)
        call DestroyEffect(VSeffect)
        call DisableTrigger(VSStop)
    endfunction
    
    public function VS2 takes nothing returns nothing
        local trigger Trig = CreateTrigger()
        call TriggerRegisterAnyUnitEventBJ(Trig, EVENT_PLAYER_UNIT_SPELL_ENDCAST )
        call TriggerAddCondition(Trig, Condition( function VS2_con))
        call TriggerAddAction(Trig, function VS2_act)
    endfunction
    
    public function VS3_act takes nothing returns nothing
        set VSTrig = GetTriggeringTrigger()
        set hit = (hit + 1)
        if hit == 10 or hit == 20 or hit == 30 or hit == 40 or hit == 50 or hit == 60 or hit == 70 or hit == 80 or hit == 90 or hit == 100 then
            call ResetUnitAnimation(c)
            call SetUnitAnimation(c, "attack" )
            call UnitDamageTargetBJ(c,t,dam, ATTACK_TYPE_HERO, DAMAGE_TYPE_NORMAL )
        endif
        if hit>=100 or IsUnitDeadBJ(c) == true or IsUnitDeadBJ(t) == true then
            call SetUnitTimeScalePercent(c, 100 )
            call ResetUnitAnimation(c)
            call DestroyEffect(VSeffect)
            call DisableTrigger(VSTrig)
        endif
    endfunction
    
    public function VS3 takes nothing returns nothing
        local trigger Trig  = CreateTrigger()
        call TriggerRegisterTimerEventPeriodic(Trig, 0.03 )
        call TriggerAddAction(Trig, function VS3_act)
    endfunction
    
    private function VS_con takes nothing returns boolean
    return GetSpellAbilityId() == 'A00D'
    endfunction
    
    private function VS_act takes nothing returns nothing
      
      local real conemax = 20.00
      local real conemin = -20.00
      local real amspeed = 200.00
      local string s = "weapon"
      set c = GetTriggerUnit()
      set t = GetSpellTargetUnit()
      set hit = 0
      set dam = ( 20.00 * I2R(GetUnitAbilityLevelSwapped('A00D', c)) )
      call IssueTargetOrder(gg_unit_h006_0046, "firebolt", t)
      call SetUnitTimeScalePercent(c, amspeed)
      call AddSpecialEffectTargetUnitBJ(s, c, e)
      set VSeffect = GetLastCreatedEffectBJ()
      call EnableTrigger(VSTrig)
      call EnableTrigger(VSStop)
      
    endfunction
    
    public function VS takes nothing returns nothing
        local trigger Trig = CreateTrigger()
        call TriggerRegisterAnyUnitEventBJ(Trig, EVENT_PLAYER_UNIT_SPELL_EFFECT )
        call TriggerAddCondition(Trig, Condition( function VS_con) )
        call TriggerAddAction(Trig, function VS_act)
    endfunction
    //=========================
    //Intercept
    //=========================
    private function I_con takes nothing returns boolean
    return GetSpellAbilityId() == 'A005'
    endfunction
    
    private function I_act takes nothing returns nothing
      local unit Ic = GetTriggerUnit()
      local unit It = GetSpellTargetUnit()
      local location Iloc1 = GetUnitLoc(Ic)
      local location Iloc2 = GetUnitLoc(It)
      local integer Ii = 60 * GetUnitAbilityLevel(Ic, 'A005')
      call SetUnitFacingToFaceUnitTimed(Ic, It, 0.50)
      call PolledWait(0.50)
      call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Human\\Invisibility\\InvisibilityTarget.mdl", c, "overhead"))
      call PlaySoundOnUnitBJ(gg_snd_InvisibilityTarget, 100, Ic)
      call IssueTargetOrder(gg_unit_h00A_0216, "firebolt", It)
      call SetUnitPositionLoc(Ic, Iloc2)
      call UnitDamageTargetBJ(Ic, It, Ii, ATTACK_TYPE_HERO, DAMAGE_TYPE_NORMAL)
      call SetUnitFacingToFaceUnitTimed(Ic, It, 0.10)
      call IssueTargetOrder(Ic, "attack", It)
      call RemoveLocation(Iloc1)
      call RemoveLocation(Iloc2)
      set Ic = null
      set It = null
    endfunction
    
    public function Inte takes nothing returns nothing
      local trigger Trig = CreateTrigger()
      call TriggerRegisterAnyUnitEventBJ(Trig, EVENT_PLAYER_UNIT_SPELL_CAST)
      call TriggerAddCondition(Trig, Condition(function I_con))
      call TriggerAddAction(Trig, function I_act)
      set Trig = null
    endfunction
    
    //==============
    //Rage
    //==============
    
    private function rage_con takes nothing returns boolean
    return GetSpellAbilityId() == 'Absk'
    endfunction
    
    private function rage_act takes nothing returns nothing
      local unit rc = GetTriggerUnit()
      call SetUnitAnimation(rc, "spell slam")
      call AttachSoundToUnit(gg_snd_GromYesAttack2, rc)
      set rc = null
    endfunction
    
    public function rage takes nothing returns nothing
      local trigger Trig = CreateTrigger()
      call TriggerRegisterAnyUnitEventBJ(Trig, EVENT_PLAYER_UNIT_SPELL_CAST )
      call TriggerAddCondition(Trig, Condition(function rage_con))
      call TriggerAddAction(Trig, function rage_act)
      set Trig = null
    endfunction
    
    endscope
    
    function InitTrig_Barbarian takes nothing returns nothing
       call barbarian_VS2()
       call barbarian_VS()
       call barbarian_VS3()
       call barbarian_Inte()
       call barbarian_rage()
    endfunction
     
  15. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    ABC, PUI, em nghĩ là ko, nhưng anh cho vào code tag thì hay hơn là quote tag, vì code tag còn giữ đc các khoảng trống, dễ đọc hơn. (tiếc là ko có jass tag, chẹp ::( )
    (còn code của anh thì em sẽ check sau :D )
     
  16. Vua_Do_Hoa

    Vua_Do_Hoa Mr & Ms Pac-Man

    Tham gia ngày:
    30/3/08
    Bài viết:
    217
    Nơi ở:
    Tp Hồ Chí Minh
    Cho em hỏi một tý síu nha:

    Mấy anh làm sao để dùng timer trong Jass vậy . em tính làm chiêu WaveFrom = JASS nhưng không biết dùng timer trong JASS.;;)

    Và somebody hướng dẫn dùm em cách if , elseif , loop ... = tiếng việt ko:;).
    Đọc tiếng anh khó hiểu quá ...:-/
     
  17. Vua_Do_Hoa

    Vua_Do_Hoa Mr & Ms Pac-Man

    Tham gia ngày:
    30/3/08
    Bài viết:
    217
    Nơi ở:
    Tp Hồ Chí Minh
    Thêm vài cái:
    Mã:
    
    //***************************************************************************
    [TriggerEventStrings]
    
    // Special events not defined in common.j,
    // handled internally by the editor
    MapInitializationEvent="Map Initialization"
    MapInitializationEvent="Map initialization"
    MapInitializationEventHint=
    
    
    // Destructible events
    TriggerRegisterDeathEvent="Destructible Dies"
    TriggerRegisterDeathEvent=~Destructible," dies"
    TriggerRegisterDeathEventHint="Use 'Event Response - Dying Destructible' to refer to the destructible that is dying."
    
    TriggerRegisterDestDeathInRegionEvent="Destructible Within Region Dies"
    TriggerRegisterDestDeathInRegionEvent="A destructible within ",~Region," dies"
    TriggerRegisterDestDeathInRegionEventHint="Only the first 64 destructibles within the region when this event is registered are monitored for death.  It is best to use this event for regions containing only a few destructibles."
    
    // Dialog events
    TriggerRegisterDialogEventBJ="Dialog Button Click"
    TriggerRegisterDialogEventBJ="A dialog button is clicked for ",~Dialog
    TriggerRegisterDialogEventBJHint=
    
    
    // Game events
    TriggerRegisterGameStateEventTimeOfDay="Time Of Day"
    TriggerRegisterGameStateEventTimeOfDay="The in-game time of day becomes ",~Operation," ",~Time
    TriggerRegisterGameStateEventTimeOfDayHint="A game day is 24 hours long.  Six a.m. is 6.00, and six p.m. is 18.00."
    
    TriggerRegisterVariableEvent="Value Of Real Variable"
    TriggerRegisterVariableEvent=~Variable," becomes ",~Operation," ",~Value
    TriggerRegisterVariableEventHint="This only works for non-array variables of type 'Real'."
    
    TriggerRegisterGameLoadedEventBJ="Game Load"
    TriggerRegisterGameLoadedEventBJ="A saved game is loaded"
    TriggerRegisterGameLoadedEventBJHint="This fires immediately after the saved game is finished loading."
    
    TriggerRegisterGameSavedEventBJ="Game Save"
    TriggerRegisterGameSavedEventBJ="The game is about to be saved"
    TriggerRegisterGameSavedEventBJHint="This fires immediately before the game is saved."
    
    TriggerRegisterShowSkillEventBJ="Hero Abilities Button Clicked"
    TriggerRegisterShowSkillEventBJ="The 'Hero Abilities' button is clicked"
    TriggerRegisterShowSkillEventBJHint="This event should only be used in single-player maps."
    
    TriggerRegisterBuildSubmenuEventBJ="Build Structure Button Clicked"
    TriggerRegisterBuildSubmenuEventBJ="The 'Build Structure' button is clicked"
    TriggerRegisterBuildSubmenuEventBJHint="This event should only be used in single-player maps."
    
    TriggerRegisterGameEvent="Tournament Event"
    TriggerRegisterGameEvent="The tournament game must end ",~Event Type
    TriggerRegisterGameEventHint="This event only occurs during automated tournament games on Battle.net."
    
    
    // Player events
    TriggerRegisterPlayerChatEvent="Chat Message"
    TriggerRegisterPlayerChatEvent=~Player," types a chat message containing ",~Text," as ",~Match Type
    TriggerRegisterPlayerChatEventHint="Use 'Event Response - Entered/Matched Chat Message' to refer to the chat message that was entered/matched.  Use 'Event Response - Triggering Player' to refer to the player who typed the message."
    
    TriggerRegisterPlayerEventEndCinematic="Cinematic Skipped"
    TriggerRegisterPlayerEventEndCinematic=~Player," skips a cinematic sequence"
    TriggerRegisterPlayerEventEndCinematicHint="This event occurs whenever the player presses the 'Escape' key (regardless of whether or not they are viewing a cinematic)."
    
    TriggerRegisterPlayerSelectionEventBJ="Selection Event"
    TriggerRegisterPlayerSelectionEventBJ=~Player," ",~Selects/Deselects," a unit"
    TriggerRegisterPlayerSelectionEventBJHint="Use 'Event Response - Triggering Unit' to refer to the unit being selected or deselected."
    
    TriggerRegisterPlayerKeyEventBJ="Keyboard Event"
    TriggerRegisterPlayerKeyEventBJ=~Player," ",~Presses/Releases," the ",~Key," key"
    TriggerRegisterPlayerKeyEventBJHint=
    
    TriggerRegisterPlayerStateEvent="Properties"
    TriggerRegisterPlayerStateEvent=~Player,"'s ",~Property," becomes ",~Operation," ",~Value
    TriggerRegisterPlayerStateEventHint=
    
    TriggerRegisterPlayerEventAllianceChanged="Alliance Change (Any)"
    TriggerRegisterPlayerEventAllianceChanged=~Player," changes alliance settings"
    TriggerRegisterPlayerEventAllianceChangedHint=
    
    TriggerRegisterPlayerAllianceChange="Alliance Change (Specific)"
    TriggerRegisterPlayerAllianceChange=~Player," changes ",~Alliance Type," settings"
    TriggerRegisterPlayerAllianceChangeHint=
    
    TriggerRegisterPlayerEventVictory="Victory"
    TriggerRegisterPlayerEventVictory=~Player," leaves the game with a victory"
    TriggerRegisterPlayerEventVictoryHint=
    
    TriggerRegisterPlayerEventDefeat="Defeat"
    TriggerRegisterPlayerEventDefeat=~Player," leaves the game with a defeat"
    TriggerRegisterPlayerEventDefeatHint=
    
    TriggerRegisterPlayerEventLeave="Leaves Game"
    TriggerRegisterPlayerEventLeave=~Player," leaves the game"
    TriggerRegisterPlayerEventLeaveHint="This event occurs regardless of how the player left the game."
    
    
    // Timer events
    TriggerRegisterTimerEventSingle="Time Elapsed"
    TriggerRegisterTimerEventSingle="Elapsed game time is ",~Time," seconds"
    TriggerRegisterTimerEventSingleHint=
    
    TriggerRegisterTimerEventPeriodic="Periodic Event"
    TriggerRegisterTimerEventPeriodic="Every ",~Time," seconds of game time"
    TriggerRegisterTimerEventPeriodicHint=
    
    TriggerRegisterTimerExpireEventBJ="Timer Expires"
    TriggerRegisterTimerExpireEventBJ=~Timer," expires"
    TriggerRegisterTimerExpireEventBJHint="A timer expires when it reaches 0.  Repeating timers expire every time they reach 0.  Use 'Event Response - Expiring Timer' to refer to the timer that is expiring."
    
    
    // Unit events
    TriggerRegisterUnitEvent="Specific Unit Event"
    TriggerRegisterUnitEvent=~Unit," ",~Event
    TriggerRegisterUnitEventHint=
    
    TriggerRegisterPlayerUnitEventSimple="Player-Owned Unit Event"
    TriggerRegisterPlayerUnitEventSimple="A unit owned by ",~Player," ",~Event
    TriggerRegisterPlayerUnitEventSimpleHint=
    
    TriggerRegisterAnyUnitEventBJ="Generic Unit Event"
    TriggerRegisterAnyUnitEventBJ="A unit ",~Event
    TriggerRegisterAnyUnitEventBJHint=
    
    TriggerRegisterEnterRectSimple="Unit Enters Region"
    TriggerRegisterEnterRectSimple="A unit enters ",~Region
    TriggerRegisterEnterRectSimpleHint="Use 'Event Response - Entering Unit' to refer to the unit entering the region."
    
    TriggerRegisterLeaveRectSimple="Unit Leaves Region"
    TriggerRegisterLeaveRectSimple="A unit leaves ",~Region
    TriggerRegisterLeaveRectSimpleHint="Use 'Event Response - Leaving Unit' to refer to the unit leaving the region."
    
    TriggerRegisterUnitInRangeSimple="Unit Within Range"
    TriggerRegisterUnitInRangeSimple="A unit comes within ",~Range," of ",~Unit
    TriggerRegisterUnitInRangeSimpleHint="Use 'Event Response - Triggering Unit' to refer to the unit that is entering within range."
    
    TriggerRegisterUnitLifeEvent="Life"
    TriggerRegisterUnitLifeEvent=~Unit,"'s life becomes ",~Operation," ",~Value
    TriggerRegisterUnitLifeEventHint=
    
    TriggerRegisterUnitManaEvent="Mana"
    TriggerRegisterUnitManaEvent=~Unit,"'s mana becomes ",~Operation," ",~Value
    TriggerRegisterUnitManaEventHint=
    
    
    //***************************************************************************
    [TriggerConditionStrings]
    
    .
    ___________Auto Merge________________

    .
    Thêm tiếp Condition

    Mã:
    [TriggerConditionStrings]
    
    OperatorCompareBoolean="Boolean Comparison"
    OperatorCompareBoolean=~Value," ",~Operator," ",~Value
    OperatorCompareBooleanHint=
    
    OperatorCompareAbilityId="Ability Comparison"
    OperatorCompareAbilityId=~Value," ",~Operator," ",~Value
    OperatorCompareAbilityIdHint=
    
    OperatorCompareBuffId="Buff Comparison"
    OperatorCompareBuffId=~Value," ",~Operator," ",~Value
    OperatorCompareBuffIdHint=
    
    OperatorCompareDestructible="Destructible Comparison"
    OperatorCompareDestructible=~Value," ",~Operator," ",~Value
    OperatorCompareDestructibleHint=
    
    OperatorCompareDestructableCode="Destructible-Type Comparison"
    OperatorCompareDestructableCode=~Value," ",~Operator," ",~Value
    OperatorCompareDestructableCodeHint=
    
    OperatorCompareButton="Dialog Button Comparison"
    OperatorCompareButton=~Value," ",~Operator," ",~Value
    OperatorCompareButtonHint=
    
    OperatorCompareGameDifficulty="Game Difficulty Comparison"
    OperatorCompareGameDifficulty=~Value," ",~Operator," ",~Value
    OperatorCompareGameDifficultyHint=
    
    OperatorCompareGameSpeed="Game Speed Comparison"
    OperatorCompareGameSpeed=~Value," ",~Operator," ",~Value
    OperatorCompareGameSpeedHint=
    
    OperatorCompareHeroSkill="Hero Skill Comparison"
    OperatorCompareHeroSkill=~Value," ",~Operator," ",~Value
    OperatorCompareHeroSkillHint=
    
    OperatorCompareInteger="Integer Comparison"
    OperatorCompareInteger=~Value," ",~Operator," ",~Value
    OperatorCompareIntegerHint=
    
    OperatorCompareItem="Item Comparison"
    OperatorCompareItem=~Value," ",~Operator," ",~Value
    OperatorCompareItemHint=
    
    OperatorCompareItemType="Item-Class Comparison"
    OperatorCompareItemType=~Value," ",~Operator," ",~Value
    OperatorCompareItemTypeHint=
    
    OperatorCompareItemCode="Item-Type Comparison"
    OperatorCompareItemCode=~Value," ",~Operator," ",~Value
    OperatorCompareItemCodeHint=
    
    OperatorCompareMeleeDifficulty="Melee AI Comparison"
    OperatorCompareMeleeDifficulty=~Value," ",~Operator," ",~Value
    OperatorCompareMeleeDifficultyHint=
    
    OperatorCompareOrderCode="Order Comparison"
    OperatorCompareOrderCode=~Value," ",~Operator," ",~Value
    OperatorCompareOrderCodeHint=
    
    OperatorComparePlayer="Player Comparison"
    OperatorComparePlayer=~Value," ",~Operator," ",~Value
    OperatorComparePlayerHint=
    
    OperatorComparePlayerColor="Player Color Comparison"
    OperatorComparePlayerColor=~Value," ",~Operator," ",~Value
    OperatorComparePlayerColorHint=
    
    OperatorComparePlayerControl="Player Controller Comparison"
    OperatorComparePlayerControl=~Value," ",~Operator," ",~Value
    OperatorComparePlayerControlHint=
    
    OperatorComparePlayerSlotStatus="Player Slot Status Comparison"
    OperatorComparePlayerSlotStatus=~Value," ",~Operator," ",~Value
    OperatorComparePlayerSlotStatusHint=
    
    //OperatorComparePoint="Point Comparison"
    //OperatorComparePoint=~Value," ",~Operator," ",~Value
    //OperatorComparePointHint=
    
    OperatorCompareRace="Race Comparison"
    OperatorCompareRace=~Value," ",~Operator," ",~Value
    OperatorCompareRaceHint=
    
    OperatorCompareReal="Real Comparison"
    OperatorCompareReal=~Value," ",~Operator," ",~Value
    OperatorCompareRealHint=
    
    //OperatorCompareRegion="Region Comparison"
    //OperatorCompareRegion=~Value," ",~Operator," ",~Value
    //OperatorCompareRegionHint=
    
    OperatorCompareString="String Comparison"
    OperatorCompareString=~Value," ",~Operator," ",~Value
    OperatorCompareStringHint="For two strings to be equal, they must be of equal length and content."
    
    OperatorCompareTechCode="Tech-Type Comparison"
    OperatorCompareTechCode=~Value," ",~Operator," ",~Value
    OperatorCompareTechCodeHint=
    
    OperatorCompareTrigger="Trigger Comparison"
    OperatorCompareTrigger=~Value," ",~Operator," ",~Value
    OperatorCompareTriggerHint=
    
    OperatorCompareUnit="Unit Comparison"
    OperatorCompareUnit=~Value," ",~Operator," ",~Value
    OperatorCompareUnitHint=
    
    OperatorCompareUnitCode="Unit-Type Comparison"
    OperatorCompareUnitCode=~Value," ",~Operator," ",~Value
    OperatorCompareUnitCodeHint=
    
    OperatorCompareTerrainType="Terrain Type Comparison"
    OperatorCompareTerrainType=~Value," ",~Operator," ",~Value
    OperatorCompareTerrainTypeHint=
    
    GetBooleanAnd="And"
    GetBooleanAnd=~Condition 1," and ",~Condition 2
    GetBooleanAndHint=
    
    GetBooleanOr="Or"
    GetBooleanOr=~Condition 1," or ",~Condition 2
    GetBooleanOrHint=
    
    AndMultiple="And, Multiple Conditions"
    AndMultiple="And - All (Conditions) are true"
    AndMultipleHint="Add conditions to this function in the main display."
    
    OrMultiple="Or, Multiple Conditions"
    OrMultiple="Or - Any (Conditions) are true"
    OrMultipleHint="Add conditions to this function in the main display."
    
    
    //***************************************************************************
    
    ;;)

    Còn phần Action nữa
    Dài quá nên cứ từ từ:wink:
    .
    ___________Auto Merge________________

    .
    Mã:
    //***************************************************************************
    [TriggerActionStrings]
    
    DoNothing="Do Nothing"
    DoNothing="Do nothing"
    DoNothingHint=
    
    CommentString="Comment"
    CommentString="-------- ",~Comment Text," --------"
    CommentStringHint=
    
    CustomScriptCode="Custom Script"
    CustomScriptCode="Custom script:   ",~Script Code
    CustomScriptCodeHint="Enter one line of script code.  Example: 'call my_func(udg_my_var)'"
    
    TriggerSleepAction="Wait"
    TriggerSleepAction="Wait ",~Time," seconds"
    TriggerSleepActionHint="The duration of this wait is specified in real-time seconds."
    
    PolledWait="Wait (Game-Time)"
    PolledWait="Wait ",~Time," game-time seconds"
    PolledWaitHint="The duration of this wait is specified in game-time seconds.  This is a polled wait, so it may last slightly longer than requested."
    
    WaitForCondition="Wait For Condition"
    WaitForCondition="Wait until ",~Condition,", checking every ",~Interval," seconds"
    WaitForConditionHint=
    
    WaitForSoundBJ="Wait For Sound"
    WaitForSoundBJ="Wait for ",~Sound," to be ",~Time," seconds from finished playing"
    WaitForSoundBJHint="This action only waits if the sound is currently playing.  If the sound has not yet started, or has already finished, this action does nothing."
    
    
    // Specially handled by the editor
    SetVariable="Set Variable"
    SetVariable="Set ",~Variable," = ",~Value
    SetVariableHint=
    
    
    // Specially handled by the editor
    ReturnAction="Skip Remaining Actions"
    ReturnAction="Skip remaining actions"
    ReturnActionHint="This causes all remaining actions in the trigger to be skipped."
    
    
    // Specially handled by the editor
    IfThenElseMultiple="If / Then / Else, Multiple Functions"
    IfThenElseMultiple="If (All Conditions are True) then do (Then Actions) else do (Else Actions)"
    IfThenElseMultipleHint="Add conditions and actions to this function in the main display."
    
    // Specially handled by the editor
    IfThenElse="If / Then / Else"
    IfThenElse="If ",~Condition," then do ",~Action," else do ",~Action
    IfThenElseHint=
    
    // Specially handled by the editor
    ForLoopAMultiple="For Each Integer A, Do Multiple Actions
    ForLoopAMultiple="For each (Integer A) from ",~Start," to ",~End,", do (Actions)"
    ForLoopAMultipleHint="Add actions to this function in the main display. The end value is assumed to be larger than the start value."
    
    // Specially handled by the editor
    ForLoopBMultiple="For Each Integer B, Do Multiple Actions
    ForLoopBMultiple="For each (Integer B) from ",~Start," to ",~End,", do (Actions)"
    ForLoopBMultipleHint="Add actions to this function in the main display. The end value is assumed to be larger than the start value."
    
    // Specially handled by the editor
    ForLoopVarMultiple="For Each Integer Variable, Do Multiple Actions
    ForLoopVarMultiple="For each (Integer ",~Variable,") from ",~Start," to ",~End,", do (Actions)"
    ForLoopVarMultipleHint="Add actions to this function in the main display. The end value is assumed to be larger than the start value."
    
    // Specially handled by the editor
    ForLoopA="For Each Integer A, Do Action"
    ForLoopA="For each (Integer A) from ",~Start," to ",~End,", do ",~Action
    ForLoopAHint="The end value is assumed to be larger than the start value."
    
    // Specially handled by the editor
    ForLoopB="For Each Integer B, Do Action"
    ForLoopB="For each (Integer B) from ",~Start," to ",~End,", do ",~Action
    ForLoopBHint="The end value is assumed to be larger than the start value."
    
    // Specially handled by the editor
    ForLoopVar="For Each Integer Variable, Do Action"
    ForLoopVar="For each (Integer ",~Variable,") from ",~Start," to ",~End,", do ",~Action
    ForLoopVarHint="The end value is assumed to be larger than the start value."
    
    
    // AI actions
    StartMeleeAI="Start Melee AI Script"
    StartMeleeAI="Start melee AI script for ",~Player,": ",~Script
    StartMeleeAIHint="This should only only be used for computer-controlled player slots.  When using this action, it is advised that you enable the 'Fixed Player Settings' force property."
    
    StartCampaignAI="Start Campaign AI Script"
    StartCampaignAI="Start campaign AI script for ",~Player,": ",~Script
    StartCampaignAIHint="This should only only be used for computer-controlled player slots.  When using this action, it is advised that you enable the 'Fixed Player Settings' force property."
    
    CommandAI="Send AI Command"
    CommandAI="Send ",~Player," the AI Command (",~Command,", ",~Data,")"
    CommandAIHint="This action is for internal use in AI scripts."
    
    RemoveGuardPosition="Ignore Unit Guard Position"
    RemoveGuardPosition="Ignore ",~Unit,"'s guard position"
    RemoveGuardPositionHint="This action tells the AI to neither use nor replace a given preplaced unit.  This has no effect on Heroes and peon-type units."
    
    RemoveAllGuardPositions="Ignore All Unit Guard Positions"
    RemoveAllGuardPositions="Ignore the guard positions of all ",~Player," units"
    RemoveAllGuardPositionsHint="This action tells the AI for the given player to neither use nor replace any of its preplaced units.  This has no effect on Heroes and peon-type units."
    
    RecycleGuardPosition="Recycle Unit Guard Position"
    RecycleGuardPosition="Recycle ",~Unit,"'s guard position"
    RecycleGuardPositionHint="This action requests that the AI recycle the guard position that once belonged to the specified unit."
    
    LockGuardPosition="Lock Guard Position"
    LockGuardPosition="Lock guard position of ",~Unit
    LockGuardPositionHint="This action prevents the AI from changing the guard position of a unit."
    
    // Animation actions
    SetUnitAnimation="Play Unit Animation"
    SetUnitAnimation="Play ",~Unit,"'s ",~Animation Name," animation"
    SetUnitAnimationHint="Use 'Reset Unit Animation' to revert to a unit's normal animation."
    
    SetUnitAnimationWithRarity="Play Unit Animation (Specify Rarity)"
    SetUnitAnimationWithRarity="Play ",~Unit,"'s ",~Animation Name," animation, using only ",~Rarity," animations"
    SetUnitAnimationWithRarityHint="This animation will repeat until reset with 'Reset Unit Animation'."
    
    QueueUnitAnimationBJ="Queue Unit Animation"
    QueueUnitAnimationBJ="Queue ",~Unit,"'s ",~Animation Name," animation"
    QueueUnitAnimationBJHint=
    
    ResetUnitAnimation="Reset Unit Animation"
    ResetUnitAnimation="Reset ",~Unit,"'s animation"
    ResetUnitAnimationHint="Sets the unit's animation back to whatever the unit is doing."
    
    AddUnitAnimationPropertiesBJ="Add/Remove Unit Animation Tag"
    AddUnitAnimationPropertiesBJ=~Add/Remove," the ",~Tag," animation tag to ",~Unit
    AddUnitAnimationPropertiesBJHint=
    
    SetUnitLookAt="Lock Body-Part Facing"
    SetUnitLookAt="Lock ",~Unit,"'s ",~Source," to face ",~Unit,", offset by (",~X,", ",~Y,", ",~Z,")"
    SetUnitLookAtHint="The unit's body-part will continue to face the target until 'Reset Body-Part Facing' is used.  The offset is taken as (X, Y, Z) from the target's feet."
    
    ResetUnitLookAt="Reset Body-Part Facing"
    ResetUnitLookAt="Reset ",~Unit,"'s body-part facing"
    ResetUnitLookAtHint="Returns a unit's body-part facing to normal."
    
    SetUnitScalePercent="Change Unit Size"
    SetUnitScalePercent="Change ",~Unit,"'s size to (",~X,"%, ",~Y,"%, ",~Z,"%) of its original size"
    SetUnitScalePercentHint="The scaling values apply to (Length, Width, Height) when viewing a unit head-on."
    
    SetUnitVertexColorBJ="Change Unit Vertex Coloring"
    SetUnitVertexColorBJ="Change ",~Unit,"'s vertex coloring to (",~Red,"%, ",~Green,"%, ",~Blue,"%) with ",~Transparency,"% transparency"
    SetUnitVertexColorBJHint="The color values are (Red, Green, Blue).  Most units default to 100% red, green, and blue, with 0% transparency.  A 100% transparent unit is completely invisible."
    
    SetUnitTimeScalePercent="Change Unit Animation Speed"
    SetUnitTimeScalePercent="Change ",~Unit,"'s animation speed to ",~Percent,"% of its original speed"
    SetUnitTimeScalePercentHint="To revert a unit's animation speed to default, set its animation speed to 100%."
    
    SetUnitTurnSpeedBJ="Change Unit Turn Speed"
    SetUnitTurnSpeedBJ="Change ",~Unit," turn speed to ",~Value
    SetUnitTurnSpeedBJHint="A unit's turn speed determines how quickly the unit changes direction.  Turn speed values are expected to be between 0 and 1, with smaller numbers indicating slower turning rates."
    
    SetUnitBlendTimeBJ="Change Unit Blend Time"
    SetUnitBlendTimeBJ="Change ",~Unit," blend time to ",~Value
    SetUnitBlendTimeBJHint="A unit's blend time determines how quickly the unit's body parts turn to face a direction."
    
    SetUnitFlyHeightBJ="Change Unit Flying Height"
    SetUnitFlyHeightBJ="Change ",~Unit," flying height to ",~Height," at ",~Rate
    SetUnitFlyHeightBJHint="Only flying units use flying heights."
    
    SetUnitPropWindowBJ="Change Unit Prop Window Angle"
    SetUnitPropWindowBJ="Change ",~Unit," prop window angle to ",~Angle
    SetUnitPropWindowBJHint=
    
    SetDestructableAnimationBJ="Play Destructible Animation"
    SetDestructableAnimationBJ="Play ",~Destructible,"'s ",~Animation Name," animation"
    SetDestructableAnimationBJHint=
    
    QueueDestructableAnimationBJ="Queue Destructible Animation"
    QueueDestructableAnimationBJ="Queue ",~Destructible,"'s ",~Animation Name," animation"
    QueueDestructableAnimationBJHint=
    
    SetDestAnimationSpeedPercent="Change Destructible Animation Speed"
    SetDestAnimationSpeedPercent="Change ",~Destructible,"'s animation speed to ",~Percent,"% of its original speed"
    SetDestAnimationSpeedPercentHint="To revert a destructible's animation speed to default, set its animation speed to 100%."
    
    SetDoodadAnimationRectBJ="Play Animation For Doodads In Region"
    SetDoodadAnimationRectBJ="Play the ",~Animation Name," animation for all doodads of type ",~Doodad Type," within ",~Rect
    SetDoodadAnimationRectBJHint="Special animation names: 'show', 'hide', 'soundon', 'soundoff'"
    
    SetDoodadAnimationBJ="Play Animation For Doodads In Circle"
    SetDoodadAnimationBJ="Play the ",~Animation Name," animation for all doodads of type ",~Doodad Type," within ",~Radius," of ",~Point
    SetDoodadAnimationBJHint="Special animation names: 'show', 'hide', 'soundon', 'soundoff'"
    
    
    // Camera actions
    CameraSetupApplyForPlayer="Apply Camera Object (Timed)"
    CameraSetupApplyForPlayer="",~Apply Method," ",~Camera Object," for ",~Player," over ",~Time," seconds"
    CameraSetupApplyForPlayerHint=
    
    PanCameraToTimedLocForPlayer="Pan Camera (Timed)"
    PanCameraToTimedLocForPlayer="Pan camera for ",~Player," to ",~Point," over ",~Time," seconds"
    PanCameraToTimedLocForPlayerHint=
    
    PanCameraToTimedLocWithZForPlayer="Pan Camera With Interpolated Height (Timed)"
    PanCameraToTimedLocWithZForPlayer="Pan camera for ",~Player," to ",~Point," with height ",~Z," above the terrain over ",~Time," seconds"
    PanCameraToTimedLocWithZForPlayerHint="The camera will not drop below the terrain height during its camera path."
    
    SmartCameraPanBJ="Pan Camera As Necessary (Timed)"
    SmartCameraPanBJ="Pan camera as necessary for ",~Player," to ",~Point," over ",~Time," seconds"
    SmartCameraPanBJHint="If the camera is very far from the destination, it will snap instead of pan.  If the camera is very close to the destination, the pan request will be skipped."
    
    SetCameraFieldForPlayer="Set Camera Field (Timed)"
    SetCameraFieldForPlayer="Set ",~Player,"'s camera ",~Field," to ",~Value," over ",~Time," seconds"
    SetCameraFieldForPlayerHint=
    
    RotateCameraAroundLocBJ="Rotate Camera Around Point"
    RotateCameraAroundLocBJ="Rotate camera ",~Angle," degrees around ",~Point," for ",~Player," over ",~Time," seconds"
    RotateCameraAroundLocBJHint=
    
    SetCameraTargetControllerNoZForPlayer="Lock Camera Target To Unit"
    SetCameraTargetControllerNoZForPlayer="Lock camera target for ",~Player," to ",~Unit,", offset by (",~X,", ",~Y,") using ",~Rotation Source
    SetCameraTargetControllerNoZForPlayerHint="The camera target is offset by (X, Y) from the center of the unit's feet."
    
    SetCameraOrientControllerForPlayerBJ="Lock Camera Orientation To Unit"
    SetCameraOrientControllerForPlayerBJ="Lock camera orientation for ",~Player," to ",~Unit,", offset by (",~X,", ",~Y,")"
    SetCameraOrientControllerForPlayerBJHint=
    
    SetCinematicCameraForPlayer="Play Cinematic Camera"
    SetCinematicCameraForPlayer="Run camera for ",~Player," through ",~Camera File," cinematic camera"
    SetCinematicCameraForPlayerHint=
    
    StopCameraForPlayerBJ="Stop Camera"
    StopCameraForPlayerBJ="Stop the camera for ",~Player
    StopCameraForPlayerBJHint=
    
    ResetToGameCameraForPlayer="Reset Game Camera"
    ResetToGameCameraForPlayer="Reset camera for ",~Player," to standard game-view over ",~Time," seconds"
    ResetToGameCameraForPlayerHint=
    
    CameraSetSmoothingFactorBJ="Change Camera Smoothing Factor"
    CameraSetSmoothingFactorBJ="Change camera smoothing factor to ",~Factor
    CameraSetSmoothingFactorBJHint=
    
    CameraResetSmoothingFactorBJ="Reset Camera Smoothing Factor"
    CameraResetSmoothingFactorBJ="Reset camera smoothing factor"
    CameraResetSmoothingFactorBJHint=
    
    CameraSetSourceNoiseForPlayer="Sway Camera Source"
    CameraSetSourceNoiseForPlayer="Sway the camera source for ",~Player," with magnitude ",~Magnitude," and velocity ",~Velocity
    CameraSetSourceNoiseForPlayerHint="This constantly sways the camera source until it is reset with 'Camera - Reset Game Camera' or 'Camera - Stop Swaying Camera'."
    
    CameraSetTargetNoiseForPlayer="Sway Camera Target"
    CameraSetTargetNoiseForPlayer="Sway the camera target for ",~Player," with magnitude ",~Magnitude," and velocity ",~Velocity
    CameraSetTargetNoiseForPlayerHint="This constantly sways the camera target until it is reset with 'Camera - Reset Game Camera' or 'Camera - Stop Swaying Camera'."
    
    CameraSetEQNoiseForPlayer="Shake Camera"
    CameraSetEQNoiseForPlayer="Shake the camera for ",~Player," with magnitude ",~Magnitude
    CameraSetEQNoiseForPlayerHint="This constantly shakes the camera until it is reset with 'Camera - Reset Game Camera' or 'Camera - Stop Swaying/Shaking Camera'."
    
    CameraClearNoiseForPlayer="Stop Swaying/Shaking Camera"
    CameraClearNoiseForPlayer="Stop swaying/shaking the camera for ",~Player
    CameraClearNoiseForPlayerHint="This stops the camera from swaying after a 'Camera - Sway Camera' or 'Camera - Shake Camera' action is used."
    
    AdjustCameraBoundsForPlayerBJ="Extend/Shrink Camera Bounds"
    AdjustCameraBoundsForPlayerBJ=~Extend/Shrink," the camera bounds for ",~Player," west by ",~West,", east by ",~East,", north by ",~North,", and south by ",~South
    AdjustCameraBoundsForPlayerBJHint=
    
    SetCameraBoundsToRectForPlayerBJ="Set Camera Bounds"
    SetCameraBoundsToRectForPlayerBJ="Set the camera bounds for ",~Player," to ",~Region
    SetCameraBoundsToRectForPlayerBJHint="This restricts the game camera to the specified region.  Changing the camera bounds does not change the scale of the minimap.  This should only be called while the camera is facing north."
    
    SetCameraQuickPositionLocForPlayer="Set Spacebar-Point"
    SetCameraQuickPositionLocForPlayer="Set a spacebar-point for ",~Player," at ",~Point
    SetCameraQuickPositionLocForPlayerHint="A spacebar-point is a location that the game camera jumps to when the player presses the spacebar."
    
    
    // Cinematic actions
    TransmissionFromUnitWithNameBJ="Transmission From Unit"
    TransmissionFromUnitWithNameBJ="Send transmission to ",~Player Group," from ",~Unit," named ",~Name,": Play ",~Sound," and display ",~Message,".  Modify duration: ",~Method," ",~Time," seconds and ",~Wait/Don't Wait
    TransmissionFromUnitWithNameBJHint="The duration of 'No sound' is 5 seconds."
    
    TransmissionFromUnitTypeWithNameBJ="Transmission From Unit-Type"
    TransmissionFromUnitTypeWithNameBJ="Send transmission to ",~Player Group," from a ",~Player," ",~Unit-Type," named ",~Name," at ",~Point,": Play ",~Sound," and display ",~Message,".  Modify duration: ",~Method," ",~Time," seconds and ",~Wait/Don't Wait
    TransmissionFromUnitTypeWithNameBJHint="The duration of 'No sound' is 5 seconds."
    
    ForceCinematicSubtitlesBJ="Subtitle Display Override"
    ForceCinematicSubtitlesBJ="Turn subtitle display override ",~On/Off
    ForceCinematicSubtitlesBJHint="Turning this on will cause transmission text to be displayed on the screen even if the user normally has subtitles turned off."
    
    CinematicModeBJ="Cinematic Mode"
    CinematicModeBJ="Turn cinematic mode ",~On/Off," for ",~Player Group
    CinematicModeBJHint=
    
    CinematicModeExBJ="Cinematic Mode (Timed)"
    CinematicModeExBJ="Turn cinematic mode ",~On/Off," for ",~Player Group," over ",~Time," seconds"
    CinematicModeExBJHint=
    
    CinematicFadeBJ="Fade Filter"
    CinematicFadeBJ=~Fade Type," over ",~Duration," seconds using texture ",~Texture," and color (",~Red,"%, ",~Green,"%, ",~Blue,"%) with ",~Transparency,"% transparency"
    CinematicFadeBJHint="The color values are (Red, Green, Blue).  A 100% transparent color is completely invisible."
    
    CinematicFilterGenericBJ="Advanced Filter"
    CinematicFilterGenericBJ="Apply a filter over ",~Duration," seconds using ",~Blending Method," on texture ",~Texture,", starting with color (",~Red,"%, ",~Green,"%, ",~Blue,"%) and ",~Transparency,"% transparency and ending with color (",~Red,"%, ",~Green,"%, ",~Blue,"%) and ",~Transparency,"% transparency"
    CinematicFilterGenericBJHint="The color values are (Red, Green, Blue).  A 100% transparent color is completely invisible."
    
    DisplayCineFilterBJ="Show/Hide Filter"
    DisplayCineFilterBJ=~Show/Hide," filter"
    DisplayCineFilterBJHint=
    
    PingMinimapLocForForce="Ping Minimap"
    PingMinimapLocForForce="Ping minimap for ",~Player Group," at ",~Point," for ",~Duration," seconds"
    PingMinimapLocForForceHint=
    
    PingMinimapLocForForceEx="Ping Minimap With Color"
    PingMinimapLocForForceEx="Ping minimap for ",~Player Group," at ",~Point," for ",~Duration," seconds, using a ",~Style," ping of color ("~Red,"%, ",~Green,"%, ",~Blue,"%)"
    PingMinimapLocForForceExHint="The color values are (Red, Green, Blue).  Warning pings are always red."
    
    UnitAddIndicatorBJ="Flash Speech Indicator For Unit"
    UnitAddIndicatorBJ="Flash a speech indicator for ",~Unit," of color (",~Red,"%, ",~Green,"%, ",~Blue,"%) with ",~Transparency,"% transparency"
    UnitAddIndicatorBJHint="The color values are (Red, Green, Blue).  A 100% transparent color is completely invisible."
    
    DestructableAddIndicatorBJ="Flash Speech Indicator For Destructible"
    DestructableAddIndicatorBJ="Flash a speech indicator for ",~Destructible," of color (",~Red,"%, ",~Green,"%, ",~Blue,"%) with ",~Transparency,"% transparency"
    DestructableAddIndicatorBJHint="The color values are (Red, Green, Blue).  A 100% transparent color is completely invisible."
    
    ItemAddIndicatorBJ="Flash Speech Indicator For Item"
    ItemAddIndicatorBJ="Flash a speech indicator for ",~Item," of color (",~Red,"%, ",~Green,"%, ",~Blue,"%) with ",~Transparency,"% transparency"
    ItemAddIndicatorBJHint="The color values are (Red, Green, Blue).  A 100% transparent color is completely invisible."
    
    ClearTextMessagesBJ="Clear Text Messages"
    ClearTextMessagesBJ="Clear the screen of text messages for ",~Player Group
    ClearTextMessagesBJHint=
    
    ShowInterfaceForceOff="Letterbox Mode On"
    ShowInterfaceForceOff="Turn on letterbox mode (hide interface) for ",~Player Group,": fade out over ",~Duration," seconds"
    ShowInterfaceForceOffHint="Puts the camera into letterbox mode, hiding the game interface."
    
    ShowInterfaceForceOn="Letterbox Mode Off"
    ShowInterfaceForceOn="Turn off letterbox mode (show interface) for ",~Player Group,": fade in over ",~Duration," seconds"
    ShowInterfaceForceOnHint="Puts the camera into normal (non-letterbox) mode, displaying the game interface."
    
    SetUserControlForceOff="Disable User Control"
    SetUserControlForceOff="Disable user control for ",~Player Group
    SetUserControlForceOffHint=
    
    SetUserControlForceOn="Enable User Control"
    SetUserControlForceOn="Enable user control for ",~Player Group
    SetUserControlForceOnHint=
    
    EnableOcclusionBJ="Enable/Disable Occlusion"
    EnableOcclusionBJ=~Enable/Disable," occlusion for ",~Player Group
    EnableOcclusionBJHint="When occlusion is enabled, trees that block vision of units become transparent."
    
    EnableWorldFogBoundaryBJ="Enable/Disable Boundary Tinting"
    EnableWorldFogBoundaryBJ=~Enable/Disable," boundary tinting for ",~Player Group
    EnableWorldFogBoundaryBJHint=
    
    
    // Countdown Timer actions
    StartTimerBJ="Start Timer"
    StartTimerBJ="Start ",~Timer," as a ",~One-Shot/Repeating," timer that will expire in ",~Time," seconds"
    StartTimerBJHint=
    
    PauseTimerBJ="Pause Timer"
    PauseTimerBJ=~Pause/Resume," ",~Timer
    PauseTimerBJHint=
    
    CreateTimerDialogBJ="Create Timer Window"
    CreateTimerDialogBJ="Create a timer window for ",~Timer," with title ",~Title
    CreateTimerDialogBJHint="Timer Windows cannot be displayed at map initialization."
    
    DestroyTimerDialogBJ="Destroy Timer Window"
    DestroyTimerDialogBJ="Destroy ",~Timer Window
    DestroyTimerDialogBJHint=
    
    TimerDialogDisplayForPlayerBJ="Show/Hide Timer Window For Player"
    TimerDialogDisplayForPlayerBJ=~Show/Hide," ",~Timer Window," for ",~Player
    TimerDialogDisplayForPlayerBJHint="Timer Windows cannot be displayed at map initialization."
    
    TimerDialogDisplayBJ="Show/Hide Timer Window"
    TimerDialogDisplayBJ=~Show/Hide," ",~Timer Window
    TimerDialogDisplayBJHint="Timer Windows cannot be displayed at map initialization."
    
    TimerDialogSetTitleBJ="Change Timer Window Title"
    TimerDialogSetTitleBJ="Change the title of ",~Timer Window," to ",~Title
    TimerDialogSetTitleBJHint=
    
    TimerDialogSetTitleColorBJ="Change Timer Window Title Color"
    TimerDialogSetTitleColorBJ="Change the color of the title for ",~Timer Window," to (",~Red,"%, ",~Green,"%, ",~Blue,"%) with ",~Transparency,"% transparency"
    TimerDialogSetTitleColorBJHint="The color values are (Red, Green, Blue).  A 100% transparent color is completely invisible."
    
    TimerDialogSetTimeColorBJ="Change Timer Window Time Color"
    TimerDialogSetTimeColorBJ="Change the color of the time for ",~Timer Window," to (",~Red,"%, ",~Green,"%, ",~Blue,"%) with ",~Transparency,"% transparency"
    TimerDialogSetTimeColorBJHint="The color values are (Red, Green, Blue).  A 100% transparent color is completely invisible."
    
    //TimerDialogSetSpeedBJ="Set Timer Window Speed"
    //TimerDialogSetSpeedBJ="Set the speed of ",~Timer Window," to be ",~Factor," times normal speed"
    //TimerDialogSetSpeedBJHint=
    
    
    // Destructable actions
    CreateDestructableLoc="Create"
    CreateDestructableLoc="Create a ",~Destructible-Type," at ",~Point," facing ",~Direction," with scale ",~Scale," and variation ",~Variation
    CreateDestructableLocHint="The facing angle is expected in degrees, with 0 being east and 90 being north.  Use 'Last Created Destructible' to refer to this destructible."
    
    CreateDeadDestructableLocBJ="Create (Dead)"
    CreateDeadDestructableLocBJ="Create a dead ",~Destructible-Type," at ",~Point," facing ",~Direction," with scale ",~Scale," and variation ",~Variation
    CreateDeadDestructableLocBJHint="The facing angle is expected in degrees, with 0 being east and 90 being north.  Use 'Last Created Destructible' to refer to this destructible."
    
    KillDestructable="Kill"
    KillDestructable="Kill ",~Destructible
    KillDestructableHint=
    
    RemoveDestructable="Remove"
    RemoveDestructable="Remove ",~Destructible
    RemoveDestructableHint=
    
    DestructableRestoreLife="Resurrect"
    DestructableRestoreLife="Resurrect ",~Destructible," with ",~Value," life and ",~Show/Hide," birth animation"
    DestructableRestoreLifeHint=
    
    ShowDestructableBJ="Show/Hide"
    ShowDestructableBJ=~Show/Hide," ",~Destructible
    ShowDestructableBJHint="Hidden destructibles are not displayed, but still affect pathing and visibility."
    
    SetDestructableLifePercentBJ="Set Life (To Percentage)"
    SetDestructableLifePercentBJ="Set life of ",~Destructible," to ",~Percent,"%"
    SetDestructableLifePercentBJHint=
    
    SetDestructableLife="Set Life (To Value)"
    SetDestructableLife="Set life of ",~Destructible," to ",~Value
    SetDestructableLifeHint=
    
    SetDestructableMaxLifeBJ="Set Max Life"
    SetDestructableMaxLifeBJ="Set max life of ",~Destructible," to ",~Value
    SetDestructableMaxLifeBJHint=
    
    ModifyGateBJ="Open/Close/Destroy Gate"
    ModifyGateBJ=~Open/Close/Destroy," ",~Gate
    ModifyGateBJHint=
    
    ChangeElevatorWalls="Open/Close Elevator Walls"
    ChangeElevatorWalls=~Open/Close," ",~Walls," of ",~Elevator
    ChangeElevatorWallsHint=
    
    ChangeElevatorHeight="Set Elevator Height"
    ChangeElevatorHeight="Set height of ",~Elevator," to ",~Height
    ChangeElevatorHeightHint=
    
    SetDestructableInvulnerableBJ="Make Invulnerable/Vulnerable"
    SetDestructableInvulnerableBJ="Make ",~Destructible," ",~Invulnerable/Vulnerable
    SetDestructableInvulnerableBJHint=
    
    SetDestructableOccluderHeight="Set Occlusion Height"
    SetDestructableOccluderHeight="Set the occlusion height of ",~Destructible," to ",~Height
    SetDestructableOccluderHeightHint=
    
    EnumDestructablesInRectAllMultiple="Pick Every Destructible In Region And Do Multiple Actions"
    EnumDestructablesInRectAllMultiple="Pick every destructible in ",~Region," and do (Actions)"
    EnumDestructablesInRectAllMultipleHint="Use 'Picked Destructible' to refer each destructible as it is picked.  This works for every destructible in the region, including dead destructibles.  Wait actions should not be used within this function.  Add actions to this function in the main display."
    
    EnumDestructablesInCircleBJMultiple="Pick Every Destructible In Circle And Do Multiple Actions"
    EnumDestructablesInCircleBJMultiple="Pick every destructible within ",~Radius," of ",~Point," and do (Actions)"
    EnumDestructablesInCircleBJMultipleHint="Use 'Picked Destructible' to refer each destructible as it is picked.  This works for every destructible in the region, including dead destructibles.  Wait actions should not be used within this function.  Add actions to this function in the main display."
    
    EnumDestructablesInRectAll="Pick Every Destructible In Region And Do Action"
    EnumDestructablesInRectAll="Pick every destructible in ",~Region," and do ",~Action
    EnumDestructablesInRectAllHint="Use 'Picked Destructible' to refer each destructible as it is picked.  This works for every destructible in the region, including dead destructibles.  Wait actions should not be used within this function."
    
    EnumDestructablesInCircleBJ="Pick Every Destructible In Circle And Do Action"
    EnumDestructablesInCircleBJ="Pick every destructible within ",~Radius," of ",~Point," and do ",~Action
    EnumDestructablesInCircleBJHint="Use 'Picked Destructible' to refer each destructible as it is picked.  This works for every destructible in the region, including dead destructibles.  Wait actions should not be used within this function."
    
    
    // Dialog actions
    DialogDisplayBJ="Show/Hide"
    DialogDisplayBJ=~Show/Hide," ",~Dialog," for ",~Player
    DialogDisplayBJHint="Dialogs cannot be displayed at map initialization."
    
    DialogSetMessageBJ="Change Title"
    DialogSetMessageBJ="Change the title of ",~Dialog," to ",~Title
    DialogSetMessageBJHint=
    
    DialogAddButtonBJ="Create Dialog Button"
    DialogAddButtonBJ="Create a dialog button for ",~Dialog," labelled ",~Text
    DialogAddButtonBJHint=
    
    DialogClearBJ="Clear"
    DialogClearBJ="Clear ",~Dialog
    DialogClearBJHint="This clears the title and all buttons for the specified dialog."
    
    
    // Environment actions
    AddWeatherEffectSaveLast="Create Weather Effect"
    AddWeatherEffectSaveLast="Create at ",~Region," the weather effect ",~Weather Id
    AddWeatherEffectSaveLastHint=
    
    EnableWeatherEffect="Enable/Disable Weather Effect"
    EnableWeatherEffect="Turn ",~Weather Effect," ",~On/Off
    EnableWeatherEffectHint="You can create weather effects via the 'Environment - Create Weather Effect' action."
    
    RemoveWeatherEffectBJ="Remove Weather Effect"
    RemoveWeatherEffectBJ="Remove ",~Weather Effect
    RemoveWeatherEffectBJHint=
    
    TerrainDeformationCraterBJ="Create Terrain Deformation: Crater"
    TerrainDeformationCraterBJ="Create a ",~Duration," second ",~Type," crater deformation at ",~Point," with radius ",~Radius," and depth ",~Depth
    TerrainDeformationCraterBJHint="Use 'Last Created Terrain Deformation' to refer to this terrain deformation.  Depth may be negative for bumps.  Permanent deformations are not preserved in saved game files."
    
    TerrainDeformationRippleBJ="Create Terrain Deformation: Ripple"
    TerrainDeformationRippleBJ="Create a ",~Duration," second ",~Type," ripple deformation at ",~Point," with starting radius ",~Radius,", ending radius ",~Radius,", and depth ",~Depth,", using ",~Time," second ripples spaced ",~Distance," apart"
    TerrainDeformationRippleBJHint="Use 'Last Created Terrain Deformation' to refer to this terrain deformation."
    
    TerrainDeformationWaveBJ="Create Terrain Deformation: Wave"
    TerrainDeformationWaveBJ="Create a ",~Duration," second wave deformation from ",~Source," to ",~Target," with radius ",~Radius,", depth ",~Depth,", and a ",~Delay," second trailing delay"
    TerrainDeformationWaveBJHint="Use 'Last Created Terrain Deformation' to refer to this terrain deformation.  Depth may be negative for bumps."
    
    TerrainDeformationRandomBJ="Create Terrain Deformation: Random"
    TerrainDeformationRandomBJ="Create a ",~Duration," second random deformation at ",~Point," with radius ",~Radius,", using depths between ",~Minimum," and ",~Maximum,", updating every ",~Update Interval," seconds"
    TerrainDeformationRandomBJHint="Use 'Last Created Terrain Deformation' to refer to this terrain deformation."
    
    TerrainDeformationStopBJ="Stop Terrain Deformation"
    TerrainDeformationStopBJ="Stop ",~Terrain Deformation," over ",~Duration," seconds"
    TerrainDeformationStopBJHint="The deformation will smoothly reduce to nothing over the duration."
    
    TerrainDeformStopAll="Stop All Terrain Deformations"
    TerrainDeformStopAll="Stop all active terrain deformations instantly"
    TerrainDeformStopAllHint="This includes any terrain deformations indirectly caused by spells or abilities."
    
    SetWaterDeforms="Turn Water Deformation On/Off"
    SetWaterDeforms="Turn water deformation ",~On/Off
    SetWaterDeformsHint="When this is turned on, terrain deformations will also apply to any water above the terrain.  This does not work with permanent deformations."
    
    SetTerrainTypeBJ="Change Terrain Type"
    SetTerrainTypeBJ="Change terrain type at ",~Location," to ",~Terrain Type," using variation ",~Variation," in an area of size ",~Area," and shape ",~Shape
    SetTerrainTypeBJHint="Use a variation of -1 to generate random variations across the area."
    
    SetTerrainPathableBJ="Turn Terrain Pathing On/Off"
    SetTerrainPathableBJ="Set terrain pathing at ",~Location," of type ",~Pathing," to ",~On/Off
    SetTerrainPathableBJHint="Turning pathing on causes the pathing cell to become pathable to the given type.  For example, turning 'Buildability' on makes the pathing cell buildable.  This only affects pathing restrictions caused by terrain (not doodads, units, etc.)."
    
    SetWaterBaseColorBJ="Set Water Tinting Color"
    SetWaterBaseColorBJ="Change water tinting color to (",~Red,"%, ",~Green,"%, ",~Blue,"%) with ",~Transparency,"% transparency"
    SetWaterBaseColorBJHint="The color values are (Red, Green, Blue).  100% transparent water is completely invisible."
    
    SetSkyModel="Set Sky"
    SetSkyModel="Set sky to ",~Sky
    SetSkyModelHint=
    
    SetTerrainFogExBJ="Set Fog"
    SetTerrainFogExBJ="Set fog to style ",~Style,", z-start ",~Z-Start,", z-end ",~Z-End,", density ",~Density," and color (",~Red,"%, ",~Green,"%, ",~Blue,"%)"
    SetTerrainFogExBJHint="The color values are (Red, Green, Blue)."
    
    ResetTerrainFogBJ="Reset Fog"
    ResetTerrainFogBJ="Reset fog to default values"
    ResetTerrainFogBJHint=
    
    SetBlightRectBJ="Create/Remove Blight Region"
    SetBlightRectBJ=~Create/Remove," Blight for ",~Player," across ",~Region
    SetBlightRectBJHint=
    
    SetBlightRadiusLocBJ="Create/Remove Blight Circle"
    SetBlightRadiusLocBJ=~Create/Remove," Blight for ",~Player," from ",~Point," to a radius of ",~Radius
    SetBlightRadiusLocBJHint=
    
    // Text Tag actions
    CreateTextTagLocBJ="Create Floating Text At Point"
    CreateTextTagLocBJ="Create floating text that reads ",~Message," at ",~Point," with Z offset ",~Z,", using font size ",~Size,", color (",~Red,"%, ",~Green,"%, ",~Blue,"%), and ",~Transparency,"% transparency"
    CreateTextTagLocBJHint="The color values are (Red, Green, Blue).  A 100% transparent color is completely invisible.  Use 'Floating Text - Permanent/Expires' to make this floating text temporary."
    
    CreateTextTagUnitBJ="Create Floating Text Above Unit"
    CreateTextTagUnitBJ="Create floating text that reads ",~Message," above ",~Unit," with Z offset ",~Z,", using font size ",~Size,", color (",~Red,"%, ",~Green,"%, ",~Blue,"%), and ",~Transparency,"% transparency"
    CreateTextTagUnitBJHint="Floating text created in this manner does not follow the unit's movement.  The color values are (Red, Green, Blue).  A 100% transparent color is completely invisible.  Use 'Floating Text - Permanent/Expires' to make this floating text temporary."
    
    DestroyTextTagBJ="Destroy"
    DestroyTextTagBJ="Destroy ",~Floating Text
    DestroyTextTagBJHint=
    
    ShowTextTagForceBJ="Show/Hide"
    ShowTextTagForceBJ=~Show/Hide," ",~Floating Text," for ",~Player Group
    ShowTextTagForceBJHint=
    
    SetTextTagVelocityBJ="Set Velocity"
    SetTextTagVelocityBJ="Set the velocity of ",~Floating Text," to ",~Speed," towards ",~Angle," degrees"
    SetTextTagVelocityBJHint="You can only accurately set the velocity of floating text once, when it is first created.  The angle is expected in degrees, with 0 being east and 90 being north."
    
    SetTextTagColorBJ="Change Color"
    SetTextTagColorBJ="Change the color of ",~Floating Text," to (",~Red,"%, ",~Green,"%, ",~Blue,"%) with ",~Transparency,"% transparency"
    SetTextTagColorBJHint="The color values are (Red, Green, Blue).  A 100% transparent color is completely invisible."
    
    SetTextTagPosBJ="Change Position To Point"
    SetTextTagPosBJ="Change the position of ",~Floating Text," to ",~Point," with Z offset ",~Z
    SetTextTagPosBJHint=
    
    SetTextTagPosUnitBJ="Change Position To Unit"
    SetTextTagPosUnitBJ="Change the position of ",~Floating Text," to ",~Unit," with Z offset ",~Z
    SetTextTagPosUnitBJHint=
    
    SetTextTagTextBJ="Change Text"
    SetTextTagTextBJ="Change text of ",~Floating Text," to ",~Message," using font size ",~Size
    SetTextTagTextBJHint=
    
    SetTextTagSuspendedBJ="Suspend/Resume"
    SetTextTagSuspendedBJ="Change ",~Floating Text,": ",~Enable/Disable," suspend state"
    SetTextTagSuspendedBJHint=
    
    SetTextTagPermanentBJ="Permanent/Expires"
    SetTextTagPermanentBJ="Change ",~Floating Text,": ",~Enable/Disable," permanence"
    SetTextTagPermanentBJHint=
    
    SetTextTagLifespanBJ="Change Lifespan"
    SetTextTagLifespanBJ="Change the lifespan of ",~Floating Text," to ",~Time," seconds"
    SetTextTagLifespanBJHint="This does not affect permanent floating text.  This sets the age at which floating text is removed and cleaned up."
    
    SetTextTagFadepointBJ="Change Fading Age"
    SetTextTagFadepointBJ="Change the fading age of ",~Floating Text," to ",~Time," seconds"
    SetTextTagFadepointBJHint="This does not affect permanent floating text.  This sets the age at which floating text begins fading."
    
    SetTextTagAgeBJ="Change Age"
    SetTextTagAgeBJ="Change the age of ",~Floating Text," to ",~Time," seconds"
    SetTextTagAgeBJHint="This does not affect permanent floating text."
    
    
    // Game actions
    DisplayTextToForce="Text Message (Auto-Timed)"
    DisplayTextToForce="Display to ",~Player Group," the text: ",~Text
    DisplayTextToForceHint="The text is shown for an amount of time that automatically increases with the text length."
    
    DisplayTimedTextToForce="Text Message (Explicitly Timed)"
    DisplayTimedTextToForce="Display to ",~Player Group," for ",~Time," seconds the text: ",~Text
    DisplayTimedTextToForceHint=
    
    PauseGameOn="Pause Game"
    PauseGameOn="Pause the game"
    PauseGameOnHint=
    
    PauseGameOff="Unpause Game"
    PauseGameOff="Unpause the game"
    PauseGameOffHint=
    
    SetGameSpeed="Set Game Speed"
    SetGameSpeed="Set game speed to ",~Speed
    SetGameSpeedHint="You can lock the game speed with the 'Game - Lock Game Speed' trigger action."
    
    LockGameSpeedBJ="Lock Game Speed"
    LockGameSpeedBJ="Lock the game speed"
    LockGameSpeedBJHint="This prevents the game speed from being modified.  Not even triggers can modify the game speed when it is locked."
    
    UnlockGameSpeedBJ="Unlock Game Speed"
    UnlockGameSpeedBJ="Unlock the game speed"
    UnlockGameSpeedBJHint="This allows the game speed to be modified again after a 'Game - Lock Game Speed' action is used."
    
    SetMapFlag="Set Map Flag"
    SetMapFlag="Set ",~Map Flag," to ",~On/Off
    SetMapFlagHint=
    
    SetTimeOfDay="Set Time Of Day"
    SetTimeOfDay="Set the time of day to ",~Time
    SetTimeOfDayHint="A game day is 24 hours long.  Six a.m. is 6.00, and six p.m. is 18.00."
    
    SetTimeOfDayScalePercentBJ="Set Time Of Day Speed"
    SetTimeOfDayScalePercentBJ="Set time of day speed to ",~Percent,"% of the default speed"
    SetTimeOfDayScalePercentBJHint="Use 100% to revert the speed to normal."
    
    UseTimeOfDayBJ="Turn Day/Night Cycle On/Off"
    UseTimeOfDayBJ="Turn the day/night cycle ",~On/Off
    UseTimeOfDayBJHint=
    
    ShareEverythingWithTeam="Share Vision And Full Unit Control With Team"
    ShareEverythingWithTeam="Grant shared vision and full shared unit control of ",~Player," units with his/her allies"
    ShareEverythingWithTeamHint="Two players are considered allies if they are both allied with each other."
    
    MakeUnitsPassiveForPlayer="Give Units To Neutral Victim"
    MakeUnitsPassiveForPlayer="Give all ",~Player," units to the Neutral Victim player"
    MakeUnitsPassiveForPlayerHint="By default, the Neutral Victim player treats all other players as allies, but is treated as an enemy by all other players."
    
    SetNextLevelBJ="Set Next Level"
    SetNextLevelBJ="Set the next level to ",~Level
    SetNextLevelBJHint="This sets a level to be started after the current game ends."
    
    CustomVictoryBJ="Victory"
    CustomVictoryBJ="Victory ",~Player," (",~Show/Skip," dialogs, ",~Show/Skip," scores)"
    CustomVictoryBJHint=
    
    CustomDefeatBJ="Defeat"
    CustomDefeatBJ="Defeat ",~Player," with the message: ",~Message
    CustomDefeatBJHint=
    
    LoadGameBJ="Load Game"
    LoadGameBJ="Load ",~Filename," (",~Show/Skip," scores)"
    LoadGameBJHint=
    
    SaveAndLoadGameBJ="Save Game And Load Game"
    SaveAndLoadGameBJ="Save game as ",~Filename," and load ",~Filename," (",~Show/Skip," scores)"
    SaveAndLoadGameBJHint=
    
    SaveAndChangeLevelBJ="Save Game And Change Level"
    SaveAndChangeLevelBJ="Save game as ",~Filename," and change level to ",~Filename," (",~Show/Skip," scores)"
    SaveAndChangeLevelBJHint=
    
    RenameSaveDirectoryBJ="Rename Saved-Game Folder"
    RenameSaveDirectoryBJ="Rename the ",~Folder," saved-game folder to ",~Folder
    RenameSaveDirectoryBJHint=
    
    RemoveSaveDirectoryBJ="Delete Saved-Game Folder"
    RemoveSaveDirectoryBJ="Delete the ",~Folder," saved-game folder"
    RemoveSaveDirectoryBJHint="This deletes the specified saved-game folder and all of its contents."
    
    CopySaveGameBJ="Copy Saved-Game"
    CopySaveGameBJ="Create a copy of the ",~Filename," saved-game and name it ",~Filename
    CopySaveGameBJHint="This action only works in response to Game Load and Game Save events, and can only be used up to 16 times per event."
    
    SetCampaignMenuRaceBJ="Set Campaign Screen"
    SetCampaignMenuRaceBJ="Set campaign to ",~Campaign
    SetCampaignMenuRaceBJHint=
    
    SetMissionAvailableBJ="Enable/Disable Mission"
    SetMissionAvailableBJ=~Enable/Disable," ",~Mission
    SetMissionAvailableBJHint=
    
    SetCampaignAvailableBJ="Enable/Disable Campaign"
    SetCampaignAvailableBJ=~Enable/Disable," the ",~Campaign
    SetCampaignAvailableBJHint=
    
    SetCinematicAvailableBJ="Enable/Disable Cinematic"
    SetCinematicAvailableBJ=~Enable/Disable," the ",~Cinematic
    SetCinematicAvailableBJHint=
    
    ShowCustomCampaignButton="Show/Hide Custom Campaign Button"
    ShowCustomCampaignButton=~Show/Hide," custom campaign button ",~Number
    ShowCustomCampaignButtonHint=
    
    SetAllyColorFilterState="Set Ally Color Filter"
    SetAllyColorFilterState="Set ally color filtering to ",~State
    SetAllyColorFilterStateHint="A value of 0 disables filtering.  A value of 1 enables filtering for the minimap.  A value of 2 enables filtering for the minimap and the game view."
    
    SetCreepCampFilterState="Show/Hide Creep Camps On Minimap"
    SetCreepCampFilterState=~Show/Hide," creep camps on the minimap"
    SetCreepCampFilterStateHint=
    
    EnableMinimapFilterButtons="Enable/Disable Minimap Buttons"
    EnableMinimapFilterButtons=~Enable/Disable," ally color button and ",~Enable/Disable," creep camp button"
    EnableMinimapFilterButtonsHint=
    
    EnableSelect="Enable/Disable Selection"
    EnableSelect=~Enable/Disable," selection and deselection functionality (",~Enable/Disable," selection circles)"
    EnableSelectHint="Objects can still be selected and deselected via trigger actions.  Disabling selection prevents drag-selection as well.  Selection circles are only displayed if selection is enabled."
    
    EnableDragSelect="Enable/Disable Drag-Selection"
    EnableDragSelect=~Enable/Disable," drag-selection functionality (",~Enable/Disable," drag-selection box)"
    EnableDragSelectHint=
    
    EnablePreSelect="Enable/Disable Pre-Selection"
    EnablePreSelect=~Enable/Disable," pre-selection functionality (",~Enable/Disable," pre-selection circles, life bars, and object info)"
    EnablePreSelectHint=
    
    ForceUIKeyBJ="Force UI Key"
    ForceUIKeyBJ="Force ",~Player," to press the key ",~Key
    ForceUIKeyBJHint=
    
    ForceUICancelBJ="Force UI Cancel"
    ForceUICancelBJ="Force ",~Player," to press Escape/Cancel"
    ForceUICancelBJHint=
    
    Preload="Preload File"
    Preload="Preload ",~Filename
    PreloadHint=
    
    PreloadEnd="Begin Preloading"
    PreloadEnd="Begin preloading with a ",~Time," second timeout"
    PreloadEndHint=
    
    Preloader="Preload Batch"
    Preloader="Preload all files listed in ",~Filename
    PreloaderHint=
    
    
    Còn nữa. lần sau sẽ tiếp phần Game Cạche:hug:
    .
    ___________Auto Merge________________

    .
    Mã:
    // Game Cache actions
    InitGameCacheBJ="Create Game Cache"
    InitGameCacheBJ="Create a game cache from ",~Filename
    InitGameCacheBJHint="A game cache allows you to store data between maps, or between games on a given map.  If the specified file does not exist, it will be created."
    
    SaveGameCacheBJ="Save Game Cache"
    SaveGameCacheBJ="Save ",~Game Cache
    SaveGameCacheBJHint="Saves the game cache, using the same filename from which it was created."
    
    StoreUnitBJ="Store Unit"
    StoreUnitBJ="Store ",~Unit," as ",~Label," of ",~Category," in ",~Game Cache
    StoreUnitBJHint="Use the 'Game Cache - Restore Unit' actions to load this unit from a cache.  Label and Category names should not contain spaces."
    
    StoreRealBJ="Store Real"
    StoreRealBJ="Store ",~Value," as ",~Label," of ",~Category," in ",~Game Cache
    StoreRealBJHint="Use the 'Game Cache - Load Real Value' function to load this value from a cache.  Label and Category names should not contain spaces."
    
    StoreIntegerBJ="Store Integer"
    StoreIntegerBJ="Store ",~Value," as ",~Label," of ",~Category," in ",~Game Cache
    StoreIntegerBJHint="Use the 'Game Cache - Load Integer Value' function to load this value from a cache.  Label and Category names should not contain spaces."
    
    StoreBooleanBJ="Store Boolean"
    StoreBooleanBJ="Store ",~Value," as ",~Label," of ",~Category," in ",~Game Cache
    StoreBooleanBJHint="Use the 'Game Cache - Load Boolean Value' function to load this value from a cache.  Label and Category names should not contain spaces."
    
    StoreStringBJ="Store String"
    StoreStringBJ="Store ",~Value," as ",~Label," of ",~Category," in ",~Game Cache
    StoreStringBJHint="Use the 'Game Cache - Load String Value' function to load this value from a cache.  Label and Category names should not contain spaces."
    
    RestoreUnitLocFacingAngleBJ="Restore Unit Facing Angle"
    RestoreUnitLocFacingAngleBJ="Restore ",~Label," of ",~Category," from ",~Game Cache," for ",~Player," at ",~Location," facing ",~Angle
    RestoreUnitLocFacingAngleBJHint="Use 'Last Restored Unit' to refer to the unit created by this action.  If the label is not found, no unit will be created, and 'Last Restored Unit' will have the value 'No Unit'."
    
    RestoreUnitLocFacingPointBJ="Restore Unit Facing Point"
    RestoreUnitLocFacingPointBJ="Restore ",~Label," of ",~Category," from ",~Game Cache," for ",~Player," at ",~Location," facing ",~Point
    RestoreUnitLocFacingPointBJHint="Use 'Last Restored Unit' to refer to the unit created by this action.  If the label is not found, no unit will be created, and 'Last Restored Unit' will have the value 'No Unit'."
    
    ReloadGameCachesFromDisk="Reload All"
    ReloadGameCachesFromDisk="Reload all game cache data from disk"
    ReloadGameCachesFromDiskHint=
    
    FlushGameCacheBJ="Clear Game Cache"
    FlushGameCacheBJ="Clear ",~Game Cache
    FlushGameCacheBJHint="Clears all labels of all categories in a game cache."
    
    FlushStoredMissionBJ="Clear Category"
    FlushStoredMissionBJ="Clear all labels of ",~Category," in ",~Game Cache
    FlushStoredMissionBJHint="Clears all labels of a specific category in a game cache."
    
    
    // Hero actions
    SelectHeroSkill="Learn Skill"
    SelectHeroSkill="Learn skill for ",~Hero,": ",~Skill
    SelectHeroSkillHint="This only works if the Hero has at least one skill point to spend."
    
    SetHeroLevel="Set Level"
    SetHeroLevel="Set ",~Hero," Hero-level to ",~Level,", ",~Show/Hide," level-up graphics"
    SetHeroLevelHint=
    
    SetHeroXP="Set Experience"
    SetHeroXP="Set ",~Hero," experience to ",~Quantity,", ",~Show/Hide," level-up graphics"
    SetHeroXPHint=
    
    AddHeroXPSwapped="Add Experience"
    AddHeroXPSwapped="Add ",~Quantity," experience to ",~Hero,", ",~Show/Hide," level-up graphics"
    AddHeroXPSwappedHint=
    
    SuspendHeroXPBJ="Enable/Disable Experience Gain"
    SuspendHeroXPBJ=~Enable/Disable," experience gain for ",~Hero
    SuspendHeroXPBJHint=
    
    SetPlayerHandicapXPBJ="Set Experience Rate"
    SetPlayerHandicapXPBJ="Make ",~Player," Heroes gain ",~Percent,"% experience from future kills"
    SetPlayerHandicapXPBJHint=
    
    ReviveHeroLoc="Revive (Instantly)"
    ReviveHeroLoc="Instantly revive ",~Hero," at ",~Point,", ",~Show/Hide," revival graphics"
    ReviveHeroLocHint="This revives a dead Hero at a spot on the map, even if the player has no altar.  You can also revive a Hero by issuing a 'Revive' order to an appropriate altar, targeting the hero you wish to revive."
    
    ModifyHeroStat="Modify Hero Attribute"
    ModifyHeroStat="Modify ",~Attribute," of ",~Hero,": ",~Modify," ",~Value
    ModifyHeroStatHint=
    
    ModifyHeroSkillPoints="Modify Hero Skill Points"
    ModifyHeroSkillPoints="Modify unspent skill points of ",~Hero,": ",~Modify," ",~Value," points"
    ModifyHeroSkillPointsHint=
    
    SetReservedLocalHeroButtons="Reserve Hero Buttons"
    SetReservedLocalHeroButtons="Reserve ",~Number," Hero buttons for the local player"
    SetReservedLocalHeroButtonsHint="Button slots reserved by this action are not used by Heroes controlled via shared unit control."
    
    UnitAddItemSwapped="Give Item To Hero"
    UnitAddItemSwapped="Give ",~Item," to ",~Hero
    UnitAddItemSwappedHint=
    
    UnitAddItemByIdSwapped="Create Item For Hero"
    UnitAddItemByIdSwapped="Create ",~Item-Type," and give it to ",~Hero
    UnitAddItemByIdSwappedHint=
    
    UnitRemoveItemSwapped="Drop Item From Hero"
    UnitRemoveItemSwapped="Drop ",~Item," from ",~Hero
    UnitRemoveItemSwappedHint="The item is removed from the Hero and placed on the ground at the Hero's feet."
    
    UnitRemoveItemFromSlotSwapped="Drop Item From Hero Inventory Slot"
    UnitRemoveItemFromSlotSwapped="Drop the item from slot ",~Index," of ",~Hero
    UnitRemoveItemFromSlotSwappedHint="If an item exists in the given slot, it is removed from the Hero and placed on the ground at the Hero's feet."
    
    UnitUseItemTarget="Use Item On A Unit"
    UnitUseItemTarget="Order ",~Hero," to use ",~Item," on ",~Unit
    UnitUseItemTargetHint=
    
    UnitUseItemPointLoc="Use Item On A Point"
    UnitUseItemPointLoc="Order ",~Hero," to use ",~Item," on ",~Point
    UnitUseItemPointLocHint=
    
    UnitUseItemDestructable="Use Item On A Destructible"
    UnitUseItemDestructable="Order ",~Hero," to use ",~Item," on ",~Destructible
    UnitUseItemDestructableHint=
    
    UnitUseItem="Use Item"
    UnitUseItem="Order ",~Hero," to use ",~Item
    UnitUseItemHint=
    
    
    // Item actions
    CreateItemLoc="Create"
    CreateItemLoc="Create ",~Item," at ",~Point
    CreateItemLocHint=
    
    RemoveItem="Remove"
    RemoveItem="Remove ",~Item
    RemoveItemHint=
    
    SetItemVisibleBJ="Show/Hide Item"
    SetItemVisibleBJ=~Show/Hide," ",~Item
    SetItemVisibleBJHint="This hides items on the ground.  It does not affect items held by units."
    
    SetItemPositionLoc="Move (Instantly)"
    SetItemPositionLoc="Move ",~Item," to ",~Point
    SetItemPositionLocHint=
    
    SetItemLifeBJ="Set Life"
    SetItemLifeBJ="Set life of ",~Item," to ",~Value
    SetItemLifeBJHint=
    
    SetItemCharges="Set Charges Remaining"
    SetItemCharges="Set charges remaining in ",~Item," to ",~Charges
    SetItemChargesHint="Use a value of zero to give the item unlimited charges."
    
    SetItemInvulnerableBJ="Make Invulnerable/Vulnerable"
    SetItemInvulnerableBJ="Make ",~Item," ",~Invulnerable/Vulnerable
    SetItemInvulnerableBJHint=
    
    SetItemPawnable="Make Pawnable"
    SetItemPawnable="Make ",~Item," ",~Pawnable/Unpawnable
    SetItemPawnableHint="A pawnable item can be sold at item vendors."
    
    SetItemDroppableBJ="Make Undroppable"
    SetItemDroppableBJ="Make ",~Item," ",~Droppable/Undroppable
    SetItemDroppableBJHint="An undroppable item cannot be removed from a Hero's inventory once it has been picked up."
    
    SetItemDropOnDeathBJ="Make Item Drop From Heroes Upon Death"
    SetItemDropOnDeathBJ="Make ",~Item," ",~Drop from/Stay with," Heroes upon death"
    SetItemDropOnDeathBJHint=
    
    SetItemPlayerBJ="Change Owner"
    SetItemPlayerBJ="Change ownership of ",~Item," to ",~Player," and ",~Change/Retain Color
    SetItemPlayerBJHint="Not all items are capable of changing color."
    
    SetItemUserData="Set Custom Value"
    SetItemUserData="Set the custom value of ",~Item," to ",~Index
    SetItemUserDataHint="Custom values are only used in triggers, and can be used to store any integer value."
    
    EnumItemsInRectBJMultiple="Pick Every Item In Region And Do Multiple Actions"
    EnumItemsInRectBJMultiple="Pick every item in ",~Region," and do (Actions)"
    EnumItemsInRectBJMultipleHint="Use 'Picked Item' to refer each item as it is picked.  This works for every item in the region, including hidden items.  Wait actions should not be used within this function.  Add actions to this function in the main display."
    
    EnumItemsInRectBJ="Pick Every Item In Region And Do Action"
    EnumItemsInRectBJ="Pick every item in ",~Region," and do ",~Action
    EnumItemsInRectBJHint="Use 'Picked Item' to refer each item as it is picked.  Wait actions should not be used within this function."
    
    
    // Image actions
    CreateImageBJ="Create"
    CreateImageBJ="Create an image using ",~Image," of size ",~Size," at ",~Point," with Z offset ",~Z," using image type ",~Type
    CreateImageBJHint="Use 'Image - Change Render Always State' to toggle display of this image.  By default, images are not rendered.  The point specified is used as the bottom-left corner of the image.  Images need an alpha channel in order to be displayed properly."
    
    DestroyImage="Destroy"
    DestroyImage="Destroy ",~Image
    DestroyImageHint=
    
    ShowImageBJ="Show/Hide"
    ShowImageBJ=~Show/Hide," ",~Image
    ShowImageBJHint=
    
    SetImageConstantHeight="Change Constant Height"
    SetImageConstantHeight="Change the height state of ",~Image," to ",~Enable/Disable," at ",~Height
    SetImageConstantHeightHint=
    
    SetImagePositionBJ="Change Position"
    SetImagePositionBJ="Change the position of ",~Image," to ",~Position," with Z offset ",~Z
    SetImagePositionBJHint="The point specified is used as the bottom-left corner of the image."
    
    SetImageColorBJ="Change Color"
    SetImageColorBJ="Change the color of ",~Image," to (",~Red,"%, ",~Green,"%, ",~Blue,"%) with ",~Transparency,"% transparency"
    SetImageColorBJHint="The color values are (Red, Green, Blue).  A 100% transparent color is completely invisible."
    
    SetImageRender="Change Render State"
    SetImageRender="Change ",~Image,": ",~Enable/Disable," rendering state"
    SetImageRenderHint=
    
    SetImageRenderAlways="Change Render Always State"
    SetImageRenderAlways="Change ",~Image,": ",~Enable/Disable," render always state"
    SetImageRenderAlwaysHint=
    
    SetImageAboveWater="Change Above Water State"
    SetImageAboveWater="Change ",~Image,": ",~Enable/Disable," above water state, ",~Enable/Disable," water alpha inheritance"
    SetImageAboveWaterHint=
    
    SetImageType="Change Type"
    SetImageType="Change type of ",~Image," to ",~Type
    SetImageTypeHint=
    
    // Leaderboard actions
    CreateLeaderboardBJ="Create"
    CreateLeaderboardBJ="Create a leaderboard for ",~Player Group," titled ",~Title
    CreateLeaderboardBJHint="Leaderboards cannot be displayed at map initialization.  If no title is specified, the title line will not be displayed."
    
    DestroyLeaderboardBJ="Destroy"
    DestroyLeaderboardBJ="Destroy ",~Leaderboard
    DestroyLeaderboardBJHint=
    
    LeaderboardSortItemsBJ="Sort"
    LeaderboardSortItemsBJ="Sort ",~Leaderboard," by ",~Field," in ",~Ascending/Descending," order"
    LeaderboardSortItemsBJHint=
    
    LeaderboardDisplayBJ="Show/Hide"
    LeaderboardDisplayBJ=~Show/Hide," ",~Leaderboard
    LeaderboardDisplayBJHint="Leaderboards cannot be displayed at map initialization."
    
    LeaderboardSetLabelBJ="Change Title"
    LeaderboardSetLabelBJ="Change the title of ",~Leaderboard," to ",~Title
    LeaderboardSetLabelBJHint=
    
    LeaderboardSetLabelColorBJ="Change Label Colors"
    LeaderboardSetLabelColorBJ="Change the color of all labels for ",~Leaderboard," to (",~Red,"%, ",~Green,"%, ",~Blue,"%) with ",~Transparency,"% transparency"
    LeaderboardSetLabelColorBJHint="The color values are (Red, Green, Blue).  A 100% transparent color is completely invisible."
    
    LeaderboardSetValueColorBJ="Change Value Colors"
    LeaderboardSetValueColorBJ="Change the color of all values for ",~Leaderboard," to (",~Red,"%, ",~Green,"%, ",~Blue,"%) with ",~Transparency,"% transparency"
    LeaderboardSetValueColorBJHint="The color values are (Red, Green, Blue).  A 100% transparent color is completely invisible."
    
    LeaderboardSetStyleBJ="Change Style"
    LeaderboardSetStyleBJ="Change the display style for ",~Leaderboard," to ",~Show/Hide," the title, ",~Show/Hide," labels, ",~Show/Hide," values, and ",~Show/Hide," icons"
    LeaderboardSetStyleBJHint=
    
    LeaderboardAddItemBJ="Add Player"
    LeaderboardAddItemBJ="Add ",~Player," to ",~Leaderboard," with label ",~Label," and value ",~Value
    LeaderboardAddItemBJHint=
    
    LeaderboardRemovePlayerItemBJ="Remove Player"
    LeaderboardRemovePlayerItemBJ="Remove ",~Player," from ",~Leaderboard
    LeaderboardRemovePlayerItemBJHint=
    
    LeaderboardSetPlayerItemLabelBJ="Change Player Label"
    LeaderboardSetPlayerItemLabelBJ="Change the label for ",~Player," in ",~Leaderboard," to ",~Label
    LeaderboardSetPlayerItemLabelBJHint=
    
    LeaderboardSetPlayerItemLabelColorBJ="Change Player Label Color"
    LeaderboardSetPlayerItemLabelColorBJ="Change the color of the label for ",~Player," in ",~Leaderboard," to (",~Red,"%, ",~Green,"%, ",~Blue,"%) with ",~Transparency,"% transparency"
    LeaderboardSetPlayerItemLabelColorBJHint="The color values are (Red, Green, Blue).  A 100% transparent color is completely invisible."
    
    LeaderboardSetPlayerItemValueBJ="Change Player Value"
    LeaderboardSetPlayerItemValueBJ="Change the value for ",~Player," in ",~Leaderboard," to ",~Value
    LeaderboardSetPlayerItemValueBJHint=
    
    LeaderboardSetPlayerItemValueColorBJ="Change Player Value Color"
    LeaderboardSetPlayerItemValueColorBJ="Change the color of the value for ",~Player," in ",~Leaderboard," to (",~Red,"%, ",~Green,"%, ",~Blue,"%) with ",~Transparency,"% transparency"
    LeaderboardSetPlayerItemValueColorBJHint="The color values are (Red, Green, Blue).  A 100% transparent color is completely invisible."
    
    LeaderboardSetPlayerItemStyleBJ="Change Player Style"
    LeaderboardSetPlayerItemStyleBJ="Change the display style for ",~Player," in ",~Leaderboard," to ",~Show/Hide," the label, ",~Show/Hide," the value, and ",~Show/Hide," the icon"
    LeaderboardSetPlayerItemStyleBJHint=
    
    
    // Lightning actions
    AddLightningLoc="Create Lightning Effect"
    AddLightningLoc="Create a ",~Type," lightning effect from source ",~Point," to target ",~Point
    AddLightningLocHint=
    
    DestroyLightningBJ="Destroy Lightning Effect"
    DestroyLightningBJ="Destroy ",~Lightning
    DestroyLightningBJHint=
    
    MoveLightningLoc="Move Lightning Effect"
    MoveLightningLoc="Move ",~Lightning," to source ",~Point," and target ",~Point
    MoveLightningLocHint=
    
    SetLightningColorBJ="Set Lightning Effect Color"
    SetLightningColorBJ="Change color of ",~Lightning," to (",~Red," ",~Green," ",~Blue,") with ",~Alpha," alpha"
    SetLightningColorBJHint="The color values are (Red, Green, Blue).  Color and alpha values are expected in the range of 0 to 1.  A lightning effect with 0 alpha is completely invisible."
    
    
    // Melee Game actions
    MeleeStartingVisibility="Use Melee Time Of Day"
    MeleeStartingVisibility="Use melee time of day (for all players)"
    MeleeStartingVisibilityHint=
    
    MeleeStartingHeroLimit="Hero Limits"
    MeleeStartingHeroLimit="Limit Heroes to 1 per Hero-type (for all players)"
    MeleeStartingHeroLimitHint=
    
    MeleeGrantHeroItems="Hero Starting Items"
    MeleeGrantHeroItems="Give trained Heroes a Scroll of Town Portal (for all players)"
    MeleeGrantHeroItemsHint=
    
    MeleeStartingResources="Set Starting Resources"
    MeleeStartingResources="Set starting resources (for all players)"
    MeleeStartingResourcesHint=
    
    MeleeClearExcessUnits="Remove Excess Units"
    MeleeClearExcessUnits="Remove creeps and critters from used start locations (for all players)"
    MeleeClearExcessUnitsHint="Removes all Neutral Hostile units and non-building Neutral Passive units within a radius of 1024 around each used start location."
    
    MeleeStartingUnits="Create Starting Units"
    MeleeStartingUnits="Create starting units (for all players)"
    MeleeStartingUnitsHint=
    
    MeleeStartingAI="Run AI"
    MeleeStartingAI="Run melee AI scripts (for computer players)"
    MeleeStartingAIHint="Players should have starting units and resources before this action is run."
    
    MeleeInitVictoryDefeat="Victory/Defeat Conditions"
    MeleeInitVictoryDefeat="Enforce victory/defeat conditions (for all players)"
    MeleeInitVictoryDefeatHint="Players should have starting units before this action is run."
    
    MeleeStartingUnitsForPlayer="Create Starting Units For Player"
    MeleeStartingUnitsForPlayer="Create ",~Race," starting units for ",~Player," at ",~Point," (",~Include/Exclude," Heroes)"
    MeleeStartingUnitsForPlayerHint="This action creates the same starting units that are created for melee games."
    
    
    // Multiboard actions
    CreateMultiboardBJ="Create"
    CreateMultiboardBJ="Create a multiboard with ",~Columns," columns and ",~Rows," rows, titled ",~Title
    CreateMultiboardBJHint="Multiboards cannot be displayed at map initialization."
    
    DestroyMultiboardBJ="Destroy"
    DestroyMultiboardBJ="Destroy ",~Multiboard
    DestroyMultiboardBJHint=
    
    MultiboardDisplayBJ="Show/Hide"
    MultiboardDisplayBJ=~Show/Hide," ",~Multiboard
    MultiboardDisplayBJHint="Multiboards cannot be displayed at map initialization."
    
    MultiboardAllowDisplayBJ="Show/Hide All Multiboards"
    MultiboardAllowDisplayBJ=~Show/Hide," all multiboards"
    MultiboardAllowDisplayBJHint=
    
    MultiboardMinimizeBJ="Minimize/Maximize"
    MultiboardMinimizeBJ=~Minimize/Maximize," ",~Multiboard
    MultiboardMinimizeBJHint="A minimized multiboard will only display the title."
    
    MultiboardClear="Clear"
    MultiboardClear="Clear ",~Multiboard
    MultiboardClearHint="This will remove all rows and columns from the multiboard."
    
    MultiboardSetTitleText="Change Title"
    MultiboardSetTitleText="Change the title of ",~Multiboard," to ",~Title
    MultiboardSetTitleTextHint=
    
    MultiboardSetTitleTextColorBJ="Change Title Color"
    MultiboardSetTitleTextColorBJ="Change the color of the title for ",~Multiboard," to (",~Red,"%, ",~Green,"%, ",~Blue,"%) with ",~Transparency,"% transparency"
    MultiboardSetTitleTextColorBJHint="The color values are (Red, Green, Blue).  A 100% transparent color is completely invisible."
    
    MultiboardSetRowCount="Change Number Of Rows"
    MultiboardSetRowCount="Change the number of rows for ",~Multiboard," to ",~Rows
    MultiboardSetRowCountHint=
    
    MultiboardSetColumnCount="Change Number Of Columns"
    MultiboardSetColumnCount="Change the number of columns for ",~Multiboard," to ",~Columns
    MultiboardSetColumnCountHint=
    
    MultiboardSetItemStyleBJ="Set Item Display Style"
    MultiboardSetItemStyleBJ="Set the display style for ",~Multiboard," item in column ",~Column,", row ",~Row," to ",~Show/Hide," text and ",~Show/Hide," icons"
    MultiboardSetItemStyleBJHint="Use a column value of zero to affect all columns.  Use a row value of zero to affect all rows."
    
    MultiboardSetItemValueBJ="Set Item Text"
    MultiboardSetItemValueBJ="Set the text for ",~Multiboard," item in column ",~Column,", row ",~Row," to ",~Text
    MultiboardSetItemValueBJHint="Use a column value of zero to affect all columns.  Use a row value of zero to affect all rows."
    
    MultiboardSetItemColorBJ="Set Item Color"
    MultiboardSetItemColorBJ="Set the color for ",~Multiboard," item in column ",~Column,", row ",~Row," to (",~Red,"%, ",~Green,"%, ",~Blue,"%) with ",~Transparency,"% transparency"
    MultiboardSetItemColorBJHint="Use a column value of zero to affect all columns.  Use a row value of zero to affect all rows.  The color values are (Red, Green, Blue).  A 100% transparent color is completely invisible."
    
    MultiboardSetItemWidthBJ="Set Item Width"
    MultiboardSetItemWidthBJ="Set the width for ",~Multiboard," item in column ",~Column,", row ",~Row," to ",~Width,"% of the total screen width"
    MultiboardSetItemWidthBJHint=
    
    MultiboardSetItemIconBJ="Set Item Icon"
    MultiboardSetItemIconBJ="Set the icon for ",~Multiboard," item in column ",~Column,", row ",~Row," to ",~Icon File
    MultiboardSetItemIconBJHint=
    
    
    // Neutral Building actions
    AddResourceAmountBJ="Add Gold To Gold Mine"
    AddResourceAmountBJ="Add ",~Quantity," gold to ",~Gold Mine
    AddResourceAmountBJHint="Use a negative number to subtract."
    
    SetResourceAmount="Set Resources Of Gold Mine"
    SetResourceAmount="Set ",~Gold Mine," to ",~Quantity," gold"
    SetResourceAmountHint=
    
    BlightGoldMineForPlayer="Haunt Gold Mine (Instantly)"
    BlightGoldMineForPlayer="Haunt ",~Gold Mine," for ",~Player
    BlightGoldMineForPlayerHint="This replaces the Gold Mine with a Haunted Gold Mine of equal resources."
    
    WaygateActivateBJ="Enable/Disable Way Gate"
    WaygateActivateBJ=~Enable/Disable," ",~Way Gate
    WaygateActivateBJHint=
    
    WaygateSetDestinationLocBJ="Set Way Gate Destination"
    WaygateSetDestinationLocBJ="Set ",~Way Gate," destination to ",~Target
    WaygateSetDestinationLocBJHint=
    
    SetAltMinimapIcon="Change Special Minimap Icon"
    SetAltMinimapIcon="Change the special minimap icon to ",~Image
    SetAltMinimapIconHint="The image used for this action must be exactly 16x16 pixels in size."
    
    UnitSetUsesAltIconBJ="Turn Special Minimap Icon On/Off"
    UnitSetUsesAltIconBJ="Turn special minimap icon ",~On/Off," for ",~Unit
    UnitSetUsesAltIconBJHint="Use the 'Neutral Building - Change Special Minimap Icon' action to control the icon that is displayed."
    
    AddItemToStockBJ="Add Item-Type (To Marketplace)"
    AddItemToStockBJ="Add ",~Item-Type," to ",~Marketplace," with ",~Count," in stock and a max stock of ",~Max
    AddItemToStockBJHint="This only affects a building if it has the 'Sell Items' ability."
    
    AddItemToAllStock="Add Item-Type (To All Marketplaces)"
    AddItemToAllStock="Add ",~Item-Type," to all marketplaces with ",~Count," in stock and a max stock of ",~Max
    AddItemToAllStockHint="This affects all buildings that have the 'Sell Items' ability."
    
    AddUnitToStockBJ="Add Unit-Type (To Marketplace)"
    AddUnitToStockBJ="Add ",~Unit-Type," to ",~Marketplace," with ",~Count," in stock and a max stock of ",~Max
    AddUnitToStockBJHint="This only affects a building if it has the 'Sell Units' ability."
    
    AddUnitToAllStock="Add Unit-Type (To All Marketplaces)"
    AddUnitToAllStock="Add ",~Unit-Type," to all marketplaces with ",~Count," in stock and a max stock of ",~Max
    AddUnitToAllStockHint="This affects all buildings that have the 'Sell Units' ability."
    
    RemoveItemFromStockBJ="Remove Item-Type (From Marketplace)"
    RemoveItemFromStockBJ="Remove ",~Item-Type," from ",~Marketplace
    RemoveItemFromStockBJHint="This only affects a building if it has the 'Sell Items' ability."
    
    RemoveItemFromAllStock="Remove Item-Type (From All Marketplaces)"
    RemoveItemFromAllStock="Remove ",~Item-Type," from all marketplaces"
    RemoveItemFromAllStockHint="This affects all buildings that have the 'Sell Items' ability."
    
    RemoveUnitFromStockBJ="Remove Unit-Type (From Marketplace)"
    RemoveUnitFromStockBJ="Remove ",~Unit-Type," from ",~Marketplace
    RemoveUnitFromStockBJHint="This only affects a building if it has the 'Sell Units' ability."
    
    RemoveUnitFromAllStock="Remove Unit-Type (From All Marketplaces)"
    RemoveUnitFromAllStock="Remove ",~Unit-Type," from all marketplaces"
    RemoveUnitFromAllStockHint="This affects all buildings that have the 'Sell Units' ability."
    
    SetItemTypeSlots="Limit Item Slots (Of Marketplace)"
    SetItemTypeSlots="Limit ",~Marketplace," to ",~Quantity," item slots"
    SetItemTypeSlotsHint="This only affects a building if it has the 'Sell Items' ability."
    
    SetAllItemTypeSlots="Limit Item Slots (Of All Marketplaces)"
    SetAllItemTypeSlots="Limit all marketplaces to ",~Quantity," item slots"
    SetAllItemTypeSlotsHint="This affects all buildings that have the 'Sell Items' ability."
    
    SetUnitTypeSlots="Limit Unit Slots (Of Marketplace)"
    SetUnitTypeSlots="Limit ",~Marketplace," to ",~Quantity," unit slots"
    SetUnitTypeSlotsHint="This only affects a building if it has the 'Sell Units' ability."
    
    SetAllUnitTypeSlots="Limit Unit Slots (Of All Marketplaces)"
    SetAllUnitTypeSlots="Limit all marketplaces to ",~Quantity," unit slots"
    SetAllUnitTypeSlotsHint="This affects all buildings that have the 'Sell Units' ability."
    
    
    // Player actions
    SetPlayerState="Set Property"
    SetPlayerState="Set ",~Player," ",~Property," to ",~Value
    SetPlayerStateHint=
    
    AdjustPlayerStateBJ="Add Property"
    AdjustPlayerStateBJ="Add ",~Value," to ",~Player," ",~Property
    AdjustPlayerStateBJHint="Use a negative number to subtract."
    
    SetPlayerFlagBJ="Turn Player Flag On/Off"
    SetPlayerFlagBJ="Turn ",~Player Flag," ",~On/Off," for ",~Player
    SetPlayerFlagBJHint=
    
    SetPlayerTaxRateBJ="Divert Player Income (Tax)"
    SetPlayerTaxRateBJ="Divert ",~Rate,"% of the ",~Resource," income of ",~Player," to ",~Player
    SetPlayerTaxRateBJHint="Income lost in this way can be accessed using the 'Player Score' function with 'Gold/Lumber Lost To Tax' values."
    
    EnableCreepSleepBJ="Enable/Disable Sleeping For All Creeps"
    EnableCreepSleepBJ=~Enable/Disable," sleeping for all creeps"
    EnableCreepSleepBJHint="This affects nocturnal sleep, not magical sleep."
    
    SetPlayerAllianceStateBJ="Set Alliance"
    SetPlayerAllianceStateBJ="Make ",~Player," treat ",~Player," as an ",~Alliance Setting
    SetPlayerAllianceStateBJHint="Note that neutral player slots cannot share their vision."
    
    SetPlayerAllianceBJ="Set Aspect Of Alliance"
    SetPlayerAllianceBJ="For ",~Player,", turn ",~Alliance Type," ",~On/Off," toward ",~Player
    SetPlayerAllianceBJHint="This modifies one aspect of a player's alliance state, leaving others untouched.  Note that neutral player slots cannot share their vision."
    
    SetPlayerAbilityAvailableBJ="Enable/Disable Ability"
    SetPlayerAbilityAvailableBJ=~Enable/Disable," ",~Ability," for ",~Player
    SetPlayerAbilityAvailableBJHint=
    
    SetPlayerUnitAvailableBJ="Set Training/Construction Availability Of Unit"
    SetPlayerUnitAvailableBJ="Make ",~Unit-Type," ",~Available/Unavailable," for training/construction by ",~Player
    SetPlayerUnitAvailableBJHint="This determines whether or not a type of unit can be trained or constructed by a player."
    
    SetPlayerUnitMaxAllowed="Limit Training Of Unit-Type"
    SetPlayerUnitMaxAllowed="Limit training of ",~Unit-Type," to ",~Limit," for ",~Player
    SetPlayerUnitMaxAllowedHint="A limit of -1 allows unlimited training of the unit-type.  A limit of 0 makes the unit-type unavailable for training."
    
    SetPlayerMaxHeroesAllowed="Limit Training Of Heroes"
    SetPlayerMaxHeroesAllowed="Limit training of Heroes to ",~Limit," for ",~Player
    SetPlayerMaxHeroesAllowedHint="A limit of -1 allows unlimited training of Heroes.  A limit of 0 makes Heroes unavailable for training."
    
    SetPlayerTechResearchedSwap="Set Current Research Level"
    SetPlayerTechResearchedSwap="Set the current research level of ",~Tech," to ",~Level," for ",~Player
    SetPlayerTechResearchedSwapHint="Use 0 or 1 for simple tech, or 0..3 for three-stage upgrades.  Tech cannot be unlearned through the use of this action."
    
    SetPlayerTechMaxAllowedSwap="Set Max Research Level"
    SetPlayerTechMaxAllowedSwap="Set the max research level of ",~Tech," to ",~Level," for ",~Player
    SetPlayerTechMaxAllowedSwapHint="Use 0 or 1 for simple tech, or 0..3 for three-stage upgrades."
    
    SetPlayerColorBJ="Change Color"
    SetPlayerColorBJ="Change color of ",~Player," to ",~Color,", ",~Changing/Retaining color," of existing units"
    SetPlayerColorBJHint=
    
    SetPlayerHandicapBJ="Set Handicap"
    SetPlayerHandicapBJ="Set ",~Player," handicap to ",~Percent,"%"
    SetPlayerHandicapBJHint="Handicaps apply to the max life of all units owned or created for the player.  Heroes are less affected by handicaps than non-Hero units."
    
    SetPlayerOnScoreScreenBJ="Show/Hide In Score Screen"
    SetPlayerOnScoreScreenBJ=~Show/Hide," ",~Player," in the post-game score screen"
    SetPlayerOnScoreScreenBJHint=
    
    SetPlayerName="Set Name"
    SetPlayerName="Set name of ",~Player," to ",~Name
    SetPlayerNameHint=
    
    
    // Player Group actions
    ForForceMultiple="Pick Every Player In Player Group And Do Multiple Actions"
    ForForceMultiple="Pick every player in ",~Player Group," and do (Actions)"
    ForForceMultipleHint="Use 'Picked Player' to refer each player as he/she is picked.  Wait actions should not be used within this function.  Add actions to this function in the main display."
    
    ForForce="Pick Every Player In Player Group And Do Action"
    ForForce="Pick every player in ",~Player Group," and do ",~Action
    ForForceHint="Use 'Picked Player' to refer each player as he/she is picked.  Wait actions should not be used within this function."
    
    ForceAddPlayerSimple="Add Player"
    ForceAddPlayerSimple="Add ",~Player," to ",~Player Group
    ForceAddPlayerSimpleHint="This adds a player to a Player Group variable.  This does not affect the player."
    
    ForceRemovePlayerSimple="Remove Player"
    ForceRemovePlayerSimple="Remove ",~Player," from ",~Player Group
    ForceRemovePlayerSimpleHint="This removes a player from a Player Group variable.  This does not affect the player."
    
    ForceClear="Clear"
    ForceClear="Remove all players from ",~Player Group
    ForceClearHint="This removes all players from a Player Group variable.  This does not affect the players themselves."
    
    SetForceAllianceStateBJ="Set Alliance"
    SetForceAllianceStateBJ="Make ",~Player," treat ",~Player," as an ",~Alliance Setting
    SetForceAllianceStateBJHint="Note that neutral player slots cannot share their vision."
    
    
    // Quest actions
    QuestMessageBJ="Quest Message"
    QuestMessageBJ="Display to ",~Player Group," the ",~Quest Message Type," message: ",~Message
    QuestMessageBJHint=
    
    CreateQuestBJ="Create Quest"
    CreateQuestBJ="Create a ",~Quest Type," quest titled ",~Title," with the description ",~Description,", using icon path ",~Icon Path
    CreateQuestBJHint=
    
    DestroyQuestBJ="Destroy Quest"
    DestroyQuestBJ="Destroy ",~Quest
    DestroyQuestBJHint="Destroyed quests are removed from the quest log."
    
    QuestSetEnabledBJ="Enable/Disable Quest"
    QuestSetEnabledBJ=~Enable/Disable," ",~Quest
    QuestSetEnabledBJHint="Disabled quests are not displayed in the quest log."
    
    QuestSetCompletedBJ="Mark Quest As Completed"
    QuestSetCompletedBJ="Mark ",~Quest," as ",~Completed/Incomplete
    QuestSetCompletedBJHint=
    
    QuestSetFailedBJ="Mark Quest As Failed"
    QuestSetFailedBJ="Mark ",~Quest," as ",~Failed/Not Failed
    QuestSetFailedBJHint=
    
    QuestSetDiscoveredBJ="Mark Quest As Discovered"
    QuestSetDiscoveredBJ="Mark ",~Quest," as ",~Discovered/Undiscovered
    QuestSetDiscoveredBJHint=
    
    QuestSetTitleBJ="Change Quest Title"
    QuestSetTitleBJ="Change the title of ",~Quest," to ",~Title
    QuestSetTitleBJHint=
    
    QuestSetDescriptionBJ="Change Quest Description"
    QuestSetDescriptionBJ="Change the description of ",~Quest," to ",~Description
    QuestSetDescriptionBJHint=
    
    CreateQuestItemBJ="Create Quest Requirement"
    CreateQuestItemBJ="Create a quest requirement for ",~Quest," with the description ",~Description
    CreateQuestItemBJHint=
    
    QuestItemSetCompletedBJ="Mark Quest Requirement As Completed"
    QuestItemSetCompletedBJ="Mark ",~Quest Requirement," as ",~Completed/Incomplete
    QuestItemSetCompletedBJHint=
    
    QuestItemSetDescriptionBJ="Change Quest Requirement Description"
    QuestItemSetDescriptionBJ="Change the description of ",~Quest Requirement," to ",~Description
    QuestItemSetDescriptionBJHint=
    
    CreateDefeatConditionBJ="Create Defeat Condition"
    CreateDefeatConditionBJ="Create a defeat condition with the description ",~Description
    CreateDefeatConditionBJHint="Defeat conditions are displayed for every quest."
    
    DestroyDefeatConditionBJ="Destroy Defeat Condition"
    DestroyDefeatConditionBJ="Destroy ",~Defeat Condition
    DestroyDefeatConditionBJHint="Destroyed defeat conditions are removed from the quest log."
    
    DefeatConditionSetDescriptionBJ="Change Defeat Condition Description"
    DefeatConditionSetDescriptionBJ="Change the description of ",~Defeat Condition," to ",~Description
    DefeatConditionSetDescriptionBJHint=
    
    FlashQuestDialogButtonBJ="Flash Quest Dialog Button"
    FlashQuestDialogButtonBJ="Flash the quest dialog button"
    FlashQuestDialogButtonBJHint=
    
    
    // Region actions
    MoveRectToLoc="Move"
    MoveRectToLoc="Center ",~Region," on ",~Point
    MoveRectToLocHint="This has no effect unless the specified region is a variable."
    
    
    // Selection actions
    ClearSelectionForPlayer="Clear Selection For Player"
    ClearSelectionForPlayer="Clear selection for ",~Player
    ClearSelectionForPlayerHint="Forces a player to deselect all units."
    
    SelectGroupForPlayerBJ="Select Unit Group For Player"
    SelectGroupForPlayerBJ="Select ",~Unit Group," for ",~Player
    SelectGroupForPlayerBJHint="Forces a player to deselect all units and select up to 12 units of the unit group."
    
    SelectUnitForPlayerSingle="Select Unit For Player"
    SelectUnitForPlayerSingle="Select ",~Unit," for ",~Player
    SelectUnitForPlayerSingleHint="Forces a player to deselect all units and select only the given unit."
    
    SelectUnitAddForPlayer="Add Unit To Selection For Player"
    SelectUnitAddForPlayer="Add ",~Unit," to selection for ",~Player
    SelectUnitAddForPlayerHint="Forces a player to select the given unit in addition to whatever is already selected."
    
    SelectUnitRemoveForPlayer="Remove Unit From Selection For Player"
    SelectUnitRemoveForPlayer="Remove ",~Unit," from selection for ",~Player
    SelectUnitRemoveForPlayerHint="Forces a player to deselect the given unit, retaining the rest of the current selection."
    
    ClearSelection="Clear"
    ClearSelection="Clear selection"
    ClearSelectionHint="Deselect all units."
    
    SelectGroupBJ="Select Unit Group"
    SelectGroupBJ="Select ",~Unit Group
    SelectGroupBJHint="Deselects all units and selects up to 12 units of the unit group."
    
    SelectUnitSingle="Select Unit"
    SelectUnitSingle="Select ",~Unit
    SelectUnitSingleHint="Deselects all units and selects only the given unit."
    
    SelectUnitAdd="Add Unit"
    SelectUnitAdd="Add ",~Unit," to selection"
    SelectUnitAddHint="Selects the given unit in addition to whatever is already selected."
    
    SelectUnitRemove="Remove Unit"
    SelectUnitRemove="Remove ",~Unit," from selection"
    SelectUnitRemoveHint="Deselects the given unit, retaining the rest of the current selection."
    
    
    // Sound actions
    PlaySoundBJ="Play Sound"
    PlaySoundBJ="Play ",~Sound
    PlaySoundBJHint="Sounds cannot be played at map initialization.  Use the Sound Editor to create sound variables.  Note that a 3D sound must be positioned to be played."
    
    PlaySoundAtPointBJ="Play Sound At Point"
    PlaySoundAtPointBJ="Play ",~3D Sound," at ",~Volume,"% volume, located at ",~Point," with Z offset ",~Z
    PlaySoundAtPointBJHint="Sounds cannot be played at map initialization.  This should only be used on sounds that have the '3D Sound' flag set in the Sound Editor."
    
    PlaySoundOnUnitBJ="Play Sound On Unit"
    PlaySoundOnUnitBJ="Play ",~3D Sound," at ",~Volume,"% volume, attached to ",~Unit
    PlaySoundOnUnitBJHint="Sounds cannot be played at map initialization.  This should only be used on sounds that have the '3D Sound' flag set in the Sound Editor."
    
    PlaySoundFromOffsetBJ="Play Sound From Offset"
    PlaySoundFromOffsetBJ="Play ",~Sound," at ",~Volume,"% volume, skipping the first ",~Offset," seconds"
    PlaySoundFromOffsetBJHint="Sounds cannot be played at map initialization.  This should not be used on 3D sounds."
    
    StopSoundBJ="Stop Sound"
    StopSoundBJ="Stop ",~Sound," ",~After Fading/Immediately
    StopSoundBJHint=
    
    KillSoundWhenDoneBJ="Destroy Sound"
    KillSoundWhenDoneBJ="Destroy ",~Sound
    KillSoundWhenDoneBJHint="If the sound is already playing, it will be destroyed upon finishing."
    
    SetSoundVolumeBJ="Set Sound Volume"
    SetSoundVolumeBJ="Set volume of ",~Sound," to ",~Volume,"%"
    SetSoundVolumeBJHint=
    
    SetSoundOffsetBJ="Skip To Sound Offset"
    SetSoundOffsetBJ="Skip to ",~Offset," seconds from the start of ",~Sound
    SetSoundOffsetBJHint="This should only be used on sounds that are currently playing.  This should not be used on 3D sounds."
    
    SetSoundDistanceCutoffBJ="Set Sound Cutoff Distance"
    SetSoundDistanceCutoffBJ="Set cutoff distance of ",~Sound," to ",~Distance
    SetSoundDistanceCutoffBJHint=
    
    SetSoundPitchBJ="Set Sound Pitch"
    SetSoundPitchBJ="Set pitch of ",~Sound," to ",~Pitch
    SetSoundPitchBJHint=
    
    AttachSoundToUnitBJ="Attach 3D Sound To Unit"
    AttachSoundToUnitBJ="Attach ",~3D Sound," to ",~Unit
    AttachSoundToUnitBJHint="This should only be used on sounds that have the '3D Sound' flag set in the Sound Editor."
    
    SetSoundPositionLocBJ="Set 3D Sound Position"
    SetSoundPositionLocBJ="Set position of ",~3D Sound," to ",~Point," with Z offset ",~Z
    SetSoundPositionLocBJHint="This should only be used on sounds that have the '3D Sound' flag set in the Sound Editor."
    
    SetSoundDistances="Set 3D Sound Distances"
    SetSoundDistances="Set ",~3D Sound," distances to ",~Distance," minimum and ",~Distance," maximum"
    SetSoundDistancesHint="This should only be used on sounds that have the '3D Sound' flag set in the Sound Editor."
    
    SetStackedSoundBJ="Add/Remove 3D Sound Across Region"
    SetStackedSoundBJ=~Add/Remove," ",~3D Sound," across ",~Region
    SetStackedSoundBJHint="This should only be used on sounds that have the '3D Sound' flag set in the Sound Editor."
    
    SetAmbientDaySound="Use Daytime Ambient Theme"
    SetAmbientDaySound="Use the ",~Theme," daytime ambient theme"
    SetAmbientDaySoundHint=
    
    SetAmbientNightSound="Use Nighttime Ambient Theme"
    SetAmbientNightSound="Use the ",~Theme," nighttime ambient theme"
    SetAmbientNightSoundHint=
    
    EnableDawnDusk="Enable/Disable Dawn And Dusk Sounds"
    EnableDawnDusk=~Enable/Disable," dawn and dusk sounds"
    EnableDawnDuskHint=
    
    SetMapMusicIndexedBJ="Set Music List (Using A Specific Initial Song)"
    SetMapMusicIndexedBJ="Set the music list to ",~Music,", starting with song ",~Index
    SetMapMusicIndexedBJHint="This sets the list of music to use when the current song ends.  This does not stop the currently playing music."
    
    SetMapMusicRandomBJ="Set Music List (Using A Random Initial Song)"
    SetMapMusicRandomBJ="Set the music list to ",~Music,", starting with a random song"
    SetMapMusicRandomBJHint="This sets the list of music to use when the current song ends.  This does not stop the currently playing music."
    
    ClearMapMusicBJ="Clear Music List"
    ClearMapMusicBJ="Clear the music list"
    ClearMapMusicBJHint="Clearing the music list will cause music to cease after the currently playing music ends."
    
    PlayMusicBJ="Play Music"
    PlayMusicBJ="Play ",~Music
    PlayMusicBJHint=
    
    PlayMusicExBJ="Play Music From Offset"
    PlayMusicExBJ="Play ",~Music,", skipping the first ",~Offset," seconds and fading in over ",~Fade Time," seconds"
    PlayMusicExBJHint=
    
    PlayThematicMusicBJ="Play Music Theme"
    PlayThematicMusicBJ="Play ",~Music Theme
    PlayThematicMusicBJHint="This will play a music theme once, and then resume the game music."
    
    PlayThematicMusicExBJ="Play Music Theme From Offset"
    PlayThematicMusicExBJ="Play ",~Music Theme,", skipping the first ",~Offset," seconds"
    PlayThematicMusicExBJHint="This will play a music theme once, and then resume the game music."
    
    EndThematicMusicBJ="Stop Music Theme"
    EndThematicMusicBJ="Stop the currently playing music theme"
    EndThematicMusicBJHint=
    
    StopMusicBJ="Stop Music"
    StopMusicBJ="Stop music ",~After Fading/Immediately
    StopMusicBJHint=
    
    ResumeMusicBJ="Resume Music"
    ResumeMusicBJ="Resume music"
    ResumeMusicBJHint=
    
    SetMusicVolumeBJ="Set Music Volume"
    SetMusicVolumeBJ="Set music volume to ",~Volume,"%"
    SetMusicVolumeBJHint=
    
    SetMusicOffsetBJ="Skip To Music Offset"
    SetMusicOffsetBJ="Skip to ",~Offset," seconds from the start of the current music"
    SetMusicOffsetBJHint=
    
    SetThematicMusicOffsetBJ="Skip To Music Theme Offset"
    SetThematicMusicOffsetBJ="Skip to ",~Offset," seconds from the start of the current music theme"
    SetThematicMusicOffsetBJHint=
    
    VolumeGroupSetVolumeBJ="Set Volume Channel"
    VolumeGroupSetVolumeBJ="Set ",~Volume Channel," to ",~Volume,"%"
    VolumeGroupSetVolumeBJHint=
    
    SetCineModeVolumeGroupsBJ="Set All Volume Channels For Cinematics"
    SetCineModeVolumeGroupsBJ="Setup all volume channels for cinematics"
    SetCineModeVolumeGroupsBJHint="This uses the same volume channel settings as the 'Cinematic - Cinematic Mode' action."
    
    SetSpeechVolumeGroupsBJ="Set All Volume Channels For Speech"
    SetSpeechVolumeGroupsBJ="Setup all volume channels for speech"
    SetSpeechVolumeGroupsBJHint=
    
    VolumeGroupResetBJ="Reset All Volume Channels"
    VolumeGroupResetBJ="Reset all volume channels to 100%"
    VolumeGroupResetBJHint=
    
    
    // Special Effect actions
    AddSpecialEffectLocBJ="Create Special Effect At Point"
    AddSpecialEffectLocBJ="Create a special effect at ",~Point," using ",~Model File
    AddSpecialEffectLocBJHint=
    
    AddSpecialEffectTargetUnitBJ="Create Special Effect On Unit"
    AddSpecialEffectTargetUnitBJ="Create a special effect attached to the ",~Attachment Point," of ",~Unit," using ",~Model File
    AddSpecialEffectTargetUnitBJHint=
    
    DestroyEffectBJ="Destroy Special Effect"
    DestroyEffectBJ="Destroy ",~Special Effect
    DestroyEffectBJHint=
    
    
    Từ game cache đi 1 lèo đến Specials Efect, mệt quá, chờ pót tiếp.
     
  18. Vua_Do_Hoa

    Vua_Do_Hoa Mr & Ms Pac-Man

    Tham gia ngày:
    30/3/08
    Bài viết:
    217
    Nơi ở:
    Tp Hồ Chí Minh
    Mã:
    // Trigger actions
    DisableTrigger="Turn Off"
    DisableTrigger="Turn off ",~Trigger
    DisableTriggerHint="Does not interrupt existing executions of the trigger, but prevents future executions."
    
    EnableTrigger="Turn On"
    EnableTrigger="Turn on ",~Trigger
    EnableTriggerHint="Allows the trigger to be executed."
    
    ConditionalTriggerExecute="Run (Checking Conditions)"
    ConditionalTriggerExecute="Run ",~Trigger," (checking conditions)"
    ConditionalTriggerExecuteHint="Runs the trigger's actions if its conditions are true."
    
    TriggerExecute="Run (Ignoring Conditions)"
    TriggerExecute="Run ",~Trigger," (ignoring conditions)"
    TriggerExecuteHint="Runs the trigger's actions while ignoring events and conditions."
    
    QueuedTriggerAddBJ="Add To Trigger Queue"
    QueuedTriggerAddBJ="Add ",~Trigger," to the trigger queue (",~Checking/Ignoring," conditions)"
    QueuedTriggerAddBJHint="Triggers added to the trigger queue are executed one at a time, in turn.  Triggers added in this manner should remove themselves using 'Trigger - Remove From Queue'."
    
    QueuedTriggerRemoveBJ="Remove From Trigger Queue"
    QueuedTriggerRemoveBJ="Remove ",~Trigger," from the trigger queue"
    QueuedTriggerRemoveBJHint="If a trigger is already running via the trigger queue, removing it will allow the next trigger in the trigger queue to run, but will not stop the trigger itself from finishing its execution."
    
    QueuedTriggerClearBJ="Clear Trigger Queue"
    QueuedTriggerClearBJ="Clear the trigger queue"
    QueuedTriggerClearBJHint="This will remove all triggers from the trigger queue."
    
    QueuedTriggerClearInactiveBJ="Clear Trigger Queue Of Pending Triggers"
    QueuedTriggerClearInactiveBJ="Clear all pending triggers from the trigger queue"
    QueuedTriggerClearInactiveBJHint="This will remove all pending triggers from the trigger queue.  If a trigger is currently running in the queue, it will not be removed."
    
    AddTriggerEvent="Add New Event"
    AddTriggerEvent="Add to ",~Trigger," the event ",~Event
    AddTriggerEventHint=
    
    
    // Unit actions
    CreateNUnitsAtLoc="Create Units Facing Angle"
    CreateNUnitsAtLoc="Create ",~Number," ",~Unit," for ",~Player," at ",~Point," facing ",~Direction," degrees"
    CreateNUnitsAtLocHint="The facing angle is expected in degrees, with 0 being east and 90 being north.  Use 'Last Created Unit Group' to refer to these created units.  Use 'Last Created Unit' to refer to exactly one of these units."
    
    CreateNUnitsAtLocFacingLocBJ="Create Units Facing Point"
    CreateNUnitsAtLocFacingLocBJ="Create ",~Number," ",~Unit," for ",~Player," at ",~Point," facing ",~Point
    CreateNUnitsAtLocFacingLocBJHint="Use 'Last Created Unit Group' to refer to these created units.  Use 'Last Created Unit' to refer to exactly one of these units."
    
    CreateCorpseLocBJ="Create Corpse"
    CreateCorpseLocBJ="Create a ",~Unit," corpse for ",~Player," at ",~Point
    CreateCorpseLocBJHint="Not all units have corpse forms.  Use 'Last Created Unit' to refer to this unit."
    
    CreatePermanentCorpseLocBJ="Create Permanent Corpse"
    CreatePermanentCorpseLocBJ="Create a permanent ",~Style," ",~Unit," corpse for ",~Player," at ",~Point," facing ",~Direction," degrees"
    CreatePermanentCorpseLocBJHint="Fleshy corpses will often appear skeletal for the first 8 seconds of their existence."
    
    KillUnit="Kill"
    KillUnit="Kill ",~Unit
    KillUnitHint=
    
    RemoveUnit="Remove"
    RemoveUnit="Remove ",~Unit," from the game"
    RemoveUnitHint="Leaves no corpse.  If used on a Hero, that Hero cannot be resurrected."
    
    ExplodeUnitBJ="Explode"
    ExplodeUnitBJ="Explode ",~Unit
    ExplodeUnitBJHint=
    
    ReplaceUnitBJ="Replace"
    ReplaceUnitBJ="Replace ",~Unit," with a ",~Unit-Type," using ",~Property Usage," life and mana"
    ReplaceUnitBJHint="Use 'Last Replaced Unit' to refer to the replacement unit.  Note that any variables referring to the old unit will need to be updated.  Replacing a Haunted Gold Mine will usually yield a normal Gold Mine in addition to the replacement unit."
    
    ShowUnitHide="Hide"
    ShowUnitHide="Hide ",~Unit
    ShowUnitHideHint="Use the 'Unhide Unit' action to show a unit.  Hidden units do not show up in 'Units In Region' queries."
    
    ShowUnitShow="Unhide"
    ShowUnitShow="Unhide ",~Unit
    ShowUnitShowHint="Use the 'Hide Unit' action to hide a unit.  Hidden units do not show up in 'Units In Region' queries."
    
    SetUnitColor="Change Color"
    SetUnitColor="Change color of ",~Unit," to ",~Color
    SetUnitColorHint="Changing a unit's color does not change the unit's ownership."
    
    SetUnitOwner="Change Owner"
    SetUnitOwner="Change ownership of ",~Unit," to ",~Player," and ",~Change/Retain Color
    SetUnitOwnerHint=
    
    UnitShareVisionBJ="Shared Vision"
    UnitShareVisionBJ=~Grant/Deny," shared vision of ",~Unit," to ",~Player
    UnitShareVisionBJHint="Note that neutral player slots cannot share their vision."
    
    SetUnitPositionLoc="Move Unit (Instantly)"
    SetUnitPositionLoc="Move ",~Unit," instantly to ",~Point
    SetUnitPositionLocHint=
    
    SetUnitPositionLocFacingBJ="Move Unit And Face Angle (Instantly)"
    SetUnitPositionLocFacingBJ="Move ",~Unit," instantly to ",~Point,", facing ",~Direction," degrees"
    SetUnitPositionLocFacingBJHint="The facing angle is expected in degrees, with 0 being east and 90 being north."
    
    SetUnitPositionLocFacingLocBJ="Move Unit And Face Point (Instantly)"
    SetUnitPositionLocFacingLocBJ="Move ",~Unit," instantly to ",~Point,", facing ",~Point
    SetUnitPositionLocFacingLocBJHint=
    
    SetUnitRallyPoint="Set Rally-Point To Point"
    SetUnitRallyPoint="Set Rally-Point for ",~Unit," to ",~Point
    SetUnitRallyPointHint=
    
    SetUnitRallyUnit="Set Rally-Point To Unit"
    SetUnitRallyUnit="Set Rally-Point for ",~Unit," to ",~Unit
    SetUnitRallyUnitHint=
    
    SetUnitRallyDestructable="Set Rally-Point To Destructible"
    SetUnitRallyDestructable="Set Rally-Point for ",~Unit," to ",~Destructible
    SetUnitRallyDestructableHint=
    
    SetUnitLifePercentBJ="Set Life (To Percentage)"
    SetUnitLifePercentBJ="Set life of ",~Unit," to ",~Percent,"%"
    SetUnitLifePercentBJHint=
    
    SetUnitManaPercentBJ="Set Mana (To Percentage)"
    SetUnitManaPercentBJ="Set mana of ",~Unit," to ",~Percent,"%"
    SetUnitManaPercentBJHint=
    
    SetUnitLifeBJ="Set Life (To Value)"
    SetUnitLifeBJ="Set life of ",~Unit," to ",~Value
    SetUnitLifeBJHint=
    
    SetUnitManaBJ="Set Mana (To Value)"
    SetUnitManaBJ="Set mana of ",~Unit," to ",~Value
    SetUnitManaBJHint=
    
    SetUnitInvulnerable="Make Invulnerable/Vulnerable"
    SetUnitInvulnerable="Make ",~Unit," ",~Invulnerable/Vulnerable
    SetUnitInvulnerableHint=
    
    PauseUnitBJ="Pause/Unpause"
    PauseUnitBJ=~Pause/Unpause," ",~Unit
    PauseUnitBJHint="A paused unit stops and performs no orders, but remembers its orders and continues them upon being unpaused."
    
    PauseAllUnitsBJ="Pause/Unpause All Units"
    PauseAllUnitsBJ=~Pause/Unpause," all units"
    PauseAllUnitsBJHint="A paused unit stops and performs no orders, but remembers its orders and continues them upon being unpaused.  This action only affects units that exist when this action is run."
    
    UnitPauseTimedLifeBJ="Pause/Unpause Expiration Timer"
    UnitPauseTimedLifeBJ=~Pause/Unpause," the expiration timer for ",~Unit
    UnitPauseTimedLifeBJHint="Only summoned units have expiration timers."
    
    UnitApplyTimedLifeBJ="Add Expiration Timer"
    UnitApplyTimedLifeBJ="Add a ",~Duration," second ",~Buff Type," expiration timer to ",~Unit
    UnitApplyTimedLifeBJHint=
    
    SetUnitExplodedBJ="Make Unit Explode On Death"
    SetUnitExplodedBJ="Make ",~Unit," ",~Explode/Die Normally," on death"
    SetUnitExplodedBJHint=
    
    UnitSuspendDecayBJ="Suspend Corpse Decay"
    UnitSuspendDecayBJ=~Suspend/Resume," corpse decay for ",~Unit
    UnitSuspendDecayBJHint="This only works on corpses, and only after the corpses' death animations have finished."
    
    UnitResetCooldown="Reset Ability Cooldowns"
    UnitResetCooldown="Reset ability cooldowns for ",~Unit
    UnitResetCooldownHint="This makes all of the unit's abilities available for use again almost immediately."
    
    UnitSetConstructionProgress="Set Building Construction Progress"
    UnitSetConstructionProgress="Set ",~Building," construction progress to ",~Progress,"%"
    UnitSetConstructionProgressHint="This should only be used on buildings that are currently under construction."
    
    UnitSetUpgradeProgress="Set Building Upgrade Progress"
    UnitSetUpgradeProgress="Set ",~Building," upgrade progress to ",~Progress,"%"
    UnitSetUpgradeProgressHint="This should only be used on buildings that are currently being upgraded.  This does not affect research-based upgrades."
    
    UnitAddSleepPerm="Make Unit Sleep"
    UnitAddSleepPerm="Make ",~Unit," ",~Sleep/Remain Awake," when unprovoked"
    UnitAddSleepPermHint="Units owned by players 1 through 12 never sleep."
    
    UnitSetCanSleepBJ="Make Unit Sleep At Night"
    UnitSetCanSleepBJ="Make ",~Unit," ",~Sleep/Remain Awake," when unprovoked at night"
    UnitSetCanSleepBJHint="Units owned by players 1 through 12 never sleep."
    
    UnitWakeUpBJ="Wake Up"
    UnitWakeUpBJ="Wake up ",~Unit
    UnitWakeUpBJHint="This affects nocturnal sleep, not magical sleep."
    
    UnitGenerateAlarms="Turn Alarm Generation On/Off"
    UnitGenerateAlarms="Turn alarm generation for ",~Unit," ",~On/Off
    UnitGenerateAlarmsHint="This only affects buildings."
    
    RescueUnitBJ="Rescue Unit"
    RescueUnitBJ="Rescue ",~Unit," for ",~Player," and ",~Change/Retain Color
    RescueUnitBJHint=
    
    MakeUnitRescuableToForceBJ="Make Rescuable"
    MakeUnitRescuableToForceBJ="Make ",~Unit," ",~Rescuable/Unrescuable," by ",~Player Group
    MakeUnitRescuableToForceBJHint=
    
    SetUnitRescueRange="Set Rescue Range"
    SetUnitRescueRange="Limit rescue events for ",~Unit," to a range of ",~Range
    SetUnitRescueRangeHint="To make a unit rescuable, use 'Unit - Make Rescuable' or set the unit's owner to 'Rescuable'."
    
    SetRescueUnitColorChangeBJ="Set Rescue Behavior For Units"
    SetRescueUnitColorChangeBJ="Make units ",~Change/Retain Color," when rescued"
    SetRescueUnitColorChangeBJHint="By default, units owned by 'Rescuable' players do not change color when rescued.  This action does not affect units that have already been rescued."
    
    SetRescueBuildingColorChangeBJ="Set Rescue Behavior For Buildings"
    SetRescueBuildingColorChangeBJ="Make buildings ",~Change/Retain Color," when rescued"
    SetRescueBuildingColorChangeBJHint="By default, buildings owned by 'Rescuable' players change color when rescued.  This action does not affect buildings that have already been rescued."
    
    SetUnitUseFoodBJ="Enable/Disable Supply Usage"
    SetUnitUseFoodBJ=~Enable/Disable," supply usage for ",~Unit
    SetUnitUseFoodBJHint=
    
    SetUnitFacingToFaceUnitTimed="Make Unit Face Unit"
    SetUnitFacingToFaceUnitTimed="Make ",~Unit," face ",~Unit," over ",~Time," seconds"
    SetUnitFacingToFaceUnitTimedHint="Forces a unit to face another unit.  This only works if the source unit is not moving at the time."
    
    SetUnitFacingToFaceLocTimed="Make Unit Face Point"
    SetUnitFacingToFaceLocTimed="Make ",~Unit," face ",~Point," over ",~Time," seconds"
    SetUnitFacingToFaceLocTimedHint="Forces a unit to face a point.  This only works if the source unit is not moving at the time."
    
    SetUnitFacingTimed="Make Unit Face Angle"
    SetUnitFacingTimed="Make ",~Unit," face ",~Angle," over ",~Time," seconds"
    SetUnitFacingTimedHint="Forces a unit to face a directional angle, expected in degrees, with 0 being east.  This only works if the source unit is not moving at the time."
    
    SetUnitMoveSpeed="Set Movement Speed"
    SetUnitMoveSpeed="Set ",~Unit," movement speed to ",~Speed
    SetUnitMoveSpeedHint="Common movement speeds range from 150 to 300."
    
    SetUnitPathing="Turn Collision On/Off"
    SetUnitPathing="Turn collision for ",~Unit," ",~On/Off
    SetUnitPathingHint="Collision-disabled units ignore obstacles, but are still themselves treated as obstacles."
    
    SetUnitAcquireRangeBJ="Set Acquisition Range"
    SetUnitAcquireRangeBJ="Set ",~Unit," acquisition range to ",~Range
    SetUnitAcquireRangeBJHint="The acquisition range of a unit is the distance at which the unit acquires targets to attack."
    
    SetUnitUserData="Set Custom Value"
    SetUnitUserData="Set the custom value of ",~Unit," to ",~Index
    SetUnitUserDataHint="Custom values are only used in triggers, and can be used to store any integer value."
    
    UnitRemoveBuffsBJ="Remove Buffs"
    UnitRemoveBuffsBJ="Remove ",~Buff Type," buffs from ",~Unit
    UnitRemoveBuffsBJHint=
    
    UnitRemoveBuffsExBJ="Remove Buffs By Type"
    UnitRemoveBuffsExBJ="Remove ",~Buff Type," buffs considered ",~Buff Resist," from ",~Unit," (",~Include/Exclude," expiration timers, ",~Include/Exclude," auras)"
    UnitRemoveBuffsExBJHint=
    
    UnitRemoveBuffBJ="Remove Specific Buff"
    UnitRemoveBuffBJ="Remove ",~Buff," buff from ",~Unit
    UnitRemoveBuffBJHint=
    
    UnitAddAbilityBJ="Add Ability"
    UnitAddAbilityBJ="Add ",~Ability," to ",~Unit
    UnitAddAbilityBJHint=
    
    UnitRemoveAbilityBJ="Remove Ability"
    UnitRemoveAbilityBJ="Remove ",~Ability," from ",~Unit
    UnitRemoveAbilityBJHint="In most cases, removing an ability in this manner is permanent."
    
    UnitAddTypeBJ="Add Classification"
    UnitAddTypeBJ="Add classification of ",~Classification," to ",~Unit
    UnitAddTypeBJHint="The info panel for a selected unit won't update until the unit is re-selected."
    
    UnitRemoveTypeBJ="Remove Classification"
    UnitRemoveTypeBJ="Remove classification of ",~Classification," from ",~Unit
    UnitRemoveTypeBJHint="The info panel for a selected unit won't update until the unit is re-selected."
    
    IssueTargetOrder="Issue Order Targeting A Unit"
    IssueTargetOrder="Order ",~Unit," to ",~Order," ",~Unit
    IssueTargetOrderHint=
    
    IssuePointOrderLoc="Issue Order Targeting A Point"
    IssuePointOrderLoc="Order ",~Unit," to ",~Order," ",~Point
    IssuePointOrderLocHint=
    
    IssueTargetDestructableOrder="Issue Order Targeting A Destructible"
    IssueTargetDestructableOrder="Order ",~Unit," to ",~Order," ",~Destructible
    IssueTargetDestructableOrderHint=
    
    IssueTargetItemOrder="Issue Order Targeting An Item"
    IssueTargetItemOrder="Order ",~Unit," to ",~Order," ",~Item
    IssueTargetItemOrderHint=
    
    IssueImmediateOrder="Issue Order With No Target"
    IssueImmediateOrder="Order ",~Unit," to ",~Order
    IssueImmediateOrderHint=
    
    IssueBuildOrderByIdLocBJ="Issue Build Order"
    IssueBuildOrderByIdLocBJ="Order ",~Unit," to build a ",~Unit-Type," at ",~Point
    IssueBuildOrderByIdLocBJHint=
    
    IssueTrainOrderByIdBJ="Issue Train/Upgrade Order"
    IssueTrainOrderByIdBJ="Order ",~Unit," to train/upgrade to a ",~Unit-Type
    IssueTrainOrderByIdBJHint="This action can be used to order a unit to upgrade itself.  A Town Hall, for example, can be upgraded by ordering it to train a Keep."
    
    IssueUpgradeOrderByIdBJ="Issue Research Order"
    IssueUpgradeOrderByIdBJ="Order ",~Unit," to research ",~Tech-Type
    IssueUpgradeOrderByIdBJHint="Weapons and armor upgrades can be researched multiple times via this trigger action."
    
    UnitDropItemPointLoc="Issue Drop Item Order"
    UnitDropItemPointLoc="Order ",~Unit," to drop ",~Item," at ",~Point
    UnitDropItemPointLocHint=
    
    UnitDropItemSlotBJ="Issue Move Item In Inventory Order"
    UnitDropItemSlotBJ="Order ",~Unit," to move ",~Item," to inventory slot ",~Index
    UnitDropItemSlotBJHint="This only works if the unit is already carrying the item.  If an item exists in the slot, the items will be swapped."
    
    UnitDropItemTargetBJ="Issue Give Item Order"
    UnitDropItemTargetBJ="Order ",~Unit," to give ",~Item," to ",~Unit
    UnitDropItemTargetBJHint=
    
    UnitDamagePointLoc="Damage Area"
    UnitDamagePointLoc="Cause ",~Unit," to damage circular area after ",~Seconds," seconds of radius ",~Size," at ",~Location,", dealing ",~Amount," damage of attack type ",~AttackType," and damage type ",~DamageType
    UnitDamagePointLocHint="This does not interrupt the unit's orders.  The source unit gets credit for kills resulting from this damage."
    
    UnitDamageTargetBJ="Damage Target"
    UnitDamageTargetBJ="Cause ",~Unit," to damage ",~Target,", dealing ",~Amount," damage of attack type ",~AttackType," and damage type ",~DamageType
    UnitDamageTargetBJHint="This does not interrupt the unit's orders.  The source unit gets credit for kills resulting from this damage."
    
    DecUnitAbilityLevelSwapped="Decrease Level Of Ability For Unit"
    DecUnitAbilityLevelSwapped="Decrease level of ",~Ability," for ",~Unit
    DecUnitAbilityLevelSwappedHint="If the unit does not have the ability, this does nothing."
    
    IncUnitAbilityLevelSwapped="Increase Level Of Ability For Unit"
    IncUnitAbilityLevelSwapped="Increase level of ",~Ability," for ",~Unit
    IncUnitAbilityLevelSwappedHint="If the unit does not have the ability, this does nothing."
    
    SetUnitAbilityLevelSwapped="Set Level Of Ability For Unit"
    SetUnitAbilityLevelSwapped="Set level of ",~Ability," for ",~Unit," to ",~Level
    SetUnitAbilityLevelSwappedHint="If the unit does not have the ability, this does nothing."
    
    // Unit Group actions
    ForGroupMultiple="Pick Every Unit In Unit Group And Do Multiple Actions"
    ForGroupMultiple="Pick every unit in ",~Unit Group," and do (Actions)"
    ForGroupMultipleHint="Use 'Picked Unit' to refer each unit as it is picked.  This works for every unit in the group, including dead units.  Wait actions should not be used within this function.  Add actions to this function in the main display."
    
    ForGroup="Pick Every Unit In Unit Group And Do Action"
    ForGroup="Pick every unit in ",~Unit Group," and do ",~Action
    ForGroupHint="Use 'Picked Unit' to refer each unit as it is picked.  This works for every unit in the group, including dead units.  Wait actions should not be used within this function."
    
    GroupAddUnitSimple="Add Unit"
    GroupAddUnitSimple="Add ",~Unit," to ",~Unit Group
    GroupAddUnitSimpleHint="This adds a unit to a Unit Group variable.  This does not affect the unit itself."
    
    GroupAddGroup="Add Unit Group"
    GroupAddGroup="Add all units of ",~Unit Group," to ",~Unit Group
    GroupAddGroupHint="This adds all units of a unit group to a Unit Group variable.  This does not affect the units themselves."
    
    GroupRemoveUnitSimple="Remove Unit"
    GroupRemoveUnitSimple="Remove ",~Unit," from ",~Unit Group
    GroupRemoveUnitSimpleHint="This removes a unit from a Unit Group variable.  This does not affect the unit itself."
    
    GroupRemoveGroup="Remove Unit Group"
    GroupRemoveGroup="Remove all units of ",~Unit Group," from ",~Unit Group
    GroupRemoveGroupHint="This removes all units of a unit group from a Unit Group variable.  This does not affect the units themselves."
    
    GroupClear="Clear"
    GroupClear="Remove all units from ",~Unit Group
    GroupClearHint="This removes all units from a Unit Group variable.  This does not affect the units themselves."
    
    GroupTargetOrder="Issue Order Targeting A Unit"
    GroupTargetOrder="Order ",~Unit Group," to ",~Order," ",~Unit
    GroupTargetOrderHint="This will issue an order to at most 12 units from the specified unit group.  Note that 'Right-Click' orders issued this way do not always behave as they do when issued to units in-game."
    
    GroupPointOrderLoc="Issue Order Targeting A Point"
    GroupPointOrderLoc="Order ",~Unit Group," to ",~Order," ",~Point
    GroupPointOrderLocHint="This will issue an order to at most 12 units from the specified unit group."
    
    GroupTargetDestructableOrder="Issue Order Targeting A Destructible"
    GroupTargetDestructableOrder="Order ",~Unit Group," to ",~Order," ",~Destructible
    GroupTargetDestructableOrderHint="This will issue an order to at most 12 units from the specified unit group."
    
    GroupTargetItemOrder="Issue Order Targeting An Item"
    GroupTargetItemOrder="Order ",~Unit Group," to ",~Order," ",~Item
    GroupTargetItemOrderHint="This will issue an order to at most 12 units from the specified unit group."
    
    GroupImmediateOrder="Issue Order With No Target"
    GroupImmediateOrder="Order ",~Unit Group," to ",~Order
    GroupImmediateOrderHint="This will issue an order to at most 12 units from the specified unit group."
    
    GroupTrainOrderByIdBJ="Issue Train Order"
    GroupTrainOrderByIdBJ="Order ",~Unit Group," to train a ",~Unit-Type
    GroupTrainOrderByIdBJHint="This action can also be used to order a unit to upgrade itself.  A Town Hall, for example, can be upgraded by ordering it to train a Keep.  This will issue an order to at most 12 units from the specified unit group."
    
    
    // Ubersplat actions
    CreateUbersplatBJ="Create"
    CreateUbersplatBJ="Create ubersplat at ",~Location," of type ",~Type," with color (",~Red,"%, ",~Green,"%, ",~Blue,"%) and ",~Transparency,"% transparency (",~Enable/Disable," paused state, ",~Enble/Disable," skipping birth time)"
    CreateUbersplatBJHint="The color values are (Red, Green, Blue).  A 100% transparent color is completely invisible.  Use 'Ubersplat - Change Render Always State' to toggle display of this ubersplat.  By default, ubersplats are not rendered."
    
    DestroyUbersplat="Destroy"
    DestroyUbersplat="Destroy ",~Ubersplat
    DestroyUbersplatHint=
    
    ResetUbersplat="Reset"
    ResetUbersplat="Reset ",~Ubersplat
    ResetUbersplatHint=
    
    FinishUbersplat="Finish"
    FinishUbersplat="Finish ",~Ubersplat
    FinishUbersplatHint=
    
    ShowUbersplatBJ="Show/Hide"
    ShowUbersplatBJ=~Show/Hide," ",~Ubersplat
    ShowUbersplatBJHint=
    
    SetUbersplatRender="Change Render State"
    SetUbersplatRender="Change ",~Ubersplat,": ",~Enable/Disable," render state"
    SetUbersplatRenderHint=
    
    SetUbersplatRenderAlways="Change Render Always State"
    SetUbersplatRenderAlways="Change ",~Ubersplat,": ",~Enable/Disable," render always state"
    SetUbersplatRenderAlwaysHint=
    
    
    // Visibility actions
    FogEnableOn="Enable Fog Of War"
    FogEnableOn="Enable fog of war"
    FogEnableOnHint=
    
    FogEnableOff="Disable Fog Of War"
    FogEnableOff="Disable fog of war"
    FogEnableOffHint=
    
    FogMaskEnableOn="Enable Black Mask"
    FogMaskEnableOn="Enable black mask"
    FogMaskEnableOnHint=
    
    FogMaskEnableOff="Disable Black Mask"
    FogMaskEnableOff="Disable black mask"
    FogMaskEnableOffHint=
    
    CreateFogModifierRectBJ="Create Visibility Modifier Region"
    CreateFogModifierRectBJ="Create an initially ",~Enabled/Disabled," visibility modifier for ",~Player," emitting ",~Visibility State," across ",~Region
    CreateFogModifierRectBJHint=
    
    CreateFogModifierRadiusLocBJ="Create Visibility Modifier Circle"
    CreateFogModifierRadiusLocBJ="Create an initially ",~Enabled/Disabled," visibility modifier for ",~Player," emitting ",~Visibility State," from ",~Point," to a radius of ",~Radius
    CreateFogModifierRadiusLocBJHint=
    
    FogModifierStart="Enable Visibility Modifier"
    FogModifierStart="Enable ",~Visibility Modifier
    FogModifierStartHint=
    
    FogModifierStop="Disable Visibility Modifier"
    FogModifierStop="Disable ",~Visibility Modifier
    FogModifierStopHint=
    
    DestroyFogModifier="Destroy Visibility Modifier"
    DestroyFogModifier="Destroy ",~Visibility Modifier
    DestroyFogModifierHint=
    
    
    // Obsolete actions
    //AddPerfLogLabel="** AddPerfLogLabel **"
    //AddPerfLogLabel="** AddPerfLogLabel(",~Label,") **"
    //AddPerfLogLabelHint="** This is for debugging purposes only - remove before ship. **"
    
    //Cheat="** Cheat **"
    //Cheat="** Cheat(",~Label,") **"
    //CheatHint="** This is for debugging purposes only - remove before ship. **"
    
    
    inv100_UnitAddItemToSlot="Add Item to Extended Slot"
    inv100_UnitAddItemToSlot="Modify ",~Unit," backpack: place ",~Item," to extended slot number ",~Slot
    inv100_UnitAddItemToSlotHint="If specified slot is already in use, this action does nothing."
    
    inv100_UnitDropItemSlot="Drop Item From Extended Slot"
    inv100_UnitDropItemSlot="Modify ",~Unit," backpack: drop item from extended slot number ",~Slot
    inv100_UnitDropItemSlotHint="Item will be placed beneath unit feet."
    
    inv100_SetInventorySize="Set Backpack Size"
    inv100_SetInventorySize="Set ",~Unit," backpack size to ",~Rows," rows and ",~Columns," columns"
    inv100_SetInventorySizeHint="If an overflow occurs, excess items WON'T be removed automatically; you'll have to check this manually."
    
    inv100_SaveToCache="Save Backpack Contents To Cache"
    inv100_SaveToCache="Store to ",~Cache," using category ",~Category," and label ",~Label," backpack contents of ",~Unit
    inv100_SaveToCacheHint="This saves all items, size, and auto-pickup setting."
    
    inv100_LoadFromCache="Restore Backpack Contents From Cache"
    inv100_LoadFromCache="Restore backpack contents from ",~Cache," using category ",~Category," and label ",~Label," and attach them to ",~Unit
    inv100_LoadFromCacheHint="This restores all items, size, and auto-pickup setting."
    
    //***************************************************************************
    [TriggerCallStrings]
    
    // returns boolean
    IsDestructableAliveBJ="Destructible Is Alive"
    IsDestructableAliveBJ=~Destructible," is alive"
    IsDestructableAliveBJHint=
    
    IsDestructableDeadBJ="Destructible Is Dead"
    IsDestructableDeadBJ=~Destructible," is dead"
    IsDestructableDeadBJHint=
    
    IsDestructableInvulnerableBJ="Destructible Is Invulnerable"
    IsDestructableInvulnerableBJ=~Destructible," is invulnerable"
    IsDestructableInvulnerableBJHint=
    
    IsPointBlightedBJ="Point Is Blighted"
    IsPointBlightedBJ=~Point," is blighted"
    IsPointBlightedBJHint=
    
    IsTerrainPathableBJ="Terrain Pathing Is Off"
    IsTerrainPathableBJ="Terrain pathing at ",~Location," of type ",~Pathing Type," is off"
    IsTerrainPathableBJHint="Terrain pathing is off if it is not pathable to the given pathing type.  For example, 'Buildability' is off if the pathing cell is unbuildable.  Use 'Environment - Turn Terrain Pathing On/Off' to change terrain pathing."
    
    IsMapFlagSet="Map Flag Set"
    IsMapFlagSet=~Map Flag," is set"
    IsMapFlagSetHint=
    
    IsCustomCampaignButtonVisibile="Custom Campaign Button Is Visible"
    IsCustomCampaignButtonVisibile="Custom campaign button ",~Number," is visible"
    IsCustomCampaignButtonVisibileHint=
    
    GetCreepCampFilterState="Creep Camp Display Is On"
    GetCreepCampFilterState="Creep camp minimap display is turned on"
    GetCreepCampFilterStateHint=
    
    SaveGameExists="Saved-Game Exists"
    SaveGameExists="The ",~Filename," saved-game exists"
    SaveGameExistsHint=
    
    GetStoredBooleanBJ="Load Boolean Value"
    GetStoredBooleanBJ="Load ",~Label," of ",~Category," from ",~Game Cache
    GetStoredBooleanBJHint="If the label is not found, this function returns False."
    
    HaveStoredValue="Cache Value Exists"
    HaveStoredValue=~Label," is stored as a ",~Type," of ",~Category," in ",~Game Cache
    HaveStoredValueHint=
    
    UnitHasItem="Hero Has Item"
    UnitHasItem=~Hero," has ",~Item
    UnitHasItemHint=
    
    UnitHasItemOfTypeBJ="Hero Has Item Of Type"
    UnitHasItemOfTypeBJ=~Hero," has an item of type ",~Item-Type
    UnitHasItemOfTypeBJHint=
    
    IsSuspendedXP="Experience Is Disabled For Hero"
    IsSuspendedXP="Experience is disabled for ",~Hero
    IsSuspendedXPHint="Use the 'Hero - Enable/Disable Experience' action to disable a Hero's experience."
    
    CheckItemStatus="Item Status Check"
    CheckItemStatus=~Item," is ",~Status
    CheckItemStatusHint=
    
    CheckItemcodeStatus="Item-Type Status Check"
    CheckItemcodeStatus=~Item-Type," is ",~Status
    CheckItemcodeStatusHint=
    
    IsItemHiddenBJ="Item Is Hidden"
    IsItemHiddenBJ=~Item," is hidden"
    IsItemHiddenBJHint="Items held by units are considered hidden."
    
    IsItemOwned="Item Is Owned"
    IsItemOwned=~Item," is owned"
    IsItemOwnedHint="Any item in a unit's inventory is considered owned, even if the owner is dead."
    
    RectContainsItem="Item In Region"
    RectContainsItem=~Item," is in ",~Region
    RectContainsItemHint="An owned item is not considered to be in any regions."
    
    IsItemInvulnerable="Item Is Invulnerable"
    IsItemInvulnerable=~Item," is invulnerable"
    IsItemInvulnerableHint=
    
    LeaderboardHasPlayerItemBJ="Leaderboard Contains Player"
    LeaderboardHasPlayerItemBJ=~Leaderboard," contains ",~Player
    LeaderboardHasPlayerItemBJHint=
    
    IsMultiboardDisplayed="Multiboard Is Showing"
    IsMultiboardDisplayed=~Multiboard," is showing"
    IsMultiboardDisplayedHint=
    
    IsMultiboardMinimized="Multiboard Is Minimized"
    IsMultiboardMinimized=~Multiboard," is minimized"
    IsMultiboardMinimizedHint=
    
    WaygateIsActiveBJ="Way Gate Is Enabled"
    WaygateIsActiveBJ=~Way Gate," is enabled"
    WaygateIsActiveBJHint=
    
    IsPlayerFlagSetBJ="Player Flag Is On"
    IsPlayerFlagSetBJ=~Player Flag," is on for ",~Player
    IsPlayerFlagSetBJHint=
    
    IsPlayerAlly="Player Is An Ally Of Player"
    IsPlayerAlly=~Player," is an ally of ",~Player
    IsPlayerAllyHint=
    
    IsPlayerEnemy="Player Is An Enemy Of Player"
    IsPlayerEnemy=~Player," is an enemy of ",~Player
    IsPlayerEnemyHint=
    
    GetPlayerAlliance="Player Alliance Towards Player"
    GetPlayerAlliance=~Player," is giving ",~Player," ",~Alliance Type
    GetPlayerAllianceHint=
    
    IsPlayerInForce="Player In Player Group"
    IsPlayerInForce=~Player," is in ",~Player Group
    IsPlayerInForceHint=
    
    IsQuestItemCompleted="Quest Requirement Is Completed"
    IsQuestItemCompleted=~Quest Requirement," is completed"
    IsQuestItemCompletedHint=
    
    IsQuestEnabled="Quest Is Enabled"
    IsQuestEnabled=~Quest," is enabled"
    IsQuestEnabledHint=
    
    IsQuestCompleted="Quest Is Completed"
    IsQuestCompleted=~Quest," is completed"
    IsQuestCompletedHint=
    
    IsQuestFailed="Quest Is Failed"
    IsQuestFailed=~Quest," is failed"
    IsQuestFailedHint=
    
    IsQuestDiscovered="Quest Is Discovered"
    IsQuestDiscovered=~Quest," is discovered"
    IsQuestDiscoveredHint=
    
    IsQuestRequired="Quest Is Required"
    IsQuestRequired=~Quest," is required"
    IsQuestRequiredHint=
    
    RectContainsLoc="Region Contains Point"
    RectContainsLoc=~Region," contains ",~Point
    RectContainsLocHint=
    
    IsTriggerEnabled="Trigger Is On"
    IsTriggerEnabled=~Trigger," is on"
    IsTriggerEnabledHint=
    
    TriggerEvaluate="Evaluate Trigger Conditions"
    TriggerEvaluate="Evaluate ",~Trigger," conditions"
    TriggerEvaluateHint=
    
    IsTriggerQueuedBJ="Trigger Is Queued"
    IsTriggerQueuedBJ=~Trigger," is queued"
    IsTriggerQueuedBJHint="Use 'Trigger - Add To Trigger Queue' and 'Trigger - Remove From Trigger Queue' to manipulate the trigger queue."
    
    IsTriggerQueueEmptyBJ="Trigger Queue Is Empty"
    IsTriggerQueueEmptyBJ="The trigger queue is empty"
    IsTriggerQueueEmptyBJHint="Use 'Trigger - Add To Trigger Queue' and 'Trigger - Remove From Trigger Queue' to manipulate the trigger queue."
    
    IsUnitType="Unit Classification Check"
    IsUnitType=~Unit," is ",~Type
    IsUnitTypeHint=
    
    IsUnitIdType="Unit-Type Classification Check"
    IsUnitIdType=~Unit-Type," is ",~Type
    IsUnitIdTypeHint=
    
    IsUnitInGroup="Unit In Unit Group"
    IsUnitInGroup=~Unit," is in ",~Unit Group
    IsUnitInGroupHint=
    
    RectContainsUnit="Unit In Region"
    RectContainsUnit=~Region," contains ",~Unit
    RectContainsUnitHint=
    
    IsUnitAliveBJ="Unit Is Alive"
    IsUnitAliveBJ=~Unit," is alive"
    IsUnitAliveBJHint=
    
    IsUnitDeadBJ="Unit Is Dead"
    IsUnitDeadBJ=~Unit," is dead"
    IsUnitDeadBJHint=
    
    IsUnitPausedBJ="Unit Is Paused"
    IsUnitPausedBJ=~Unit," is paused"
    IsUnitPausedBJHint=
    
    IsUnitHiddenBJ="Unit Is Hidden"
    IsUnitHiddenBJ=~Unit," is hidden"
    IsUnitHiddenBJHint="A unit can be hidden with the 'Unit - Hide' trigger action, or by placing the unit into a transport, Soul Gem, altar, etc."
    
    IsUnitIllusionBJ="Unit Is An Illusion"
    IsUnitIllusionBJ=~Unit," is an illusion"
    IsUnitIllusionBJHint=
    
    UnitCanSleepPerm="Unit Sleeps"
    UnitCanSleepPerm=~Unit," sleeps when unprovoked"
    UnitCanSleepPermHint="Units owned by players 1 through 12 never sleep."
    
    UnitCanSleepBJ="Unit Sleeps At Night"
    UnitCanSleepBJ=~Unit," sleeps when unprovoked at night"
    UnitCanSleepBJHint="Units owned by players 1 through 12 never sleep."
    
    UnitIsSleepingBJ="Unit Is Sleeping"
    UnitIsSleepingBJ=~Unit," is sleeping"
    UnitIsSleepingBJHint="Units owned by players 1 through 12 never sleep."
    
    DoesUnitGenerateAlarms="Unit Generates Alarms"
    DoesUnitGenerateAlarms=~Unit," generates alarms"
    DoesUnitGenerateAlarmsHint=
    
    IsUnitLoadedBJ="Unit Is Being Transported"
    IsUnitLoadedBJ=~Unit," is being transported"
    IsUnitLoadedBJHint=
    
    IsUnitInTransportBJ="Unit Is In Transport"
    IsUnitInTransportBJ=~Unit," is loaded into ",~Transport
    IsUnitInTransportBJHint=
    
    IsUnitSelected="Unit Selected By Player"
    IsUnitSelected=~Unit," is selected by ",~Player
    IsUnitSelectedHint=
    
    IsUnitAlly="Unit Belongs To An Ally Of Player"
    IsUnitAlly=~Unit," belongs to an ally of ",~Player
    IsUnitAllyHint=
    
    IsUnitEnemy="Unit Belongs To An Enemy Of Player"
    IsUnitEnemy=~Unit," belongs to an enemy of ",~Player
    IsUnitEnemyHint=
    
    UnitHasBuffBJ="Unit Has Specific Buff"
    UnitHasBuffBJ=~Unit," has buff ",~Buff
    UnitHasBuffBJHint=
    
    IsUnitGroupEmptyBJ="Unit Group Is Empty"
    IsUnitGroupEmptyBJ=~Unit Group," is empty"
    IsUnitGroupEmptyBJHint="This is true if the unit group contains no units."
    
    IsUnitGroupInRectBJ="Units Of Unit Group Are In Region"
    IsUnitGroupInRectBJ="All units of ",~Unit Group," are in ",~Region
    IsUnitGroupInRectBJHint="This is true if every unit in the unit group is in the given region."
    
    IsUnitGroupDeadBJ="Units Of Unit Group Are Dead"
    IsUnitGroupDeadBJ="All units of ",~Unit Group," are dead"
    IsUnitGroupDeadBJHint="This is true if every unit in the unit group is dead."
    
    IsFogEnabled="Fog Of War Enabled"
    IsFogEnabled="Fog of war is enabled"
    IsFogEnabledHint=
    
    IsFogMaskEnabled="Black Mask Enabled"
    IsFogMaskEnabled="Black mask is enabled"
    IsFogMaskEnabledHint=
    
    IsUnitVisible="Unit Is Visible To Player"
    IsUnitVisible=~Unit," is visible to ",~Player
    IsUnitVisibleHint=
    
    IsUnitInvisible="Unit Is Invisible To Player"
    IsUnitInvisible=~Unit," is invisible to ",~Player
    IsUnitInvisibleHint=
    
    IsUnitFogged="Unit Fogged To Player"
    IsUnitFogged=~Unit," is fogged to ",~Player
    IsUnitFoggedHint=
    
    IsUnitMasked="Unit Is Masked To Player"
    IsUnitMasked=~Unit," is masked to ",~Player
    IsUnitMaskedHint=
    
    IsLocationVisibleToPlayer="Point Visible To Player"
    IsLocationVisibleToPlayer=~Point," is visible to ",~Player
    IsLocationVisibleToPlayerHint=
    
    IsLocationFoggedToPlayer="Point Fogged To Player"
    IsLocationFoggedToPlayer=~Point," is fogged for ",~Player
    IsLocationFoggedToPlayerHint=
    
    IsLocationMaskedToPlayer="Point Masked To Player"
    IsLocationMaskedToPlayer=~Point," is masked for ",~Player
    IsLocationMaskedToPlayerHint=
    
    Mệt quá: Còm nữa, dài quá. hic hic
    .
    ___________Auto Merge________________

    .
    Mã:
    // returns integer
    OperatorInt="Arithmetic"
    OperatorInt=~Value," ",~Operator," ",~Value
    OperatorIntHint=
    
    GetForLoopIndexA="For Loop Integer A"
    GetForLoopIndexA="Integer A"
    GetForLoopIndexAHint=
    
    GetForLoopIndexB="For Loop Integer B"
    GetForLoopIndexB="Integer B"
    GetForLoopIndexBHint=
    
    StringLength="String Length"
    StringLength="Length of ",~String
    StringLengthHint=
    
    R2I="Convert Real To Integer"
    R2I="Integer(",~Real,")"
    R2RHint=
    
    S2I="Convert String To Integer"
    S2I="Integer(",~String,")"
    S2IHint=
    
    GetElevatorHeight="Elevator Height"
    GetElevatorHeight="Height of ",~Elevator
    GetElevatorHeightHint="An elevator's height can be changed using the 'Destructible - Set Elevator Height' action."
    
    GetTerrainCliffLevelBJ="Terrain Cliff Level"
    GetTerrainCliffLevelBJ="Terrain cliff level at ",~Location
    GetTerrainCliffLevelBJHint="Cliff level values start at zero."
    
    GetTerrainVarianceBJ="Terrain Variance"
    GetTerrainVarianceBJ="Terrain variance at ",~Location
    GetTerrainVarianceBJHint=
    
    GetLearnedSkillLevel="Learned Skill Level"
    GetLearnedSkillLevel="Learned skill level"
    GetLearnedSkillLevelHint=
    
    GetPlayers="Number Of Players"
    GetPlayers="Number of players"
    GetPlayersHint=
    
    GetTeams="Number Of Teams"
    GetTeams="Number of teams"
    GetTeamsHint=
    
    GetAllyColorFilterState="Ally Color Filter Setting"
    GetAllyColorFilterState="Ally color filter setting"
    GetAllyColorFilterStateHint="A value of 0 indicates that filtering is disabled.  A value of 1 indicates that filtering is only enabled for the minimap.  A value of 2 indicates that filtering is enabled for the minimap and the game view."
    
    GetTournamentFinishNowRule="Tournament Finish Rule"
    GetTournamentFinishNowRule="Tournament finish rule"
    GetTournamentFinishNowRuleHint="A value of 1 indicates that the game is in a bracket and therefore cannot end in a draw.  Any other value indicates that this is a preliminary game and may end in a draw."
    
    GetTournamentScore="Tournament Melee Score"
    GetTournamentScore="Tournament melee score for ",~Player
    GetTournamentScoreHint="This returns the melee score for a player, which is used by melee games to determine victory/defeat/draw if a tournament game runs too long."
    
    GetStoredIntegerBJ="Load Integer Value"
    GetStoredIntegerBJ="Load ",~Label," of ",~Category," from ",~Game Cache
    GetStoredIntegerBJHint="If the label is not found, this function returns 0."
    
    GetHeroLevel="Hero Level"
    GetHeroLevel="Hero level of ",~Hero
    GetHeroLevelHint=
    
    GetHeroXP="Hero Experience"
    GetHeroXP="Hero experience of ",~Hero
    GetHeroXPHint=
    
    GetHeroStatBJ="Hero Attribute"
    GetHeroStatBJ=~Attribute," of ",~Hero," (",~Include/Exclude," bonuses)"
    GetHeroStatBJHint=
    
    GetHeroSkillPoints="Unspent Skill Points"
    GetHeroSkillPoints="Unspent skill points of ",~Hero
    GetHeroSkillPointsHint=
    
    GetItemLevel="Item Level"
    GetItemLevel="Item level of ",~Item
    GetItemLevelHint=
    
    GetItemCharges="Item Charges Remaining"
    GetItemCharges="Charges remaining in ",~Item
    GetItemChargesHint="Items with unlimited charges will return zero."
    
    GetItemUserData="Custom Value Of Item"
    GetItemUserData="Custom value of ",~Item
    GetItemUserDataHint="Use 'Item - Set Custom Value' to set the custom value of an item."
    
    LeaderboardGetPlayerIndexBJ="Leaderboard Position"
    LeaderboardGetPlayerIndexBJ="Position of ",~Player," in ",~Leaderboard
    LeaderboardGetPlayerIndexBJHint=
    
    GetRandomInt="Random Number"
    GetRandomInt="Random integer number between ",~Minimum," and ",~Maximum
    GetRandomIntHint=
    
    IMinBJ="Min"
    IMinBJ="Min(",~Value 1,", ",~Value 2,")"
    IMinBJHint=
    
    IMaxBJ="Max"
    IMaxBJ="Max(",~Value 1,", ",~Value 2,")"
    IMaxBJHint=
    
    IAbsBJ="Abs"
    IAbsBJ="Abs(",~Value,")"
    IAbsBJHint="Calculates the absolute value of a number."
    
    ISignBJ="Sign"
    ISignBJ="Sign(",~Value,")"
    ISignBJHint="Calculates the sign of a number.  The sign of a negative number is -1.  The sign of a nonnegative number is 1."
    
    ModuloInteger="Modulo"
    ModuloInteger=~Dividend," mod ",~Divisor
    ModuloIntegerHint="Calculates the remainder of a division.  Example: 12 mod 5 = 2."
    
    MultiboardGetRowCount="Row Count"
    MultiboardGetRowCount="Number of rows in ",~Multiboard
    MultiboardGetRowCountHint=
    
    MultiboardGetColumnCount="Column Count"
    MultiboardGetColumnCount="Number of columns in ",~Multiboard
    MultiboardGetColumnCountHint=
    
    GetResourceAmount="Gold Remaining"
    GetResourceAmount="Resource quantity contained in ",~Gold Mine
    GetResourceAmountHint="This is for use with Gold Mines."
    
    GetPlayerState="Player Property"
    GetPlayerState=~Player," ",~Property
    GetPlayerStateHint=
    
    GetPlayerTaxRateBJ="Player Tax Rate"
    GetPlayerTaxRateBJ="Tax rate of ",~Resource," from ",~Player," to ",~Player
    GetPlayerTaxRateBJHint="The tax rate value is a percentage of total income (0-100)."
    
    GetPlayerScore="Player Score"
    GetPlayerScore=~Player," ",~Score
    GetPlayerScoreHint=
    
    GetConvertedPlayerId="Player Number"
    GetConvertedPlayerId="Player number of ",~Player
    GetConvertedPlayerIdHint="Player numbers range from 1 to 16."
    
    GetPlayerStructureCount="Count Structures"
    GetPlayerStructureCount="Count structures controlled by ",~Player," (",~Include/Exclude," incomplete structures)"
    GetPlayerStructureCountHint=
    
    GetPlayerUnitCount="Count Non-Structure Units"
    GetPlayerUnitCount="Count non-structure units controlled by ",~Player," (",~Include/Exclude," incomplete units)"
    GetPlayerUnitCountHint=
    
    GetPlayerTechCountSimple="Current Research Level"
    GetPlayerTechCountSimple="Current research level of ",~Tech," for ",~Player
    GetPlayerTechCountSimpleHint="Returns 0 or 1 for simple tech, or 0..3 for three-stage upgrades."
    
    GetPlayerTechMaxAllowedSwap="Max Research Level"
    GetPlayerTechMaxAllowedSwap="Max research level of ",~Tech," for ",~Player
    GetPlayerTechMaxAllowedSwapHint="Returns 0 or 1 for simple tech, or 0..3 for three-stage upgrades."
    
    GetPlayerTeam="Player Team"
    GetPlayerTeam="Team number of ",~Player
    GetPlayerTeamHint=
    
    CountPlayersInForceBJ="Count Players In Player Group"
    CountPlayersInForceBJ="Number of players in ",~Player Group
    CountPlayersInForceBJHint=
    
    CountUnitsInGroup="Count Units In Unit Group"
    CountUnitsInGroup="Number of units in ",~Unit Group
    CountUnitsInGroupHint=
    
    CountLivingPlayerUnitsOfTypeId="Count Living Units Owned By Player"
    CountLivingPlayerUnitsOfTypeId="Number of living ",~Unit-Type," units owned by ",~Player
    CountLivingPlayerUnitsOfTypeIdHint=
    
    GetUnitFoodUsed="Supply Used By Unit"
    GetUnitFoodUsed="Supply used by ",~Unit
    GetUnitFoodUsedHint=
    
    GetUnitFoodMade="Supply Provided By Unit"
    GetUnitFoodMade="Supply provided by ",~Unit
    GetUnitFoodMadeHint=
    
    GetFoodUsed="Supply Used By Unit-Type"
    GetFoodUsed="Supply used by ",~Unit-Type
    GetFoodUsedHint=
    
    GetFoodMade="Supply Provided By Unit-Type"
    GetFoodMade="Supply provided by ",~Unit-Type
    GetFoodMadeHint=
    
    GetUnitPointValue="Point-Value Of Unit"
    GetUnitPointValue="Point-value of ",~Unit
    GetUnitPointValueHint=
    
    GetUnitPointValueByType="Point-Value Of Unit-Type"
    GetUnitPointValueByType="Point-value of ",~Unit-Type
    GetUnitPointValueByTypeHint=
    
    GetUnitUserData="Custom Value Of Unit"
    GetUnitUserData="Custom value of ",~Unit
    GetUnitUserDataHint="Use 'Unit - Set Custom Value' to set the custom value of a unit."
    
    GetUnitLevel="Level Of Unit"
    GetUnitLevel="Level of ",~Unit
    GetUnitLevelHint="This may be used for heroes and regular units."
    
    GetUnitAbilityLevelSwapped="Level Of Ability For Unit"
    GetUnitAbilityLevelSwapped="Level of ",~Ability," for ",~Unit
    GetUnitAbilityLevelSwappedHint="If the unit does not have the ability, the result will be zero."
    
    UnitInventoryCount="Count Items Carried"
    UnitInventoryCount="Number of items carried by ",~Unit
    UnitInventoryCountHint=
    
    UnitInventorySizeBJ="Size of Inventory"
    UnitInventorySizeBJ="Size of inventory for ",~Unit
    UnitInventorySizeBJHint=
    
    UnitCountBuffsExBJ="Count Buffs By Type"
    UnitCountBuffsExBJ="Number of ",~Buff Type," buffs considered ",~Buff Resist," on ",~Unit," (",~Include/Exclude," expiration timers, ",~Include/Exclude," auras)"
    UnitCountBuffsExBJHint=
    
    GetTriggerEvalCount="Trigger Evaluation Count"
    GetTriggerEvalCount="Evaluation count of ",~Trigger
    GetTriggerEvalCountHint=
    
    GetTriggerExecCount="Trigger Execution Count"
    GetTriggerExecCount="Execution count of ",~Trigger
    GetTriggerExecCountHint=
    
    QueuedTriggerCountBJ="Count Triggers In Trigger Queue"
    QueuedTriggerCountBJ="Number of triggers in the trigger queue"
    QueuedTriggerCountBJHint="Use 'Trigger - Add To Trigger Queue' and 'Trigger - Remove From Trigger Queue' to manipulate the trigger queue."
    
    
    // returns real
    OperatorReal="Arithmetic"
    OperatorReal=~Value," ",~Operator," ",~Value
    OperatorRealHint=
    
    GetLocationX="X Of Point"
    GetLocationX="X of ",~Point
    GetLocationXHint=
    
    GetLocationY="Y Of Point"
    GetLocationY="Y of ",~Point
    GetLocationYHint=
    
    CameraSetupGetFieldSwap="Camera Field Of Camera Object"
    CameraSetupGetFieldSwap=~Camera Field," of ",~Camera Object
    CameraSetupGetFieldSwapHint=
    
    GetCameraField="Camera Field Of Current Camera"
    GetCameraField=~Camera Field," of the current camera view"
    GetCameraFieldHint=
    
    GetCameraTargetPositionX="Target X Of Current Camera"
    GetCameraTargetPositionX="Target X of current camera view"
    GetCameraTargetPositionXHint=
    
    GetCameraTargetPositionY="Target Y Of Current Camera"
    GetCameraTargetPositionY="Target Y of current camera view"
    GetCameraTargetPositionYHint=
    
    GetCameraTargetPositionZ="Target Z Of Current Camera"
    GetCameraTargetPositionZ="Target Z of current camera view"
    GetCameraTargetPositionZHint=
    
    GetCameraEyePositionX="Source X Of Current Camera"
    GetCameraEyePositionX="Source X of current camera view"
    GetCameraEyePositionXHint=
    
    GetCameraEyePositionY="Source Y Of Current Camera"
    GetCameraEyePositionY="Source Y of current camera view"
    GetCameraEyePositionYHint=
    
    GetCameraEyePositionZ="Source Z Of Current Camera"
    GetCameraEyePositionZ="Source Z of current camera view"
    GetCameraEyePositionZHint=
    
    GetLastTransmissionDurationBJ="Last Transmission Length"
    GetLastTransmissionDurationBJ="Length of last transmission"
    GetLastTransmissionDurationBJHint="This is the length, in seconds, of the last used 'Cinematic - Transmission' action."
    
    I2R="Convert Integer To Real"
    I2R="Real(",~Integer,")"
    I2RHint=
    
    S2R="Convert String To Real"
    S2R="Real(",~String,")"
    S2RHint=
    
    Deg2Rad="Convert Degrees To Radians"
    Deg2Rad="Radians(",~Degrees,")"
    Deg2RadHint=
    
    Rad2Deg="Convert Radians To Degrees"
    Rad2Deg="Degrees(",~Radians,")"
    Rad2DegHint=
    
    TimerGetElapsed="Elapsed Time"
    TimerGetElapsed="Elapsed time for ",~Timer
    TimerGetElapsedHint=
    
    TimerGetRemaining="Remaining Time"
    TimerGetRemaining="Remaining time for ",~Timer
    TimerGetRemainingHint=
    
    TimerGetTimeout="Initial Time"
    TimerGetTimeout="Initial time for ",~Timer
    TimerGetTimeoutHint=
    
    GetDestructableLife="Life"
    GetDestructableLife="Current life of ",~Destructible
    GetDestructableLifeHint="Destructibles lose life when attacked or harvested.  Like units, destructibles die when their life reaches 0."
    
    GetDestructableMaxLife="Max Life"
    GetDestructableMaxLife="Max life of ",~Destructible
    GetDestructableMaxLifeHint="Destructibles lose life when attacked or harvested.  Like units, destructibles die when their life reaches 0."
    
    GetDestructableOccluderHeight="Occlusion Height"
    GetDestructableOccluderHeight="Occlusion height of ",~Destructible
    GetDestructableOccluderHeightHint=
    
    GetEventDamage="Damage Taken"
    GetEventDamage="Damage taken"
    GetEventDamageHint="When responding to a 'Takes Damage' unit event, this refers to the amount of damage being taken."
    
    GetTournamentFinishSoonTimeRemaining="Tournament Time Remaining"
    GetTournamentFinishSoonTimeRemaining="Tournament time remaining"
    GetTournamentFinishSoonTimeRemainingHint="When responding to a 'Game must end soon' tournament event, this returns the amount of time remaining, in real-time seconds."
    
    GetTimeOfDay="Time Of Day"
    GetTimeOfDay="In-game time of day"
    GetTimeOfDayHint="This is in game time, not real time."
    
    GetTimeOfDayScalePercentBJ="Time Of Day Speed"
    GetTimeOfDayScalePercentBJ="Current time of day speed"
    GetTimeOfDayScalePercentBJHint="This returns the time of day speed as a percentage of the default time of day speed."
    
    GetStoredRealBJ="Load Real Value"
    GetStoredRealBJ="Load ",~Label," of ",~Category," from ",~Game Cache
    GetStoredRealBJHint="If the label is not found, this function returns 0."
    
    GetItemLifeBJ="Item Life"
    GetItemLifeBJ="Current life of ",~Item
    GetItemLifeBJHint=
    
    GetLightningColorRBJ="Red Color of Lightning"
    GetLightningColorRBJ="Red color of ",~Lightning
    GetLightningColorRBJHint="This returns a value between 0 and 1.  Use 'Lightning - Set Lightning Effect Color' to change the color of a Lightning Effect."
    
    GetLightningColorGBJ="Green Color of Lightning"
    GetLightningColorGBJ="Green color of ",~Lightning
    GetLightningColorGBJHint="This returns a value between 0 and 1.  Use 'Lightning - Set Lightning Effect Color' to change the color of a Lightning Effect."
    
    GetLightningColorBBJ="Blue Color of Lightning"
    GetLightningColorBBJ="Blue color of ",~Lightning
    GetLightningColorBBJHint="This returns a value between 0 and 1.  Use 'Lightning - Set Lightning Effect Color' to change the color of a Lightning Effect."
    
    GetLightningColorABJ="Alpha Value of Lightning"
    GetLightningColorABJ="Alpha value of ",~Lightning
    GetLightningColorABJHint="This returns a value between 0 and 1.  A value of 0 corresponds to a completely invisible lightning effect.  Use 'Lightning - Set Lightning Effect Color' to change the alpha value of a Lightning Effect."
    
    GetRandomReal="Random Number"
    GetRandomReal="Random real number between ",~Minimum," and ",~Maximum
    GetRandomRealHint=
    
    GetRandomDirectionDeg="Random Angle"
    GetRandomDirectionDeg="Random angle"
    GetRandomDirectionDegHint="This is a random real number in the range of 0 to 360, for use as an angle or a unit facing."
    
    GetRandomPercentageBJ="Random Percentage"
    GetRandomPercentageBJ="Random percentage"
    GetRandomPercentageBJHint="This is a random real number in the range of 0 to 100, for use as a percentage."
    
    DistanceBetweenPoints="Distance Between Points"
    DistanceBetweenPoints="Distance between ",~Point," and ",~Point
    DistanceBetweenPointsHint="Returns the Euclidean distance between two points, ignoring height."
    
    AngleBetweenPoints="Angle Between Points"
    AngleBetweenPoints="Angle from ",~Point," to ",~Point
    AngleBetweenPointsHint="Returns the angle of a line from one point to another."
    
    RMinBJ="Min"
    RMinBJ="Min(",~Value 1,", ",~Value 2,")"
    RMinBJHint=
    
    RMaxBJ="Max"
    RMaxBJ="Max(",~Value 1,", ",~Value 2,")"
    RMaxBJHint=
    
    RAbsBJ="Abs"
    RAbsBJ="Abs(",~Value,")"
    RAbsBJHint="Calculates the absolute value of a number."
    
    RSignBJ="Sign"
    RSignBJ="Sign(",~Value,")"
    RSignBJHint="Calculates the sign of a number.  The sign of a negative number is -1.  The sign of a nonnegative number is 1."
    
    ModuloReal="Modulo"
    ModuloReal=~Dividend," mod ",~Divisor
    ModuloRealHint="Calculates the remainder of a division.  Example: 9.0 mod 2.5 = 1.5."
    
    Pow="Power"
    Pow="Power(",~Value,", ",~Power,")"
    PowHint=
    
    SquareRoot="Square Root"
    SquareRoot="Square root(",~Value,")"
    SquareRootHint=
    
    SinBJ="Sine"
    SinBJ="Sin(",~Angle,")"
    SinBJHint="The angle specified is expected to be in degrees."
    
    CosBJ="Cosine"
    CosBJ="Cos(",~Angle,")"
    CosBJHint="The angle specified is expected to be in degrees."
    
    TanBJ="Tangent"
    TanBJ="Tan(",~Angle,")"
    TanBJHint="The angle specified is expected to be in degrees."
    
    AsinBJ="Arcsine"
    AsinBJ="Asin(",~Value,")"
    AsinBJHint="The angle returned is in degrees."
    
    AcosBJ="Arccosine"
    AcosBJ="Acos(",~Value,")"
    AcosBJHint="The angle returned is in degrees."
    
    AtanBJ="Arctangent (From Angle)"
    AtanBJ="Atan(",~Value,")"
    AtanBJHint="The angle returned is in degrees."
    
    Atan2BJ="Arctangent (From Deltas)"
    Atan2BJ="Atan2(",~Y,", ",~X,")"
    Atan2BJHint="The angle returned is in degrees."
    
    GetPlayerHandicapXPBJ="Experience Rate"
    GetPlayerHandicapXPBJ=~Player," experience rate"
    GetPlayerHandicapXPBJHint="Experience rates are specified as percentages, with 100% being normal."
    
    GetPlayerHandicapBJ="Handicap"
    GetPlayerHandicapBJ=~Player," handicap"
    GetPlayerHandicapBJHint="Handicap values are specified as percentages, with 100% being normal."
    
    GetRectCenterX="Center X Of Region"
    GetRectCenterX="Center X of ",~Region
    GetRectCenterXHint=
    
    GetRectCenterY="Center Y Of Region"
    GetRectCenterY="Center Y of ",~Region
    GetRectCenterYHint=
    
    GetRectMinX="Min X Of Region"
    GetRectMinX="Min X of ",~Region
    GetRectMinXHint=
    
    GetRectMinY="Min Y Of Region"
    GetRectMinY="Min Y of ",~Region
    GetRectMinYHint=
    
    GetRectMaxX="Max X Of Region"
    GetRectMaxX="Max X of ",~Region
    GetRectMaxXHint=
    
    GetRectMaxY="Max Y Of Region"
    GetRectMaxY="Max Y of ",~Region
    GetRectMaxYHint=
    
    GetRectWidthBJ="Width Of Region"
    GetRectWidthBJ="Width of ",~Region
    GetRectWidthBJHint=
    
    GetRectHeightBJ="Height Of Region"
    GetRectHeightBJ="Height of ",~Region
    GetRectHeightBJHint=
    
    GetSoundDurationBJ="Sound Length"
    GetSoundDurationBJ="Length of ",~Sound
    GetSoundDurationBJHint="This returns the duration of a sound, in seconds."
    
    GetSoundFileDurationBJ="Music Length"
    GetSoundFileDurationBJ="Length of ",~Music
    GetSoundFileDurationBJHint="This returns the duration of a music score, in seconds."
    
    GetUnitStateSwap="Property"
    GetUnitStateSwap=~Property," of ",~Unit
    GetUnitStateSwapHint=
    
    GetUnitLifePercent="Percentage Life"
    GetUnitLifePercent="Percentage life of ",~Unit
    GetUnitLifePercentHint=
    
    GetUnitManaPercent="Percentage Mana"
    GetUnitManaPercent="Percentage mana of ",~Unit
    GetUnitManaPercentHint=
    
    GetUnitFacing="Facing Angle"
    GetUnitFacing="Facing of ",~Unit
    GetUnitFacingHint="The angle returned is in degrees, with 0 facing east."
    
    GetUnitMoveSpeed="Movement Speed (Current)"
    GetUnitMoveSpeed="Current movement speed of ",~Unit
    GetUnitMoveSpeedHint="Movement speeds commonly range from 150 to 300."
    
    GetUnitDefaultMoveSpeed="Movement Speed (Default)"
    GetUnitDefaultMoveSpeed="Default movement speed of ",~Unit
    GetUnitDefaultMoveSpeedHint="Movement speeds commonly range from 150 to 300."
    
    GetUnitAcquireRange="Acquisition Range (Current)"
    GetUnitAcquireRange="Current acquisition range of ",~Unit
    GetUnitAcquireRangeHint=
    
    GetUnitDefaultAcquireRange="Acquisition Range (Default)"
    GetUnitDefaultAcquireRange="Default acquisition range of ",~Unit
    GetUnitDefaultAcquireRangeHint=
    
    GetUnitTurnSpeed="Turn Speed (Current)"
    GetUnitTurnSpeed="Current turn speed of ",~Unit
    GetUnitTurnSpeedHint="A unit's turn speed determines how quickly the unit changes direction.  Turn speed values are expected to be between 0 and 1, with smaller numbers indicating slower turning rates."
    
    GetUnitDefaultTurnSpeed="Turn Speed (Default)"
    GetUnitDefaultTurnSpeed="Default turn speed of ",~Unit
    GetUnitDefaultTurnSpeedHint="A unit's turn speed determines how quickly the unit changes direction.  Turn speed values are expected to be between 0 and 1, with smaller numbers indicating slower turning rates."
    
    GetUnitPropWindowBJ="Prop Window Angle (Current)"
    GetUnitPropWindowBJ="Current prop window angle of ",~Unit
    GetUnitPropWindowBJHint=
    
    GetUnitDefaultPropWindowBJ="Prop Window Angle (Default)"
    GetUnitDefaultPropWindowBJ="Default prop window angle of ",~Unit
    GetUnitDefaultPropWindowBJHint=
    
    GetUnitFlyHeight="Flying Height (Current)"
    GetUnitFlyHeight="Current flying height of ",~Unit
    GetUnitFlyHeightHint="Only flying units use flying heights."
    
    GetUnitDefaultFlyHeight="Flying Height (Default)
    GetUnitDefaultFlyHeight="Default flying height of ",~Unit
    GetUnitDefaultFlyHeightHint=
    
    
    // returns string
    OperatorString="Concatenate Strings"
    OperatorString=~String 1," + ",~String 2
    OperatorStringHint=
    
    SubStringBJ="Substring"
    SubStringBJ="Substring(",~String,", ",~Start,", ",~End,")"
    SubStringBJHint="Example:  Substring(''Grunts stink'', 2, 4) = ''run''."
    
    I2S="Convert Integer To String"
    I2S="String(",~Integer,")"
    I2SHint=
    
    R2S="Convert Real To String"
    R2S="String(",~Real,")"
    R2SHint=
    
    R2SW="Convert Real To Formatted String"
    R2SW="String(",~Real,", ",~Width,", ",~Precision,")"
    R2SWHint="Examples:  String(1.234, 7, 2) = ''   1.23''.  String(1.234, 2, 5) = ''1.23400''."
    
    OrderId2StringBJ="Convert Order To String"
    OrderId2StringBJ="String(",~Order,")"
    OrderId2StringBJHint="Example order strings:  ''harvest'', ''move'', ''smart'', ''attack''."
    
    UnitId2StringBJ="Convert Unit-Type To String"
    UnitId2StringBJ="String(",~Unit-Type,")"
    UnitId2StringBJHint=
    
    StringIdentity="Convert Externalized String"
    StringIdentity="Externalized string(",~String,")"
    StringIdentityHint="Use this to make sure the given string will be externalized in the map string file (war3map.wts)."
    
    StringCase="Convert String Case"
    StringCase="String(",~String,") as ",~Lower/Upper Case
    StringCaseHint="All letters in the string will be changed to the selected case."
    
    GetDestructableName="Destructible Name"
    GetDestructableName="Name of ",~Destructible
    GetDestructableNameHint=
    
    GetEventPlayerChatString="Entered Chat String"
    GetEventPlayerChatString="Entered chat string"
    GetEventPlayerChatStringHint=
    
    GetEventPlayerChatStringMatched="Matched Chat String"
    GetEventPlayerChatStringMatched="Matched chat string"
    GetEventPlayerChatStringMatchedHint=
    
    GetSaveBasicFilename="Saved-Game Filename"
    GetSaveBasicFilename="Saved-game filename"
    GetSaveBasicFilenameHint="When responding to a 'Game - Game Save' event, this refers to the name of the file being saved."
    
    GetAbilityName="Ability Name"
    GetAbilityName="Name of ",~Ability
    GetAbilityNameHint=
    
    GetAbilityEffectBJ="Ability Effect Art Path"
    GetAbilityEffectBJ="Art path of ",~Ability," ",~EffectType," (index ",~Index,")"
    GetAbilityEffectBJHint="This returns the model file path of an ability's effect art."
    
    GetAbilitySoundBJ="Ability Effect Sound Name"
    GetAbilitySoundBJ="Name of ",~Ability," ",~SoundType
    GetAbilitySoundBJHint=
    
    GetStoredStringBJ="Load String Value"
    GetStoredStringBJ="Load ",~Label," of ",~Category," from ",~Game Cache
    GetStoredStringBJHint="If the label is not found, this function returns an empty string."
    
    GetHeroProperName="Hero Proper Name"
    GetHeroProperName="Proper name of ",~Hero
    GetHeroProperNameHint="Calling this on a hero will return his actual name (e.g. 'Granis Darkhammer' for a Paladin)."
    
    GetItemName="Item Name"
    GetItemName="Name of ",~Item
    GetItemNameHint=
    
    MultiboardGetTitleText="Multiboard Title"
    MultiboardGetTitleText="Title of ",~Multiboard
    MultiboardGetTitleTextHint=
    
    GetPlayerName="Player Name"
    GetPlayerName="Name of ",~Player
    GetPlayerNameHint=
    
    GetTriggerName="Trigger Name"
    GetTriggerName="Name of the current trigger"
    GetTriggerNameHint="Returns the name, as entered in the editor, of the trigger which contains this function."
    
    GetUnitName="Unit Name"
    GetUnitName="Name of ",~Unit
    GetUnitNameHint="This returns the internal name of a unit, not the proper name of units or Heroes."
    
    
    // returns location
    GetRectCenter="Center Of Region"
    GetRectCenter="Center of ",~Region
    GetRectCenterHint=
    
    GetRandomLocInRect="Random Point In Region"
    GetRandomLocInRect="Random point in ",~Region
    GetRandomLocInRectHint=
    
    OffsetLocation="Point With Offset"
    OffsetLocation=~Point," offset by (",~X,", ",~Y,")"
    OffsetLocationHint="The offset values are (X, Y)."
    
    PolarProjectionBJ="Point With Polar Offset"
    PolarProjectionBJ=~Point," offset by ",~Distance," towards ",~Angle," degrees"
    PolarProjectionBJHint=
    
    CameraSetupGetDestPositionLoc="Target Of Camera Object"
    CameraSetupGetDestPositionLoc="Target of ",~Camera Object
    CameraSetupGetDestPositionLocHint=
    
    GetCameraTargetPositionLoc="Target Of Current Camera"
    GetCameraTargetPositionLoc="Target of current camera view"
    GetCameraTargetPositionLocHint=
    
    GetCameraEyePositionLoc="Source Of Current Camera"
    GetCameraEyePositionLoc="Source of current camera view"
    GetCameraEyePositionLocHint=
    
    Location="Convert Coordinates To Point"
    Location="Point(",~X,", ",~Y,")"
    LocationHint=
    
    GetDestructableLoc="Position Of Destructible"
    GetDestructableLoc="Position of ",~Destructible
    GetDestructableLocHint=
    
    GetOrderPointLoc="Target Point Of Issued Order"
    GetOrderPointLoc="Target point of issued order"
    GetOrderPointLocHint="When responding to an 'Is Issued An Order Targeting A Point' unit event, this refers to the target of the order."
    
    GetSpellTargetLoc="Target Point Of Ability Being Cast"
    GetSpellTargetLoc="Target point of ability being cast"
    GetSpellTargetLocHint="When responding to 'Channeling/Casting/etc. casting an ability' unit events, this refers to the target point of the ability being cast."
    
    GetItemLoc="Position Of Item"
    GetItemLoc="Position of ",~Item
    GetItemLocHint=
    
    WaygateGetDestinationLocBJ="Way Gate Destination"
    WaygateGetDestinationLocBJ="Destination of ",~Way Gate
    WaygateGetDestinationLocBJHint=
    
    GetPlayerStartLocationLoc="Player Start Location"
    GetPlayerStartLocationLoc=~Player," start location"
    GetPlayerStartLocationLocHint=
    
    GetUnitLoc="Position Of Unit"
    GetUnitLoc="Position of ",~Unit
    GetUnitLocHint=
    
    GetUnitRallyPoint="Rally-Point As Point"
    GetUnitRallyPoint="Rally-Point of ",~Unit," as a point"
    GetUnitRallyPointHint="If the unit has no rally-point set, the result will be (0,0)"
    
    
    // returns rect
    GetCurrentCameraBoundsMapRectBJ="Current Camera Bounds"
    GetCurrentCameraBoundsMapRectBJ="Current camera bounds"
    GetCurrentCameraBoundsMapRectBJHint="This is the area to which the camera target is currently restricted."
    
    GetCameraBoundsMapRect="Initial Camera Bounds"
    GetCameraBoundsMapRect="Initial camera bounds"
    GetCameraBoundsMapRectHint="This is the area to which the camera target is restricted at map initialization."
    
    GetPlayableMapRect="Playable Map Area"
    GetPlayableMapRect="Playable map area"
    GetPlayableMapRectHint="This is the area to which units are restricted.  This area typically extends just beyond the camera bounds."
    
    GetEntireMapRect="Entire Map"
    GetEntireMapRect="Entire map"
    GetEntireMapRectHint="This is the entire map, including areas which cannot normally be reached by units."
    
    OffsetRectBJ="Region With Offset
    OffsetRectBJ=~Region," offset by (",~X,", ",~Y,")"
    OffsetRectBJHint="The offset values are (X, Y)."
    
    RectFromCenterSizeBJ="Convert Point With Size To Region"
    RectFromCenterSizeBJ="Region centered at ",~Point," with size (",~Width,", ",~Height,")"
    RectFromCenterSizeBJHint="The size values are (Width, Height)."
    
    Rect="Convert Coordinates To Region"
    Rect="Region(",~X1,", ",~Y1,", ",~X2,", ",~Y2,")"
    RectHint="Choose four coordinates (min X, min Y, max X, max Y) to define a rectangular region on the map."
    
    RectFromLoc="Convert Points To Region"
    RectFromLoc="Region(",~Point 1,", ",~Point 2,")"
    RectFromLocHint="Choose two points to define a rectangular region on the map."
    
    
    // returns unit
    GetLastCreatedUnit="Last Created Unit"
    GetLastCreatedUnit="Last created unit"
    GetLastCreatedUnitHint="This is the last unit created via a 'Unit - Create' trigger action."
    
    GetLastRestoredUnitBJ="Last Restored Unit"
    GetLastRestoredUnitBJ="Last restored unit"
    GetLastRestoredUnitBJHint="This is the last unit restored via a 'Game Cache - Restore Unit' trigger action."
    
    GetLastReplacedUnitBJ="Last Replaced Unit"
    GetLastReplacedUnitBJ="Last replaced unit"
    GetLastReplacedUnitBJHint="This is the last unit created via a 'Unit - Replace' trigger action."
    
    GetLastHauntedGoldMine="Last Haunted Gold Mine"
    GetLastHauntedGoldMine="Last Haunted Gold Mine"
    GetLastHauntedGoldMineHint="This is the last Haunted Gold Mine created via a 'Neutral Building - Haunt Gold Mine (Instantly)' trigger action."
    
    GetEnumUnit="Picked Unit"
    GetEnumUnit="Picked unit"
    GetEnumUnitHint="When using the 'Pick Every Unit...' action, this refers to each unit as it is picked."
    
    GetFilterUnit="Matching Unit"
    GetFilterUnit="Matching unit"
    GetFilterUnitHint="Use this to refer to the unit being considered for 'Units Matching Condition' functions."
    
    GroupPickRandomUnit="Random Unit From Unit Group"
    GroupPickRandomUnit="Random unit from ",~Unit Group
    GroupPickRandomUnitHint=
    
    GetAttackedUnitBJ="Attacked Unit"
    GetAttackedUnitBJ="Attacked unit"
    GetAttackedUnitBJHint="When responding to an 'Is Attacked' unit event, this refers to the unit that is being attacked."
    
    GetAttacker="Attacking Unit"
    GetAttacker="Attacking unit"
    GetAttackerHint="When responding to an 'Is Attacked' unit event, this refers to the attacking unit."
    
    GetBuyingUnit="Buying Unit"
    GetBuyingUnit="Buying unit"
    GetBuyingUnitHint="When responding to 'Sells A Unit', 'Sells An Item', or 'Pawns An Item' unit events, this refers to the unit doing the buying."
    
    GetCancelledStructure="Cancelled Structure"
    GetCancelledStructure="Cancelled structure"
    GetCancelledStructureHint="When responding to a 'Cancels Construction' unit event, this refers to the unit whose construction has been cancelled."
    
    GetSpellAbilityUnit="Casting Unit"
    GetSpellAbilityUnit="Casting unit"
    GetSpellAbilityUnitHint="When responding to 'Channeling/Casting/etc. casting an ability' unit events, this refers to the unit casting the ability."
    
    GetConstructedStructure="Constructed Structure"
    GetConstructedStructure="Constructed structure"
    GetConstructedStructureHint="When responding to a 'Finishes Construction' unit event, this refers to the unit whose construction has finished."
    
    GetConstructingStructure="Constructing Structure"
    GetConstructingStructure="Constructing structure"
    GetConstructingStructureHint="When responding to a 'Begins Construction' unit event, this refers to the unit whose construction has begun."
    
    GetEventDamageSource="Damage Source"
    GetEventDamageSource="Damage source"
    GetEventDamageSourceHint="When responding to a 'Takes Damage' unit event, this refers to the source of damage being dealt."
    
    GetDecayingUnit="Decaying Unit"
    GetDecayingUnit="Decaying unit"
    GetDecayingUnitHint="When responding to a 'Decays' unit event, this refers to the unit that is decaying."
    
    GetDyingUnit="Dying Unit"
    GetDyingUnit="Dying unit"
    GetDyingUnitHint="When responding to a 'Dies' unit event, this refers to the unit that is dying."
    
    GetEnteringUnit="Entering Unit"
    GetEnteringUnit="Entering unit"
    GetEnteringUnitHint="When responding to a 'Unit Enters Region' unit event, this refers to the unit entering the region."
    
    GetManipulatingUnit="Hero Manipulating Item"
    GetManipulatingUnit="Hero manipulating item"
    GetManipulatingUnitHint="When responding to 'Uses/Acquires/Loses An Item' unit events, this refers to the Hero that is manipulating the item."
    
    GetKillingUnitBJ="Killing Unit"
    GetKillingUnitBJ="Killing unit"
    GetKillingUnitBJHint="When responding to a 'Dies' unit event, this refers to the killer of the dying unit.  In cases where a unit dies from a source other than a killing unit, this returns 'No unit'."
    
    GetLearningUnit="Learning Hero"
    GetLearningUnit="Learning Hero"
    GetLearningUnitHint="When responding to a 'Learns A Skill' unit event, this refers to the unit learning the skill."
    
    GetLeavingUnit="Leaving Unit"
    GetLeavingUnit="Leaving unit"
    GetLeavingUnitHint="When responding to a 'Unit Leaves Region' event, this refers to the unit leaving the region."
    
    GetLevelingUnit="Leveling Hero"
    GetLevelingUnit="Leveling Hero"
    GetLevelingUnitHint="When responding to a 'Gains A Level' unit event, this refers to the unit gaining the level."
    
    GetLoadedUnitBJ="Loading Unit"
    GetLoadedUnitBJ="Loading unit"
    GetLoadedUnitBJHint="When responding to an 'Is Loaded Into A Transport' unit event, this refers to the unit that is being loaded."
    
    GetOrderedUnit="Ordered Unit"
    GetOrderedUnit="Ordered unit"
    GetOrderedUnitHint="When responding to an 'Is Issued An Order' unit event, this refers to the unit receiving the order."
    
    GetChangingUnit="Ownership-Changed Unit"
    GetChangingUnit="Ownership-changed unit"
    GetChangingUnitHint="When responding to a 'Changes Owner' unit event, this refers to the unit whose ownership has changed."
    
    GetResearchingUnit="Researching Unit"
    GetResearchingUnit="Researching unit"
    GetResearchingUnitHint="When responding to 'Begins/Cancels/Finishes Research' unit events, this refers to the unit doing the research."
    
    GetRevivableUnit="Revivable Hero"
    GetRevivableUnit="Revivable Hero"
    GetRevivableUnitHint="When responding to a 'Becomes Revivable' unit event, this refers to the unit that has become available for revival."
    
    GetRevivingUnit="Reviving Hero"
    GetRevivingUnit="Reviving Hero"
    GetRevivingUnitHint="When responding to 'Begins/Cancels/Finishes Reviving' unit events, this refers to the unit being revived."
    
    GetSellingUnit="Selling Unit"
    GetSellingUnit="Selling unit"
    GetSellingUnitHint="When responding to 'Sells A Unit', 'Sells An Item', or 'Pawns An Item' unit events, this refers to the unit doing the selling."
    
    GetSoldUnit="Sold Unit"
    GetSoldUnit="Sold unit"
    GetSoldUnitHint="When responding to a 'Sells A Unit' unit event, this refers to the unit being sold."
    
    GetSummonedUnit="Summoned Unit"
    GetSummonedUnit="Summoned unit"
    GetSummonedUnitHint="When responding to a 'Spawns A Summoned Unit' unit event, this refers to the unit being summoned."
    
    GetSummoningUnit="Summoning Unit"
    GetSummoningUnit="Summoning unit"
    GetSummoningUnitHint="When responding to a 'Spawns A Summoned Unit' unit event, this refers to the unit spawning the summoned unit."
    
    GetOrderTargetUnit="Target Unit Of Issued Order"
    GetOrderTargetUnit="Target unit of issued order"
    GetOrderTargetUnitHint="When responding to an 'Is Issued An Order Targeting An Object' unit event with a unit target, this refers to the target of the order."
    
    GetSpellTargetUnit="Target Unit Of Ability Being Cast"
    GetSpellTargetUnit="Target unit of ability being cast"
    GetSpellTargetUnitHint="When responding to 'Channeling/Casting/etc. casting an ability' unit events with a unit target, this refers to the target of the ability being cast."
    
    GetEventTargetUnit="Targeted Unit"
    GetEventTargetUnit="Targeted unit"
    GetEventTargetUnitHint="When responding to an 'Acquires A Target' unit event, this refers to the target being acquired."
    
    GetTrainedUnit="Trained Unit"
    GetTrainedUnit="Trained unit"
    GetTrainedUnitHint="When responding to a 'Finishes Training A Unit' unit event, this refers to the unit that was trained."
    
    GetTransportUnitBJ="Transporting Unit"
    GetTransportUnitBJ="Transporting unit"
    GetTransportUnitBJHint="When responding to an 'Is Loaded Into A Transport' unit event, this refers to the transport that loaded the unit."
    
    GetTriggerUnit="Triggering Unit"
    GetTriggerUnit="Triggering unit"
    GetTriggerUnitHint=
    
    GetUnitRallyUnit="Rally-Point As Unit"
    GetUnitRallyUnit="Rally-Point of ",~Unit," as a unit"
    GetUnitRallyUnitHint="If the unit does not have a rally-point set to a unit, this will return 'No unit'."
    
    
    // returns unitcode
    GetUnitTypeId="Unit-Type Of Unit"
    GetUnitTypeId="Unit-type of ",~Unit
    GetUnitTypeIdHint=
    
    ChooseRandomCreepBJ="Random Creep Unit-Type"
    ChooseRandomCreepBJ="Random level ",~Level," creep unit-type"
    ChooseRandomCreepBJHint="Use -1 for any level."
    
    ChooseRandomNPBuildingBJ="Random Neutral Building Unit-Type"
    ChooseRandomNPBuildingBJ="Random neutral building unit-type"
    ChooseRandomNPBuildingBJHint=
    
    String2UnitIdBJ="Convert String To Unit-Type"
    String2UnitIdBJ="Unit-type(",~String,")"
    String2UnitIdBJHint=
    
    GetTrainedUnitType="Trained Unit-Type"
    GetTrainedUnitType="Trained unit-type"
    GetTrainedUnitTypeHint="When responding to 'Begins/Cancels/Finishes Training A Unit' unit events, this refers to the unit-type of the unit that is being trained."
    
    
    // returns ordercode
    String2OrderIdBJ="Convert String To Order"
    String2OrderIdBJ="Order(",~String,")"
    String2OrderIdBJHint="Example order strings:  ''harvest'', ''move'', ''smart'', ''attack''."
    
    UnitId2OrderIdBJ="Convert Unit-Type To Order"
    UnitId2OrderIdBJ="Order(",~Unit-Type,")"
    UnitId2OrderIdBJHint=
    
    GetIssuedOrderIdBJ="Issued Order"
    GetIssuedOrderIdBJ="Issued order"
    GetIssuedOrderIdBJHint="When responding to 'Is Issued An Order' unit events, this refers to the order being issued."
    
    GetUnitCurrentOrder="Current Order Of Unit"
    GetUnitCurrentOrder="Current order of ",~Unit
    GetUnitCurrentOrderHint=
    
    
    // returns destructable
    GetLastCreatedDestructable="Last Created Destructible"
    GetLastCreatedDestructable="Last created destructible"
    GetLastCreatedDestructableHint="This is the last destructible created via a 'Destructible - Create' trigger action."
    
    RandomDestructableInRectSimpleBJ="Random Destructible In Region"
    RandomDestructableInRectSimpleBJ="Random destructible in ",~Region
    RandomDestructableInRectSimpleBJHint=
    
    RandomDestructableInRectBJ="Random Destructible In Region Matching Condition"
    RandomDestructableInRectBJ="Random destructible in ",~Region," matching ",~Condition
    RandomDestructableInRectBJHint="Use 'Matching Destructible' to refer to the destructible being considered."
    
    GetEnumDestructable="Picked Destructible"
    GetEnumDestructable="Picked destructible"
    GetEnumDestructableHint="When using the 'Pick Every Destructible...' action, this refers to each destructible as it is picked."
    
    GetFilterDestructable="Matching Destructible"
    GetFilterDestructable="Matching destructible"
    GetFilterDestructableHint="Use this to refer to the destructible being considered for the 'Random Destructible' functions."
    
    GetDyingDestructable="Dying Destructible"
    GetDyingDestructable="Dying destructible"
    GetDyingDestructableHint="When responding to a 'Destructible Dies' event, this refers to the destructible that is dying."
    
    GetOrderTargetDestructable="Target Destructible Of Issued Order"
    GetOrderTargetDestructable="Target destructible of issued order"
    GetOrderTargetDestructableHint="When responding to an 'Is Issued An Order Targeting An Object' unit event with a destructible target, this refers to the target of the order."
    
    GetSpellTargetDestructable="Target Destructible Of Ability Being Cast"
    GetSpellTargetDestructable="Target destructible of ability being cast"
    GetSpellTargetDestructableHint="When responding to 'Channeling/Casting/etc. casting an ability' unit events with a destructible target, this refers to the target of the ability being cast."
    
    GetUnitRallyDestructable="Rally-Point As Destructible"
    GetUnitRallyDestructable="Rally-Point of ",~Unit," as a destructible"
    GetUnitRallyDestructableHint="If the unit does not have a rally-point set to a destructible, this will return 'No destructible'."
    
    
    // returns destructablecode
    GetDestructableTypeId="Destructible-Type of Destructible"
    GetDestructableTypeId="Destructible-type of ",~Destructible
    GetDestructableTypeIdHint=
    
    
    // returns item
    GetLastCreatedItem="Last Created Item"
    GetLastCreatedItem="Last created item"
    GetLastCreatedItemHint="This is the last item created via an 'Item - Create' or 'Hero - Create Item For Hero' trigger action."
    
    GetLastRemovedItem="Last Dropped Item"
    GetLastRemovedItem="Last dropped item"
    GetLastRemovedItemHint="This is the last item dropped via a 'Hero - Drop Item' trigger action."
    
    RandomItemInRectSimpleBJ="Random Item In Region"
    RandomItemInRectSimpleBJ="Random item in ",~Region
    RandomItemInRectSimpleBJHint=
    
    RandomItemInRectBJ="Random Item In Region Matching Condition"
    RandomItemInRectBJ="Random item in ",~Region," matching ",~Condition
    RandomItemInRectBJHint="Use 'Matching Item' to refer to the item being considered."
    
    GetEnumItem="Picked Item"
    GetEnumItem="Picked item"
    GetEnumItemHint="When using the 'Pick Every Item...' action, this refers to each item as it is picked."
    
    GetFilterItem="Matching Item"
    GetFilterItem="Matching item"
    GetFilterItemHint="Use this to refer to the item being considered for the 'Random Item' functions."
    
    UnitItemInSlotBJ="Item Carried By Hero"
    UnitItemInSlotBJ="Item carried by ",~Hero," in slot ",~Index
    UnitItemInSlotBJHint=
    
    GetItemOfTypeFromUnitBJ="Item Carried By Hero Of Type"
    GetItemOfTypeFromUnitBJ="Item carried by ",~Hero," of type ",~Item-Type
    GetItemOfTypeFromUnitBJHint=
    
    GetManipulatedItem="Item Being Manipulated"
    GetManipulatedItem="Item being manipulated"
    GetManipulatedItemHint="When responding to 'Uses/Acquires/Loses An Item' unit events, this refers to the item being manipulated."
    
    GetSoldItem="Sold Item"
    GetSoldItem="Sold Item"
    GetSoldItemHint="When responding to 'Sells An Item' or 'Pawns An Item' unit events, this refers to the item being sold."
    
    GetOrderTargetItem="Target Item Of Issued Order"
    GetOrderTargetItem="Target item of issued order"
    GetOrderTargetItemHint="When responding to an 'Is Issued An Order Targeting An Object' unit event with an item target, this refers to the target of the order."
    
    GetSpellTargetItem="Target Item Of Ability Being Cast"
    GetSpellTargetItem="Target item of ability being cast"
    GetSpellTargetItemHint="When responding to 'Channeling/Casting/etc. casting an ability' unit events with an item target, this refers to the target of the ability being cast."
    
    
    // returns itemtype
    GetItemType="Item-Class Of Item"
    GetItemType="Item-class of ",~Item
    GetItemTypeHint=
    
    
    // returns itemcode
    GetItemTypeId="Item-Type Of Item"
    GetItemTypeId="Item-type of ",~Item
    GetItemTypeIdHint=
    
    ChooseRandomItemBJ="Random Item-Type"
    ChooseRandomItemBJ="Random level ",~Level," item-type"
    ChooseRandomItemBJHint="This function corresponds to the original unclassified item system with levels 0-10.  Use -1 for any level."
    
    ChooseRandomItemExBJ="Random Item-Type Of Class"
    ChooseRandomItemExBJ="Random level ",~Level," ",~Class," item-type"
    ChooseRandomItemExBJHint="This function corresponds to the newer item classification system with levels 0-8.  Use -1 for any level."
    
    
    // returns techcode
    GetResearched="Researched Tech-Type"
    GetResearched="Researched tech-type"
    GetResearchedHint="When responding to 'Begins/Cancels/Finishes Research' unit events, this refers to the tech-type being researched."
    
    
    // returns abilcode
    GetSpellAbilityId="Ability Being Cast"
    GetSpellAbilityId="Ability being cast"
    GetSpellAbilityIdHint="When responding to 'Channeling/Casting/etc. casting an ability' unit events, this refers to the ability being cast."
    
    
    // returns heroskillcode
    GetLearnedSkillBJ="Learned Hero Skill"
    GetLearnedSkillBJ="Learned Hero Skill"
    GetLearnedSkillBJHint=
    
    
    // returns player
    GetEnumPlayer="Picked Player"
    GetEnumPlayer="Picked player"
    GetEnumPlayerHint="When using the 'Pick Every Player...' action, this refers to each player as he/she is picked."
    
    GetFilterPlayer="Matching Player"
    GetFilterPlayer="Matching player"
    GetFilterPlayerHint="Use this to refer to the player being considered for the 'All Players Matching Condition' function."
    
    GetOwningPlayer="Owner Of Unit"
    GetOwningPlayer="Owner of ",~Unit
    GetOwningPlayerHint=
    
    GetItemPlayer="Owner Of Item"
    GetItemPlayer="Owner of ",~Item
    GetItemPlayerHint=
    
    ForcePickRandomPlayer="Random Player From Player Group"
    ForcePickRandomPlayer="Random player from ",~Player Group
    ForcePickRandomPlayerHint=
    
    ConvertedPlayer="Convert Player Index To Player"
    ConvertedPlayer="Player(",~Player Index,")"
    ConvertedPlayerHint="Player indexes range from 1 to 16."
    
    GetChangingUnitPrevOwner="Previous Owner"
    GetChangingUnitPrevOwner="Previous owner"
    GetChangingUnitPrevOwnerHint="When responding to a 'Changes Owner' unit event, this refers to the previous owner of the unit."
    
    GetTriggerPlayer="Triggering Player"
    GetTriggerPlayer="Triggering player"
    GetTriggerPlayerHint=
    
    LeaderboardGetIndexedPlayerBJ="Player In Position"
    LeaderboardGetIndexedPlayerBJ="Player in position ",~Position," of ",~Leaderboard
    LeaderboardGetIndexedPlayerBJHint=
    
    
    // returns group
    GetLastCreatedGroup="Last Created Unit Group"
    GetLastCreatedGroup="Last created unit group"
    GetLastCreatedGroupHint="This is the last set of units created via a 'Unit - Create' trigger action."
    
    GetRandomSubGroup="Random N Units From Unit Group"
    GetRandomSubGroup="Random ",~Count," units from ",~Unit Group
    GetRandomSubGroupHint=
    
    GetUnitsInRectAll="Units In Region"
    GetUnitsInRectAll="Units in ",~Region
    GetUnitsInRectAllHint=
    
    GetUnitsInRectOfPlayer="Units In Region Owned By Player"
    GetUnitsInRectOfPlayer="Units in ",~Region," owned by ",~Player
    GetUnitsInRectOfPlayerHint=
    
    GetUnitsInRectMatching="Units In Region Matching Condition"
    GetUnitsInRectMatching="Units in ",~Region," matching ",~Condition
    GetUnitsInRectMatchingHint="Use 'Matching Unit' to refer to the unit on whom the comparison is being performed."
    
    GetUnitsInRangeOfLocAll="Units In Range"
    GetUnitsInRangeOfLocAll="Units within ",~Radius," of ",~Point
    GetUnitsInRangeOfLocAllHint=
    
    GetUnitsInRangeOfLocMatching="Units In Range Matching Condition"
    GetUnitsInRangeOfLocMatching="Units within ",~Radius," of ",~Point," matching ",~Condition
    GetUnitsInRangeOfLocMatchingHint="Use 'Matching Unit' to refer to the unit on whom the comparison is being performed."
    
    GetUnitsOfPlayerAll="Units Owned By Player"
    GetUnitsOfPlayerAll="Units owned by ",~Player
    GetUnitsOfPlayerAllHint=
    
    GetUnitsOfPlayerAndTypeId="Units Owned By Player Of Type"
    GetUnitsOfPlayerAndTypeId="Units owned by ",~Player," of type ",~Unit-Type
    GetUnitsOfPlayerAndTypeIdHint=
    
    GetUnitsOfPlayerMatching="Units Owned By Player Matching Condition"
    GetUnitsOfPlayerMatching="Units owned by ",~Player," matching ",~Condition
    GetUnitsOfPlayerMatchingHint="Use 'Matching Unit' to refer to the unit on whom the comparison is being performed."
    
    GetUnitsOfTypeIdAll="Units Of Type"
    GetUnitsOfTypeIdAll="Units of type ",~Unit-Type
    GetUnitsOfTypeIdAllHint=
    
    GetUnitsSelectedAll="Units Selected"
    GetUnitsSelectedAll="Units currently selected by ",~Player
    GetUnitsSelectedAllHint="This should not be used in trigger conditions."
    
    
    // returns force
    GetPlayersAll="All Players"
    GetPlayersAll="All players"
    GetPlayersAllHint="Includes unused and neutral players."
    
    GetPlayersByMapControl="All Players Of Control"
    GetPlayersByMapControl="All players controlled by a ",~Control Type," player"
    GetPlayersByMapControlHint=
    
    GetPlayersMatching="All Players Matching Condition"
    GetPlayersMatching="All players matching ",~Condition
    GetPlayersMatchingHint="Use 'Matching Player' to refer to the player on whom the comparison is being performed.  This includes unused and neutral players."
    
    GetPlayersAllies="Allies Of Player"
    GetPlayersAllies="All allies of ",~Player
    GetPlayersAlliesHint="All allies of the specified player, including him/herself."
    
    GetPlayersEnemies="Enemies Of Player"
    GetPlayersEnemies="All enemies of ",~Player
    GetPlayersEnemiesHint="All enemies of the specified player."
    
    GetForceOfPlayer="Convert Player To Player Group"
    GetForceOfPlayer="Player group(",~Player,")"
    GetForceOfPlayerHint=
    
    
    // returns race
    GetPlayerRace="Race Of Player"
    GetPlayerRace="Race of ",~Player
    GetPlayerRaceHint=
    
    GetUnitRace="Race Of Unit"
    GetUnitRace="Race of ",~Unit
    GetUnitRaceHint=
    
    
    // returns camerasetup
    GetCurrentCameraSetup="Current Camera"
    GetCurrentCameraSetup="Current camera"
    GetCurrentCameraSetupHint=
    
    
    // returns fogmodifier
    GetLastCreatedFogModifier="Last Created Visibility Modifier"
    GetLastCreatedFogModifier="Last created visibility modifier"
    GetLastCreatedFogModifierHint="This is the last visibility modifier created via a 'Visibility - Create Visibility Modifier' trigger action."
    
    
    // returns trigger
    GetTriggeringTrigger="This Trigger"
    GetTriggeringTrigger="This trigger"
    GetTriggeringTriggerHint=
    
    
    // returns gamedifficulty
    GetGameDifficulty="Difficulty Level"
    GetGameDifficulty="Difficulty level"
    GetGameDifficultyHint=
    
    
    // returns aidifficulty
    GetAIDifficulty="Melee AI Of Player"
    GetAIDifficulty="Melee AI of ",~Player
    GetAIDifficultyHint=
    
    
    // returns gamespeed
    GetGameSpeed="Current Game Speed"
    GetGameSpeed="Current game speed"
    GetGameSpeedHint=
    
    
    // returns mapcontrol
    GetPlayerController="Player Controller"
    GetPlayerController=~Player," controller"
    GetPlayerControllerHint=
    
    
    // returns playercolor
    GetPlayerColor="Color Of Player"
    GetPlayerColor="Color of ",~Player
    GetPlayerColorHint=
    
    
    // returns playerslotstate
    GetPlayerSlotState="Player Slot Status"
    GetPlayerSlotState=~Player," slot status"
    GetPlayerSlotStateHint=
    
    
    // returns effect
    GetLastCreatedEffectBJ="Last Created Special Effect"
    GetLastCreatedEffectBJ="Last created special effect"
    GetLastCreatedEffectBJHint=
    
    
    // returns lightning
    GetLastCreatedLightningBJ="Last Created Lightning Effect"
    GetLastCreatedLightningBJ="Last created lightning effect"
    GetLastCreatedLightningBJHint=
    
    
    // returns image
    GetLastCreatedImage="Last Created Image"
    GetLastCreatedImage="Last created image"
    GetLastCreatedImageHint=
    
    
    // returns ubersplat
    GetLastCreatedUbersplat="Last Created Ubersplat"
    GetLastCreatedUbersplat="Last created ubersplat"
    GetLastCreatedUbersplatHint=
    
    
    // returns weathereffect
    GetLastCreatedWeatherEffect="Last Created Weather Effect"
    GetLastCreatedWeatherEffect="Last created weather effect"
    GetLastCreatedWeatherEffectHint="This is the last weather effect created via an 'Environment - Create Weather Effect' trigger action."
    
    
    // returns terraindeformation
    GetLastCreatedTerrainDeformation="Last Created Terrain Deformation"
    GetLastCreatedTerrainDeformation="Last created terrain deformation"
    GetLastCreatedTerrainDeformationHint="This is the last terrain deformation created via any of the 'Environment - Create Terrain Deformation' trigger actions."
    
    
    // returns terraintype
    GetTerrainTypeBJ="Terrain Type"
    GetTerrainTypeBJ="Terrain type at ",~Location
    GetTerrainTypeBJHint=
    
    
    // returns sound
    GetLastPlayedSound="Last Played Sound"
    GetLastPlayedSound="Last played sound"
    GetLastPlayedSoundHint="This is the last sound played via a 'Sound - Play Sound' or 'Cinematic - Transmission' trigger action."
    
    
    // returns music
    GetLastPlayedMusic="Last Played Music"
    GetLastPlayedMusic="Last played music"
    GetLastPlayedMusicHint="This is the last music played via a 'Sound - Play Music' trigger action."
    
    
    // returns quest
    GetLastCreatedQuestBJ="Last Created Quest"
    GetLastCreatedQuestBJ="Last created quest"
    GetLastCreatedQuestBJHint="This is the last quest created via a 'Quest - Create Quest' trigger action."
    
    
    // returns questitem
    GetLastCreatedQuestItemBJ="Last Created Quest Requirement"
    GetLastCreatedQuestItemBJ="Last created quest requirement"
    GetLastCreatedQuestItemBJHint="This is the last quest requirement created via a 'Quest - Create Quest Requirement' trigger action."
    
    
    // returns defeatcondition
    GetLastCreatedDefeatConditionBJ="Last Created Defeat Condition"
    GetLastCreatedDefeatConditionBJ="Last created defeat condition"
    GetLastCreatedDefeatConditionBJHint="This is the last defeat condition created via a 'Quest - Create Defeat Condition' trigger action."
    
    
    // returns dialog
    GetClickedDialogBJ="Clicked Dialog"
    GetClickedDialogBJ="Clicked dialog"
    GetClickedDialogBJHint="When responding to a 'Dialog - Dialog Button Click' event, this refers to the dialog containing the clicked button."
    
    
    // returns button
    GetLastCreatedButtonBJ="Last Created Dialog Button"
    GetLastCreatedButtonBJ="Last created dialog Button"
    GetLastCreatedButtonBJHint="This is the last dialog button created via a 'Dialog - Create Dialog Button' trigger action."
    
    GetClickedButtonBJ="Clicked Dialog Button"
    GetClickedButtonBJ="Clicked dialog button"
    GetClickedButtonBJHint="When responding to a 'Dialog - Button Clicked' event, this refers to the dialog button that is being clicked."
    
    
    // returns leaderboard
    GetLastCreatedLeaderboard="Last Created Leaderboard"
    GetLastCreatedLeaderboard="Last created leaderboard"
    GetLastCreatedLeaderboardHint="This is the last leaderboard created via a 'Leaderboard - Create Leaderboard' trigger action."
    
    PlayerGetLeaderboardBJ="Leaderboard Of Player"
    PlayerGetLeaderboardBJ="Leaderboard of ",~Player
    PlayerGetLeaderboardBJHint="Each player can have at most one leaderboard."
    
    
    // returns multiboard
    GetLastCreatedMultiboard="Last Created Multiboard"
    GetLastCreatedMultiboard="Last created multiboard"
    GetLastCreatedMultiboardHint="This is the last multiboard created via a 'Multiboard - Create Multiboard' trigger action."
    
    
    // returns timer
    GetLastCreatedTimerBJ="Last Started Timer"
    GetLastCreatedTimerBJ="Last started timer"
    GetLastCreatedTimerBJHint="This is the last timer started via a 'Countdown Timer - Start Timer' trigger action."
    
    GetExpiredTimer="Expiring Timer"
    GetExpiredTimer="Expiring timer"
    GetExpiredTimerHint="When responding to a 'Time - Timer Expires' event, this refers to the timer that is expiring."
    
    
    // returns timerdialog
    GetLastCreatedTimerDialogBJ="Last Created Timer Window"
    GetLastCreatedTimerDialogBJ="Last created timer window"
    GetLastCreatedTimerDialogBJHint="This is the last timer window created via a 'Countdown Timer - Create Timer Window' trigger action."
    
    
    // returns gamecache
    GetLastCreatedGameCacheBJ="Last Created Game Cache"
    GetLastCreatedGameCacheBJ="Last created game cache"
    GetLastCreatedGameCacheBJHint="This is the last game cache created via a 'Game Cache - Create Game Cache' trigger action."
    
    
    // returns texttag
    GetLastCreatedTextTag="Last Created Floating Text"
    GetLastCreatedTextTag="Last created floating text"
    GetLastCreatedTextTagHint="This is the last floating text created via a 'Floating Text - Create Floating Text' trigger action."
    
    inv100_IsEnabled="Inventory Screen Active"
    inv100_IsEnabled=~Player," is using inventory"
    inv100_IsEnabledHint=
    
    inv100_UnitHasItem="Unit Has Item"
    inv100_UnitHasItem=~Unit," has ",~Item," in his backpack"
    inv100_UnitHasItemHint="This only checks extra slots, not main hero inventory."
    
    inv100_UnitHasItemOfType="Unit Has Item Of Type"
    inv100_UnitHasItemOfType=~Unit," has ",~Item," in his backpack"
    inv100_UnitHasItemOfTypeHint="This only checks extra slots, not main hero inventory."
    
    inv100_UnitItemInSlot="Item In Extended Slot"
    inv100_UnitItemInSlot="Item carried by ",~Unit," in extended slot number ",~Slot
    inv100_UnitItemInSlotHint=
    
    //***************************************************************************
    [AIFunctionStrings]
    // These functions are defined in AIEditorData.txt
    
    // --- Boolean
    
    TownThreatened="Town Is Under Attack"
    TownThreatened="Town is under attack"
    TownThreatenedHint=""
    
    TownHasMine="Town Has Mine"
    TownHasMine="Town #",~Town," has an active gold mine"
    
    TownHasHall="Town Has Hall"
    TownHasHall="Town #",~Town," has a town hall building"
    
    CaptainIsHome="Attack Captain Is At Home"
    CaptainIsHome="Attack captain is at home"
    
    CaptainIsFull="Attack Group Is Complete"
    CaptainIsFull="Attack group is complete"
    
    CaptainIsEmpty="Attack Group Is Empty"
    CaptainIsEmpty="Attack group is empty"
    
    CaptainRetreating="Attack Captain Is Retreating"
    CaptainRetreating="Attack captain is retreating"
    
    CaptainAtGoal="Attack Captain Is At Goal"
    CaptainAtGoal="Attack captain is at goal"
    
    CaptainInCombat="Captain Is In Combat"
    CaptainInCombat=~Captain Type," captain is in combat"
    
    CreepsOnMap="Creeps Exist Anywhere"
    CreepsOnMap="Creeps exist anywhere on the map"
    
    ExpansionNeeded="Expansion Spot Needed"
    ExpansionNeeded="Expansion spot needed"
    ExpansionNeededHint="Returns true if the AI needs to build an expansion but there are currently no open spots."
    
    // --- Integer
    
    GetUnitCount="Total Units of Type"
    GetUnitCount="Total number of ",~Unit Type," units"
    GetUnitCountHint="This count includes units currently being trained or constructed."
    
    GetUnitCountDone="Total Units of Type - Completed Only"
    GetUnitCountDone="Total number of ",~Unit Type," units completed"
    GetUnitCountDoneHint="This count does NOT include units currently being trained or constructed."
    
    GetTownUnitCount="Total Units of Type - By Town"
    GetTownUnitCount="Total number of ",~Unit Type," units in town #",~Town," (completed only: ",~Option,")"
    GetTownUnitCountHint=""
    
    GetMinesOwned="Number of Mines Owned"
    GetMinesOwned="Number of mines owned"
    GetMinesOwnedHint="The total number of mines currently in use by the AI player."
    
    GetGoldOwned="Total Unmined Gold Owned"
    GetGoldOwned="Total unmined gold owned"
    GetGoldOwnedHint="The total amount of gold remaining in all mines currently in use."
    
    TownWithMine="Town With Mine"
    TownWithMine="Town with a gold mine"
    TownWithMineHint="Returns the ID of the first town with an active gold mine"
    
    GetGold="Current Gold Amount"
    GetGold="Current gold amount"
    GetGoldHint="The amount of gold currently owned by the AI player"
    
    GetWood="Current Lumber Amount"
    GetWood="Current lumber amount"
    GetWoodHint="The amount of lumber currently owned by the AI player"
    
    GetUnitGoldCost="Gold Cost of Unit"
    GetUnitGoldCost="Gold cost of ",~Unit Type
    
    GetUnitWoodCost="Lumber Cost of Unit"
    GetUnitWoodCost="Lumber cost of ",~Unit Type
    
    GetUnitBuildTime="Build Time of Unit"
    GetUnitBuildTime="Build time of ",~Unit Type
    GetUnitBuildTimeHint="Build time is in seconds."
    
    GetUpgradeLevel="Current Upgrade Level"
    GetUpgradeLevel="Upgrade level of ",~Upgrade Type
    
    GetUpgradeGoldCost="Gold Cost of Upgrade"
    GetUpgradeGoldCost="Gold cost of the next ",~Upgrade Type," upgrade"
    
    GetUpgradeWoodCost="Lumber Cost of Upgrade"
    GetUpgradeWoodCost="Lumber cost of the next ",~Upgrade Type," upgrade"
    
    GetNextExpansion="Next Expansion Town"
    GetNextExpansion="Next expansion town"
    GetNextExpansionHint="Returns the town ID for the next expansion location"
    
    FoodUsed="Food Used"
    FoodUsed="Food used"
    FoodUsedHint="The total amount of food currently being used by the AI player"
    
    TotalFoodProduced="Food Produced"
    TotalFoodProduced="Food produced"
    TotalFoodProducedHint="The total amount of food currently produced by the AI player"
    
    GetFoodMade="Food Produced By Unit"
    GetFoodMade="Food produced by ",~Unit Type," units"
    
    CommandsWaiting="Commands Waiting"
    CommandsWaiting="Number of commands waiting"
    CommandsWaitingHint="Commands can be sent from map triggers via the 'AI - Send AI Command' action."
    
    CheckLastCommand="Last Command"
    CheckLastCommand="Last command sent, ",~Option," the command"
    CheckLastCommandHint="Commands can be sent from map triggers via the 'AI - Send AI Command' action."
    
    CheckLastCommandData="Last Command Data"
    CheckLastCommandData="Last command data sent, ",~Option," the command"
    CheckLastCommandDataHint="Commands can be sent from map triggers via the 'AI - Send AI Command' action."
    
    CaptainGroupSize="Attack Group Size"
    CaptainGroupSize="Attack group size"
    CaptainGroupSizeHint="The current number of units in the attack group."
    
    CaptainReadinessHP="Attack Group Health Level"
    CaptainReadinessHP="Attack group health level"
    CaptainReadinessHPHint="The health level is an estimation of the average attack group health, with 100 being full."
    
    CaptainReadinessMa="Attack Group Mana Level"
    CaptainReadinessMa="Attack group mana level"
    CaptainReadinessMaHint="The mana level is an estimation of the average attack group mana, with 100 being full."
    
    CurrentAttackWave="Current Attack Wave"
    CurrentAttackWave="Current attack wave"
    CurrentAttackWaveHint="Attack waves are defined in the attack wave list in the Attacking tab."
    
    MeleeDifficulty="Melee Difficulty Level"
    MeleeDifficulty="Melee difficulty level"
    .
    ___________Auto Merge________________

    .
    Hết luôn
    Ai siêng thì coi

    :p :(
     
  19. SilverC

    SilverC Youtube Master Race

    Tham gia ngày:
    27/6/08
    Bài viết:
    4
    Anh ơi cho em hỏi:
    Cách lock map giống map dota, mở bằng worldeditor là dis ra ngoài, em hỏi 1 anh biết lock kiểu đó anh ấy bảo là lock = jass, vậy anh chỉ em cách lock đó với ! Thank anh !:D
     
  20. Vua_Do_Hoa

    Vua_Do_Hoa Mr & Ms Pac-Man

    Tham gia ngày:
    30/3/08
    Bài viết:
    217
    Nơi ở:
    Tp Hồ Chí Minh
    Nếu là mở khóa thì tìm chỗ khác bạn ạ. chỗ này ko hổ trợ cái đó. thông cảm:x
     

Chia sẻ trang này