New update today!
06 Jan 2010 (Release 54)
=========
*CHANGE. The "linkX$" action was causing problems and is now removed from TAB. Please do not use this (rarely used) action any more. It will not work.
*FIX. Temporary workaround fix to "gameover" action when used after "pause" action to prevent user keypresses affecting "gameover" messagebox and causing it to not appear at all.
*FIX. The %speechloc% character speech tag was broken. Now works.
*FIX. The following commands were previously not working or listed in the language document:
charlocn1 [ >= | <= | <> | > | < | = ] X
Example: "charlocn1>=40"
Example: "charlocn1=%speechloc%
charlocn2 [ >= | <= | <> | > | < | = ] X
Example: "charlocn2>=37"
Example: "charlocn2=%speechloc%
*FIX. If a database is loaded and the User quits the TAB_Editor and responds affirmative to the messagebox prompt: "Save Database Before Exiting?" the "Save File" requester will now correctly appear allowing data to be resaved etc. After which the program will return to the TAB Editor.
This was not previously occurring and might give the illusion that data was being automatically saved on exit without any confirmation when the program closed...
*FIX. The Game Window Title (as entered on the Game Settings Editor) will now show up on the opening intro splash dialog window if the TAB Player is set to autoload and run a game from the Player main directory (autorun.tab)
Previously not possible because the game data wasn't loaded first before the splash dialog window was displayed.
*NEW & IMPROVED. A transcript will now log text output sent to the game richedit control in real time to a user-designated file - instead of previously only doing a simple capture of all the current text in the control to a text file when selected from the TAB Player [Adventure] menu.
There are now 2 menu options on the Player to replace the [transcript] menu option:
[Transcript On] - If not already on prompts the user via the file requester to select a filepath (if required) and create an output transcript text file for recording.
[Transcript Off] - If not already off, stops transcript recording by closing the output file.
When turning on transcript it is possible to select an existing transcript file and have subsequent logged text appended to it...
NOTE: Text on a "dialogmess" box, an ask/answer inputdialog box or any TAB system messagebox will not be recorded.
*CHANGED. The "transcript" ACTION is now defunct and is replaced with 2 new actions:
"transcripton" and "transcriptoff" which behave the same as their [Adventure] menu option counterparts.
*NEW. "randomroomX,X,X,X,X....."
Will randomly select one of the room numbers indicated then do an automatic "gotoX" action to place the player in that room and describe it eg:
#randomroom1,5,23,56,70#
Put player in a random pick of one of the above rooms 1,5,23,56 or 70 and then do a location describe.
There's no upper limit on the number of random rooms you can list - but they must be valid location numbers.
You could possibly make the game start off each time in one of the different stated random rooms...
*NEW A location can now have alternate descriptions. (individual elements in a location text)
A spare User Flag needs to be loaded with a special numerical value to indicate to TAB that a location contains alternate location descriptions and that when doing a location describe to simply print out a particular numbered alternate description from out of the location text.
An example:
Room 5 is required to contain ALTERNATE descriptions.
We will also use a spare flag say... flag 31
At the start of the game we decide that we want to print the FIRST alternate description of room 5 when the player arrives in it - until, that is, we decide otherwise...
Because it's room 5 we load flag 31 with 5000 + THE NUMBER OF THE ALTERNATE DESCRIPTION!
In this case it will thus be set with the value: 5001
The formula is:
Flag Value = (room number * 1000) + THE NUMBER OF THE ALTERNATE DESCRIPTION
So we go to Script1 or Script2 and put in an entry early on to put in an ACTION #flag31=5001# like so:
[start]turns=0[acts]flag31=5001[end]
(We might need also to set in that entry any more flags relating to OTHER alternate description rooms too that we might be using in a game so that TAB "knows" what to do)
Now we go to the Location Editor to enter our room description(s) for Location 5. We have decided beforehand that there will be 4 alternate scenes for room 5. (although most will probably use only 1 or 2 usually to reflect little changes in the room atmosphere etc) We will use bracketed number tags to make plain to TAB the starting and ending points of each individual segment...
Location 5 text
===========
[1]This is the first room 5 description.[1]
[2]This is the second room 5 description.[2]
[3]This is the third room 5 description.[3]
[4]This is the fourth room 5 description.[4]
=========
You can use carriage returns to space them out for clarity.
The tags are important and *MUST* be present for correct textual output.
TAB will grab the chunk it needs from between the number indicators BEFORE it goes on to do the checks for cyclic and then random formatting etc. - so it would be perfectly possible to include cyclic/random elements within each alternate room description too!
Recap:
If the location were 16 and the spare flag used 56 we'd need to set an action such as:
#flag56=16003#
which would cause TAB to only print alternate description 3 of room 16
If the location were 500 and the spare flag used was 1 an action such as:
#flag1=500002#
would always print the second alternate description of room number 500.
========
The only slight 'issue' is with the opening location (start room) of the game and this will only ever apply if you wish to have alternate room descriptions in the game START ROOM only. So best to think about that right at the start of planning your game...
Start room locations are printed before any script processing is done, so there is no way of telling TAB via a flag that a starting room location may contain alternate descriptions.
However there is a workaround for that. We can erase/delete the start location so it is blank and then re-insert the text and directions into another room... then we can go to Script 2 and set the relevant flag and do a "gotoX" action to show the new start room...
For example if the Start Room = 1, we delete location 1 and reinsert it to say an unused location, say 100. Let's imagine we are using a spare flag 22 and have 3 alternate descriptions for our room 100. (new opening start room)
Script 2
========
[start]room=1[acts]flag22=100003#goto100[end]
If in start room, set the flag 22 then describe the third alternate description of room 100.
I am sure you will think of times when it may be handy to use alternate descriptions after certain puzzles or changes in a game etc. Now it will be possible.
eg: room description says "There is a closed cupboard" in the text.
Player opens the cupboard (if successful then use action to set "alternate room flag")
Alternate room description now tells player somewhere in text: "The cupboard door has been opened"
*NEW. Alternate 'Object Examine' messages, Alternate 'Character Examine' messages and Alternate 'Character Announcement' texts can be entered into the Editors using the same procedure as above using the flags with the following formulas:
The formula for alternate object examine messages:
Flag Value = (object number * 1000) + 100 + THE NUMBER OF THE ALTERNATE DESCRIPTION
The formula for alternate character examine messages:
Flag Value = (character number * 1000) + 200 + THE NUMBER OF THE ALTERNATE DESCRIPTION
The formula for alternate character announcement texts:
Flag Value = (character number * 1000) + 300 + THE NUMBER OF THE ALTERNATE DESCRIPTION
Remember, if using alternate descriptions to set the relevant flags to contain the default starting description (formula value) in a coding table so as to trigger before a game starts.
Examples
=======
#flag23=30103# - set object 30's examine message to only print description 3
#flag2=10201# -set character 10's examine message to always show description 1
#flag101=45302# - set character 45's announcement text to print description 2
The following actions will also reflect these new instructions in the text printed:
objn1mess, objn2mess, objmessX, autoexamobj, examall, charn1mess, charn2mess,charmessX,
autoexamchar.
NOTE:
The portions of Object examine messages and Character examine messages which have been constructed to contain Character speech replies ie. those output by the "charobjn1mess", "charobjn2mess", "charcharn1mess" and "charcharn2mess" ACTIONS (those that contain %chX% format tags) MAY NOT contain ALTERNATE descriptions. Only the PLAYER examine parts of these messages (the text before the " %endmess%" tag) is ALLOWED to contain alternate descriptions.
http://tab.thinbasic.com/Regards,
catventure.