This topic is for discussion of map #1319: FPS: Ported Over
(https://knucklecracker.com/creeperworld4/queryMaps.php?query=thumbnailid&id=1319)
Author: qople
Size: 255x161
Clever and enjoyable. Took me a sec to realize that I could only create 2 portals. Very handy.
I'm literally just 20 seconds into the map; but I have to stop before finishing it. I just have to.
I love it! That little "jump" animation going into the portal; my god. The modding going into this mode is becoming really something...so creative! Well done. I'm going to have a blast finishing this map, I'm sure.
Okay now that high expectations have been set; off to have fun. Lol.
Fantastic map, but I did run into a bug. I was on the last little island and, as usual, was using the auto-fire. I was switching to a different weapon and accidentally switched to the portal gun. By a complete fluke I managed to put two portals right by each other on the edge of a cliff. Unfortunately one of them was at my feet and it teleported me to the other one. However, I wasn't "on" the portal but on the edge of it, meaning that my body was right over the edge of the cliff. Due to that I couldn't move away and could never put a portal underneath me. I basically got into a no-win situation since the last item to pick up needed me to be closer to it to activate it. It's definitely not worth a huge look into, but thought I'd bring it to your attention. Thanks for a really fun map, even with the bug!
Yet another great FPS map.
I had to retry the map twice due to getting insta-killed when stepping through a portal I thought was safe, but it wasn't.
Teleporting through the stargates drops the player outside of the stargate, which in both of my reset cases, was into a pool of creeper that drained my life before I could re-activate the portal.
I think that either give the player a few seconds of invulnerability after using a stargate to escape these sorts of situations, or implement the "select a destination" mode for 2-gate networks, so that the player has a chance to see where they are going to end up, and can abort if the destination is unsafe.
Other than that, I enjoyed my 3 playthroughs of this map.
Quote from: mzimmer74 on April 12, 2021, 10:10:03 PM
Fantastic map, but I did run into a bug. I was on the last little island and, as usual, was using the auto-fire. I was switching to a different weapon and accidentally switched to the portal gun. By a complete fluke I managed to put two portals right by each other on the edge of a cliff. Unfortunately one of them was at my feet and it teleported me to the other one. However, I wasn't "on" the portal but on the edge of it, meaning that my body was right over the edge of the cliff. Due to that I couldn't move away and could never put a portal underneath me. I basically got into a no-win situation since the last item to pick up needed me to be closer to it to activate it. It's definitely not worth a huge look into, but thought I'd bring it to your attention. Thanks for a really fun map, even with the bug!
I forgot to mention it in the map, now that I think of it, but I added a way to manually respawn in case something like that happens. Hold down the Custom1 key (same as entering first person mode) for 5 seconds.
Good, Smart, Fun. Dont know why, but I got a little excited when I saw the gate on the void. Maybe its better not to walk on it. :}
Quote from: InwardChaos on April 12, 2021, 10:16:33 PM
I had to retry the map twice due to getting insta-killed when stepping through a portal I thought was safe, but it wasn't.
I'm guessing part of that may be due to the stash portals. I probably should have had some sort of visual difference for those, but I wasn't expecting them to be in a map like this. I am tempted to do a revamp patch/map for them now for some other things that have come up, so I'll add that to the list of considerations.
Fun map, and I do appreciate that the portals let you choose when there's multiple destinations, I was expecting some sort of round robin system. My only minor nitpick with this system is me accidentally going into a portal when fighting creeper, but that's mostly just me not being careful of my surroundings. I did also go back because of another comment here and try to take the portal into the void and saw you made that impossible.
Another fun FPS map ;D And the porters works so well! That animation is fantastic!
Okay; initial hype aside now, I beat this thing once using each weapon solo. Habit of mine with these maps it seems. Here are my thoughts.
First; this portal system is amazing for FPS maps. It opens up interesting terrain options - even possibly having portals disabled/enabled, scripting some to appear, or additional portals with 'X' texture to signify you can't travel them but creeper/AC can? Lots of possibilities. I think this animation and style should see further use. I think others in this thread have suggested good ideas for improvement. I'll add one more; when 'transporting'; either allow mouseover to highlight the portal connections, or auto-highlight the in-use portals connections. This way if you didn't already know you aren't scouring the map to find available options matching the color you chose manually.
Next; maybe I'm missing some explanation or reasoning...I couldn't seem to drop the portals a number of places that I thought I would be able to. In my testing it seemed the area had to be clear of creeper but that wasn't the only reason. For example on my 3rd run; I boldly tried to rush dropping a portal in the walled off high-creeper zone (south-west corner). No matter how much I cleared (all the way back to the green portal) I could not get a portal to be created. Yes; I like to do janky things. :) I was able to clear creep and drop a portal just south of the starting area and come in the backside that way; so I'm not sure what its limitations were.
Best FPS yet! Very replayable thanks to the portals, so many options which makes for an intersting game.
Quote from: knightace on April 13, 2021, 09:02:35 AM
Next; maybe I'm missing some explanation or reasoning...I couldn't seem to drop the portals a number of places that I thought I would be able to. In my testing it seemed the area had to be clear of creeper but that wasn't the only reason. For example on my 3rd run; I boldly tried to rush dropping a portal in the walled off high-creeper zone (south-west corner). No matter how much I cleared (all the way back to the green portal) I could not get a portal to be created. Yes; I like to do janky things. :) I was able to clear creep and drop a portal just south of the starting area and come in the backside that way; so I'm not sure what its limitations were.
The rules for placing the portals are just no creeper and flat ground. Maybe that's what you were missing? I know the portals can normally be built on uneven ground, but requiring it to be flat prevents a lot of edge cases with traveling through them.
Quote from: Qople on April 12, 2021, 10:33:38 PM
Quote from: mzimmer74 on April 12, 2021, 10:10:03 PM
Fantastic map, but I did run into a bug. I was on the last little island and, as usual, was using the auto-fire. I was switching to a different weapon and accidentally switched to the portal gun. By a complete fluke I managed to put two portals right by each other on the edge of a cliff. Unfortunately one of them was at my feet and it teleported me to the other one. However, I wasn't "on" the portal but on the edge of it, meaning that my body was right over the edge of the cliff. Due to that I couldn't move away and could never put a portal underneath me. I basically got into a no-win situation since the last item to pick up needed me to be closer to it to activate it. It's definitely not worth a huge look into, but thought I'd bring it to your attention. Thanks for a really fun map, even with the bug!
I forgot to mention it in the map, now that I think of it, but I added a way to manually respawn in case something like that happens. Hold down the Custom1 key (same as entering first person mode) for 5 seconds.
Thanks, I'll give that a try.
Absolutely fantastic!
I have no idea how to play this map. No description ingame or forum. Read about a portal gun in above bug report but I cannot scroll to said weapon nor select using keys. I can get a sound when standing on number 4 gate but nothing else. What am I supposed to do? (edit: sleepy)
Quote from: mechi on June 25, 2021, 01:24:05 PM
I have no idea how to play this map. No description ingame or forum. Read about a portal gun in above bug report but I cannot scroll to said weapon nor select using keys. I can get a sound when standing on number 4 gate but nothing else. What am I supposed to do? (edit: sleepy)
I can confirm I'm also unable to play the map. Maybe a recent update to the game broke the scripts for this map?
Okay, so far I can confirm that the error isn't in PlayerTravel.4rpl - it plays the sound, creates the Animator unit, and stops the sound successfully, so that part works
I'm currently trying to see if I can debug Portal animator.4rpl - there's something in the :Awake code that's causing it to break.
It looks like removing the initial if/else/endif condition (if(<-portalIn lt0 Self GetUnitType 0 GetUnitsByType GetListCount ||)) makes it work, but tbh I don't know why.
Quote from: heritor on July 04, 2021, 10:24:25 AM
Okay, so far I can confirm that the error isn't in PlayerTravel.4rpl - it plays the sound, creates the Animator unit, and stops the sound successfully, so that part works
I'm currently trying to see if I can debug Portal animator.4rpl - there's something in the :Awake code that's causing it to break.
It looks like removing the initial if/else/endif condition (if(<-portalIn lt0 Self GetUnitType 0 GetUnitsByType GetListCount ||)) makes it work, but tbh I don't know why.
If that's really the 4RPL, then that line of code looks inverted from what the code should be. GetListCount is missing an item on the stack. What is it supposed to be counting? Probably the result from GetUnitsByType. But GetUnitsByType is also missing an item on the stack. What is it supposed to be retrieving? Probably the unit matching ID 0. Same thing for "Self GetUnitType" but there's a problem here since it would be saying the current unit exists (true) OR if a unit with ID 0 exists (also probably true) so there's a missing conditional like an 'eq'. The stack would therefore be empty at the point of doing "<-portalIn lt0" which is an error. It's amazing the code compiled let alone functioned in the first place. I think someone got confused when they were writing it and it just happened to work. Methinks 4RPL got patched to be more stringent about stack errors (a generally good thing) in the latest release but still didn't give us the much needed tools to debug 4RPL in CPACKs in a console. :(
Quote from: CS Z on July 04, 2021, 10:56:39 AM
Quote from: heritor on July 04, 2021, 10:24:25 AM
Okay, so far I can confirm that the error isn't in PlayerTravel.4rpl - it plays the sound, creates the Animator unit, and stops the sound successfully, so that part works
I'm currently trying to see if I can debug Portal animator.4rpl - there's something in the :Awake code that's causing it to break.
It looks like removing the initial if/else/endif condition (if(<-portalIn lt0 Self GetUnitType 0 GetUnitsByType GetListCount ||)) makes it work, but tbh I don't know why.
If that's really the 4RPL, then that line of code looks inverted from what the code should be. GetListCount is missing an item on the stack. What is it supposed to be counting? Probably the result from GetUnitsByType. But GetUnitsByType is also missing an item on the stack. What is it supposed to be retrieving? Probably the unit matching ID 0. Same thing for "Self GetUnitType" but there's a problem here since it would be saying the current unit exists (true) OR if a unit with ID 0 exists (also probably true) so there's a missing conditional like an 'eq'. The stack would therefore be empty at the point of doing "<-portalIn lt0" which is an error. It's amazing the code compiled let alone functioned in the first place. I think someone got confused when they were writing it and it just happened to work. Methinks 4RPL got patched to be more stringent about stack errors (a generally good thing) in the latest release but still didn't give us the much needed tools to debug 4RPL in CPACKs in a console. :(
It looks like GetUnitsByType is using the result of Self GetUnitType as the type i.e. it's counting the number of units with the same type as the unit running this script. GetUnitType is provided the UID Self so there's no problem there, and GetUnitsByType is provided a unit type as well as an int. Finally, GetListCount is checking the length of the list returned by GetUnitsByType. Thus I don't see any issue with the order of things on the stack, unless I'm somehow looking at this wrong.
The thing that seems odd to me is the fact that it's using GetUnitsByType with its own unit type. It seems like this should always return true, since if the unit exists to run the code in the first place it will always be the unit found of its own type?
(edited to fix formatting fail)
Quote from: cornucanis on July 04, 2021, 04:10:11 PM
Quote from: CS Z on July 04, 2021, 10:56:39 AM
Quote from: heritor on July 04, 2021, 10:24:25 AM
Okay, so far I can confirm that the error isn't in PlayerTravel.4rpl - it plays the sound, creates the Animator unit, and stops the sound successfully, so that part works
I'm currently trying to see if I can debug Portal animator.4rpl - there's something in the :Awake code that's causing it to break.
It looks like removing the initial if/else/endif condition (if(<-portalIn lt0 Self GetUnitType 0 GetUnitsByType GetListCount ||)) makes it work, but tbh I don't know why.
If that's really the 4RPL, then that line of code looks inverted from what the code should be. GetListCount is missing an item on the stack. What is it supposed to be counting? Probably the result from GetUnitsByType. But GetUnitsByType is also missing an item on the stack. What is it supposed to be retrieving? Probably the unit matching ID 0. Same thing for "Self GetUnitType" but there's a problem here since it would be saying the current unit exists (true) OR if a unit with ID 0 exists (also probably true) so there's a missing conditional like an 'eq'. The stack would therefore be empty at the point of doing "<-portalIn lt0" which is an error. It's amazing the code compiled let alone functioned in the first place. I think someone got confused when they were writing it and it just happened to work. Methinks 4RPL got patched to be more stringent about stack errors (a generally good thing) in the latest release but still didn't give us the much needed tools to debug 4RPL in CPACKs in a console. :(
It looks like GetUnitsByType is using the result of Self GetUnitType as the type i.e. it's counting the number of units with the same type as the unit running this script. GetUnitType is provided the UID Self so there's no problem there, and GetUnitsByType is provided a unit type as well as an int. Finally, GetListCount is checking the length of the list returned by GetUnitsByType. Thus I don't see any issue with the order of things on the stack, unless I'm somehow looking at this wrong.
The thing that seems odd to me is the fact that it's using GetUnitsByType with its own unit type. It seems like this should always return true, since if the unit exists to run the code in the first place it will always be the unit found of its own type?
(edited to fix formatting fail)
4RPL is read from right to left (with the exception of parenthesis). There's nothing on the stack for GetListCount to consume, which is just the start of the problems with that line of code. The code is written backwards from what was likely intended and it is missing a comparison operator somewhere. Honestly, this type of mistake is super easy to make and I've done it myself plenty of times since the compiler can't catch the errors due to how the language is designed and there isn't a console to debug runtime level CPACK issues like this. You have to either spot it by accident, have a different/fresh pair of eyes staring at it (how do you share/partially publish a map in progress?), or export the code and figure out a way to test it in an external, non-CPACK test file with the in-game editor console, which isn't easy to do with custom units.
So... I like to play this map. But I don't know how to use the portals.
It isn't told me what to do, and stepping on them doesn't work.
Is it still possible to play this map? Do I have to do something first?
Quote from: Xorgye on July 06, 2021, 10:22:00 AM
So... I like to play this map. But I don't know how to use the portals.
It isn't told me what to do, and stepping on them doesn't work.
Is it still possible to play this map? Do I have to do something first?
To play this specific map currently, which has bugs in the 4RPL that prevent the map from being played in the latest version of the game, you'll probably need to downgrade to version 1.4.8 first. If you use Steam, you can downgrade using the "Beta switcher" in the settings for the game from within Steam.
It doesn't work for me, I get stuck in the starting location, I can't enter the portal or create a portal
I cannot enter the portals either.
Quote from: CS Z on July 06, 2021, 11:03:56 AM
Quote from: Xorgye on July 06, 2021, 10:22:00 AM
So... I like to play this map. But I don't know how to use the portals.
It isn't told me what to do, and stepping on them doesn't work.
Is it still possible to play this map? Do I have to do something first?
To play this specific map currently, which has bugs in the 4RPL that prevent the map from being played in the latest version of the game, you'll probably need to downgrade to version 1.4.8 first. If you use Steam, you can downgrade using the "Beta switcher" in the settings for the game from within Steam.
I just tried downgrading to 1.4.8 - I can confirm this works! Thank you!
Can this information be edited into map's description? It's fairly high on the list when you sort by thumbs and I just lost like 20 minutes trying to figure it out as well, before seeing info that I need to downgrade game
Quote from: jaworeq on August 24, 2022, 08:55:19 AM
Can this information be edited into map's description? It's fairly high on the list when you sort by thumbs and I just lost like 20 minutes trying to figure it out as well, before seeing info that I need to downgrade game
It's really not possible to edit metadata for a map. What can be done is if you (and a few others) add a tag to it. I suggest "Need V148"
https://discord.com/channels/192420539204239361/368747848046739456/1014931748162900018
Relevant discussion on why it is broken
To clarify, a full fix is to change the line mentioned above to
if(<-portalIn lt0 Self GetUnitType 0 GetUnitsByType GetListCount 1 gt ||)
There was an issue caused by it expecting what was thought to be a quirk and later decided to be a bug, where unit counts aren't updated until after awake. It checks to make sure there's no other portal animators, and after that patch, it would find itself and abort.
I've hopefully addressed this issue. See here: https://github.com/KnuckleCracker/CW4-bug-tracker/issues/1062
Thanks for everyone that analyzed the problem and figured it out. I didn't do anything but implement the solution you figured out, so the fix credit goes to those above.