Buffer exceeded error, and an inventory issue

Started by strangechicken, Fri 17/12/2010 06:45:22

Previous topic - Next topic

strangechicken

Here is the issue i got, the context is that I want to borrow a characters phone, combine it on my phone to take down his phone number. Give his phone back to him and than call him as a way to distract him:

GlobalScript.asc(395): Error (line 395): buffer exceeded: you probably have a missing closing bracket on a previous line

Code: ags

function cCop_UseInv()
{
if (player.ActiveInventory==iCopPhone){
  if (game.score==(3)){
  player.Say ("here is your phone back);
player.LoseInventory(iCopPhone)}}
  else {player.Say ("Not quite yet.");}
}


if (player.ActiveInventory==iPhone){
 if (game.score==(0)){
 player.Say ("Why would I want to do that?");}
 else if (game.score==(4)){ 
 player.Say ("We'll just give him a little ring shall we.");
 cCop.ChangeView(16);
cCop.Walk(90, 541, eBlock);
cCop.LockView(18);
cCop.Clickable=false;
GiveScore(1);}}} 


ALSO! I am having issues with my inventory:  I am using Khris's Broken sword style script along with "when mouse moves to top of screen" Inventory GUI type, now its all working perfectly, my issue is the cursor when you have an inventory item, and you go back to the inventory as you would to combine two items, it changes back to the "Walk" or "Pointer" icon (I can't tell which because in my game because of the broken sword style they're both the same). It still combines the items, but when the cursor is not the inventory item, i'm thinking it would be confusing for the player, sorry if this isn't a clear explaination, its complicated to explain for noobs like me.

Gilbert

There are quite a number of redundant brackets used in your codes (most jarring ones are those enclosing numbers, such as 'something == (0)'), which IMO would make the codes more readible without them. But anyway, it's not the point here, so do it however you like.

I've not checked the entire codes yet, but this line:
Code: ags

  player.Say ("here is your phone back);

obviously missed a closing quote.
Add it back and see if the room compiles:
Code: ags

  player.Say ("here is your phone back");



Calin Leafshade

even if you make that change the code still wont compile. your brackets are *all fucked up*

let me see if i can try and make sense of it.

Code: ags

function cCop_UseInv()
{
//if its the cop phone

    if (player.ActiveInventory==iCopPhone){
          if (game.score== 3){
              player.Say ("here is your phone back");
              player.LoseInventory(iCopPhone)
          }
          else player.Say ("Not quite yet.");
     }

//if it's the iPhone

     else if (player.ActiveInventory==iPhone){
        if (game.score == 0) player.Say ("Why would I want to do that?");
        else if (game.score == 4){ 
            player.Say ("We'll just give him a little ring shall we.");
            cCop.ChangeView(16);
            cCop.Walk(90, 541, eBlock);
            cCop.LockView(18);
            cCop.Clickable = false;
            GiveScore(1);
        }
     }

} 



See how much easier that is to understand and debug?

one little tip:

You dont need curly braces for an if statement if only one command follows it (i.e one thing with a semi colon at the end)

so this:

Code: ags

if (cCalin.PenisSize > cBabar.PenisSize) 
{
     cCalin.Say("Hooray!");
}


can become

Code: ags

if (cCalin.PenisSize > cBabar.PenisSize) cCalin.Say("Hooray!");


Gilbert

Quote from: Calin Leafshade on Fri 17/12/2010 07:59:00
You dont need curly braces for an if statement if only one command follows it (i.e one thing with a semi colon at the end)

Yeah, but some people may prefer it this way (not me, as I like to make the line compact), as it can be much easier to read to some's eyes and it's more friendly to inexperienced coders since it is less possible to mess things up when they add more lines to a condition, so it's up to one's own coding style.

strangechicken

#4
I decided to go a cheaper and easier route after many F-words, C-words and B-words resonating thru my house, and just created two identical inventory items. I found that easier than shit-ton of mind fucking "score" scripting...

and that seems to be working better so far on that route. Also thanks for the scripting hints, for one i didn't realise you didn't have to bracket the numbers, i thought that was compulsorary like as is case sensative typing, now i'm off to finish this road, this puzzle has been so confusing to make for me. it's been like an adventure game puzzle just to make this adventure game puzzle!

But thanks guys!

Khris

To save different states of your game, use variables. There's the Global variables pane where you can define them easily, then set them like this:

Code: ags
  my_variable = 2;   // set an integer


No need to use game.score, then realize you can use it for one puzzle only.

SMF spam blocked by CleanTalk