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

#1521
Thanks! I changed the values and it looks quite good already. I might fiddle with it more a bit later, when I have the final walking speed etc.
Code: ags
Characters.Mortimer.Follow(Characters.Cornelius, new AGSFollowSettings(wanderOffPercentage: 0,
minWaitBetweenWalks: 0, maxWaitBetweenWalks: 100,
minXOffset: 10, maxXOffset: 260,
minYOffset: 0, maxYOffset: 10));


However, stopping still freezes the application (during await Characters.Mortimer.StopFollowingAsync();)

This is what my code looks like now:
Code: ags

_game.State.Cutscene.Start();

Characters.Cornelius.Inventory.ActiveItem = null;
await Characters.Cornelius.WalkAsync((2479f, 0f));
await Characters.Cornelius.SayAsync("Mortimer, come here!");
await Characters.Mortimer.StopFollowingAsync();
await Characters.Mortimer.WalkAsync((2035, 0f));
await Characters.Mortimer.FaceDirectionAsync(Characters.Cornelius);
await Characters.Cornelius.SayAsync("I need you to help me with the gate.");
await Characters.Cornelius.SayAsync("You are small. Try to squeeze through it to the other side and open it for me.");
await Characters.Mortimer.SayAsync("* squeak *");

// TODO follow cat again

_game.State.Cutscene.End();

When I click the pause button in VS while the game is stuck, it seems to be stuck in AGSGameWindow line 74 with call stack (not very helpful, I guess)
Spoiler

>   AGS.Engine.Desktop.dll!AGS.Engine.Desktop.AGSGameWindow.SwapBuffers() Line 74   C#
   AGS.Engine.dll!AGS.Engine.AGSGame.onRenderFrame(object sender, AGS.Engine.FrameEventArgs e) Line 225   C#
   AGS.Engine.Desktop.dll!AGS.Engine.Desktop.AGSGameWindow.onRenderFrame(object sender, OpenTK.FrameEventArgs args) Line 87   C#
   [External Code]   
   AGS.Engine.Desktop.dll!AGS.Engine.Desktop.AGSGameWindow.Run(double updateRate) Line 73   C#
   AGS.Engine.dll!AGS.Engine.AGSGame.Start() Line 150   C#
   CorneliusCat.Desktop.exe!CorneliusCat.GameStarter.Run() Line 19   C#
   CorneliusCat.Desktop.exe!CorneliusCat.Desktop.Program.Main(string[] args) Line 10   C#
[close]

Another question: if follow(null) can cause problems, wouldn't it be better to remove this synchronous call completely?
#1522
ollj: Why do you dig up an old thread, just to post something completely unrelated? Of course, this board is called Adventure Related Talk & Chat, but please keep the talk and chat at least somewhat on topic. And show that you have taken the time to actually read what people before you have written in the thread.

This also applies to a few of your other recent posts.
#1523
The sub-forum is perfectly fine. There was confusion because many people come here and ask if it is possible to make RPGs with AGS. The answer is yes, but there are much better suited engines out there. This is probably the reason why there are not many RPGs made with AGS.

Sorry I can't help you with finding more games besides the ones I've already mentioned :(
#1524
There still seems to be an issue with stopping the follow.
After fade in, I do
Characters.Mortimer.Follow(Characters.Cornelius);

Later, when using the mouse item on the gate, I have the following cutscene (not finished yet):
Code: ags

_game.State.Cutscene.Start();

Characters.Cornelius.Inventory.ActiveItem = null;
await Characters.Cornelius.WalkAsync((2479f, 0f));
await Characters.Cornelius.SayAsync("Mortimer, come here!");
Characters.Mortimer.Follow(null);
await Characters.Mortimer.WalkAsync((2035, 0f));
Characters.Mortimer.FaceDirection(Characters.Cornelius);
await Characters.Cornelius.SayAsync("I need you to help me with the gate.");
await Characters.Cornelius.SayAsync("You are small. Try to squeeze through it to the other side and open it for me.");
await Characters.Mortimer.SayAsync("* squeak *");

// TODO follow cat again

_game.State.Cutscene.End();

However, when it comes to the line Characters.Mortimer.Follow(null); the game freezes. I cannot even move the mouse cursor anymore.


On a different note: I tried the setting
Characters.Mortimer.Follow(Characters.Cornelius, new AGSFollowSettings(true, 80, 0, 10, 140, 160, 0, 10));
This works almost as desired, but the character will wander off till the end of the walkable area (much farer away than 160 pixel), is it possible to limit this somehow?
#1525
Next topic: following a character. I now realize that Cornelius Cat uses quite a lot of different features for such a short game :)

In the original AGS game I use the setting
Code: ags
cMouse.FollowCharacter(cCat, 150, 0);

This results in the mouse somewhat following the cat, but mostly running around, even when the cat is standing. How do I have to set the values in AGSFollowSettings to achieve the same?

Edit: Btw, there seems to be a problem when un-following a character with Follow(null):
System.NullReferenceException
  HResult=0x80004003
  Message=Object reference not set to an instance of an object.
  Source=AGS.Engine
  StackTrace:
   at AGS.Engine.FollowTag.AddTag(IObject target, IEntity follower) line 23
#1526
It works nicely! The cursor is now correct and the text centred nicely. Thanks :)
#1527
I think ChaunceyK does not want to write a game but get recommendations for AGS games with turn-based combat. This is something I don't like, so I haven't played any. AFAIK Quest for Glory II VGA: Trial By Fire has some RPG elements.

Edit: I just read that you already have played the Sierra Quest remakes. You might want to try the other games in this style like Heroine Quest or Quest for Infamy(commercial) but as said before, I haven't played them.
#1528
Nice thread!

Trading
A character has an item you need and is willing to trade it for another item.
#1529
The Rumpus Room / Re: Happy Birthday Thread!
Tue 13/11/2018 09:29:49
Happy Birthday, Snarky! And happy belated one, Blondbraid!
#1530
It works except for one thing: I set the default cursor via the constructor, but it is only applied after changing to the inventory cursor and back. Of course I could set the cursor myself, but actually I'd expect this to happen automatically when TwoButtonsInputScheme.Start() is called. The same applies for the setter of the DefaultCursor property.
#1531
The Rumpus Room / Re: What grinds my gears!
Mon 12/11/2018 10:09:38
Quote from: Frodo on Mon 12/11/2018 03:59:07
It's a good browser 
No, it is not. It is old, outdated and has a lot of weird bugs. It's a pain to create websites that also support IE11. Companies start to evaluate what is cheaper: continue supporting IE11 or loosing IE11 users as customers. It seems that many start to think that supporting IE11 is not worth the effort.
Switch to Edge or any other modern browser.
#1532
Wow, that was quick 8-0

Quote from: tzachs on Sun 11/11/2018 03:27:19
The two buttons input scheme now has a SetInventoryCursor method, which you can either pass an inventory item or pass nothing which will make it take the current active item for the cursor.
In addition, I added the inventory item change event which I missed somehow.
Works, but only kind of:
When the player performs a right click when an inventory is active, there is a null reference exception at AGS.Engine.TwoButtonsInputScheme.SetInventoryCursor(IInventoryItem inventoryItem) in line 37
onRightMouseDown sets the ActiveItem to null, which then triggers the OnPropertyChanged handler.
I'd change SetInventoryCursor to reset the default cursor when null is passed and the active inventory is null. This would help regarding the exception, but also allow the programmer to change back the active inventory programmatically. This is needed when I use the active inventory item on a hotspot and this results in me losing the inventory item.

Another issue: You might want to check if the previous cursor should really be changed. Otherwise, there will be weird issues when setting two active items after each other without returning to the default cursor in between.
Consider renaming _previousCursor to _defaultCursor, then it will be more clear. You could also provide a method SetDefaultCursor. This way you can safely change the default cursor, no matter if there is currently an inventory active or not.

Quote
1. Any user interaction will now trigger stop walking before applying the interaction.
Confirmed (nod) I didn't test the SpeakAndWalk animation, though.

Quote
The default label size for speech is now resolution dependent (by default it's 80% of your virtual resolution).
Works, but 80% seems a bit too much. Maybe 70% is enough? (But this might be because of my setup with the stage frame around it.)
Btw, is it on purpose that the text wraps left-aligned instead of centered? It doesn't look that nice, especially when there is only a word or two in the second line.

Quote
Fixed, it's now centered above the character.
Confirmed (nod)
#1533
In my game there is no inventory, but when you pick up things, the mouse cursor will change to it - it will basically be your active inventory item.

So, when initializing the game, I create the inventory items and assign them to the player character. Later, OnInteract with a hotspot, I set the active item:
Code: ags

_character.Interactions.OnInteract(AGSInteractions.INTERACT).Subscribe(_ =>
{
    _game.State.Player.Inventory.ActiveItem = InventoryItems.Mouse;
});


However, this does not work with the TwoClickInputScheme. I will rewrite it, but the question is: What is the best approach? I could

  • Add a method for setting the active inventory to the TwoClickInputSchemeclass (public void SetActiveInventoryItem(IInventoryItem inventoryItem)). This is pretty simply but has two disadvantages: I have to remember to call it and I will somehow have to have a reference to the instance.
  • The next idea is to subscribe to repeatedly_execute in the TwoClickInputScheme and continuously check for the active item. This would be the AGS-style approach, but it feels unnecessary to do the check every cycle when the active item only changes ever so often. Which brings me to my third idea:
  • Is it somehow possible to attach an observer to ActiveItem? Then the InputScheme could just subscribe to it and do the cursor handling accordingly. The AGSInventory.Items property is already a BindingList, is there something similar for basic properties?

Any ideas/opinions?
#1535
Good to know, I'll stick to embedded for now. Thanks, guys!
#1536
A question about including resources:

The default value for build action when I add a new resource is Content. I noticed that you use Embedded resource in the demo game. What is the difference between those actions and why did you pick embedded resource?
#1537
*bump*
#1538
Quote from: Slasher on Wed 07/11/2018 07:44:22
You probably had an early build...
I downloaded it yesterday.???
#1539
Quote from: Cassiebsg on Sat 03/11/2018 14:14:03
Just an (OT) notice. Seems like MediaFire now has added code to detect if you have an adblocker running, and won't let you download the file... >:(
Yes, this is really annoying. Could you use another file-host in the future?

Edit: I played all games

Captain Downes and the Pirate Princess
Spoiler
Nice story, graphics and puzzles, but the miniature aspect is not really there.
[close]

Captain Carver's Carnival Curios
Spoiler
Nice character art, but what about the rest? Next time maybe focus on story and gameplay before you spend so much time on character art and a mirror effect.
[close]

Dr. Chuckles' Miniature World of Madness
Spoiler
Great graphics and atmosphere. Some really nice puzzles, even though I didn't like that it was timed. I had a bit of trouble with the hotspots of the cursors - it was hard to hit the scroll-down button in the inventory. Good use of the miniature theme.
[close]

I voted for
Spoiler
Dr. Chuckles' Miniature World of Madness
[close]
#1540
Indeed, looking forward to it ;-D
SMF spam blocked by CleanTalk