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.

Messages - NilG

Pages: 1 2 3 [4] 5 6
SCI Syntax Help / Re: Music/Playing Note Sticks When Leaving a Room
« on: May 30, 2019, 09:58:49 PM »
Yep, just General MIDI created in MuseScore and run through Soundbox with the General MIDI driver (I think, the one I found here and it seems to do the trick).  I've currently got the (gMusic stop:) in place as mentioned; I did try messing with some other things; I'm honestly uncertain how the signaling works or prev_sig or anything, but couldn't seem to figure out a way to force a note off yet, if that's even what the issue is.  I kind of suspect it's something else going on anyway, but that's completely a guess.

I'll definitely check out the SCI Audio script, that could be promising.  I saw the other thread you made in terms of working around the script size (which may be problematic as-is for a couple of rooms), so if I can figure out reading over and toying with it how to loop the songs from a certain point or that sort of thing, it could work for what I've got in mind, thank you.  The multi-sounds and work-around to the midi-only restriction that I've read pure GM has (I think) is a bonus, too, so I'll for sure check it out.

SCI Syntax Help / Music/Playing Note Sticks When Leaving a Room
« on: May 29, 2019, 06:34:22 PM »
I'm finally for real wrapping up the last few things for a demo, and things are working pretty much as expected.  Music's one of those last things, and I've put some in a number of the rooms.  For the most part, all's well, rooms without music shut up, rooms playing different music switch as expected, all that goodness.  I'm finding when I leave one room in particular, though, if there's a particular flute sound playing, the flute note sticks and doesn't unstick until I've reentered the room and the music progresses to that point again.  Even entering different rooms with different music just piles the noise on top, rather than silencing the stuck note.

This "effect" kinda seems like a blast from the past in the Adlib or MIDI synth with some of the older games (this setup here specifically is just using GM), but since this appears to be happening consistently for this room and this one instrument, I was wondering if anyone had any thoughts on how to force it to shut up when the user leaves the room?

SCI Syntax Help / Re: Saying Anything But
« on: April 29, 2019, 04:55:11 PM »
Nice, okay, I see now.  The cond implementation does appear to do the trick, and all is looking good now.   8)  Thank you.

SCI Syntax Help / Re: Saying Anything But
« on: April 28, 2019, 04:49:00 PM »
Aah, okay.  Sorry, I didn't entirely understand the scope of the > at the end, I think.

With the whole bit changed to

Code: [Select]
(if (Said 'take>')
(if (Said '/artifact')
(if (== gArtBoxFirstOpened FALSE) (Print 8 63)
else (if (== drevDist FALSE) (PrintDrev 8 51)
else (if (== boxOpen FALSE) (gEgo get: INV_ARTIFACT) (Print 8 105) (theOpenBox loop: 1)
else (gEgo get: INV_ARTIFACT) (Print 8 107) (theOpenBox loop: 1)))))
(if (Said '/bulb[<green,red]>') (pEvent claimed: FALSE))
(if (Said '/hammer') (Print 8 62))
(if (Said '/grease[/jar]>') (pEvent claimed: FALSE))
(if (Said '[/*]') (= takeOrTouch 0) (self handsOff:))

my poor guy is still getting yelled at for trying to take shit in the store, though.  I'm going to play around with it some more, but if anything else looks plainly wrong with this, I'm all ears.

SCI Syntax Help / Re: Saying Anything But
« on: April 28, 2019, 03:14:04 PM »
I am defining specific Saids first.  I guess maybe the question is whether there's just a way to pass a said up to the locale directly.  I've previously used pEvent claimed: FALSE when necessary and that's worked, but it only seems to work if there's no * following it (in which case I only need to define it anyway if it's part of a conditional or something).

The locale's not just the store, it's for the entire area; I just want take bulb to work here as it does throughout the rest of the area despite the fact that the store room has a take * defined.

The whole block I previously had was:

Code: [Select]
(if (Said 'take>')
(if (Said '/artifact')
(if (== gArtBoxFirstOpened FALSE) (Print 8 63)
else (if (== drevDist FALSE) (PrintDrev 8 51)
else (if (== boxOpen FALSE) (gEgo get: INV_ARTIFACT) (Print 8 105) (theOpenBox loop: 1)
else (gEgo get: INV_ARTIFACT) (Print 8 107) (theOpenBox loop: 1)))))
(if (Said '/bulb[<green,red]') (pEvent claimed: FALSE))
(if (Said '/hammer') (Print 8 62))
(if (Said '/grease[/jar]')
(= takeGrease TRUE) (pEvent claimed: FALSE))
(if (and (Said '[/*]') (= takeOrTouch 0) (self handsOff:))

This all works except for the bulb line, as when I don't claim the event it's just taken by *.  I'm looking for a way to shoot this one particular statement up to the locale while leaving everyone else to play in this script as is.

I could absolutely be going about it all wrong; I guess I just don't know how to specifically say "send this event to locale and ignore the rest of the conditionals here."

SCI Syntax Help / Re: Saying Anything But
« on: April 28, 2019, 02:08:17 AM »
Thanks, troflip, the typo's my bad, and no more bad specs when I add the other bracket, though it's still not working as I hoped.

Basically, ego's in a store, and the shopkeeper tells him to keep his hands off if he tries to take to mess with anything.  I didn't want to come up with a list of every potential item in the store, so I just went with *, and if someone types something that isn't there or misconstrues an object, no worries, since it will behave the same either way.

But they also potentially have a string of lights in their inventory from which they can take a couple of bulbs (all of which is handled in the locale script).  So I'd like them to be able to do that still, if they happen to try it in the store.

As a result, I want most 'take>'s to go with the default, but in this one particular circumstance, I'd like it to default to the locale script.  pEvent claimed: FALSE seems to work in cases where there isn't a [/*] association, but it appears that if there is that association, it will just bypass its own instructions and fall on the [/*], so I'm just trying to work out how to skip [/*] and pass the event onto the next script in the hierarchy, if possible.

Hope that makes a little more sense.

SCI Syntax Help / Saying Anything But
« on: April 27, 2019, 06:44:35 PM »
Me again,

Another stupid syntax question that I haven't been able to sort through.  I am trying to do something like the following:

(if (and (Said '[/*') (not (Said '/bulb[<green,red]'))) (= takeOrTouch 0) (self handsOff:))

Basically, I would like '/bulb[<green,red]' to get passed up to the locale script, but I still want to specify a response for anything else that is said.  This and various other things I've attempted have given me a bad spec error; I managed to get it almost working with a convoluted use of local variables, but when I do that, I get a "responseless" statement on top of the expected behavior for any other items I have specified in the room prior to the *.  I have a couple of ideas that might sort this latter method out involving pEvent claimed, but again, it already seems convoluted, and I assume there's probably just a straightforward way of doing this.

Besides, this is over time coming to happen in multiple statements across multiple rooms, so I'd rather not dirty up the code all over the place with hacky workarounds when I'm pretty sure I'm just missing some element of the syntax.  I've got enough crappy hacks in my illiterate code.   ::)

Thanks again in advance.

SCI Syntax Help / Re: Printing Variable Contents
« on: April 27, 2019, 11:15:22 AM »
Nice, thanks.  Didn't figure it would be super complicated, but I suck.

SCI Syntax Help / Printing Variable Contents
« on: April 22, 2019, 01:21:24 PM »
Hey all,

Probably a ridiculous beginner question, but I've taken a look a couple of times and just don't know how to print out the contents of a variable, just so I can check what a local or global is set to.  Not looking for anything magic, I just haven't been able to sort the syntax to a Print statement that allows it to print the contents rather than the variable name itself.

So yeah, I think pretty basic, but could be useful in some debugging while wrapping up, and just in better understanding some of the behind-the-scenes behavior.

SCI Syntax Help / Re: Parsing Noun/Qualifying Adjective Words
« on: April 04, 2019, 05:52:13 PM »
Okay, nice.  It is working as expected when I just leave shuttle as a noun and don't set it also as an adjective.  I was just seeing strange behavior otherwise (shuttle set to both) where 'look/shuttle' was skipping over the expected response, seemingly because it was treating shuttle as an adjective rather than a noun.

Either way, though, if the parser's smart enough to use a noun as an adjective when appropriate, that's more than good enough for sure.

SCI Syntax Help / Parsing Noun/Qualifying Adjective Words
« on: April 04, 2019, 05:07:45 PM »
I encountered something that seemed interesting to me while testing out some of the responses I get to certain inputs, and while I sort of see the reason behind the response, I'm not sure what the reason behind the reason for the response is.   :)

So among multiple look statements, there's one that pretty straightforward:

Code: [Select]
(if (Said '/car,shuttle')
car works fine.  shuttle, however, just prints the basic room response.  After looking a bit, I see this is because "shuttle" is both a noun and a qualifying adjective.  If I remove the "adjective" attribute, it works.

I'd set it as an adjective because you can look at the shuttle door, for example, to differentiate it from looking at a different door.  From what I can tell, things are still working in that regard with shuttle just set to "noun," so all good (I think!).

But now I'm wondering, as I have a few other nouns I've also made qualifying adjectives for similar reasons, could that be problematic down the line?  Do nouns function as qualifying adjectives when used in that way within the said statement?  Is there a reason, in the above example, that 'shuttle' would be taken to be an adjective instead of a noun when there's nothing following it?  'look AT shuttle' works like I'd expect, but 'look shuttle' doesn't.

I've reviewed a few of the pages around here and may have missed it, but haven't seen anything specific to this.  I feel like the word type associations can be fickle, and have had to play around with them in a few places to get things to work for similar reasons.  It always seems to be ultimately manageable, I was just wondering if anyone know why it interprets things in these ways, treating a word like an adjective when it's also a noun and there's nothing else for it to qualify in the input?

I hope zombie threads are okay here; if not, let me know, I won't do it again.  I just wanted to say this is great.  I had a room down to 312 Bytes free, and had heap crashes when I initialized a small window showing the inside of a box.  Managed to bump it to 1040 by changing some things I'd set as Props to Views and what code condensing I could, then tried this.  This alone (on 30 inv items) sent me up to 4598 free, which should be more than enough now, so it really saved the day.  Just wanted to say thanks.

Aah, nice.  Yep, it's SCI0, and that looks about right. Any ideas off the top of your head why it did work only when I entered the screen from that direction for the one room?  Doesn't really matter, I guess, just curious.

True, a fill's more efficient, I was just going nuts with lines trying to figure out where they'd need to be in order to function.  It doesn't seem coincidental to me that both cases of lines being ignored were on the south-side, but really, if it works, I'm happy with it.

Thanks lskovlun, it looks like that's true; reinforcing the lines a couple thicker did the trick for both rooms.  Do you know if it might have anything to do with being at the edge of the screen?  I've seen my guy never crosses the north line in this room despite it being only a pixel thick.  The south walls for both rooms are now 5 and it works, but maybe there's something about the way the ego interacts with the edges of the pics/rooms?  The southern edges are the only ones right up against the edge of the window, so that's my best guess.

Anyway, everything seems happy now, so thank you again.

Pages: 1 2 3 [4] 5 6

SMF 2.0.19 | SMF © 2021, Simple Machines
Simple Audio Video Embedder

Page created in 0.036 seconds with 19 queries.