ya, sorry about the code heavy posts, it's just so much faster easier for us to write via using the code, vs trying to explain step by step via using the GUI~Editor (it's a lot more work to explain step by step through using the GUI~Editor, vs writing, copying, and pasting in the code). So, our posts are going to be confusing and non-useful for all the non-coders or noobies to coding (I'm still very much a code noobie myself).
Thanks for letting us know, as now we'll try to explain it more clearly, with less~no code usage (well hopefully I can do so, lol), for you, hehe.
--------------
create a new game, so I can give an example step by step guide for you to follow.
in code (just for reference to slowly make code less intimidating hehe), this is what the default new game looks like (see further below in the code box):
(in fact, you can view the HTML code for any webpage, well if it's not encrypted anways, as at the top of your browser screen is a horizontal bar, and there should be a 'view' choice, and under it should be a 'view source', which will show you the HTML of the webpage your on, or look for some similiar type of path and choices... though most computers should be very similiar to this description of its location)
In the GUI~Editor, at the top of the screen is a horizontal bar, there is a toggle button that looks like a notepaper, between the 'play' and '?-help' buttons, which toggles back and forth between the GUI~Editor view mode and the code view mode, so this is one way to see your (entire) game code.
another way to see your entire game code, is to simply open up your game file via a text software~program, such as notepad, wordpad, notepad++ (
http://notepad-plus-plus.org/ ) ~ I really like this as it's useful for code reading, writing, and troubleshooting, text editor (apple computer), and etc. If you download and use notepad++, all you got to do is at the top, in the horizontal bar is to click on 'language', and under it, select 'XML' (eXtensible Markup Language), which works for quest, as quest does use it at our surface level (along with other languages too, such as in the quest engine's underlying code, and JS works too, but I've not learned any of these other languages yet ~ everything I know is thanks to quest, laughs. I knew ZERO coding before quest, and I've come a long way for myself, but unfortunatly, it's not very far in terms of the basic coding~programming level that is yet far beyond me... laughs)
aside from seeing the entire game code, you can specifically see any specific scripting's (Functions, Verbs ~ Objects' Script Attributes, Commands, Turnscripts, Timers, and etc, via a similiar paper-lik button), which Pixie has some very good guides which probably will better explain to you how to do this stuff than I can with this post of mine (hehe):
viewtopic.php?f=18&t=4771 (this is the link I was looking for, I think... This is the one that is probably the most helpful)
viewtopic.php?f=18&t=4953viewtopic.php?f=18&t=5023viewtopic.php?f=18&t=5058viewtopic.php?f=18&t=4807 (this can possibly really help you too, it is specifically about changing room descriptions, but the method is universal, as it's the code~'if' logic~mentality for~on how to change things)
viewtopic.php?f=18&t=5111 (this is a bit off-topic, and more advanced, dealing with modifying~customizing the UI using, HTML:HyperText Markup Language:web page~browser creation and JS:Java Script, code languages and etc stuff)
<asl version="560">
<include ref="English.aslx" />
<include ref="Core.aslx" />
<game name="xxx">
<gameid>xxx</gameid>
<version>1.0</version>
<firstpublished>2015</firstpublished>
</game>
<object name="room">
<inherit name="editor_room" />
<object name="player">
<inherit name="editor_object" />
<inherit name="editor_player" />
<object>
</object>
</asl>
I put in the line spaces to better show you the different tag blocks of stuff
--------------
with coding:
horizontal code structure (hackers ~ expert programmers can read code horizontally):
<asl version="560">(your entire mass of game code)</asl>
but we code noobs, prefer the vertical code structure (easier for us to read):
<asl version="560">
-> // your mass of game code
</asl>
the '<asl version="560">' is the beggining~start of the 'asl (your game)' tag block
the '</asl>' is the ending~finish of the 'asl (your game)' tag block
so this '<asl version="560">xxx</asl>' tag block, is your (entire) game block, so everything needs to be inside of it, which you can see, is indeed so, with your own newly created game, right?
-------------------------
all of the tag blocks in the default new game code (shown horizontally):
01. <asl version="560">xxx</asl>
02. <game name="xxx">xxx</game>
03. <object name="room">xxx</object>
04. <include ref="English.aslx" />
05. <include ref="Core.aslx" />
06. <object name="player" />
07. <inherit name="editor_room" />
08. <inherit name="editor_object" />
09. <inherit name="editor_player" />
10. <gameid>xxx</gameid>
11. <version>1.0</version>
12. <firstpublished>2015</firstpublished>
---------------------------
examples of Object-Oriented Programming Structure of 'Containment ~ Parent:global - Child:local' Heirarchy Order:
(this is only my pseodo-understanding of it, as I'm sure I'm completely wrong, but I don't know that deeper level of correct understanding of it, lol)
in Quest these are the (anything with the tags in code view):
ELEMENTS:
http://docs.textadventures.co.uk/quest/elements/+
ATTRIBUTES:
http://docs.textadventures.co.uk/quest/types/more global~parent
HK
-> pants
->-> wallet
->->-> $1
...........more local~child
more global~parent
C:\ Drive
-> Programs
->-> Quest
............more local~child
more global~parent
Earth
-> Continents
->-> Europe
->->-> Countries
->->->-> France
->->->->-> Cities
->->->->->-> Paris
->-> Asia
->-> Africa
->-> Australia
->-> North America
->-> South America
->-> Antarctica
....................................more local~child
more global~parent
asl
-> include ref="English.aslx"
-> include ref="Core.aslx"
-> game
->-> gameid
->-> firstpublished
->-> author
->-> version
-> room
->-> inherit name="editor_room"
->-> description
->-> player
->->-> inherit name="editor_object"
->->-> inherit name="editor_player"
->->-> strength
............................................more local_child
.
----------------------------
the physical game file itself however is (quest's file extension of): *.aslx
for example of my testing game files' names (lol ~ I got many many of them):
testing game stuff.aslx
----------------------------
so, do you recognize any *.aslx files within your new game's code?
<include ref="English.aslx" />
<include ref="Core.aslx" />
Alex' quest engine is actually separate code files, thus if you're a good programmer, you could create your own engine code files, using them instead of Alex's code files, having your own game engine, quest is that powerful~customizable.
If you played modern pc games, I'm sure you're familiar with 'mods', right? For example, one of the last more modern game I played was TES:Morrowind (ya, I'm old... lol), but it had a very user friendly feature (at that time) of letting you easily add~remove 'mods' to the game, and I'm sure every actual modern game has a feature like this.
Well, quest does this via 'Library Files', and is made up of Alex' own (default) Library Files (quest's 'mods'):
(Library Files are 'mods' that add code into your game file)
English.aslx ~ this provides all of the language used in and to~for quest as English.
and then the 'Core.aslx' (is actually a collection of many 'core' *.aslx files, which you can see if you open up the quest folder), which make up quest's engine.
the order (top to bottom) of these matters, as they build upon each other to make quest work correctly. so, if you ever add in others library files or you own library files, make sure they're in the proper order (which is beyond my level of programming understanding, lol).
--------
anyways, if you're interested in making~using Library Files:
instead of the '<asl version="560"></asl>' tag, you use:
<library>
-> // your mass of code
</library>
it uses the same file extension as a game file: *aslx
and to add a Library File to your game (your game file):
you need the library files to be in the same folder as your 'quest.exe' file, and then in your game's (your game file's) code, you do this (pseudo-examples):
<asl version="560">
<include ref="English.aslx" />
<include ref="Core.aslx" />
<include ref="Chase's Wearables (equipment) Library File.aslx" />
<include ref="Sora's Stackable (item) Library File.aslx" />
<include ref="Pixie's Simple Combat Library File.aslx" />
<include ref="Jaynnebonne's Dialogue Library File.aslx" />
<game name="xxx">
<gameid>xxx</gameid>
<version>1.0</version>
<firstpublished>2015</firstpublished>
</game>
<object name="room">
<inherit name="editor_room" />
<object name="player">
<inherit name="editor_object" />
<inherit name="editor_player" />
<object>
</object>
</asl>
-----------
anyways, back to the new game code:
the:
<game name="xxx">
-> // blah Attributes
</game>
tag block corresponds to the GUI~Editor's:
'game' Object -> (its various Tabs) -> (its various settings~Attributes for each of the Tabs)
this 'game' Game Object, is a special Object, which holds your game's global settings, which you can set up however you want.
So... let's test something... in the GUI~Editor, click on 'game' on the left side's 'tree of stuff' so it is highlighted. Now, on the right side, you should be on the 'Setup' Tab by default already, find the text box for 'Author', and type in your own name into it.
save your game.
now, go into (global~entire game code) code view (at the top of the screen, in the horizontal bar, click on the notepaper button), do you see a change?
our game code is now this:
<asl version="560">
<include ref="English.aslx" />
<include ref="Core.aslx" />
<game name="xxx">
<gameid>xxx</gameid>
<version>1.0</version>
<author>your_name</author> // see here, a new code line, an additional Attribute has been added to the 'game' Game Object
<firstpublished>2015</firstpublished>
</game>
<object name="room">
<inherit name="editor_room" />
<object name="player">
<inherit name="editor_object" />
<inherit name="editor_player" />
<object>
</object>
</asl>
--------------------
let's now try giving a description to our 'room' Room Object now:
go back into GUI~Editor view mode (again at the top of the screen, in the horizontal bar, click on the notepaper like button)
click on 'room' on the left side's 'tree of stuff' now, so it is highlighted, click on the 'Room' Tab this time, and type in something to the 'Description' big text box.
save game.
go back into code view, and see if you can spot the change on your own.
----------------
Everything that you do in the GUI~Editor, corresponds to a specific 'tag block' in code (and vice versa ~ if you create a tag block in code, it'll show up in the GUI~Editor too)
----------------
now, for one last time, go give your 'player' Object an Attribute via the GUI~Editor:
'player' Object -> 'Attributes' Tab -> Attributes (NOT Status Attributes) -> Add -> (see below)
(Object Name: player)
Attribute Name: strength
Attribute Type: int (Integer)
Attribute Value: 50
and go see what happens in code (remember to save your game before you switch to code view).
it should look like this now:
<asl version="560">
<include ref="English.aslx" />
<include ref="Core.aslx" />
<game name="xxx">
<gameid>xxx</gameid>
<version>1.0</version>
<author>xxx</author>
<firstpublished>2015</firstpublished>
</game>
<object name="room">
<inherit name="editor_room" /
<description>xxx</description>
<object name="player">
<inherit name="editor_object" />
<inherit name="editor_player" />
<attr name="strength" type="int">50</attr>
<object>
</object>
</asl>
correct? does your game code match up with mine? (ignore the vertical placement of things ~ so long as they are within the correct blocks of course, as the vertical placement ONLY matters with with 'include ref~library files', however, the horizontal placement, the indenting~nesting, MATTERS big time!)
------------
see if you can kind of get this...
if you can, then I'll go on to doing the rest (the actual) of guide for you. if not, let me know, and we'll work on understanding this first.
the reason, is if you can get this, you'll understand better with where to specifically place (and how to place) the code people post~provide here, hehe.
and also, in the meantime, use Pixie's links that I provide here, as they are guides to doing this specific placement of code. If you're still having trouble, then let me know, and I'll finish up doing the rest (actual) guide for you.
I'm just tired right now... (just this took much longer than I thought it would, lol).