Sealvester Posted February 14, 2020 Share Posted February 14, 2020 I think I'm running into the same issue hinka is. What I did to get this error is as follows: 1. I load the debug level and import a map png. 2. I add a unit to the map. 3. Save, and watch my terminal puke: Saving D:/FEHacking/lex-talionis/Editor/../Data/LevelDEBUG/MapSprite.png (a 240x160 image)... libpng error: profile 'sRGB': 2000000h: length does not match profile Loading D:/FEHacking/lex-talionis/Editor/../Data/LevelDEBUG/MapSprite.png (a 0x0 image)... Saved LevelDEBUG QPainter::begin: Paint device returned engine == 0, type: 3 QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 3 QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 3 QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 3 QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 3 QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 3 QPainter::end: Painter not active, aborted For reference that map sprite I'm importing is the same png image that's on the GitLab wiki (fe8map1.png). It looks like a sRGB error causes the level's MapSprite to get overwritten with a 0x0 png (which explains why QPainter flipped its lid). Here's my startup: pygame 1.9.6 Hello from the pygame community. https://www.pygame.org/contribute.html Debug: 1 ERROR! No words.txt file found in the data directory. Version: v0.9.3.14 libpng warning: iCCP: known incorrect sRGB profile libpng warning: sBIT: invalid Setting Seed 0 A bunch of KeyErrors for other and enemy2 team map animations are printed (no idea if that's expected behavior or not), and after that is this: Loading ..\Data\LevelDEBUG/MapSprite.png (a 0x0 image)... Properties Units QPainter::begin: Paint device returned engine == 0, type: 3 QPainter::end: Painter not active, aborted I'm almost positive that sRGB profile error is what's causing this. I wonder if it's because of a PyQt5 update. My PyQt5 is Version: 5.14.1, could that cause issues? Or is it something weirder? Oh yeah and hi I like your engine/fangame. Quote Link to comment Share on other sites More sharing options...
rainlash Posted February 14, 2020 Author Share Posted February 14, 2020 11 hours ago, Sealvester said: I think I'm running into the same issue hinka is. Are you running the Level Editor executable or did you just clone the Git Repo? If you just cloned the Git repo, can you pull down the latest update I made to the Level Editor and do the exact same thing again (using the fe8map1.png file you already have)? If that doesn't work, I also updated the fe8map1.png file from the wiki -- can you try that one? I do not receive this error on the computer I'm currently working on -- I don't even get the libpng warnings that you get. Which obviously makes testing to try and solve the error very difficult. I have PyQt5 5.13.1 on this machine so I don't know for sure whether it is a PyQt error. But when I get back home to my desktop later today, I should be able to check further. I remember that it does sometimes have those libpng warnings, so I'll test these changes there. Other people seem to have this problem too -- I'm trying to solve it from the code side of things so that nobody else runs into this issue, but it seems everyone else just removes the iCCP/sRGB nonsense from their png files... https://gist.github.com/bluenex/0af2f41fda9954df73a8 https://wiki.archlinux.org/index.php/Libpng_errors Sorry that I don't have anything more concrete -- Just replying back so you know I am looking into the problem. Your error messages have been a big help. Quote Link to comment Share on other sites More sharing options...
Sealvester Posted February 15, 2020 Share Posted February 15, 2020 6 hours ago, rainlash said: Are you running the Level Editor executable or did you just clone the Git Repo? If you just cloned the Git repo, can you pull down the latest update I made to the Level Editor and do the exact same thing again (using the fe8map1.png file you already have)? If that doesn't work, I also updated the fe8map1.png file from the wiki -- can you try that one? I do not receive this error on the computer I'm currently working on -- I don't even get the libpng warnings that you get. Which obviously makes testing to try and solve the error very difficult. I have PyQt5 5.13.1 on this machine so I don't know for sure whether it is a PyQt error. But when I get back home to my desktop later today, I should be able to check further. I remember that it does sometimes have those libpng warnings, so I'll test these changes there. Other people seem to have this problem too -- I'm trying to solve it from the code side of things so that nobody else runs into this issue, but it seems everyone else just removes the iCCP/sRGB nonsense from their png files... https://gist.github.com/bluenex/0af2f41fda9954df73a8 https://wiki.archlinux.org/index.php/Libpng_errors Sorry that I don't have anything more concrete -- Just replying back so you know I am looking into the problem. Your error messages have been a big help. Changing the map PNG to the new one in the wiki fixed the issue for me, and yeah I cloned the Git repo to get the engine. Thanks for the extra information on this specific issue! Quote Link to comment Share on other sites More sharing options...
Kyogokudo Posted February 15, 2020 Share Posted February 15, 2020 Hey there ! I've been using your engine for over a year now and I love it. It's really intuitive and flexible. Promoting an unit while in the base changes the background and music used. The background is the one used for the preparations screen and the music is the first one in the introScript. I didn't notice any messages/errors in the console or debug logs. Here's the video : https://www.youtube.com/watch?v=gxmBXQVNIlA Can you lock a promotion to a specific item/event while keeping the auto promote option (like Ike) ? This one is a bit tricky and completly optionnal. Would it be possible to add the BEXP system from the Tellius games ? There is already a function for giving exp to an unit (used for exp potions) so I wonder what else would be needed. Setting the amount of bexp earned can probably be done with game constants. Again this is more for theorycrafting than anything, I'm just curious. x) I don't mind looking into the code to do these things as I've already added a bunch of small things (like a paragon skill or leadership stars). I'm far from being knowledgeable about this and especially pygame though. Quote Link to comment Share on other sites More sharing options...
rainlash Posted February 17, 2020 Author Share Posted February 17, 2020 On 2/15/2020 at 3:59 PM, Kyogokudo said: Promoting an unit while in the base changes the background and music used. The background is the one used for the preparations screen and the music is the first one in the introScript. I didn't notice any messages/errors in the console or debug logs. Here's the video : https://www.youtube.com/watch?v=gxmBXQVNIlA The latest update to the git repo should fix these issues you've experienced -- I think the issue with the promotion music was that your promotion music was the same as the base or non-existent -- that should be fixed. Also, I'll have a new build of the executable with the updates sometime soon. On 2/15/2020 at 3:59 PM, Kyogokudo said: Can you lock a promotion to a specific item/event while keeping the auto promote option (like Ike) ? What do you mean by "Lock a promotion to a specific item/event while keeping the auto promote option"? Do you mean that you want to be able to not allow certain units to auto promote, but by default regular units should be able to auto-promote? If so, I can add a unit or class tag that says "No auto-promote" and have the engine respect that. On 2/15/2020 at 3:59 PM, Kyogokudo said: This one is a bit tricky and completly optionnal. Would it be possible to add the BEXP system from the Tellius games ? There is already a function for giving exp to an unit (used for exp potions) so I wonder what else would be needed. Setting the amount of bexp earned can probably be done with game constants. Again this is more for theorycrafting than anything, I'm just curious. x) It's definitely possible, and not particularly difficult -- just time on my part. I envision it requires adding 2 additional states to the game, and several ancillary functions, game constants, and an event command, which will take some time to code up. I can add it to the to-do list though. Glad to hear you are enjoying the Engine! If you've managed to add paragon and leadership stars, then you might have enough experience to make the BEXP system yourself... Did you make the leadership stars actually appear on the Info Screen? Quote Link to comment Share on other sites More sharing options...
Kyogokudo Posted February 17, 2020 Share Posted February 17, 2020 1 hour ago, rainlash said: The latest update to the git repo should fix these issues you've experienced -- I think the issue with the promotion music was that your promotion music was the same as the base or non-existent -- that should be fixed. Also, I'll have a new build of the executable with the updates sometime soon. It works now, thanks ! I never defined the promotion music in the constants so that must be why. 1 hour ago, rainlash said: What do you mean by "Lock a promotion to a specific item/event while keeping the auto promote option"? Do you mean that you want to be able to not allow certain units to auto promote, but by default regular units should be able to auto-promote? If so, I can add a unit or class tag that says "No auto-promote" and have the engine respect that. Sorry for the confusion, but yes that's what I was asking for. 1 hour ago, rainlash said: It's definitely possible, and not particularly difficult -- just time on my part. I envision it requires adding 2 additional states to the game, and several ancillary functions, game constants, and an event command, which will take some time to code up. I can add it to the to-do list though. Glad to hear you are enjoying the Engine! If you've managed to add paragon and leadership stars, then you might have enough experience to make the BEXP system yourself... Did you make the leadership stars actually appear on the Info Screen? Yes they do appear on the Info Screen, only as a number though. Still that sounds way too difficult for me, especially dealing with states. x) Take your time, I'll look into it too. Quote Link to comment Share on other sites More sharing options...
Itshinka Posted February 19, 2020 Share Posted February 19, 2020 pygame 1.9.6 Hello from the pygame community. https://www.pygame.org/contribute.html Debug: 1 ERROR! No words.txt file found in the data directory. Version: v0.9.3.12 libpng warning: iCCP: known incorrect sRGB profile libpng warning: sBIT: invalid Setting Seed 0 DLL load failed while importing manhattan_sphere: The parameter is incorrect. Fast manhattan sphere generation not available. Falling back on default Python implementation. DLL load failed while importing LOS: The parameter is incorrect. Fast line of sight calculation not available. Falling back on default Python implementation. DLL load failed while importing fast_pathfinding: The parameter is incorrect. Fast pathfinding not available. Falling back on default Python implementation. This is what I get when I open the program and the MapSprite.png is changed to empty. I then get all the map animations missing and then Properties Units QPainter::begin: Paint device returned engine == 0, type: 3 QPainter::end: Painter not active, aborted QPainter::begin: Paint device returned engine == 0, type: 3 QPainter::end: Painter not active, aborted... (Infinite until map import) I also get this when I import and save: libpng error: profile 'GIMP built-in sRGB': B0AD3675h: length does not match profile Saved LevelDEBUG Sorry for taking so long, I had a lot of school work. Quote Link to comment Share on other sites More sharing options...
Itshinka Posted February 19, 2020 Share Posted February 19, 2020 Here is something new that happened after I pulled the recent version. Everything from the folder, including the files you had in there, were cleared when I tried to save before importing. Quote Link to comment Share on other sites More sharing options...
rainlash Posted February 19, 2020 Author Share Posted February 19, 2020 51 minutes ago, Itshinka said: Here is something new that happened after I pulled the recent version. Everything from the folder, including the files you had in there, were cleared when I tried to save before importing. What do you mean by this? I'm not sure I understand. But just to check, you are still getting the empty MapSprite.png error with the latest version of the Level Editor? It should say v0.9.3.14b at the top. What image length and width does it output to the console when it loads and saves the MapSprite? I was hoping the latest Level Editor update, because it loads the image on import and then saves over it with a new format, would remove the issue you are having. For instance, when you import a new image to use as the Map Sprite, that image should be overwritten immediately. You can tell this because the filesize should change. I was hoping this new image would not have the sRGB length bug that you and Sealvester ran into. Quote Link to comment Share on other sites More sharing options...
Itshinka Posted February 19, 2020 Share Posted February 19, 2020 When I pulled from the git, LevelDEBUG had a bunch of other files in it as well, which I assume were your things. They were all deleted. Yes, that is the correct version. However, I noticed something new after updating. If I save before importing, I can see the map go away. The editor’s map changes to white if you save before importing. Quote Link to comment Share on other sites More sharing options...
Kyogokudo Posted February 26, 2020 Share Posted February 26, 2020 Opening the minimap in a map with snags in it crashes the game with this error: Error! Unrecognized Minimap Key Snag === === === === === === Damn. Another bug :( Quick! Copy this error log and send it to rainlash! Or send the file "Saves/debug.log.1" to rainlash! Thank you! === === === === === === *** Lex Talionis Engine Version 0.9.3.16 *** Main Crash argument 1 must be pygame.Surface, not None Created save point at last turn change! Select Continue in Main Menu to load! === === === === === === Quickly looked at Minimap.py, snags aren't handled in the handle_key function. I have no idea how all of this works though so I can't fix it at the moment. Quote Link to comment Share on other sites More sharing options...
rainlash Posted February 26, 2020 Author Share Posted February 26, 2020 20 minutes ago, Kyogokudo said: Quickly looked at Minimap.py, snags aren't handled in the handle_key function. I have no idea how all of this works though so I can't fix it at the moment. Thanks for the bug report! Here's an easy fix: Go to your Data/terrain.xml. Navigate to the Snag terrain and change its minimap key from <minimap>Snag</minimap> to something else that is a valid key, maybe like <minimap>Thicket</minimap>. I never used the Snag terrain in the Lion Throne and must never have caught that I put an incorrect minimap key for that terrain. I've updated the git repo terrain.xml to fix this bug also. Quote Link to comment Share on other sites More sharing options...
Bastionb56 Posted March 1, 2020 Share Posted March 1, 2020 Hey, I'm kinda new to this whole fan gaming scene so sorry if my question was already answered somewhere but I'm really enjoying using the engine so far and facing a particular problem: I want to have a win condition, where the boss needs to be fought with a specific weapon to get the "good" ending to the chapter. So I would need to have an If condition in the interactScript that checks if one of the units is the enemy boss (In this case his name would be "Hilaru") and he is fought (Doesn't matter if he dies) with a specific weapon (In this case a spell called "Cleanse"). Additionally I also would like the character that is casting the spell to also be specified, but it's not a priority, just used for some flavor text. Thanks in advance ^^ Quote Link to comment Share on other sites More sharing options...
rainlash Posted March 1, 2020 Author Share Posted March 1, 2020 (edited) On 3/1/2020 at 3:55 AM, Bastionb56 said: I want to have a win condition, where the boss needs to be fought with a specific weapon to get the "good" ending to the chapter. So I would need to have an If condition in the interactScript that checks if one of the units is the enemy boss (In this case his name would be "Hilaru") and he is fought (Doesn't matter if he dies) with a specific weapon (In this case a spell called "Cleanse"). Additionally I also would like the character that is casting the spell to also be specified, but it's not a priority, just used for some flavor text. Since you specified that "Cleanse" is a spell, we don't have to worry about counterattacks, which makes writing the if condition in the interactScript simpler. First, we check that the defending unit (self.unit2) is named "Hilaru". Then we check that the attacking unit's (self.unit) first item (which would be the item they're using if they're using a weapon or spell) is named "Cleanse". If so, set that we have unlocked the good ending for this level. if;self.unit2 and self.unit2.name == 'Hilaru' if;self.unit.items and self.unit.items[0].name == 'Cleanse' set_level_constant;good_ending end end Later, in the outro_script, you can check to see if "good_ending" is set in the level constants: if;"good_ending" in gameStateObj.level_constants and change the ending if so. The unit that attacked with the spell is referred to as self.unit in if statements. If you want that unit to speak, you can use {unit} in dialogue commands. Although, the interactScript is called after combat, so you'll need to use the fightScript if you want it to happen before combat. This if statement should work there too. Like so: if;self.unit2 and self.unit2.name == 'Hilaru' if;self.unit.items and self.unit.items[0].name == 'Cleanse' set_level_constant;good_ending u;{unit};Left s;{unit};Take that, Hilaru! r;{unit} end end If you wanted something more complicated, I would recommend foregoing using the interactScript and rather have the spell apply a specific status on hit that lasts forever. Then you can at the end of the level, just check to see if Hilaru has that status. if;any(unit.name == 'Hilaru' and 'Cleanse_Status' in [s.id for s in unit.status_effects] for unit in gameStateObj.allunits). But this should suit your needs for now. Edited March 2, 2020 by rainlash need to specify that Cleanse_Status checks against status ids Quote Link to comment Share on other sites More sharing options...
Bastionb56 Posted March 1, 2020 Share Posted March 1, 2020 (edited) Thank you so much for responding so quickly, yes this is absolutely what I needed. I can’t believe I didn’t find this out on my own, it’s so easy after all! Maybe I'll use the status method for a later chapter again (Seeing as it allows for a lot more cool things like "Cleanse all enemies in 12 turns" or something) So thank you very much ^^ Update: Just tested it out, works like a charm! I also adjusted the fightScript.txt so that each mage that can use the spell (in this case only two) has a unique quote when using it! if;self.unit2 and self.unit2.name == 'Hilaru' if;self.unit.items and self.unit.items[0].name == 'Cleanse' set_level_constant;good_ending if;self.unit and self.unit.name == 'Nina' u;Nina;Left s;Nina;This is what you made this spell for father... I will make you proud! r;Nina elif;self.unit and self.unit.name == 'Alice' u;Alice;Left s;Alice;Sigh... If this "Cleanse" spell works then... I'm gonna have some questions for that kid. r;Alice #Make Alice talk to Nina in the outro set_level_constant;alice_cleanse end end end Very happy with the results, so thank you very much! ^^ Edited March 2, 2020 by Bastionb56 Quote Link to comment Share on other sites More sharing options...
axelloid Posted March 5, 2020 Share Posted March 5, 2020 Right from the Level Editor. Lastest version: And there it open the editor as if there were no more problems (haven't tried to go further though) Quote Link to comment Share on other sites More sharing options...
rainlash Posted March 5, 2020 Author Share Posted March 5, 2020 3 hours ago, axelloid said: Right from the Level Editor. Lastest version: That's not a problem -- the Engine is just informing you of missing map sprites. For instance, there is no "other" team (green) Myrmidon class map sprite, so it yells at you. You can safely ignore it if you don't care because you don't plan on using an "other" team Myrmidon in your game. However, if you do plan on using an "other" team Myrmidon, then you best pay attention because when you boot up that level in Engine, it'll display the unit as a Citizen. Quote Link to comment Share on other sites More sharing options...
axelloid Posted March 5, 2020 Share Posted March 5, 2020 24 minutes ago, rainlash said: That's not a problem -- the Engine is just informing you of missing map sprites. For instance, there is no "other" team (green) Myrmidon class map sprite, so it yells at you. You can safely ignore it if you don't care because you don't plan on using an "other" team Myrmidon in your game. However, if you do plan on using an "other" team Myrmidon, then you best pay attention because when you boot up that level in Engine, it'll display the unit as a Citizen. Ok, I'll pay attention on which units I do need for them no to be shown as Citizens xD Quote Link to comment Share on other sites More sharing options...
Kyogokudo Posted March 7, 2020 Share Posted March 7, 2020 Hey there ! Got a couple more issues/questions, I hope you don't mind. The victory screen displays odd results when the map objective isn't either kill boss or rout. I've had it displaying 20 turns for a survive 14 turns map (I call the win_game and victory screen methods in turnChangeScript) and for escape objectives it just defaults to no MVP and 0 turns. Looking at older posts, you said adding a screenshot feature was easy and that you only needed to map it to a key. Could you add it ? The loot village AI acts weirdly when there's destructible tiles other than villages (such as snags). I guess that the IA is coded to go for anything that is destructible but it somehow just stands near a snag and doesn't even destroy it. Is there any way I could change it so it would only go for destructible villages ? Quote Link to comment Share on other sites More sharing options...
BBHood217 Posted March 8, 2020 Share Posted March 8, 2020 Healing in Absolution doesn't seem to get tracked by the records, the two healers are constantly at the very bottom of the MVP rankings. I wonder if it has something to do with the fact that heals there are staffs instead of light magic like in the Lion Throne. Quote Link to comment Share on other sites More sharing options...
rainlash Posted March 9, 2020 Author Share Posted March 9, 2020 On 3/7/2020 at 3:52 PM, Kyogokudo said: The victory screen displays odd results when the map objective isn't either kill boss or rout. I've had it displaying 20 turns for a survive 14 turns map (I call the win_game and victory screen methods in turnChangeScript) and for escape objectives it just defaults to no MVP and 0 turns. Unfortunately, you can't call both `win_game` and `victory_screen` in the same script. `win_game` doesn't have any effect until the event script completes. Once the script completes, then the Engine then checks to see if `win_game` was called and does a lot of cleaning up and changing of state. So if you call `victory_screen`, `victory_screen` will look at the results from your last win -- which, in your case, is going to be the results from the last level. Basically, call `victory_screen` in the outroScript unless you have a good reason not to, since the outroScript is guaranteed to occur after `win_game` is called. I've updated the wiki to make this more clear. On 3/7/2020 at 3:52 PM, Kyogokudo said: Looking at older posts, you said adding a screenshot feature was easy and that you only needed to map it to a key. Could you add it ? Yes. In the newest version of the Engine, v0.9.3.18, there is now a dedicated, unchangeable screenshot key. Since there doesn't seem to be any standard, except Window's "Alt + PrtScn" / "Win + Alt + PrtScn", I chose the grave/backquote key (`). You can find it generally at the top left of the keyboard -- the symbol under the ~ symbol. You don't need to press shift. Pressing this key will output a screenshot called "Lex_Talionis_{current_datetime}.png" to the current directory. Hopefully, you find this useful. On 3/7/2020 at 3:52 PM, Kyogokudo said: The loot village AI acts weirdly when there's destructible tiles other than villages (such as snags). I guess that the IA is coded to go for anything that is destructible but it somehow just stands near a snag and doesn't even destroy it. Is there any way I could change it so it would only go for destructible villages ? The newest version of the Engine now has support for two additional secondary AIs. AI #10 will approach any destructible tile that does not also have HP (so something like a destroy-able village). AI #11 will approach any tile with HP. I also changed a couple of the AI presets in the ai_presets.txt file to better reflect these changes. The AI you were probably using had a secondary AI that approached both destructible and HP tiles, but could not interact with HP tiles. The "PursueVillage" preset AI now only pursues non-HP destructible tiles, like its name suggests. The "PursueTile" AI pursues HP tiles, and the new "PursueVillageTile" AI pursues both. On 3/7/2020 at 9:36 PM, BBHood217 said: Healing in Absolution doesn't seem to get tracked by the records, the two healers are constantly at the very bottom of the MVP rankings. I wonder if it has something to do with the fact that heals there are staffs instead of light magic like in the Lion Throne. I've also fixed this in the latest version of the Engine. The difference was actually that Absolution had set experience for staffs, which meant the game never needed to calculate the amount of healing done. All of these changes above are in the latest version of the engine, v0.9.3.18, which is currently available on the git repo. I'll build it and post it to the usual place sometime later today. Quote Link to comment Share on other sites More sharing options...
Kyogokudo Posted March 10, 2020 Share Posted March 10, 2020 Thanks ! On 3/9/2020 at 10:26 PM, rainlash said: Unfortunately, you can't call both `win_game` and `victory_screen` in the same script. `win_game` doesn't have any effect until the event script completes. Once the script completes, then the Engine then checks to see if `win_game` was called and does a lot of cleaning up and changing of state. So if you call `victory_screen`, `victory_screen` will look at the results from your last win -- which, in your case, is going to be the results from the last level. Basically, call `victory_screen` in the outroScript unless you have a good reason not to, since the outroScript is guaranteed to occur after `win_game` is called. I've updated the wiki to make this more clear. Oh I understand now. Thing is, I do have a reason to call victory_screen outside the outroScript. For the chapters I mentionned there are interactions between units, but calling interact_unit just ends the outroScript so I have to call it in turnChange or escape. Guess I'll do without the victory screen for now. Quote Link to comment Share on other sites More sharing options...
TheeBill Posted March 14, 2020 Share Posted March 14, 2020 (edited) How complete is the overworld feature? I'm looking to include it in my project but there's no documentation available on it. The update txt file mentions that it's incomplete but a quick peek at the code shows that there's currently a lot available. I wouldn't even mind writing some code for that (I've already done some slight modifications already on my own) but I have no idea where to look lol. All I want is to be able to move the party between chapters with the option for side chapters. Is that too out of reach at the moment? Edited March 14, 2020 by TheeBill Quote Link to comment Share on other sites More sharing options...
rainlash Posted March 14, 2020 Author Share Posted March 14, 2020 3 hours ago, TheeBill said: How complete is the overworld feature? I honestly haven't taken a look at it in a while. It's on my todo list, but very far down. I do know that the last time I looked at it, you could place a party on the overworld and move them between chapters, but I think the integration with event scripts was still buggy. If you want to try it out, just set overworld=1 in constants.ini and fill out the Data/overworld_data.txt file. My DataSacredStones/ folder in the git repo has an example that I was using. The Data/overworld_script.txt file controls what happens in the overworld (although this may be buggy). It looks for "ow_trigger" calls from other scripts and then does them in order when the overworld is first displayed after every chapter. You can find all the overworld event commands in Dialogue.py (line 367+). There's no documentation on what the commands do anywhere. If you do manage to get something working on your end, let me know, because that would be pretty awesome! Quote Link to comment Share on other sites More sharing options...
TheeBill Posted March 14, 2020 Share Posted March 14, 2020 1 hour ago, rainlash said: If you do manage to get something working on your end, let me know, because that would be pretty awesome! I got something a few hours after posting the original message. But I've since hit a wall. Here's a gif link to what it looks like so far: https://gyazo.com/f990061e40fb50317416320d98c576ca I can only pretty much display the character and the map. Movement works somewhat. For some reason pressing up once makes me do a weird up and down motion. It's only the second press and after that takes me to the location properly. The locations are also in reverse order for some reason (Randall starts on location 1 instead of 0). Aside from that movement seems fine. That's pretty much where everything breaks down though lol. I'll write up the issues I ran into: If I happen to click literally anywhere on the map except Randall, the game crashes. Sometimes, Randall becomes unresponsive if I release and re-activate control of him a few times. Doing anything except moving the cursor crashes the game I think (i.e pressing x). I can't seem to get triggers working at all. It crashes the game before the map even shows up. Fortunately (maybe?), all crash logs I've encountered so far seem to go back to the same thing with a map attribute being type None: Spoiler *** Lex Talionis Engine Version 0.9.3.16 *** Main Crash 'NoneType' object has no attribute 'width' Traceback (most recent call last): File "main.py", line 115, in <module> main() File "main.py", line 42, in main run(gameStateObj, metaDataObj) File "main.py", line 60, in run mapSurf, repeat = gameStateObj.stateMachine.update(eventList, gameStateObj, metaDataObj) File "C:\Users\anon\Github\lex-talionis\Code\StateMachine.py", line 198, in update update_output = self.state[-1].update(gameStateObj, metaDataObj) File "C:\Users\anon\Github\lex-talionis\Code\StateMachine.py", line 260, in update gameStateObj.cameraOffset.update(gameStateObj) File "C:\Users\anon\Github\lex-talionis\Code\CustomObjects.py", line 488, in update gameStateObj.set_camera_limits() File "C:\Users\anon\Github\lex-talionis\Code\GameStateObj.py", line 455, in set_camera_limits if self.cameraOffset.x > (self.map.width - GC.TILEX): # Need this minus to account for size of screen AttributeError: 'NoneType' object has no attribute 'width' So I'm hoping it's a quick fix that maybe I could even do as I look at it more. I think that the non-crash movement issues are probably on me though because I'm still just barely understanding how the routes work. Here's my overworld_data.txt if you're curious. Spoiler # Level ID ; Location Name ; Icon Index ; Position # The positions are multiplied by 8 for some reason. ===Locations # 503, 326 0;Milthon Grove;0;63,40 # 529, 312 1;Redrun Village;1;66,39 # Route connections (between level id's); Route (numpad) ===Routes 0,1;8,2 1,0;2,8 # Party ID must be integer ; Party name (must be character) ===Parties 0;Randall Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.