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 - FortressCaulfield

#61
This makes me quite nervous as well. I don't use any of their graphical assets, and have no plans to try to monetize, but I do want the name Space Quest on there, and I don't want to have to cease and/or desist.
#62
Okay, so it can do what I need. That arc is perfect as it is for someone thrown off a moving vehicle. Thanks!
#63
Someone recommended me this mod for moving chars or objects in a smooth arc and I don't understand how I would make it do that. Any help?
#64
Could you disguise it with an image overtop with a round hole in the middle? So the map itself would be round but it would have to be on a square background
#65
I want to make something like the skimmer sequence from SQ1 and for once I thought I'd ask for advice BEFORE I went off half-cocked and did it wrong and had to kludge it back to normalcy.

My assumptions are I'd:
use screen backgrounds to animate the background going by

put something in the keypress section of global that left and right arrows move the skimmer if in that room

disable the function that makes a repeat directional press stop movement for that room only

give the skimmer a 1 frame walk cycle for when it's drifting each way

Use room scaling to make the obstacle objects grow appropriately as they move down the screen

Rather than object move commands, use a frame counter in the room's execute-always to move the obstacles down so their speed can increase as they get closer

use the collision check function for, well, collision checking

I get anything wrong?
#66
What I did was make a gui popup on first screen that asks me where I want to start from. Obviously to be removed before final.
#67
yeah that must be it. I assumed it'd be like a basic variable declaration
#68
Thanks but I tried that and I got the same "unexpected IGList" error.

I ended up scrapping it and just doing a switch function for the gui list that houses the thing but I'd like to solve the problem anyway for potential future use.
#69
I'm trying to have an encyclopedia feature where the char can look things up from a listbox that populates through the game as she encounters various things.

The listbox feature works fine, though it would be nice to have options to sort it, but I'm coming up empty on how to get the game to match the definitions.

In my mud days, I'd have used an array of structs, like so:

Code: ags
struct IGEntry {
  String name;
  String desc;
};

IGEntry IGList[2] = {
{"Elf", "Elves are known for their long beards and fondness for mining."},
 {"Dwarf", "Dw...orf? I'm not sure that's a real word. Are you making things up?"}};

Then when the player clicks an item from the list I'd use a while loop to compare the text to each "name" in the list and then display the corresponding text. AGS hates this idea and won't let me declare a defined array like this.

When I try to declare each item one at a time, like this

IGList[0] = {"Blah","Blah"};

I get an error "unexpected IGList". As far as I can tell, I'm copying the syntax exactly from the manual. What's the problem?

Also, is there just an easier way to do this I'm missing?
#70
Thanks I figured there was something like that but couldn't quite put it together. DLing the game in your sig now btw, looks incredible!
#71
Doing my credit sequence and made an object using frames for each part of the credits. However, because object positioning keys from bottom left pixel, placement looks wonky when different parts of the credits are different sizes.

Is there a way to force an object to use a different origin for placement? Ideally top center? To override the origin, so to speak?

Failing that is there a way for the script to access an object or frame's size? I could just tell the thing to adjust Y to Y + height. I expected there to be something like Object.Height but there isn't, just the blocking height which I have to set manually, so that's no good.

Apologies if this posts twice, forum gave me errors.
#72
It's the noblock. Script isn't blocked from progressing, so your char will spend exactly one frame on each of the first 5 commands before doing the second.

There's also a waypoint system you might want to look it.

It seems like you're trying to just make a char walk back and forth. The best way I found is to put something in the room's repeatedly execute, or, if it has to happen even during other blocked animations, in global repeatedly execute always.

Code: ags
if (player.Room == whateverroomthisis)
  if (cGallo.x == 400) cGallo.Walk(1000, 1020);
  else if (cGallo.x == 1000) cgallo.Walk(400,1020);

Something like that
#73
Awesome! I hope you like seeing your music paired with really stupid jokes cuz I'm definitely using some of these.
#74
Thanks for the info. I need to read the manual more I suppose.
#75
This function works:

Code: ags
function OvaSquat(int x, int y) // pass the x,y of where you want her hand to be
{
  if (cOva.x < (x - 40)) cOva.Walk((x-40), y, eBlock, eWalkableAreas);
  else cOva.Walk((x+40), y, eBlock, eWalkableAreas);
  
  cOva.ChangeView(18);
  switch (cOva.Loop)
  {
    case 0: cOva.Animate(4, 4, eOnce, eBlock, eForwards); break;
    case 1: cOva.Animate(5, 4, eOnce, eBlock, eForwards); break;
    case 2: cOva.Animate(4, 4, eOnce, eBlock, eForwards); break;
    default: cOva.Animate(5, 4, eOnce, eBlock, eForwards); break;
  }
}

This function DOESN'T work, and tries to play a loop from her walk animation, despite the changeview call being literally right there in the same place.

Code: ags
function OvaKeycard(int x,  int y) //pass the bottom center of door
{
  if (cOva.x < (x - 60)) cOva.Walk((x-60), (y+25), eBlock, eWalkableAreas);
  else cOva.Walk((x+60), (y+25), eBlock, eWalkableAreas);
  
  cOva.ChangeView(18);
  switch (cOva.Loop)
  {
    case 0: cOva.Animate(6, 4, eOnce, eBlock, eForwards); break;
    case 1: cOva.Animate(6, 4, eOnce, eBlock, eForwards); break;
    case 2: cOva.Animate(7, 4, eOnce, eBlock, eForwards); break;
    default: cOva.Animate(7, 4, eOnce, eBlock, eForwards); break;
  }  
}

This isn't the only time this has come up. What's wrong with this function?
#76
Hmmm. What would such a function even look like? Do you just have to stack move commands, or do a while loop and manually set x and y? It doesn't appear that speed or destination coordinates are accessible values, at least not for objects
#77
Getting a little frustrated with move. Is there some way I'm missing to get something to move in an arc, or to accelerate or decelerate? What if I want something moving slower than 1? In some cases I can fake what I want by doing it in the animation but that seems highly inefficient.

Seems like what I'd have to do is put a special handler into repeat-always that does the math. Is there some other work-around I'm not seeing?
#78
Beginners' Technical Questions / Region tints
Tue 28/05/2024 21:37:37
I've got a scene in a high rise with hovertraffic in the distance. I used a region with tint to color the background traffic sprites when they go behind the greenish window and it works great... except it only works once the sprite is ENTIRELY inside the region. If it's partly overlapping, no tint. This is a problem since my plan had been to only have a few "objects" worth of traffic, each comprising many vehicles.

Is there a way to get region tint to apply only to the part of a sprite inside the region, or is there another way to do what I'm trying to do? Or do I just need to shut up and break my traffic sprites into multiple smaller sprites of one vehicle each?
#79
So it converts the talk into an interact? That's annoying. Wish we had more access to core functions so we could tweak things like that.

Oh well at least now I know, thanks!
#80
My expectation is that the 2nd line with the "achieved sentience" result should fire if the player tries to talk to an object that doesn't have its own talk function. It works fine for hotspots but for objects it returns the generic "the heck?" line. Why?

Code: ags
// *******************
// unhandled misclicks
// *******************
// WHAT- 1- hotspot, 2-object, 3-char, 4-nothing, 5- inv
// TYPE  1- look, 2- int, 3- use, 4- talk, 7- PU, 8- CM8, 9- CM9
function unhandled_event (int what, int type)
{
  if (what == 4) return; //no message for non-existent clicks
  if ((type == 4) && (what != 3)) // try to talk to non person. objects repping persons need their own line in room
  {
    cOva.Say("Hey there! Achieved sentience?");
    Wait(16);
    cOva.Say("No? Good.");
    cOva.Say("After the Cyberfork uprising last year, you can't be too careful!");
    return;
  }
  if (type == 3) // invalid item usage
  {
    if (what == 3) // giving things to chars
    {
      cOva.Say("No, I'd better keep that.");
      return;
    }
    switch(cOva.ActiveInventory)
    {
      case iAnalopticon: cOva.Say("That doesn't need analyzing."); return;
      case iHypercaulk: cOva.Say("That doesn't need to be any stickier."); return;
      case iStapler: cOva.Say("That doesn't need stapling."); return;
      default: cOva.Say("Those two things will not produce a successful merger."); return;   
    }
  }
  cOva.Say("The heck?");
}
SMF spam blocked by CleanTalk