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.

Topics - Doan Sephim

Pages: 1 [2] 3 4
While dusting off Betrayed Alliance to put together an update to rid it of many bugs, I came across an idea that I hadn't implemented, but had plans to work on later.

For fun, I fixed it up a bit and now it's up and working pretty well.

What this allows you to do is click on a button to switch characters. Each character will have his own inventory and the items will be transferred correctly each time. It remembers the X and Y position for each character as well as the room number.

A feature NOT included is what happens if the characters are in the same room.

Here's the code:
Code: [Select]
/*                         Ego-Switching Region                               */
/*                           by Ryan Slattery                                 */
/*              Originally Designed For Betrayed Alliance Book 2              */
(include "")
(include "")
(script 205)
(use "Controls")
(use "Cycle")
(use "Feature")
(use "Game")
(use "Main")
(use "Obj")


myEvent                      /* Used in the Doit method to track the mouse over the switch button */
buttonOpen = 0               /* Used so that the Doit method doesn't send constant signals cancelling the button animation */

roomToggleNumber             /* Intermediary variable allowing the change of gSwitchedRoomNumber before calling gRoom:newRoom command */
characterXYToggle[2] = (0 0) /* Intermediary variable allowing the change of posn before asigning new gPrevXY variables */
itemIteration                /* Used to switch all items from one character to a room or from a room to the other character */
                             /* Items stored for Male Ego in Rm 205 and for Female Ego in Rm 210 */
                             /* IMPORTANT - remember to change the item Iteration # as you add items */

(instance public egoSwitchRegion of Rgn
    (method (init)
    (method (handleEvent pEvent)
            (if(==(send pEvent:type())evMOUSEBUTTON)
                (if((> (send pEvent:x) (switcher:nsLeft))and
                    (< (send pEvent:x) (switcher:nsRight))and
                    (> (send pEvent:y) (switcher:nsTop))and
                    (< (send pEvent:y) (switcher:nsBottom)))

            /* Remove and Give Items based on who is being used */
            (for (= itemIteration 0) (< itemIteration 19) (++itemIteration)
                (if(gAnotherEgo) /* Switching from Female Ego */
                    (if(== (send gEgo:has(itemIteration)) 1)
                        (send gEgo:put(itemIteration 210)) // Items stored in Room 210
                    (if(== (IsOwnedBy(itemIteration 205)) 1) /* Items stored in Rm 205 given to Male Ego */
                        (send gEgo:get(itemIteration))
                )(else /* Switching from Male Ego */
                    (if(== (send gEgo:has(itemIteration)) 1)
                        (send gEgo:put(itemIteration 205)) // Items stored in Room 205
                    (if(== (IsOwnedBy(itemIteration 210)) 1) /* Items stored in Rm 210 given to Female Ego */
                        (send gEgo:get(itemIteration))

                = gAnotherEgo 0 /* Male character */
                = gEgoView 0
                = gEgoStoppedView 903
                = gAnotherEgo 1 /* Female character */
                = gEgoView 342
                =gEgoStoppedView 903 // Haven't drawn it yet
            /* Get Room Number Variables saved and set up for room switch */
            = roomToggleNumber gSwitchedRoomNumber // saves variable for newRoom call
            = gSwitchedRoomNumber gRoomNumber      // saves current room as the new switched room

            /* Get Ego's X/Y position saved and set up for room switch */
            = characterXYToggle[0] (send gEgo:x)
            = characterXYToggle[1] (send gEgo:y)
            (send gEgo:posn((gPrevXY[0])(gPrevXY[1]))hide()) //wondering if this works without setting Up Ego in this script
            = gPrevXY[0] characterXYToggle[0]
            = gPrevXY[1] characterXYToggle[1]
            (send gRoom:newRoom(roomToggleNumber))
    (method (doit)
        (= myEvent Event:new(evNULL))
        (if ( checkEvent(myEvent (-(switcher:nsLeft)5) (switcher:nsRight) (+(switcher:nsTop)10) (+(switcher:nsBottom)10)) )
                = buttonOpen 1
                = buttonOpen 0
        (send myEvent:dispose())
(procedure (checkEvent pEvent x1 x2 y1 y2)
    (if(    (> (send pEvent:x) x1)
        and (< (send pEvent:x) x2)
        and (> (send pEvent:y) y1)
        and (< (send pEvent:y) y2)
(instance switcher of Prop
    (properties y 15 x 30 view 573 loop 2)
Global variables that I added include:
gAnotherEgo (used as a variable to determine which character is in use "0" for "main" ego, "1" for other ego)
gEgoStoppedView (This is used so a character when stopped doesn't feel like he or her is stopping mid-step)
gSwitchedRoomNumber (Used to hold the room Number of the Ego character not in current use)
gPrevXY[2] (Used to hold the X/Y positions of the Ego not in current use)

Attached is the View used in the script. The script is under 1 Kb, so it won't take up much heap. Enjoy

Hey guys! I know it's been 3 years since the game came out, but I've gotten around to fixing a lot of bugs/inconsistencies/typos/other problems.

I am wanting to release an official update in a week or so. If anyone is willing to go through the game and post anything you notice that could use fixing that would be helpful to me.

Here's the current list of updates:
When I used a dart to release the water I could keep doing that over and over and get more and more puzzle points 
Saving in the room with two fighting soldiers crashes the game.
"Talk to woman" (Deborah) give a hateful response even after giving her the letter.
Look at ground gives no response after greaves are taken in store room.
Gallegos is spelled differently in his letter than when speaking to Sammy.
Can't ask Sammy about secret passage - and sometimes get "bad said spec" message.
It is possible to score 122/120 without doing anything wrong...
Cannot ask librarian about bodybuilding/muscles
Asking him about missing books, he’ll not mention those you have, but haven’t turned in yet.
Myths and Legends “lure men DO his demise” misspelling
Cannot right-click on sign in waterfall area.
Cliff area:
•   clicking on incline yields a niche reference AND misspelling of “roll”
•   “remove/take off armor” should yield a response in cliffs area.
•   Allow rolling of marble for “fun” and end with sarcastic message
Asking Sammy about “retirement” should probably yield a response. Asking about secret passage yields “bad said spec” and stock response. Talking with Sammy needs an overhaul!
Large dock – “look” command yields misspelling.
Outside Library – Right click on fence triggers over the fence. “poachers” in reference of crops sounded a little strange.
•   Can’t right click on the bush
Inside library – “ask about lost books” yields no response.
•   “ask about missing books” works, but he lists as missing books you don’t have instead of books you haven’t given to him.
•   He mentions a “list of books” to the side, but there is no graphic representation of such a list.
•   “talk to man” doesn’t yield much in terms of further questioning. Perhaps mention the new initiative to aid learning in the form of the IQ test.
•   I won the reward of the Titanite flask and then he went on to insult my intelligence, perhaps put that after the winning of the ruler?
•   “look at list” gives “missing books:” when all are turned in.
“desperate” misspelled in the item info for the ruler.
Dock house (outside) – look at “lid” should work too
•   Perhaps put something in the foreground – it’s too hard to tell that the player can go south.
Kite area – “look” repetition of the word “view” is bad
Face cave
•   redraw with obscuring wall of rock
•   relocate unearthing
Write more dialog for the two sparring guards.
Ghost w/sword area
•   “look” yields “if if” misspelling
•   “ask about curse” yields no response
•   “ask about dead man” breaks game’s logic
Map functionality doesn’t work in room south of Facecave (exactly where one would want to use it to go to the graveyard)
Mauseleum (up close) – “read stone” says too far away. “read epitaph” works?
Safe – “input” instead of “select” on the artwork
Grove – “give ring” yields response without colored box.
Mailroom – “use goggles” et al doesn’t work.
Troll room – “use tnt” has no response.
Maze room – treasure chest doesn’t look like a treasure chest and can’t right click it. It is almost impossible to interact with at all. Only “take helmet” works as far as I can tell.
Golden bow item description – mention something about tripping the floor trap as a hint on what to do.
Booby-trapped room
•   cannot right-click on lantern. “Spell the phrase and you may pass” should be “when you spell the phrase, you may pass”
•   “Wear goggles”
•   When puzzle is solves, changing it doesn’t kill you
Storage room—look at shelves, mentions darts, but doesn’t take them.
Rotating stairs – “it’s” is spelled wrong in the opening statement
Prison room
•   extra blindfold, room for one more – could add statement, “I hope it’s not for me.”
•   I think it said I “put the blindfold in a bag.” That can be removed.
The mean old woman doesn’t have a response for “ask about sammy”
Reset button for electric current puzzle (Not enough room for that button?)
Move dead body in pole area
“make hangglider” should work for windy area
“enter rock” or “face” alternate words of entry into the face cave.
“talk to face” in the face cave.
“Use blow dart” in face cave says you have no darts, instead of tell you how to target
“pick up sword” doesn’t work
“light candle” doesn’t work under mausoleum
Walking down from angry ghost. Going North, you can’t go straight up
“enter building” in addition to “open door”
Lower required score for sailboat Xtreme
Hint to move table over trap under Mauseleum
Draw words of full mail warrior
 “Copy cat” input should return puzzle to original set-up.
Tunnel – take ring after unearthing the ring should say you already have it
Attributes gained from armor unclear and inconsistent
You get Titanite flask after beating Erasmus, but the window telling you you won is superimposed over a #dispose window explaining what you are about to get.
“Read sign” for Baron Longeau Carmyle’s grave doesn’t work. Also, missing period at the end of the sentence in looking at the epitaph
“look at book” in closet tells you to “view library book” before even taking it.
Use dart/dart gun doesn’t work in whispering cavern with friendly ghost
Asking about the dead man is difficult
Right-click on treasure chest says it’s empty before you take the helmet

Issues yet to be dealt with:
Audio crashes sometimes (frequently in Troll’s cave).
Music for dart-playing would be nice
Scientist building (outside) – have a bird or something get zapped to let you know the danger.
Fight screen music continues after running away
Redraw Title slide
Honestly, I had no idea there was this many problems. But after 3 years, you come back to a project fresh and can see it from a new perspective.

Here's some more fixed stuff:
Sailboat Xtreme speed round TOO fast
The trap says it’s broken at wrong time
Arrow goes backwards
Talk to horse yields no response
Booby-trapped cave – face puzzle (rightclick – eyes watch you even when closed)
“have you play an SCI game before?” Yes/No – Give Help info if not
Title screen rotates to introductions too early.
Redraw “Betrayed Alliance” Title words Redraw Title slide
Move past guard with bow without being shot
“return books” doesn’t work
Draw path to squirrel more visibly
Says “you may left-click” to shoot – but you right click.
“listen” in cave should  yield a response.
Ask about “place” that the ghost mentions
Asking singing spirit about vow or destiny yields nothing even though they are words she uses.
Fix climbing animation for ladders

SCI Syntax Help / Save Game Crashes with #dispose dialog boxes
« on: May 04, 2017, 10:37:57 PM »
Sometimes I use print commands that don't pause the game using the #dispose tag for dialog:
Code: [Select]
Print("Howdy there!" #dispose)This works perfectly fine so long as I remember to (send gPrintDlg:dispose) when it's time for the message to go away.

However, the problem I am running into is if a player attempts to save the game while this #dispose message is on the screen. After the save, the game crashes with the "Oops" message (and of course restoring the game from that point leads to crashing upon restoration).

I'm having trouble finding out how to sidestep this difficulty. Any tips?

Everything-Else / New Year's Resolutions
« on: January 04, 2015, 10:11:47 AM »
Happy New Years everybody!

Anyone got any SCI related new year's goals? I did a couple years ago, which is why I finished Betrayed Alliance (kind of).

I don't have any SCI-related plans of my own this year, but I did make a goal to write a sci-fi middle grade book. Last year, I wrote my first novel.

Anyone else have New Year's goals?

You asked for it! Here it is!  ;D

SCI Syntax Help / Door Puzzle Solution - Betrayed Alliance
« on: May 20, 2014, 01:14:32 PM »
If you need help with the puzzle, here's the answer. Now you can move on with the game.

Gumby has supplied a really awesome sound script that not only allows for multiple sounds at once (something we couldn't do before), but also allows mp3s opening up a whole new scope to sound in sci games.

While I will be sticking with midi-music for Betrayed Alliance, I will be using sciAudio to play it for many reasons (mainly I had constant sound issues before). As I began coding in the music I noticed that Gumby's sound script was substantially larger than the sound script that comes with the program and some of my rooms could not support any additional heap load.

Luckily for me there is a workaround. I often set up a blank room with little more than a Print command as an introduction. These rooms are small in size and allow me to play the sciAudio music in the last cycle before switching the room. The effect is rather seemless.

For the seasoned coders out there this may not be necessary, but for amateurs like me who only learned to code specifically to make an SCI game, it may be a helpful trick ;)

SCI Syntax Help / my "for" loop is acting wonky
« on: December 02, 2013, 08:53:21 PM »
I have an array gCollectible[5] = (0 0 0 0 0)

Each time I get one of the collectibles I change one of the array to 1.

I want to display this in a window, so I use a variable to count how many of these are 1's. The problem is they way it counts it counts the first one once, then the second twice, then the third three times, and so on. Here is my code. What is wrong with it?

Code: [Select]
(for (= i 0) (< i 5) (++i)
                    (if(> gCollectible[i] 0)
If the array is [1 1 1 1 1] shouldn't variable be 5? It gives me the value 15...

SCI Syntax Help / Determining a String Value
« on: December 01, 2013, 09:38:45 PM »
I have recently hit a snag on my coding. Hopefully someone can help me with this.

I want to have the player type in a word using EditPrint. OK, that's easy enough. I pass the response to a string @stingName.

OK, now I want to check to see if stringName is the correct word. What kind of syntax would that take? I remember QFG1 did something like this at Erasmus' Castle with the imp asking 3 questions. Any ideas?

SCI Syntax Help / preload text
« on: December 01, 2013, 11:18:12 AM »
I was looking through the old tutorials and came across a function called "preload text" which loads the text resource into memory for easier access.

I have to questions: Does this load it into heap space (that would nullify the best part about using text resources)? And with computers as fast as today and the programs being so tiny, is it really even necessary to do this?

Everything-Else / GDC - Broken Age
« on: November 11, 2013, 09:15:09 PM »
There is a great discussion about adventure games in general and Broken Age in particular in this video.

Tim Schafer may have been a LucasArts adventure game guy, but there's no denying he is awesome and is making the most ambitious adventure game in decades (maybe ever?).

Everything-Else / Surgery tomorrow
« on: September 10, 2013, 08:42:13 PM »
Wish me luck, or say a prayer. Brutal kidney stone is being forcibly evicted tomorrow. Not the greatest experience of my life, but one I learned from. Stay hydrated out there guys, no need to find yourself in this situation.

Everything-Else / BA - Comedic Sword Fighting Taunts
« on: July 08, 2013, 04:48:58 PM »
Betrayed Alliance, as a kind of hommage to Monkey Island, has two sword fighting soldiers who humorously taunt eachother as they fight. It was at the point of writing these jokes that I realized I am not as funny as I assure myself that I am.

Comment with any humorous exchanges these men might have and who knows, you might find them in the game! Just an fyi, one of these men is old, and the other is middle-age and fat (and they happen to be father and son), if that makes it any easier.

Here are a couple I have done:

"I could beat you with my hands tied behind my back"
"You mean they aren't already?

"Your wit is as sharp as your blade!"
"Isn't that a compliment?""
I wouldn't know, I've never felt it!"

SCI Syntax Help / Props and walking into them
« on: June 25, 2013, 11:16:32 AM »
So props and Acts have a property where actors get stopped by them when walking into them and we know that "line" is at the base of the VIEW. My question is can I increase that "stopping" line to be not just a line, but more of a rectangle, obstructing actors from moving past them from right to left so easily?

Before you say just use a control line like Brian's tutorial recommends, please note that I want this object to be movable by the player, so static control lines won't suffice.

SCI Syntax Help / Cursor flicker and lots of views
« on: June 24, 2013, 05:18:55 PM »
(Thread split from 'Maximum Size of Views')

I have some massive Prop VIEWs in one room and multiple Act VIEWs in another. In both cases it slows the game down. I might be willing to be ok with that (particularly because increasing the dos box cycles is sufficient to speed up those sections). What I do not like, and wonder if anyone can help me with is whether I can stop my cursor from flickering while over these VIEWs?

Thanks :)

Pages: 1 [2] 3 4

SMF 2.0.14 | SMF © 2017, Simple Machines
Simple Audio Video Embedder

Page created in 0.121 seconds with 20 queries.