• 0.951068228807719

    posted a message on .obj file requested for Adept portrait mesh

    In reply to DaveSpectre122:

    In reply to WingedArchon:

    Problem with adept portrait, and some new portairts in general is that they use lens flares, which m3addon couldn't handle due to errors in m3 parsing - there was some most likely totally incorrect string reference to sourceFilePath. Perhaps it was a thing in older models? Though, I don't know what could this file represent, because the only external sources m3 specifies are textures. 


    Anyway, couple days ago I made a fix for that: 

    maybe it will be an use for others.


    That said more up to date version of m3addon can be downloaded here: https://github.com/Talv/m3addon

    Besides mentioned fix it also includes 2 others to stuctures.xml, that relate to import issues of some new models.


    I had some plans to attempt to work on this more and get the plugin into better shape, but sadly I can't find time for this. So all I can do is simple fixes - that is when models cannot be imported at all, or are imported significantly incorrectly. Such issues are often relatively easy to track down.


    Export related issues are much harder.. ideally plugin should be updated to export models in newest m3 version format, so that it can support some of the fancy stuff like lens flares, reflection materials etc. Sadly, that requires considerable research on my side.. but maybe someday.


    Anyway, if you encounter some import related issues let me know - I'll see what I can do. I'd like to keep this plugin alive.

    (I rarely log into sc2mapster.com these day, but I hang out in its Discord channel - easiest way to reach me.. filling bug report in github - issues tab; works as well).

    Posted in: Requests
  • 0

    posted a message on Is it possible to create charts?

    WCS GameHeart mod is the only map/mod I'm aware of that uses this frame. Would be probably useful to analyze it and make actual example map. As there's very little information regarding it.


    This is one of use cases:


    As far as API goes, here's list of UI frames for building graphs:

    http://mapster.talv.space/layouts/frame )


    To provide data sets it seems you need to use this function:



    Posted in: Triggers
  • 0

    posted a message on Tutorials

    List of all available frame types, fields, attributes etc. Dumped from the 4.0 build:



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




    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:

    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.




    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"/>



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




    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.




    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

    posted a message on Pathable teleports

    I'll just leave it here:

    Posted in: Triggers
  • 0

    posted a message on No way to destroy an actor???

    'No actor' pretty much evaluates to null, so it only tests whether the variable holds a reference, but doesn't check whether this reference is valid.

    You could use "Actor Get Text" to display information about what that actor reference essentially holds.


    Also, if you inspect internal implementation of this function:

    actor libNtve_gf_AttachModelToUnit (unit lp_unit, string lp_model, string lp_attachPoint) {
        // Variable Declarations
        actorscope lv_scope;
        actor lv_a;
        // Automatic Variable Declarations
        // Variable Initialization
        // Implementation
        lv_scope = ActorScopeFromUnit(lp_unit);
        ActorCreate(lv_scope, "SiteHosted", lp_attachPoint, "", "");
        lv_a = libNtve_gf_ActorLastCreated();
        ActorCreate(lv_scope, "ModelHosted", (lp_model), "", "");
        lv_a = libNtve_gf_ActorLastCreated();
        return lv_a;

     You'll realize that it in facts creates two actors, where one is 'SiteHosted', which is some sort of link I assume (not well aware about Actors). Thus by using LastCreated action you only get the referece to ModelHosted. Although this is the essential one in fact, so it surprising if it doesn't respond to 'Destroy' message.


    Anyway, you can also utilize actor cheats to get some more information about currently living actors (what could help finding out the cause), i.e.:



    Could it be because I'm attaching it to a doodad instead of a unit?

    You should not be capable of doing this, since it would not pass type checking, I'm assuming you're using "Attach Model To Actor". Which should actually work, because it has different implementation (if that's not the deprecated version without postfix '2'):


    actor libNtve_gf_AttachModelToActor2 (actor lp_actor, string lp_model, string lp_attachPoint) {
        // Variable Declarations
        string lv_message;
        actorscope lv_scope;
        actor lv_a;
        // Automatic Variable Declarations
        // Variable Initialization
        lv_message = ("AttachModel {} ");
        // Implementation
        lv_message = ("AttachModel {} " + (lp_model) + " " + lp_attachPoint);
        ActorSendAsText(lp_actor, StringToText(lv_message));
        lv_a = libNtve_gf_ActorLastCreated();
        return lv_a;


    Oh, wait. I just realized the implementation above uses Message to create the actor, as oposed to "ActorCreate" function. Thus you have to use "Last Created Actor by Message" to obtain valid reference in this scenario.

    Posted in: Triggers
  • 0

    posted a message on Importing .m3 to Blender error

    Uhm, that error doesn't tell a lot - is it a full message you've got? There should be stack trace. (Maybe in console view).

    bpy_struct is like a superclass thing in terms of Blender API for addons.

    Posted in: Artist Tavern
  • 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

    posted a message on UI Error in All Maps
    Quote from Prodigy454 >>
    Quote from XelnagaNaga >>

    Hi, I am still quite new with the editor, just wondering if anyone can help me out with this error message?


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


    I got this message on the debugger colored in dark blue, when i saved my work.

    I was working on data editor and i haven't opened or touched the UI editor.


    Will this affect the game in anyways? Publishing?



    It’s nothing to worry about. Its a blizzard native UI error that we all get.

    Just ignore it. Maybe Blizzard will fix it eventually.. but it's just annoying at most anyway.
    Posted in: General Chat
  • 0

    posted a message on Triggers that access a global variable (an array of 400 by 400 reals) malfunctioning during multiplayer only

    Forget about limits - there are no limits on anything that would be exclusive to online games. 400x400 array of scalar type like fixed (aka real) is nothing. Whether you actually need this array to achieve what you need is another thing, but let's not focus on this.


    I am assuming that global variables are only running in one spot (host? battlenet? Who handles trigger execution logic?

    It seems like you just don't get how SC2 works. It's based on so called deterministic synchrous game engine.. I'd recommend you to read this [1] to get better understanding.

    To answer your question in short - everyone.. that is every client/player connected to the game. Not the battlenet server though. When your friend drops a nuke, he has to process the action on the same terms as you do (over the wire there are transmitted only inputs/commands from each client). Thus both of you use the same global variables to get the same result.
    Perhaps this is what you've missed, when implementing triggers (I didn't try to analyze them).


    [1] https://blog.forrestthewoods.com/synchronous-rts-engines-and-a-tale-of-desyncs-9d8c3e48b2be


    and that triggers are not multi-threaded (i.e., an infinite loop will freeze the game; the game allows as many CPU cycles to finish trigger loops as those loops require, it does not save pause long loops and resume them later).

    There is multi-threading.. but no the one you'd expect - threads cannot run in parallel. And executions happen in cycles. I'll just link the wiki again, because it explains it better than I would be able to:


    In case of SC2 context switch can be initiated by Wait function. When supplied with 0.0 it guarantees the thread will be resumed in next game frame.
    And yes, there's a limit of actions VM can perform during one frame. I don't recall exact limit, but you can indeed freeze the game for few secs, before timeout occurs.

    Another thing that makes this hard is the lack of any debugger (that I know of).

    There's one.. kinda obscure, but does the job. In testmode you can open it by typing "TrigDebug". Also it requires game to be in windowed mode. If you want to have it at start of the game then head over to editor preferences -> test document.

    Is there any way at all to open some kind of debug message window DURING MULTIPLAYER and see if the map is generating errors?

    You can setup TriggerDebugMessage to save to log file. Log file will be written anytime you play the game or watch the replay.

    But, you can also relaunch SC2 with "-development" flag, that will enable test mode for replays. Including access to debugger.
    If you launch SC2 from Battle.net client, then in its options there's somewhere a field to type additional cli params. For testing purposes that would be "-development -windowed -trigdebug".


    When testing offline it's also good too add additional dummy players, that have the control shared to you. And simulate what would happen in actual online game.

    Posted in: Triggers
  • 0

    posted a message on Cannot build ultralisk in custom map..WTF......

    Yes, multiplayer and campaign dependencies don't play well together. If you want to use them together, you'll have to resolve such issues on your own.


    Multiplayer dependency is automatically injected to maps set as melee (and that's the root cause of your problem). Add VoidMulti dependency at the end of your current list, and Editor will reflect what's actually happening in game.


    Posted in: General Chat
  • 0

    posted a message on Starcraft 2 - Square Root Function Behaviour

    Are you familiar with the difference between floating point and fixed point number?
    SC2 doesn't use FPU, and the fixed type is the way around it, which comes at the cost of low precision.


    Fixed type consists of 32 bits:

    -- 1 sign | 19 integer part | 12 fractional part --

    I won't tell you how the internal implementation of this function looks like, as I don't really know myself. But there are certainly couple of methods it could've been done. 

    SquareRoot(10.5) ==> 3.2402

    The result was trimmed to 4 decimal places, but in reality it is exactly equal to .240234375 (result of 984/4096).
    The next possible value would be .240478515625 (result of 985/4096). What is above the expected result of sqrt, thus it returned the closest possible that was equal - rounded down.


    The fractional part of 10.5 is represented as 2048/4096. Now if you iterate over next possible values:


    2049/4096 = 0.500244140625 | sqrt(10.500244140625) = 3.2404080207012513 (nope)
    2050/4096 = 0.50048828125 | sqrt(10.50048828125) = 3.240445691760626 (nope)
    2051/4096 = 0.500732421875 | sqrt(10.500732421875) = 3.240483362382069 (got it!)

    So yeah, that's as far as explanation goes.


    btw. You can increase the verbosity of FixedToText when it comes to decimal places - it just defaults to 4 at most.

    Posted in: General Chat
  • 0

    posted a message on Please recovery link

    Ah damn, you're right. I thought numbering in attachments have been preserved, but nopeee.. anyway this is correct URL:




    (I have no clue where these 2 numbers come from)


    This is how I found it:
    site:sc2mapster.com "Screenshot2011-04-17_09_16_21.jpg" -"15/252/Screenshot2011-04-17_09_16_21.jpg"

    (in Google)
    then in source code of the first result search for:
    class="multi-file-upload-file-image comment-attachment-image" alt="Screenshot2011-04-17_09_16_21.jpg"
    The preceeding src attr of img element will be correct URL. But I'm unsure if this method would work for in all cases. I think it's worth to note anyway.


    (btw. this would have been easier if media.forgecdn.net was indexed by Google, but it isn't sadly).

    Posted in: General Chat
  • 0

    posted a message on GAx3 Trigger Source Code? Dependency Problems

    Yeah, this file was mostly stripped from newlines.. and whitespaces in general. I don't know why he did that.

    Anyway, I guess you don't really need to modify it, since you can just re-link the dependency that's still up on bnet, right? If no, I could fix the file for you (in the past I wrote some scripts for cases like this).


    btw. If you wanna work with Galaxy code I recommend this : https://marketplace.visualstudio.com/items?itemName=talv.sc2galaxy :p

    Although the feature which you would need right new - that is pretty print/format code is not yet finished.


    Posted in: General Chat
  • 0

    posted a message on Please recovery link

    That's different thing. Attachments (which were bound to posts) have been restored. All of them I believe.

    However attachment URLs have changed, and links manually embedded in the posts haven't been updated. But if you correct them by hand they'll work.


    With the exception of the ones that are orphaned - when original post to which the attachment was bound have been removed (or attachment was manually taken down). In such case these files haven't been moved to the new CDN.


    The example of it can be attachment in the signature of DrSuperEvil (which is trimmed btw.) - full signature can be seen in WaybackMachine:


    That's the URL:

    It uses old pattern. Now attachments are stored in CDN, corrected link would look like that:

    Unfortunately it doesn't work because of the reason I've mentioned above. It was an orphan. The post/project to which it was bound have been removed before site was migrated.


    When it comes to links in general, then yes. They didn't bother fixing them. But it's fairly easy to do that manually using search engines when there's such need. As example take the link in DrSuperEvil signature:

    Now cut the part after ID, that's: "data-actor-events-message-texture-select-by-id"

    Then build following query for the Google engine:
    site:sc2mapster.com inurl:data-actor-events-message-texture-select-by-id
    That would be:
    https://www.google.com/search?&amp;q=site:sc2mapster.com inurl:data-actor-events-message-texture-select-by-id


    It works in most of the cases. If however title of the thread was changed, then other methods must be used.

    This is how I've fixed links in the Tutorials section of the Wiki btw.
    (using script that automated the process).

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