Community
General and Everything Else => The Games and other Sierra Adventure stuff => Topic started by: JRedant on August 04, 2013, 03:56:19 PM
-
Hey guys!
It's been over a year since I last revisited the project. So I have some updates and a question.
I found a walk-through of the game and it looks like it needs to be done in the correct sequence. Otherwise, you can't win. And it's kind of like the early King's Quest games...you collect stuff to reveal clues. Some of the stuff is pretty useless after revealing the clues.
So, for example, in a scene that had me stumped for a while:
You are in a cave and you see mushrooms. In the mushrooms is a parchment that contains a valuable clue. The walk-through revealed that you weren't supposed to interact with the mushrooms until you had completed four prior tasks in a specific order. After you completed those tasks, then you can get the mushrooms and then you can get your parchment.
For my SCI interpretation, this turns out to be a simple fix. I also decided to be nice to the player, as well.
So here's the question:
There is a Canyon Beast in the game. It wanders around, ignoring all actors. You can't RIDE BEAST until late in the game. I have designed a view with the EGO riding the BEAST. What code do I use to change the EGO View from 001 to 003?
-
(send gEgo:view(3))
-
Ah, it's that easy? Cool!
-
You'll also probably want to hide the beast sprite at the same time...
(send gEgo:view(3))
(beast:hide())
-
I'll throw in something a tiny bit more challenging:
In the game, there is a ruthless character. If you try to engage, he will swipe you with his sword causing physical damage, of course. If you give him a certain item, he will leave you alone for the rest of the game. Otherwise, he'll just be on the screen owning the whole joint, as it were.
So in the game, how would you get the character to get into close proximity to the Ego and "hurt you"? Assume that I already have the Heath meter taken care of at this point.
-
There are a couple ways to go about this.
(knifeGuy:setMotion(MoveTo (send gEgo:x) (send gEgo:y) )) is one way. You could call this in the doit Method, so if the ego moves, the coordinates would be updated...
but there is actually already a built in function to do this
(knifeGuy:setMotion(follow gEgo)) // I don't remember if the follow is capitalized or not.
if you use this one, you need to make sure to add "use follow" at the top of the sscript.
-
You may get some hints on how to do this from the death handler script:
http://sciprogramming.com/community/index.php/topic,62.0.html
Specifically, there is code in that post that compares the distance of the ego to the 'bad guy' to determine if the ego is close & how to kick off the dying script. You should be able to modify this to include a 'combat' step before death is dealt.
-
Thanks mate this script is very useful i was looking for such thing...thanks a lot..
-
There are a couple ways to go about this.
(knifeGuy:setMotion(MoveTo (send gEgo:x) (send gEgo:y) )) is one way. You could call this in the doit Method, so if the ego moves, the coordinates would be updated...
but there is actually already a built in function to do this
(knifeGuy:setMotion(follow gEgo)) // I don't remember if the follow is capitalized or not.
if you use this one, you need to make sure to add "use follow" at the top of the sscript.
Thanks Doan Sephim for useful post .