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

#2841
Hints & Tips / Re: Once upon a time in the 70s
Thu 30/09/2004 14:54:26
Clue 1:
Spoiler

The guard will only let you pass if he thinks you're meant to be on set.
[close]

Clue 2:
Spoiler

Somehow, you have to make him think you're - erm - 'equiped' to be a porn star.
[close]

Solution:
Spoiler

Talk to the guard , tell him you're a porn star. Try all the names (I deleted the game, and don't remeber which one works, but with one of them he asks for proof). Stick the balloon down your trousers (USE it on yourself), then talk to him again.
[close]
#2842
I think it could be quite interesting, but you'd need a better reason for it than just to save you having to do graphics - it couldn't be the game you'd like to make with graphics, just without them. You'd need to work at least twice as hard on plot, maybe on developing personalities for the individual characters (since we won't be able to see them, their personality needs to come across in their speech, rather than how they look) and, of course, on new types of puzzles. Not to mention, the scripting for puzzles with little to no visual aspect would probaly be a lot harder. Interesting way of elimating pixel-hunts, if nothing else.

You'd also need to avoid crap old jokes ("He's blind, so he keeps walking into furniture! Hilarious!") and stereotypes (I can't think of a blind stereotype right now, but I'm sure they exist), to keep the game from becoming offensive.

So, yeah, if it was well done, I'd definately give it a play, but it might be easier to just go with your "not so good graphics" - I didn't hear anyone complaining about Sierra Quest, and you'll only get better with practice.
#2843
Alternatively, you could use the run-script and dialog_request commands. It's a little more complicated than jetxl's way, though.

Firsly, create your dialog with BOSS. Have an option, the one that will make the boss leave, that isn't visible at first (uncheck the 'Show' box next to it). After the conversation with NPC, use SetDialogOption to turn it on.
The dialog script for it should look something like:
Code: ags

@4  // option 4
boss: Well, I'd better go check that out.
run-script 1


Then check your global script for 'dialog request' - it's one of the shortcuts on the 'Script' menu, but by default it isn't in the script. Create the function if you have to (just copy&paste this code), and add the if (xvalue == 1) condition:
Code: ags

   function dialog_request (int xvalue) {
    if (xvalue == 1) {
      StopDialog ();
      MoveCharacterBlocking (BOSS, 100, 100, 0);
      character[NAB].room = -1;
    }// end of condition
  }// end of dialog_request

If you already have an '== 1' condition, just change the number, but be sure to change the run-script as well.

Lastly, in the hotspots/objects you want to search, use Run script and:
Code: ags

  if (character[BOSS].room == A) { // BOSS is still in the room (replace A with room number)
    DisplaySpeech (EGO, "I can't, not with Boss here.");
  }
  else { // BOSS has left the room, so
    // Whatever you want to happen
  }
#2844
Henk:
Spoiler
The wizard is speaking backwards, and you have to reply backwards. I don't remember the exact responses, but one of them always makes sense.
[close]

EDIT: Played it through, got the spells and responses (Big spoiler, obviously, so only read if you're really stuck:
Spoiler
Spell 1:
Enots otni uoy nrut lliw i (I will turn you into stone)
Response 1: Oot kcor emoceb lliw uoy (You will become rock too)

Spell 2: Eci otni nrut lliw i (I will turn you into ice)
Response 3: Tub elttil ezeerf lliw you (You will freeze your little but)

Spell 3: Dum ekil eb ecaf rouy (Your face will be like mud)
Response 1: Srouy sa ytrid sa ylraen ton (Not nearly as dirty as yours)

Spell 4: Sesuoh sa gib lliw srae rouy dna (And your ears will be big as houses)
Response 4: Uoy ot netsil ot evah t'nod i fi ko s'ti (It's OK if I don't have to listen to you)
[close]
#2845
Hints & Tips / Re: Once upon a time in the 70s
Wed 29/09/2004 22:45:49
Clue 1:
Spoiler
You need to get rid of the receptionist, somehow.
[close]

Clue 2:
Spoiler
When she isn't looking, put something in her drink.
[close]

Solution:
Spoiler
If you haven't already got it, go back and pick up the laxative from the first room  - it's one of the bottles on the floor by the keyboard. Go back to the reception desk, knock the papers off her desk, and use the laxative on her cup.
[close]
#2846
Try this:
Code: ags

#sectionstart game_start  // DO NOT EDIT OR REMOVE THIS LINE
function game_start() {
  // called when the game starts, before the first room is loaded
  game.ambient_sounds_persist = 1;
}
#sectionend game_start  // DO NOT EDIT OR REMOVE THIS LINE

(Obviously, if there's anything already in game_start, leave it there)
#2847
The simplest way is probably to use SetLabelText(); in every room's Player enters screen (before fade in), to set the text on the GUI.
e.g.
Code: ags

  // script for room1: Player enters screen (before fadein)
SetLabelText (GUI, 0, "You're in the Hallway."); // or whatever the GUI and object numbers are


  // script for room2: Player enters screen (before fadein)
SetLabelText (GUI, 0, "You're in the Cell."); // or whatever the GUI and object numbers are



Alternatively, you could create a Name property for the rooms (See 'Custom Properties' in the manual if you don't know how), and use something like this in the global rep_ex:
Code: ags

string room;
string label;
GetRoomPropertyText ("Room Name", room); // or whatever you called the property
StrFormat (label, "You are in the %s", room);
SetLabelText (GUI, 0, label); // or whatever the GUI and object numbers are
#2848
About QuantumRich's comment:
But, wouldn't that need (a) a different jpg for every possibility, or (b) the ability to save over the jpg, to reflect the players choice?
(a) would be a - slightly - smaller file size than having to import all the options as sprites, but would it really be worth it? The small size reduction vs. the extra files to be bundled, I mean. Assuming that the JPG's wouldn't be compiled into the exe, as with other MPGs, AVIs, etc, used with PlayVideo
(b) would require, I imagine, the 'File I/O' commands to be extended to deal with images, rather than just text.
I don't know, it just seems to me (and I admit my AGS credibility is limited) that it's one of those things that sounds cool, but would be more trouble to implement (probably for CJ, maybe for the game designer) than it's worth.

Generally:
The question, as I see it, is how many people would use this feature, given the seeming hostility on these boards (in CL to be specific) to the JPG format. I suppose it depends on what you want to display in your cutscenes, though. Photo backgrounds would benefit from being shipped as JPG's, for example, especially if you could hide their extensions, as with other files using PlayVideo.

Any new AGS knowledge is good - I'm just not totally sure why, in this case.
Sorry for rambling (and over use of parentheses), just thought I'd say my piece
#2849
If you haven't already, you could try moving SetRestartPoint(); to where ever the messages run from, e,g,
Code: ags

SetRestartPoint();
Display ("blahblahblah");
NewRoom (3);

I only suggested putting it in 'First time player enters screen' thinking room 2 was playable, and you wouldn't want the restart point reseting every time they walked in.
I don't really know how SetRestartPoint(); works, other than what it says in the manual, as I've never had to use it. I don't think using global variables or ints would work though, as they'd presumably be reset when you restarted the game.

Another suggestion would be to use SaveGameSlot (int slot, string description) in room 2, save a game in a slot higher than 20 (the save/restore list box only allows 20 save slots by default), then use RestoreGameSlot (int slot); instead of RestartGame(); on the MENU GUI, so:
Code: ags

In Room 2:
SaveGameSlot (30, "restart game"); // 
Display ("blahblahblah");
NewRoom (3);

In interface_click:
if (interface == MENU) {
Ã,  if (button == 0) {
Ã,  Ã,  RestoreGameSlot (30);
Ã,  }



EDITTED to correct italics, and add:
Another idea might be to use RunAGSGame (string filename, int mode, int data);
to restart the game. int data can be passed into the 'new' game as the game.previous_game_data variable, which you could use to 'skip' the room with the SMENU GUI. Just a thought.
#2850
I take it room 2 is where the actualy game starts? (Like room 1 is just intro)
If so, use SetRestartPoint (); in room 2's script - I think 'First time player enters screen' would be best. This'll change the point RestartGame(); sends you back to, so you avoid the SMENU GUI, and the second button press.
#2851
sunshinegold:
Spoiler
Yes, sorry, it's to the right of the Centaur, not the left. I have no idea why I said left. By 'Label', I meant in the status line, like when you pass over any character, item or hotspot, I just couldn't think of a better way to phrase it.
[close]

Sinitrena:
Spoiler
It's not exactly a pixel hunt I know, and I didn't mean it as a bad thing, I just meant that you have to find the exact right spot on the hill, you can't just click anywhere. Again, I couldn't think of a better way to prase it - '1600 pixel hunt' doesn't sound quite the same.
[close]
#2852
You can't, yet - but it's on CJ's list.
I think you'll have to use DisplaySpeechAt () to set the speech away from the GUI, or use a Label on the GUI, confiured to look like speech (font, talking colour, etc).
#2853
Three suggestions (don't know if any will help, but best to check):
1.
(What Scorpiorus said, while I was typing.)

2.
Try using the item name, rather than SharpBlade, e.g.:
Code: ags

if (player.activeinv==10) {// If sharpener/blade
 Ã, string name;
 Ã, GetInvName (10, name);
 Ã, if (StrComp ("Blade", name) == 0) {//If item is called Blade
 Ã,  Ã, Walk (123,103);
 Ã,  Ã, AnimateCharacter(MAR,13,15,0);
 Ã,  Ã, Wait(15);
 Ã,  Ã, Display ("Mark places the blade in the dispenser.");
 Ã,  Ã, bladein=1;
 Ã,  Ã, LoseInventory(10);
 Ã, }//Set it so the blade is in
 Ã, else unhandled_inv();
}
else unhandled_inv();

(not sure about the scripting)

3. (least likely)
QuoteInteract with hotspot 1 (floss dispenser)
(from your first post).
Check the code is in the 'Use inventory on hotspot' interaction, and not 'Interact hotspot'.
#2854
http://www.agsforums.com/yabb/index.php?topic=13740.0

I think how it stands is:
cerebrit know about most/all of the bugs, and has said he's working on a fixed version (and possibly a translation), BUT hasn't been around (or hasn't logged in, anyway) since July, so who knows what, if any, progress he's made.

I think, in the meantime, anyone playing NAJ just has to save often, and try not to repeat anything that causes a crash.
#2855
USE Inflatable Dartboard on Duncan to inflate it.
USE Inflated Dartboard on nearby statue.
    Anim: Duncan hangs Dartboard on nearby statue, steps back and throws a dart.
    DUNCAN: Oh! It burst.
PICK UP Deflated Dartboard.
PICK UP Silver Bladder.
USE Silver Bladder on Deflated Dartboard, to get Suspiciously Bulky Inflatable Dartboard.
    DUNCAN: A crude disguise, but effective.
    DUNCAN: (I hope.)
EXIT: to Hall of Faces.
LOOK AT Faces, until:
    DUNCAN: Hey! This one's in black and white.
USE Trick Gum on Duncan (you didn't say what the trick was exactly, so I'm making it like a chewable 'Dirty Face Soap') to get Trick Gum Ink.
USE Whitewash on Duncan.
    Anim: Duncan tips the bucket over his head.
    DUNCAN: Well, I look like a dripping white fool.
    DUNCAN: But not a dripping white *Guild* Fool.
USE Trick Gum Ink on Duncan:
    DUNCAN: Hey! I look like that clown.
    DUNCAN: Creepy, but it won't fool anyone.
USE Musical Wide Trousers on Duncan.
    DUNCAN: Now I look like a proper clown!
    DUNCAN: Go ahead, laugh. I'll wait.
EXIT Guild of Fools and Jesters. But quickly, before the paint starts to peel.

Quick and crap. Might also be 4 extra items, if you count the Inflated Dartboard as different from the un-inflated, Inflatable version, and the broken, Deflated one.
#2856
You mean SetObjectView (int object, int view)?
(or Object - Set object view number in the interaction editor)
#2857
Long and slightly rambling reply:

Surely it's easy enough to add keyboard control using the on_key_press function? You just have to add, for example:
Code: ags

if (keycode == 76) SetCursorMade (MODE_LOOK); // if 'L' is pressed, change to 'Look' mode

Maybe something like a RunGUIInteraction (int GUI, int object) would help with this (and with your GUI button 'hot key' idea), but probably isn't really necessary, as there are work arounds.
There are also several threads around telling how to use the arrow keys to control the player and, quite recently, monkey_05_06 had a thread about keyboard control of the mouse cursor, too (I think he got it working, but I'm not totally sure).

As to encouraging game designers to use keyboard control - isn't that a matter of preference on their part? Sure, the designer needs to consider the player in setting up their interface, but how many people would really want/need/care about a keyboard option? Also, in the end, the game's designer has to choose an Interface they think best suits their game.

However, making AGSers (especially, I'd guess, newer ones) aware that they're able to use different methods to the standard GUI can only be a good thing (tm acknowledged).

As you said, I don't know how feasible adding custom 'hotkey' control to older games would be - partly as it might involve decompiling and recompiling the code, but mostly because the 'hotkeys' may already be in use.

I'm sure I had an overall point to make, but it kind of escaped me. I guess, this seems low priority, as it's all possible already.
#2858
Critics' Lounge / Re: Character help
Thu 23/09/2004 00:03:49
Actually, the 'jump' Raider mentioned isn't that noticable when he's moving. However, in frames 2, 4, and 6 his bum stretches out of shape, and that's a little distracting. It looks like he's scratching himself inside his pants.

About the colours - it depends on the backgrounds you're using as to whether you need to add more. As to detail, it looks fine as it is, but if you're going to use the textured-look for his cardigan, you might need to add more detail to his trousers and face.

Front view - can't really say anything without seeing it, but I have trouble turning my chars too (one of the many reasons I haven't finished a game yet.)
#2859
There are two basic ways I can see, if I understand the problem:
1) Baselines
Set the objects-in-the-cupboard baselines higher than the door object baseline. The objects in the cupboard should be hidden behind the closed door, but not the open door. You could then play about with the object baselines to set which are further forward on the shelves. (I think this is what BorisZ was assuming.)

2) Object On/Off
Kind of like dreammaster said. Turn the objects in the cupboard on when you open the door, and off again when you close it, except with multiple objects, not just one at a time.
#2860
About the Delete button, this should work (does for me, anyway):
Code: ags

Ã,  if (button == 4) {
Ã,  Ã,  if (ListBoxGetSelected (5,2) != -1) {// if a savegame is selected
Ã,  Ã,  Ã,  int slot = ListBoxGetSelected (5,2);
Ã,  Ã,  Ã,  DeleteSaveSlot (slot);
Ã,  Ã,  Ã,  ListBoxSaveGameList(5, 2);
Ã,  Ã,  }
Ã,  }

But, you might want to add a confirmation GUI ("Are you sure you want to delete this save game?"), to avoid annoying accidents.

I'll work on the Overwrite thing.
EDIT: corrected ListBoxGetSelected - I typed it in notepad, so I didn't have autocomplete.
Still trying to sort the overwrite thing - I kind of had it working, but it was buggy at best. There's probably a really simple way, and I'm just making things hard on myself.
SMF spam blocked by CleanTalk