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

#321
Great game with a very classic feel to it, logical puzzles and the art and music were very good. Nice work!
#322
The Rumpus Room / Re: The AGS Stickam Room
Sun 26/04/2009 20:00:40
I've suddenly got some free time:
http://www.tokbox.com/conf/9pj3gur995dwk98u
#323
You need to enclose your if functions with parenthesis "{" and "}". Also because you're dealing with an 'either-or' situation (either the player will have visited room 4, or they won't have) you can replace the second if with an "else". Finally you may or may not need to make the walk blocking...
Code: ags

function room_LeaveBottom()
{
  if(HasPlayerBeenInRoom(4) ==0) {
    cChar1.Say("I should check my emails first.");
    cChar1.Walk(69, 132, eBlock);
  }else{
    cChar1.ChangeRoom(1,  1000);
  }
}
#324
Completed Game Announcements / Re: Breakdown
Sun 26/04/2009 17:39:42
Quote from: Andorxor on Sun 26/04/2009 16:49:00
Spoiler

I set the buttons to the colors their letters had on the transporter display.Would i have triggered the secret ending?
[close]
Oh, now that's clever :D I honestly hadn't thought of that one.
#325
Completed Game Announcements / Re: Breakdown
Sun 26/04/2009 16:33:07
Quote from: bicilotti on Sat 25/04/2009 14:43:18
Just today I was playing Erk and wondering: "will he do some more games in the near future?". D'loadin' it now!
Hope you enjoy it!

Quote from: Hudders on Sat 25/04/2009 15:34:50
What are those buttons on the left of the inventory?
They're there for two reasons. The first is to try and make the GUI look more like a tricorder...

...but I also wanted to involve them in a hidden ending which I didn't manage to put in because of the MAGS time limits. I know its bad GUI design to put functionless buttons in, so I tried to make the active buttons brighter colours and made sure everything you could click on had labels. Anyway I'm considering whether or not to do a director's cut version (although the central game is complete, there were quite a few things I wanted to do that I didn't have time for) so they might yet have a purpose.

Quote from: Dataflashsabot on Sat 25/04/2009 16:40:08
Spoiler
I didn't like the way the engineering door works. I'm used to clicking a door to go through it, not click below the door then click through it once it opens.
[close]
That's a fair point though its completely automatic so, as in real life, you can walk in front of it to open it.
#327
Completed Game Announcements / Breakdown
Sat 25/04/2009 14:10:43
Breakdown

Story
The Captain has damaged his ship's engine, and now the Engineer won't repair it. It's up to you, a lowly Ensign, to reactivate the Auto Pilot and get everything moving again.

Features
*Classic 320x240 graphics
*Comedy scifi setting
*Lots of animation and sound

About
This is an entry to the April 2009 MAGS 'Space Derelict' competition

Links
Direct Download: http://www.onedollarproductions.co.uk/games/Breakdown.zip
Mirror: http://files.filefront.com/13655763
AGS games page: http://www.adventuregamestudio.co.uk/games.php?action=detail&id=1155
April 2009 MAGS: http://www.adventuregamestudio.co.uk/yabb/index.php?topic=37346.0
Website: http://www.onedollarproductions.co.uk/games/breakdown.htm

Please rate and leave any comments on the games page or in this thread.

Edt: MAGS is now over, thanks to everyone who voted!
#328
Out of curiosity, is anyone going to correct the typo in the recruit a team thread title?
#329
It up to you, as long as you meet the contest requirements and you spent quite a bit of time working on the game its fair to enter. Of course if its full of bugs and dead ends people aren't going to enjoy it much.

I suggest you look at the overall game plan and divide it roughly into groups:
- Things that must be in the game for it to work (e.g. the broken ship, fixing puzzle, all major bugs squashed)
- Things that really ought to be in the game (e.g. interactions for important objects, minor bugs squashed)
- Things that would be nice to have in the game (e.g. generic interactions for all objects, animation)
- Things you're only going to add if you have time (e.g. a custom interaction for every object, extra bits)
Then tackle them in that order. If you end up with something that's unfinished but works you can submit it as a kind of demo, but if you can't finish the necessary bits drop out and finish the game in your own time.

That's what I'm doing, anyway ;)
#330
Quote from: Sephiroth on Thu 16/04/2009 04:43:33
if i declare an array of anything for example Character Charz[10]; the bounds will actually be 0-9 and trying to use index 10 will give an access violation at runtime.

It's slightly confusing, but basically when you define the array you specify how many 'slots' to use, in this case 10, but the first slot is actually called slot 0. So you define an array of size 10 which contains indexes of 0 to 9.
#331
Quote from: Sephiroth on Mon 13/04/2009 21:33:39
Code: ags

current_lv  = current_xp / 1000;  

I presume this line means set current_lv to current_xp / 1000 rather than current_lv is current_xp / 1000? Otherwise your level will change even when you get 1 experience point. You need to do some rounding or checking, something like
Code: ags

while (current_xp <= 1000) {
  current_xp -= 1000;
  current_lv ++;
}


Anyway, the rest of your code works out pretty similar to mine, except remember you'll be generating decimal values so you'll have to round the experience one way or the other.

If you've got Excel I made a spreadsheet comparing the two while checking my formula...here
#332
Depends how complicated you want your experience curve to be. A very simple answer is...

RoundDown((1 - (([Current Player Level] - 1)/[Max Player Level])) * Base Monster Exp)

So if your player has a maximum of 40 levels, is currently at level 3 and defeated an enemy of 10 exp, they'd get RoundDown((1-((3-1)/40))*10) = RoundDown(0.95 x 10) = 9 Experience.

Basically I'm expressing the player's current level as a negative percentage of the total level (i.e. 100% is level 1), then multiplying that by a base experience value for the enemy (i.e. the most experience you'll ever get out of them). I'm subtracting 1 from the player's level so that they always get 100% of the base experience when they're level 1, though this means that when they're level 40 they'll get 2.5% of the experience base rather than the implied 0%, whether this is a problem or not is up to you. I suggest you stick the function into Excel and plot some graphs of experience against player level and see if you think it'll work.

Also its your choice to round up, down or to the nearest number, and you might want to put a conditional in to make sure the player always gets at least one experience point.
#333
Quote from: Trent R on Sat 04/04/2009 01:58:12
$1, is that the Konami code I see written one there? :D
They *are* always stealing my ideas.

Quote from: abstauber on Tue 07/04/2009 07:03:02
Does this disc still work?
Yes, its actually one of the least damaged disks I've got. Unfortunately its got part ??? of ??? of a spanned .zip file on there, rather than the original game files. I still have them backed up somewhere though...
#334
I suggest you get the translation done by someone who's fluent in the language you want to translate to though, or at very least get it proof read. Computer translations nearly always sound wrong. There's plenty of people on the forums who'll translate for you.
#335
Oh yeah, thanks for pointing that out Paolo. I guess the line should really be
Code: ags
if ((Answer == "42") || (Answer == "forty two") || (Answer == "forty-two")) {


Anyway, code corrected.
#336
Apologies for the lengthy answer, I'm trying to work through your code and see what's actually happening...

I'm a little confused by what the code is supposed to be doing. What you have is one if function with conditionals for the game being paused, the left mouse being clicked and the middle mouse being clicked.

Then you have a completely separate if function dealing with combinations of left mouse button and available interactions.

So if the player clicks the left mouse button on something, it will call ProcessClick on that, then if there is a missing interaction for any mode on that object it sets the cursor to eModeWalkto and sets the status label to "Walk to @OVERHOTSPOT@", but if all interactions are available and the mouse mode is currently eModeInteract and the player left clicked on the inventory it makes the clicked item the active inventory item.

I think you've missed an "else" off the front of "if (button == eMouseLeft && IsInteractionAvailable(mouse.x,mouse.y, eModeLookat) == 0){", and if that's the case you need to stick those conditions higher than the "else if (button == eMouseLeft)" otherwise they'll never be called.

I'm not really following the logic here, but (assuming you've got HandleInventoryClicks in script set to true) the reason you're not getting a lookat interaction for clicking on an inventory item is because no conditional matches it.

If you set the mouse mode to eModeLookat and left click an inventory item it calls the on_mouse_click function setting the button value to eMouseLeftInv. Your only condition for when button == eMouseLeftInv is when you also have mouse.Mode == eModeInteract, but its not because we set it to eModeLookat. So nothing is called.

Personally I'd look at doing a more top down method of coding, i.e. first figure out what mouse button is being clicked, then figure out what the mouse mode is, then figure out if there's an interaction available. Something like this, maybe...
Code: ags

function on_mouse_click(MouseButton button) {
  // called when a mouse button is clicked. button is either LEFT or RIGHT
  if (IsGamePaused() == 1) {
    // Game is paused, so do nothing (ie. don't allow mouse click)
  }else if (button == eMouseLeft) {
    //Player left clicks on something that is not the inventory
    if (IsInteractionAvailable(mouse.x, mouse.y, mouse.Mode) == 0) {
      //No interaction available for the current mouse mode, so cancel the interaction
      //and reset cursor to walk to.
      mouse.Mode = eModeWalkto;
      Lable6.Text = ("Walk to @OVERHOTSPOT@");
    }else{
      //There is an interaction available, so do it!
      ProcessClick(mouse.x, mouse.y, mouse.Mode );
    }
  }else if (button == eMouseMiddle) { 
    // Middle-button-click, default make character walk to clicked area (a little shortcut)
    // Could have been just "player.Walk(mouse.x,mouse.y)", but it's best to
    // leave our options open - what if you have a special script triggered
    // on "walking" mode?
    ProcessClick(mouse.x, mouse.y, eModeWalkto); 
  }else if (button == eMouseLeftInv) {
    //Left clicked on an inventory item
    if (mouse.Mode == eModeInteract) {
      //Interact with inventory item
      player.ActiveInventory = inventory[game.inv_activated];
      Label6.Text = String.Format("Use %s with @OVERHOTSPOT@", player.ActiveInventory.Name);
    }else{
      //Other click on inventory item (including look at)
      inventory[game.inv_activated].RunInteraction(mouse.Mode);
    }
  }
}
#337
My version of the input box method:
Code: ags

//define your variables, you might need to make AnswerCorrect global to read it in other rooms
String Answer = "";  //The text the player types in
bool AnswerCorrect = false;  //whether the riddle has been answered correctly or not

//In the region code, or the lookat code or wherever you want to call the riddle
if (AnswerCorrect == false) {
  //Not already answered the riddle
  Display("I have a riddle for you, young squire, what is six multiplied by seven?");
  Answer = Game.InputBox("!What is 6 x 7?");
  //The exclamation marks gives you a cancel option as well, and adding the text shows the
  //question as part of the input box (used as a recap here)
  if (answer == "") {
    //A blank string will be returned if the player clicks cancel or doesn't enter anything
    player.Say("Erm... I'll get back to you on that");
  }else{
    Answer = Answer.LowerCase();
    //It's important that you set everything to upper or lowercase so that the answer isn't
    //case sensitive
    if ((Answer == "42") || (Answer == "forty two")) {
      //if the player answers "42" or "forty two" (or any capitalisation of it)...
      Display("That's correct! Have a cookie");
      player.AddInventory(iCookie);
      AnswerCorrect = true;
    }else{
      //entered something different
      Display("Sorry, that's not right, try again");
    }
  }
}else{
  //already answered
  Display("No more riddles today, go away!");
}


Pretty much the same as what Trent wrote, but with everything in one function and a couple of stumbling blocks taken out (case sensitivity, multiple answers that mean the same thing).

It would probably look nicer to make your own GUI instead of InputBox (which is mainly designed for debugging), but the principle is pretty much the same. You just have to show your GUI instead of the InputBox and check the entered answer when the player clicks the OK button on the GUI. You don't need the parser for this kind of thing, look up InputBox and string functions in the manual instead.
#338
Can you run games when you're using the laptop off the docking station? What happens if you start a game in windowed mode in dual screens and move it onto the external monitor? I use a D620 on a docking station for work and I can play AGS games fine, though I've never used only the external monitor, always dual screens or just the laptop.
#339
While the thread's fate hangs in the balance, I'll say Kudos to Klaus for running MAGS for the last ages, and respect to KhrisMUC, Gilbert, RickJ, GarageGothic... and all the many other people who regularly hang around the Beginner's and Technical forums answering questions 5 minutes after they've been posted.

Btw, is the other thread you're talking about this one, because I thought that was about AGSers who are your friends, and this is about AGSers you think are rad?
#340
Quote from: JpSoft on Tue 31/03/2009 22:50:43
- Little notepad in the editor, so the game creator could easily add comments about the design of the game ("things to do", "do not forget", and so)

This would be a perfect little editor plugin project for someone. An awesome version would include (at least) rich text, the ability to create lots of separate notes arranged in a tree, simple graphics package for making sketches/diagrams which could also be stored in the same tree and manual and readme editors that you could use to compose your documentation and would automatically export (user specified name).TXT or .RTF documents when you built your executable.

Any volunteers?

(I'd do it myself, but I don't know any C# or C++ or whatever, and can't make any sense of the plugin tutorial ;))
SMF spam blocked by CleanTalk