Joe |
Brian, have you had a chance to examine some of a Sierra game's room scripts? I'm trying to figure out why rooms have something like: Instance: shot Instance: leftArm Instance: rightArm Instance: rm10 Instance: door Instance: rm10Script Instance: shooterScript Instance: boothScript Instance: sightScript Instance: attendant What does Script mean? How do they use it? What does it do? Until I can learn the bytecode, I can't read the scripts. If you know and can help, thanks. If you can't, I'll still be thankful. :) |
Brian_Provinciano | Sorry, but in order for me to know exactly what those instances do, I would need to reverse engineer the script. Since I don't know what script it is, let alone the game, I can't help you. I also don't have time to do any SCI reverse engineering outside of my VGA template since I must use my time as wisely as possible (I have so much to do). When I'm done the VGA template, I'll be going right into SCI Studio VGA. And, as always, before, during and after all that, I've got to update SCI Studio EGA with new versions. |
Joe |
No problem. :) I just wanted to know if you had ever read through a script like that. I copied that from PQ2, but most other SCI games use things like: Instance: rm71 Instance: RegionScript Instance: EyeScript Instance: EyelidScript Instance: NoseScript Instance: MouthScript Instance: aEyeWest Instance: aEyeEast Instance: aEyelidWest Instance: aEyelidEast Instance: aNose Instance: aMouth which is from LSL3. Sorry if I'm bugging you. I just wanted to know if you had ever seen or knew what the instances that read SomethingScript where for. Good luck on SCI Studio VGA! |
Joe | Most if not all of the scripts I looked at with those kinds of instances held only the method 'changeState'. This is very intrigueing. Trying to understand bytecode is excrutiatingly difficult. I probably should of tried my hand at assembly first. I'll keep on it and tell you guys what I find out. |
Joe |
Well, with a little experimenting, I was able to use an instance called 'testScript' that looked like:
I used : ProgramControl() (send gEgo:setMotion(MoveTo (send gEgo:x) (- (send gEgo:y) 10) testScript)) And the ego walked 10 pixels upwards and I saw "Does it work?" displayed in a print Dialog. I tried adding another actor to use the testScript instead and have the Ego use the RoomScript changeState, and it worked. I made the 'testScript's changeState move the character back, then forth, then change the state back to 0 and have the actor walk back and forth continually. It worked. Is this the right way to use these? |
Brian_Provinciano | Yes. Just like you use the room script's changeState, you can create other instances and use their changeState. It's a nice way of organizing things. |
Joe | Hm, I didn't know you could do it until now. Thanks. |