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 16 17 18 19 2023 >
 

Aug 3 2017, 4:21 pm Pr0nogo Post #341



Hopefully an easier feature to add in PyTILE: keyboard shortcut for applying all flags to group? Would help with having to click twice for each group you're editing.

Something like:
Ctrl+Alt+F - applies flip flags to group
Ctrl+Alt+W - applies walkable flags to group
Ctrl+Alt+H - applies height flags to group
Ctrl+Alt+B - applies block view flags to group
Ctrl+Alt+R - applies ramp flags to group
Ctrl+Alt+A - applies all flags to group
Ctrl+Alt+N - toggle 'exclude null tiles' option

Or you could eschew the Alt component of the shortcut since I don't think Ctrl+F is used in PyTILE, which would make it slightly more simplistic, but that's up to you.

On another note, for the times when you want to make copies of your doodads that are graphically identical but have different height levels, would you just import the group again and apply the flags, or would you have to make some visual change to the tiles for them to not inherit the flags of the identical megas/minis? This is for things like jungle/high jungle or temple/high temple that are aesthetically identical but have different height levels (and if they're doodads, they're placed on different tiletypes).




Aug 3 2017, 9:08 pm poiuy_qwert Post #342

PyMS and ProTRG developer

Quote from Pr0nogo
Hopefully an easier feature to add in PyTILE: keyboard shortcut for applying all flags to group? Would help with having to click twice for each group you're editing.

Something like:
Ctrl+Alt+F - applies flip flags to group
Ctrl+Alt+W - applies walkable flags to group
Ctrl+Alt+H - applies height flags to group
Ctrl+Alt+B - applies block view flags to group
Ctrl+Alt+R - applies ramp flags to group
Ctrl+Alt+A - applies all flags to group
Ctrl+Alt+N - toggle 'exclude null tiles' option

Or you could eschew the Alt component of the shortcut since I don't think Ctrl+F is used in PyTILE, which would make it slightly more simplistic, but that's up to you.
I can look into this.

Quote from Pr0nogo
On another note, for the times when you want to make copies of your doodads that are graphically identical but have different height levels, would you just import the group again and apply the flags, or would you have to make some visual change to the tiles for them to not inherit the flags of the identical megas/minis? This is for things like jungle/high jungle or temple/high temple that are aesthetically identical but have different height levels (and if they're doodads, they're placed on different tiletypes).
There is no obvious straight forward way to do this right now. I have thought of adding a duplicate option or something like that, but have not looked into it yet. It can be accomplished right now with the import system. What you want to do is import the graphics again, and make sure you have the "Reuse minitiles" options enabled, but not the "Reuse megatiles" options. I will look into adding a better way for this, but it will probably be a lower priority for now.

The list of enhancements for PyTILE are starting to pile up :P




Aug 3 2017, 10:27 pm Pr0nogo Post #343



Quote from poiuy_qwert
What you want to do is import the graphics again, and make sure you have the "Reuse minitiles" options enabled, but not the "Reuse megatiles" options. I will look into adding a better way for this, but it will probably be a lower priority for now.
Right on, as long as there's a way to accomplish it (even if it's a roundabout one) I'll be able to make it work. You're right to keep it lower priority given everything else on the list haha.

Quote from Pr0nogo
Double-clicking on any square in the painter fills the entire megatile with the desired property - e.g. when mid (orange) is selected in height, double clicking on any minitile makes the entire megatile mid-height.
Right-clicking on any square in the painter resets the megatile to what it was before you started applying properties - for when you mess up and want to go back to basic. This feature isn't as useful as the fill feature but I know I'd use it.
I don't think these are nearly as high priority now that the 'apply flags to all megatiles in group' function is back online. This is a massive luxury to have - so much so that I'd go out on a limb and say it probably isn't worth the backend work required to make it happen.

New request: field to enter string ID from stat_txt.tbl corresponding to a doodad's `group` field. Would make sorting doodads much less irritating (don't have to scroll for half a minute for each doodad, etc).






Aug 3 2017, 11:19 pm poiuy_qwert Post #344

PyMS and ProTRG developer

Quote from Pr0nogo
Quote from Pr0nogo
Double-clicking on any square in the painter fills the entire megatile with the desired property - e.g. when mid (orange) is selected in height, double clicking on any minitile makes the entire megatile mid-height.
Right-clicking on any square in the painter resets the megatile to what it was before you started applying properties - for when you mess up and want to go back to basic. This feature isn't as useful as the fill feature but I know I'd use it.
I don't think these are nearly as high priority now that the 'apply flags to all megatiles in group' function is back online. This is a massive luxury to have - so much so that I'd go out on a limb and say it probably isn't worth the backend work required to make it happen.
Well its on the list, it will probably eventually get in. But yeah, low priority :P

Quote from Pr0nogo
New request: field to enter string ID from stat_txt.tbl corresponding to a doodad's `group` field. Would make sorting doodads much less irritating (don't have to scroll for half a minute for each doodad, etc).

Yeah that is something I have wanted to add for a while, but it didn't really work for the old UI. That will be part of the UI overhaul i'm doing. Have you tried out the snapshot with the new main window palette?




Aug 4 2017, 12:15 am Pr0nogo Post #345



Quote from poiuy_qwert
Have you tried out the snapshot with the new main window palette?
What do you mean?




Aug 4 2017, 4:22 am poiuy_qwert Post #346

PyMS and ProTRG developer

Quote from Pr0nogo
Quote from poiuy_qwert
Have you tried out the snapshot with the new main window palette?
What do you mean?
I was talking about this:
Quote from poiuy_qwert
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
Though now I realize I haven't added back a way to get to the group palette window yet, so it wont actually be useful to you.




Aug 4 2017, 7:12 pm Pr0nogo Post #347



PyAI: when saving the files as new files, is it possible to make the filenames default to aiscript.bin and bwscript.bin instead of having to type them manually?




Aug 4 2017, 7:29 pm poiuy_qwert Post #348

PyMS and ProTRG developer

Quote from Pr0nogo
PyAI: when saving the files as new files, is it possible to make the filenames default to aiscript.bin and bwscript.bin instead of having to type them manually?
Good point, I can add that for a few programs. Github issue




Aug 5 2017, 7:56 pm poiuy_qwert Post #349

PyMS and ProTRG developer

Quote from Pr0nogo
PyMPQ - after selecting a file to add to a directory, you must click on the subject line to type (WinMPQ sets the subject line as the focus immediately) and you must click 'Ok' instead of pressing enter (WinMPQ doesn't require this step).
This is fixed.

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 can't reproduce the issue. When I import that bmp the GRP is created properly. Can you give me detailed steps to reproduce the issue? Are you creating a new grp? What settings are you using to import?


Hey Pr0nogo, can you test a new flow layout I'm hoping to use for the new PyTILE UI? If you download this snapshot (don't replace the PyMS you actually use), you should be able to run "Libs\FlowView.py" to get a test program. If you could mess around with it by resizing, scrolling, tabbing around the text fields, and just make sure it works alright? It doesn't actually do anything, its just to test laying out the views. If you restart it a few times, it randomly generates different view combinations for testing. If everything goes well, I'll probably start updating the PyTILE UI to use it :) Thanks!


Edit:
Quote from poiuy_qwert
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.
This is now fixed.

Post has been edited 1 time(s), last time on Aug 5 2017, 8:13 pm by poiuy_qwert.




Aug 5 2017, 9:34 pm Neiv Post #350



Quote from poiuy_qwert
Yeah I could add this as a warning. Would you happen to have those 4 hardcoded ID's?
Defiler, Queen, Vessel, and High Templar.

Quote from poiuy_qwert
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.
Overlord check is hardcoded unit id, workers I'm not 100% sure but BW should be checking the units.dat worker flag.

Quote from poiuy_qwert
Nice, thanks man! You're awesome! I have fixed that error if you have a chance to retest it.

Thanks!
Ok, it works fine now.



None.

Aug 5 2017, 11:37 pm poiuy_qwert Post #351

PyMS and ProTRG developer

Quote from Neiv
Quote from poiuy_qwert
Yeah I could add this as a warning. Would you happen to have those 4 hardcoded ID's?
Defiler, Queen, Vessel, and High Templar.
Noted, thanks!

Quote from Neiv
Quote from poiuy_qwert
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.
Overlord check is hardcoded unit id, workers I'm not 100% sure but BW should be checking the units.dat worker flag.
Noted, thanks!

Quote from Neiv
Quote from poiuy_qwert
I have fixed that error if you have a chance to retest it.
Ok, it works fine now.
Awesome, I've merged it in. Thanks for testing it!




Aug 5 2017, 11:42 pm Pr0nogo Post #352



Quote from poiuy_qwert
I can't reproduce the issue. When I import that bmp the GRP is created properly. Can you give me detailed steps to reproduce the issue? Are you creating a new grp? What settings are you using to import?
I had opened an old GRP (the one I sent you) and it happened, I didn't test with a new one because I'm a bit of a dunce. I'll mess around with it more and see what happens.

Quote from poiuy_qwert
Hey Pr0nogo, can you test a new flow layout I'm hoping to use for the new PyTILE UI? If you download this snapshot (don't replace the PyMS you actually use), you should be able to run "Libs\FlowView.py" to get a test program. If you could mess around with it by resizing, scrolling, tabbing around the text fields, and just make sure it works alright? It doesn't actually do anything, its just to test laying out the views. If you restart it a few times, it randomly generates different view combinations for testing. If everything goes well, I'll probably start updating the PyTILE UI to use it :) Thanks!
I messed with it quite a bit, tabbing, resizing, typing, etc and no problems so far.

Will check out the updates to PyTILE soon-ish as well. Thanks!




Aug 7 2017, 8:49 am Pr0nogo Post #353



PyTILE's update seems to work as intended. Thanks for fixing that.

PyTRG: can we open default trg files without extracting them from the MPQs? I didn't see a way but I didn't look very hard.
Is the syntax identical to SCMDraft's text trigger editor, or is there a different way it needs to be written for it to be accepted?
Bug: File path does not update after using save as.

PyMPQ: Internal error when attempting to save an archive (in this case, an exe) while its open. It should just inform you that you forgot to close the file :P
It would be nice to have PyMPQ default to all files or all supported files instead of mpqs. I mostly edit exes.

Post has been edited 2 time(s), last time on Aug 7 2017, 9:01 am by Pr0nogo.




Aug 7 2017, 4:20 pm poiuy_qwert Post #354

PyMS and ProTRG developer

Quote from Pr0nogo
Quote from poiuy_qwert
I can't reproduce the issue. When I import that bmp the GRP is created properly. Can you give me detailed steps to reproduce the issue? Are you creating a new grp? What settings are you using to import?
I had opened an old GRP (the one I sent you) and it happened, I didn't test with a new one because I'm a bit of a dunce. I'll mess around with it more and see what happens.
K

Quote from Pr0nogo
Quote from poiuy_qwert
Hey Pr0nogo, can you test a new flow layout I'm hoping to use for the new PyTILE UI? If you download this snapshot (don't replace the PyMS you actually use), you should be able to run "Libs\FlowView.py" to get a test program. If you could mess around with it by resizing, scrolling, tabbing around the text fields, and just make sure it works alright? It doesn't actually do anything, its just to test laying out the views. If you restart it a few times, it randomly generates different view combinations for testing. If everything goes well, I'll probably start updating the PyTILE UI to use it :) Thanks!
I messed with it quite a bit, tabbing, resizing, typing, etc and no problems so far.

Will check out the updates to PyTILE soon-ish as well. Thanks!
Awesome. Here is a peak at the new interface (which uses the flow layout):

Working on doodads next. Any comments/ideas for the new UI?

Quote from Pr0nogo
PyTILE's update seems to work as intended. Thanks for fixing that.
Great, np.

Quote from Pr0nogo
PyTRG: can we open default trg files without extracting them from the MPQs? I didn't see a way but I didn't look very hard.
I don't think so at the moment. I have plans for better support for MPQ integration in all programs.

Quote from Pr0nogo
Is the syntax identical to SCMDraft's text trigger editor, or is there a different way it needs to be written for it to be accepted?
It uses its own syntax. There are details in the PyTRG Docs (one of the few programs with at least some docs :P)

Quote from Pr0nogo
Bug: File path does not update after using save as.
Noted, thanks.

Quote from Pr0nogo
PyMPQ: Internal error when attempting to save an archive (in this case, an exe) while its open. It should just inform you that you forgot to close the file :P
Hmm, I'll have to look into this. It shouldn't error like that...

Quote from Pr0nogo
It would be nice to have PyMPQ default to all files or all supported files instead of mpqs. I mostly edit exes.
I don't think I have control over that unfortunately. I can look into it though.

Post has been edited 1 time(s), last time on Aug 7 2017, 4:32 pm by poiuy_qwert.




Aug 7 2017, 5:20 pm Pr0nogo Post #355



Quote from poiuy_qwert
Awesome. Here is a peak at the new interface (which uses the flow layout):

Working on doodads next. Any comments/ideas for the new UI?
Honestly that looks incredible. Makes group editing super easy, at least on paper. I'll use it extensively and provide more actionable feedback when it ships, for sure.

For doodads, it'd be nice to be able to make any group a doodad group, and to preview overlays similar to how PyLO's grp previewer works, but I don't know how realistic either of those features are.

Quote from poiuy_qwert
It uses its own syntax. There are details in the PyTRG Docs
Ok, thanks for letting me know. I'll pop it open and see what's going on, since the syntax went through correctly but the changes aren't taking into effect when I start a melee match. I was able to get some stuff done by editing a template file using PyGOT but it doesn't include everything possible via triggers, obviously.

Quote from poiuy_qwert
I don't think I have control over that unfortunately. I can look into it though.
You might be able to remove all specific file associations with the open dialog (so it's forced to look for all files), but idk if that screws with file associations when opening mpq files. Not a big deal ultimately but would knock a few clicks out of the workflow.

PyGRP: On my system it seems to take a while to extract frames. Is this a known issue?

PyDAT: Ability to read external tbl and grp files for text and image previews would be nice. If we could open EXE files like DatEdit, even better.

PyMPQ: Delete hotkey for removing items doesn't work.

Post has been edited 3 time(s), last time on Aug 7 2017, 5:56 pm by Pr0nogo.




Aug 7 2017, 9:57 pm Neiv Post #356



Could PyDAT display the exact range in weapons.dat? Both PyDAT and DatEdit display the range as half-tiles, which doesn't really make much sense. BW cares about every pixel of the range, and some melee units have range by default that is not divisible by 16. For example Broodlings and Zerglings both show their range as 0 in PyDAT, but their ranges aren't actually equal (at least before the .dat is saved, I don't know if the range gets rounded on save)

Post has been edited 1 time(s), last time on Aug 7 2017, 10:03 pm by Neiv.



None.

Aug 8 2017, 3:28 am poiuy_qwert Post #357

PyMS and ProTRG developer

Quote from Pr0nogo
For doodads, it'd be nice to be able to make any group a doodad group, and to preview overlays similar to how PyLO's grp previewer works, but I don't know how realistic either of those features are.
Making any group a doodad group is not possible, that is just how the file format is (groups >= 1024 are doodad groups). I do have plans to split doodad editing into its own tab, which should improve a bunch of things. I also have plans to update the way doodads are edited entirely, including a previewer for overlays.

Quote from Pr0nogo
Quote from poiuy_qwert
It uses its own syntax. There are details in the PyTRG Docs
Ok, thanks for letting me know. I'll pop it open and see what's going on, since the syntax went through correctly but the changes aren't taking into effect when I start a melee match. I was able to get some stuff done by editing a template file using PyGOT but it doesn't include everything possible via triggers, obviously.
Did you save them as .got compatible? (button next to save as, or Ctrl+G) The .trg files used for game templates need to be "headerless", which can be accomplished in PyTRG with the mentioned button, and you can use PyGOT to strip/add the header from existing .trg files.

Quote from Pr0nogo
Quote from poiuy_qwert
I don't think I have control over that unfortunately. I can look into it though.
You might be able to remove all specific file associations with the open dialog (so it's forced to look for all files), but idk if that screws with file associations when opening mpq files. Not a big deal ultimately but would knock a few clicks out of the workflow.
Oh yeah I could have done that no problem, but I didn't want to get rid of the option to filter to specific types. Anyway, this was just a brain fart and I must have misread your suggestion. I just did what you said and added another option for "Any MPQ", so it should be fixed (I didn't increase the version for this because its trivial, so you wont get a "new version" alert, but there is a new version)

Quote from Pr0nogo
PyGRP: On my system it seems to take a while to extract frames. Is this a known issue?
This is not a known issue. What is a while? How many frames and of what size are you extracting? What bmp style are you extracting with? Is it only for specific grps, or all?

Quote from Pr0nogo
PyDAT: Ability to read external tbl and grp files for text and image previews would be nice. If we could open EXE files like DatEdit, even better.
This is already possible. Just add your mpq/exe to the MPQ Settings at the highest priority and it will load your mods files. You can also load external .tbl files in the TBL Settings if you wanted (you can not with GRP's, they must come from the MPQ's)

Quote from Pr0nogo
PyMPQ: Delete hotkey for removing items doesn't work.
Weird, i'll look into it.

Quote from Neiv
Could PyDAT display the exact range in weapons.dat? Both PyDAT and DatEdit display the range as half-tiles, which doesn't really make much sense. BW cares about every pixel of the range, and some melee units have range by default that is not divisible by 16. For example Broodlings and Zerglings both show their range as 0 in PyDAT, but their ranges aren't actually equal (at least before the .dat is saved, I don't know if the range gets rounded on save)
Yeah, I'm not really sure why it did that, I guess I just assumed DatEdit had it correct. I have changed this, thanks!




Aug 8 2017, 5:44 am Pr0nogo Post #358



Quote from poiuy_qwert
Making any group a doodad group is not possible, that is just how the file format is (groups >= 1024 are doodad groups). I do have plans to split doodad editing into its own tab, which should improve a bunch of things. I also have plans to update the way doodads are edited entirely, including a previewer for overlays.
Sounds awesome, looking forward to testing it out.

Quote from poiuy_qwert
Did you save them as .got compatible? (button next to save as, or Ctrl+G) The .trg files used for game templates need to be "headerless", which can be accomplished in PyTRG with the mentioned button, and you can use PyGOT to strip/add the header from existing .trg files.
Doing this solved my issue. Thanks!

Quote from poiuy_qwert
I just did what you said and added another option for "Any MPQ", so it should be fixed (I didn't increase the version for this because its trivial, so you wont get a "new version" alert, but there is a new version)
Great, that's exactly what I needed. Thanks!

Quote from poiuy_qwert
This is not a known issue. What is a while? How many frames and of what size are you extracting? What bmp style are you extracting with? Is it only for specific grps, or all?
I'll do some more thorough testing tomorrow but I was extracting ~230 frames from a compressed grp and it was taking over 30 seconds. Happened with two grps. Might have been something unrelated, I'll get back to you on it.

Quote from poiuy_qwert
This is already possible. Just add your mpq/exe to the MPQ Settings at the highest priority and it will load your mods files. You can also load external .tbl files in the TBL Settings if you wanted (you can not with GRP's, they must come from the MPQ's)
Great, I'll play around with this and let you know if there are any pain points.




Aug 8 2017, 4:34 pm Nekron Post #359



Last edit: Either one of "reinstall Python, reinstall PyAI, disable additional info saving, copypaste scripts from scratch" resolved all my issues below, HOWEVER please read the post for the feature requests - I bolded the edits with them so that they're easier to spot. I'm leaving the errors so that if they're somehow related to PyAI and not just to my stuff corrupting somewhere along the way, you can correct them

PyAI error, starting with context:

only openable z3 script for reference - https://pastebin.com/raw/Tvk1iyzY

z3e .txt export before it crashes - https://pastebin.com/raw/80cVc1GG

intended z3e - https://pastebin.com/raw/dWp0Wtgc

result on previous saved bwscript: all scripts open up, E is shown correctly, A-D show the same version of E as D does now - I thought it's a minor display error somehow, since it seemed to work fine in-game, though it required rewriting the scripts a little since it wasn't possible to save after changing with the doubled Z3E0000 block

PyAI version used: the newest one for the entire duration of this BWscript's existence

result while opening z3a-e except d - (btw I can't copy this from the error box itself for some ungodly reason - there is no copy button)
Quote
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1542, in __call__
return self.func(*args)
File "C:\Python27\lib\lib-tk\Tkinter.py", line 592, in callit
func(*args)
File "C:\Scripts\PyMS-master\PyAI.pyw", line 1177, in load
warnings = self.parent.ai.decompile(self, self.parent.extdefs, self.parent.reference.get(), 1, self.ids)
File "C:\Scripts\PyMS-master\Libs\AIBIN.py", line 1701, in decompile
w = self.bwscript.decompile(f, (self.externaljumps,extjumps), values, shortlabel, [id], False)
File "C:\Scripts\PyMS-master\Libs\AIBIN.py", line 1998, in decompile
jump[cmdn] = labelnames.getkey(namenum)
File "C:\Scripts\PyMS-master\Libs\utils.py", line 1437, in getkey
return self.keynames[n]
IndexError: list index out of range
for the record, re-saving->opening ZBE3 didn't fix the issue

Feature request edit 1:

As Neiv found out (God bless him), AI towns that have over 100 lines of build + upgrade (upgrade 1, 2, 3 count as 3 separate lines) + tech corrupt other towns (causing a SC crash). PyAI doesn't seem to check for this currently, please make it check. Since it's on a town-by-town basis it has to somehow check according to the scripts flow, and not just adding up all the stuff in the script, since that would invalidate scripts with multiple variations and expansions. B/t/u commands in a loop add up until there's 100+ of them and then corrupt another town: which means PyAI should also warn or just downright prevent b/t/u commands in a loop. I don't know how easy is this for you to implement, but since it's a stability issue I believe that it should be a high priority change. An example of script that caused crashes because of this issue and was not caught by PyAI would be ZB8A in this paste https://pastebin.com/raw/sSUy7xSH (with ZB8D approaching something like 95 b/t/u commands in each variation)

Feature request edit 2:

There is also still no warning for over 20 defensebuild_xy units of a given type (for clarity, you can have 80 max in total, from aa+gg+ag+ga) (going over 20 of a type makes the over-20 ones not count) p_q pleas implement

Edit:
(issue resolved after reinstall etc, as written above)
https://pastebin.com/raw/F9vRCrcg (ctrl+f "block1"), not fixable, writing in this script https://pastebin.com/raw/bQN0r2Ys and translating->saving it still resulted in the block1 invasion after reopening it.

Post has been edited 7 time(s), last time on Aug 9 2017, 11:32 am by Nekron.




Aug 9 2017, 5:45 pm poiuy_qwert Post #360

PyMS and ProTRG developer

Quote from Pr0nogo
Quote from poiuy_qwert
Did you save them as .got compatible? (button next to save as, or Ctrl+G) The .trg files used for game templates need to be "headerless", which can be accomplished in PyTRG with the mentioned button, and you can use PyGOT to strip/add the header from existing .trg files.
Doing this solved my issue. Thanks!
:thumbup:

Quote from Pr0nogo
Quote from poiuy_qwert
This is not a known issue. What is a while? How many frames and of what size are you extracting? What bmp style are you extracting with? Is it only for specific grps, or all?
I'll do some more thorough testing tomorrow but I was extracting ~230 frames from a compressed grp and it was taking over 30 seconds. Happened with two grps. Might have been something unrelated, I'll get back to you on it.
If you also send me the GRP you are testing with I can look into it a little more as well.

Quote from Pr0nogo
Quote from poiuy_qwert
This is already possible. Just add your mpq/exe to the MPQ Settings at the highest priority and it will load your mods files. You can also load external .tbl files in the TBL Settings if you wanted (you can not with GRP's, they must come from the MPQ's)
Great, I'll play around with this and let you know if there are any pain points.
:thumbup:

Quote from Nekron
Last edit: Either one of "reinstall Python, reinstall PyAI, disable additional info saving, copypaste scripts from scratch" resolved all my issues below, HOWEVER please read the post for the feature requests - I bolded the edits with them so that they're easier to spot. I'm leaving the errors so that if they're somehow related to PyAI and not just to my stuff corrupting somewhere along the way, you can correct them

PyAI error, starting with context:

only openable z3 script for reference - https://pastebin.com/raw/Tvk1iyzY

z3e .txt export before it crashes - https://pastebin.com/raw/80cVc1GG

intended z3e - https://pastebin.com/raw/dWp0Wtgc

result on previous saved bwscript: all scripts open up, E is shown correctly, A-D show the same version of E as D does now - I thought it's a minor display error somehow, since it seemed to work fine in-game, though it required rewriting the scripts a little since it wasn't possible to save after changing with the doubled Z3E0000 block

PyAI version used: the newest one for the entire duration of this BWscript's existence

result while opening z3a-e except d - (btw I can't copy this from the error box itself for some ungodly reason - there is no copy button)
Quote
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1542, in __call__
return self.func(*args)
File "C:\Python27\lib\lib-tk\Tkinter.py", line 592, in callit
func(*args)
File "C:\Scripts\PyMS-master\PyAI.pyw", line 1177, in load
warnings = self.parent.ai.decompile(self, self.parent.extdefs, self.parent.reference.get(), 1, self.ids)
File "C:\Scripts\PyMS-master\Libs\AIBIN.py", line 1701, in decompile
w = self.bwscript.decompile(f, (self.externaljumps,extjumps), values, shortlabel, [id], False)
File "C:\Scripts\PyMS-master\Libs\AIBIN.py", line 1998, in decompile
jump[cmdn] = labelnames.getkey(namenum)
File "C:\Scripts\PyMS-master\Libs\utils.py", line 1437, in getkey
return self.keynames[n]
IndexError: list index out of range
for the record, re-saving->opening ZBE3 didn't fix the issue
Yeah I believe this is from the "additional info saving". I have seen some issues before around it. I don't think it is a very useful feature, it was more of an experiment, and I don't think anyone uses it, so I plan to just remove it entirely.

Quote from Nekron
Feature request edit 1:

As Neiv found out (God bless him), AI towns that have over 100 lines of build + upgrade (upgrade 1, 2, 3 count as 3 separate lines) + tech corrupt other towns (causing a SC crash). PyAI doesn't seem to check for this currently, please make it check. Since it's on a town-by-town basis it has to somehow check according to the scripts flow, and not just adding up all the stuff in the script, since that would invalidate scripts with multiple variations and expansions. B/t/u commands in a loop add up until there's 100+ of them and then corrupt another town: which means PyAI should also warn or just downright prevent b/t/u commands in a loop. I don't know how easy is this for you to implement, but since it's a stability issue I believe that it should be a high priority change. An example of script that caused crashes because of this issue and was not caught by PyAI would be ZB8A in this paste https://pastebin.com/raw/sSUy7xSH (with ZB8D approaching something like 95 b/t/u commands in each variation)
This is not something that is currently feasible, and is very complex to implement. I would also probably have/want to re-write the entire save/load/decompile/interpret code to accomplish this. This also why the "loop missing wait" check is not perfect. I have wanted to implement "simulating" scripts to detect runtime issues like these for a while. I have noted this in a github issue, but I don't have any plans to actually do it at the moment, sorry.

Quote from Nekron
Feature request edit 2:

There is also still no warning for over 20 defensebuild_xy units of a given type (for clarity, you can have 80 max in total, from aa+gg+ag+ga) (going over 20 of a type makes the over-20 ones not count) p_q pleas implement
I can do a very basic check across the script, but this has the same issue as the one above. Unless I "simulate" the script, I can't tell if you are adding too many in a loop, or that multiple build orders are used and none of the individual build orders exceed that max.

Quote from Nekron
https://pastebin.com/raw/F9vRCrcg (ctrl+f "block1"), not fixable, writing in this script https://pastebin.com/raw/bQN0r2Ys and translating->saving it still resulted in the block1 invasion after reopening it.
I have no idea what this means :P




Options
Pages: < 1 16 17 18 19 2023 >
  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: TechEela, Roy