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

Topics - KodiakBehr

#21
I could use some creativity in solving a bug that has stumped me for the past week.

I have a room that uses Parallax Scrolling.  When I enter that room from another room, the scrolling does not work.  When I start the game with the character in the room, the scrolling works (more or less) correctly.

Here's the catch.  There is nothing special about how the character changes rooms, and in both cases the character is being sent to the same location.  There are no FirstLoad commands, and nothing that I can think of that would explain why the two cases would be handed differently. 

Any bright ideas as to how this is possible?

#22
Hi, this is going to sound really silly, but I've completely forgotten how to have an inventory item's name appear in a label on a mouseover!

Under repeatedly_execute_always, I inserted this line: 

InventoryItem*item = InventoryItem.GetAtScreenXY(mouse.x, mouse.y);

And then later on in the same function I say,

lblInvDescription.Text=item.Name;

This causes crashes and sadness, and I'm clearly missing the big picture.  What is the correct way of doing this?

Thanks!
#23
Hi there,

I'm looking to implement achievements for Conspirocracy (which has fallen to the 5th page of the coming soon boards!).  I assume the only way to do this is to have the game draw data from an "achievement" file upon every load.  How would I go about writing and loading information from this hypothetical file?

Is there a better (or more coherent) way of going about this?

Thanks!

KB
#24
Advanced Technical Forum / Randomize on load.
Fri 15/03/2013 02:32:06
Okay, this is a fun question.

Is there any way I can randomize something upon the loading of a save-game?  I want to prevent players from being able to brute-force a solution.

Thanks!
#25

What is Conspirocracy?  You can read a little about it here. 



This full-length feature project has been going on for a while now and has received a lot of great help from a lot of wonderful artists, actors, composers and designers within the AGS community.  In addition to just being a fun little story, it's intended to raise money for the Foundation Fighting Blindness, a Canadian-based charity.  The main character of David Poulson is being voiced by the incredibly talented and patient Edwyn Tiong, and work on this has progressed to the point where I think it's safe to start soliciting for other volunteers who would be interested in taking on a role in this story.  Conspirocracy has a sizable cast set in a somewhat contemporary setting.  This game tells the story of a slow descent into the bowels of bureaucracy and is packed full of weird and wonderful characters, and lots of Canadiana.

There's no money in any of this.  I couldn't afford to pay you all if I wanted to.  Everyone who volunteers is doing so because they love voice-acting or they want to say they were a significant part of this charity project.  Everyone who volunteers is asked to be capable of producing clean, articulate, static-free, non-stuttering sound-files using their own recording equipment.  Unless otherwise indicated, presume that voices should be appropriate for North America, though note that there are several accented roles listed.

Drop me a line if you're interested, either through this thread, a private message, or by e-mailing me at little.red.dog.games@gmail.com.  Let me know the roles that you're interested in, and I'll throw you some sample lines to audition.  I will keep this thread updated to note what roles have been filled. 

The roles are as follows:

CAST OF CHARACTERS - CONSPIROCRACY
Spoiler


All roles have been filled!  Thank you all!

[close]

If you're interested, do feel free to try out multiple roles if you're able to distinguish your voice sufficiently.  There's something there for just about everybody, so I look forward to hearing from you! 
#26
Has anyone else using this plugin encountered a problem where it wasn't picking up the speech files?

I have 100+ .ogg speech files in the Speech folder of my game titled EGO1, EGO2, EGO3...etc. that are being picked up and played by the AGS engine just fine, but Speech Center labels them as "missing" and won't play them within the plugin.  I was hoping to be able to check those sound-files against the actual in-game text and make adjustments as needed.

Any bright ideas as to what I might be doing wrong?

Thanks.

KB
#27
I'm working on a game with considerable amounts of dialog that would better fit as a thought bubble.

Now, I know Resonance does this well, and I have no idea how, but I'm going to assume that it's way out of my league.  I'm trying to use the system that is already implemented.  At best, I seem to be able to get a basic balloon (that has no cloudy properties associated with it) as a text window GUI and a small set of circles that lead from the character's head to that balloon.  Those circles would ideally that a higher z-order priority than the text window GUI, but I can't seem to make that happen.  So my questions are two-fold:

1.  Is there a way to change the Z-order of a text window GUI?
2.  Is there a smarter way to implement thought bubbles that I'm missing?

Thanks!
#28
Hey guys,

Can you give me some insight as to what is happening here?

I've got a scene where the player, upon crossing a specific point, has his/her attention moved from the protagonist to another character.  Basically, I want the camera to track a new person in a cutscene as they walk a brief path, an event occurs, and then the camera returns to the original player.

The switch appears to happen, but the camera fails to track the new player and all the good stuff appears to be happening off-screen!  Any idea what I can do to remedy this?

Code: AGS

function region5_WalksOnto()
{
    region[5].Enabled=false;
    player.StopMoving();
    odoor.Animate(0, 2, eOnce, eBlock, eForwards);
    cCharacter2.SetAsPlayer();
    player.Walk(1497, 126, eBlock, eAnywhere);
    player.Walk(1262, 126, eBlock, eAnywhere);
    player.Walk(1262, 178, eBlock, eWalkableAreas);
    player.Walk(1054, 177, eBlock, eWalkableAreas);
    player.Walk(1053, 128, eBlock, eWalkableAreas);
}
#29
Recruitment / Voice Actor for Conspirocracy
Tue 01/01/2013 22:58:16
I'm now at that crossroads that everyone here who makes games faces where we debate between having voice-acting or not.  For me, the only way to make this decision is to dip my toes in and see if I can find somebody who can really make something great out of the main character.  It's a huge role -- 880 lines in all, and although this is a charity project, I'm pretty sure I could find a couple hundred bucks to say thank you to somebody who is willing to take time out of their day to help us see development through to the end.  This character will have lots of weird and wonderful moments -- please be comfortable clucking like a chicken :-)  At the end of the day, you're the one bringing the character to life, so the dialog can be fudged a fair bit to accommodate any ad-libbing.

The star of Conspirocracy is David Poulson.  David is a divorced, sarcastic, grumpy 40-something English teacher who lives in Canada.  He has a short temper and a high blood pressure.  The world is pretty much set against him, and his journey will be an uphill battle to restore his missing identity.

Some sample lines for an audition:

DAVID (speaking to somebody on the phone): This government "error" is going to get me kicked out of my apartment.

DAVID (speaking to a large audience): There is a weird smell in the building, and we demand management be held accountable!

DAVID (speaking to himself): Her temperature is none of my business.

If you're reading this and want to learn more, I invite you to send me an audition track via message or to little.red.dog.games@gmail.com.  You can also follow the development block by clicking the link in my signature.  If we can make something great happen with this character, I will then open up auditions for very wide and bizarre cast of characters.
#30
Hey, I would really appreciate some insight.  I've never used the auto-numbering feature before and I'm having a very hard time with it.

I've opened the wizard.  Selected renumber-everything, no speech for display and narrator lines and yes to giving identical lines the same number.

It tells me:
Code: ags


Unknown character name: se
Unknown character name: ayer
Undetermined string in script: Unknown character name: se
Unknown character name: ayer
Unterminated string in script: 's empty.");}function hplants_UseInv(){unhandled_events_objects();}function htable1_UseInv(){unhandled_events_objects();}function htable2_UseInv(){unhandled_events_objects();}function hbottles_UseInv(){unhandled_events_objects();}function hbooth_UseInv(){unhandled_events_objects();}function htipjar_UseInv(){unhandled_events_objects();}
Failed to save room room6.crm; details below
room6.asc(117): Error (line 117): Type mismatch: cannot convert 'const string' to 'int'


I've got no characters named "se" or "ayer" referenced, though presumably "ayer" has something to do with "player".  I've got to the offending text for the unterminated string and for the type mismatch and can see absolutely nothing with either.  I presume this has something to do with the way the wizard is reading my code?

Any ideas?
#31
Conspirocracy is getting ever-closer to beta-testing (and I hope to find some kind volunteers here amongst the AGS community), but I know when I’m in over my head and when it comes to music composition, I’m going to need some help.

You can learn a little bit about the game here and follow the development blog here.

Conspirocracy is being developed in the hopes of raising a little money for the Children’s Hospital of Eastern Ontario.  It will likely be sold under a “pay what you want” model until somebody convinces me that this is a terrible idea.  I'm looking for somebody who with strong communication skills that will bring with them a vision of a background soundtrack that will fit the mood of the locations and scenes in this game. 

So, in the event that you’ve got a talent for music composition, and a kind enough heart that you’re not necessarily in it for the money (I’m happy to compensate you the cost of a couple cases of beer for your trouble), and want to see any early build of the game from which to draw inspiration, please drop me a line.  I can be reached through private messages here or at little.red.dog.games@gmail.com.

Thanks!
#32
Upon changing rooms, I get a crash and the following error message that I've never seen before.

Error: Unable to create local script: Runtime error: unresolved import 'Character::Changeroom^3'

The code for changing rooms reads:

Code: ags

function hembassytravel_WalkOn()
{
if (player.ID!=0){player.ChangeRoom(15, 463, 31);}
else {
  if (player.y>250){
        player.ChangeRoom(15, 614, 190);
    }
  else if (player.y<251){
        player.ChangeRoom(15, 70, 190);  
    }
}

}


Any ideas where I should be looking for problems?  Using AGS Draconian.
#33
This should be straightforward but I must have been at this too long.  I've got a listbox that starts mostly unpopulated.

The game is open-ended enough that the player can add entries to that listbox is any order.  How do I ensure that the correct actions for selecting a listbox item are linked to the right item added.

This is probably a clumsy way of explaining.  Let me clarify.

A player gets a phone number, so if I state:

listPhoneNumbers.InsertItemAt(2, "867-5309");

It won't show up in the listbox until there is a 0 and 1 entry.  That's no good to me.

If I instead state:

listPhoneNumbers.AddItem("867-5309");

It could end up in any spot, and I have no idea how to ensure that listPhoneNumbers.SelectedIndex==2 goes to THAT entry.

What do you think I should do?  (Besides get some sleep.)
#34
Hey, I've uncovered two bugs that I cannot reproduce at will which makes it extremely difficult to ascertain what is going wrong.

1.  Sometimes, without any obvious explanation, the character will play a loop unrelated to his walk-cycle when walking.  Any guesses on what can cause that?
2.  The inventory system doesn't deviate too much from the default Sierra system.  Despite the fact that the code says:

Code: ags

function show_inventory_window () 
{
  gInventory.Visible = true;
  // switch to the Use cursor (to select items with)
  mouse.Mode = eModeInteract;
  // But, override the appearance to look like the arrow
  mouse.UseModeGraphic(eModePointer);
}


Occasionally (but inconsistently) the inventory will appear but the cursor will still be the walk cursor.  Any ideas on what could cause that?

Thanks.

KB
#35
AGS Games in Production / Conspirocracy
Sun 26/08/2012 22:31:54




A schoolteacher wakes to find his entire life is missing from public record.  His bank account, his health care, his credit cards are all frozen while the government declares him to be a non-person.
As he takes the steps necessary to pull his life back together, he becomes aware of nefarious forces that have conspired against him.  The truth, it seems, is never pure and rarely simple.

Loosely inspired by Douglas Adams' Bureaucracy (1987), Conspirocracy is a comedy that will introduce the player to an eclectic cast of characters in a wide variety of locations as he uncovers the secret of what became of his identity.


This game is being developed in the hopes of raising a little money for a good charitable cause.






FEATURES

- A full-length game with a wide-variety of puzzles and characters.
- Unlockable achievements for players who discover the many easter-eggs hidden within.
- A "stress" management system.  Our hero has a weak heart and too many stressful incidents will kill him.  Find ways to help calm his anxiety.







Progress To Date:
Writing 100%
Graphics 100%
Scripting 100%
Music/Sound 95%


Developer Diary

26th August, 2012 - Official reveal.    Basic Website up.
21st October, 2012 - First update with new screenshots.
28th April, 2013 - Alpha testing begins.  Voice work and soundtrack begins.
8th August, 2013 - Voice and soundtrack complete.  Beta testing begins.
18th August, 2013 - Beta testing ongoing.  IndieGoGo campaign begins!
7th December, 2013 - Conspirocracy ships!
#36
This should be straightforward, but I'm afraid I'm at a loss.

Is there a way to check which direction a stationary (or moving) character is facing?
#37
My apologies in advance, this is going to feature some really, really bad code as I'm making up the logic as I go with no direction or experience.  I may have bitten off more than I can chew, but I'd like to hear an expert opinion before I give up.

One particularly unique puzzle in a game that I am working on is to be based upon the "Theseus and the Minotaur" maze puzzle made in the early 90's.

The premise is simple.  You've got a grid-maze with two characters inside it, Theseus (the player) and the Minotaur.  If the Minotaur touches Theseus, it's game over for that latter.  For every one step made my the player, the Minotaur takes up to two.  The Minotaur's pathfinding logic is straightforward:

1  Can the Minotaur move horizontally and get closer to Theseus? If Yes, go to 2. If No, go to 3.
2.  Move Horizontally one grid-square towards Theseus. Then go to 5.
3.  Can the Minotaur move vertically and get closer to Theseus? If Yes, go to 4. If No, go to 5.
4.  Move vertically one grid-square towards Theseus. Then go to 5.
5.  Move complete.

I'm trying to translate this logic into AGS.  Here's what I'm thinking.  Every time the player moves, the following operation is called twice, because the minotaur moves twice as fast as the player --

Code: ags

  float dx = IntToFloat(player.x - cMinotaur.x);
  float dy = IntToFloat(player.y - cMinotaur.y);
  int distance = FloatToInt(Maths.Sqrt(dx*dx + dy*dy));  //distance now refers to the ACTUAL distance between the player and the Minotaur
  int z= 10;  // the grids are presumed to be 10 pixels apart

  float horizontalcheckx =   float dx = IntToFloat(player.x - cMinotaur.x+z);
  float horizontalchecky = IntToFloat(player.y - cMinotaur.y);
  int horizontalcheckdistance = FloatToInt(Maths.Sqrt(horizontalcheckx*horizontalcheckx + horizontalchecky*horizontalchecky));

  if (distance > horizontalcheckdistance){cMinotaur.Move(x+z,y);}  // If moving to the right gets you closer, then move to the right.  Now, there should be a check inserted in here to see if the minotaur CAN move to the right without hitting a wall.  I have zero idea how to pull that off, so what I would probably end up doing is making the wall an object and in the event of a colission, have the minotaur go back where he came from....

  else {

  z= -10;  //Now let's check the left.

  float horizontalcheckx =   float dx = IntToFloat(player.x - cMinotaur.x+z);
  float horizontalchecky = IntToFloat(player.y - cMinotaur.y);
  int horizontalcheckdistance = FloatToInt(Maths.Sqrt(horizontalcheckx*horizontalcheckx + 

horizontalchecky*horizontalchecky));

  if (distance > horizontalcheckdistance){cMinotaur.Move(x+z,y);}  // If moving to the left gets you closer, then move to the left.

   }

  else {

  float verticalcheckx =   float dx = IntToFloat(player.x - cMinotaur.x);
  float verticalchecky = IntToFloat(player.y - cMinotaur.y+z);
  int verticalcheckdistance = FloatToInt(Maths.Sqrt(verticalcheckx*verticalcheckx + 

verticalchecky*verticalchecky));
	
  if (distance > verticalcheckdistance){cMinotaur.Move(x,y+z)}  //If moving up gets the minotaur closer, move up.

else {

z=10

  float verticalcheckx =   float dx = IntToFloat(player.x - cMinotaur.x);
  float verticalchecky = IntToFloat(player.y - cMinotaur.y+z);
  int verticalcheckdistance = FloatToInt(Maths.Sqrt(verticalcheckx*verticalcheckx + 

verticalchecky*verticalchecky));

  if (distance > verticalcheckdistance){cMinotaur.Move(x,y+z)}  // if moving down gets the minotaur closer, move down

}
}
}





Does the logic here seem okay to you?  Or am I going about this all wrong?  Is there a better way to achieve the same results?
#38
I could really use a hand here.

First Question:

GUI is constantly on, has a button that is clicked to load the Sierra-style inventory.
When the mouse is over the button, I want it to become a pointer.  When the mouse leaves the button, I want it to go back to the last cursor icon.

So far, so good.  I wrote this to repeatedly execute:

Code: AGS

GUIControl*gc = GUIControl.GetAtScreenXY(mouse.x, mouse.y);
if (gc == btnInventory) {mouse.SaveCursorUntilItLeaves();mouse.UseModeGraphic(eModePointer);}


Problem is, when you select the inventory item, thus changing the cursor to reflect that inventory item, and then close the inventory window, it will naturally want to change back to its last cursor instead of holding the cursor of the inventory item.  How do I code my way around this?

And second question:

Is it possible to check for a cursor's graphical property, rather than it's mode?  My game generates an overlay just above the cursor that displays the name of an object on a mouseover, but I find it's a little distracting and gets in the way while dialog is occurring.  I'd like to disable that feature when the wait cursor is displayed, but checking cursor.Mode==eModeWait has no effect, so I'm assuming that the cursor is just using the wait graphic, while retaining the original mode?  Does that make sense?  If so, I can't seem to find any command that checks for a cursor's graphic so I can set this overlay to disable.
#39
[imgzoom]http://i510.photobucket.com/albums/s347/KodiakHPS/Apartment320p.png[/imgzoom]

Grateful your thoughts about this room.  I haven't quite decided what to do with that blank space on the right wall yet.
#40
I want to set my GUI up so that when the cursor mouse-overs any button in the GUI, it switches to a pointing cursor, and when it moves off that button, it goes back to what it was.

So I figured the best was to go about it is to add in rep_exec :

GUIControl*gc = GUIControl.GetAtScreenXY(mouse.x, mouse.y);
if (gc == btnIconInv) mouse.UseModeGraphic(eModePointer);
else mouse.UseDefaultGraphic();

Problem is, now it's constantly calling the current cursor, resulting in the stuttering of the cursor animation.  Is there a better way to accomplish my objective?
SMF spam blocked by CleanTalk