• 0

    posted a message on Basic Data Editor Question
    Quote from Alevice >>

    swithch to xml view and check if your unit id is right

     The Unit IDs are all the same as the basic names.
     
    Quote from DrSuperEvil >>

    You using tokens?

     I'm not sure what tokens are, so probably not.  I could upload a new clean map with just this unit added if my explanation wasn't clear enough to see the problem.
     
     
    --
     
    I won't worry about this for now, I've worked around it.  But the data editor is definitely my weak point, and I need to figure this stuff out at some point.
    Posted in: General Chat
  • 0

    posted a message on Basic Data Editor Question

    I know there are a lot of old threads and tutorials on this topic, but so many of them are gutted (the pictures are too old, and not showing).

     

    In short, I've created a custom unit and get the error: "Unable to create unit actor.  Creating fallback sphere unit."  In-game, I see both the model that I expect to see, and the default sphere on top of it.

     

    What I did:

     1) Created a new unit called "VortexUnit", race Protoss, object type Unit.  Edited some flags like cannot be clicked, cannot be targeted, invulnerable, and so forth.

    2) Created an actor called "VortexActor", added an event on UnitBirth.VortexUnit - Create, and on UnitDeath.VortexUnit - Destroy.  Set the Art: Model field to "Vortex Model" (which then links to "Assets\Effects\Protoss\SingularityAreaImpact\SingularityAreaImpact.m3").

    3) Added a trigger to create 1 "VortexUnit" at a point, and tested the map.

     

    So I must have missed a step or two.  Could anyone help fill in what I need to do?

    Posted in: General Chat
  • 0

    posted a message on UI Error in All Maps

    Thanks, I know it's not a problem for my map functioning correctly on Battle.net, I was just wondering if there was a way to get that annoying error message to go away.

    Posted in: General Chat
  • 0

    posted a message on UI Error in All Maps

    All my old maps and blank new maps that I create have this UI error.  I'm wondering if other people have this problem, and/or if there's an easy fix.

     

    UI: File [StandardDialog.SC2Layout] Line [189] Column [9]. Unknown type attribute [Browser] for: [Browser].

     

    Posted in: General Chat
  • 0

    posted a message on Starcraft 2 - Square Root Function Behaviour

    Thanks, the specification for their fixed type is very helpful.  I will investigate further in my spare time :)

     

    It looks like it's very simple knowing that.  Reproducing SC2's results was as simple as (python again):

     

    def frac(x, den):
        num = int(x*den)
        return num/den
    
    def to_fixed(x):
        return frac(x, 4096)
    
    def sc2_sqrt(x):
        return to_fixed(to_fixed(x)**0.5)

     

    This function sc2_sqrt(x) produces the same results as SC2 now.

     

     

    The real moral here is just that SC2 uses a fixed-precision data type as described by Talv.  If any unusual behavior comes up, it's because of how the values are stored.

    Posted in: General Chat
  • 0

    posted a message on Starcraft 2 - Square Root Function Behaviour

    I was recently exposed to the oddity of the SquareRoot function in Starcraft 2's Engine.

     

    For example

    SquareRoot(10.5) ==> 3.2402

    This is quite far, and in a strange manner so, from the correct value (computed from a python console):

     

    10.5**0.5 = 3.24037034920393


    However, it seems to do better with integers (though I am still using the fixed/real version), for example
    it computes the square root of 24 as 4.899, which is accurate at least to that many digits.

     

    Does anyone know what this function is actually doing?  Is there a way to find out?  This is quite curious.

    Posted in: General Chat
  • 0

    posted a message on GAx3 Trigger Source Code? Dependency Problems

    Thanks for all your help, I already wrote a quick script to clean up that file.  (Of course I can re-link the GAx3 on Battle.net, this is more for educational purposes.)

     

    input_filename = 'GAx3.Galaxy'
    output_filename = 'GAx3_formatted.Galaxy'
    
    TAB = '\t'
    indent_level = 0
    line_buffer = ''
    with open(input_filename, 'r') as fin:
       with open(output_filename, 'w') as fout:
          for line in fin:
             for c in line:
                if line_buffer == '':
                   if c.strip() == '':
                      continue
                   else:
                      line_buffer += TAB*indent_level
                if c == ';':
                   line_buffer += c
                   fout.write(line_buffer + '\n')
                   line_buffer = ''
                elif c == '{':
                   line_buffer += c
                   fout.write(line_buffer + '\n')
                   line_buffer = ''
                   indent_level += 1
                elif c == '}':
                   indent_level -= 1
                   line_buffer = line_buffer[:-len(TAB)]
                   line_buffer += c
                   fout.write(line_buffer + '\n')
                   if indent_level == 0:
                      fout.write('\n')
                   line_buffer = ''
                elif c == ',':
                   line_buffer += c + ' '
                else:
                   line_buffer += c
             if line_buffer.strip():
                fout.write(line_buffer + '\n')
                line_buffer = ''

     

     

    Posted in: General Chat
  • 0

    posted a message on GAx3 Trigger Source Code? Dependency Problems

    Oh dear me, I thought I had checked both files... Aieee

     

    Ahah! Now I see the issue.  I really hoped I wasn't that stupid...  The first line of that file is hiding almost all the function definitions.  At least on my system (Windows 10, Notepad++), line 1 is 18K+ characteres long.  I scrolled right past all the important code.

    Posted in: General Chat
  • 0

    posted a message on GAx3 Trigger Source Code? Dependency Problems

    Oh wow! Thanks Talv.  I tried various options on that pulldown menu and couldn't find it, but I didn't try "Map/Mod Name" for some reason.

     

    If that's really the library source, is it being obfuscated in a sneaky way?  I read through that file pretty carefully before, it looks something like this for me:

     

    //--------------------------------------------------------------------------------------------------
    // Library: GAx3
    //--------------------------------------------------------------------------------------------------
    // Variables
    string[256] libGAx3_gv_cC_Cheats;
    string[256] libGAx3_gv_cC_CheatIcons;
    bool[256] libGAx3_gv_cC_CheatNoNeedManual;
    int libGAx3_gv_cC_CheatCount;
    string libGAx3_gv_cC_File;
    string libGAx3_gv_cC_FileOver;
    int libGAx3_gv_cC_Player;
    int libGAx3_gv_cC_List;
    int libGAx3_gv_cC_Edit;
    int libGAx3_gv_cC_Button;
    bool libGAx3_gv_display_Mode_All;
    int libGAx3_gv_cC_UI;
    
    void libGAx3_InitVariables () {
        int init_i;
    
        init_i = 0;
        while (init_i <= 255) {
            libGAx3_gv_cC_Cheats[init_i] = "";
            init_i = init_i + 1;
        }
        init_i = 0;
        while (init_i <= 255) {
            libGAx3_gv_cC_CheatIcons[init_i] = "";
            init_i = init_i + 1;
        }
        init_i = 0;
        while (init_i <= 255) {
            libGAx3_gv_cC_CheatNoNeedManual[init_i] = true;
            init_i = init_i + 1;
        }
        libGAx3_gv_cC_CheatCount = 0;
        libGAx3_gv_cC_File = "Assets\\Textures\\ui_button_navsmall_right_normalpressed_terran.dds";
        libGAx3_gv_cC_FileOver = "Assets\\Textures\\ui_button_nav_right_normaloverpressedover_terran.dds";
        libGAx3_gv_cC_Player = 0;
        libGAx3_gv_cC_List = c_invalidDialogControlId;
        libGAx3_gv_cC_Edit = c_invalidDialogControlId;
        libGAx3_gv_cC_Button = c_invalidDialogControlId;
        libGAx3_gv_display_Mode_All = true;
        libGAx3_gv_cC_UI = c_invalidDialogId;
    }
    
    // Function Declarations
    void libGAx3_gf_InsetCheatRecord (string lp_cheat, text lp_description);
    void libGAx3_gf_CreateOneWaySightBlocker (point lp_point);
    
    // Trigger Declarations
    trigger libGAx3_gt_LetsJustBugOutAndKillThemALl;
    trigger libGAx3_gt_InitCC;
    trigger libGAx3_gt_Data;
    trigger libGAx3_gt_CCUI;
    trigger libGAx3_gt_CCDisplay;
    trigger libGAx3_gt_CCItemSelected;
    trigger libGAx3_gt_CCCheatSubmit;
    trigger libGAx3_gt_CCCheatSubmitShorcut;
    trigger libGAx3_gt_ResumeXPGaining;
    
    // Custom Script
    //--------------------------------------------------------------------------------------------------
    // Custom Script: Custom Script
    //--------------------------------------------------------------------------------------------------
    include "TriggerLibs/GAx3"
    
    void libGAx3_InitCustomScript () {
    }
    
    // Functions
    void libGAx3_gf_InsetCheatRecord (string lp_cheat, text lp_description) {
        // Implementation
        libGAx3_gv_cC_CheatCount+=1;
        libGAx3_gv_cC_Cheats[libGAx3_gv_cC_CheatCount] = lp_cheat;
    }
    
    void libGAx3_gf_CreateOneWaySightBlocker (point lp_point) {
        // Implementation
        UnitCreate(1, "OneWayLOSBlocker1x1", c_unitCreateIgnorePlacement, 1, lp_point, 270.0);
    }
    
    // Triggers
    //--------------------------------------------------------------------------------------------------
    // Trigger: LetsJustBugOutAndKillThemALl
    //--------------------------------------------------------------------------------------------------
    bool libGAx3_gt_LetsJustBugOutAndKillThemALl_Func (bool testConds, bool runActions) {
        // Conditions
        if (testConds) {
            if (!((GameIsTestMap(false) == false))) {
                return false;
            }
        }
    
        // Actions
        if (!runActions) {
            return true;
        }
    
        TriggerDestroy(libGAx3_gt_CCCheatSubmit);
        TriggerDestroy(libGAx3_gt_CCCheatSubmitShorcut);
        TriggerDestroy(libGAx3_gt_CCDisplay);
        TriggerDestroy(libGAx3_gt_CCItemSelected);
        TriggerDestroy(libGAx3_gt_CCUI);
        TriggerDestroy(libGAx3_gt_Data);
        TriggerDestroy(libGAx3_gt_InitCC);
        TriggerDestroy(libGAx3_gt_LetsJustBugOutAndKillThemALl);
        return true;
    }
    
    //--------------------------------------------------------------------------------------------------
    void libGAx3_gt_LetsJustBugOutAndKillThemALl_Init () {
        libGAx3_gt_LetsJustBugOutAndKillThemALl = TriggerCreate("libGAx3_gt_LetsJustBugOutAndKillThemALl_Func");
        TriggerAddEventMapInit(libGAx3_gt_LetsJustBugOutAndKillThemALl);
    }
    
    //--------------------------------------------------------------------------------------------------
    // Trigger: Init CC
    //--------------------------------------------------------------------------------------------------
    bool libGAx3_gt_InitCC_Func (bool testConds, bool runActions) {
        // Conditions
        if (testConds) {
            if (!((GameIsTestMap(false) == true))) {
                return false;
            }
        }
    
        // Actions
        if (!runActions) {
            return true;
        }
    
        TriggerExecute(libGAx3_gt_Data, true, true);
        TriggerExecute(libGAx3_gt_CCUI, true, true);
        TriggerEnable(libGAx3_gt_CCDisplay, true);
        TriggerEnable(libGAx3_gt_CCItemSelected, true);
        TriggerEnable(libGAx3_gt_CCCheatSubmit, true);
        TriggerEnable(libGAx3_gt_CCCheatSubmitShorcut, true);
        TriggerDebugOutput(1, StringExternal("Param/Value/lib_GAx3_2CE456A8"), false);
        return true;
    }
    
    //--------------------------------------------------------------------------------------------------
    void libGAx3_gt_InitCC_Init () {
        libGAx3_gt_InitCC = TriggerCreate("libGAx3_gt_InitCC_Func");
        TriggerAddEventMapInit(libGAx3_gt_InitCC);
    }
    
    //--------------------------------------------------------------------------------------------------
    // Trigger: Data
    //--------------------------------------------------------------------------------------------------
    bool libGAx3_gt_Data_Func (bool testConds, bool runActions) {
        playergroup auto6109461D_g;
        int auto6109461D_p;
        int autoD74E8256_ae;
        int autoD74E8256_ai;
        int auto0AC15BE7_ae;
        int auto0AC15BE7_ai;
        int auto37B9C984_ae;
        int auto37B9C984_ai;
        int auto1A078F8D_ae;
        int auto1A078F8D_ai;
        int autoCDEBBED9_ae;
        int autoCDEBBED9_ai;
        int auto6FC15A65_ae;
        int auto6FC15A65_ai;
        int autoCC430D97_ae;
        int autoCC430D97_ai;
        int auto18BA06AE_ae;
        int auto18BA06AE_ai;
    
        // Variable Declarations
        playergroup lv_pG;
        int lv_p;
        int lv_i;
    
        // Variable Initialization
        lv_pG = PlayerGroupActive();
        lv_p = 0;
        lv_i = 0;
    
        // Actions
        if (!runActions) {
            return true;
        }
    
        auto6109461D_g = lv_pG;
        auto6109461D_p = 1;
        while (auto6109461D_p <= PlayerGroupCount(auto6109461D_g)) {
            lv_p = PlayerGroupPlayer(auto6109461D_g, auto6109461D_p);
            if ((PlayerType(lv_p) == c_playerTypeUser)) {
                libGAx3_gv_cC_Player = lv_p;
                break;
            }
            else {
            }
            if (lv_p == PlayerGroupPlayer(auto6109461D_g, auto6109461D_p)) {
                auto6109461D_p = auto6109461D_p + 1;
            }
        }
        if ((PlayerRace(libGAx3_gv_cC_Player) == "Prot")) {
            libGAx3_gv_cC_File = "Assets\\Textures\\ui_button_navsmall_right_normalpressed_protoss.dds";
            libGAx3_gv_cC_FileOver = "Assets\\Textures\\ui_button_navsmall_right_normaloverpressedover_protoss.dds";
        }
        else {
        }
        if ((PlayerRace(libGAx3_gv_cC_Player) == "Zerg")) {
            libGAx3_gv_cC_File = "Assets\\Textures\\ui_button_navsmall_right_normalpressed_zerg.dds";
            libGAx3_gv_cC_FileOver = "Assets\\Textures\\ui_button_navsmall_right_normaloverpressedover_zerg.dds";
        }
        else {
        }
        libGAx3_gf_InsetCheatRecord("Ally", StringExternal("Param/Value/lib_GAx3_74104E47"));
        libGAx3_gf_InsetCheatRecord("AllianceDefeat", StringExternal("Param/Value/lib_GAx3_6662D06E"));
        libGAx3_gf_InsetCheatRecord("AllianceControl", StringExternal("Param/Value/lib_GAx3_2003D5FF"));
        libGAx3_gf_InsetCheatRecord("AllianceGiveHelp", StringExternal("Param/Value/lib_GAx3_BD146345"));
        libGAx3_gf_InsetCheatRecord("AlliancePassive", StringExternal("Param/Value/lib_GAx3_248B4183"));
        libGAx3_gf_InsetCheatRecord("AlliancePushable", StringExternal("Param/Value/lib_GAx3_A2A6333B"));
        libGAx3_gf_InsetCheatRecord("AllianceSeekHelp", StringExternal("Param/Value/lib_GAx3_E484E3BA"));
        libGAx3_gf_InsetCheatRecord("AllianceSpend", StringExternal("Param/Value/lib_GAx3_6ECF02E9"));
        libGAx3_gf_InsetCheatRecord("AllianceTrade", StringExternal("Param/Value/lib_GAx3_945FA06D"));
        libGAx3_gf_InsetCheatRecord("AllianceVision", StringExternal("Param/Value/lib_GAx3_C558CE62"));
        libGAx3_gf_InsetCheatRecord("BehaviorAdd", StringExternal("Param/Value/lib_GAx3_8CE64BDA"));
        libGAx3_gf_InsetCheatRecord("BehaviorDuration", StringExternal("Param/Value/lib_GAx3_D914F285"));
        libGAx3_gf_InsetCheatRecord("BehaviorRemove", StringExternal("Param/Value/lib_GAx3_8339737F"));
        libGAx3_gf_InsetCheatRecord("Effect", StringExternal("Param/Value/lib_GAx3_CF3F6819"));
        libGAx3_gf_InsetCheatRecord("DestroyPersistent", StringExternal("Param/Value/lib_GAx3_C4FB2E6E"));
        libGAx3_gf_InsetCheatRecord("DeathAll", StringExternal("Param/Value/lib_GAx3_AA199127"));
        libGAx3_gf_InsetCheatRecord("DeathExcept", StringExternal("Param/Value/lib_GAx3_37F36C69"));
        libGAx3_gf_InsetCheatRecord("DeathSide", StringExternal("Param/Value/lib_GAx3_6BE08DAA"));
        libGAx3_gf_InsetCheatRecord("DeathUnit", StringExternal("Param/Value/lib_GAx3_3F8D05F1"));
        libGAx3_gf_InsetCheatRecord("Fidget", StringExternal("Param/Value/lib_GAx3_E16D7882"));
        libGAx3_gf_InsetCheatRecord("Loot", StringExternal("Param/Value/lib_GAx3_0AF8F24F"));
        libGAx3_gf_InsetCheatRecord("MakeUnit", StringExternal("Param/Value/lib_GAx3_9866BE82"));
        libGAx3_gf_InsetCheatRecord("Move", StringExternal("Param/Value/lib_GAx3_F99380C4"));
        libGAx3_gf_InsetCheatRecord("Order", StringExternal("Param/Value/lib_GAx3_B6DCD12B"));
        libGAx3_gf_InsetCheatRecord("Owner", StringExternal("Param/Value/lib_GAx3_4A215279"));
        libGAx3_gf_InsetCheatRecord("SetAll", StringExternal("Param/Value/lib_GAx3_AAA7FAB3"));
        libGAx3_gf_InsetCheatRecord("SetLife", StringExternal("Param/Value/lib_GAx3_A7870B22"));
        libGAx3_gf_InsetCheatRecord("SetEnergy", StringExternal("Param/Value/lib_GAx3_16C1C528"));
        libGAx3_gf_InsetCheatRecord("SetShields", StringExternal("Param/Value/lib_GAx3_E95B09A0"));
        libGAx3_gf_InsetCheatRecord("SetResource", StringExternal("Param/Value/lib_GAx3_B10B7E4E"));
        libGAx3_gf_InsetCheatRecord("XP", StringExternal("Param/Value/lib_GAx3_680C9C82"));
        libGAx3_gf_InsetCheatRecord("Charges", StringExternal("Param/Value/lib_GAx3_0016EBF9"));
        libGAx3_gf_InsetCheatRecord("Cooldown", StringExternal("Param/Value/lib_GAx3_5F8537AA"));
        libGAx3_gf_InsetCheatRecord("FastBuild", StringExternal("Param/Value/lib_GAx3_2E3BFE94"));
        libGAx3_gf_InsetCheatRecord("FastHeal", StringExternal("Param/Value/lib_GAx3_735FB644"));
        libGAx3_gf_InsetCheatRecord("Free", StringExternal("Param/Value/lib_GAx3_9EE1FA64"));
        libGAx3_gf_InsetCheatRecord("Food", StringExternal("Param/Value/lib_GAx3_C0111595"));
        libGAx3_gf_InsetCheatRecord("God", StringExternal("Param/Value/lib_GAx3_B64A3867"));
        libGAx3_gf_InsetCheatRecord("ShowMap", StringExternal("Param/Value/lib_GAx3_F871D6AB"));
        libGAx3_gf_InsetCheatRecord("Speed", StringExternal("Param/Value/lib_GAx3_7A81A696"));
        libGAx3_gf_InsetCheatRecord("TechTree", StringExternal("Param/Value/lib_GAx3_B2006209"));
        libGAx3_gf_InsetCheatRecord("NoDefeat", StringExternal("Param/Value/lib_GAx3_6E7F6F65"));
        libGAx3_gf_InsetCheatRecord("NoVictory", StringExternal("Param/Value/lib_GAx3_AE4991AA"));
        libGAx3_gf_InsetCheatRecord("TimeOfDay", StringExternal("Param/Value/lib_GAx3_03441D78"));
        libGAx3_gf_InsetCheatRecord("TimeOfDayRate", StringExternal("Param/Value/lib_GAx3_41894981"));
        libGAx3_gf_InsetCheatRecord("Creep", StringExternal("Param/Value/lib_GAx3_54CF3EC2"));
        libGAx3_gf_InsetCheatRecord("Uncreep", StringExternal("Param/Value/lib_GAx3_FD8CA178"));
        libGAx3_gf_InsetCheatRecord("DamageDealt", StringExternal("Param/Value/lib_GAx3_994E0B23"));
        libGAx3_gf_InsetCheatRecord("DamageTaken", StringExternal("Param/Value/lib_GAx3_A8D1848F"));
        libGAx3_gf_InsetCheatRecord("Minerals", StringExternal("Param/Value/lib_GAx3_99454316"));
        libGAx3_gf_InsetCheatRecord("ResourceCustom", StringExternal("Param/Value/lib_GAx3_2642A6A3"));
        libGAx3_gf_InsetCheatRecord("Terrazine", StringExternal("Param/Value/lib_GAx3_CD293DFA"));
        libGAx3_gf_InsetCheatRecord("Vespene", StringExternal("Param/Value/lib_GAx3_83E9B544"));
        libGAx3_gf_InsetCheatRecord("Upgrade", StringExternal("Param/Value/lib_GAx3_08695022"));
        libGAx3_gf_InsetCheatRecord("Defeat", StringExternal("Param/Value/lib_GAx3_8F8055F3"));
        libGAx3_gf_InsetCheatRecord("Tie", StringExternal("Param/Value/lib_GAx3_4AFD2C5B"));
        libGAx3_gf_InsetCheatRecord("Undecided", StringExternal("Param/Value/lib_GAx3_5B9BCB40"));
        libGAx3_gf_InsetCheatRecord("Victory", StringExternal("Param/Value/lib_GAx3_1F08BAAA"));
        libGAx3_gf_InsetCheatRecord("TrigDebug", StringExternal("Param/Value/lib_GAx3_311389DC"));
        libGAx3_gf_InsetCheatRecord("TrigRun", StringExternal("Param/Value/lib_GAx3_2DFC30DF"));
        libGAx3_gf_InsetCheatRecord("ActorCreateAt", StringExternal("Param/Value/lib_GAx3_960DED7A"));
        libGAx3_gf_InsetCheatRecord("ActorCreateAtCursor", StringExternal("Param/Value/lib_GAx3_6C86273A"));
        libGAx3_gf_InsetCheatRecord("ActorDumpAutoCreates", StringExternal("Param/Value/lib_GAx3_810FD26B"));
        libGAx3_gf_InsetCheatRecord("ActorDumpEvents", StringExternal("Param/Value/lib_GAx3_EF7414B5"));
        libGAx3_gf_InsetCheatRecord("ActorDumpLeakRisks", StringExternal("Param/Value/lib_GAx3_7A2BEBC6"));
        libGAx3_gf_InsetCheatRecord("ActorDumpLive", StringExternal("Param/Value/lib_GAx3_B61F6DE5"));
        libGAx3_gf_InsetCheatRecord("ActorScopeDumpLive", StringExternal("Param/Value/lib_GAx3_8111ADDE"));
        libGAx3_gf_InsetCheatRecord("ActorFrom", StringExternal("Param/Value/lib_GAx3_69F52A3B"));
        libGAx3_gf_InsetCheatRecord("ActorFromActor", StringExternal("Param/Value/lib_GAx3_73E1A370"));
        libGAx3_gf_InsetCheatRecord("ActorScopeFrom", StringExternal("Param/Value/lib_GAx3_65D3840B"));
        libGAx3_gf_InsetCheatRecord("ActorKillAll", StringExternal("Param/Value/lib_GAx3_D3FF0AA9"));
        libGAx3_gf_InsetCheatRecord("ActorKillClass", StringExternal("Param/Value/lib_GAx3_88ED5D2E"));
        libGAx3_gf_InsetCheatRecord("ActorKillLink", StringExternal("Param/Value/lib_GAx3_236CC0B9"));
        libGAx3_gf_InsetCheatRecord("ActorScopeKill", StringExternal("Param/Value/lib_GAx3_95316250"));
        libGAx3_gf_InsetCheatRecord("ActorScopeOrphan", StringExternal("Param/Value/lib_GAx3_1F7C1079"));
        libGAx3_gf_InsetCheatRecord("ActorSend", StringExternal("Param/Value/lib_GAx3_D1BEF5C8"));
        libGAx3_gf_InsetCheatRecord("ActorSendTo", StringExternal("Param/Value/lib_GAx3_7D65C2FB"));
        libGAx3_gf_InsetCheatRecord("ActorScopeSend", StringExternal("Param/Value/lib_GAx3_8058BAE2"));
        libGAx3_gf_InsetCheatRecord("ActorUsersDump", StringExternal("Param/Value/lib_GAx3_D727D905"));
        libGAx3_gf_InsetCheatRecord("ActorUsersFromHoverTarget", StringExternal("Param/Value/lib_GAx3_B4834524"));
        libGAx3_gf_InsetCheatRecord("ActorUsersFromPortraitGame", StringExternal("Param/Value/lib_GAx3_3B87B5CA"));
        libGAx3_gf_InsetCheatRecord("ActorUsersFromSelection", StringExternal("Param/Value/lib_GAx3_3F1A32B4"));
        libGAx3_gf_InsetCheatRecord("ActorWorldParticleFXDestroy", StringExternal("Param/Value/lib_GAx3_A9514F2B"));
        autoD74E8256_ae = 10;
        autoD74E8256_ai = 1;
        lv_i = 1;
        while ((autoD74E8256_ai >= 0 && lv_i <= autoD74E8256_ae) || (autoD74E8256_ai <= 0 && lv_i >= autoD74E8256_ae)) {
            libGAx3_gv_cC_CheatIcons[lv_i] = "EditorData\\Images\\TriggerLabels\\PlayerGroup.tga";
            if (lv_i == autoD74E8256_ae) {
                break;
            }
            lv_i = lv_i + autoD74E8256_ai;
        }
        auto0AC15BE7_ae = 31;
        auto0AC15BE7_ai = 1;
        lv_i = 11;
        while ((auto0AC15BE7_ai >= 0 && lv_i <= auto0AC15BE7_ae) || (auto0AC15BE7_ai <= 0 && lv_i >= auto0AC15BE7_ae)) {
            libGAx3_gv_cC_CheatIcons[lv_i] = "EditorData\\Images\\TriggerLabels\\Unit.tga";
            if (lv_i == auto0AC15BE7_ae) {
                break;
            }
            lv_i = lv_i + auto0AC15BE7_ai;
        }
        auto37B9C984_ae = 43;
        auto37B9C984_ai = 1;
        lv_i = 32;
        while ((auto37B9C984_ai >= 0 && lv_i <= auto37B9C984_ae) || (auto37B9C984_ai <= 0 && lv_i >= auto37B9C984_ae)) {
            libGAx3_gv_cC_CheatIcons[lv_i] = "EditorData\\Images\\TriggerLabels\\Gear.tga";
            if (lv_i == auto37B9C984_ae) {
                break;
            }
            lv_i = lv_i + auto37B9C984_ai;
        }
        auto1A078F8D_ae = 47;
        auto1A078F8D_ai = 1;
        lv_i = 44;
        while ((auto1A078F8D_ai >= 0 && lv_i <= auto1A078F8D_ae) || (auto1A078F8D_ai <= 0 && lv_i >= auto1A078F8D_ae)) {
            libGAx3_gv_cC_CheatIcons[lv_i] = "EditorData\\Images\\TriggerLabels\\Environment.tga";
            if (lv_i == auto1A078F8D_ae) {
                break;
            }
            lv_i = lv_i + auto1A078F8D_ai;
        }
        autoCDEBBED9_ae = 58;
        autoCDEBBED9_ai = 1;
        lv_i = 48;
        while ((autoCDEBBED9_ai >= 0 && lv_i <= autoCDEBBED9_ae) || (autoCDEBBED9_ai <= 0 && lv_i >= autoCDEBBED9_ae)) {
            libGAx3_gv_cC_CheatIcons[lv_i] = "EditorData\\Images\\TriggerLabels\\Player.tga";
            if (lv_i == autoCDEBBED9_ae) {
                break;
            }
            lv_i = lv_i + autoCDEBBED9_ai;
        }
        auto6FC15A65_ae = 60;
        auto6FC15A65_ai = 1;
        lv_i = 59;
        while ((auto6FC15A65_ai >= 0 && lv_i <= auto6FC15A65_ae) || (auto6FC15A65_ai <= 0 && lv_i >= auto6FC15A65_ae)) {
            libGAx3_gv_cC_CheatIcons[lv_i] = "EditorData\\Images\\TriggerLabels\\Code.tga";
            if (lv_i == auto6FC15A65_ae) {
                break;
            }
            lv_i = lv_i + auto6FC15A65_ai;
        }
        autoCC430D97_ae = 83;
        autoCC430D97_ai = 1;
        lv_i = 61;
        while ((autoCC430D97_ai >= 0 && lv_i <= autoCC430D97_ae) || (autoCC430D97_ai <= 0 && lv_i >= autoCC430D97_ae)) {
            libGAx3_gv_cC_CheatIcons[lv_i] = "EditorData\\Images\\PreviewerActor.tga";
            if (lv_i == autoCC430D97_ae) {
                break;
            }
            lv_i = lv_i + autoCC430D97_ai;
        }
        auto18BA06AE_ae = 31;
        auto18BA06AE_ai = 1;
        lv_i = 11;
        while ((auto18BA06AE_ai >= 0 && lv_i <= auto18BA06AE_ae) || (auto18BA06AE_ai <= 0 && lv_i >= auto18BA06AE_ae)) {
            libGAx3_gv_cC_CheatNoNeedManual[lv_i] = false;
            if (lv_i == auto18BA06AE_ae) {
                break;
            }
            lv_i = lv_i + auto18BA06AE_ai;
        }
        libGAx3_gv_cC_CheatNoNeedManual[15] = true;
        libGAx3_gv_cC_CheatNoNeedManual[16] = true;
        libGAx3_gv_cC_CheatNoNeedManual[22] = true;
        libGAx3_gv_cC_CheatNoNeedManual[24] = true;
        return true;
    }
    
    //--------------------------------------------------------------------------------------------------
    void libGAx3_gt_Data_Init () {
        libGAx3_gt_Data = TriggerCreate("libGAx3_gt_Data_Func");
    }
    
    //--------------------------------------------------------------------------------------------------
    // Trigger: CC UI
    //--------------------------------------------------------------------------------------------------
    bool libGAx3_gt_CCUI_Func (bool testConds, bool runActions) {
        int auto8CDDA841_ae;
        int auto8CDDA841_ai;
    
        // Variable Declarations
        int lv_i;
    
        // Variable Initialization
        lv_i = 0;
    
        // Actions
        if (!runActions) {
            return true;
        }
    
        DialogCreate(500, 500, c_anchorTopRight, 0, 100, false);
        libGAx3_gv_cC_UI = DialogLastCreated();
        DialogSetVisible(libGAx3_gv_cC_UI, PlayerGroupAll(), false);
        DialogControlCreate(libGAx3_gv_cC_UI, c_triggerControlTypeListBox);
        libGAx3_gv_cC_List = DialogControlLastCreated();
        DialogControlSetSize(libGAx3_gv_cC_List, PlayerGroupAll(), 500, 400);
        libNtve_gf_CreateDialogItemButton(libGAx3_gv_cC_UI, 200, 50, c_anchorBottomRight, 0, 50, StringExternal("Param/Value/lib_GAx3_8FDE3C4A"), StringExternal("Param/Value/lib_GAx3_03DCD302"), libGAx3_gv_cC_FileOver);
        libGAx3_gv_cC_Button = DialogControlLastCreated();
        libNtve_gf_SetDialogItemImageType(libGAx3_gv_cC_Button, c_triggerImageTypeEndCap, PlayerGroupAll());
        libNtve_gf_SetDialogItemImage(libGAx3_gv_cC_Button, libGAx3_gv_cC_File, PlayerGroupAll());
        DialogControlCreate(libGAx3_gv_cC_UI, c_triggerControlTypeEditBox);
        libGAx3_gv_cC_Edit = DialogControlLastCreated();
        DialogControlSetSize(libGAx3_gv_cC_Edit, PlayerGroupAll(), 300, 50);
        DialogControlSetPosition(libGAx3_gv_cC_Edit, PlayerGroupAll(), c_anchorBottomLeft, 0, 50);
        auto8CDDA841_ae = libGAx3_gv_cC_CheatCount;
        auto8CDDA841_ai = 1;
        lv_i = 1;
        while ((auto8CDDA841_ai >= 0 && lv_i <= auto8CDDA841_ae) || (auto8CDDA841_ai <= 0 && lv_i >= auto8CDDA841_ae)) {
            DialogControlAddItem(libGAx3_gv_cC_List, PlayerGroupAll(), (StringExternal("Param/Value/lib_GAx3_B8402168") + StringToText(libGAx3_gv_cC_CheatIcons[lv_i]) + StringExternal("Param/Value/lib_GAx3_371E79DC") + StringToText(libGAx3_gv_cC_Cheats[lv_i])));
            if (lv_i == auto8CDDA841_ae) {
                break;
            }
            lv_i = lv_i + auto8CDDA841_ai;
        }
        DialogSetImageVisible(libGAx3_gv_cC_UI, false);
        return true;
    }
    
    //--------------------------------------------------------------------------------------------------
    void libGAx3_gt_CCUI_Init () {
        libGAx3_gt_CCUI = TriggerCreate("libGAx3_gt_CCUI_Func");
    }
    
    //--------------------------------------------------------------------------------------------------
    // Trigger: CC Display
    //--------------------------------------------------------------------------------------------------
    bool libGAx3_gt_CCDisplay_Func (bool testConds, bool runActions) {
        // Variable Declarations
        bool lv_state;
    
        // Variable Initialization
        lv_state = DialogIsVisible(libGAx3_gv_cC_UI, EventPlayer());
    
        // Actions
        if (!runActions) {
            return true;
        }
    
        DialogSetVisible(libGAx3_gv_cC_UI, PlayerGroupAll(), !lv_state);
        return true;
    }
    
    //--------------------------------------------------------------------------------------------------
    void libGAx3_gt_CCDisplay_Init () {
        libGAx3_gt_CCDisplay = TriggerCreate("libGAx3_gt_CCDisplay_Func");
        TriggerEnable(libGAx3_gt_CCDisplay, false);
        TriggerAddEventKeyPressed(libGAx3_gt_CCDisplay, c_playerAny, c_keyGrave, true, c_keyModifierStateIgnore, c_keyModifierStateIgnore, c_keyModifierStateIgnore);
    }
    
    //--------------------------------------------------------------------------------------------------
    // Trigger: CC Item Selected
    //--------------------------------------------------------------------------------------------------
    bool libGAx3_gt_CCItemSelected_Func (bool testConds, bool runActions) {
        // Variable Declarations
        int lv_index;
    
        // Variable Initialization
        lv_index = DialogControlGetSelectedItem(libGAx3_gv_cC_List, libGAx3_gv_cC_Player);
    
        // Conditions
        if (testConds) {
            if (!((EventDialogControl() == libGAx3_gv_cC_List))) {
                return false;
            }
        }
    
        // Actions
        if (!runActions) {
            return true;
        }
    
        DialogControlSetEnabled(libGAx3_gv_cC_Button, PlayerGroupAll(), libGAx3_gv_cC_CheatNoNeedManual[lv_index]);
        libNtve_gf_SetDialogItemEditorValue(libGAx3_gv_cC_Edit, libGAx3_gv_cC_Cheats[lv_index], PlayerGroupAll());
        if ((lv_index <= 10)) {
            libNtve_gf_SetDialogItemEditorValue(libGAx3_gv_cC_Edit, (libGAx3_gv_cC_Cheats[lv_index] + " -1 " + IntToString(libGAx3_gv_cC_Player)), PlayerGroupAll());
        }
        else {
        }
        if ((lv_index == 38)) {
            libNtve_gf_SetDialogItemEditorValue(libGAx3_gv_cC_Edit, (libGAx3_gv_cC_Cheats[lv_index] + " " + IntToString(libGAx3_gv_cC_Player)), PlayerGroupAll());
        }
        else {
        }
        if ((lv_index == 48)) {
            libNtve_gf_SetDialogItemEditorValue(libGAx3_gv_cC_Edit, (libGAx3_gv_cC_Cheats[lv_index] + " 10 " + IntToString(libGAx3_gv_cC_Player)), PlayerGroupAll());
        }
        else {
        }
        if ((lv_index == 49)) {
            libNtve_gf_SetDialogItemEditorValue(libGAx3_gv_cC_Edit, (libGAx3_gv_cC_Cheats[lv_index] + " 0 " + IntToString(libGAx3_gv_cC_Player)), PlayerGroupAll());
        }
        else {
        }
        if ((lv_index >= 55) && (lv_index <= 58)) {
            libNtve_gf_SetDialogItemEditorValue(libGAx3_gv_cC_Edit, (libGAx3_gv_cC_Cheats[lv_index] + " " + IntToString(libGAx3_gv_cC_Player)), PlayerGroupAll());
        }
        else {
        }
        return true;
    }
    
    //--------------------------------------------------------------------------------------------------
    void libGAx3_gt_CCItemSelected_Init () {
        libGAx3_gt_CCItemSelected = TriggerCreate("libGAx3_gt_CCItemSelected_Func");
        TriggerEnable(libGAx3_gt_CCItemSelected, false);
        TriggerAddEventDialogControl(libGAx3_gt_CCItemSelected, c_playerAny, c_invalidDialogControlId, c_triggerControlEventTypeSelectionChanged);
    }
    
    //--------------------------------------------------------------------------------------------------
    // Trigger: CC Cheat Submit
    //--------------------------------------------------------------------------------------------------
    bool libGAx3_gt_CCCheatSubmit_Func (bool testConds, bool runActions) {
        // Conditions
        if (testConds) {
            if (!((EventDialogControl() == libGAx3_gv_cC_Button))) {
                return false;
            }
        }
    
        // Actions
        if (!runActions) {
            return true;
        }
    
        ConsoleCommand(libNtve_gf_DialogItemEditValue(libGAx3_gv_cC_Edit, libGAx3_gv_cC_Player), true, true);
        return true;
    }
    
    //--------------------------------------------------------------------------------------------------
    void libGAx3_gt_CCCheatSubmit_Init () {
        libGAx3_gt_CCCheatSubmit = TriggerCreate("libGAx3_gt_CCCheatSubmit_Func");
        TriggerEnable(libGAx3_gt_CCCheatSubmit, false);
        TriggerAddEventDialogControl(libGAx3_gt_CCCheatSubmit, c_playerAny, c_invalidDialogControlId, c_triggerControlEventTypeClick);
    }
    
    //--------------------------------------------------------------------------------------------------
    // Trigger: CC Cheat Submit Shorcut
    //--------------------------------------------------------------------------------------------------
    bool libGAx3_gt_CCCheatSubmitShorcut_Func (bool testConds, bool runActions) {
        // Conditions
        if (testConds) {
            if (!((DialogIsVisible(libGAx3_gv_cC_UI, libGAx3_gv_cC_Player) == true))) {
                return false;
            }
    
            if (!((DialogControlIsEnabled(libGAx3_gv_cC_Button, libGAx3_gv_cC_Player) == true))) {
                return false;
            }
        }
    
        // Actions
        if (!runActions) {
            return true;
        }
    
        SoundPlay(SoundLink("UI_BnetDefaultClick", -1), PlayerGroupAll(), 100.0, 0.0);
        TriggerExecute(libGAx3_gt_CCCheatSubmit, false, false);
        return true;
    }
    
    //--------------------------------------------------------------------------------------------------
    void libGAx3_gt_CCCheatSubmitShorcut_Init () {
        libGAx3_gt_CCCheatSubmitShorcut = TriggerCreate("libGAx3_gt_CCCheatSubmitShorcut_Func");
        TriggerEnable(libGAx3_gt_CCCheatSubmitShorcut, false);
        TriggerAddEventKeyPressed(libGAx3_gt_CCCheatSubmitShorcut, c_playerAny, c_keyR, true, c_keyModifierStateIgnore, c_keyModifierStateIgnore, c_keyModifierStateIgnore);
    }
    
    //--------------------------------------------------------------------------------------------------
    // Trigger: Resume XP Gaining (Fix)
    //--------------------------------------------------------------------------------------------------
    bool libGAx3_gt_ResumeXPGaining_Func (bool testConds, bool runActions) {
        // Actions
        if (!runActions) {
            return true;
        }
    
        GAx3_ResumeXPGaining();
        TriggerDebugOutput(1,StringExternal("GAx3/LibInfo"),false);
        return true;
    }
    
    //--------------------------------------------------------------------------------------------------
    void libGAx3_gt_ResumeXPGaining_Init () {
        libGAx3_gt_ResumeXPGaining = TriggerCreate("libGAx3_gt_ResumeXPGaining_Func");
        TriggerAddEventMapInit(libGAx3_gt_ResumeXPGaining);
    }
    
    void libGAx3_InitTriggers () {
        libGAx3_gt_LetsJustBugOutAndKillThemALl_Init();
        libGAx3_gt_InitCC_Init();
        libGAx3_gt_Data_Init();
        libGAx3_gt_CCUI_Init();
        libGAx3_gt_CCDisplay_Init();
        libGAx3_gt_CCItemSelected_Init();
        libGAx3_gt_CCCheatSubmit_Init();
        libGAx3_gt_CCCheatSubmitShorcut_Init();
        libGAx3_gt_ResumeXPGaining_Init();
    }
    
    //--------------------------------------------------------------------------------------------------
    // Library Initialization
    //--------------------------------------------------------------------------------------------------
    bool libGAx3_InitLib_completed = false;
    
    void libGAx3_InitLib () {
        if (libGAx3_InitLib_completed) {
            return;
        }
    
        libGAx3_InitVariables();
        libGAx3_InitCustomScript();
        libGAx3_InitTriggers();
    
        libGAx3_InitLib_completed = true;
    }

     It really doesn't seem to be doing much, but I could have missed something.

    Posted in: General Chat
  • 0

    posted a message on GAx3 Trigger Source Code? Dependency Problems

    Hello,

     

    Some years ago I published a map to Battle.net using the GAx3 dependency.  Now that dependency is no longer available.  However, some game patches have caused bugs in my map, which I would like to fix.

     

    This means I need to re-create all the functionality that I was using from GAx3 for myself.  I was wondering if anyone knows how I can obtain the galaxy code for the functions defined in GAx3, perhaps by extracting something from the GAx3.SC2Mod file, which I was able to find on this site and open with Ladik's MPQ editor.  I looked around for the code there, but it seems it may be saved in an XML format instead, or somewhere else.  I'm not exactly sure where it is.  If anyone could point me in the right direction, that would be great.

     

     Is the file named "Triggers" (no extension) just an XML encoding of the source code?  Perhaps I should attempt to decode that and then I would be able to recreate the functions I need.

     

    Edit: I've looked a bit more into the Triggers XML file, I think it's just declaring all the functions and parameters, but not defining them.  So where is the source code?

    Posted in: General Chat
  • 0

    posted a message on Moving the Mission Timer

    @FunkyUserName: Go

    Awesome, thanks!

    Posted in: Triggers
  • 0

    posted a message on Moving the Mission Timer

    Still looking for an answer......

    Also can whoever deleted my other post and moved this to the wrong section kindly fuck off?

    Posted in: Triggers
  • 0

    posted a message on Moving the Mission Timer

    Like so many others of my questions on here, this one seems doomed to go unanswered.

    Perhaps a year later someone knows...?

    Posted in: UI Development
  • 0

    posted a message on Editor Won't Let Me Change Library ID??

    Lol wow you're right... I thought it was blocked from being checked but the keyboard worked, it just seems to be blocking mouse input.

    THAT'S SO WEIRD!

    Unfortunately I already rewrote the library functions that I needed myself instead, but thanks for the reply.

    Posted in: Triggers
  • 0

    posted a message on Editor Won't Let Me Change Library ID??

    Halp I'm going crazy... I can't use a library I'm trying to import because I can't even see or set the ID. The "use shared ID" is unclickable, as are the text boxes to type in an ID.

    pic

    Posted in: Triggers
  • To post a comment, please or register a new account.