Staredit Network > Forums > Modding Discussion > Topic: PyMS - Download, Support, and Maintenance
PyMS - Download, Support, and Maintenance
Jan 10 2019, 9:08 pm
By: poiuy_qwert  

Jan 10 2019, 9:08 pm poiuy_qwert Post #1

PyMS and ProTRG developer

PyMS is a cross platform, BroodWar modding suite, written using Python. PyMS contains 15 programs to edit most of the file types you will encounter while modding.

Download:
Always download the latest version from the official github repository:
https://github.com/poiuyqwert/PyMS#installation


Support and Maintenance:
PyMS is still under development, getting bug fixes and new features. I don't have much time anymore to do my own modding, or to keep up to date with the modding community, just to develop PyMS. This means that the more users that use PyMS and actually report bugs and feature requests, the better PyMS will be for everyone. So please, report bugs and features here, or as an issue on gitgub. Some more information here: https://github.com/poiuyqwert/PyMS/issues


Current priorities:
1) High priority bugs (always my highest priority if there are any)
2) SCR support in PyBIN (highly requested feature)
3) Better doodad management in PyTILE: Issue 33 , Issue 38 (my interest)
4) Lower priority bugs and features
My priorities are driven mostly by user feedback. High priority bugs will always get first attention, but after that highly requested features get my focus. So the more people requesting something the more likelihood that it will be worked on sooner! After that I work on things that interest me.


Open source:
PyMS is open source, so you can help contribute fixes and features to the official PyMS repository. You can also modify the programs and use its internal libraries to implement your own custom things. A couple examples:
- The custom AI script launcher BWAILauncher was built using parts of PyMS
- The mod STF had different difficulty levels. This was accomplished by making a simple script that would open units.dat, scale some values (health, damage, etc.) to 25% and 50%, and exported them to separate files. This script could be re-run anytime the main stats were updated to always provide correctly scaled difficulty.
- Adding support for features implemented in plugins, for example custom trigger actions added by TrigPlug (created by FaRTy) were added to PyTRG, which were eventually added officially to PyMS. Neivv has been working on a plugin to add custom AI script commands, and adding support for them to PyAI (hopefully this will eventually be added officially to PyMS)
- If you run into a bug you can fix it on your own (And then submit that fix to me so I can include it in future versions of PyMS!)




Jan 11 2019, 7:08 pm Pr0nogo Post #2



Great to have it in its own thread. I think that instructions on how to run the programs with admin privileges (on windows) would be useful, since currently that's the only way to use the 'set program as default' feature.

Step 1: run command prompt as admin (start menu, search 'cmd', press ctrl+shift+enter)
Step 2: change directory to your python install (usually C:\Python27)
Step 3: run python.exe followed by the path to your pyms program (e.g. `python.exe C:\Users\u\Desktop\PyMS-master\pydat.pyw`) and press enter
Step 4: press the blue registry icon to create the file association

---

When launching the latest pytbl, I got this error. Is this user error?

I see this issue referencing a 'suppress warning directive', is that related to warnings like these (that pop up every time I open a script as long as my unitdef is configured this way)? If so, how do I activate it?

Also, I know it's probably the most far removed from what you're thinking about working on, but a replacement for Firegraft is sorely needed for modern projects. Firegraft is barely functional and has numerous UI and corruption issues. Many dat requirement entries are inaccurate or incomplete (e.g. 'Is not lifted off' also requires the unit to be a building) and it has no support for future engine improvements that add additional dat requirements or functions.

Post has been edited 3 time(s), last time on Jan 11 2019, 8:15 pm by Pr0nogo.




Jan 11 2019, 8:35 pm Nekron Post #3



from what i remember the supress warning thingy was originally made for supressing warnings about spellcasters having no weapons, but it can presumably be used for other warnings the way p_q wrote it. to use it you just add the line before whatever warning you want supressed




Jan 12 2019, 5:38 am poiuy_qwert Post #4

PyMS and ProTRG developer

Quote from Pr0nogo
Great to have it in its own thread. I think that instructions on how to run the programs with admin privileges (on windows) would be useful, since currently that's the only way to use the 'set program as default' feature.


Step 1: run command prompt as admin (start menu, search 'cmd', press ctrl+shift+enter)
Step 2: change directory to your python install (usually C:\Python27)
Step 3: run python.exe followed by the path to your pyms program (e.g. `python.exe C:\Users\u\Desktop\PyMS-master\pydat.pyw`) and press enter
Step 4: press the blue registry icon to create the file association
This is really a bug, it should not require admin privilege. I have not really been able to fix it because I have not had a windows pc, but I should have one soon.


Quote from Pr0nogo
When launching the latest pytbl, I got this error. Is this user error?
I am not getting the error when I launch it. Does the Units.pal exist?


Quote from Pr0nogo
I see this issue referencing a 'suppress warning directive', is that related to warnings like these (that pop up every time I open a script as long as my unitdef is configured this way)? If so, how do I activate it?
Quote from Nekron
from what i remember the supress warning thingy was originally made for supressing warnings about spellcasters having no weapons, but it can presumably be used for other warnings the way p_q wrote it. to use it you just add the line before whatever warning you want supressed
Nekron is correct. Every warning has a name, you can see it in brackets on the warning (for example "building" is the one in the image you posted). There are two directives to suppress warnings using their name:
@suppress_next_line(<name>) will suppress the warning only on the next line
@suppress_all(<name>) will suppress the warning for the rest of the file


Quote from Pr0nogo
Also, I know it's probably the most far removed from what you're thinking about working on, but a replacement for Firegraft is sorely needed for modern projects. Firegraft is barely functional and has numerous UI and corruption issues. Many dat requirement entries are inaccurate or incomplete (e.g. 'Is not lifted off' also requires the unit to be a building) and it has no support for future engine improvements that add additional dat requirements or functions.
I have wanted to make one for a long time (that and a map editor), and now that I will have a PC soon I may even look into it more. But I don't really have any concrete plans. It's a much more complicated thing than the other modding tools, and I don't really have a reference for exe the way I have references for modding file formats, though FaRTy might have some stuff...




Jan 12 2019, 5:59 am Pr0nogo Post #5



Quote from poiuy_qwert
I am not getting the error when I launch it. Does the Units.pal exist?
It does, same filename and path.

Good to know about the suppression, I'll try it out. This is related to the unitdef though, it pops up on every script. Do I now have to suppress it in every script I write? This seems like a poor solution.

Quote from poiuy_qwert
It's a much more complicated thing than the other modding tools, and I don't really have a reference for exe the way I have references for modding file formats, though FaRTy might have some stuff...
Let us know what specifically you're looking for and I might be able to find some stuff.

Post has been edited 1 time(s), last time on Jan 12 2019, 7:23 am by Pr0nogo.




Jan 15 2019, 12:29 am poiuy_qwert Post #6

PyMS and ProTRG developer

Quote from Pr0nogo
Good to know about the suppression, I'll try it out. This is related to the unitdef though, it pops up on every script. Do I now have to suppress it in every script I write? This seems like a poor solution.
Hmm I never considered the warnings from parsing the unitdef.txt. I can't remember but I have a feeling its using a different parser so this won't work, but did you try putting a suppress directive inside the unitdef.txt? Also, I forgot to mention in my first post (it was late), but you should just make sure you have setup your dat files correctly. You should use your mods files by either applying your custom dat files in the PyAI settings, or add your mod MPQ with a higher priority, so that it can actually load the correct dat file with the correct "is building" settings.

Quote from Pr0nogo
Let us know what specifically you're looking for and I might be able to find some stuff.
Essentially everything that Firegraft modifies. I'm pretty sure I can get to the point of what MPQDraft does, create a self-executing MPQ (SEMPQ) and loading plugins, but its the SC specific functionality that FireGraft adds on top of that which I have no specs or reference for: Button Sets, Dat Requirements, etc.




Jan 15 2019, 2:26 am Pr0nogo Post #7



When writing @suppress_all(building) to unitdef.txt, the program fails to open scripts with this error. Maybe it's syntax. Tried <building> and h_siege_mode as well with no luck.

Generally I've only had bad experiences with adding my own MPQs, and generally keeping an MPQ up-to-date with all graphics and statistics is a chore when all it needs are the files necessary for SCMDraft to work (e.g. tilesets, tbl files, some dat files). Does PyMS support adding exes made with firegraft? If so I'll try to mess around with it a bit more. However, unless PyAI reads the resource harvester flag for building status, it won't change anything about this error.

I'll put out a call for info re: Firegraft and try to forward some knowledgeable people to the thread. I would also love to see a fully-functional open source map editor and I have a lot of ideas for additional features down the line, but it takes a lot of work to be as good or better than SCMDraft, so it's no wonder we haven't seen many people attempt it.

edit: here's an updated unitdef with all entities (I think). Since an expanded unitdef is required for simple things like making AI defend or attack with hero/nonstandard units, maybe it should be added to the official commit. I can reorganize it if you like. Click

Post has been edited 1 time(s), last time on Jan 15 2019, 4:22 am by Pr0nogo.




Jan 15 2019, 5:05 am poiuy_qwert Post #8

PyMS and ProTRG developer

Quote from Pr0nogo
When writing @suppress_all(building) to unitdef.txt, the program fails to open scripts with this error. Maybe it's syntax. Tried <building> and h_siege_mode as well with no luck.
Yeah that is what I thought.

Quote from Pr0nogo
Generally I've only had bad experiences with adding my own MPQs, and generally keeping an MPQ up-to-date with all graphics and statistics is a chore when all it needs are the files necessary for SCMDraft to work (e.g. tilesets, tbl files, some dat files).
There were two options I mentioned, you don't need to use MPQ's if that doesn't fit your workflow, just load the correct files from disk.

Quote from Pr0nogo
Does PyMS support adding exes made with firegraft?
Yes, SFmpq supports embedded mpq's.

Quote from Pr0nogo
However, unless PyAI reads the resource harvester flag for building status, it won't change anything about this error.
Of course it does :P

Quote from Pr0nogo
I'll put out a call for info re: Firegraft and try to forward some knowledgeable people to the thread.
Sounds good.

Quote from Pr0nogo
I would also love to see a fully-functional open source map editor and I have a lot of ideas for additional features down the line, but it takes a lot of work to be as good or better than SCMDraft, so it's no wonder we haven't seen many people attempt it.
I have worked on a couple a little over the years. I included the beginnings of one in PyMS, but the UI engine and Python are too slow for me to really continue it. I also started making a C++ modding library (with the plans of making a successor to PyMS at some point), and was making a map editor using it. So many things I want and wish I could work on lol

Quote from Pr0nogo
edit: here's an updated unitdef with all entities (I think). Since an expanded unitdef is required for simple things like making AI defend or attack with hero/nonstandard units, maybe it should be added to the official commit. I can reorganize it if you like. Click
unitdef files are not required to use those units, there are multiple ways to do it (by unit id, by TBL name, define your own variable), they are just a convenience. But I agree it would be useful to have everything in the official file, i'll look into it, thanks




Jan 15 2019, 7:35 am IlyaSnopchenko Post #9



So it dawned on me that the PYAI supports some "non-standard" AI opcodes enabled by a certain MPQDraft plugin? I failed to find that plugin or the documentation for it. Anyone can share?



None.

Jan 15 2019, 8:24 am Pr0nogo Post #10



It's available in the PyMS dropdown of the manly thread: http://www.staredit.net/topic/17400/




Jan 15 2019, 8:28 am IlyaSnopchenko Post #11



Quote from Pr0nogo
It's available in the PyMS dropdown of the manly thread: http://www.staredit.net/topic/17400/
Ah, thanks. I always miss the fine print. :) Thank God I'm never doing mortgages. :D



None.

Yesterday, 2:08 am Pr0nogo Post #12



Speaking of fine print, there's a typo in PyICE - Cybernetics Core Overlay is spelled "Cybrnetics". This also translates to the iscript code itself.

And just in general for ease of use, maybe the PyAI and PyICE scroll pos issues can be escalated? PyICE also deselects the last edited entry which just exacerbates the scroll pos reset.

edit: also, if 'enter' can be the universal hotkey for confirming changes (especially for PyAI's "continue importing?" block when saving a script), that'd be very useful.

Post has been edited 1 time(s), last time on Yesterday, 10:14 am by Pr0nogo.




Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[08:14 am]
KrayZee -- I don't get it. When a video game is unreasonably criticized harshly, I have fun playing those games. When a game is overhyped, I can't enjoy it for some reason. Bah.
[07:25 am]
NudeRaider -- Vrael
Vrael shouted: lil-Inferno lil-Inferno don't worry I'll probably finish before Starcraft 6
"probably" :lol:
[03:00 am]
RIVE -- xd
[02:35 am]
O)FaRTy1billion[MM] -- xd
[02:33 am]
Moose -- xd
[01:40 am]
lil-Inferno -- xd
[10:42 pm]
RdeRenato -- xd
[09:50 pm]
zsnakezz -- KrayZee
KrayZee shouted: Although I refuse to acknowledge the posts I made is mine.
i can relate
[09:49 pm]
zsnakezz -- double mmm with a twist
[09:48 pm]
zsnakezz -- mmm
Please log in to shout.


Members Online: Roy, etagane, jun3hong