• 0.955042527339004

    posted a message on A number of questions about Trigger related issues

    I gotta ask you something: have you considered making separate thread for every seperate issue you're dealing with? Because you're mixing various topics, that are often hardly related within a single thread. By a result you're limiting yourself to help from people who are capable of keeping up with it - apparently only DSE.

     

    Not to mention in future other people might encounter same problems. When they'll attempt at looking up some info about it, they'll either not find it, as posts are not indexed as good as threads - title is always most important keyword. Or they'll have to crawle through all the irrelevant stuff before getting to the actual answer.

     

    Although if goal of this thread is some kind exclusive mentorship between you and DSE, then I guess that's okayish - assuming he's fine with doing so.

     

    (Also these are not even triggers questions, but Layouts / UI.)

     


    2.

     

    Anchors control position, and can also control width/height, if these are not set explicitly. It is in fact covered in tutorial you've linked. For more detailed explanation lookup this document:
    https://docs.google.com/document/d/1Cs6hjFKgf9xKO_d-zAPwGgRzOZpwLkAqUw5Zbte7Tdk/edit

    It might be also in the Wiki, bout couldn't find it - this was provided by @rtschutter IIRC.

    I don't know if there's anything special about Portraits - if you've some issue regarding it, just post snippet of your code.

     

    5.

     

    What is that even..? ConsoleSkinCacheFrame is different thing. It appears to be used as a preview frame within BattleUI (game menu) - Collections/Consoles. It has no influence on actual ConsolePanel present in game.


    Since introduction of custom Console skins from Blizzard there was small overhaul in regards to how Console panels are applied, but you can still change the default model the same way as it was done in the past - by modifying model links within Assets.txt.

    This is default Console definition within data:

     

    <CConsoleSkin default="1" id="ConsoleBase_Default" parent="ConsoleBase">
        <Default value="1"/>
        <Name value="ConsoleSkin/Name/Default"/>
        <ReleaseDate value="7/27/2010"/>
        <MinimapPanelModel Model="@@UI/ConsoleModelMinimapPanel"/>
        <InfoPanelModel Model="@@UI/ConsoleModelInfopanel"/>
        <CommandPanelModel Model="@@UI/ConsoleModelCommandPanel"/>
    </CConsoleSkin>

     

     

    @@UI/ConsoleModelMinimapPanel means that model link will be lookedup in Assets.txt with race id as postfix:

     

    UI/ConsoleModelCommandPanel=Assets/UI/Console/Terran/ConsoleTerran/ConsoleTerran_02.m3
    UI/ConsoleModelInfopanel=Assets/UI/Console/Terran/ConsoleTerran/ConsoleTerran_01.m3
    UI/ConsoleModelMinimapPanel=Assets/UI/Console/Terran/ConsoleTerran/ConsoleTerran_00.m3
    UI/ConsoleModelCommandPanel_Prot=Assets/UI/Console/Protoss/ConsoleProtoss/ConsoleProtoss_02.m3
    UI/ConsoleModelInfopanel_Prot=Assets/UI/Console/Protoss/ConsoleProtoss/ConsoleProtoss_01.m3
    UI/ConsoleModelMinimapPanel_Prot=Assets/UI/Console/Protoss/ConsoleProtoss/ConsoleProtoss_00.m3
    UI/ConsoleModelCommandPanel_Terr=Assets/UI/Console/Terran/ConsoleTerran/ConsoleTerran_02.m3
    UI/ConsoleModelInfopanel_Terr=Assets/UI/Console/Terran/ConsoleTerran/ConsoleTerran_01.m3
    UI/ConsoleModelMinimapPanel_Terr=Assets/UI/Console/Terran/ConsoleTerran/ConsoleTerran_00.m3
    UI/ConsoleModelCommandPanel_Zerg=Assets/UI/Console/Zerg/ConsoleZerg/ConsoleZerg_02.m3
    UI/ConsoleModelInfopanel_Zerg=Assets/UI/Console/Zerg/ConsoleZerg/ConsoleZerg_01.m3
    UI/ConsoleModelMinimapPanel_Zerg=Assets/UI/Console/Zerg/ConsoleZerg/ConsoleZerg_00.m3

     

    All you need to do is create custom Assets.txt that would override pathes above and place it in Base.SC2Data/GameData in your map.

     

    6.

     

    Nope. Models can indeed be loaded at any stage within game, without preloading. But regardless to that they do need to be actually downloaded.

    This is something Blizzard can do, thanks to CASC, but that tech is not accessible to modders/arcade games.

     

    And frankly 650 MB is madness - I wasn't aware you could even upload map as huge as this... I don't know what you're developing but I cannot thing of anything that could justify the size. Keep in mind that not everyone lives in places where high speed connections are easily accessible. Take me as an example, currently I'm stuck with ~6Mbit DL. Which means I need like 15 minutes to download something as big as this.
    I'd consider 100MB to be a borderline. Once you hit that limit, you need to take a closer look at your assets and how can you reduce the final size of an map.

     

    There are of course some big projects such as Dead Zone ( http://www.moddb.com/mods/dead-zone-hope-lost ) with high amount of custom high quality textures and other assets - where it is inevitable to end up with largely sized maps.

     

    But if you're not developing something like in case above, it's mostly likely effect of bad optimizations on your end. Disabled MPQ compression? Oversized textures? Soundtracks with too high bitrate? etc.

    Posted in: Triggers
  • 0.960666358167515

    posted a message on [Question] Screenshots are changing tint upon upload. How to prevent this?

    When you're saying you're uploading them, you mean uploading to Battle.net, right? As screenshots for arcade section?
    Actually that would explain something.. because I did notice such nothing for some other random arcade map.

     

    Anyway, it's most likely a flaw in the way Blizzard is processing TGA files. Possibly your TGA images have embedded color map which SC2 can't handle. Or what's more likely it just strips the header that included the color map, without adjusting the image. What in the end may give such effect.

     

    Your options are:
    - use TGA without embedded color map
    - or simply use JPGs.. as they're better suited for this use-case anyway

    Posted in: Artist Tavern
  • 0.962616822429907

    posted a message on Func Ref/Pointer Syntax
    void fn_prototype(int a);
    
    void some_function_that_must_match_above_signature(int param)
    {
    }
    
    void main()
    {
        funcref<fn_prototype> ref;
        ref = some_function_that_must_match_above_signature;
        ref(1);
    }

     

    Some further explanation about _ref thingies can be found here:
    https://www.sc2mapster.com/forums/development/galaxy-scripting/148197-passing-arrays-as-parameters

    Posted in: Galaxy Scripting
  • 0.965018094089264

    posted a message on Ping Panel limitation

    This part is handled by Triggers. In particular Liberty library that sits in Liberty base dependencies.

     

    Values are set as constants so cannot be altered directly..

    const int libLbty_gv_c_PINGMAXCOUNT = 3;
    const fixed libLbty_gv_c_PINGRESETTIME = 2.0;
    const fixed libLbty_gv_c_PINGSUPPRESSIONTIME = 0.25;
    const fixed libLbty_gv_c_PINGLOCKOUTTIME = 5.0;

     I think viable way would be to have a trigger tied to Ping Event, which would reset the current counter.

     

    You should examine libLbty_gf_PingPlay function to get a better idea.

    But in short you should reset the counter of

    int[17] libLbty_gv_pingRecentCount;

    By overriding current value with 0 every time trigger is fired.

     

    Another way is to make a custom implementation of this system, basing on existing triggers.

    Posted in: UI Development
  • 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");

    http://peeeq.de/code.php?id=29105

     

    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");

    http://peeeq.de/code.php?id=29106

     

    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.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
  • To post a comment, please or register a new account.