• 0

    posted a message on SC2 Bank Issue

    You must explictly declare which banks you want to preload in map properties. There's option for it somewhere in menu, should be called "Preload info".


    In case of using Trigger GUI elements, the editor does that for you (at least it used to), but in case of raw script it doesn't, as it doesn't process it.


    btw. Small notice in regards to your code, when bank fails to verify it doesn't mean the data from it hasn't been loaded, but only that the signature check failed.
    And calling BankLoad again won't erase the data here (unless you do that manually by iterating over sections). Thus you likely want to call BankRemove after BankVerify fails. This guarantees it will be cleared.

    Posted in: Triggers
  • 0

    posted a message on Galaxy IDE as Visual Studio Code extension

    Extension for Visual Studio Code, it attempts to provide IDE-like capabilities for Galaxy Script.

    More about it: https://github.com/Talv/vscode-sc2-galaxy

    There are some screenies in README so you can just take a peek before considering using it.


    If you're not familiar with Visual Studio Code, don't mistake it with Visual Studio. These are totally different, despite the name. The former is totally free and pretty lightweight.

    Can be downloaded here:


    The extension itself is also published on marketplace, thus can be easly installed:


    The initial setup can be done within minutes, really.


    In the past I've attempted to build such extension for Sublime Text. But I failed in developing it further.. it was also awfully slow. The processing backend was written in Python, which isn't known to be fast.. though the slowness was mostly because of design mistakes I made in code parser.


    The new backend is written in TypeScript, and is at least x10 faster (I think way more, didn't really measure it). So the feedback is pretty robust - real time code diagnostic messages etc.

    I'm quite happy with the overall result. There's a lot that can be added though, and I do plan to work on it.


    Backend is LSP compilant, thus it could be ported to other editors with relatively low effort. But I don't plan it myself, as I'm totally settled on VS Code these days. I've been using Sublime and Atom in the past, but in the end I found VS Code to be superior.

    Posted in: Galaxy Scripting
  • 0.963887065003283

    posted a message on [solved]New Update broken Timer window (yes, galaxy script coded)

    You did alright. Apparently we're missing some relevant part of code.. try to add this:

    TimerWindowShowBorder(TimerWindowLastCreated(), true);

    (After TimerWindowCreate)

    Although it is likely that, this alone won't make the frame to appear.


    If you're saying that you do have VoidStory dependency then lets just use mentioned function. From what I can see the code looks correct in post #4. What was the error it printed?
    I suppose it could not work because VCUI library is not loaded. Some libraries aren't auto loaded until you actually take use of functions/triggers it exports. But it does that only when you use it through GUI elements.


    The easiest way to force autoload would be probably to have dummy trigger w/o any events. And just one action:
    Create Timer Window (Campaign)
    the one from UI (Void) library.
    Provide some fake arguments in order for it to compile.


    Once you do that the library should auto load, and all its functions will be accessible from custom script.

    Posted in: Galaxy Scripting
  • 0.963648380700595

    posted a message on [solved]New Update broken Timer window (yes, galaxy script coded)

    Mentioned function relies on several other functions and variables from VoidStory dependency. So you'll either have to copy-paste all of these, or attach the dependency itself into your map.


    If you wnat just the fix, this should do it:

    // ... THIS PART SHOULD COME AFTER TimerWindowCreate
    DialogControlHookupStandard(c_triggerControlTypePanel, "UIContainer\\ConsoleUIContainer\\TriggerWindowPanel\\TimerWindowTemplate");
    DialogControlSendAnimationEvent(DialogControlLastCreated(), PlayerGroupAll(), "HighlightStop");



    But if you're going to create multiple TimerWindows through the game, you'll need to save the hookup id to variable, as it is not possible to create multiple hookups to the same Standard frame IIRC.

    For that you'll need additional global variable, like:

    int gv_timer_frame = -1;

     And the code above would expand to:

    if (gv_timer_frame == -1) {
        gv_timer_frame = DialogControlHookupStandard(c_triggerControlTypePanel, "UIContainer\\ConsoleUIContainer\\TriggerWindowPanel\\TimerWindowTemplate");
    DialogControlSendAnimationEvent(gv_timer_frame, PlayerGroupAll(), "HighlightStop");



    Should work, but keep it mind that I didn't test it at all.

    The code from libVCUI_gf_TimerWindowCreate is for some reason destroying previously created hookup, and then hooks it up again.. but I don't think that's needed.

    Posted in: Galaxy Scripting
  • 0.965277777777778

    posted a message on [SOLVED!] Initial trigger(s) do not fire after publish / disconnected from game

    Okay, I've found out the source of it.
    It's because you've used special BattleUI frame as custom layout frame for loading screen.. BattleUI is actually root frame for Battle.net UI. Apparently trying to use it for loading screen is pretty disruptive :D And something from SC2 cannot recover without a full game restart.


    By curiosity I've tried to use couple of other frames that should not be used for loading screen, but none of it resulted in broken game.
    I don't know what made you use custom layout, and why did you actually pick BattleUI. But this together was worst case possible, haha.


    Generally editor should report about issues like that, but I haven't been seeing anything in the log. So it took a while to find.
    In fact it can be considered as bug, because ideally maps should be sandboxed in SC2. That is nothing you do inside the map should affect the game itself after you quit the map. And destroying Battle.net UI is certainly something that negatively affects user experience ;D


    To summarize, to fix it just just go to *Map -> Map Loading Screen*. Unlink *BattleUI* frame. OK.


    Posted in: Galaxy Editor Bugs and Feedback
  • 0

    posted a message on [SOLVED!] Initial trigger(s) do not fire after publish / disconnected from game

    Okay, I've played with this for a while, and I must say the Allied Commanders mod is not the one to blame. I've dettached it from your map, and also removed quite a lot of other things.. and this weird behavior is still happening.


    This is what I'm observing in my offline tests:
    If I launch your map while being logged in SC2, then I quit it and I'm back at login screen. That means I've been silently disconnected. Also I have black background on login screen, instead of planets. But what's most important I'm unable to login again unless I restart SC2 (it hangs on 'Authorizating..').
    If I launch your map while having SC2 closed, then after map is loaded I quit it (just the map). And that also results in ability to login to bnet.


    This is veeeery weird. I'll get back to this later.

    Posted in: Galaxy Editor Bugs and Feedback
  • 0

    posted a message on [SOLVED!] Initial trigger(s) do not fire after publish / disconnected from game

    What I can tell you know is that I'm getting the same issue when I'm trying to watch replay/resume it. In fact you're already disconnected before the map reaches post init phase - that is before loading screen is gone.

    And the source of it is certainly Allied Commanders mod. I'm not sure why though. Likely it might take use of some blizzard exclusive functions. What results in disconnect when done online (probably because publisher's account doesn't have necessary permissions).

    Although I've read about people using this mod before, w/o any disconnect. So it might be new thing - coming either from recent patch, or update to the mod itself.

    Also it's worth to check if your local version of this mod is the same you linked against in Battle.net (that is v0.36).


    So the question is, do you actually need this mod - are using anything implemented there?

    I'll try to identify what exactly this mod does during its initialization process that ends with disconnect from bnet. But if you want easy fix, just remove this mod from your map dependencies.


    One thing that I noticed before trying out your checklist.
    When I launch my published map through SC2, while the editor is still running in the background, the Editor spits out these error messages when the map causes the disconnection:
    "[10/6/2017 11:52:38 PM] Warning: Battle.net connection is closing: You have been disconnected from Battle.net because another computer connected using your account.
    [10/6/2017 11:52:38 PM] Warning: Battle.net connection was lost"

    That is normal. Editor acts as SC2 client. So when you login in it to the same account and region, and then launch SC2 for the same account and region, you get this exact message. Since server only allows one active connection.

    Posted in: Galaxy Editor Bugs and Feedback
  • 0.96575821104123

    posted a message on [SOLVED!] Initial trigger(s) do not fire after publish / disconnected from game

    Nope. There's nothing special you need to do, for your map to work correctly in Battle.net. The behavior you experience is either caused by some obscure bug in SC2 which reason I cannot guess. Or there's *something* in your map that causes this freeze.


    It's good that you were able to save the replay. And what's better, it seems like the bug can be reproduced by running the replay.
    If you could attach the replay here, or upload it somewhere and post the link, then I'd look into it myself (yes, replay from online game is all I need). If the bug will also occur on my end, I should be able to track down the cause.
    Also, what's the length of the replay? Because if the freeze actually happens right after start, I'd expect it to have ~0s.


    In the meantime, here's small checklist you could do, to narrow the area. Proceed it until you'll confirm the freeze doesn't happen anymore.
    (Of course before doing anything of this, backup your map.)
    - Simply republish the map w/o changing anything. To make sure this is not result of some error during publishing process.

    - Remove custom dependencies/mods (if you have any). Publish & retry.
    - Remove triggers that are running at the start of the game. Publish & retry.
    - Remove ALL of the triggers. Publish & retry.
    - Remove ALL preplaced units on the map. Publish & retry.
    If at this point the freeze will still be occuring, I'll be suprised. But you should keep going and remove remaining things such as: custom imported assets (if you have any), lobby attributes/variants, data entries.. it might sound funny, but I'm serious - when you can't guess the source of your trouble, then removing the possibilities piece by piece is smart way to approach it.
    Unless you'll end up with empty map, haha.

    Posted in: Galaxy Editor Bugs and Feedback
  • 0.964936886395512

    posted a message on [SOLVED!] Initial trigger(s) do not fire after publish / disconnected from game

    Given the fact it works flawless in test mode, it does seem pretty weird.

    I could see infinite loop in triggers or infinite recursion in Data causing something like this, where game freezes for a while thus putting you in a state of being not available to Battle.net. Although in such scenario it should unlock after a while - when SC2 detects things went wrong, to put it simple.

    But.. if you can't reproduce it offline in test mode, I don't think that's the problem you're running into.

    Does the disconnect happen every time? Are you able to quit the game before getting "attempting to reconnect" screen pop up, and have a score screen visible? Does the replay file save after the game?

    Posted in: Galaxy Editor Bugs and Feedback
  • 0.963396778916545

    posted a message on Star Battle Development
    Quick recap about Star Battle for these unaware about state of the game:
    The original map developer (@zedu) abandoned project years ago (around 2014). Since then many community forks appeared.
    To my knowledge @zedu didin't pass original map files to anyone, thus none of these forks can be considered official. They all pulled map files from bnet. Aside from that the main map file had obfuscated map script (deeply obfuscated, not the light version sc2 editor generates) - without Triggers scheme. Thus they struggled to edit game beyond Data section. Luckly though, some of the game code was in dependency mods which were untouched (publshed as "unlocked" to arcade).
    Anyway, problem was that every author of that fork had its own vision on the game and its balance. What leaded to conflicts and final split of the community. Where both EU and NA had it's own game copy. And were developed independently.
    (There were also minor forks, from other people. But they did not get much attention.)
    EU dev gave up on it very quickly. Even though his version is still the one being played the most on EU (Star Battle 3.1).
    Then we have NA.. their dev team had one guy which was preparing complete overhaul of game mechanics (could call it 4.0) for several months, where he finally gave up because community explicitly said it was not what they wanted.
    This was around 2016, where I stopped folling it.
    I seriously wonder if it is even worth to attempt ressurecting this game at this point. Given the fact that community is not known to be very friendly.
    I'm somewhat familiar with Star Battle code, thus I'm capable of helping you. But since you show the attude of "Hey, come and do *this* thing for me", instead of "Hey, here's my problem and neccesery details. Help me solve it." I don't know if it's worth it. It might very likely end up being just another dead fork no one plays.
    Do you have any communnity representatives supporting your endeavor? Where is community settled now? Since every SB forum I've used to visit is now dead.
    As to your problem.. because you didn't provide necessary details, I can only guess. So here it is: 
    Does your map you have Trigger Scheme file? (When you go to the Triggers section is it all blank?)
    If it is blank, go to editor options, and check if you've enabled option "Obfsucare map script file" (I think it's in the Publishing tab).
    If the above is correct, then upon publishing editor attempts to obfuscate the map script, but fails to do so, because the original triggers scheme is not present. And you end up with blank MapScript.galaxy file, which had overriden previous version that contained all core code needed for map too intialize properly.


    Posted in: Miscellaneous Development
  • 0

    posted a message on ComponentList.SC2Components and Triggers files missing from locked maps extracted from Battle.net cache

    What you describe is perfectly normal for any protected map published to Battle.net. And it's part of procedure which Editor performs (or server, as I believe it actually happens server-side while publishing) in order to protect the map.


    Triggers scheme file is completely lost at this point. But you can still put your modifications in Galaxy code.


    Good point with TriggerString.txt, this file is relevant only to editor, thus should be erased too. Funny thing is that it can actually compromise MapScript.galaxy obfuscation (default one, at least). Because defined names there correspond to hashes editor uses to mask symbol identifiers.

    I once was able to fully deobfuscate MapScript.galaxy (including restore of original names) thanks to this. The only thing that was missing were constant enums, as they have been inlined.


    In addition to that there's one more component being removed while publishing as protected. It is Attributes, which stores data about lobby attributes, game varants and such. But it can be rather easly recreated by hand.

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