Community

SCI Programming => Mega Tokyo SCI Archive => Topic started by: Cloudee1 on March 28, 2003, 03:27:20 PM

Title: Cloudee1's Problems scripting(ongoing)
Post by: Cloudee1 on March 28, 2003, 03:27:20 PM
Alright everybody I suck at programming, but I don't think that is any reason to give up, so with that said with a little perseverence and the help of many smart people who are knowledgable in this stuff like you I plan to finish "The Search: A Cannabus Concauction"

Right now my brain is buzzing from staring at scripts, when I am not actually thinking about something I have ifs and elses running around in my head.

Tonight after work I plan to sit down and do some scripting so  I will probably have some problems to post, I have some now but I am going to try to conquer some of them first before asking

OS XP    SCIstudio 3.0.1.29    :-*
Title: Re:Cloudee1's Problems scripting(ongoing)
Post by: Cloudee1 on March 28, 2003, 03:46:11 PM
My game is about smoking marijuana or at least attempting too (The Search: A Cannabis Concauction) and no it doesn't help my programming by first indulging

For instance the current problem I'm having, I drew a shell of a refrigerater,no door, in the room(2)

I have my refrigerater door which I drew as a view(200).

As a prop I can place the door on fridge, I can't place it as a door because I get an error when compiled that says it is looking for an integer, I tried (for experimenting) to have ego go to a different room(assuming that is the integer it wants) and it still says need integer when I compile.


(theFrig:init())

not right next to each other, each in it's own section

(instance theFrig of Door(properties y 128 x 211
  entranceTo 5 locked False view 200))

I don't want to go to room 5 really all I want to do is switch to cel 1 on view
Please somebody help
Title: Re:Cloudee1's Problems scripting(ongoing)
Post by: Brian Provinciano on March 28, 2003, 04:21:26 PM
Hi! Good for you! Don't give up! Programming can be difficult at first, but the only way to learn it is to keep trying!

You problem is due to the fact that SCI is a case senstive language. This means that "A" is different from "a".

You code is...
(instance theFrig of Door
  (properties
    y 128
    x 211
    entranceTo 5
    locked False
    view 200)
)

You code should be...
(instance theFrig of Door
  (properties
    y 128
    x 211
    entranceTo 5
    locked FALSE
    view 200)
)

An integer is a number, but "FALSE" is a number as well. In SCI.SH it is defined as 0. 1 is "TRUE", 0 is "FALSE".
Title: Re:Cloudee1's Problems scripting(ongoing)
Post by: beyond infinity on March 28, 2003, 04:30:59 PM
Hail to thee oh daring welcome amongst those who conquer the bits and bytes ... and earn their guts with this struggling stuff *rofl*

thus spoken I wish thee good lock with thee experiences and dont become distracted by programming language fuzzyness. It's not that hard.

stay safe
Title: Re:Cloudee1's Problems scripting(ongoing)
Post by: Cloudee1 on March 29, 2003, 01:25:29 AM
I have to work early on Saturday so i didn't have time to encounter my next problem but a quick update my refrigerater works great

/*I like many others grew up on sierra games I have always wanted to make one,  while a subtrevert plot I intend on making a kick ass game, Your support will not be wasted many thanx for now and later*/

my frig door works!!!!  small steps provide the greatest pleasure ;D
Title: Re:Cloudee1's Problems scripting(ongoing)
Post by: Cloudee1 on March 30, 2003, 02:11:53 AM
Alright I am almost done with my whole kitchen area,

Very small detail:

I tried to have seperate responses for "look fridge" and "look in fridge" but for "look in fridge" it responded with both I understand why this happens but how can I prevent it.

Regardless I've gotten rid of the look in path and instead have opted to just give that response when door opens:

(if(Said('open/frig,door'))
  (theFrig:open(Print("Way in the back you see")Print("A box of Arm & Slammer baking soda"))))
(if(Said('close/frig,door'))
  (theFrig:close()))


It gives response before animation I would of course like it after ;)  Like I said small detail
Title: Re:Cloudee1's Problems scripting(ongoing)
Post by: Brian Provinciano on March 30, 2003, 02:42:42 AM
You are doing:

Door:open( Print(), Print() )

You most likely want something like:
Door:open()
Print()
Print()
Title: Re:Cloudee1's Problems scripting(ongoing)
Post by: Cloudee1 on March 31, 2003, 03:23:49 PM
Well good news I don't know what has happened but suddenly things are going very very well, in a couple of days i will probably have questions about inserting animated cut scenes but as for now I have it planned to complete everything else except for those by Thursday morning

That damn refrigerater is pissing me off Brian i followed the example and it still describes  before animation

Heres what i got:
 (if(Said('open/frig,door'))
(theFrig:open())
Print("Way in the back you see")
Print("A box of Arm & Slammer baking soda")
 )

also when ego is to far away to open the door it replies that you are too far away, then it gives my  "print" statements, I used the default door control line in view to set boundaries, I haven't been able to successfully insert those restrictions to apply to the print statements? :-\?
Title: Re:Cloudee1's Problems scripting(ongoing)
Post by: Brian Provinciano on March 31, 2003, 03:41:12 PM
The interpreter works on cycles. The animation takes a number of cycles to execute. So, when you say call door:open(), it begins the cycle, executing the first cycle/door frame, then the next cycle/door frame, etc. until the door's animation is done. If you want it to say the message when the door is completely open, you need to use states, or set flags and check them. For example, checking if the door is open, or opening (reading it's properites).
Title: Re:Cloudee1's Problems scripting(ongoing)
Post by: Cloudee1 on April 02, 2003, 05:46:20 AM
Alright so far so good  almost all of my said statements control lines rooms inventorys are done by thursday is my goal for that misc. stuff I currently know how to do,

then it is creating cut/title screens and "The Search" demo will be ready (Hopefully by Saturday)

for now I have no problems to report or questons that need answered

I don't really understand why I don't though
Title: Re:Cloudee1's Problems scripting(ongoing)
Post by: Cloudee1 on April 03, 2003, 02:06:25 AM
Alright I can't see this piece anymore when I type in use hand in pipe while not holding the INV_HAND,  I get "You don't have minute hand", so far so good, but then it replies "You've left me responseless". All other returns are the way they should be, does anybody notice the problem?

(if(Said('use>'))
(if(Said('/hand>'))
  (if(send gEgo:has(INV_HAND))
      (if(Said('//pipe'))            
           (if(send gEgo:has(INV_PIPE))
              (if(send gEgo:has(INV_RESIN))Print("You have already scraped as much resin as you could!"))
              (else Print("You scrape as much of the pipe as you can")Print("You pull out quite a chunk of resin!")(send gEgo:get(INV_RESIN))))
           (else Print("You don't have a pipe!"))))
   (else Print("You don't have the minute hand"))
 ))


I also tried to replace line 4 with
       (if(Said('//(in<pipe,on<pipe)'))  
 :-\same results as above          
Title: Re:Cloudee1's Problems scripting(ongoing)
Post by: Brian Provinciano on April 03, 2003, 03:54:40 AM
You see by doing:
(if(Said('/hand>'))

the ">" tells the compiler not to claim the Said statement. just "/hand" would cause it to claim it if the player does, infact, say "hand".
Title: Re:Cloudee1's Problems scripting(ongoing)
Post by: Cloudee1 on April 03, 2003, 05:02:52 AM
I don't get it

I thought that 'varx>' told it to look for next word match assuming they typed "varx vary "

or like i'm attempting for: "use hand in pipe"

if "use> "             then
if "also hand>"    depending if have hand, then
if "also pipe"       depending if have pipe, then
                           depending on whether done before
                                                     determined by RESIN
                            then do

I plan to put in a (else(if(said '[ //* , !* ]' for the "use hand varZ" is it because I'm not giving it another option yet that it gives me the responseless error?

I have fought with that little stretch of script long enough that I don't want to go explore it more until I have a clear understanding first
Title: Re:Cloudee1's Problems scripting(ongoing)
Post by: Wilco on April 03, 2003, 06:19:23 PM
     (if(Said('//pipe'))            
           (if(send gEgo:has(INV_PIPE))
 results as above          

Could it be because you've inserted:
(if(Said('//pipe'))

Instead of:
(if(Said('/pipe'))  

Perhaps when you type "use hand pipe" the word pipe isn't properly recognised.
Title: Re:Cloudee1's Problems scripting(ongoing)
Post by: Cloudee1 on April 04, 2003, 12:14:25 AM
I don't know
 I thought because it was the third word in sequence that it was searching for I needed the //
but like you I don't know programming so I don't know, I downloaded the AP2 script which was posted in your thread Wilco, I am hoping to get a better knowledge and understanding as I stare at more and more script examples, There are very few expressions which I have mastered. (but that isn't stopping me from pushing ahead) like the above bug in my programming, only happens when you don't have the minute hand, (and then it is just an extra response box) works fine "with hand" & "without pipe" or "with both" but what are the chances that someone would try to scrape the pipe without picking up the hand (let alone without my telling them that that is what they need to do )
so  even though bugs suck will anybody but the tester ever really find them.

I don't know what to do to fix above just because I don't know what symbols or phrases really to use, but if no one tells me how, I can tell you that it probably won't get fixed.

But the game will go on.

My demo is almost ready all inventory items response, pick up, views(still not happy with ego) ,pics, controls are done.

 I still need 2 death animations, and title screen, I suppose end game screen too since it's a demo and then I will be well on my way.
 



Title: Re:Cloudee1's Problems scripting(ongoing)
Post by: Wilco on April 04, 2003, 02:04:08 AM
I think the more examples we have to use and look at the better. I'm definitely finding Eigen's source code very helpful.
Sounds like you've got a lot of work done on your game.
I've only got four rooms in my game so far, but I'm working on it!
Title: Re:Cloudee1's Problems scripting(ongoing)
Post by: FastaKilla on April 04, 2003, 02:08:34 PM
Maybe instead of that you could just have the player type
"scrape pipe" or "scrape resin"
and have it work only if you have the hand and the pipe