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

#81
I want to have the cursor as a pointer during some wait statements, but of cours eit turns to busy. However, if I change the graphic, the hotspot is in the wrong place... would it be possible to get the current hotspot coordinates of a cursor so I can save them and restore them afterwards? It seems like another one of these things you can set but nor read...
#82
Since no-one entered the last one...

AGS can't even do pull-down menus, what kind of development environment is this? Save CJ's face and make a module...!

Here are the rules:
1. Must be open-source. We can hardly inspect your coding if we can't see it.
2. Must contain instructions for how to add to an existing game; this will obviously be easier if the scripting is done as a module.
3. Only use of the 3D, TCP/IP and maths plugins are allowed.
4. Must provide sample game using your code.
5. Team efforts are allowed, and you're probably expected to get help for sprites, etc from elsewhere.
6. As far as possible, entries will be judged on their scripting and gameplay rather than GFX, SFX, music, etc.
7. Winner will be decided by 1 week of voting at the end.
8.  Please add your entry to the wiki page upon entry.
#83
Calm yourselves, I know the excitement is overwhelming but you must try to avoid exploding with delight... Princess Marian is back!

Yes, this time she faces the Phantom of the Ballet and with help from Alba and Sara and you she can defeat evil and triumph again!


Download Princess Marian IX: The Phantom of the Ballet here

#84
Another module to spawn from my walkcycle generator... I hope it actually works in something else! It requires AGS 2.71.

It's a file selection dialog for BMP and PCX files, with preview.

Download FileDialog module here

It's pretty simple really. Full instructions in module header, as usual. You also need to import the GUE file.

#85
General Discussion / SSH 3000
Tue 16/05/2006 10:38:43
As you get more mature in years, like myself, and as you gain in forum experience you realise that the time is past for pointless threads and forum posts.

THIS IS MY 3000th POST, W00T!!!1!

Oh, the irony...
#86
Text boxes can be handy to get input, but if you ever have more than one onscreen you may find that the user is typing in all of them at once, even if there is a popup modal GUI... so, this module automatically handles multiple text boxes. All are disabled at game start and are enabled when clicked on. Also, if a GUI gets turned on during the game that had a single textbox on it, that textbox is enabled.

Download MultiTextBox here requires AGS 2.71
#87
SSH's Walkcycle generator
Makes walkcycles easy... and can be used as a Paint program too.

Now loading walkcycle details from an XML file that you can edit yourself

Download Walkcycle generator here
Download Princess Marian's body parts and XML here!

For the unsupported broken hi-res version, see further down the thread

Please comment and make suggestions for improvements!

Screenshots

Examples that somehow got their heads chopped off... :(


VERSION HISTORY:
v1.01 bug fixes
v1.02 with Undo and a small palette of colours
v1.03 tooltips and bug fixes
v1.04 fixed DeepHitz's problem
v1.05 fixed AJA and pslim's bugs and a few others I found in the process ;)
v1.10 added XML import and provided Right and Front walkcycle XMLs

INSTRUCTIONS

Animation

The program starts with an walkcycle animation running. You can turn on the "skeleton" of the walkcycle by clicking on the button under the animation with the white figure on it. You can also toggle the sprites by clicking on the button beside it. The buttons next to those are Play/pause and Single-step. These allow you to stop and start the animation, or look at individual frames.

You can save the whole animation as a series of bitmaps by clicking the "Save Walkcycle" button which is down in the bottom-right of the screen. You can change the animation speed by opening Animation properties: just click on the animation. On the dialog that opens, you can enter a frame delay for the animation. You can also choose an image to be used as the background of the animation display, or with the properties open, move the RGB sliders in the bottom-left of the screen to adjust the BG colour. Here you can also load a new XML file from disk. The default XML file loaded at startup is called WCGen.xml.

Bone Select/Info

In the top-middle of the screen, you can select a "Bone" of the skeleton. The information on the bone appears to the right. The bone length is the size of the skeleton bone. Width and height describe the sprite, which you can see too. If you click on the sprite you can edit it in the bottom half of the screen (more later). The sprite is drawn in the animation centred on the bone, but you can also change the X and Y offsets in the info pane.

Sprite Editor

You can edit sprites here that you have loaded in from the Bone Info or from a file. Once edited, sprites can be saved or applied to the currently selected Bone. Note that with all sprites in the editor and loading from disk that AGS Runtime treats pure magenta (R=255, G=0, B=255) as transparent, so paint any areas that you want to to be transparent with this colour. AGS Runtime can also only handle BMP and PCX file formats.

The tools available are a brush (select circular or square, and the size in the GUI above the Paint tools); Dropper (click to pick up colour from image); Flood Fill; Line; Select; Cut; Copy; Paste; Colour Replace. Note that with all operations, dragging doesn't really work: e.g. select an area by clicking and then clicking again, rather than dragging.

NB: The undo button only undoes Paint operations.

XML

TO BE CONTINUED...  ;)
#88
If I use DynamicSprite.Resize or RawDrawResized and expand a sprite 4x the first and last column and row are all expanded only 2x. If this expected behaviour, it should at least be documented. I worked around it by grabbing an extra pixel around each side, but its a pain!
#89
AGS currently lacks the ability to do a Flood Fill, and so I've created a way to do it. It works on read-in BMP files (and so you can do a screenshot, etc if you want to do it on the screen). Now, the module also gives you the ability to make your own image manipulations on the data structure if you like.

Download ReadBMP here (Requires AGS v2.71!)

v1.1: Added a colour replacing function and fixed a bug which meant that if you loaded a BMP where the remainder of dividing the width by 4 was equal to 3 then you got a corrupted import.
#90
Well, the module name probably explains it all. This is a pretty hacky module that lets you get the RGB value of an AGS pixel: either the background or screenshot. It requires AGS 2.71. Download RawGetRGB module

// Script header for module 'RawGetRGB'

// by SSH, requires AGS 2.71

// v1.0Ã,  5 May 2006Ã,  Ã, Initial Version

// Only works in 320x200 or 320x240 mode
// other modes will probably return value of the top-right
// pixel within the 4 at the x, y given

// RawGetRGB works on room background
// Objects, Characters, GUIs, Overlays ignored
// x and y are room co-ordinates
// return value is (R*65536)+(G*256)+B
import function RawGetRGB(int x, int y);

// RawGetRGBVisible works on screenshot
// everything visible included, including cursor
// x and y are screen co-ordinates
// return value is (R*65536)+(G*256)+B
import function RawGetRGBVisible(int x, int y);
#91
After various people contributed to the thread on pixel-perfect collision detection, I modularised it.

Download PPCollision module here (Requires AGS v2.71 or later!)
Full Documentation here

Simple interface, so I'll just copy the function names here:
// Functions:
//
//  The module allows you to use pixel-perfect collision detection
//  instead of the default rectangle-based collisions of AGS
//
//  PPColliding.CWithC(Character *a, Character *b);
//  PPColliding.CWithO(Character *a, Object *b);
//  PPColliding.OWithC(Object *a, Character *b);
//  PPColliding.OWithO(Object *a, Object *b);
//    Check if a and b are colliding, for different types
//
//  PPColliding.CWithAnything(Character *a);
//  PPColliding.OWithAnything(Object *a);
//    Check if a is colliding with any object or character. Returns
//    the value of GetLocationType for the first collision found, but there
//    may be more than one collision.


With version 1.02, now added extender functions (in AGS 3.0 and up) so that you can use also:

Code: ags

player.PPCollidesWithC(cRoger)
player.PPCollidesWithO(oLadder)
oLadder.PPCollidesWithC(cRoger)

#92
This module can do lots of things!

Want a FoA-style statusline? Description can do it!
Want a hotspot description that follows the cursor? Description can do it!
Want the description on an Overlay or a GUI? Description can do it!
Want the text to stay still while you're over the same hotspot? Description can do it!
Want to be richer than Bill Gates? Description can do it!


Download Description module here (Requires AGS v3.00 or later!)

For more info, here's the instructions from the script header: http://ssh.me.uk/moddoc/Description

v1.06 fixes the problem with Sierra with BG mode speech and overlay Descriptions. It also adds an optional alignment configuration parameter for overlays.
#93
If an object is animating, there is no way to tell its current loop and frame: can we have this visible, please?
#94
Want your music to carry on from where it left off when you return to a room? If you always use the room editor "Play music on room load" feature to play music, then you just need to import this module and voila! Scripting will need a little modification, and instructions are as per usual in the Module Header.

Now with the possibility to play music (for a special chase scene, for example) that stays across multiple rooms, even if they have "Play music on room enter" set. See this thread for details.

It needs 2.71 to have the the functionality on MODs and it won't work with WAVs.

Download here (3 Kb) (Requires AGS v2.7+)

Full instructions

Changelog:

Version 1.20 (2006-07-28): Added "Keep" functionality, fixed enum names
Version 1.01 (2006-04-26): Updated to work with AGS v2.70
Version 1.00 (2006-04-26): First public release
#95
A: When does the "Play music on room load" start:

1. before "before fadein"
EDIT: Answered empirically!

B: Would it be possible to have a Room.Music property that shows the scripter what the value of that editor setting is?

C: What values will the GetCurrentMusic  have when crossfading?

D: Does crossfading affect the answer to A?

E: Which version of AGS did the MOD player functions become Game.function instead of the old-fashioned way? 2.71 it seems

#96
Hints & Tips / 2010: World Of Chaos
Thu 06/04/2006 12:20:16
OK, I'm stuck outside the ticket shop and alchohol shops. How do I get in?
#97
When a struct member is referenced in AGS that doesn't exist, could AGS put in something in the error message that does a caseless search on struct members and says something like "value is not a public member of listbox. Did you mean listbox.Value?" as I've seen quite a few people get this wrong...?
#98
I released this ages ago here but hadn't got around to making a thread for it.

Anyway, I just fixed a small bug which seemed to pop up when using with CCS, so now v2.03 is available:

Download here (Requires AGS 2.71!)

Documentation


Demo game also included.

Monkey has also done one that's a bit different, so try them both and see which you prefer. But mine can do subtitles with the speech...
#99
I guess PHP probably has something similar, as may other scripting languages, but when I write stuff in perl I almost always end up using the hashed-arrays (associative arrays). I would love that AGS had such things as they are so handy.

For those that don't know them (I'm sure CJ would)... http://en.wikipedia.org/wiki/Associative_array
#100
Voting closed at 3pm Friday in the AGS Awards and FOREGOs.

Awards ceremony on irc.adventuregamestudio.co.uk in channel #ags and #agsawards (details of how that works, AGA, please?) at 8pm GMT Saturday.

SMF spam blocked by CleanTalk