Ops, minor bug, but none of my test cases covered it. Fixed.
- Registered User
Member for 1 year, 5 months, and 10 days
Last active Tue, Dec, 18 2018 03:45:42
- 1 Follower
- 57 Total Posts
- 12 Thanks
Dec 14, 2017Talv_ posted a message on [Celebration] New sc2mapster website one year anniversary !Posted in: General Chat
In reply to TChosenOne:You don't disagree then, because I never meant to imply that Discord can replace forum. It could sound like so, though.If sc2mapster would die, something fresh and better could fill its place. That's kinda naive, I know.. It's just sad that founders are no longer there. They had the passion needed to keep this site thriving. Today, we are left with Curse, who merely treat as an asset under their possession. And since the asset has no perspectives to grow, we are left on our own.
Dec 12, 2017Talv_ posted a message on [Celebration] New sc2mapster website one year anniversary !Posted in: General Chat
I hope sc2mapster will die. I'm serious.
I love the community, but I hate the fact that it is managed by Curse. Company that doesn't give a damn fuck about us. And at the same time don't give us any oppurtunity to contribute to the website, forum and all things related (by opening source code).
Like half of the activity already shifted to Discord, just because how not user friendly this site has become.
Dec 3, 2017Posted in: Galaxy Editor Bugs and Feedback
Make sure you've correct localization set in Battle.net game options, not just in-game options of SC2.
Also you could try to force change of Editor options by overriding relevant config key in regedit
reg add "HKCU\Software\Blizzard Entertainment\StarCraft II Editor\Preferences" /t REG_SZ /v Locale /d enUS /f
I have no idea if it will work. But it should be done while editor is off. At next launch it wil either start downloading new localization files, or revert back to previous settings..
Dec 3, 2017Posted in: Galaxy Scripting
Released v1.5.0 - https://github.com/Talv/plaxtony/releases/tag/v1.5.0
Quick highlight of new features:
Code completions prioritize preset constants when valid (function must declare preset type within Triggers metadata).
Gamelinks suggestions (units, effects etc.)
Improved formating of function signature. It now also includes grammar text entry.
Also, I have just realized I didin't package default SC2 archives other than core.sc2mod in last release... it is now fixed. Package size went up ~20MB.
Configuration settings are described in docs CONFIGURATION.md
I consider this release to be very stable.
I'm gonna try to finalize typechecking for next release.
Nov 24, 2017Posted in: Galaxy Scripting
No, just show the multibyte character as a warning or error. This issue always happen in the comment, so your parser can not find it, if the user want to use multibyte character, he can translate it as unicode type ('\x') himself. I have write a tool to do that.......
Ahh, okay. Indeed my parser allows a lot of things that normally result in error when parsed by SC2.
But I of course want it to be on pair, even if I'll have to explictly hardcode rules like 4096 characters single line limit..
(as for the comments - it doesn't validate it yet, as I was sure SC2 could handle it there, but apparently not... will make it to next version.)
My work in Forggy & Catty is write base system in galaxy, and another partner works for game with GUI (Delphinium works for art). I need encapsulate galaxy function to GUI function for him.
Well, I'm not convinced to your workflow, but I'm sure you know what you're doing.
Anyway, new version released.
- When .sc2map or .sc2mod is present within the workspace, indexer will attempt to visit every dependency listed. If it fails to load at least one, it will revert to indexing only `core.sc2mod` and its native lib.
- Typedef, funcref, arrayref are now entirely supported
- Other minor improvements
Feel free to report any issues you encounter, as well as feature requests if you've any.
Nov 21, 2017Posted in: UI Development
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
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.
Nov 21, 2017Posted in: Galaxy Scripting[Error - 09:15:25] Request textDocument/hover failed.Message: Request textDocument/hover failed with message: how did we get here?Code: -32603Haha, yeah.. these messages are not very insigtful.In new version it will print stack trace, so it will be easier for me address such issues.
This error in particular will be fixed in upcoming version. It occured when hovering over comments/whitespaces at the end of file or within include statements.If you have finish the work about typedef and family, please release a new versionSure. Already started work on this, hoping to have it done by the end of the week.And there is another suggestion, could you take a feature to checking Unicode character in the script, special for the Comments, as we know custom script in SE do not accept non-ASCII characters, and if I use Chinese character "，" instead of English character "," I can not copy script text to the SE window. and it is hard for me to find it with eyes.Not exactly sure what you're requesting there.I know about the problem related to handling of multibyte characters in Galaxy lexer within SC2, but what you suggest as a solution for this?Add option to transpile the script and escape these characters using '\x' notation?But since I'm not making a language extension like `Galaxy++` (at least not yet), not sure how should this be handled at the current moment..For me, I write galaxy as a Lib, and put them in SE as a Custom script, then encapsulate it to trigger function or trigger action. The Lib is isolated, so I do not need check dependencies except native.galaxy.Hmm.. so you're not saving galaxy files within map/mod directory? Just copy pasting parts of code one by one to GUI `script code` section seems rather uncomfortable to work with. Especially when you need to go back and update something.Is there a particular reason you do it this way?Why not just make one `custom script` element, that would have `include` statement to import your external scripts saved within the mod/map?I suppose you want to have actual GUI elements for actions/functions, but there's a way to declare dummy element using `Native` flag, so SC2Editor will be able to reference the element while auto-generating script, but it won't generate actual body of a function in its script.That's what I've been doing, and I don't see any cons of this method.
I can obviously support editing galaxy files without having mod/map in the workspace, in such case however only one dependency is being indexed - `core.sc2mod` and its libraries.If your code will try to reference some stuff that sits in external library, then it would complain about undeclared symbols.. (since they won't be indexed).Ideally I was going to implement complete analysis of the script, including typechecking (i.e. when trying to assign `"foo"` to int variable it will highlight it as error). In order to do that all relevant galaxy files must be indexed.I write a new mod of terrain editor (rewrite the terrain mod of BLZ Enforcement). And I need these features.I've seen it in Delphinium videos. Cool stuff. Not sure if you guys are still planning to release it publicly, but if so I will certainly check it out.I was mostly interested about a way to alter terrain textures. But not just swap large part of texture surface using one of prepared presets (which is what you seem to be doing?).I was hoping for possibility to actually paint.. or rather have handful different shapes of splat models, so that terrain could be customized in detailed way.I can imagine FPS droping heavly once there's too many splats though...
Nov 20, 2017Posted in: Galaxy Scripting
Thanks for the feedback!
Yeah, I'm slowly adding new features. typedef and family will soon be supported. I just focused on other things so far. One of which is proper support of archive dependencies. Currently only content of core.sc2mod was being read, and in order to have other dependencies indexed they had to be added to project workspace.
But this is no loger the case, in new version (unreleased yet) dependencies of sc2map/sc2mod are being resolved, and indexed respectively. Although for this to work all revelant archives must be saved as so called sc2component, as there's no support for reading of CASC, nor MPQ. And not sure if there will ever be - I don't think it's really needed. Especially as default SC2 mods are included within the extension. For custom mods you just have to provide additional sources directory in the configuration - that should point to SC2 installation directory.
Having access to complete dependency tree allows it to index all of the existing *Trigger* elements, and their metadata. So now when you hover over your custom functions, extension can display its name and description.
In above example, function was delcared within the script aswell. In *Triggers* there's just a stub element created for it (with Native flag set).
This makes it possible to document your codebase. And also bind generic parameters such as *int* to their actual preset constant variables, so it could provide more accurate auto-completins in context of that parameter.
Also, I plan do add feature for indexing entries from *Data XML*. In order to be able to provide autocomplete list for these virtual *gamelink* parameters, which are mapped as string. To give an example, when you'd request code completions list for *unittype* parameter of UnitCreate then all possible names would be provided, along with their localized name in the tooltip.
There's not much interest in these kind of tools among the community as you've pointed. But this doesn't stop me from working on it further. In fact it is quite fun to do so, and I've learned a lot in the process.
I didn't had occasion to try Galaxy++ nor Andromeda. I did like the idea itself though. But I think they wanted to accomplish too much too early - get too many features at once.. And that makes it really hard to develop further while maintaining the stability.
Also full blown language extension alone won't really be convenient to work with, if there's no tooling around it - dedicated IDEs or support within 3rd party extension for text editors (as this one).
I'm not a fan of dedicated IDEs these days though. Their customization capability is often times highly limited.
I like to play with many programmiang languages, thus having them all support from single editor is very convenient.
Plugin for Sublime Text was indeed quite poor. But it's the past now!
Do you find Visual Studio Code comfortable? It is quite customizable too - I didn't like it's default setup, but you can alter most of it in the settings or via extensions.
If you happen to use it, feel free to report any issues and suggestions.
Nov 17, 2017Posted in: Triggers
Solution was to not use *Picked X* outside of the loop definitions. But often times people had triggers bound so much to the old design that simply adapting to changed mechanics is not convenient.
Thus I put together library that can be used to revert what Blizzard did in relation to PickEach loops:
Nov 3, 2017Posted in: Triggers
While p2p term might not apply here, it comes very close in how I envision it.
On a network level it is client-server. But not the communication method is what I refered to, but the process of evaluating game state.
If server is not responsible for its computation, then it has no relevance under these terms.
Its role here is just to broadcast game input coming from its clients. There is no centralised unit. Each of the clients processes input on its own. And it's up to the clients to determine whether input they receive is valid at all for the current state.
And now tell me that is not similar to parallel data processing - where p2p term applies.
Though, I do realize that clients are transfering only inputs of their own actions, and not the results of the computation, what I suppose make it invalid to describe as p2p.. still, not outrageously wrong as you would want it to be.
Also, I'm aware that Blizzard might have put some additional tasks on the server in order to get the best of this model. Tasks beyond wraping input packets with client id and instantly passing them over. But it's not what I was after.
No peer-to-peer transfers happen as most people are behind NATs.
While it's true, and having just said I didn't refer to network model.
I'll just add it's not a showstopper. Techniques like udp hole punching exist and are used with great success as far as I'm aware.
Oct 27, 2017Posted in: Triggers
If we are not talking about banks, then preloading is indeed only a way to optimize the map. All others assets can be read on demand if not preloaded.
Banks however are special. Loading them on demand would not be feasible. Not in a multiplayer game, with p2p netcode. Where each player would need to transfer bank data to every other player in this particular game. Some banks can go over 1MB.. and since the current bank API is not asynchrous it would cause a lag spike that could last seconds.
The game could preload all the existing banks certain player has. But that would not be wise given the fact that banks are scoped to publishers account, and not the map. Thus it could preload a lot of irrevelant data.
That's why we were given system as such, where map must declare what banks it wants to use by listing them under preload section, with an option to limit it to certain player.
I need to correct myself on one thing. Even though game protocol is P2P, the bnet servers are used as broadcasters, thus clients do not have to transfer the bank data to every other client in the game, as bnet server will do that. But it doesn't change the fact that you've to receive the bank data of every other player in the game in order to stay in sync.
Oct 26, 2017Talv_ posted a message on Units running back and forth between regions (FIXED)Posted in: Triggers
I have zero experience with Wave AI, but I don't think you can freely reorder units that have been created from Wave AI. It seems like they want to reach their origin destination that was declared by Wave, what makes sense.
You probably should issue orders to units managed by AI, using its API. There's a bunch of functions there.
The proper way seems to be get the *waveinfo* from unit and change its *wavetarget*.
You could also try workaround and remove mentioned unit from the Wave. By calling *Remove Unit From All Waves* action. This should likely stop the AI from redirecting your unit.
Oct 25, 2017Posted in: Triggers
In reply to Prodigy454:Hey prodigy, I looked into what you said. Mind posting where you might find this function's definition? I opened up the code browse via the command line, no luck. Thanks!Mentioned function is located in Void Campaign UI / VCUI library.
- To post a comment, please login or register a new account.