Staredit Network > Forums > Modding Discussion > Topic: Problems with Current Modding Tools
Problems with Current Modding Tools
Mar 4 2015, 3:49 am
By: Sand Wraith
Pages: < 1 15 16 17 18 1923 >
 

Jul 31 2017, 7:53 pm Pr0nogo Post #321



SI helped me out in the shoutbox so I was able to get file extensions set up.

PyLO: the confirmation dialog box pops up about 10 billion times before you're able to close (probably only 8 times, but you know)

PyPAL: the confirmation dialog box pops up twice

PyAI/PyBIN/PyICE: since these programs interpret .bin files, they overwrite each other's associations.

PyMAP: internal error after pressing the button. I don't even know what this program does and I assume it doesn't get much use since it's still called 'dev', so if you can shed some light onto its purpose I'll put it through its paces a bit more.

PyMPQ: file association doesn't overwrite winmpq's association, but it does reset it, so I was able to select 'python' from the list of programs to associate with the filetype

PyAI/PyDAT: attempting to open multiple files results in multiple instances of the program being opened (only a big problem for PyAI I guess, unless it already reads the other file if it's in the directory?). A good solution to this problem would be for the program that's opening to read all appropriately-named files, e.g. PyDAT reads all files named images.dat, orders.dat, techdata.dat, etc etc.




Jul 31 2017, 11:59 pm poiuy_qwert Post #322

PyMS and ProTRG developer

Quote from Pr0nogo
SI helped me out in the shoutbox so I was able to get file extensions set up.
I am going to be making a change that I was hoping would make it so you are not required to run them as an administrator, hopefully you can test it out for me? If that doesn't work I can also look into adding support for asking to get elevated privileges in program.


Quote from Pr0nogo
PyLO: the confirmation dialog box pops up about 10 billion times before you're able to close (probably only 8 times, but you know)
Quote from Pr0nogo
PyPAL: the confirmation dialog box pops up twice
I can fix these.

Quote from Pr0nogo
PyAI/PyBIN/PyICE: since these programs interpret .bin files, they overwrite each other's associations.
Yeah there isn't much I can do about this. I think my only option would be making an intermediary program that would be registered for .bin, and all it would do is open the correct program depending on the filename. But that would still not be perfect, and would not really be a high priority since its a low use feature with alternative options.

Quote from Pr0nogo
PyMAP: internal error after pressing the button. I don't even know what this program does and I assume it doesn't get much use since it's still called 'dev', so if you can shed some light onto its purpose I'll put it through its paces a bit more.
PyMAP is a map editor, or at least the skeleton of one. It was more of an experiment, since I knew performance would be an issue. The UI toolkit that comes with Python is just not meant for stuff like this. It can load maps (at least the maps I tested on) and render terrain (no color cycling) and units (with iscript animations), though not much else and probably has a lot of bugs (like that button not actually having an implementation). A bunch of the work that went into it will be the basis for updates made in other programs though (iscript previewer for example). I might revisit it if I end up writing a new rendering engine for PyTILE that is performant enough.

Quote from Pr0nogo
PyMPQ: file association doesn't overwrite winmpq's association, but it does reset it, so I was able to select 'python' from the list of programs to associate with the filetype
Hmm, I don't really remember much about how that all works. Could you maybe reset WinMPQ as the .mpq handler, search your registry for WinMPQ, then export and PM me the stuff you find? It will probably be hard for me to fix this without that, or me getting access to a windows machine and doing it myself.

Quote from Pr0nogo
PyAI/PyDAT: attempting to open multiple files results in multiple instances of the program being opened (only a big problem for PyAI I guess, unless it already reads the other file if it's in the directory?). A good solution to this problem would be for the program that's opening to read all appropriately-named files, e.g. PyDAT reads all files named images.dat, orders.dat, techdata.dat, etc etc.
I'll have to think about this. That solution seems like it could be a little confusing, but maybe with some massaging it could work.

I have created a github issue to track these, thanks!




Aug 1 2017, 12:14 am Pr0nogo Post #323



Quote from poiuy_qwert
I am going to be making a change that I was hoping would make it so you are not required to run them as an administrator, hopefully you can test it out for me?
Yep, I can do that. I'll test this, and the WinMPQ association at the same time, since it's the easiest way to reset file association that I know of.

Quote from poiuy_qwert
I think my only option would be making an intermediary program that would be registered for .bin, and all it would do is open the correct program depending on the filename.
Right. I think it's honestly a super low priority thing, I'll just set default associations to whatever I'm using most frequently at that time.

Quote from poiuy_qwert
PyMAP is a map editor, or at least the skeleton of one. ... A bunch of the work that went into it will be the basis for updates made in other programs though (iscript previewer for example). I might revisit it if I end up writing a new rendering engine for PyTILE that is performant enough.
Ah ok. Sounds like both of our time would be better spent with the more modern programs? If there's anything specific you want me to look into I'll mess around with it.

Quote from poiuy_qwert
I'll have to think about this. That solution seems like it could be a little confusing, but maybe with some massaging it could work.
Gotcha. I have no idea what the backend workload for my proposed solution would be, I just figured I'd throw ideas at you and let you sort it out :P

Thanks for all your hard work, as always. Any idea when that fancy new PyTILE UI will be out?




Aug 1 2017, 1:15 am O)FaRTy1billion[MM] Post #324

👻 👾 👽 💪

Quote from Pr0nogo
Quote from poiuy_qwert
I'm pretty sure the sprite is always placed in the middle of the doodad, so you either need to apply the offset in iscript or in the GRP itself.
Center of the sprite -> center of the doodad (in pixels, not in tiles)
Huh, figures. I'll whip up a test to confirm that and if it aligns properly, all will be well. Thanks for the info.
If you look at the existing doodad GRPs, they have a very large area of empty space in the bottom.



TinyMap2 - Latest in map compression! ( 7/09/14 - New build! )
EUD Action Enabler - Lightweight EUD/EPD support! (ChaosLauncher/MPQDraft support!)
EUDDB - topic - Help out by adding your EUDs! Or Submit reference files in the References tab!
MapSketch - New image->map generator!
EUDTrig - topic - Quickly and easily convert offsets to EUDs! (extended players supported)
SC2 Map Texture Mask Importer/Exporter - Edit texture placement in an image editor!
\:farty\: This page has been viewed [img]http://farty1billion.dyndns.org/Clicky.php?img.gif[/img] times!

Aug 1 2017, 1:42 am poiuy_qwert Post #325

PyMS and ProTRG developer

Quote from Pr0nogo
Quote from poiuy_qwert
I am going to be making a change that I was hoping would make it so you are not required to run them as an administrator, hopefully you can test it out for me?
Yep, I can do that. I'll test this, and the WinMPQ association at the same time, since it's the easiest way to reset file association that I know of.
K, I'll look into that soon, thanks!

Quote from Pr0nogo
Quote from poiuy_qwert
PyMAP is a map editor, or at least the skeleton of one. ... A bunch of the work that went into it will be the basis for updates made in other programs though (iscript previewer for example). I might revisit it if I end up writing a new rendering engine for PyTILE that is performant enough.
Ah ok. Sounds like both of our time would be better spent with the more modern programs? If there's anything specific you want me to look into I'll mess around with it.
Yeah, no need to look at it, thanks though!

Quote from Pr0nogo
Thanks for all your hard work, as always. Any idea when that fancy new PyTILE UI will be out?
No problem. I'm not really sure when the new UI will be out, I still want to update more stuff, and I'm not exactly sure what I want to do with the right side yet. The current implementation should work as is though, so if you want to try it out, you can download a snapshot of the branch I'm developing it on: Direct link

Quote from O)FaRTy1billion[MM]
If you look at the existing doodad GRPs, they have a very large area of empty space in the bottom.
Yeah makes sense, thanks for confirming!




Aug 1 2017, 5:13 am Corbo Post #326

ALL PRAISE YOUR SUPREME LORD CORBO

Can we get some filters in PyDAT?

You kind of just list all units, much like staredit's tree selection DatEdit categorizes units with their type. Makes them easier to find sometimes.



fuck you all

Aug 1 2017, 4:10 pm Nekron Post #327



PyAI:

This warning is not needed I'd figure, unless it fucks the game up or something on actual modern starcraft versions. It is in a blizzard script so i'd hope not, but i'll check it in a couple hours
https://i.imgur.com/yVwQ4mG.png

This warning has terrible typos
https://i.imgur.com/VebwtF5.png

Also you can't defensebuild static defenses, smh. Was compilable and had absolutely no effect in SCAI.

On the topic of warnings, please make it possible to disable the "this unit has no weapon" warning for defensebuild_(whatever) (caster) -- casters work completely fine for capt_expand purposes and whatnot, so it's just kinda annoying for the sake of it. And if it is possible to disable already then I can't find the option to do so, smh.




Aug 1 2017, 6:32 pm poiuy_qwert Post #328

PyMS and ProTRG developer

Quote from Corbo
Can we get some filters in PyDAT?

You kind of just list all units, much like staredit's tree selection DatEdit categorizes units with their type. Makes them easier to find sometimes.
I would love to do it, but that is a fairly big deviation from how the program currently works. Also since it currently works as is (though could be improved), it will have a lower priority than other tasks. I didn't know DatEdit had that feature. Does it only do it for the Units tab? Is it an option you toggle somewhere? Can I get screenshots of it?

Quote from Nekron
This warning is not needed I'd figure, unless it fucks the game up or something on actual modern starcraft versions. It is in a blizzard script so i'd hope not, but i'll check it in a couple hours
https://i.imgur.com/yVwQ4mG.png
I'm pretty sure you can get crashes if you try to `build` normal units (like a marine). But the logic around which units can and can not be used with `build` is not documented anywhere. If I had full details on properly identifying the problems, I would have made it an error, but since I can only guess its a warning that can be ignored.

Quote from Nekron
This warning has terrible typos
https://i.imgur.com/VebwtF5.png
lol

Quote from Nekron
Also you can't defensebuild static defenses, smh. Was compilable and had absolutely no effect in SCAI.
I don't know what this means.

Quote from Nekron
On the topic of warnings, please make it possible to disable the "this unit has no weapon" warning for defensebuild_(whatever) (caster) -- casters work completely fine for capt_expand purposes and whatnot, so it's just kinda annoying for the sake of it. And if it is possible to disable already then I can't find the option to do so, smh.
I don't really know of a good way to detect that a unit is a caster. If I had that logic I could improve the detection for that warning.

The point of these warnings is that there could be an issue, but PyAI can't tell for sure if its an issue or not, so the warning will bring your attention to possible issues and you can decide if there is actually an issue or not. Unfortunately once you have decided a warning is not an issue there is no way to indicate that to PyAI going forward, so you get the same warnings over and over. I still want you to always get new warnings that come up, but allow you to suppress the warnings that you know are not an issue. So to that end, I'm thinking of adding the special directive:
@suppress_next_line(WARNING_TYPE)
So when you get a warning and decide it doesn't matter, you would add that directive right above the line of code, and it would suppress that warning going forward.

You also have to remember that PyAI isn't meant just for modding the AI for vanilla, its also for writing AI's for mods, so its a much broader issue.




Aug 1 2017, 7:28 pm Nekron Post #329



Quote from poiuy_qwert
I'm pretty sure you can get crashes if you try to `build` normal units (like a marine). But the logic around which units can and can not be used with `build` is not documented anywhere. If I had full details on properly identifying the problems, I would have made it an error, but since I can only guess its a warning that can be ignored.

It kinda looks like spellcasters aren't normal units, if by normal units you consider military. If we go by attack scripts, the exceptions to this are DA, Arbiter, Medic.

Quote from poiuy_qwert
I don't know what this means.
You could call defensebuild_gg(1, sunken_colony) in SCAIEdit 3, it seemed to have no in-game effect though.

Quote from poiuy_qwert
I don't really know of a good way to detect that a unit is a caster. If I had that logic I could improve the detection for that warning.

The game (or at least AI attack scripts) differentiates between spellcasters and military units, no idea where though. This is assuming I understand what Neiv said in the AI thread more or less correctly.
You maybe could check which units have spellcaster behaviours assigned to them and then exclude units getting called to attacks afterwards? Which reminds me, PyAI ironically has no warning for adding non-attacking casters to attacks (so everything except DA/Medic/Arbiter)
Also, here's a puzzle - I originally though you actually do differentiate between military/spellcasters and hence I might've gotten something wrong in the last post, but now after more testing I arrive at this question - Why can TSW3 (pastebin) be saved even after editing it, but a script written from ground up with "build (n) queen" shows that queen is not allowed since it's a military? Did you just hardcode an exception for the SW scripts?

Quote from poiuy_qwert
The point of these warnings is that there could be an issue, but PyAI can't tell for sure if its an issue or not, so the warning will bring your attention to possible issues and you can decide if there is actually an issue or not. Unfortunately once you have decided a warning is not an issue there is no way to indicate that to PyAI going forward, so you get the same warnings over and over. I still want you to always get new warnings that come up, but allow you to suppress the warnings that you know are not an issue. So to that end, I'm thinking of adding the special directive:
@suppress_next_line(WARNING_TYPE)
So when you get a warning and decide it doesn't matter, you would add that directive right above the line of code, and it would suppress that warning going forward.
Would love to be able to suppress warnings, clicking 'em away gets a little tedious when I'm saving the same goddamn capt_expand defensebuild high_templar script 25 times a day

Post has been edited 3 time(s), last time on Aug 1 2017, 7:38 pm by Nekron.




Aug 2 2017, 12:20 am poiuy_qwert Post #330

PyMS and ProTRG developer

Quote from Nekron
Quote from poiuy_qwert
I'm pretty sure you can get crashes if you try to `build` normal units (like a marine). But the logic around which units can and can not be used with `build` is not documented anywhere. If I had full details on properly identifying the problems, I would have made it an error, but since I can only guess its a warning that can be ignored.

It kinda looks like spellcasters aren't normal units, if by normal units you consider military. If we go by attack scripts, the exceptions to this are DA, Arbiter, Medic.
If I decompile and test all the blizzard scripts, I only get warnings for queen and defiler. Anyway, if we can get Neiv to look at how the game actually handles the command, I can take a look at updating the type of the parameter or the warning logic, but until then it will probably stay as is. You will just have to switch to using `train` or just ignore (and eventually supress) the warnings.

Quote from Nekron
Quote from poiuy_qwert
I don't know what this means.
You could call defensebuild_gg(1, sunken_colony) in SCAIEdit 3, it seemed to have no in-game effect though.
You can still do that, PyAI just warns you that it might be wrong. And, like you said, it doesn't work, so PyAI is correct and you should fix your code. If you really want to do it for some reason, just ignore (and eventually suppress) the warning.

Quote from Nekron
Quote from poiuy_qwert
I don't really know of a good way to detect that a unit is a caster. If I had that logic I could improve the detection for that warning.

The game (or at least AI attack scripts) differentiates between spellcasters and military units, no idea where though. This is assuming I understand what Neiv said in the AI thread more or less correctly.
You maybe could check which units have spellcaster behaviours assigned to them and then exclude units getting called to attacks afterwards?
What is that check though? If someone can give a way to detect units that can damage other units outside of normal attacks from the files in the mpq, in a way that supports mods, I can look into it. But i'm pretty sure there is no good way.

Quote from Nekron
Which reminds me, PyAI ironically has no warning for adding non-attacking casters to attacks (so everything except DA/Medic/Arbiter)
The defensebuild_xx and defenseuse_xx commands are specific to defending against ground or air units, so it checks that the units you chose to defend with have a valid attack for the type they are defending against. Generic attacks don't have that requirement, so it doesn't do those checks.

Quote from Nekron
Also, here's a puzzle - I originally though you actually do differentiate between military/spellcasters and hence I might've gotten something wrong in the last post, but now after more testing I arrive at this question - Why can TSW3 (pastebin) be saved even after editing it, but a script written from ground up with "build (n) queen" shows that queen is not allowed since it's a military? Did you just hardcode an exception for the SW scripts?
That script does not compile without warnings for me, and I don't see any way to not get warnings for it. If you can provide more details on how to get it to not show warnings, I can look into that. And no, I have not hardcoding an exception for those scripts, that makes no sense lol




Aug 2 2017, 1:19 am O)FaRTy1billion[MM] Post #331

👻 👾 👽 💪

Quote from poiuy_qwert
Quote from Corbo
Can we get some filters in PyDAT?

You kind of just list all units, much like staredit's tree selection DatEdit categorizes units with their type. Makes them easier to find sometimes.
I would love to do it, but that is a fairly big deviation from how the program currently works. Also since it currently works as is (though could be improved), it will have a lower priority than other tasks. I didn't know DatEdit had that feature. Does it only do it for the Units tab? Is it an option you toggle somewhere? Can I get screenshots of it?


units.dat is indeed the only one that has it, but they all apparently let you sort by properties. xD



TinyMap2 - Latest in map compression! ( 7/09/14 - New build! )
EUD Action Enabler - Lightweight EUD/EPD support! (ChaosLauncher/MPQDraft support!)
EUDDB - topic - Help out by adding your EUDs! Or Submit reference files in the References tab!
MapSketch - New image->map generator!
EUDTrig - topic - Quickly and easily convert offsets to EUDs! (extended players supported)
SC2 Map Texture Mask Importer/Exporter - Edit texture placement in an image editor!
\:farty\: This page has been viewed [img]http://farty1billion.dyndns.org/Clicky.php?img.gif[/img] times!

Aug 2 2017, 7:32 am Nekron Post #332



Quote from poiuy_qwert
That script does not compile without warnings for me, and I don't see any way to not get warnings for it. If you can provide more details on how to get it to not show warnings, I can look into that. And no, I have not hardcoding an exception for those scripts, that makes no sense lol

So let's make an important distinction here. Warning=/=Variable error. Typing "build(1, infested_terran, 80) gives you a variable error and you can't save the script. Typing "defensebuild_gg(1, sunken_colony)" gives you a variable error and you can't save the script. Checking TSW3 (And other TSW scripts with "build caster") gives you a warning and you can save the script succesfully, should you decide to edit it. You wrote above that defensebuild sunken gives you a warning, but that's not true. I have the newest PyAI and it gives you a variable error (expected military, got building)

Quote from poiuy_qwert
The defensebuild_xx and defenseuse_xx commands are specific to defending against ground or air units, so it checks that the units you chose to defend with have a valid attack for the type they are defending against. Generic attacks don't have that requirement, so it doesn't do those checks.

You maybe misunderstood me? When I say non-attacking spellcasters I don't mean "spellcasting units that don't have an attack" - I mean "spellcasting units that don't execute attack orders properly" - all spellcasters except the three mentioned get stuck in the grouping area, and don't follow the attack party once it is ready to go. That is improper execution, so it seems warning-worthy to me. Seeing that Neiv found them listed by IDs somewhere it has to be distinguishable somehow, if not just listed on a case by case basis.

Quote from poiuy_qwert
What is that check though? If someone can give a way to detect units that can damage other units outside of normal attacks from the files in the mpq, in a way that supports mods, I can look into it. But i'm pretty sure there is no good way.

Just from Firegraft it looks like every unit has a spellcasting behaviour assigned, where one of the behaviours is no behaviour at all, obviously used for most units in the game - so the check is whether or not the unit ID has a spellcaster behaviour (other than the blank one) assigned. This should be a mod-happy solution since I imagine you'd want to assign a spellcaster behaviour to your new spellcasters in a mod. It also lets you make use of hero units, well, if they're already supported in PyAi anyway.




Aug 2 2017, 11:27 am Pr0nogo Post #333



PyTILE: How do you import multiple groups at once? I tried with one image and it makes copies of the same group for all entries it creates. I also tried with everything split into single (32 pixels high) groups and I can't select more than one, so I have no idea if that works.

edit: I've messed around with sprite overlays a bit more, extending their width and height to match the doodad they belong to and filling everything else with empty space (the transparent black color). However, none of that extra space seems to take into effect in SCMDraft - it just creates a perfect outline around the graphic. PyGRP previews the red outline as around the graphic as well, with no empty space shown (though the green outline seems to be seeing some extra space? it's not accurate to the dimensions of the bmp though).


SCMDraft shot


PyGRP shot

The bmp I'm using for the frame is 96x96.

Post has been edited 1 time(s), last time on Aug 2 2017, 3:21 pm by Pr0nogo.




Aug 2 2017, 4:45 pm Neiv Post #334



`build` only works on buildings, workers and overlords. Anything else just causes AI waste a bit of time trying to build something it can not.

The military opcodes should accept any non-building unit.

If the AI's defensebuild_xy list only has units whose air/ground strength is 0 (e.g it has no weapon), then the game will freeze due to an infinite loop in the reinforcing code. Otherwise it should just make AI train defense units even if they cannot attack the enemy, and I could see using defensebuild to make AI build more casters being reasonable. `defensebuild_xy` on static defense doesn't make any sense though.

The four spellcasters which stay in the attack preparation region are hardcoded, but otherwise any unit should be fine to use in attacks. If they can't do anything they'll just hang around, but they should move correctly with rest of the attack force and not break the AI in any way.

--

I also tried the 64-bit branch. MPQs seemed to work fine, but the registry accessing code throws the error `OpenKey() takes no keyword arguments` in python 2.7.13. I don't have a 32-bit installation to check if anything broke on that side though.



None.

Aug 2 2017, 11:40 pm poiuy_qwert Post #335

PyMS and ProTRG developer

Quote from Nekron
Quote from poiuy_qwert
That script does not compile without warnings for me, and I don't see any way to not get warnings for it. If you can provide more details on how to get it to not show warnings, I can look into that. And no, I have not hardcoding an exception for those scripts, that makes no sense lol

So let's make an important distinction here. Warning=/=Variable error. Typing "build(1, infested_terran, 80) gives you a variable error and you can't save the script. Typing "defensebuild_gg(1, sunken_colony)" gives you a variable error and you can't save the script. Checking TSW3 (And other TSW scripts with "build caster") gives you a warning and you can save the script succesfully, should you decide to edit it. You wrote above that defensebuild sunken gives you a warning, but that's not true. I have the newest PyAI and it gives you a variable error (expected military, got building)
Yes there is some confusion caused by this :P When you use "sunken_colony" from the built in unitdef.txt, it is typed as "military", if you just use the unit id "146" or the name from stat_txt "Zerg Sunken Colony", it will be untyped. You will get errors for using variables as parameters of the wrong type because they are explicitly typed. Now when decompiling scripts, PyAI tries to find variables with the correct type to decompile to, and if it can't it will use the stat_txt name or just the ID. So if you notice when TSW3 gets decompiled, it generates "build(x, Zerg Queen, y)" instead of "build(x, queen, y)", because the "build" command has a "building" parameter and the variable "queen" is defined as a military type. So yeah if you really wanted to you could do "defensebuild_gg(1, Zerg Sunken Colony)" or "defensebuild_gg(1, 146)" and you would only get warnings.

Quote from Nekron
Quote from poiuy_qwert
The defensebuild_xx and defenseuse_xx commands are specific to defending against ground or air units, so it checks that the units you chose to defend with have a valid attack for the type they are defending against. Generic attacks don't have that requirement, so it doesn't do those checks.

You maybe misunderstood me? When I say non-attacking spellcasters I don't mean "spellcasting units that don't have an attack" - I mean "spellcasting units that don't execute attack orders properly" - all spellcasters except the three mentioned get stuck in the grouping area, and don't follow the attack party once it is ready to go. That is improper execution, so it seems warning-worthy to me. Seeing that Neiv found them listed by IDs somewhere it has to be distinguishable somehow, if not just listed on a case by case basis.
Quote from Neiv
The four spellcasters which stay in the attack preparation region are hardcoded, but otherwise any unit should be fine to use in attacks. If they can't do anything they'll just hang around, but they should move correctly with rest of the attack force and not break the AI in any way.
Yeah I could add this as a warning. Would you happen to have those 4 hardcoded ID's?

Quote from Nekron
Quote from poiuy_qwert
What is that check though? If someone can give a way to detect units that can damage other units outside of normal attacks from the files in the mpq, in a way that supports mods, I can look into it. But i'm pretty sure there is no good way.

Just from Firegraft it looks like every unit has a spellcasting behaviour assigned, where one of the behaviours is no behaviour at all, obviously used for most units in the game - so the check is whether or not the unit ID has a spellcaster behaviour (other than the blank one) assigned. This should be a mod-happy solution since I imagine you'd want to assign a spellcaster behaviour to your new spellcasters in a mod. It also lets you make use of hero units, well, if they're already supported in PyAi anyway.
FireGraft edits hardcoded values in the starcraft exe, it does not use files from the mpq's, it is not something that can be done in PyMS. I was thinking about this last night though, what I could do is add another directive or something that can be placed in your scripts or in unitdef.txt, like "@spellcaster(x)". That way I can define the vanilla ones in unitdef.txt, and mod authors can make their own definitions.

Quote from Neiv
`build` only works on buildings, workers and overlords. Anything else just causes AI waste a bit of time trying to build something it can not.
Do you know why overlords and workers included in this? Do you also have the specific logic used for these checks? Like is it checking units.dat special ability flags for building and workers (or hardcoded ID's for workers), and overlord is hardcoded unit ID? Right now I believe my overlord check is not based on unit id but on if its not a building && provides supply, which could be wrong.

Quote from Neiv
The military opcodes should accept any non-building unit.
Yep.

Quote from Neiv
If the AI's defensebuild_xy list only has units whose air/ground strength is 0 (e.g it has no weapon), then the game will freeze due to an infinite loop in the reinforcing code. Otherwise it should just make AI train defense units even if they cannot attack the enemy, and I could see using defensebuild to make AI build more casters being reasonable. `defensebuild_xy` on static defense doesn't make any sense though.
Hmm, I could look into adding a warning for that freeze, though it wouldn't be perfect. Otherwise sounds good to me.

Quote from Neiv
I also tried the 64-bit branch. MPQs seemed to work fine, but the registry accessing code throws the error `OpenKey() takes no keyword arguments` in python 2.7.13. I don't have a 32-bit installation to check if anything broke on that side though.
Nice, thanks man! You're awesome! I have fixed that error if you have a chance to retest it.

Thanks!




Aug 3 2017, 4:14 am Pr0nogo Post #336



PyMPQ: Option to click and drag file/s from the mpq to a folder in windows explorer.




Aug 3 2017, 10:32 am Suicidal Insanity Post #337

I see you !

Quote from Pr0nogo
PyTILE: How do you import multiple groups at once? I tried with one image and it makes copies of the same group for all entries it creates. I also tried with everything split into single (32 pixels high) groups and I can't select more than one, so I have no idea if that works.

edit: I've messed around with sprite overlays a bit more, extending their width and height to match the doodad they belong to and filling everything else with empty space (the transparent black color). However, none of that extra space seems to take into effect in SCMDraft - it just creates a perfect outline around the graphic. PyGRP previews the red outline as around the graphic as well, with no empty space shown (though the green outline seems to be seeing some extra space? it's not accurate to the dimensions of the bmp though).


SCMDraft shot


PyGRP shot

The bmp I'm using for the frame is 96x96.

In your example its possible the GRP dimensions are the full size, but the box you are looking at is probably the size of the current frame. (That is why the box constantly changes when looking at a missile turret.)




Aug 3 2017, 2:40 pm poiuy_qwert Post #338

PyMS and ProTRG developer

Quote from Pr0nogo
PyTILE: How do you import multiple groups at once? I tried with one image and it makes copies of the same group for all entries it creates. I also tried with everything split into single (32 pixels high) groups and I can't select more than one, so I have no idea if that works.
Stacking them in one image should work, it doesn't support multiple files. I'll have to take a look when I get home.

Quote from Pr0nogo
edit: I've messed around with sprite overlays a bit more, extending their width and height to match the doodad they belong to and filling everything else with empty space (the transparent black color). However, none of that extra space seems to take into effect in SCMDraft - it just creates a perfect outline around the graphic. PyGRP previews the red outline as around the graphic as well, with no empty space shown (though the green outline seems to be seeing some extra space? it's not accurate to the dimensions of the bmp though).


SCMDraft shot


PyGRP shot

The bmp I'm using for the frame is 96x96.
Hmm, there could be a bug in PyGRP. Can I get the .bmp you are using and the .grp created from it?

Quote from Pr0nogo
PyMPQ: Option to click and drag file/s from the mpq to a folder in windows explorer.
I wanted to add this before and have had it requested from others as well, but previously it was not possible to do with the UI engine used in PyMS. From a quick google it looks like there may be some new libraries that could support this, so I can take another look. Don't get your hopes up too high though.




Aug 3 2017, 2:55 pm Pr0nogo Post #339



Quote from poiuy_qwert
Stacking them in one image should work, it doesn't support multiple files. I'll have to take a look when I get home.
Definitely wasn't working as intended, unless I had some options ticked incorrectly or something? If I imported a 512x96 bmp (three groups), it would create the appropriate amount of groups but they'd all be the same graphic. Any chance of supporting multiple files in the future? I have 865 groups I need to add in (with a few hundred more to come) and doing them mostly one at a time would be a massive pain, especially since this is just for one of the many tilesets.

Quote from poiuy_qwert
Hmm, there could be a bug in PyGRP. Can I get the .bmp you are using and the .grp created from it?
Sure. BMP and GRP.

Quote from poiuy_qwert
I wanted to add this before and have had it requested from others as well, but previously it was not possible to do with the UI engine used in PyMS. From a quick google it looks like there may be some new libraries that could support this, so I can take another look. Don't get your hopes up too high though.
Hm, okay. It's a feature in WinMPQ and sorely missed in PyMPQ. Hope it works out.




Aug 3 2017, 3:28 pm poiuy_qwert Post #340

PyMS and ProTRG developer

Quote from Pr0nogo
Quote from poiuy_qwert
Stacking them in one image should work, it doesn't support multiple files. I'll have to take a look when I get home.
Definitely wasn't working as intended, unless I had some options ticked incorrectly or something? If I imported a 512x96 bmp (three groups), it would create the appropriate amount of groups but they'd all be the same graphic.
That is an issue, no option should make that happen.

Quote from Pr0nogo
Any chance of supporting multiple files in the future? I have 865 groups I need to add in (with a few hundred more to come) and doing them mostly one at a time would be a massive pain, especially since this is just for one of the many tilesets.
I can look into it.

Quote from Pr0nogo
Quote from poiuy_qwert
Hmm, there could be a bug in PyGRP. Can I get the .bmp you are using and the .grp created from it?
Sure. BMP and GRP.
I'll look into it when I get home.

Quote from Pr0nogo
Quote from poiuy_qwert
I wanted to add this before and have had it requested from others as well, but previously it was not possible to do with the UI engine used in PyMS. From a quick google it looks like there may be some new libraries that could support this, so I can take another look. Don't get your hopes up too high though.
Hm, okay. It's a feature in WinMPQ and sorely missed in PyMPQ. Hope it works out.
Yep, me too.




Options
Pages: < 1 15 16 17 18 1923 >
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[12:43 am]
jjf28 -- KrayZee
KrayZee shouted: Fast forwarding 24 years later, I just felt a little nostalgic about it. Instead you responded like an asshat
:peach: :hat:
[10:41 pm]
lil-Inferno -- memes brother
[10:30 pm]
KrayZee -- Fast forwarding 24 years later, I just felt a little nostalgic about it. Instead you responded like an asshat
[10:28 pm]
KrayZee -- I know that's the point... I just never heard of this website until now and I don't get late 90s vibes with SEN.
[09:57 pm]
Slyence -- Dem0n
Dem0n shouted: wow it's almost like that's the point
I literally lold
[09:14 pm]
Dem0n -- wow it's almost like that's the point
[08:03 pm]
KrayZee -- Dem0n
Dem0n shouted: https://bounding.net/ is the best source for maps
Feels like late 90s and early 2000s with the layout and StarCraft 1 theme.
[2022-1-15. : 11:46 pm]
Slyence -- :(
[2022-1-15. : 11:46 pm]
Slyence -- string thumbsUp = " :thumbsup: ");
[2022-1-15. : 11:45 pm]
Slyence -- string thumbsUp = ":thumbup:");
Please log in to shout.


Members Online: Roy, TheHappy115