ACK bug discussion thread

Chris H.'s Ultima / ACS-style game development system!

Moderators: Ice Cream Jonsey, joltcountry

rld
Posts: 223
Joined: Sun Jan 25, 2009 2:17 am
Location: Dallas, TX

Post by rld »

Another transparency issue, which was mentioned before in the ACK updates thread, so I don't know if this is something that's going to be fixed or if it's just a limitation that I have to live with...

If you create a space with a "set later" graphic, and then move the player on top of it, the chosen graphic doesn't display underneath the player (through the transparency mask). Instead the "smiley face" icon that is used when selecting a "set later" graphic item in the editor is seen.

rld
Posts: 223
Joined: Sun Jan 25, 2009 2:17 am
Location: Dallas, TX

Post by rld »

If you set the Visibility option for a region to "[X] FULL RANGE WITH OPAQUE TILES MADE TRANSPARENT" (i.e., TOTAL (SEE THROUGH OPAQUE TERRAIN))" objects with the "set later" graphic tile option do not display correctly when playing the game. Instead, they show up as blank tiles.

UPDATE: This only appears to happen in room-type regions. On worldmap-type regions, the "set later" objects still render correctly even if full visibility mode is set as described above.

rld
Posts: 223
Joined: Sun Jan 25, 2009 2:17 am
Location: Dallas, TX

Post by rld »

Obstacles with the action ACTIVATE ALL UNDERNEATH don't appear to run the action if the trigger for the action is BUMPING, IF ATTACKED, or GATHERING FROM HERE. The EXAMINE (NEAR/FAR) trigger seems to work ok.

If the obstacle has a different action (such as running a macro), that works fine (I verified it for the BUMPING trigger, at least). It's just the "activate all" action that doesn't seem to respond under these circumstances.

rld
Posts: 223
Joined: Sun Jan 25, 2009 2:17 am
Location: Dallas, TX

Post by rld »

rld wrote:Obstacles with the action ACTIVATE ALL UNDERNEATH don't appear to run the action if the trigger for the action is BUMPING, IF ATTACKED, or GATHERING FROM HERE. The EXAMINE (NEAR/FAR) trigger seems to work ok.

If the obstacle has a different action (such as running a macro), that works fine (I verified it for the BUMPING trigger, at least). It's just the "activate all" action that doesn't seem to respond under these circumstances.
UPDATE:

Tried this with spaces also. With a space set to passable by NOTHING, and set to trigger ACTIVATE ALL UNDERNEATH when BUMPed, the action appears to work. I can't get a space to trigger ACTIVATE ALL for the trigger IF ATTACKED, though.

The main reason I am interested in this is that currently there is no easy way to obtain the map location of terrain that triggers a macro. For objects bumped by the player, LASTMOV has the potential to provide this information because you can calculate the location of the object based on the player's location plus the direction the player attempted to move. However, LASTMOV currently appears to have a one-turn time lag (shows the direction the player tried to move on the previous turn).

However, there are other ways to trigger actions on a terrain (such as attacking it, examining it from a distance, dropping an object on it) that do not allow the location to be calculated using LOC[X], LOC[Y] and LASTMOV. For example, suppose I have an oil barrel object that I want to "explode" when shot at, replacing itself with a 3x3 square of 'fire' terrain.

If I can get the oil barrel to trigger ACTIVATE ALL UNDERNEATH when it is attacked, I can stack objects as follows:

- oil barrel: ACTIVATE ALL UNDERNEATH when attacked
- custom space: set A to <xxx>
- custom space: set B to <xxx>
- custom space: run macro <xxx>

When I place the oil barrel on the map, I can set the custom spaces to set A and B to the X, Y coordinates of the barrel. Then, the macro checks these variables and performs the appropriate map edits (removing the oil barrel object, adding "fire" objects to the map).

Chris H
Posts: 272
Joined: Sun Dec 02, 2007 4:07 pm
Location: California, USA

Post by Chris H »

I think it may be possible in the code for the macro to be aware of the triggering object's location... I think the info is passed, just not currently used/visible. I'll check that out first.

rld
Posts: 223
Joined: Sun Jan 25, 2009 2:17 am
Location: Dallas, TX

Post by rld »

The TAKE ALL THESE FROM AREA action (#18) works ok when I set it to run from a terrain trigger (such as a bumped obstacle). However, when I try to run it as a result of an item being used or as a spell/skill action (1st or 2nd), or run it as a "queued action" from a macro, nothing happens.

This is in room-type regions only; I haven't tried it in other types of regions.

rld
Posts: 223
Joined: Sun Jan 25, 2009 2:17 am
Location: Dallas, TX

Post by rld »

Enemy creatures don't seem to be following the 'range' restrictions when using ranged weapons. I ran across this while working on my own adventure, and verified it by modifying the Ultima parody as well. In both cases, I can set the range for a weapon that a creature is using to 2 or 3, but the creature will still shoot me from all the way across the room.

GB
Posts: 32
Joined: Tue Jul 01, 2008 2:16 pm
Location: Houston

odd room map behaviors

Post by GB »

Two apparently unrelated things.

1. I set up a secret door to act just like the doors in the 2099 part of the tutorial, activated by bumping, changing to an open door, activated by passing, changing back to a closed door. I placed one of these in a world map and one in a room map. The one in the world map works fine. The ones in the room map don't update immediately after being bumped, but after an additional turn has gone by.

2. As I mentioned in another thread, I'm finding that my crim state is being retained in room maps even after I have traveled back and forth to other regions.

I have a macro set crim to 1 in a rooms map, am approached by a lawful creature, go back to the world map, am ignored by lawful creatures, go back to the room map, and the creature is still hostile to, and therefore following me.
Crim is set by a custom space floor tile that calls a macro with 3 functions, removing all instances of itself, removing another floor tile concealing a creature, setting crim to 1 and stop.

GB
Posts: 32
Joined: Tue Jul 01, 2008 2:16 pm
Location: Houston

trying to reproduce the problem

Post by GB »

I had some doubts as to whether I was on the same page with everyone so I deleted ack and re-downloaded, making sure that I had the most recent version. In trying to reproduce the problems I just reported I learned that the crim reset problem that I described is not as easy to reproduce. In my game it is limited to a particular kind of creature, a weaponless gremlin of good alignment, which I created for the purpose. When I put a different creature of good alignment in its place, the summoned rat, I find that my crim variable is reset by going through a portal and coming back, just like it should.

User avatar
Garth's Equipment Shop
Posts: 638
Joined: Fri Dec 05, 2008 5:55 pm
Location: Festering Foothills
Contact:

Post by Garth's Equipment Shop »

Hi GB,

So have you been unable to reproduce the problem since reinstalling ACK from scratch? If so then perhaps that was the problem and it is now fixed?
Which of you is interested in my fine wares?

GB
Posts: 32
Joined: Tue Jul 01, 2008 2:16 pm
Location: Houston

Post by GB »

No, actually I have been able to reproduce the problem, but so far it seems to be confined to a single creature. So, perhaps it should be disregarded, as possibly not a real bug in the program but something weird about the way I set up this particular creature or region. The problem with the door that opens when you bump it is consistent though.

User avatar
Garth's Equipment Shop
Posts: 638
Joined: Fri Dec 05, 2008 5:55 pm
Location: Festering Foothills
Contact:

Post by Garth's Equipment Shop »

@crim macro variable - have you tried adding something in the exit macro of the room in order to reset things in the room to how you want them when the player goes back?

But I think you have found a bug of some sort if you were able to reproduce it after starting over in a new up to date copy of ACK. I am pretty sure Chris never intended for creatures to remain hostile to the player after leaving the region, and then returning.

I am not even sure how that could be possible considering how player centered the whole engine is. I would think that every element, macro variables, etc. of a previous region would be completely forgotten by the engine immediately upon leaving it and then a completely fresh copy of it from the game files loaded upon reentering it.

@open/close [or revolving] door tiles: I am working on the doors in my game now and will be needing to produce similar effect to what you were trying. I'll test your problem out and see if the problem is reproduced.
Which of you is interested in my fine wares?

GB
Posts: 32
Joined: Tue Jul 01, 2008 2:16 pm
Location: Houston

Ultima parody bugs

Post by GB »

I'm really loving the Ultima parody, I think I'll learn a lot from this when I tear into it after I'm done. Though I am having a few problems with it.

The biggest one is that fighting enemies in dungeons often sets some variable that gives me the message that the sailors recognize my blue tassel and then sends me back to the point where I first take command of the ship. This was originally happening in the dungeon called Deceit, but I'm having a hard time getting past one of the western dungeons, I think its Shame, because this error keeps occurring when I'm fighting the two demons in the room you find when you go through the maze full of square rooms with 4 doors that all look just alike.

This means that I have several abandoned ships and skiffs throughout the game.

A friend came up behind me while I was writing this and asked me about the bug. I explained it and they asked me how I avoided the problem. I answered that I avoid it by saving before I go into dungeons and having major battles, if it happens I can go back to the save point, go through the dungeon again and hope it doesn't happen that time. Sometimes it doesn't happen. Hopefully it will stop happening when I fight these demons.

I've also noticed a few display oddities, such as after you use the sextant the border of the screen, skin, menu area and daylight indicator remain blacked out for several moves. Similarly, the stamp sized map area you get from peering into the gem also tends to remain for several moves. Though it does not, of course, obscure the main game area.

Screen shots that show some of these problems:









Anyway, its a really awesome game overall and I'm impressed by some of the things you've gotten ACK to do.

User avatar
Garth's Equipment Shop
Posts: 638
Joined: Fri Dec 05, 2008 5:55 pm
Location: Festering Foothills
Contact:

Re: odd room map behaviors

Post by Garth's Equipment Shop »

GB wrote:I set up a secret door to act just like the doors in the 2099 part of the tutorial, activated by bumping, changing to an open door, activated by passing, changing back to a closed door. I placed one of these in a world map and one in a room map. The one in the world map works fine. The ones in the room map don't update immediately after being bumped, but after an additional turn has gone by.
Ok, I've tested this and you are right. My doors require a keycard to open them. So I made my doors obstacles triggered by bumping. I am stacking them on top of actual portals so I didn't need them to actually do anything but disappear when the right keycard is on hand.

At first they wouldn't disappear. Then I realized they're action was not set and so without an action to trigger the object was ignoring the trigger. So I set the action to play a door sound effect and that worked.

Unfortunately, the door obstacle doesn't always eliminate itself when action triggered as it is supposed to. It only happens on some doors even though they are all setup exactly the same way. Sometimes they are eliminated leaving the open portal and sometimes they aren't.

Sometimes they disappear but what was stacked underneath does not appear and there is just a black square which is impassible. Most times I just have to sidestep or backstep one space to get the obstacle/door to disappear. I am working on a sneak peak video of my WIP right now and it will most likely show this bug in action.
Which of you is interested in my fine wares?

GB
Posts: 32
Joined: Tue Jul 01, 2008 2:16 pm
Location: Houston

work-around suggestion

Post by GB »

I would have thought that setting your locked door obstacle to be replaced by your open door would be a natural precaution, since then it could work on world type maps which do not allow stacking as well as room type maps.

Also, based on your report it seems like your setup is being affected in a much more extensive way than the bug I reported. Do you think it is part of the same problem, or is something else likely to be in play?

User avatar
Garth's Equipment Shop
Posts: 638
Joined: Fri Dec 05, 2008 5:55 pm
Location: Festering Foothills
Contact:

Post by Garth's Equipment Shop »

Not sure but the method I chose is best for this particular game because it does not require a worldmap though I have considered making one up for it based on the general outline of the room maps [buildings]. No further progress tackling your door prob?
Which of you is interested in my fine wares?

GB
Posts: 32
Joined: Tue Jul 01, 2008 2:16 pm
Location: Houston

Post by GB »

No, but since you asked, I decided to do another test. So I loaded the tutorial adventure and took the doors that work the same way there, in the 2400 ad section, and put them in a new rooms region, and they show the same buggy behavior as the secret door I was working on. You bump them, the sound effect plays, but they don't open until you move 1 square away. If you bump them without moving a square away first, then the sound effect plays again, and you don't get through.

Trying to set up a portal that worked exactly like the doors in the 2400 ad section seemed difficult as well. I tried creating a portal with the graphic of an open door, but setting it to be impassible (and therefore replaced by a closed door) unless a variable was non-zero. I decided on G2, as one unlikely to be used elsewhere int he tutorial. I had the replacement space resemble a closed door, and run a macro script when bumped that played the sound and set G2 = 1. Another macro script was set to run when the portal was passed that played the sound effect and set the variable to 0.
It didn't work. The portal always appeared as open.

User avatar
Garth's Equipment Shop
Posts: 638
Joined: Fri Dec 05, 2008 5:55 pm
Location: Festering Foothills
Contact:

Post by Garth's Equipment Shop »

This would seem unrelated but I think it could share a root cause with that door prob. Here is what I did and the bug it revealed:

In another room map I needed to simulate the effect of enemy guards who act friendly [by not attacking the PC] but only on the condition that the PC is wearing an enemy uniform [a type of non-combat "armor" technically]. They had to be real people [that is in the ACK sense that they may attack or be attacked and have dialogs], especially when in their friendly state so the PC could strike up a dialog with them pretending to be a comrade, maybe pump them for some info, feed them false info, etc.. Sooo, I found out how difficult a demand this was almost immediately.


At first I had the idea I was going to use a simple macro that used maptake and mapadd with a couple spaces on either side of an entrance initially occupied by two guards in uniform. I would then have had a row of spaces that when crossed would execute a macro that checked if enemy uniform was worn and if so do the appropriate maptakes and mapadds to replace the normally evil guards with good but stationary guards.

Hmm now that I think of it I could call on a dialog from a macro and thereby simulate the stationary good guards using terrain objects [since maptake and mapadd doesn't work with critters] and I could put the macro to check for the enemy uniform in the region's step macro so that it can execute another series of maptakes and mapadds to replace the friendly guards with simulated aggro-guard terrain that shoots at the PC when the uniform is removed. I'll try that out. But before I do I still should tell you about the problem I created.

So what I attempted to do was to keep things as simple as possible. I created two alternate versions of the room's floor tile calling them cover1 and cover2. The one would be to put over top friendly guards and the other to put over the aggros. Then I add the following macro to the regional step macro.
1.IF WORN[191]>0 THEN 4
2.SET A=0
3.STOP
4.SET A=1
5.STOP

I set up the desert covers this way:
DESERT COVER1 passable when VAR A=1
DISAPPEAR? While Impassible
DESERT COVER2 passable when VAR A=0
DISAPPEAR? While Impassible

Then I place two sets of what are essentially meant to be the same single set of guards, their only difference being their alignment. I made a good guard identical in every other way to a regular guard just for this purpose.

This wasn't the ideal solution since it meant I'd have to put them in different places instead of having them occupying the same tile as their doppelganger. Anyway, I placed the two friendly guards on either side of the door and covered them with DESERT COVER2 and placed their two angry replacements just below them covered by DESERT COVER1.

When I play tested this I can see the mechanics are working correctly but the graphics aren't keeping up with the mechanics. The DESERT COVERS are disappearing when they should but the guards hiding under them are not showing up, just black squares which are passable and do not try to attack and which cannot be engaged in dialog.

I thought maybe they were actually there but just weren't showing up but that is not the case and furthermore the bottommost tile, a regular DESERT tile is also not showing up, just the black space. I'll keep it as it is and continue working on my demo video so Chris can look this over for possible bugs in the internal code. I'll make a backup of it so I can try out some other ideas.

I hope Chris is ok, he hasn't been here in a while. Hopefully he is just busy with important stuff and not permanently disabled, man that would suck. At least perfect ACK before you go and get yourself caught in one of Jigsaw's traps. No, seriously, hope your ok Chris.
Which of you is interested in my fine wares?

User avatar
Garth's Equipment Shop
Posts: 638
Joined: Fri Dec 05, 2008 5:55 pm
Location: Festering Foothills
Contact:

Post by Garth's Equipment Shop »

Umm. I think I found out my problem by reading the manual. Under EDIT OBJECTS, etc./Object options:Space,Obstacle, or Portal: I found this: "Disappear: Determines what will cause the terrain to disappear, if anything. The special case is "While impassable" - this does not actually remove the terrain, but makes it appear as its "replaced" terrain whenever it is currently impassable."

So does this apply even when you have REPLACED (ELIMINATE) instead of a replacement object? It says "does not actually remove the terrain" which would explain why it shows nothing there in game when it disappears since technically if the game thinks it is still there then it would keep whatever is under it hidden so when I LOOK at the spot it says NOTHING. I don't think thats a bug but it definitely could use some tweaking since by rights the option to use ELIMINATE should work since it is there as an option.
Which of you is interested in my fine wares?

GB
Posts: 32
Joined: Tue Jul 01, 2008 2:16 pm
Location: Houston

Post by GB »

Chris is OK, I sent him an email earlier and he responded in good humor.

If I may make a couple of suggestions to help you do what you are trying to accomplish:

1. invisibility-
If you aren't using this effect elsewhere in your game you might have an item called guard uniform set invisibility when used. Couple it with a message saying, "you don the guise of the enemy." or some such. Invisibility will cause normally aggressive guards to not attack and let you initiate dialog. The bad thing about it though, is that once the dialog is over they will recognize you, so maybe it isn't what you want. You could even let them mill about instead of having to remain stationary as with your strictly scripted example.

Edit: you'll need to set the invisicon to make the player's character look like the guards, or at least not look like a phantom.

2. alternate map-
Use the trick Chris used for towns at night in the Ultima parody. I haven't looked at the macro yet, but obviously he has duplicate regions and your character is placed at the same location within the duplicate region if you happen to be wandering at night when daybreaks, or at dusk when night falls. Have your ground spaces test for the item worn, and if so, send the player to an alternate map with good guards instead of doing the map set/take stuff.

3. set crim-
Instead of making the testing square switch the guards for specially benign guards, have it set the player to crim when NOT wearing the enemy uniform. The encounter is still script driven, but potentially much simpler to set up.

Post Reply