Problems with status attributes (again) [SOLVED]

I now know how to set status attributes but when I test it out it doesn't seem to work. Thanks!


How doesn't it work?
Does it give an error message? Not set the attribute? Set it but not display it?

If you want help with a problem, you should probably provide a bit more information:

  1. What you are doing (include your code if possible). If something you're doing doesn't give the results you expect, then tell us what you're doing.
  2. What you think it should do
  3. What it actually does

Sorry for not elaborating, I meant that when I play the game and get to the part where the status attributes is supposed to change, nothing happens. The space behind the ":" in the game panes just remains blank.


OK. Can you show us the code that adds the status attribute; and the code that changes its value?

Have you checked that the name of the attribute is spelled right in both places? It can be easy to miss simple things like that sometimes.


use the '!' in the 'status attributes' Items' Values, which will show the correct (and correctly updated as they change) values.

also, you need to make sure that your values are being updated, which can be a bit confusing on how it's done


I have a step by step walkthrough guide on creating your own demo game, learning how to work with status attributes:

http://textadventures.co.uk/forum/quest/topic/5387/i-really-need-help#37375

(hopefully this will/can teach you on being an expert with 'statusattributes' usage, lol)


ask if you need any help with anything


Hi, yes I did use the ! in the status attributes but it still doesn't work. No error message shows up in the game, it just doesn't change.

So basically the status attributes go like this:
Key: player.housepoints
Value: Housepoints:!

And the codeview of the part where the housepoints are supposed to change is like this
player.housepoints = 10

Dunno what I got wrong.....I'm pretty sure I followed the instructions correctly XD


The key should be the name of an attribute of the player object; so in this case the key should be "housepoints".


?? I changed the key on both parts but it still doesn't show up.....I'm trying to include a screenshot here but I dunno how XD


If you have the image uploaded somewhere, copy the url then paste it over the url in this example.

Example:

Your avatar's url is:

https://i.imgur.com/oTjwQngb.jpg

So, I put:

![This text displays if the image does not.](https://i.imgur.com/oTjwQngb.jpg)

This text displays if the image does not.

That is markdown, which doesn't work everywhere, but it works here.


You can also do it in HTML, which is much more universal:

<img src="https://i.imgur.com/oTjwQngb.jpg"/>

one trouble-shooting/debugging trick is to put in 'msg' Scripts, so you can see where the error is...

for example, put in a 'msg' Script before/above where you change your 'player.housepoints' to '=10', to see if you're indeed accessing/activating/getting-to that part of the scripting:

for a simple concept example:

<game name="example">
  <attr name="start" type="script">
    msg ("debugging: 1")
    if (player.alias = "HK") {
      msg ("debugging: 2")
      player.housepoints = 10
    }
    msg ("debugging: 3")
  </attr>
</game>

so, during game play:

if I never see 'debugging: 1', then I know there's an issue with that location/script-section.

if I never see 'debugging: 2', then I know there's an issue with that location/script-section.

if I never see 'debugging: 3', then I know there's an issue with that location/script-section.


otherwise... we may need to see your entire game code, to find what you're doing wrong, and fix it up for you.


P.S.

also, do note that the 'statusattributes' ONLY is for Player Objects and the special 'game' Game Settings Object, if an Object is not made into a Player Object (or not the special 'game' Game Settings Object), it can't have/use 'statusattributes'

also... make sure that if your 'housepoints' Integer Attribute is on your 'player' Player Object, then make sure your setting up the 'statusattributes' on your 'player' Player Object as well... as each Player Object and the special 'game' Settings Object are independent of each other in terms of using 'statusattributes'

also... as always... make sure everything is spelled correctly... no typos...

if you know how... try to see if it's the status attributes that's not displaying it correctly... or if it's an issue with bad scripting and it's not correctly changing the attribute's value, or it's never able to get to that part of your scripting..


here's a (near: too lazy to do the 'gameid', and not tested if this is even required or not, lol) working example:

<asl version="550">

  <include ref="English.aslx" />
  <include ref="Core.aslx" />

  <game name="example">

    <gameid>RANDOM_HASH_STRING</gameid>
    <version>1.0</version>
    <firstpublished>2018</firstpublished>

    <attr name="life" type="int">0</attr>

    <statusattributes type="stringdictionary">

      <item>
        <key>life</key>
        <value>Life: !</value>
      </item>

    </statusattributes>

    <attr name="start">

      <![CDATA[

        msg ("Life? (1 to 999)")
        get input {
          if (IsInt (result)) {
            integer_variable = ToInt (result)
            if (integer_variable > 0 and integer_variable < 101) {
              game.life = integer_variable
            } else {
              msg ("wrong input")
            }
          } else {
            msg ("wrong input")
          }
        }

      ]]>

    </attr>

  </game>

  <object name="room">

    <inherit name="editor_room" />

  </object>

  <object name="player">

    <inherit name="editor_object" />
    <inherit name="editor_player" />

    <attr name="parent" type="object">room</attr>

  </object>

  <command name="life_command">
    <pattern>life</pattern>
    <script>
      do (game, "start")
    </script>
  </command>

</asl>

EDIT:
Wait what!!!! Ok, so I'm sure it worked after I set the player object to player (I might of just mistaken the health number for the housepoints number) but I tried again and it can't seem to. Also, every time I try to copy and paste the code that you provided before the "player.housepoints=10", Quest crashes and says that an internal error occurred.???


we're probably going to need to see your entire game code... so we can help you with fixing it up

if you're on the desktop, you can right click on your game file itself, and open it up with a text editor software (notepad, wordpad, Apple: text editor, etc), which will be your entire game code, so highlight all of it, copy it, and then paste it here (or as a pm if you don't want to make your game code public... though pms have a smaller word count limit than a post), like this:

m```
(your entire game code)
m```

but without the m's in front

and those 3 weird characters/symbols is the key in the upper left corner, to the left of the '1' key and above the left 'TAB' key


you'd not paste that entire code of mine... just add in the 'msg ("BLAH")' Scripts into your code


I have a mac so.....I'm working on the online version? Is there still a way to fix it?


can you download your game? if you can, you can open the game file with a mac (right click on the game file and open it with the 'text editor'), then you can paste it here.

I forgot... you'll have to unzip the 'xxx.quest' file (to get to your 'XXX.aslx' game file that the publishing to the server created/done --- and then it puts it into a 'xxx.quest' file for online usage) after you've downloaded your game file (not sure how a mac does this... on windows we can use winrar or winzip or 7zip softwares, though you can probably ask someone on how to unzip a file with a mac or look up how online, I'm just not that familiar with macs) , but once you unzip it (revealing the 'xxx.aslx' game file), then you can just right click on it (as it's a 'xxx.aslx' file) and open it up with 'text editor' software/program.


Here is the code for the whole game

<!--Saved by Quest 5.7.6404.16853-->
<asl version="550">
  <include ref="English.aslx" />
  <include ref="Core.aslx" />
  <game name="Ilvermorny School of Wizardry and Witchcraft">
    <gameid>75e5bcdd-f845-485d-a1f8-74d912c40e95</gameid>
    <version>1.0</version>
    <firstpublished>2018</firstpublished>
    <category>Fantasy</category>
    <showmoney type="boolean">false</showmoney>
    <menufont>'Times New Roman', Times, serif</menufont>
    <showhealth />
    <feature_lightdark />
    <showpanes />
    <gridmap />
    <mapexitcolour>AliceBlue</mapexitcolour>
    <description><![CDATA[You are a young American witch who has just reached her 11th birthday! Of course, that means you get to go to Ilvermorny, the American school of magic! However, rumors of dark magic are spreading like wildfire, and trouble is coming to Ilvermorny!<br/><br/>Ilvermorny is actually a place in the Harry Potter world (you should know if you've read Pottermore or have watched Fantastic Beasts). If you want to find out more, use this link: https://www.pottermore.com/writing-by-jk-rowling/ilvermorny<br/><br/>Note: Most of the places and people mentioned are real, J.K Rowling confirmed, but some are made up. I tried to use the info from JKR but if I couldn't find it I made it up myself. I apologize for any mistakes I made.<br/><br/>This is set in America, after the war with Voldemort, when Harry is an adult.<br/><br/>WORK IN PROGRESS]]></description>
    <feature_asktell />
    <showscore type="boolean">false</showscore>
    <povstatusattributes type="stringdictionary">
      <item>
        <key>player.housepoints</key>
        <value>Housepoints:!</value>
      </item>
      <item>
        <key>player.dragots</key>
        <value>Dragots:!</value>
      </item>
    </povstatusattributes>
    <defaultwebfont>Cormorant Garamond</defaultwebfont>
    <customwidth type="int">800</customwidth>
    <custompaddingtop type="int">50</custompaddingtop>
    <custompaddingleft type="int">15</custompaddingleft>
    <custompaddingright type="int">15</custompaddingright>
    <defaultfont>'Times New Roman', Times, serif</defaultfont>
    <showlocation type="boolean">false</showlocation>
    <classiclocation type="boolean">false</classiclocation>
    <showborder type="boolean">false</showborder>
    <setcustomwidth />
    <setcustompadding />
    <menufontsize type="int">8</menufontsize>
    <mapscale type="int">20</mapscale>
    <mapsize type="int">200</mapsize>
    <defaultfontsize type="int">13</defaultfontsize>
    <defaultbackground>BlanchedAlmond</defaultbackground>
    <menuhoverbackground>IndianRed </menuhoverbackground>
    <menuhoverforeground>Azure</menuhoverforeground>
    <commandpane type="boolean">false</commandpane>
    <customstatuspane type="boolean">false</customstatuspane>
    <moneyformat>!</moneyformat>
    <pov type="object">player</pov>
    <start type="script"><![CDATA[
      msg ("You wake up in your room, disrupted by a noisy pecking at the window. Who? What? Where? Huh?<br/><br/>What is your name, young witch?")
      get input {
        player.alias = result
        msg ("Oh right. You do get a bit muddled in the mornings. You really need to work on that, "  +player.alias)
      }
    ]]></start>
  </game>
  <object name="Bedroom">
    <inherit name="editor_room" />
    <description>Your own cozy little bedroom. There's a desk by the window, on it are several quills, a calendar, and a Streeler provides light. A flitterbloom sways in its pot on your dresser. A closet is to your left, and by the wall is your bed. Various trinkets are scattered all over the room.</description>
    <dark type="boolean">false</dark>
    <darkroomdescription type="string"></darkroomdescription>
    <enter type="script">
    </enter>
    <firstenter type="script">
      msg ("As you sit up, you see the source of the distressing noise. A large barn owl is sitting on the windowsill, a letter tied to it's leg. Who could be sending you a letter?")
      MoveObject (Owl, Bedroom)
    </firstenter>
    <object name="player">
      <inherit name="editor_object" />
      <inherit name="editor_player" />
    </object>
    <object name="Streeler">
      <inherit name="editor_object" />
      <look>A Streeler. Streelers are giant snails that change color regularly. Like one of those No-Maj lava lamps. Gram bought it for you for your 6th birthday, you keep it in a small wooden container on your desk.</look>
      <pet type="string"></pet>
    </object>
    <object name="Flitterbloom">
      <inherit name="editor_object" />
      <look>A harmless plant with long tentacles. Its on a pot by your bed. It's not doing so well frankly,  you don't exactly have a green thumb. </look>
      <attr name="feature_lightdark" type="boolean">false</attr>
      <lightsource />
      <lightstrength>strong</lightstrength>
      <water type="scriptdictionary" />
    </object>
    <object name="Bed">
      <inherit name="editor_object" />
      <look>A wooden bed with pillows and a comforter. It's slightly rumpled.</look>
      <sleepin>Now's not the time to sleep! Lots of things to do!</sleepin>
    </object>
    <object name="Closet">
      <inherit name="editor_object" />
      <inherit name="container_open" />
      <look>A large closet filled with your clothes. It has iron handles and carved claw feet.</look>
      <attr name="feature_usegive" type="boolean">false</attr>
      <feature_container />
      <isopen type="boolean">false</isopen>
      <listchildren />
      <onopen type="script">
        player.housepoints = 10
      </onopen>
      <object name="Dress Robes">
        <inherit name="editor_object" />
        <feature_usegive />
        <look>A pair of green dress robes. It has lots of fancy brass buttons and silver trim on the front and stretches down to your toes. </look>
        <take />
        <use type="script">
          msg ("Eh, they're really frilly and uncomfortable. You decide to save them for a formal occasion.")
        </use>
      </object>
      <object name="Trunk">
        <inherit name="editor_object" />
        <look>A large leather trunk, with straps running down the sides. Your name is printed on the side.</look>
      </object>
    </object>
    <exit name="Your Bedroom to Landing" alias="west" to="Upstairs Landing">
      <inherit name="westdirection" />
      <locked />
      <scenery type="boolean">false</scenery>
      <lockmessage>That owl looks like it won't wait much longer! You'd better get the letter first before going anywhere!</lockmessage>
    </exit>
  </object>
  <object name="Notting Square">
    <inherit name="editor_room" />
    <description>Notting Square, the hub of wizarding activity in New York! The streets bustle with robed figures, rushing to and fro. There are pubs, parlors, shops, and more! Some buildings look quite old, and others are newly built. Along the streets are also many stalls and peddlers, each hawking their wares. There is also a well known old pub here called The Fountain of Fair Fortune.</description>
    <exit alias="north" to="North Side of Notting Square">
      <inherit name="northdirection" />
    </exit>
    <exit alias="in" to="The Fountain of Fair Fortune">
      <inherit name="indirection" />
    </exit>
    <exit alias="east" to="East Side of Notting Square">
      <inherit name="eastdirection" />
      <locked type="boolean">false</locked>
      <lockmessage>Gramps told you to stay where he could see you!</lockmessage>
    </exit>
    <exit alias="west" to="West Side of Notting Square">
      <inherit name="westdirection" />
      <locked type="boolean">false</locked>
      <lockmessage>Gramps told you to stay where he could see you!</lockmessage>
    </exit>
    <exit alias="south" to="South Side of Notting Square">
      <inherit name="southdirection" />
      <locked type="boolean">false</locked>
      <lockmessage>Gramps told you to stay where he could see you!</lockmessage>
    </exit>
    <exit alias="southeast" to="Southeast Side of Notting Square">
      <inherit name="southeastdirection" />
      <locked />
      <lockmessage>Gramps told you to stay where he could see you!</lockmessage>
    </exit>
    <exit alias="northeast" to="Northeast Side of Notting Square">
      <inherit name="northeastdirection" />
      <locked />
      <lockmessage>Gramps told you to stay where he could see you!</lockmessage>
    </exit>
    <exit alias="southwest" to="Southwest Side of Notting Square">
      <inherit name="southwestdirection" />
      <locked />
      <lockmessage>Gramps told you to stay where he could see you!</lockmessage>
    </exit>
    <exit alias="northwest" to="Northwest Side of Notting Square">
      <inherit name="northwestdirection" />
      <locked />
      <lockmessage>Gramps told you to stay where he could see you!</lockmessage>
    </exit>
  </object>
  <verb>
    <property>water</property>
    <pattern>water</pattern>
    <defaultexpression>"You can't water " + object.article + "."</defaultexpression>
  </verb>
  <verb>
    <property>pet</property>
    <pattern>pet</pattern>
    <defaultexpression>"You can't pet " + object.article + "."</defaultexpression>
  </verb>
  <verb>
    <property>sleepin</property>
    <pattern>sleep in</pattern>
    <defaultexpression>"You can't sleep in " + object.article + "."</defaultexpression>
  </verb>
  <object name="Upstairs Landing">
    <inherit name="editor_room" />
    <description>The second floor landing of your house. To the east is your bedroom, the north a bathroom, and west is Gram and Gramp's room. A spiral staircase connects the two floors.</description>
    <exit alias="east" to="Bedroom">
      <inherit name="eastdirection" />
    </exit>
    <exit alias="west" to="Master Bedroom">
      <inherit name="westdirection" />
    </exit>
    <exit alias="north" to="Bathroom">
      <inherit name="northdirection" />
    </exit>
    <exit alias="down" to="Hallway">
      <inherit name="downdirection" />
    </exit>
  </object>
  <object name="Master Bedroom">
    <inherit name="editor_room" />
    <description>This is Gram and Gramp's room. There is a distinct smell of cinnamon here, and its very neat. Theres a large bed in the middle, with a closet and dresser here too. Theres one of those No Maj 'alarm clocks' on the dresser, which annoys Gram to no end. A plush oriental carpet is on the floor. To the west is a bathroom.</description>
    <exit alias="east" to="Upstairs Landing">
      <inherit name="eastdirection" />
    </exit>
    <object name="Gramps">
      <inherit name="editor_object" />
      <inherit name="male" />
      <look type="script"><![CDATA[
        if (IsSwitchedOn(Gramps wake flag)) {
          msg ("Gramps is a slightly stooped, white haired old man. He is wearing brown robes with a hat (that probably became out of fashion fifty years ago). Gramps has a large mustache that you liked to pull on when you were little. He used to be a wandmaker back in the day.")
        }
        else if (not IsSwitchedOn(Gramps wake flag)) {
          msg ("Gramps is a slightly stooped, white haired old man. He is wearing brown robes with a hat (that probably became out of fashion fifty years ago). Gramps has a large mustache that you liked to pull on when you were little. He used to be a wandmaker back in the day.<br/><br/>Right now he's snoring away in his pajamas.")
        }
      ]]></look>
      <speak type="script"><![CDATA[
        if (IsSwitchedOn(Gramps wake flag)) {
          firsttime {
            msg ("Gramps groans and stirs. \"Ooof! Can't an old codger get some sleep around here?\" He yawns.<br/>He's awake! You should tell him about your acceptance letter!")
          }
          otherwise {
            msg ("Gramps patiently listens to your mindless chatter.")
          }
        }
        else if (not IsSwitchedOn(Gramps wake flag)) {
          msg ("You shouldn't wake him up, he always sleeps late on Sundays. Gram is up though, she's probably in the kitchen.")
        }
      ]]></speak>
      <tell type="scriptdictionary">
        <item key="letter">
          msg ("Gramps immediately leaps to his feet. \"Ilvermorny!\" He strokes his mustache. \"I never attended myself, no, it was Hogwarts for me! But your mother always loved it. What do you say, shall we head down to Notting Square and get your supplies? Why don't you head down and get the Floo powder first, I'll be there in a minute!\"")
        </item>
        <item key="Ilvermorny">
          msg ("Gramps immediately leaps to his feet. \"Ilvermorny!\" He strokes his mustache. \"I never attended myself, no, it was Hogwarts for me! But your mother always loved it. What do you say, shall we head down to Notting Square and get your supplies? Why don't you head down and get the Floo powder first, I'll be there in a minute!\"")
        </item>
        <item key="ready">
          msg ("\"Alright!\" He sprinkles the powder onto the fire, which immediately glows green. \"Gringotts!\" There's a great rush of heat as you step into the fire. Stepping out, you find yourself in a huge marble-tiled bank!")
          MoveObject (player, Gringotts)
          MoveObject (Gramps, Gringotts)
        </item>
      </tell>
      <ask type="scriptdictionary">
        <item key="floo powder">
          msg ("\"Don't tell me you've forgotten where the Floo powder is!\"")
        </item>
        <item key="wandmaking">
          msg ("")
        </item>
        <item key="Gringotts">
        </item>
      </ask>
    </object>
    <object name="Dresser">
      <inherit name="editor_object" />
      <inherit name="openable" />
      <alias>Dresser</alias>
      <look>A mahogany dresser with brass handles. A No Maj alarm clock is sitting on it. It's not any ordinary dresser though, Gramp enlarged the drawers so even an elephant could fit into it.</look>
      <feature_container />
      <openscript type="script">
        msg ("Eh, you better not. You don't want to snoop into their stuff. ")
      </openscript>
    </object>
    <object name="Alarm Clock">
      <inherit name="editor_object" />
      <look>An antique 'alarm clock'. Gramps got it as a souvenir, when he accidentally Apparated into a clock shop. The owner's memory was wiped of course.</look>
      <take type="script">
        msg ("You better not take it.")
      </take>
    </object>
  </object>
  <object name="Bathroom">
    <inherit name="editor_room" />
    <description>A large bathroom with a marble floor. A bathtub stands in the corner, and a mirror hangs above the sink. And of course, theres a toilet. Theres also a cupboard containing various toiletries and products.</description>
    <exit alias="south" to="Upstairs Landing">
      <inherit name="southdirection" />
    </exit>
    <object name="Toilet">
      <inherit name="editor_object" />
      <look>A white marble toilet. Is there really much to see?</look>
      <feature_usegive />
      <use type="script">
        msg ("You lift up the lid and relieve yourself!")
      </use>
    </object>
    <object name="Bathtub">
      <inherit name="editor_object" />
      <look>A white marble bathtub with brass clawed feet. </look>
      <feature_usegive />
      <use type="script">
        msg ("There's no time to take a bath now!")
      </use>
    </object>
    <object name="Cupboard">
      <inherit name="editor_object" />
      <inherit name="container_open" />
      <feature_container />
      <isopen type="boolean">false</isopen>
      <listchildren />
      <look>A wooden cupboard filled with medicine and cleaning products. Fascinating. </look>
      <object name="Pepperup Potion">
        <inherit name="editor_object" />
        <look>You instinctively shy away from the potion. Drinking it cures your cold but it also makes smoke come out of your ears!</look>
        <take type="script">
          msg ("The school healer will probably have some, you should leave it for Gram. ")
          MoveObject (Pepperup Potion, Cupboard)
        </take>
      </object>
      <object name="Murtlap Essence">
        <inherit name="editor_object" />
        <look>A clear jar full of Murtlap Essence. It's so useful you hardly believe it comes from pickled Murtlap tentacles.....heals cuts, abrasions etc etc etc</look>
        <take type="script">
          msg ("The school healer will probably have some, you should leave it for Gram. ")
          MoveObject (Murtlap Essence, Cupboard)
        </take>
      </object>
      <object name="Mrs Skowers All Purpose Magical Mess Remover">
        <inherit name="editor_object" />
        <look>Ah, what would Grandmère do without this magical product? It's in a large bottle, with the label printed in bold letters. A faint scent of lemons emanates from it.</look>
        <take type="script">
          msg ("What would Gram do without this? You decide not to be evil and put it back.")
          MoveObject (Mrs Skowers All Purpose Magical Mess Remover, Cupboard)
        </take>
      </object>
      <object name="Madame Glossys Silver Polish">
        <inherit name="editor_object" />
        <look>A glowing silver bottle full of polish. A slightly pungent odor leaks from it.</look>
        <take type="script">
          msg ("What would Gram do without this? You decide not to be evil and put it back.")
          MoveObject (Madame Glossys Silver Polish, Cupboard)
        </take>
      </object>
      <object name="Cough Potion">
        <inherit name="editor_object" />
        <look><![CDATA[A small, round, faceted crystal bottle filled with opaque liquid. This is one of Grandmère's home recipes, she always makes Gramps drink it  in the winter. You've tried it before......it wasn't particularly pleasant. <br/>]]></look>
        <take type="script">
          msg ("The school healer will probably have some, you should leave it for Gram. ")
          MoveObject (Cough Potion, Cupboard)
        </take>
      </object>
    </object>
    <object name="Sink">
      <inherit name="editor_object" />
      <inherit name="switchable" />
      <look>This model was actually quite popular, as Gramps tell it. It can spout anything from water to love potion. Well.....Gramps has already fixed it so it doesn't spout love potion anymore. That is, you think. </look>
      <displayverbs type="stringlist">
        <value>Look at</value>
      </displayverbs>
      <feature_switchable />
      <switchonmsg>Normal water comes from it. Thankfully.</switchonmsg>
    </object>
  </object>
  <object name="Unused">
    <inherit name="editor_room" />
    <object name="Owl">
      <inherit name="editor_object" />
      <look type="script">
        MoveObject (Envelope, Bedroom)
        msg ("A large barn owl with a heart-shaped face. He shifts from foot to foot impatiently, staring at you expectantly. There's an envelope tied to him.")
      </look>
    </object>
    <object name="Envelope">
      <inherit name="editor_object" />
      <inherit name="container_open" />
      <look>A creamy white envelope sealed with red wax. There's an emblem embellished on the seal.</look>
      <takemsg>\</takemsg>
      <feature_container />
      <isopen type="boolean">false</isopen>
      <take type="script">
        msg ("You untie the letter from the owl. The owl flaps away into the morning sun. Hmm, what could this be?")
        MoveObject (Owl, Unused)
        UnlockExit (Your Bedroom to Landing)
        SwitchOn (Owl letter flag)
      </take>
      <onopen type="script"><![CDATA[
        if (not IsSwitchedOn()) {
          msg ("There's no time to read it now! The owl won't wait much longer! You'd better take it before he leaves.")
          MoveObject (Letter, Envelope)
          HelperCloseObject (Envelope)
        }
        else if (IsSwitchedOn(Owl letter flag)) {
          msg ("A sheet of paper with gold trim slides out. What could this be? Is it--<br/><br/><br/>Oh!<br/><br/><br/>Could it be?<br/><br/>You read the letter, heart pounding with every word.<br/><br/><b>Ilvermorny School of Wizardry and Witchcraft</b><br/><br/><i>Dear Miss {player.alias} Roche,<br/><br/>We are pleased to inform you that you have a place at Ilvermorny School of Wizardry and Witchcraft. You will find an enclosed list of all necessary equipment and instructions for transportation.<br/><br/>Term begins on September 2nd, we await your reply by no later than July 31st. If there is no reply, it is automatically assumed that you will be coming.<br/><br/>Yours sincerely, <br/><br/>Rebecca Marchford<br/>Deputy Headmistress </i>")
          wait {
            msg ("Wow! You got accepted into Ilvermorny!! You'd better tell Gram and Gramps, they'll be overjoyed!")
          }
        }
      ]]></onopen>
      <object name="Letter">
        <inherit name="editor_object" />
        <look type="string"></look>
      </object>
    </object>
    <object name="Gramps wake flag">
      <inherit name="editor_object" />
      <inherit name="switchable" />
      <feature_switchable />
    </object>
    <object name="Jar of Floo Powder">
      <inherit name="editor_object" />
      <scenery />
      <look type="string"></look>
      <take type="script">
        if (Jar of Floo Powder.isopen) {
          msg ("You take a pinch of Floo Powder from the jar and put it in your palm. Gramps appears, having combed his hair and washed his face. \"Ready? We'll have to go to Gringotts first to get some change. Tell me when you're ready to go.\"")
          MoveObject (Gramps, Dining Room)
        }
      </take>
    </object>
    <object name="Owl letter flag">
      <inherit name="editor_object" />
      <inherit name="switchable" />
      <feature_switchable />
    </object>
    <object name="Nagrok">
      <inherit name="editor_object" />
      <inherit name="male" />
      <look type="string"></look>
      <tell type="scriptdictionary">
        <item key="ready"><![CDATA[
          msg ("Nagrok motions for you and Gramps to follow him. He leads you through the silver doors into a dimly lit chamber. As you pass, you see words carved into the door.<br/><br/><i>Enter, stranger, but take heed<br/>Of what awaits the sin of greed<br/>For those who take, but do not earn,<br/>Must pay most dearly in their turn.<br/>So if you seek beneath our floors<br/>A treasure that was never yours,<br/>Thief, you have been warned, beware<br/>Of finding more than treasure there.</i><br/><br/>You shudder a bit, having heard the rumors about what lies under Gringotts. Nagrok takes you into a dank tunnel, where a mine cart is waiting.")
          MoveObject (player, Gringotts Tunnel)
        ]]></item>
      </tell>
    </object>
    <object name="Butterbeer">
      <inherit name="editor_object" />
      <look>A large glass bottle full of bubbly yellow liquid. </look>
      <take />
      <attr name="feature_edible" type="boolean">false</attr>
      <drink type="script">
        msg ("You down the glass in one gulp. Ahh! The liquid is creamy and refreshing. ")
        SwitchOn (fountain of fortune drink flag)
      </drink>
    </object>
    <object name="fountain of fortune drink flag">
      <inherit name="editor_object" />
      <inherit name="switchable" />
      <feature_switchable />
    </object>
    <object name="Pumpkin Juice">
      <inherit name="editor_object" />
      <look>A tall glass filled with smooth, orange liquid. There are a few flecks of white in the juice too.</look>
      <drink type="script">
        msg ("You down the glass in one gulp. Ahh! The liquid is creamy and refreshing. ")
        SwitchOn (fountain of fortune drink flag)
      </drink>
    </object>
    <object name="Peachtree Fizzing Tea">
      <inherit name="editor_object" />
      <look>A glass filled with effervescent pink liquid. It's peach-flavored.</look>
      <drink type="script">
        msg ("You down the glass in one gulp. Ahh! The liquid is bubbly and refreshing. ")
        SwitchOn (fountain of fortune drink flag)
      </drink>
    </object>
    <object name="Gringotts money flag">
      <inherit name="editor_object" />
      <inherit name="switchable" />
      <feature_switchable />
    </object>
    <object name="Common magical ailments bought flag">
      <inherit name="editor_object" />
      <inherit name="switchable" />
      <feature_switchable />
    </object>
    <object name="Enchanted encounters bought flag">
      <inherit name="editor_object" />
      <inherit name="switchable" />
      <feature_switchable />
    </object>
  </object>
  <verb>
    <property>pullmustache</property>
    <pattern>pull mustache</pattern>
    <defaultexpression>"You can't pull mustache " + object.article + "."</defaultexpression>
  </verb>
  <verb>
    <property>hug</property>
    <pattern>hug</pattern>
    <defaultexpression>"You can't hug " + object.article + "."</defaultexpression>
  </verb>
  <object name="The Copper Pumpkin">
    <inherit name="editor_room" />
    <exit alias="west" to="North Side of Notting Square">
      <inherit name="westdirection" />
    </exit>
  </object>
  <object name="North Side of Notting Square">
    <inherit name="editor_room" />
    <exit alias="south" to="Notting Square">
      <inherit name="southdirection" />
    </exit>
    <exit alias="east" to="The Copper Pumpkin">
      <inherit name="eastdirection" />
    </exit>
    <exit alias="west" to="The Apothecary">
      <inherit name="westdirection" />
    </exit>
    <exit alias="north" to="Gladrags Wizardwear">
      <inherit name="northdirection" />
    </exit>
  </object>
  <object name="The Fountain of Fair Fortune">
    <inherit name="editor_room" />
    <description>The Fountain of Fair Fortune is the oldest pub in Notting Square by far. Inside the pub is  crowded, many robes of different colors swishing here and there. It is a pink and blue wooden building, with a mermaid fountain outside. On the bottom of the fountain are a few Dragots, glinting back at you.</description>
    <exit alias="out" to="Notting Square">
      <inherit name="outdirection" />
    </exit>
    <object name="Bartender">
      <inherit name="editor_object" />
      <inherit name="male" />
      <look>A heavily bearded man wearing an apron is working behind the counter. He's grumpily wiping down a few tumblers. </look>
      <speak type="script"><![CDATA[
        msg ("He looks at you, briefly pausing his wiping. \"Do you want to order?\", he asks gruffly. \"We've got Butterbeer, Pumpkin Juice, Firewhiskey, Mulled Mead, Fishy Green Ale, Peachtree Fizzing Tea, Wizard's Brew, Gillywater......\" He prattles on and on, listing drinks.<br/><br/>To order, <b>Tell Bartender to serve (drink you want)</b>")
      ]]></speak>
      <ask type="scriptdictionary">
        <item key="The Fountain of Fair Fortune">
          msg ("He eyes you grouchily. \"Either order something or get out.\"")
        </item>
        <item key="Himself">
          msg ("He eyes you grouchily. \"Either order something or get out.\"")
        </item>
      </ask>
      <tellto type="scriptdictionary">
        <item key="serve butterbeer"><![CDATA[
          if (IsSwitchedOn(fountain of fortune drink flag)) {
            msg ("You already had a drink, you're full now!")
          }
          else if (not IsSwitchedOn(fountain of fortune drink flag)) {
            MoveObject (Butterbeer, The Fountain of Fair Fortune)
            msg ("The bartender briefly disappears from the counter and retrieves your drink. He thunks the glass down on the counter and holds out his hand. \"1 Sprink.\" <br/>You dig out the money and hand it to him. ")
            DecreaseMoney (1)
          }
        ]]></item>
        <item key="serve pumpkin juice"><![CDATA[
          if (IsSwitchedOn(fountain of fortune drink flag)) {
            msg ("You already had a drink, you're full now!")
          }
          else if (not IsSwitchedOn(fountain of fortune drink flag)) {
            MoveObject (Pumpkin Juice, The Fountain of Fair Fortune)
            msg ("The bartender briefly disappears from the counter and retrieves your drink. He thunks the glass down on the counter and holds out his hand. \"1 Sprink.\" <br/>You dig out the money and hand it to him. ")
            DecreaseMoney (1)
          }
        ]]></item>
        <item key="serve peachtree fizzing tea"><![CDATA[
          if (IsSwitchedOn(fountain of fortune drink flag)) {
            msg ("You already had a drink, you're full now!")
          }
          else if (not IsSwitchedOn(fountain of fortune drink flag)) {
            MoveObject (Peachtree Fizzing Tea, The Fountain of Fair Fortune)
            msg ("The bartender briefly disappears from the counter and retrieves your drink. He thunks the glass down on the counter and holds out his hand. \"1 Sprink.\" <br/>You dig out the money and hand it to him. ")
            DecreaseMoney (1)
          }
        ]]></item>
      </tellto>
    </object>
  </object>
  <object name="The Apothecary">
    <inherit name="editor_room" />
    <exit alias="east" to="North Side of Notting Square">
      <inherit name="eastdirection" />
    </exit>
  </object>
  <object name="West Side of Notting Square">
    <inherit name="editor_room" />
    <exit alias="west" to="Gringotts">
      <inherit name="westdirection" />
    </exit>
    <exit alias="south" to="Wiseacres Wizarding Equipment">
      <inherit name="southdirection" />
    </exit>
    <exit alias="north" to="Gambol Japes Wizarding Joke Shop">
      <inherit name="northdirection" />
    </exit>
    <exit alias="east" to="Notting Square">
      <inherit name="eastdirection" />
    </exit>
  </object>
  <object name="Gringotts">
    <inherit name="editor_room" />
    <description>Even though you've been here before, Gringotts is still breathtaking. It's hard to imagine that there's hundreds of Gringotts subdivisions all over the world. What would it take to build a place of this size? You are in a long chamber, with counters lining the walls. Goblins sit at the counters, weighing and examining treasure. A set of double silver doors lead to the vaults. There are many fireplaces on one wall, with wizards bustling in and out. </description>
    <beforefirstenter type="script">
    </beforefirstenter>
    <firstenter type="script"><![CDATA[
      msg ("As you step out of the dying fire, a goblin immediately sidles up to you. \"Name and vault number please?\", he says in a nasal voice. <br/>\"Roche, vault 762,\" instructs Gramps, brushing the ash off his robes.<br/>The goblin nods. \"You have a key?\"<br/>Gramps fumbles in his pockets for a minute and produces a minuscule gold key. He holds it up for the goblin to see.<br/>The goblin examines the key closely then nods. \"I'll have someone take you down to the vaults. You can use our other services here in the meantime.\"")
      SetTimeout (2) {
        msg ("The goblin that welcomed you claps his hands. \"Nagrok!\", he calls, turning to you. \"He'll be here shortly.\"")
      }
      SetTimeout (4) {
        msg ("Another goblin, presumably Nagrok emerges. \"I see you've been looking around. You're free to take a look and use our services. Tell me when you're ready to go down.\"")
      }
    ]]></firstenter>
    <exit name="Gringotts to Notting Square" alias="east" to="West Side of Notting Square">
      <inherit name="eastdirection" />
      <locked />
      <lockmessage>You shouldn't leave, you and Gramps need to get money!</lockmessage>
    </exit>
    <object name="Goblin">
      <inherit name="editor_object" />
      <inherit name="male" />
    </object>
    <object name="Currency Exchange Station">
      <inherit name="editor_object" />
      <look>A currency exchange station manned by an old goblin. A large enchanted sign broadcasts the current exchange rates. Behind the counter, tubes jutting from the wall pour out various currencies, which magically stack themselves in neat heaps.</look>
    </object>
    <object name="Currency Exchange Goblin">
      <inherit name="editor_object" />
      <inherit name="male" />
      <alias>Goblin</alias>
      <look>An old, withered goblin wearing a pair of wire rimmed spectacles. He peers over at you expectantly. He is currently sorting coins.</look>
      <tellto type="scriptdictionary">
        <item key="exchange currency"><![CDATA[
          msg ("\"What money would you like to exchange your dragots for?\"<br/><br/>(To do this, just pick a currency and tell him to exchange ____)")
        ]]></item>
        <item key="exchange"><![CDATA[
          msg ("\"What money would you like to exchange your dragots for?\"<br/><br/>(To do this, just pick a currency and tell him to exchange ____)")
        ]]></item>
        <item key="exchange money"><![CDATA[
          msg ("\"What money would you like to exchange your dragots for?\"<br/><br/>(To do this, just pick a currency and tell him to exchange ____)")
        ]]></item>
        <item key="exchange galleons">
          msg ("Galleons wouldn't be much use in your case, no one in Notting Alley as far as you know accepts British money. Gramps wouldn't be too happy about it either.")
        </item>
        <item key="exchange sickles">
          msg ("Sickles wouldn't be much use in your case, no one in Notting Alley as far as you know accepts British money. Gramps wouldn't be too happy about it either.")
        </item>
        <item key="exchange knuts">
          msg ("Knuts wouldn't be much use in your case, no one in Notting Alley as far as you know accepts British money. Gramps wouldn't be too happy about it either.")
        </item>
        <item key="exchange no maj money">
          msg ("No maj money wouldn't be much use in your case, no one in Notting Alley as far as you know accepts them. Gramps wouldn't be too happy about it either.")
        </item>
      </tellto>
    </object>
  </object>
  <object name="Wiseacres Wizarding Equipment">
    <inherit name="editor_room" />
    <exit alias="north" to="West Side of Notting Square">
      <inherit name="northdirection" />
    </exit>
  </object>
  <object name="Gambol Japes Wizarding Joke Shop">
    <inherit name="editor_room" />
    <alias>Gambol and Japes Wizarding Joke Shop</alias>
    <exit alias="south" to="West Side of Notting Square">
      <inherit name="southdirection" />
    </exit>
  </object>
  <object name="South Side of Notting Square">
    <inherit name="editor_room" />
    <exit alias="south" to="Sugarplums Sweets Shop">
      <inherit name="southdirection" />
    </exit>
    <exit alias="west" to="Broomstix">
      <inherit name="westdirection" />
    </exit>
    <exit alias="east" to="Owl Post Office">
      <inherit name="eastdirection" />
    </exit>
    <exit alias="north" to="Notting Square">
      <inherit name="northdirection" />
    </exit>
  </object>
  <object name="Sugarplums Sweets Shop">
    <inherit name="editor_room" />
    <exit alias="north" to="South Side of Notting Square">
      <inherit name="northdirection" />
    </exit>
  </object>
  <object name="Broomstix">
    <inherit name="editor_room" />
    <description>A broomstore. There are various brooms on display on the shelves. There are toy brooms, family brooms, and brooms you're looking for: racing brooms. There are a few antique brooms being sold, but the majority are from modern companies.</description>
    <exit alias="east" to="South Side of Notting Square">
      <inherit name="eastdirection" />
    </exit>
    <object name="Broomstore Assistant">
      <inherit name="editor_object" />
      <look>A haughty looking young man walking around the shop with his hands clasped behind his back. </look>
      <alias>Shop Assistant </alias>
      <speak>He arches his eyebrows and sniffs. "Can I help you with something?"</speak>
      <ask type="scriptdictionary">
        <item key="Silver Arrow">
          msg ("\"A Silver Arrow. Made by broomaker, Leonard Jewkes. An antique, and one of the first racing brooms ever. Nevertheless, still as good and perhaps even better than modern day brooms. This one is not fit for racing though, it's nearly eighty years old!\"")
        </item>
        <item key="Cleansweep 14">
          msg ("\"The new Cleansweep. I except you would know this one? It's features include an anti-jinx varnish and a built-in vibration control feature. Amazing acceleration, from zero to seventy miles per hour in just ten seconds.\"")
        </item>
        <item key="Starsweeper XXI">
          msg ("\"Oh yes, our national Quidditch team played in the World Cup using these, and no doubt, unquestionably a fine broom. The Nimbus series is more popular in Britain but most people consider the Starsweepers to be our national broom.\"")
        </item>
        <item key="Thunderbolt VII">
          msg ("\"Hmpf! I personally feel that the broomakers sacrificed safety for speed with this broom! Nigerian Seeker narrowly escaped injury at the World Cup when a bludger smashed his broom's tail off, forfeiting the Cup in the process. Every racing broom should be able to take hits from bludgers!\"")
        </item>
        <item key="Firebolt Supreme">
          msg ("\"Ahh, the new Firebolt model. The Bulgarians played on these brooms at the world-cup. Marvelous acceleration and stability. Goblin-made iron, you know.\" He shakes his head. \"The scandal is a shame though, Firebolt Supreme sales have dropped immensely.\"")
        </item>
        <item key="scandal">
        </item>
      </ask>
    </object>
    <object name="Silver Arrow">
      <inherit name="editor_object" />
      <take type="boolean">false</take>
      <buy>You need a racing broom....the tag says this is an antique, nearly 80 years old. Used for decoration? Fine. Used for racing? Not so much.</buy>
      <look>200</look>
    </object>
    <object name="Cleansweep 14">
      <inherit name="editor_object" />
      <look>180</look>
    </object>
    <object name="Starsweeper XXI">
      <inherit name="editor_object" />
      <look><![CDATA[200<br/>]]></look>
    </object>
    <object name="Thunderbolt VII">
      <inherit name="editor_object" />
      <look>187</look>
    </object>
    <object name="Firebolt Supreme">
      <inherit name="editor_object" />
      <look>200</look>
    </object>
  </object>
  <object name="Owl Post Office">
    <inherit name="editor_room" />
    <exit alias="south" to="South Side of Notting Square">
      <inherit name="southdirection" />
    </exit>
  </object>
  <object name="East Side of Notting Square">
    <inherit name="editor_room" />
    <exit alias="south" to="Magical Menagerie">
      <inherit name="southdirection" />
    </exit>
    <exit alias="north" to="Whizz Hard Books">
      <inherit name="northdirection" />
    </exit>
    <exit alias="north" to="The Junk Shop">
      <inherit name="northdirection" />
    </exit>
  </object>
  <object name="Magical Menagerie">
    <inherit name="editor_room" />
    <exit alias="north" to="East Side of Notting Square">
      <inherit name="northdirection" />
    </exit>
  </object>
  <object name="Whizz Hard Books">
    <inherit name="editor_room" />
    <exit alias="east" to="East Side of Notting Square">
      <inherit name="eastdirection" />
    </exit>
    <exit alias="west" to="Periodicals">
      <inherit name="westdirection" />
    </exit>
    <exit alias="south" to="Textbooks">
      <inherit name="southdirection" />
    </exit>
    <exit alias="north" to="Whizz Hard Books Main">
      <inherit name="northdirection" />
    </exit>
  </object>
  <object name="The Junk Shop">
    <inherit name="editor_room" />
    <exit alias="south" to="East Side of Notting Square">
      <inherit name="southdirection" />
    </exit>
  </object>
  <object name="Gladrags Wizardwear">
    <inherit name="editor_room" />
    <alias>Gladrag's Wizardwear</alias>
    <exit alias="south" to="North Side of Notting Square">
      <inherit name="southdirection" />
    </exit>
    <object name="Gladrag">
      <inherit name="editor_object" />
    </object>
  </object>
  <object name="Northwest Side of Notting Square">
    <inherit name="editor_room" />
    <exit alias="east" to="Mulligrubs Materia Medica">
      <inherit name="eastdirection" />
    </exit>
    <exit alias="north" to="House Elf Placement Agency">
      <inherit name="northdirection" />
    </exit>
    <exit alias="south" to="Weeoanwhiskers Barber Shop">
      <inherit name="southdirection" />
    </exit>
    <exit alias="southeast" to="Notting Square">
      <inherit name="southeastdirection" />
    </exit>
  </object>
  <object name="Northeast Side of Notting Square">
    <inherit name="editor_room" />
    <exit alias="north" to="The Hopping Pot">
      <inherit name="northdirection" />
    </exit>
    <exit alias="south" to="McHavelocks Wizarding Headgear">
      <inherit name="southdirection" />
    </exit>
    <exit alias="east" to="Cocklebell Clockmakers">
      <inherit name="eastdirection" />
    </exit>
    <exit alias="southwest" to="Notting Square">
      <inherit name="southwestdirection" />
    </exit>
  </object>
  <object name="Southwest Side of Notting Square">
    <inherit name="editor_room" />
    <exit alias="north" to="Nolties Botanical Novelties">
      <inherit name="northdirection" />
    </exit>
    <exit alias="west" to="Madam Primpernelles Beautifying Potions">
      <inherit name="westdirection" />
    </exit>
    <exit alias="east" to="Markus Scarrs Indelible Tattoos">
      <inherit name="eastdirection" />
    </exit>
    <exit alias="northeast" to="Notting Square">
      <inherit name="northeastdirection" />
    </exit>
  </object>
  <object name="Southeast Side of Notting Square">
    <inherit name="editor_room" />
    <exit alias="west" to="Briggs Broomcare">
      <inherit name="westdirection" />
    </exit>
    <exit alias="south" to="Dr Filibusters Fireworks">
      <inherit name="southdirection" />
    </exit>
    <exit alias="east" to="Flimflams Lanterns">
      <inherit name="eastdirection" />
    </exit>
    <exit alias="northwest" to="Notting Square">
      <inherit name="northwestdirection" />
    </exit>
  </object>
  <object name="Briggs Broomcare">
    <inherit name="editor_room" />
    <exit alias="east" to="Southeast Side of Notting Square">
      <inherit name="eastdirection" />
    </exit>
  </object>
  <object name="Nolties Botanical Novelties">
    <inherit name="editor_room" />
    <exit alias="south" to="Southwest Side of Notting Square">
      <inherit name="southdirection" />
    </exit>
  </object>
  <object name="The Hopping Pot">
    <inherit name="editor_room" />
    <exit alias="south" to="Northeast Side of Notting Square">
      <inherit name="southdirection" />
    </exit>
  </object>
  <object name="Mulligrubs Materia Medica">
    <inherit name="editor_room" />
    <exit alias="west" to="Northwest Side of Notting Square">
      <inherit name="westdirection" />
    </exit>
  </object>
  <object name="House Elf Placement Agency">
    <inherit name="editor_room" />
    <exit alias="south" to="Northwest Side of Notting Square">
      <inherit name="southdirection" />
    </exit>
  </object>
  <object name="Dr Filibusters Fireworks">
    <inherit name="editor_room" />
    <exit alias="north" to="Southeast Side of Notting Square">
      <inherit name="northdirection" />
    </exit>
  </object>
  <object name="Madam Primpernelles Beautifying Potions">
    <inherit name="editor_room" />
    <exit alias="east" to="Southwest Side of Notting Square">
      <inherit name="eastdirection" />
    </exit>
  </object>
  <object name="Markus Scarrs Indelible Tattoos">
    <inherit name="editor_room" />
    <exit alias="west" to="Southwest Side of Notting Square">
      <inherit name="westdirection" />
    </exit>
  </object>
  <object name="McHavelocks Wizarding Headgear">
    <inherit name="editor_room" />
    <exit alias="north" to="Northeast Side of Notting Square">
      <inherit name="northdirection" />
    </exit>
  </object>
  <object name="Weeoanwhiskers Barber Shop">
    <inherit name="editor_room" />
    <exit alias="north" to="Northwest Side of Notting Square">
      <inherit name="northdirection" />
    </exit>
  </object>
  <object name="Flimflams Lanterns">
    <inherit name="editor_room" />
    <exit alias="west" to="Southeast Side of Notting Square">
      <inherit name="westdirection" />
    </exit>
  </object>
  <object name="Cocklebell Clockmakers">
    <inherit name="editor_room" />
    <exit alias="west" to="Northeast Side of Notting Square">
      <inherit name="westdirection" />
    </exit>
  </object>
  <object name="Kitchen">
    <inherit name="editor_room" />
    <object name="Gram">
      <inherit name="editor_object" />
      <inherit name="female" />
      <look>Despite her white hair, Gram is a formidable woman. Well, Gram is formidable only in an argument. Mostly she's very serene and calm. She stands straight, and smells distinctly of cinnamon. She is wearing navy blue robes and an amethyst brooch is pinned to the front. </look>
      <speak>Gram looks at you expectantly. "Hmm?"</speak>
      <hug>She laughs and hugs you back. Her clothes are so soft! You pull away, and the cinnamon-y smell lingers on you.</hug>
      <tell type="scriptdictionary">
        <item key="Letter"><![CDATA[
          msg ("\"Gram! Look what I got in the mail!\" You wave the letter excitedly and give it to her.<br/>Gram puts down her rolling pin and tucks a stray strand of hair behind her ear. \"What, dear?\" She opens the letter.<br/>\"Oh my!\" She looks up. \"Well, about time! I was expecting this to happen!\" She goes over and gives you a hug. \"You're going to love it there, your mother certainly did! Dear, we must get you some supplies!\" <br/>She lets go of you and calls up the stairs. \"Frank! Wake up! {player.alias} has got her acceptance letter!\" She turns to you. \"Go wake him up, won't you?\"")
          SwitchOn (Gramps wake flag)
        ]]></item>
        <item key="Ilvermorny"><![CDATA[
          msg ("\"Gram! Look what I got in the mail!\" You wave the letter excitedly and give it to her.<br/>Gram puts down her rolling pin and tucks a stray strand of hair behind her ear. \"What, dear?\" She opens the letter.<br/>\"Oh my!\" She looks up. \"Well, about time! I was expecting this to happen!\" She goes over and gives you a hug. \"You're going to love it there, your mother certainly did! Dear, we must get you some supplies!\" <br/>She lets go of you and calls up the stairs. \"Frank! Wake up! {player.alias} has got her acceptance letter!\" She turns to you. \"Go wake him up, won't you?\"")
          SwitchOn (Gramps wake flag)
        ]]></item>
      </tell>
      <ask type="scriptdictionary">
        <item key="floo powder">
          msg ("She looks at you a bit strangely. \"It's on the mantle, dear. Always has been.\"")
        </item>
      </ask>
    </object>
    <exit alias="west" to="Dining Room">
      <inherit name="westdirection" />
    </exit>
    <exit alias="east" to="Hallway">
      <inherit name="eastdirection" />
    </exit>
  </object>
  <object name="Cloakroom">
    <inherit name="editor_room" />
    <exit alias="out" to="Hallway">
      <inherit name="outdirection" />
    </exit>
  </object>
  <object name="Dining Room">
    <inherit name="editor_room" />
    <exit alias="west" to="Hallway">
      <inherit name="westdirection" />
    </exit>
    <object name="Fireplace">
      <inherit name="editor_object" />
      <look type="script">
        MoveObject (Jar of Floo Powder, Dining Room)
      </look>
    </object>
    <exit alias="east" to="Kitchen">
      <inherit name="eastdirection" />
    </exit>
  </object>
  <object name="Hallway">
    <inherit name="editor_room" />
    <exit alias="east" to="Dining Room">
      <inherit name="eastdirection" />
    </exit>
    <exit alias="up" to="Upstairs Landing">
      <inherit name="updirection" />
    </exit>
    <exit alias="west" to="Kitchen">
      <inherit name="westdirection" />
    </exit>
    <exit alias="in" to="Cloakroom">
      <inherit name="indirection" />
    </exit>
  </object>
  <object name="Gringotts Tunnel">
    <inherit name="editor_room" />
    <firstenter type="script">
      msg ("Nagrok stops here, taking a lantern and hooking it on the cart. He gestures for you to get into the cart.")
    </firstenter>
    <object name="Gringotts Cart">
      <inherit name="editor_object" />
      <displayverbs type="stringlist">
        <value>Look at</value>
      </displayverbs>
      <getin type="script"><![CDATA[
        firsttime {
          msg ("You climb into the cart with Gramps, a bit squashed. The cart immediately jerks forward, seeming to drive itself. The wheels clack underneath you, and water drops from icicles above. It's awfully cold here. <br/>You hear Gramps laugh over the rushing of cold air. \"I always love riding Gringotts carts! Isn't this fun, lassie?\"")
          SetTimeout (2) {
            msg ("You hurdle past a frozen underground lake!")
          }
          SetTimeout (2) {
            msg ("The cart swerves and turns a corner, and you catch a glimpse of a roaring waterfall!")
          }
          SetTimeout (2) {
            msg ("The cart jerks to the left, throwing you to the side!")
          }
          SetTimeout (2) {
            msg ("You speed through a huge underground cavern, crystals sparkling from the walls!")
          }
          SetTimeout (2) {
            msg ("Finally, the cart lurches to a stop, in front of a door marked \"762\". Nagrok climbs out and inserts the key into the door. Green smoke billows out, when it clears you see a room filled with piles upon piles of dragots!")
            MoveObject (player, Vault 762)
            MoveObject (Gramps, Vault 762)
            MoveObject (Gringotts Cart, Vault 762)
          }
        }
        otherwise {
          msg ("You open the door and climb back into the cart. Like before, the cart immediately whooshs into motion.")
          SetTimeout (3) {
            msg ("Finally, the cart stops at where you were at the beginning. You and Gramps hop out, and Nagrok ushers you back into the Gringotts main hall. You both stroll out of the double doors, back into Notting Square.<br/>")
            MoveObject (Gramps, Notting Square)
            MoveObject (player, Notting Square)
            UnlockExit (Gringotts to Notting Square)
            msg ("Suddenly Gramps stops in front of the pub, The Fountain of Fair Fortune. Craning his neck excitedly, he says \"Isn't that old Icarus Piquery?\" He looks at you. \"Do you mind shopping on your own, I want to do some catching up.\"<br/><br/>Perfect! You've never been allowed to shop alone!<br/><br/>Gramps continues on, reaching over and giving you some dragots. \"Here, that should be enough. Don't go too far though, stay where I can see you!\"<br/>")
            wait {
              player.dragots = 700
            }
          }
        }
      ]]></getin>
    </object>
  </object>
  <verb>
    <property>getin</property>
    <pattern>get in</pattern>
    <defaultexpression>"You can't get in " + object.article + "."</defaultexpression>
  </verb>
  <object name="Vault 762">
    <inherit name="editor_room" />
    <object name="Dragots">
      <inherit name="editor_object" />
      <look>A gleaming pile of gold coins.</look>
      <take type="script"><![CDATA[
        MoveObject (Dragots, Vault 762)
        msg ("You take a Dragot and stuff into into your pocket.<br/>Gramps puts some Dragots into a bag. \"A'right, I got what we need. Let's go get your supplies now.\" He climbs back into the cart.")
      ]]></take>
    </object>
  </object>
  <object name="Periodicals">
    <inherit name="editor_room" />
    <alias type="string"></alias>
    <exit alias="east" to="Whizz Hard Books">
      <inherit name="eastdirection" />
    </exit>
    <object name="The American Charmer">
      <inherit name="editor_object" />
    </object>
    <object name="U Hex A">
      <inherit name="editor_object" />
    </object>
    <object name="Transfiguration Today">
      <inherit name="editor_object" />
    </object>
    <object name="The New York Ghost">
      <inherit name="editor_object" />
    </object>
    <object name="The Practical Potioneer">
      <inherit name="editor_object" />
    </object>
    <object name="Challenges Charming">
      <inherit name="editor_object" />
      <alias>Challenges in Charming</alias>
    </object>
  </object>
  <object name="Whizz Hard Books Main">
    <inherit name="editor_room" />
    <alias type="string"></alias>
    <exit alias="south" to="Whizz Hard Books">
      <inherit name="southdirection" />
    </exit>
    <object name="Loony Nonby Cornish Pixies">
      <inherit name="editor_object" />
    </object>
    <object name="Enchanted Encounters">
      <inherit name="editor_object" />
      <look>A pink and glittery book with "Enchanted Encounters" written in cursive on the front. The cover stars a picture of two people kissing with the sunset in the background. The price tag reads "3 dragots".</look>
      <read type="script">
        if (IsSwitchedOn(Enchanted encounters bought flag)) {
          msg ("")
        }
      </read>
    </object>
    <object name="The Tales of Beedle the Bard">
      <inherit name="editor_object" />
    </object>
    <object name="Common Magical Ailments Afflictions">
      <inherit name="editor_object" />
      <alias>Common Magical Ailments and Afflictions</alias>
      <look>A thick book, presumably full of magical diseases and whatnot. The symbol for healing, a wand crossed with a bone, is on the cover. The price tag reads "5 dragots".</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix> </prefix>
      <buy type="string"></buy>
      <read type="script"><![CDATA[
        if (IsSwitchedOn(Common magical ailments bought flag)) {
          msg ("You flip it open to and start to read.<br/><br/>{random:<i><br/>Dragon Pox<br/><br/>The first cases of Dragon Pox occurred in wizards who were working closely with dragons, specifically the Peruvian Viper. This malady is highly contagious, and sometimes fatal for elderly wizards (though deaths from the disease are rare). However, the symptoms upon catching the disease are obvious, making Dragon Pox easier to diagnose and cure. Common symptoms include  a greenish tinge to the skin, sparks emitting from the nostrils when sneezing, and rashes all over the body. Patients afflicted with Dragon Pox will heal on their own, though it is highly recommended that they seek out the nearest hospital to receive the Dragon Pox cure. Although the cure (developed by the one-eyed healer commonly known as Gunhilda of Gorsemoor) was widely contributed to eliminating the disease, Dragon Pox has not yet been eradicated. More attention has been raised about curing this ailment, mostly by Moldovan Quidditch Team supports, after Dragon Pox prevented them from playing in the 2014 World Cup.</i>:<br/><i> Mumblemumps<br/>}<br/><br/><b>Try rereading this book.</b>")
        }
        else if (not IsSwitchedOn(Common magical ailments bought flag)) {
          msg ("You flip it open and start to read.<br/><br/><i><br/>The first cases of Dragon Pox occurred in wizards who were working closely with dragons, specifically the Peruvian Viper. This malady is highly contagious, and sometimes fatal for elderly wizards (though deaths from the disease are rare). However, the symptoms upon catching the disease are obvious, making Dragon Pox easier to diagnose and cure. Common symptoms include  a greenish tinge to the skin, sparks emitting from the nostrils when sneezing, and rashes all over the body. Patients afflicted with Dragon Pox will heal on their own, though it is highly recommended that they seek out the nearest hospital to receive the Dragon Pox cure.</i><br/><br/><b>Buying this book would allow you to read more</b>")
        }
      ]]></read>
    </object>
  </object>
  <object name="Textbooks">
    <inherit name="editor_room" />
    <alias>Textbooks</alias>
    <exit alias="north" to="Whizz Hard Books">
      <inherit name="northdirection" />
    </exit>
    <object name="Chadwicks Charms">
      <inherit name="editor_object" />
    </object>
    <object name="A Beginners Guide to Transfiguration">
      <inherit name="editor_object" />
    </object>
    <object name="The Dark Arts Outsmarted">
      <inherit name="editor_object" />
    </object>
    <object name="A History of Magic">
      <inherit name="editor_object" />
    </object>
  </object>
  <object name="Goshawks Guide to Herbology">
    <inherit name="editor_object" />
    <alias>Goshawk's Guide to Herbology</alias>
  </object>
</asl>

Just so you know, the objects with "flag" at the end of their names are there just so the game runs smoothly, since I don't know how to use real flags XD. Like for example if I want the player to speak to a character but only after they've read a letter, I turn on the "flag" object, and then set an "if object is turned on" block.
Btw, I mostly just made locations and stuff and a lot of it isn't finished, the story doesn't make any sense right now XD.

THANK YOU SO MUCH!!!!


The status attributes panel automatically adds "player." to the beginning of attribute names when looking them up. So as you have it now, it will be looking for an attribute called "player.player.housepoints" which doesn't exist. (EDIT: Not 100% sure, but it might actually be looking for an attribute called "player.player__DOT__housepoints" because an attribute name isn't allowed to contain a dot. Either way, this doesn't really help you)

   <povstatusattributes type="stringdictionary">
      <item>
        <key>player.housepoints</key>
        <value>Housepoints:!</value>
      </item>
      <item>
        <key>player.dragots</key>
        <value>Dragots:!</value>
      </item>
    </povstatusattributes>

You need to have the key as just "housepoints" in this bit (which you edit on the 'Player' tab of the 'game' object).


I'm not familiar with the 'povstatusattributes' (might be something added with pixie's newer versions of quest... or it's always been there and I never knew of it, lol), but this is what it should look like (as explained by 'mrangel'):

<object name="player">

  <attr name="housepoints" type="int">0</attr>

  <attr name="dragots" type="int">0</attr>

   <statusattributes type="stringdictionary">

      <item>
        <key>housepoints</key>
        <value>Housepoints: !</value>
      </item>

      <item>
        <key>dragots</key>
        <value>Dragots: !</value>
      </item>

    </statusattributes>

</object>

or... using this 'povstatusattributes':

<object name="player">

  <attr name="housepoints" type="int">0</attr>

  <attr name="dragots" type="int">0</attr>

   <povstatusattributes type="stringdictionary">

      <item>
        <key>housepoints</key>
        <value>Housepoints: !</value>
      </item>

      <item>
        <key>dragots</key>
        <value>Dragots: !</value>
      </item>

    </povstatusattributes>

</object>

about Boolean Attributes (true/false):

I don't really like them being called as 'flags', as technically every/any Attribute is a 'flag/indicator', but the use of 'flags' goes to low level programming ('status/error/etc flags', though they're actually '0s' and '1s' integers, not Booleans: true/false, as Booleans/Strings/etc are higher level programming), but anyways... I'm digressing...

Booleans are quite simple... here's an example:

if (animal.is_lion_boolean_attribute = true) { // if (TRUE)
  msg ("OH SH!T!!!!!!!!! You hope you're faster than your buddy! Hey, it's you or him, being snack for the hungry lion!")
}
else if (animal.is_lion_boolean_attribute = false) { // if (FALSE)
  msg ("You enjoy watching the harmless and cute animal")
}

now, in quest, there's shortened (understood by quest) syntax for '=true', and also Booleans are dualistic (true:this thing or false: not this thing), so you can just do this:

if (animal.is_lion_boolean_attribute) { // if (TRUE)
  msg ("OH SH!T!!!!!!!!! You hope you're faster than your buddy! Hey, it's you or him, being snack for the hungry lion!")
}
else { // if (FALSE)
  msg ("You enjoy watching the harmless and cute animal")
}

and, you can of course do the complement (opposite: negation: not) too:

if (not animal.is_lion_boolean_attribute) { // if (FALSE)
  msg ("You enjoy watching the harmless and cute animal")
}
else { // if (TRUE)
  msg ("OH SH!T!!!!!!!!! You hope you're faster than your buddy! Hey, it's you or him, being snack for the hungry lion!")
}

some more examples...

Status Effects examples:

player.poisoned = false
player.poisoned = false
player.asleep = false
player.paralyzed = false
player.petrified = false
player.confused = false
player.silenced = false
player.cursed = false
player.blinded = false

<game name="example_game">
  <attr name="start" type="script">
    player.poisoned = true
    msg ("You've been poisoned!")
  </attr>
</game>

<object name="player">

  <attr name="life" type="int">999</attr>

  <attr name="poisoned" type="boolean">false</attr>
  <attr name="asleep" type="boolean">false</attr>
  <attr name="paralyzed" type="boolean">false</attr>
  <attr name="petrified" type="boolean">false</attr>
  <attr name="confused" type="boolean">false</attr>
  <attr name="silenced" type="boolean">false</attr>
  <attr name="cursed" type="boolean">false</attr>
  <attr name="blinded" type="boolean">false</attr>

</object>

<turnscript name="example_turnscript">
  <enabled /> <!-- this is actually an even shorter syntax for '=true' Booleans: <attr name="enabled" type="boolean">true</attr>
  <script>

    <![CDATA[

      if (player.life < 1) {
        msg ("You died or were killed")
        msg ("GAME OVER")
        finish
      }
      else if (player.poisoned) {
        player.life = player.life - 50
      }

    ]]>

  </script>

</turnscript>

and a few more common (or somewhat common) Boolean examples:

orc.dead = false
player.flying = false
player.sneaking = false
// etc etc etc my brain's not working right now.. lol


MrAngel and HK are correct.

This is the solution:

You have player.housepoints and player.dragots as your dictionary keys.

image


Remove the "player." from the beginning of each, leaving you with housepoints and dragots.

(I think you will have to delete both dictionary items and add the two replacements because you can't edit the key from the GUI.)

image


image


I'm not familiar with the 'povstatusattributes' (might be something added with pixie's newer versions of quest... or it's always been there and I never knew of it, lol), but this is what it should look like (as explained by 'mrangel'):

Actually, that's wrong. In HK's example, he creates an attribute player.povstatusattributes, which won't work.

statusattributes is an attribute of the player object, so any attributes added to it must be added to each playable character, or calling ChangePOV would make them go away. This can be useful sometimes; for example if you want Magic Points to only appear in the status panel when you are using a mage character, or similar situations. In the GUI, these attributes can be added on the "Attributes" tab of any object that has the 'can be a player' feature.

povstatusattributes is an attribute of the game object, so any attributes that are included here will appear whichever object is currently the player. In the GUI, you can add attributes to this dictionary on the "Player" tab of the game object.

There's also a game.statusattributes dictionary, for attributes of the game object, but that's not really relevant.

When displaying the status panel, the game treats game.pov.statusattributes and game.povstatusattributes the same way. I used povstatusattributes because that's the one the OP was using, but both have their benefits.


@K.V, where did you find the "attributes" tab? I'm working on the online version and I don't have it. I've deleted the old attributes and replaced them with ones that don't have "player." in front of them, but it still doesn't work. Btw, where is the string dictionary? Sorry Im clueless lol XD


Oh, you're online!

I'm sorry. You have no attributes tab. (If you have Windows, I strongly recommend installing the desktop version of Quest.)


Wait... How did you set them in the first place?

They are in the code you posted:

    <povstatusattributes type="stringdictionary">
      <item>
        <key>player.housepoints</key>
        <value>Housepoints:!</value>
      </item>
      <item>
        <key>player.dragots</key>
        <value>Dragots:!</value>
      </item>
    </povstatusattributes>

That should be:

    <povstatusattributes type="stringdictionary">
      <item>
        <key>housepoints</key>
        <value>Housepoints:!</value>
      </item>
      <item>
        <key>dragots</key>
        <value>Dragots:!</value>
      </item>
    </povstatusattributes>

Ok I'm trying to get Parallels Desktops for my mac so I can use the offline editor :D


...but how did you get that in your code in the first place if you're using the web editor?

If you got it there, you can change it. (I'm fooling around with the web editor right now.)


I bet you have this:
image


Change that to this:
image


@KV

Wait... How did you set them in the first place?

game.povstatusattributes is a core attribute that has a control in the GUI. It's on the 'Player' tab.

@archerqueen08

I've deleted the old attributes and replaced them with ones that don't have "player." in front of them, but it still doesn't work.

I can't see where the problem is. But maybe we can use breadcrumbs to learn more.
I assume that you are opening the closet, and your house points should appear. Could you modify the onopen script and add the line: msg("You now have {player.housepoints} house points"), after setting the value.
That way, there are 3 things that could happen:

  1. The message doesn't appear (this would mean the onopen script isn't running for some reason)
  2. It displays the right number of housepoints (this means that something is wrong with the status panel)
  3. It gives an error (this would mean it isn't setting the attribute)

NOTE:

In my screenshots, I put "Dragots: 1" when it should be "Dragots: !". (Just for the record.)


When I removed "player." from those keys names, it showed the correct value in the pane. (That's not to say there wasn't another error I didn't come across.)

http://textadventures.co.uk/forum/quest/topic/mk6mzdqtjeepxngeb-kghq/problems-with-status-attributes-again#5c7162e4-60d1-47f7-8352-54b09587a452


@mrangel
Yes, the message does appear, but instead of 10 housepoints, it just says you now have housepoints. That means the set variable command didn't work?


@mrangel
Yes, the message does appear, but instead of 10 housepoints, it just says you now have housepoints. That means the set variable command didn't work?


player.housepoints = 10
msg ("You now have "+player.housepoints +" housepoints!")

or

player.housepoints = 10
msg ("You now have {player.housepoints} housepoints!")

image


Whoops. Sorry, you were addressing MrAngel. (I get a little excited sometimes.)


@ K.V Its ok XD. But why does it work on yours but not on mine? I'm installing parallel desktops so I can use the offline version to edit (at least until my free trial runs out). I'll go look at the attributes tab.


Wait, you have the desktop version now?

First, create a new game. Call it "forum version" (or something).

Then, switch to full code view, delete EVERYTHING, leaving a blank slate, and copy this in:

<!--Saved by Quest 5.7.6404.15496-->
<asl version="550">
  <include ref="English.aslx" />
  <include ref="Core.aslx" />
  <game name="Ilvermorny School of Wizardry and Witchcraft">
    <gameid>75e5bcdd-f845-485d-a1f8-74d912c40e95</gameid>
    <version>1.0</version>
    <firstpublished>2018</firstpublished>
    <category>Fantasy</category>
    <showmoney type="boolean">false</showmoney>
    <menufont>'Times New Roman', Times, serif</menufont>
    <showhealth />
    <feature_lightdark />
    <showpanes />
    <gridmap />
    <mapexitcolour>AliceBlue</mapexitcolour>
    <description><![CDATA[You are a young American witch who has just reached her 11th birthday! Of course, that means you get to go to Ilvermorny, the American school of magic! However, rumors of dark magic are spreading like wildfire, and trouble is coming to Ilvermorny!<br/><br/>Ilvermorny is actually a place in the Harry Potter world (you should know if you've read Pottermore or have watched Fantastic Beasts). If you want to find out more, use this link: https://www.pottermore.com/writing-by-jk-rowling/ilvermorny<br/><br/>Note: Most of the places and people mentioned are real, J.K Rowling confirmed, but some are made up. I tried to use the info from JKR but if I couldn't find it I made it up myself. I apologize for any mistakes I made.<br/><br/>This is set in America, after the war with Voldemort, when Harry is an adult.<br/><br/>WORK IN PROGRESS]]></description>
    <feature_asktell />
    <showscore type="boolean">false</showscore>
    <povstatusattributes type="stringdictionary">
      <item>
        <key>dragots</key>
        <value>Dragots: !</value>
      </item>
      <item>
        <key>housepoints</key>
        <value>Housepoints: !</value>
      </item>
    </povstatusattributes>
    <defaultwebfont>Cormorant Garamond</defaultwebfont>
    <customwidth type="int">800</customwidth>
    <custompaddingtop type="int">50</custompaddingtop>
    <custompaddingleft type="int">15</custompaddingleft>
    <custompaddingright type="int">15</custompaddingright>
    <defaultfont>'Times New Roman', Times, serif</defaultfont>
    <showlocation type="boolean">false</showlocation>
    <classiclocation type="boolean">false</classiclocation>
    <showborder type="boolean">false</showborder>
    <setcustomwidth />
    <setcustompadding />
    <menufontsize type="int">8</menufontsize>
    <mapscale type="int">20</mapscale>
    <mapsize type="int">200</mapsize>
    <defaultfontsize type="int">13</defaultfontsize>
    <defaultbackground>BlanchedAlmond</defaultbackground>
    <menuhoverbackground>IndianRed </menuhoverbackground>
    <menuhoverforeground>Azure</menuhoverforeground>
    <commandpane type="boolean">false</commandpane>
    <customstatuspane type="boolean">false</customstatuspane>
    <moneyformat>!</moneyformat>
    <pov type="object">player</pov>
    <start type="script"><![CDATA[
      msg ("You wake up in your room, disrupted by a noisy pecking at the window. Who? What? Where? Huh?<br/><br/>What is your name, young witch?")
      get input {
        player.alias = result
        msg ("Oh right. You do get a bit muddled in the mornings. You really need to work on that, "  +player.alias)
      }
    ]]></start>
  </game>
  <object name="Bedroom">
    <inherit name="editor_room" />
    <description>Your own cozy little bedroom. There's a desk by the window, on it are several quills, a calendar, and a Streeler provides light. A flitterbloom sways in its pot on your dresser. A closet is to your left, and by the wall is your bed. Various trinkets are scattered all over the room.</description>
    <dark type="boolean">false</dark>
    <darkroomdescription type="string"></darkroomdescription>
    <enter type="script">
    </enter>
    <firstenter type="script">
      msg ("As you sit up, you see the source of the distressing noise. A large barn owl is sitting on the windowsill, a letter tied to it's leg. Who could be sending you a letter?")
      MoveObject (Owl, Bedroom)
    </firstenter>
    <object name="player">
      <inherit name="editor_object" />
      <inherit name="editor_player" />
    </object>
    <object name="Streeler">
      <inherit name="editor_object" />
      <look>A Streeler. Streelers are giant snails that change color regularly. Like one of those No-Maj lava lamps. Gram bought it for you for your 6th birthday, you keep it in a small wooden container on your desk.</look>
      <pet type="string"></pet>
    </object>
    <object name="Flitterbloom">
      <inherit name="editor_object" />
      <look>A harmless plant with long tentacles. Its on a pot by your bed. It's not doing so well frankly,  you don't exactly have a green thumb. </look>
      <attr name="feature_lightdark" type="boolean">false</attr>
      <lightsource />
      <lightstrength>strong</lightstrength>
      <water type="scriptdictionary" />
    </object>
    <object name="Bed">
      <inherit name="editor_object" />
      <look>A wooden bed with pillows and a comforter. It's slightly rumpled.</look>
      <sleepin>Now's not the time to sleep! Lots of things to do!</sleepin>
    </object>
    <object name="Closet">
      <inherit name="editor_object" />
      <inherit name="container_open" />
      <look>A large closet filled with your clothes. It has iron handles and carved claw feet.</look>
      <attr name="feature_usegive" type="boolean">false</attr>
      <feature_container />
      <isopen type="boolean">false</isopen>
      <listchildren />
      <onopen type="script">
        player.housepoints = 10
        msg ("You now have "+player.housepoints +" housepoints!")
      </onopen>
      <object name="Dress Robes">
        <inherit name="editor_object" />
        <feature_usegive />
        <look>A pair of green dress robes. It has lots of fancy brass buttons and silver trim on the front and stretches down to your toes. </look>
        <take />
        <use type="script">
          msg ("Eh, they're really frilly and uncomfortable. You decide to save them for a formal occasion.")
        </use>
      </object>
      <object name="Trunk">
        <inherit name="editor_object" />
        <look>A large leather trunk, with straps running down the sides. Your name is printed on the side.</look>
      </object>
    </object>
    <exit name="Your Bedroom to Landing" alias="west" to="Upstairs Landing">
      <inherit name="westdirection" />
      <locked />
      <scenery type="boolean">false</scenery>
      <lockmessage>That owl looks like it won't wait much longer! You'd better get the letter first before going anywhere!</lockmessage>
    </exit>
  </object>
  <object name="Notting Square">
    <inherit name="editor_room" />
    <description>Notting Square, the hub of wizarding activity in New York! The streets bustle with robed figures, rushing to and fro. There are pubs, parlors, shops, and more! Some buildings look quite old, and others are newly built. Along the streets are also many stalls and peddlers, each hawking their wares. There is also a well known old pub here called The Fountain of Fair Fortune.</description>
    <exit alias="north" to="North Side of Notting Square">
      <inherit name="northdirection" />
    </exit>
    <exit alias="in" to="The Fountain of Fair Fortune">
      <inherit name="indirection" />
    </exit>
    <exit alias="east" to="East Side of Notting Square">
      <inherit name="eastdirection" />
      <locked type="boolean">false</locked>
      <lockmessage>Gramps told you to stay where he could see you!</lockmessage>
    </exit>
    <exit alias="west" to="West Side of Notting Square">
      <inherit name="westdirection" />
      <locked type="boolean">false</locked>
      <lockmessage>Gramps told you to stay where he could see you!</lockmessage>
    </exit>
    <exit alias="south" to="South Side of Notting Square">
      <inherit name="southdirection" />
      <locked type="boolean">false</locked>
      <lockmessage>Gramps told you to stay where he could see you!</lockmessage>
    </exit>
    <exit alias="southeast" to="Southeast Side of Notting Square">
      <inherit name="southeastdirection" />
      <locked />
      <lockmessage>Gramps told you to stay where he could see you!</lockmessage>
    </exit>
    <exit alias="northeast" to="Northeast Side of Notting Square">
      <inherit name="northeastdirection" />
      <locked />
      <lockmessage>Gramps told you to stay where he could see you!</lockmessage>
    </exit>
    <exit alias="southwest" to="Southwest Side of Notting Square">
      <inherit name="southwestdirection" />
      <locked />
      <lockmessage>Gramps told you to stay where he could see you!</lockmessage>
    </exit>
    <exit alias="northwest" to="Northwest Side of Notting Square">
      <inherit name="northwestdirection" />
      <locked />
      <lockmessage>Gramps told you to stay where he could see you!</lockmessage>
    </exit>
  </object>
  <verb>
    <property>water</property>
    <pattern>water</pattern>
    <defaultexpression>"You can't water " + object.article + "."</defaultexpression>
  </verb>
  <verb>
    <property>pet</property>
    <pattern>pet</pattern>
    <defaultexpression>"You can't pet " + object.article + "."</defaultexpression>
  </verb>
  <verb>
    <property>sleepin</property>
    <pattern>sleep in</pattern>
    <defaultexpression>"You can't sleep in " + object.article + "."</defaultexpression>
  </verb>
  <object name="Upstairs Landing">
    <inherit name="editor_room" />
    <description>The second floor landing of your house. To the east is your bedroom, the north a bathroom, and west is Gram and Gramp's room. A spiral staircase connects the two floors.</description>
    <exit alias="east" to="Bedroom">
      <inherit name="eastdirection" />
    </exit>
    <exit alias="west" to="Master Bedroom">
      <inherit name="westdirection" />
    </exit>
    <exit alias="north" to="Bathroom">
      <inherit name="northdirection" />
    </exit>
    <exit alias="down" to="Hallway">
      <inherit name="downdirection" />
    </exit>
  </object>
  <object name="Master Bedroom">
    <inherit name="editor_room" />
    <description>This is Gram and Gramp's room. There is a distinct smell of cinnamon here, and its very neat. Theres a large bed in the middle, with a closet and dresser here too. Theres one of those No Maj 'alarm clocks' on the dresser, which annoys Gram to no end. A plush oriental carpet is on the floor. To the west is a bathroom.</description>
    <exit alias="east" to="Upstairs Landing">
      <inherit name="eastdirection" />
    </exit>
    <object name="Gramps">
      <inherit name="editor_object" />
      <inherit name="male" />
      <look type="script"><![CDATA[
        if (IsSwitchedOn(Gramps wake flag)) {
          msg ("Gramps is a slightly stooped, white haired old man. He is wearing brown robes with a hat (that probably became out of fashion fifty years ago). Gramps has a large mustache that you liked to pull on when you were little. He used to be a wandmaker back in the day.")
        }
        else if (not IsSwitchedOn(Gramps wake flag)) {
          msg ("Gramps is a slightly stooped, white haired old man. He is wearing brown robes with a hat (that probably became out of fashion fifty years ago). Gramps has a large mustache that you liked to pull on when you were little. He used to be a wandmaker back in the day.<br/><br/>Right now he's snoring away in his pajamas.")
        }
      ]]></look>
      <speak type="script"><![CDATA[
        if (IsSwitchedOn(Gramps wake flag)) {
          firsttime {
            msg ("Gramps groans and stirs. \"Ooof! Can't an old codger get some sleep around here?\" He yawns.<br/>He's awake! You should tell him about your acceptance letter!")
          }
          otherwise {
            msg ("Gramps patiently listens to your mindless chatter.")
          }
        }
        else if (not IsSwitchedOn(Gramps wake flag)) {
          msg ("You shouldn't wake him up, he always sleeps late on Sundays. Gram is up though, she's probably in the kitchen.")
        }
      ]]></speak>
      <tell type="scriptdictionary">
        <item key="letter">
          msg ("Gramps immediately leaps to his feet. \"Ilvermorny!\" He strokes his mustache. \"I never attended myself, no, it was Hogwarts for me! But your mother always loved it. What do you say, shall we head down to Notting Square and get your supplies? Why don't you head down and get the Floo powder first, I'll be there in a minute!\"")
        </item>
        <item key="Ilvermorny">
          msg ("Gramps immediately leaps to his feet. \"Ilvermorny!\" He strokes his mustache. \"I never attended myself, no, it was Hogwarts for me! But your mother always loved it. What do you say, shall we head down to Notting Square and get your supplies? Why don't you head down and get the Floo powder first, I'll be there in a minute!\"")
        </item>
        <item key="ready">
          msg ("\"Alright!\" He sprinkles the powder onto the fire, which immediately glows green. \"Gringotts!\" There's a great rush of heat as you step into the fire. Stepping out, you find yourself in a huge marble-tiled bank!")
          MoveObject (player, Gringotts)
          MoveObject (Gramps, Gringotts)
        </item>
      </tell>
      <ask type="scriptdictionary">
        <item key="floo powder">
          msg ("\"Don't tell me you've forgotten where the Floo powder is!\"")
        </item>
        <item key="wandmaking">
          msg ("")
        </item>
        <item key="Gringotts">
        </item>
      </ask>
    </object>
    <object name="Dresser">
      <inherit name="editor_object" />
      <inherit name="openable" />
      <alias>Dresser</alias>
      <look>A mahogany dresser with brass handles. A No Maj alarm clock is sitting on it. It's not any ordinary dresser though, Gramp enlarged the drawers so even an elephant could fit into it.</look>
      <feature_container />
      <openscript type="script">
        msg ("Eh, you better not. You don't want to snoop into their stuff. ")
      </openscript>
    </object>
    <object name="Alarm Clock">
      <inherit name="editor_object" />
      <look>An antique 'alarm clock'. Gramps got it as a souvenir, when he accidentally Apparated into a clock shop. The owner's memory was wiped of course.</look>
      <take type="script">
        msg ("You better not take it.")
      </take>
    </object>
  </object>
  <object name="Bathroom">
    <inherit name="editor_room" />
    <description>A large bathroom with a marble floor. A bathtub stands in the corner, and a mirror hangs above the sink. And of course, theres a toilet. Theres also a cupboard containing various toiletries and products.</description>
    <exit alias="south" to="Upstairs Landing">
      <inherit name="southdirection" />
    </exit>
    <object name="Toilet">
      <inherit name="editor_object" />
      <look>A white marble toilet. Is there really much to see?</look>
      <feature_usegive />
      <use type="script">
        msg ("You lift up the lid and relieve yourself!")
      </use>
    </object>
    <object name="Bathtub">
      <inherit name="editor_object" />
      <look>A white marble bathtub with brass clawed feet. </look>
      <feature_usegive />
      <use type="script">
        msg ("There's no time to take a bath now!")
      </use>
    </object>
    <object name="Cupboard">
      <inherit name="editor_object" />
      <inherit name="container_open" />
      <feature_container />
      <isopen type="boolean">false</isopen>
      <listchildren />
      <look>A wooden cupboard filled with medicine and cleaning products. Fascinating. </look>
      <object name="Pepperup Potion">
        <inherit name="editor_object" />
        <look>You instinctively shy away from the potion. Drinking it cures your cold but it also makes smoke come out of your ears!</look>
        <take type="script">
          msg ("The school healer will probably have some, you should leave it for Gram. ")
          MoveObject (Pepperup Potion, Cupboard)
        </take>
      </object>
      <object name="Murtlap Essence">
        <inherit name="editor_object" />
        <look>A clear jar full of Murtlap Essence. It's so useful you hardly believe it comes from pickled Murtlap tentacles.....heals cuts, abrasions etc etc etc</look>
        <take type="script">
          msg ("The school healer will probably have some, you should leave it for Gram. ")
          MoveObject (Murtlap Essence, Cupboard)
        </take>
      </object>
      <object name="Mrs Skowers All Purpose Magical Mess Remover">
        <inherit name="editor_object" />
        <look>Ah, what would Grandmère do without this magical product? It's in a large bottle, with the label printed in bold letters. A faint scent of lemons emanates from it.</look>
        <take type="script">
          msg ("What would Gram do without this? You decide not to be evil and put it back.")
          MoveObject (Mrs Skowers All Purpose Magical Mess Remover, Cupboard)
        </take>
      </object>
      <object name="Madame Glossys Silver Polish">
        <inherit name="editor_object" />
        <look>A glowing silver bottle full of polish. A slightly pungent odor leaks from it.</look>
        <take type="script">
          msg ("What would Gram do without this? You decide not to be evil and put it back.")
          MoveObject (Madame Glossys Silver Polish, Cupboard)
        </take>
      </object>
      <object name="Cough Potion">
        <inherit name="editor_object" />
        <look><![CDATA[A small, round, faceted crystal bottle filled with opaque liquid. This is one of Grandmère's home recipes, she always makes Gramps drink it  in the winter. You've tried it before......it wasn't particularly pleasant. <br/>]]></look>
        <take type="script">
          msg ("The school healer will probably have some, you should leave it for Gram. ")
          MoveObject (Cough Potion, Cupboard)
        </take>
      </object>
    </object>
    <object name="Sink">
      <inherit name="editor_object" />
      <inherit name="switchable" />
      <look>This model was actually quite popular, as Gramps tell it. It can spout anything from water to love potion. Well.....Gramps has already fixed it so it doesn't spout love potion anymore. That is, you think. </look>
      <displayverbs type="stringlist">
        <value>Look at</value>
      </displayverbs>
      <feature_switchable />
      <switchonmsg>Normal water comes from it. Thankfully.</switchonmsg>
    </object>
  </object>
  <object name="Unused">
    <inherit name="editor_room" />
    <object name="Owl">
      <inherit name="editor_object" />
      <look type="script">
        MoveObject (Envelope, Bedroom)
        msg ("A large barn owl with a heart-shaped face. He shifts from foot to foot impatiently, staring at you expectantly. There's an envelope tied to him.")
      </look>
    </object>
    <object name="Envelope">
      <inherit name="editor_object" />
      <inherit name="container_open" />
      <look>A creamy white envelope sealed with red wax. There's an emblem embellished on the seal.</look>
      <takemsg>\</takemsg>
      <feature_container />
      <isopen type="boolean">false</isopen>
      <take type="script">
        msg ("You untie the letter from the owl. The owl flaps away into the morning sun. Hmm, what could this be?")
        MoveObject (Owl, Unused)
        UnlockExit (Your Bedroom to Landing)
        SwitchOn (Owl letter flag)
      </take>
      <onopen type="script"><![CDATA[
        if (not IsSwitchedOn()) {
          msg ("There's no time to read it now! The owl won't wait much longer! You'd better take it before he leaves.")
          MoveObject (Letter, Envelope)
          HelperCloseObject (Envelope)
        }
        else if (IsSwitchedOn(Owl letter flag)) {
          msg ("A sheet of paper with gold trim slides out. What could this be? Is it--<br/><br/><br/>Oh!<br/><br/><br/>Could it be?<br/><br/>You read the letter, heart pounding with every word.<br/><br/><b>Ilvermorny School of Wizardry and Witchcraft</b><br/><br/><i>Dear Miss {player.alias} Roche,<br/><br/>We are pleased to inform you that you have a place at Ilvermorny School of Wizardry and Witchcraft. You will find an enclosed list of all necessary equipment and instructions for transportation.<br/><br/>Term begins on September 2nd, we await your reply by no later than July 31st. If there is no reply, it is automatically assumed that you will be coming.<br/><br/>Yours sincerely, <br/><br/>Rebecca Marchford<br/>Deputy Headmistress </i>")
          wait {
            msg ("Wow! You got accepted into Ilvermorny!! You'd better tell Gram and Gramps, they'll be overjoyed!")
          }
        }
      ]]></onopen>
      <object name="Letter">
        <inherit name="editor_object" />
        <look type="string"></look>
      </object>
    </object>
    <object name="Gramps wake flag">
      <inherit name="editor_object" />
      <inherit name="switchable" />
      <feature_switchable />
    </object>
    <object name="Jar of Floo Powder">
      <inherit name="editor_object" />
      <scenery />
      <look type="string"></look>
      <take type="script">
        if (Jar of Floo Powder.isopen) {
          msg ("You take a pinch of Floo Powder from the jar and put it in your palm. Gramps appears, having combed his hair and washed his face. \"Ready? We'll have to go to Gringotts first to get some change. Tell me when you're ready to go.\"")
          MoveObject (Gramps, Dining Room)
        }
      </take>
    </object>
    <object name="Owl letter flag">
      <inherit name="editor_object" />
      <inherit name="switchable" />
      <feature_switchable />
    </object>
    <object name="Nagrok">
      <inherit name="editor_object" />
      <inherit name="male" />
      <look type="string"></look>
      <tell type="scriptdictionary">
        <item key="ready"><![CDATA[
          msg ("Nagrok motions for you and Gramps to follow him. He leads you through the silver doors into a dimly lit chamber. As you pass, you see words carved into the door.<br/><br/><i>Enter, stranger, but take heed<br/>Of what awaits the sin of greed<br/>For those who take, but do not earn,<br/>Must pay most dearly in their turn.<br/>So if you seek beneath our floors<br/>A treasure that was never yours,<br/>Thief, you have been warned, beware<br/>Of finding more than treasure there.</i><br/><br/>You shudder a bit, having heard the rumors about what lies under Gringotts. Nagrok takes you into a dank tunnel, where a mine cart is waiting.")
          MoveObject (player, Gringotts Tunnel)
        ]]></item>
      </tell>
    </object>
    <object name="Butterbeer">
      <inherit name="editor_object" />
      <look>A large glass bottle full of bubbly yellow liquid. </look>
      <take />
      <attr name="feature_edible" type="boolean">false</attr>
      <drink type="script">
        msg ("You down the glass in one gulp. Ahh! The liquid is creamy and refreshing. ")
        SwitchOn (fountain of fortune drink flag)
      </drink>
    </object>
    <object name="fountain of fortune drink flag">
      <inherit name="editor_object" />
      <inherit name="switchable" />
      <feature_switchable />
    </object>
    <object name="Pumpkin Juice">
      <inherit name="editor_object" />
      <look>A tall glass filled with smooth, orange liquid. There are a few flecks of white in the juice too.</look>
      <drink type="script">
        msg ("You down the glass in one gulp. Ahh! The liquid is creamy and refreshing. ")
        SwitchOn (fountain of fortune drink flag)
      </drink>
    </object>
    <object name="Peachtree Fizzing Tea">
      <inherit name="editor_object" />
      <look>A glass filled with effervescent pink liquid. It's peach-flavored.</look>
      <drink type="script">
        msg ("You down the glass in one gulp. Ahh! The liquid is bubbly and refreshing. ")
        SwitchOn (fountain of fortune drink flag)
      </drink>
    </object>
    <object name="Gringotts money flag">
      <inherit name="editor_object" />
      <inherit name="switchable" />
      <feature_switchable />
    </object>
    <object name="Common magical ailments bought flag">
      <inherit name="editor_object" />
      <inherit name="switchable" />
      <feature_switchable />
    </object>
    <object name="Enchanted encounters bought flag">
      <inherit name="editor_object" />
      <inherit name="switchable" />
      <feature_switchable />
    </object>
  </object>
  <verb>
    <property>pullmustache</property>
    <pattern>pull mustache</pattern>
    <defaultexpression>"You can't pull mustache " + object.article + "."</defaultexpression>
  </verb>
  <verb>
    <property>hug</property>
    <pattern>hug</pattern>
    <defaultexpression>"You can't hug " + object.article + "."</defaultexpression>
  </verb>
  <object name="The Copper Pumpkin">
    <inherit name="editor_room" />
    <exit alias="west" to="North Side of Notting Square">
      <inherit name="westdirection" />
    </exit>
  </object>
  <object name="North Side of Notting Square">
    <inherit name="editor_room" />
    <exit alias="south" to="Notting Square">
      <inherit name="southdirection" />
    </exit>
    <exit alias="east" to="The Copper Pumpkin">
      <inherit name="eastdirection" />
    </exit>
    <exit alias="west" to="The Apothecary">
      <inherit name="westdirection" />
    </exit>
    <exit alias="north" to="Gladrags Wizardwear">
      <inherit name="northdirection" />
    </exit>
  </object>
  <object name="The Fountain of Fair Fortune">
    <inherit name="editor_room" />
    <description>The Fountain of Fair Fortune is the oldest pub in Notting Square by far. Inside the pub is  crowded, many robes of different colors swishing here and there. It is a pink and blue wooden building, with a mermaid fountain outside. On the bottom of the fountain are a few Dragots, glinting back at you.</description>
    <exit alias="out" to="Notting Square">
      <inherit name="outdirection" />
    </exit>
    <object name="Bartender">
      <inherit name="editor_object" />
      <inherit name="male" />
      <look>A heavily bearded man wearing an apron is working behind the counter. He's grumpily wiping down a few tumblers. </look>
      <speak type="script"><![CDATA[
        msg ("He looks at you, briefly pausing his wiping. \"Do you want to order?\", he asks gruffly. \"We've got Butterbeer, Pumpkin Juice, Firewhiskey, Mulled Mead, Fishy Green Ale, Peachtree Fizzing Tea, Wizard's Brew, Gillywater......\" He prattles on and on, listing drinks.<br/><br/>To order, <b>Tell Bartender to serve (drink you want)</b>")
      ]]></speak>
      <ask type="scriptdictionary">
        <item key="The Fountain of Fair Fortune">
          msg ("He eyes you grouchily. \"Either order something or get out.\"")
        </item>
        <item key="Himself">
          msg ("He eyes you grouchily. \"Either order something or get out.\"")
        </item>
      </ask>
      <tellto type="scriptdictionary">
        <item key="serve butterbeer"><![CDATA[
          if (IsSwitchedOn(fountain of fortune drink flag)) {
            msg ("You already had a drink, you're full now!")
          }
          else if (not IsSwitchedOn(fountain of fortune drink flag)) {
            MoveObject (Butterbeer, The Fountain of Fair Fortune)
            msg ("The bartender briefly disappears from the counter and retrieves your drink. He thunks the glass down on the counter and holds out his hand. \"1 Sprink.\" <br/>You dig out the money and hand it to him. ")
            DecreaseMoney (1)
          }
        ]]></item>
        <item key="serve pumpkin juice"><![CDATA[
          if (IsSwitchedOn(fountain of fortune drink flag)) {
            msg ("You already had a drink, you're full now!")
          }
          else if (not IsSwitchedOn(fountain of fortune drink flag)) {
            MoveObject (Pumpkin Juice, The Fountain of Fair Fortune)
            msg ("The bartender briefly disappears from the counter and retrieves your drink. He thunks the glass down on the counter and holds out his hand. \"1 Sprink.\" <br/>You dig out the money and hand it to him. ")
            DecreaseMoney (1)
          }
        ]]></item>
        <item key="serve peachtree fizzing tea"><![CDATA[
          if (IsSwitchedOn(fountain of fortune drink flag)) {
            msg ("You already had a drink, you're full now!")
          }
          else if (not IsSwitchedOn(fountain of fortune drink flag)) {
            MoveObject (Peachtree Fizzing Tea, The Fountain of Fair Fortune)
            msg ("The bartender briefly disappears from the counter and retrieves your drink. He thunks the glass down on the counter and holds out his hand. \"1 Sprink.\" <br/>You dig out the money and hand it to him. ")
            DecreaseMoney (1)
          }
        ]]></item>
      </tellto>
    </object>
  </object>
  <object name="The Apothecary">
    <inherit name="editor_room" />
    <exit alias="east" to="North Side of Notting Square">
      <inherit name="eastdirection" />
    </exit>
  </object>
  <object name="West Side of Notting Square">
    <inherit name="editor_room" />
    <exit alias="west" to="Gringotts">
      <inherit name="westdirection" />
    </exit>
    <exit alias="south" to="Wiseacres Wizarding Equipment">
      <inherit name="southdirection" />
    </exit>
    <exit alias="north" to="Gambol Japes Wizarding Joke Shop">
      <inherit name="northdirection" />
    </exit>
    <exit alias="east" to="Notting Square">
      <inherit name="eastdirection" />
    </exit>
  </object>
  <object name="Gringotts">
    <inherit name="editor_room" />
    <description>Even though you've been here before, Gringotts is still breathtaking. It's hard to imagine that there's hundreds of Gringotts subdivisions all over the world. What would it take to build a place of this size? You are in a long chamber, with counters lining the walls. Goblins sit at the counters, weighing and examining treasure. A set of double silver doors lead to the vaults. There are many fireplaces on one wall, with wizards bustling in and out. </description>
    <beforefirstenter type="script">
    </beforefirstenter>
    <firstenter type="script"><![CDATA[
      msg ("As you step out of the dying fire, a goblin immediately sidles up to you. \"Name and vault number please?\", he says in a nasal voice. <br/>\"Roche, vault 762,\" instructs Gramps, brushing the ash off his robes.<br/>The goblin nods. \"You have a key?\"<br/>Gramps fumbles in his pockets for a minute and produces a minuscule gold key. He holds it up for the goblin to see.<br/>The goblin examines the key closely then nods. \"I'll have someone take you down to the vaults. You can use our other services here in the meantime.\"")
      SetTimeout (2) {
        msg ("The goblin that welcomed you claps his hands. \"Nagrok!\", he calls, turning to you. \"He'll be here shortly.\"")
      }
      SetTimeout (4) {
        msg ("Another goblin, presumably Nagrok emerges. \"I see you've been looking around. You're free to take a look and use our services. Tell me when you're ready to go down.\"")
      }
    ]]></firstenter>
    <exit name="Gringotts to Notting Square" alias="east" to="West Side of Notting Square">
      <inherit name="eastdirection" />
      <locked />
      <lockmessage>You shouldn't leave, you and Gramps need to get money!</lockmessage>
    </exit>
    <object name="Goblin">
      <inherit name="editor_object" />
      <inherit name="male" />
    </object>
    <object name="Currency Exchange Station">
      <inherit name="editor_object" />
      <look>A currency exchange station manned by an old goblin. A large enchanted sign broadcasts the current exchange rates. Behind the counter, tubes jutting from the wall pour out various currencies, which magically stack themselves in neat heaps.</look>
    </object>
    <object name="Currency Exchange Goblin">
      <inherit name="editor_object" />
      <inherit name="male" />
      <alias>Goblin</alias>
      <look>An old, withered goblin wearing a pair of wire rimmed spectacles. He peers over at you expectantly. He is currently sorting coins.</look>
      <tellto type="scriptdictionary">
        <item key="exchange currency"><![CDATA[
          msg ("\"What money would you like to exchange your dragots for?\"<br/><br/>(To do this, just pick a currency and tell him to exchange ____)")
        ]]></item>
        <item key="exchange"><![CDATA[
          msg ("\"What money would you like to exchange your dragots for?\"<br/><br/>(To do this, just pick a currency and tell him to exchange ____)")
        ]]></item>
        <item key="exchange money"><![CDATA[
          msg ("\"What money would you like to exchange your dragots for?\"<br/><br/>(To do this, just pick a currency and tell him to exchange ____)")
        ]]></item>
        <item key="exchange galleons">
          msg ("Galleons wouldn't be much use in your case, no one in Notting Alley as far as you know accepts British money. Gramps wouldn't be too happy about it either.")
        </item>
        <item key="exchange sickles">
          msg ("Sickles wouldn't be much use in your case, no one in Notting Alley as far as you know accepts British money. Gramps wouldn't be too happy about it either.")
        </item>
        <item key="exchange knuts">
          msg ("Knuts wouldn't be much use in your case, no one in Notting Alley as far as you know accepts British money. Gramps wouldn't be too happy about it either.")
        </item>
        <item key="exchange no maj money">
          msg ("No maj money wouldn't be much use in your case, no one in Notting Alley as far as you know accepts them. Gramps wouldn't be too happy about it either.")
        </item>
      </tellto>
    </object>
  </object>
  <object name="Wiseacres Wizarding Equipment">
    <inherit name="editor_room" />
    <exit alias="north" to="West Side of Notting Square">
      <inherit name="northdirection" />
    </exit>
  </object>
  <object name="Gambol Japes Wizarding Joke Shop">
    <inherit name="editor_room" />
    <alias>Gambol and Japes Wizarding Joke Shop</alias>
    <exit alias="south" to="West Side of Notting Square">
      <inherit name="southdirection" />
    </exit>
  </object>
  <object name="South Side of Notting Square">
    <inherit name="editor_room" />
    <exit alias="south" to="Sugarplums Sweets Shop">
      <inherit name="southdirection" />
    </exit>
    <exit alias="west" to="Broomstix">
      <inherit name="westdirection" />
    </exit>
    <exit alias="east" to="Owl Post Office">
      <inherit name="eastdirection" />
    </exit>
    <exit alias="north" to="Notting Square">
      <inherit name="northdirection" />
    </exit>
  </object>
  <object name="Sugarplums Sweets Shop">
    <inherit name="editor_room" />
    <exit alias="north" to="South Side of Notting Square">
      <inherit name="northdirection" />
    </exit>
  </object>
  <object name="Broomstix">
    <inherit name="editor_room" />
    <description>A broomstore. There are various brooms on display on the shelves. There are toy brooms, family brooms, and brooms you're looking for: racing brooms. There are a few antique brooms being sold, but the majority are from modern companies.</description>
    <exit alias="east" to="South Side of Notting Square">
      <inherit name="eastdirection" />
    </exit>
    <object name="Broomstore Assistant">
      <inherit name="editor_object" />
      <look>A haughty looking young man walking around the shop with his hands clasped behind his back. </look>
      <alias>Shop Assistant </alias>
      <speak>He arches his eyebrows and sniffs. "Can I help you with something?"</speak>
      <ask type="scriptdictionary">
        <item key="Silver Arrow">
          msg ("\"A Silver Arrow. Made by broomaker, Leonard Jewkes. An antique, and one of the first racing brooms ever. Nevertheless, still as good and perhaps even better than modern day brooms. This one is not fit for racing though, it's nearly eighty years old!\"")
        </item>
        <item key="Cleansweep 14">
          msg ("\"The new Cleansweep. I except you would know this one? It's features include an anti-jinx varnish and a built-in vibration control feature. Amazing acceleration, from zero to seventy miles per hour in just ten seconds.\"")
        </item>
        <item key="Starsweeper XXI">
          msg ("\"Oh yes, our national Quidditch team played in the World Cup using these, and no doubt, unquestionably a fine broom. The Nimbus series is more popular in Britain but most people consider the Starsweepers to be our national broom.\"")
        </item>
        <item key="Thunderbolt VII">
          msg ("\"Hmpf! I personally feel that the broomakers sacrificed safety for speed with this broom! Nigerian Seeker narrowly escaped injury at the World Cup when a bludger smashed his broom's tail off, forfeiting the Cup in the process. Every racing broom should be able to take hits from bludgers!\"")
        </item>
        <item key="Firebolt Supreme">
          msg ("\"Ahh, the new Firebolt model. The Bulgarians played on these brooms at the world-cup. Marvelous acceleration and stability. Goblin-made iron, you know.\" He shakes his head. \"The scandal is a shame though, Firebolt Supreme sales have dropped immensely.\"")
        </item>
        <item key="scandal">
        </item>
      </ask>
    </object>
    <object name="Silver Arrow">
      <inherit name="editor_object" />
      <take type="boolean">false</take>
      <buy>You need a racing broom....the tag says this is an antique, nearly 80 years old. Used for decoration? Fine. Used for racing? Not so much.</buy>
      <look>200</look>
    </object>
    <object name="Cleansweep 14">
      <inherit name="editor_object" />
      <look>180</look>
    </object>
    <object name="Starsweeper XXI">
      <inherit name="editor_object" />
      <look><![CDATA[200<br/>]]></look>
    </object>
    <object name="Thunderbolt VII">
      <inherit name="editor_object" />
      <look>187</look>
    </object>
    <object name="Firebolt Supreme">
      <inherit name="editor_object" />
      <look>200</look>
    </object>
  </object>
  <object name="Owl Post Office">
    <inherit name="editor_room" />
    <exit alias="south" to="South Side of Notting Square">
      <inherit name="southdirection" />
    </exit>
  </object>
  <object name="East Side of Notting Square">
    <inherit name="editor_room" />
    <exit alias="south" to="Magical Menagerie">
      <inherit name="southdirection" />
    </exit>
    <exit alias="north" to="Whizz Hard Books">
      <inherit name="northdirection" />
    </exit>
    <exit alias="north" to="The Junk Shop">
      <inherit name="northdirection" />
    </exit>
  </object>
  <object name="Magical Menagerie">
    <inherit name="editor_room" />
    <exit alias="north" to="East Side of Notting Square">
      <inherit name="northdirection" />
    </exit>
  </object>
  <object name="Whizz Hard Books">
    <inherit name="editor_room" />
    <exit alias="east" to="East Side of Notting Square">
      <inherit name="eastdirection" />
    </exit>
    <exit alias="west" to="Periodicals">
      <inherit name="westdirection" />
    </exit>
    <exit alias="south" to="Textbooks">
      <inherit name="southdirection" />
    </exit>
    <exit alias="north" to="Whizz Hard Books Main">
      <inherit name="northdirection" />
    </exit>
  </object>
  <object name="The Junk Shop">
    <inherit name="editor_room" />
    <exit alias="south" to="East Side of Notting Square">
      <inherit name="southdirection" />
    </exit>
  </object>
  <object name="Gladrags Wizardwear">
    <inherit name="editor_room" />
    <alias>Gladrag's Wizardwear</alias>
    <exit alias="south" to="North Side of Notting Square">
      <inherit name="southdirection" />
    </exit>
    <object name="Gladrag">
      <inherit name="editor_object" />
    </object>
  </object>
  <object name="Northwest Side of Notting Square">
    <inherit name="editor_room" />
    <exit alias="east" to="Mulligrubs Materia Medica">
      <inherit name="eastdirection" />
    </exit>
    <exit alias="north" to="House Elf Placement Agency">
      <inherit name="northdirection" />
    </exit>
    <exit alias="south" to="Weeoanwhiskers Barber Shop">
      <inherit name="southdirection" />
    </exit>
    <exit alias="southeast" to="Notting Square">
      <inherit name="southeastdirection" />
    </exit>
  </object>
  <object name="Northeast Side of Notting Square">
    <inherit name="editor_room" />
    <exit alias="north" to="The Hopping Pot">
      <inherit name="northdirection" />
    </exit>
    <exit alias="south" to="McHavelocks Wizarding Headgear">
      <inherit name="southdirection" />
    </exit>
    <exit alias="east" to="Cocklebell Clockmakers">
      <inherit name="eastdirection" />
    </exit>
    <exit alias="southwest" to="Notting Square">
      <inherit name="southwestdirection" />
    </exit>
  </object>
  <object name="Southwest Side of Notting Square">
    <inherit name="editor_room" />
    <exit alias="north" to="Nolties Botanical Novelties">
      <inherit name="northdirection" />
    </exit>
    <exit alias="west" to="Madam Primpernelles Beautifying Potions">
      <inherit name="westdirection" />
    </exit>
    <exit alias="east" to="Markus Scarrs Indelible Tattoos">
      <inherit name="eastdirection" />
    </exit>
    <exit alias="northeast" to="Notting Square">
      <inherit name="northeastdirection" />
    </exit>
  </object>
  <object name="Southeast Side of Notting Square">
    <inherit name="editor_room" />
    <exit alias="west" to="Briggs Broomcare">
      <inherit name="westdirection" />
    </exit>
    <exit alias="south" to="Dr Filibusters Fireworks">
      <inherit name="southdirection" />
    </exit>
    <exit alias="east" to="Flimflams Lanterns">
      <inherit name="eastdirection" />
    </exit>
    <exit alias="northwest" to="Notting Square">
      <inherit name="northwestdirection" />
    </exit>
  </object>
  <object name="Briggs Broomcare">
    <inherit name="editor_room" />
    <exit alias="east" to="Southeast Side of Notting Square">
      <inherit name="eastdirection" />
    </exit>
  </object>
  <object name="Nolties Botanical Novelties">
    <inherit name="editor_room" />
    <exit alias="south" to="Southwest Side of Notting Square">
      <inherit name="southdirection" />
    </exit>
  </object>
  <object name="The Hopping Pot">
    <inherit name="editor_room" />
    <exit alias="south" to="Northeast Side of Notting Square">
      <inherit name="southdirection" />
    </exit>
  </object>
  <object name="Mulligrubs Materia Medica">
    <inherit name="editor_room" />
    <exit alias="west" to="Northwest Side of Notting Square">
      <inherit name="westdirection" />
    </exit>
  </object>
  <object name="House Elf Placement Agency">
    <inherit name="editor_room" />
    <exit alias="south" to="Northwest Side of Notting Square">
      <inherit name="southdirection" />
    </exit>
  </object>
  <object name="Dr Filibusters Fireworks">
    <inherit name="editor_room" />
    <exit alias="north" to="Southeast Side of Notting Square">
      <inherit name="northdirection" />
    </exit>
  </object>
  <object name="Madam Primpernelles Beautifying Potions">
    <inherit name="editor_room" />
    <exit alias="east" to="Southwest Side of Notting Square">
      <inherit name="eastdirection" />
    </exit>
  </object>
  <object name="Markus Scarrs Indelible Tattoos">
    <inherit name="editor_room" />
    <exit alias="west" to="Southwest Side of Notting Square">
      <inherit name="westdirection" />
    </exit>
  </object>
  <object name="McHavelocks Wizarding Headgear">
    <inherit name="editor_room" />
    <exit alias="north" to="Northeast Side of Notting Square">
      <inherit name="northdirection" />
    </exit>
  </object>
  <object name="Weeoanwhiskers Barber Shop">
    <inherit name="editor_room" />
    <exit alias="north" to="Northwest Side of Notting Square">
      <inherit name="northdirection" />
    </exit>
  </object>
  <object name="Flimflams Lanterns">
    <inherit name="editor_room" />
    <exit alias="west" to="Southeast Side of Notting Square">
      <inherit name="westdirection" />
    </exit>
  </object>
  <object name="Cocklebell Clockmakers">
    <inherit name="editor_room" />
    <exit alias="west" to="Northeast Side of Notting Square">
      <inherit name="westdirection" />
    </exit>
  </object>
  <object name="Kitchen">
    <inherit name="editor_room" />
    <object name="Gram">
      <inherit name="editor_object" />
      <inherit name="female" />
      <look>Despite her white hair, Gram is a formidable woman. Well, Gram is formidable only in an argument. Mostly she's very serene and calm. She stands straight, and smells distinctly of cinnamon. She is wearing navy blue robes and an amethyst brooch is pinned to the front. </look>
      <speak>Gram looks at you expectantly. "Hmm?"</speak>
      <hug>She laughs and hugs you back. Her clothes are so soft! You pull away, and the cinnamon-y smell lingers on you.</hug>
      <tell type="scriptdictionary">
        <item key="Letter"><![CDATA[
          msg ("\"Gram! Look what I got in the mail!\" You wave the letter excitedly and give it to her.<br/>Gram puts down her rolling pin and tucks a stray strand of hair behind her ear. \"What, dear?\" She opens the letter.<br/>\"Oh my!\" She looks up. \"Well, about time! I was expecting this to happen!\" She goes over and gives you a hug. \"You're going to love it there, your mother certainly did! Dear, we must get you some supplies!\" <br/>She lets go of you and calls up the stairs. \"Frank! Wake up! {player.alias} has got her acceptance letter!\" She turns to you. \"Go wake him up, won't you?\"")
          SwitchOn (Gramps wake flag)
        ]]></item>
        <item key="Ilvermorny"><![CDATA[
          msg ("\"Gram! Look what I got in the mail!\" You wave the letter excitedly and give it to her.<br/>Gram puts down her rolling pin and tucks a stray strand of hair behind her ear. \"What, dear?\" She opens the letter.<br/>\"Oh my!\" She looks up. \"Well, about time! I was expecting this to happen!\" She goes over and gives you a hug. \"You're going to love it there, your mother certainly did! Dear, we must get you some supplies!\" <br/>She lets go of you and calls up the stairs. \"Frank! Wake up! {player.alias} has got her acceptance letter!\" She turns to you. \"Go wake him up, won't you?\"")
          SwitchOn (Gramps wake flag)
        ]]></item>
      </tell>
      <ask type="scriptdictionary">
        <item key="floo powder">
          msg ("She looks at you a bit strangely. \"It's on the mantle, dear. Always has been.\"")
        </item>
      </ask>
    </object>
    <exit alias="west" to="Dining Room">
      <inherit name="westdirection" />
    </exit>
    <exit alias="east" to="Hallway">
      <inherit name="eastdirection" />
    </exit>
  </object>
  <object name="Cloakroom">
    <inherit name="editor_room" />
    <exit alias="out" to="Hallway">
      <inherit name="outdirection" />
    </exit>
  </object>
  <object name="Dining Room">
    <inherit name="editor_room" />
    <exit alias="west" to="Hallway">
      <inherit name="westdirection" />
    </exit>
    <object name="Fireplace">
      <inherit name="editor_object" />
      <look type="script">
        MoveObject (Jar of Floo Powder, Dining Room)
      </look>
    </object>
    <exit alias="east" to="Kitchen">
      <inherit name="eastdirection" />
    </exit>
  </object>
  <object name="Hallway">
    <inherit name="editor_room" />
    <exit alias="east" to="Dining Room">
      <inherit name="eastdirection" />
    </exit>
    <exit alias="up" to="Upstairs Landing">
      <inherit name="updirection" />
    </exit>
    <exit alias="west" to="Kitchen">
      <inherit name="westdirection" />
    </exit>
    <exit alias="in" to="Cloakroom">
      <inherit name="indirection" />
    </exit>
  </object>
  <object name="Gringotts Tunnel">
    <inherit name="editor_room" />
    <firstenter type="script">
      msg ("Nagrok stops here, taking a lantern and hooking it on the cart. He gestures for you to get into the cart.")
    </firstenter>
    <object name="Gringotts Cart">
      <inherit name="editor_object" />
      <displayverbs type="stringlist">
        <value>Look at</value>
      </displayverbs>
      <getin type="script"><![CDATA[
        firsttime {
          msg ("You climb into the cart with Gramps, a bit squashed. The cart immediately jerks forward, seeming to drive itself. The wheels clack underneath you, and water drops from icicles above. It's awfully cold here. <br/>You hear Gramps laugh over the rushing of cold air. \"I always love riding Gringotts carts! Isn't this fun, lassie?\"")
          SetTimeout (2) {
            msg ("You hurdle past a frozen underground lake!")
          }
          SetTimeout (2) {
            msg ("The cart swerves and turns a corner, and you catch a glimpse of a roaring waterfall!")
          }
          SetTimeout (2) {
            msg ("The cart jerks to the left, throwing you to the side!")
          }
          SetTimeout (2) {
            msg ("You speed through a huge underground cavern, crystals sparkling from the walls!")
          }
          SetTimeout (2) {
            msg ("Finally, the cart lurches to a stop, in front of a door marked \"762\". Nagrok climbs out and inserts the key into the door. Green smoke billows out, when it clears you see a room filled with piles upon piles of dragots!")
            MoveObject (player, Vault 762)
            MoveObject (Gramps, Vault 762)
            MoveObject (Gringotts Cart, Vault 762)
          }
        }
        otherwise {
          msg ("You open the door and climb back into the cart. Like before, the cart immediately whooshs into motion.")
          SetTimeout (3) {
            msg ("Finally, the cart stops at where you were at the beginning. You and Gramps hop out, and Nagrok ushers you back into the Gringotts main hall. You both stroll out of the double doors, back into Notting Square.<br/>")
            MoveObject (Gramps, Notting Square)
            MoveObject (player, Notting Square)
            UnlockExit (Gringotts to Notting Square)
            msg ("Suddenly Gramps stops in front of the pub, The Fountain of Fair Fortune. Craning his neck excitedly, he says \"Isn't that old Icarus Piquery?\" He looks at you. \"Do you mind shopping on your own, I want to do some catching up.\"<br/><br/>Perfect! You've never been allowed to shop alone!<br/><br/>Gramps continues on, reaching over and giving you some dragots. \"Here, that should be enough. Don't go too far though, stay where I can see you!\"<br/>")
            wait {
              player.dragots = 700
            }
          }
        }
      ]]></getin>
    </object>
  </object>
  <verb>
    <property>getin</property>
    <pattern>get in</pattern>
    <defaultexpression>"You can't get in " + object.article + "."</defaultexpression>
  </verb>
  <object name="Vault 762">
    <inherit name="editor_room" />
    <object name="Dragots">
      <inherit name="editor_object" />
      <look>A gleaming pile of gold coins.</look>
      <take type="script"><![CDATA[
        MoveObject (Dragots, Vault 762)
        msg ("You take a Dragot and stuff into into your pocket.<br/>Gramps puts some Dragots into a bag. \"A'right, I got what we need. Let's go get your supplies now.\" He climbs back into the cart.")
      ]]></take>
    </object>
  </object>
  <object name="Periodicals">
    <inherit name="editor_room" />
    <alias type="string"></alias>
    <exit alias="east" to="Whizz Hard Books">
      <inherit name="eastdirection" />
    </exit>
    <object name="The American Charmer">
      <inherit name="editor_object" />
    </object>
    <object name="U Hex A">
      <inherit name="editor_object" />
    </object>
    <object name="Transfiguration Today">
      <inherit name="editor_object" />
    </object>
    <object name="The New York Ghost">
      <inherit name="editor_object" />
    </object>
    <object name="The Practical Potioneer">
      <inherit name="editor_object" />
    </object>
    <object name="Challenges Charming">
      <inherit name="editor_object" />
      <alias>Challenges in Charming</alias>
    </object>
  </object>
  <object name="Whizz Hard Books Main">
    <inherit name="editor_room" />
    <alias type="string"></alias>
    <exit alias="south" to="Whizz Hard Books">
      <inherit name="southdirection" />
    </exit>
    <object name="Loony Nonby Cornish Pixies">
      <inherit name="editor_object" />
    </object>
    <object name="Enchanted Encounters">
      <inherit name="editor_object" />
      <look>A pink and glittery book with "Enchanted Encounters" written in cursive on the front. The cover stars a picture of two people kissing with the sunset in the background. The price tag reads "3 dragots".</look>
      <read type="script">
        if (IsSwitchedOn(Enchanted encounters bought flag)) {
          msg ("")
        }
      </read>
    </object>
    <object name="The Tales of Beedle the Bard">
      <inherit name="editor_object" />
    </object>
    <object name="Common Magical Ailments Afflictions">
      <inherit name="editor_object" />
      <alias>Common Magical Ailments and Afflictions</alias>
      <look>A thick book, presumably full of magical diseases and whatnot. The symbol for healing, a wand crossed with a bone, is on the cover. The price tag reads "5 dragots".</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix> </prefix>
      <buy type="string"></buy>
      <read type="script"><![CDATA[
        if (IsSwitchedOn(Common magical ailments bought flag)) {
          msg ("You flip it open to and start to read.<br/><br/>{random:<i><br/>Dragon Pox<br/><br/>The first cases of Dragon Pox occurred in wizards who were working closely with dragons, specifically the Peruvian Viper. This malady is highly contagious, and sometimes fatal for elderly wizards (though deaths from the disease are rare). However, the symptoms upon catching the disease are obvious, making Dragon Pox easier to diagnose and cure. Common symptoms include  a greenish tinge to the skin, sparks emitting from the nostrils when sneezing, and rashes all over the body. Patients afflicted with Dragon Pox will heal on their own, though it is highly recommended that they seek out the nearest hospital to receive the Dragon Pox cure. Although the cure (developed by the one-eyed healer commonly known as Gunhilda of Gorsemoor) was widely contributed to eliminating the disease, Dragon Pox has not yet been eradicated. More attention has been raised about curing this ailment, mostly by Moldovan Quidditch Team supports, after Dragon Pox prevented them from playing in the 2014 World Cup.</i>:<br/><i> Mumblemumps<br/>}<br/><br/><b>Try rereading this book.</b>")
        }
        else if (not IsSwitchedOn(Common magical ailments bought flag)) {
          msg ("You flip it open and start to read.<br/><br/><i><br/>The first cases of Dragon Pox occurred in wizards who were working closely with dragons, specifically the Peruvian Viper. This malady is highly contagious, and sometimes fatal for elderly wizards (though deaths from the disease are rare). However, the symptoms upon catching the disease are obvious, making Dragon Pox easier to diagnose and cure. Common symptoms include  a greenish tinge to the skin, sparks emitting from the nostrils when sneezing, and rashes all over the body. Patients afflicted with Dragon Pox will heal on their own, though it is highly recommended that they seek out the nearest hospital to receive the Dragon Pox cure.</i><br/><br/><b>Buying this book would allow you to read more</b>")
        }
      ]]></read>
    </object>
  </object>
  <object name="Textbooks">
    <inherit name="editor_room" />
    <alias>Textbooks</alias>
    <exit alias="north" to="Whizz Hard Books">
      <inherit name="northdirection" />
    </exit>
    <object name="Chadwicks Charms">
      <inherit name="editor_object" />
    </object>
    <object name="A Beginners Guide to Transfiguration">
      <inherit name="editor_object" />
    </object>
    <object name="The Dark Arts Outsmarted">
      <inherit name="editor_object" />
    </object>
    <object name="A History of Magic">
      <inherit name="editor_object" />
    </object>
  </object>
  <object name="Goshawks Guide to Herbology">
    <inherit name="editor_object" />
    <alias>Goshawk's Guide to Herbology</alias>
  </object>
</asl>

Then, you can play it or switch back to the GUI and look at stuff.


Not to be negative (in fact, I believe it's totally constructive), but the display settings make it difficult to read the text. (Maybe a larger font might help?)


@K.V
I'll do it first thing after parallel desktops finishes installing (it's pretty slow :D, its only downloaded 25.2MB/4.4GB) Thanks!!!!!!!!!


Ahh ok! I usually zoom in a lot so thats why XD.


While you're editing online, could you publish the game so we can see it? You can set it so kit's only visible to people you share the link with.


Sure, the link is: http://textadventures.co.uk/games/view/p82b7t3qc0eabisoau-7pw/ilvermorny-school-of-wizardry-and-witchcraft

I have changed the "player.housepoints" to "housepoints", does it work on yours?


You need to set player.housepoints = 10. Not housepoints = 10.

I previously said that the status attributes panel automatically looks in the player object. So if the key there is "housepoints", it will look for the value in "player.housepoints".


Attribute Scripting:

NAME_OF_OBJECT.NAME_OF_ATTRIBUTE
// or:
NAME_OF_OBJECT.NAME_OF_ATTRIBUTE = VALUE_OR_EXPRESSION

the 'if' Script scripting (which includes/requires also Attribute scripting):

if (NAME_OF_OBJECT.NAME_OF_BOOLEAN_ATTRIBUTE) { // if (TRUE)
  // scripting for 'if (TRUE)'
}
// optional:
else { // if (FALSE)
  // scripting for 'if (FALSE)'
}

if (not NAME_OF_OBJECT.NAME_OF_BOOLEAN_ATTRIBUTE) { // if (FALSE)
  // scripting for 'if (FALSE)'
}
// optional:
else { // if (TRUE)
  // scripting for 'if (TRUE)'
}

if (NAME_OF_OBJECT.NAME_OF_STRING_ATTRIBUTE = "STRING_VALUE_OR_STRING_EXPRESSION_1") {
  // scripting
}
// optional:
else if (NAME_OF_OBJECT.NAME_OF_STRING_ATTRIBUTE = "STRING_VALUE_OR_STRING_EXPRESSION_2") {
  // scripting
}
// optional:
// more 'else ifs'
}
// optional:
else {
  // scripting
}

if (NAME_OF_OBJECT.NAME_OF_OBJECT_ATTRIBUTE = NAME_OF_OBJECT_1) {
  // scripting
}
// optional:
else if (NAME_OF_OBJECT.NAME_OF_OBJECT_ATTRIBUTE = NAME_OF_OBJECT_2) {
  // scripting
}
// optional:
// more 'else ifs'
}
// optional:
else {
  // scripting
}

if (not NAME_OF_OBJECT.NAME_OF_OBJECT_ATTRIBUTE = NAME_OF_OBJECT_1) {
  // scripting
}
// optional:
else if (not NAME_OF_OBJECT.NAME_OF_OBJECT_ATTRIBUTE = NAME_OF_OBJECT_2) {
  // scripting
}
// optional:
// more 'else ifs'
}
// optional:
else {
  // scripting
}

<![CDATA[

  if (NAME_OF_OBJECT.NAME_OF_OBJECT_ATTRIBUTE <> NAME_OF_OBJECT_1) {
    // scripting
  }
  // optional:
  else if (NAME_OF_OBJECT.NAME_OF_OBJECT_ATTRIBUTE <> NAME_OF_OBJECT_2) {
    // scripting
  }
  // optional:
  // more 'else ifs'
  }
  // optional:
  else {
    // scripting
  }

]]>

if (NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE = INTEGER_VALUE_OR_INTEGER_EXPRESSION_1) {
  // scripting
}
// optional:
else if (NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE = INTEGER_VALUE_OR_INTEGER_EXPRESSION_2) {
// scripting
}
// optional:
// more 'else ifs'
}
// optional:
else {
  // scripting
}

if (not NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE = INTEGER_VALUE_OR_INTEGER_EXPRESSION_1) {
  // scripting
}
// optional:
else if (not NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE = INTEGER_VALUE_OR_INTEGER_EXPRESSION_2) {
// scripting
}
// optional:
// more 'else ifs'
}
// optional:
else {
  // scripting
}

<![CDATA[

  if (NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE <> INTEGER_VALUE_OR_INTEGER_EXPRESSION_1) {
    // scripting
  }
  // optional:
  else if (NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE <> INTEGER_VALUE_OR_INTEGER_EXPRESSION_2) {
  // scripting
  }
  // optional:
  // more 'else ifs'
  }
  // optional:
  else {
    // scripting
  }

<![CDATA[

  if (NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE > INTEGER_VALUE_OR_INTEGER_EXPRESSION_1) {
    // scripting
  }
  // optional:
  else if (NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE > INTEGER_VALUE_OR_INTEGER_EXPRESSION_2) {
    // scripting
  }
  // optional:
  // more 'else ifs'
  }
  // optional:
  else {
    // scripting
  }

]]>

<![CDATA[

  if (NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE < INTEGER_VALUE_OR_INTEGER_EXPRESSION_1) {
    // scripting
  }
  // optional:
  else if (NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE < INTEGER_VALUE_OR_INTEGER_EXPRESSION_2) {
    // scripting
  }
  // optional:
  // more 'else ifs'
  }
  // optional:
  else {
    // scripting
  }

]]>

<![CDATA[

  if (NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE > INTEGER_VALUE_OR_INTEGER_EXPRESSION_1A and NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE < INTEGER_VALUE_OR_INTEGER_EXPRESSION_1B) {
    // scripting
  }
  // optional:
  else if (NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE > INTEGER_VALUE_OR_INTEGER_EXPRESSION_2A and NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE < INTEGER_VALUE_OR_INTEGER_EXPRESSION_2B) {
    // scripting
  }
  // optional:
  // more 'else ifs'
  }
  // optional:
  else {
    // scripting
  }

]]>

<![CDATA[

  if (NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE < INTEGER_VALUE_OR_INTEGER_EXPRESSION_1A or NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE > INTEGER_VALUE_OR_INTEGER_EXPRESSION_1B) {
    // scripting
  }
  // optional:
  else if (NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE < INTEGER_VALUE_OR_INTEGER_EXPRESSION_2A or NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE > INTEGER_VALUE_OR_INTEGER_EXPRESSION_2B) {
    // scripting
  }
  // optional:
  // more 'else ifs'
  }
  // optional:
  else {
    // scripting
  }

]]>

<![CDATA[

  if (NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE >= INTEGER_VALUE_OR_INTEGER_EXPRESSION_1A and NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE <= INTEGER_VALUE_OR_INTEGER_EXPRESSION_1B) {
    // scripting
  }
  // optional:
  else if (NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE >= INTEGER_VALUE_OR_INTEGER_EXPRESSION_2A and NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE <= INTEGER_VALUE_OR_INTEGER_EXPRESSION_2B) {
    // scripting
  }
  // optional:
  // more 'else ifs'
  }
  // optional:
  else {
    // scripting
  }

]]>

<![CDATA[

  if (NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE <= INTEGER_VALUE_OR_INTEGER_EXPRESSION_1A or NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE >= INTEGER_VALUE_OR_INTEGER_EXPRESSION_1B) {
    // scripting
  }
  // optional:
  else if (NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE <= INTEGER_VALUE_OR_INTEGER_EXPRESSION_2A or NAME_OF_OBJECT.NAME_OF_INTEGER_ATTRIBUTE >= INTEGER_VALUE_OR_INTEGER_EXPRESSION_2B) {
    // scripting
  }
  // optional:
  // more 'else ifs'
  }
  // optional:
  else {
    // scripting
  }

]]>

the built-in 'statusattributes' String Dictionary:

<object name="NAME_OF_PLAYER_OBJECT">

  <attr name="NAME_OF_ATTRIBUTE_A" type="TYPE_OF_ATTRIBUTE">VALUE_OR_EXPRESSION</attr>

  <statusattributes type="stringdictionary">

    <item>

      <key>NAME_OF_ATTRIBUTE_A</key>
      <value>VALUE_OR_EXPRESSION</value>

    </item>

  </statusattributes>

</object>

<!--
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
And/or, the special 'game' Game Settings Object:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-->

<game name="NAME_OF_YOUR_GAME">

  <attr name="NAME_OF_ATTRIBUTE_A" type="TYPE_OF_ATTRIBUTE">VALUE_OR_EXPRESSION</attr>

  <statusattributes type="stringdictionary">

    <item>

      <key>NAME_OF_ATTRIBUTE_A</key>
      <value>VALUE_OR_EXPRESSION</value>

    </item>

  </statusattributes>

</game>

Scripting the built-in 'statusattributes' String Dictionary:

http://docs.textadventures.co.uk/quest/types/stringdictionary.html
http://docs.textadventures.co.uk/quest/using_dictionaries.html

NAME_OF_PLAYER_OBJECT_OR_NAME_OF_THE_SPECIAL_'game'_GAME_SETTINGS_OBJECT.NAME_OF_ATTRIBUTE_A = VALUE_OR_EXPRESSION

NAME_OF_PLAYER_OBJECT_OR_NAME_OF_THE_SPECIAL_'game'_GAME_SETTINGS_OBJECT.statusattributes = NewStringDictionary ()

dictionary add (NAME_OF_PLAYER_OBJECT_OR_NAME_OF_THE_SPECIAL_'game'_GAME_SETTINGS_OBJECT.statusattributes, "NAME_OF_ATTRIBUTE_A", "VALUE_OR_EXPRESSION")

OH MY GOD THANK YOU. IT WORKS NOW!!!!! THANK YOU SO MUCH!!!!!!
Btw, one last question. Is there any way to increase/decrease the status attribute, not just set it? Thanks!


the 'statusattributes' is just the DISPLAYMENT of your Attributes, the '!' in the Value of the 'statusattributes' will display the current Value of the Attribute (so it'll be updated/up-to-date as your Attribute's Value changes: such as being increasing/decreased). You can increase/decrease an Integer Attribute, and the 'statusattribute' of it will display that change (increase/decrease).


this step by step guide on making a demo game, which you can play/study, covers everything on 'statusattributes', including handling of allowing you to see (and control/test during play) how increasing and decreasing works with status attributes:

http://textadventures.co.uk/forum/quest/topic/5387/i-really-need-help#37375


ask if you need any help on anything


Wait, so it is being increased/decreased? So how do I make it display the increase/decrease? Btw what does GUI editor and string dictionary mean? Thanks


So how do I make it display the increase/decrease?

msg ("You now have {player.housepoints} housepoints!")

image

http://textadventures.co.uk/forum/quest/topic/mk6mzdqtjeepxngeb-kghq/problems-with-status-attributes-again#00c986e0-cfcb-4e77-85c5-08b30d889229


what does GUI editor ... mean?

This is NOT the GUI (this is full code view):
image


You can only use the GUI online. (Graphical User Interface - When using it, you can click stuff.)


http://docs.textadventures.co.uk/quest/webeditor.html

http://docs.textadventures.co.uk/quest/#AdvancedTopics


what does ... string dictionary mean?

http://docs.textadventures.co.uk/quest/using_dictionaries.html


http://docs.textadventures.co.uk/quest/


No I mean can you command it to increase player.housepoints by a number instead of setting it?


EDITED

player.housepoints = player.housepoints + 10

(Replace 10 with whatever integer you want. (Just be sure you do NOT use quotation marks! Otherwise, you will have errors.)


In block view I think it would be to set a variable and put the code into the =(expression) part


add new script -> 'variables' section/category -> 'set a variable or attribute' Script -> (see below)

set variable player.housepoints = [EXPRESSION] player.housepoints + 10 // addition

// you can use a different operator too/instead:

set variable player.housepoints = [EXPRESSION] player.housepoints - 10 // subtraction

set variable player.housepoints = [EXPRESSION] player.housepoints * 10 // multiplication

set variable player.housepoints = [EXPRESSION] player.housepoints / 10 // division (normal division: finds/gets the quotient)

set variable player.housepoints = [EXPRESSION] player.housepoints % 10 // "modulus" (division, but instead, it finds/gets the REMAINDER)


add new script -> 'output' section/category -> 'get input' Script

// this requires you to type in an integer number, as I'm not showing you the checking scripts that should be added for this

-> then -> add new script -> add new script -> 'variables' section/category -> 'set a variable or attribute' Script -> (see below)

set variable player.housepoints = [EXPRESSION] player.housepoints + ToInt (result)


Hmm? When in code view it says player.housepoints = player.housepoints + 10 but when I test run it an error message pops up "Error running script: Error compiling expression 'player.housepoints + 10': ArithmeticElement: Operation 'Add' is not defined for types 'Object' and 'Int32'"


either:

you're doing this script before you set/create the Attribute (can't do an operation on an Attribute that doesn't exist)

or

your 'player.housepoints' was not created/set-up as an Integer Attribute, and hence the error with trying to do an arithmetic operation with it.

for an example:

player.housepoints = "hi" // created/set-up a String Attribute
player.housepoints = player.housepoints + 7

for BOTH PEOPLE AND COMPUTER:
"hi" + 7 = HUH?!!! ERROR!!!!


That means player.housepoints doesn't exist in the game.

(It only exists if the player opens the closet in the last version of your code. You can't check the value of it in a script if it doesn't exist yet. In the start script, add the line player.housepoints = 0. Then, it will exist from the beginning.)


This topic is now closed. Topics are closed after 60 days of inactivity.

Support

Forums