Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Kara Jo Kalinowski

#41
Actually, it happens when I type something that exists, too, as I just typed a T this time and it crashed. But I had searched some stuff before where it didn't crash. I think if what I'm searching for is too far down the list then it crashes.

When opening directly from windows, it doesn't have this problem. Using the search function doesn't have issues, either, just the index.
#42
If I type something not found in the index, my entire AGS locks up and I have to close out / restart it. If I'm typing something that is in the index, it doesn't lock up, but as soon as I add a character that isn't, it locks up. Not sure the proper place to report this. This is in the most current official release.
#43
Quote from: Crimson Wizard on Sat 15/02/2025 00:20:54Here's the manual page on AudioClip.Play function:
https://adventuregamestudio.github.io/ags-manual/AudioClip.html#audioclipplay

This function has 2 parameters:
1. Priority
2. Repeating

You pass eRepeat as a first parameter, but that's a mistake.
The correct call would be:
Code: ags
aWindInside.Play(eAudioPriorityNormal, eRepeat);

I recommend checking out the manual first whenever a script command does not work as expected.
Also, autocomplete in the editor shows a tooltip about parameters when you type open bracket after function's name.

I was in the process of typing the same thing - they might have gotten confused in reading that priority is an optional parameter. But you can't just ignore it, if you want to get to later optional parameters, unless there's a way I don't know about to indicate that in your function call.
#44
Quote from: Jackpumpkinhead on Fri 14/02/2025 23:42:50I love this template. However, I wish there were more animation options, especially in the Doors and the AnyClickWalkLookPick functions. Since these functions overwrite any other actions they are kind of useless if you don't have many animations. But to have an animation of the player opening the door or the player bending down to pick something up would be ideal.

I don't know if you saw my reply to you on your support thread or on the discord, but I've coded the solution for Doors and explained how to use it. You would have to do something similar for any other thing you wanted animations for. That's here for anyone else wanting to see what I changed, which adds animations before opening, closing, or using items on doors: https://www.adventuregamestudio.co.uk/forums/index.php?msg=636681453

I think that Tumbleweed is good if you only want to use Tumbleweed but I don't like how integrated everything is with each other - I'd much prefer a more lightweight LucasArts GUI.
#45
@Khris your extender function won't work (the way I'm understanding it) because AnyClickSpecial also handles what happens as a result of the click on the door, and you want the animation to play after walking, but before handling the click, so the modifications have to be done to Tumbleweed itself, really.

I've done some work to integrate this into Tumbleweed

https://pastebin.com/nYHCb8tn

Follow those steps to add stuff to the Tumbleweed script

Explanations:

You need to call the function Doors.SetAnimation(bool animate_on,  int view_id,  int animation_speed,  int delay_after); once (at the start of game load, for example) to set the values that you want. You can re-call this function if the values ever need to change.

animate_on should be set to true if you want it to animate, false to disable it.
view_id is which view contains the animation. It should have 4 loops depending on the direction you're facing.
animation_speed is the number of frames delay between each animation frame.
delay_after is the number of frames to wait before continuing with the rest of the script.

I've editted the AnyClickSpecial function to call this animation every time you try to open a closed door, try to close an open door, or try to use an inventory item on a door. You could try and finetune this if you want slightly different behavior. If so, it needs to be in the if block which starts with if (Verbs.AnyClickMove (x, y, dir)) because that's the script Tumbleweed uses to determine whether walking to the point was successful.
#46
Yeah something like that is probably better, but it requires editing tumbleweed itself as the Doors.AnyClickSpecial does both the movement and the stuff that happens afterwards. And I wasn't sure if he wanted the same animation for every door. (I did say that my solution was inelegant and should probably be functioized)


 provides
Quote from: Khris on Fri 14/02/2025 15:39:52I'd create a universal extender function called Reach or something and call that at the appropriate time:

Code: ags
void Reach(this Character*, HeightType height) {
  this.LockView(PLAYER_REACH);
  this.Animate(loop, ..., eBlock); // loop calculated from player.Loop and height
  this.UnlockView();
}

In your door hotspot handling:
Code: ags
  player.Reach(eHeightMid);
  if (Doors.AnyClickSpecial(...)) ...

In general, avoid duplicate code at all costs and separate concerns whenever possible. (i.e. absolutely never put multiple lines of identical reach animation code into every single door hotspot function and think about whether the player reaching for something will only happen when they're opening a door [probably not])
#47
Here's what I've got.

It could be done more elegantly i.e. defined in a function but adding this code to your door's AnyClick function also works instead of the one line you were using. Just replace animation_view, animation_loop, and animation_delay to values that meet your needs. It's not the most elegant, and could be defined in a function instead of this, but it works

Code: ags
function hDoor_AnyClick()
{
  bool continue_clicking = true; //Will be set to false if the player walks away before reaching the door
  int animation_view = VROGER_TALK; //Just using this to test, replace with the view that has your animation
  int animation_loop = eDirectionRight; //which is loop 2,  you could also just put a number here. Again,  only using this specific value to test.
  int animation_delay = 4; //Number of frames delay per animation frame displayed
  
  if (Verbs.UsedAction(eGA_Close) || Verbs.UsedAction(eGA_Open) || Verbs.UsedAction(eGA_UseInv)) 
  {
    if (Verbs.AnyClickMove(313, 165, eDirectionUp)) 
    {
      player.LockView(animation_view);
      player.Animate(animation_loop, animation_delay, eOnce, eBlock);
      player.UnlockView();
    }
    else { //means walk was not completed
      continue_clicking = false;
    }
  }
  if (continue_clicking) {
      if ( Doors.AnyClickSpecial(10, oDoor.ID, 313, 165, eDirectionUp, 1, 210, 145, eDirectionUp, null, null, 3, 0) == 0 ) Verbs.Unhandled();
  }
}

#48
Hints & Tips / Re: One Million Years Dungeon
Wed 12/02/2025 22:42:49
Quote from: Falsely on Wed 12/02/2025 22:29:22Yeah, sorry about that one. That's a visual glitch not intended to be a puzzle. I'll post the answer here for posterity:

Once the door to the east is unlocked, it won't automatically open. You still have to click it afterwards.

(Though I sure do have an idea for a push/pull door puzzle now.)

It was just me that thought I'd tried opening the door before and after and having not done so.

Now I have no idea what to do next, but I'll try at it a bit more before asking for more help...
#49
Hints & Tips / Re: One Million Years Dungeon
Wed 12/02/2025 21:22:19
Quote from: heltenjon on Wed 12/02/2025 21:07:08Please don't post the entire question hidden in spoiler tags. There is no way for others playing the game to know if you are asking the same question they have.

I see your point. I was trying to avoid spoilers, but I suppose I can be vague in my questions and give detils in spoiler tags.

I'm unstuck now...
#50
Hints & Tips / Re: One Million Years Dungeon
Wed 12/02/2025 14:39:02
Okay, so I've met someone and discovered their name. Now what?

Spoiler
I'm at the point where I need to bring Qintus a magical item, or get the door open to bring him an item.
[close]

I've tried:

Spoiler
I read your hint on the main thread, and in that room, it says, "I was going to include a puzzle here, but I forgot." I only see in that room a switch that does nothing, it doesn't unlock the door. Smuggling the items through the slot doesn't work due to a bug. Also, going from the other direction, also seems to require 2 teleports, and another godere tablet which I can't reach. For whatever reason, the door is open now. I don't know what was giving me trouble..
[close]
#51
Hints & Tips / Re: One Million Years Dungeon
Wed 12/02/2025 14:35:30
(Accidental double post.)
#52
Hints & Tips / Re: One Million Years Dungeon
Wed 12/02/2025 06:07:12
(Response to spoiler, not a question.)

Spoiler
Fair enough. I didn't recognize the helmet from the picture, I should have paid more attention. I was associating orange with saltwater.
[close]
#53
Hints & Tips / Re: One Million Years Dungeon
Wed 12/02/2025 05:36:57
Quote from: Falsely on Wed 12/02/2025 04:21:08If you're still stuck after that, let me know and I'll post the solution.

I'm stuck...but I'm not convinced this isn't a bug. As I pmed you, it's telling me that the game doesn't know why I died.

My colors:

Spoiler
cup-green, heart-yellow, bird-white, fire-purple, leftover symbol-red, blood(solid droplet)- blue, water (white droplet)- orange and tree-black. I've also tried swapping blood and water in case I misunderstood.
[close]
#54
Hints & Tips / Re: One Million Years Dungeon
Wed 12/02/2025 04:29:36
Quote from: Falsely on Wed 12/02/2025 04:21:08
Quote from: Kara Jo Kalinowski on Wed 12/02/2025 03:48:43@Falsely

I'm having trouble with a thing which might or might not be relevant, but finding it difficult.

Spoiler
Trying to translate the ancient tablet...these characters are smaller and look different so I'm doing a lot of guessing.

So far I have

_ O D E _ E
B A R E L Y
K _ O C E R E

But several of those I'm not 100% sure on. Also I still don't have translations for G, J, Q, W, X, or Z at all.

I have no idea where to start with the orbs other than the painting upstairs, which seems really obscure hints if that's the case. I know that each orb room has a picture for a label. I got the orb from the candle and the orb from the candy.
[close]


I am so sorry about this one, but it translates to:
Spoiler
GODERE? I BARELY KNOWERE
I, uh, needed to make the tablet look magical.
[close]

There's an in-game way to translate important text (although I'm delighted to see people can solve the extra ones on their own!) Check your inventory. If the game won't auto-translate it for you, it's something silly.

As for the orbs, some clues:
Spoiler
  • Once you've placed all the orbs, click the tablet to check your answers. It won't tell you how many you got right or wrong, but I know some people missed that so I'm leading with that hint first.
  • You're correct that the colours are related to the mural. Have you checked the game manual? There's a coloured picture of it there! ...Or there would be, if someone hadn't photocopied it in black and white. Hmm.
  • Most of the colours are explicitly stated in the manual's journal entry. One is explicitly stated in game.
  • The last player attempted to colour the emblem on the cover page in. If you can't see it on your screen: the heart is yellow, the dove is white, and the cup is green.
  • The last colour can be worked out through process of elimination.
[close]

If you're still stuck after that, let me know and I'll post the solution.

Ah, it's no wonder I couldn't solve it :P As
Spoiler
I didn't have 2 of those letters and the phrase isn't English words.
[close]

I also translated the
Spoiler
title screen and the manual :P I thought that "No Soul Left Behind" might be an important hint, and the other thing was just "Sorry in Advance"
[close]
#55
Hints & Tips / One Million Years Dungeon
Wed 12/02/2025 03:48:43
@Falsely

I'm having trouble with a translation thing which might or might not be relevant, but finding it difficult.

I'm also having an issue with colors.

Spoiler
Trying to translate the ancient tablet...these characters are smaller and look different so I'm doing a lot of guessing.

So far I have

_ O D E _ E
B A R E L Y
K _ O C E R E

But several of those I'm not 100% sure on. Also I still don't have translations for G, J, Q, W, X, or Z at all.

I have no idea where to start with the orbs other than the painting upstairs, which seems really obscure hints if that's the case. I know that each orb room has a picture for a label.
[close]
#56
Spoilers about my progress in One Million Years dungeon:

Spoiler
Me realizing that "No Soul Left Behind" could possibly mean that if I ever die, therefore adding an extra name to the wall, if I can't save my previous souls I may not be able to beat the game. And not sure if I want to play it out anyways to see what happens or just restart since I'm not very far into the game :P
[close]

I got the impression that this game is going to be so much longer than the other games, at least it seems that way, so I saved it for last.
#57
Quote from: Snarky on Tue 11/02/2025 19:26:29
Quote from: Kara Jo Kalinowski on Tue 11/02/2025 19:18:58Yes, I did, and it worked. Your solution wouldn't work - both horizontal and vertical walk speed need to change to the same amounts depending on which direction you are facing since you don't walk in purely straight lines i.e. you will still be moving left or right sometimes even when facing down. (I was thinking the same as you at first and it doesn't work.)

Ah, I see your point. You're assuming that the x_speed and y_speed are equal in the first place? So if they are different, you would need something like:

Code: ags
function repeatedly_execute_always() 
{
    if (player.Moving) {
    switch (player.Loop) {
      case 0: //Down
      case 3: //Up
      player.AnimationSpeed = 1;
      player.SetWalkSpeed(2, 1);
      break;
      case 1: //Left
      case 2: //Right
      player.AnimationSpeed = 4;
      player.SetWalkSpeed(4, 2);
    }
  }
}

(I find it surprising that changing the AnimationSpeed (i.e. frame delay) from 1 to 4 only requires a doubling of the walk speed to remain consistent, but the logic of the frame delays always makes my head spin. I think it's that the base value is 1 loop per frame, and the delay is added to that, so that AnimationSpeed = 1 actually means it changes frame every 2 loops, and AnimationSpeed = 4 means every 5 loops—40% of the speed—but I'm not 100% sure.)

Yeah, right, if it's actually meant to be different speeds then you'd need to adjust both of those speeds. I wasn't being super precise with my calculations, just did what seemed to be 'about right' based on my animation speeds. For a typical AGS walk animation, x speed and y speed are usually equal.

If you need more precision than what this solution is offering, it's probably possible to make a generalized script based on the number of frames in the views. But, these functions don't accept floats, so it might be a bit more complicated to be exactly precise. Maybe I can code something...
#58
Quote from: Snarky on Tue 11/02/2025 19:15:21
Quote from: Kara Jo Kalinowski on Tue 11/02/2025 06:39:17
Code: ags
function repeatedly_execute_always() 
{
    if (player.Moving) {
    switch (player.Loop) {
      case 0: //Down
      case 3: //Up
      player.AnimationSpeed = 1;
      player.SetWalkSpeed(2, 2);
      break;
      case 1: //Left
      case 2: //Right
      player.AnimationSpeed = 4;
      player.SetWalkSpeed(4, 4);
    }
  }
}

As the arguments to SetWalkSpeed are x_speed and y_speed (which is actually the x-distance and y-distance; they have been misnamed since forever), you don't need to change them depending on whether you're moving vertically or horizontally. You can simply leave them as player.SetWalkSpeed(4,2) (or just turn off UniformMovementSpeed and set them to those values in the IDE character editor), and it will use 4 when moving horizontally and 2 when moving vertically.

Also, the manual entry for SetWalkSpeed claims: "This function CANNOT be called while the character is moving, so you must stop him first." Have you tested it to see that that's not correct?

Yes, I did, and it worked. Your solution wouldn't work - both horizontal and vertical walk speed need to change to the same amounts depending on which direction you are facing since you don't walk in purely straight lines i.e. you will still be moving left or right sometimes even when facing down. (I was thinking the same as you at first and it doesn't work.)

My animation speeds are extreme examples though, the right settings would depend on how many frames are in the animation. In this case, it plays the up/down animations 4 times as fast which is almost definitely not what OP wants.
#59
Quote from: heltenjon on Tue 11/02/2025 11:59:31
Quote from: Radiant on Mon 10/02/2025 17:33:01My idea: have a classic Sierra menu bar, but you cannot use the walk / hand / eye icons because you're missing those body parts. You need to find them before the interface fully works.

But I don't have time this month so if anyone wants to take my idea, they're welcome to.
Recollection is Onedollar's unfinished game about someone waking up from a coma. It plays along with a similar idea.

...but I think it would be easier to implement if the player character is a robot.  :)

I was also thinking about making a game using robot parts
#60
Quote from: cat on Tue 11/02/2025 09:49:49I think the important part is, that you openly declare what assets you used. Here in this thread and on the games page, not just in a small note on your itch page.

Depending on the assets you use, this might be required anyway.

Game dev market doesn't require it, but says that we can. I was planning to credit them in-game anyway, but I'll make sure to put it in the game page if I use them.
SMF spam blocked by CleanTalk