Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Trying to figure out how the blue beast RNG works. This is in room 60, the south dining hall in the castle.
- (instance enterNorth of Script
- (properties)
- (method (changeState newState &tmp [temp0 2])
- (switch (= state newState)
- (0
- (proc550_17)
- (if (== global333 6)
- (self changeState: 90)
- else
- (if (and (not global352) (not global353))
- (if (> (Random 0 100) 25)
- ((ScriptID 550 3) init:)
- else
- (proc550_16)
- )
- )
- (if (== global333 8)
- ((ScriptID 550 3)
- init:
- setScript: 0
- view: 894
- setLoop: 4
- posn: 175 134
- show:
- stopUpd:
- )
- )
- (gEgo_FEgo
- init:
- posn: (gEgo_FEgo x?) 141
- setMotion: MoveTo (gEgo_FEgo x?) 151 self
- )
- )
- )
- (1
- (proc550_18)
- (client setScript: 0)
- )
- (90
- (gEgo_FEgo init: hide: normal: 0)
- ((gEgo_FEgo head?) hide:)
- ((ScriptID 550 3)
- init:
- show:
- setScript: 0
- view: 888
- setLoop: 2
- cel: 1
- posn: (gEgo_FEgo x?) 160
- cycleSpeed: 4
- setCycle: End self
- )
- )
- (91
- ((ScriptID 550 3)
- view: 896
- setLoop: 3
- cycleSpeed: 0
- setLoop: -1
- setCycle: Walk
- setMotion: MoveTo (gEgo_FEgo x?) global348 self
- )
- )
- (92
- (= global333 5)
- (global2 newRoom: 59)
- )
- )
- )
- )
- I'm assuming from the name that this is what runs when you enter from the North. I understand basically how "changeState" works from the SCI Companion documentation, though I don't quite know what "&tmp [temp0 2]" is doing there.
- proc550_17 means "disable player controls" and proc550_18 means "enable player controls." So I'm guessing those first two states are when Graham is walking into the room.
- proc550_16 has something to do with the cat RNG, but there are also globals in that procedure that I haven't figured out yet.
- "ScriptID 550 3" appears to refer to the blue beast (what the code refers to as "theHenchman"). I had originally thought the "if (> (Random 0 100) 25) ((ScriptID 550 3) init:)" line meant there was a 75% chance of the blue beast showing up, but real world tests show this chance to be much higher. Like, nearly every time (except when the cat shows up). So there's something going on there I don't quite understand.
- The previous conditional is "if (==global333 6)(self changeState: 90))". state 90 looks like it summons the blue beast, so where is global333 set to 6?
- That's in room59, the north dining hall, in the "exitDown" function.
- (if
- (and (== global333 3) (> ((ScriptID 550 3) y?) 200))
- (= global333 6)
- )
- Okay, so where is global333 set to 3? inside "theHenchManScript", which I can't quite follow yet.
- Also, something elsewhere in the game that's funny: the script that runs when you trap the witch in the bottle is called "killTheBitch".
Advertisement
Add Comment
Please, Sign In to add comment