SYS:CHOSEN (result from choose command)
SYS:ROLLED (result from rolled dice random comand)
SYS:LOOPINDEX (the position in the for loop command)
SYS:TARGET (from target, hit, attack and focus commands - also when assigning a class to an entity)
To use you can recall as a special lookup %SYS:TARGET%.
_____________________________
NEW: ASSIGN COMMAND
Instead of assigning classes on build, you now assign classes post build. i.e.
build map
map.obj (assigns the obj class - classes are stored as global scripts! - ignore store as .class option)
Example: BOOK CLASS. %target% is takeable;
%target% is readable;
Then you would type:
map.book
_____________________________
SCRIPTING: USE ! TO FORCE FEEDBACK ON COMMANDS
!%target% is takeable;
This will force the engine to tell the player that the targeted object is now takeable.
_____________________________
||%SEP%||%A%||%RATE%||
You can now put special lookup commands next to each other by separating using || as above.
_____________________________
UPDATE: %SPECIAL% also looks in SESSION DATA
type showdata to see all map data to see what you have access to, for example:
?%n-is-active%=1:narrate open!narrate closed;
_____________________________
UPDATE: DUPLICATE OBJECTS
IF you build more than one of the same object it will create duplicates with a number appended to the end. i.e. map, map2, map3 etc..
_____________________________
DELETE
Now automatically detects what you are trying to delete including objects, scripts, variables and custom commands.
_____________________________
FIXES:
FIXED: store as global IF (AND)
FIXED: store as local IF (THEN)
ADLENGINE BUILD 1.1.55.4... NOW LIVE! = FOR LOOP, WHICH.. IS (SELECT CASE), ARRAYS & BUG FIXES
Lots of cool new stuff in this build.
WHICH.. IS (select case)
[how to use] first add IS statements by doing the following
isXYZ:do something
IS accepts boolean 0-1, true/false, numbers 0-9, y/n or can also accept custom naming.
Currently it works using temp vars as above not direct calls to player.var or target.var.
DELAY x
You can now specify a delay before the next script action processes. The delay runs until the delay value reaches 0, subtracting 1 each tick. The value can hold any number but bear in mind too high a number will result in too long a delay!
short delay:
delay 100
long delay:
delay 1000
NEW TIMER COMMANDS
START TIMER - resumes an active timer.
stop timer 0
STOP TIMER - pauses an active timer.
stop timer 10
ERASE TIMER - deletes an active timer.
erase timer 5
Timers will need to be micromanaged. The best way would be to create a variable pointer to timers you want to have control over. Timers are incremented from 0 and their data is stored in session_map_data. Type edit session to view.
#healtimer=1;
start timer %healtimer%
BUGS FIXED
TIMED EVENTS are now working again!
after x second do something every x minutes do something
DELETE MULTIPLE CHARACTERS Delete no longer deletes multiple characters occasionally when pressing backspace.
DELETE KEY: no longer deletes entire code entry while text is being rendered, was most notable when adlengine was loading if you made mistakes trying to enter commands and had to delete characters.
ADLENGINE QUICK FIX v1.1.55.3c - Query Var Command (?)
Quick fix: the query variable command (?) now correctly checks against local/global & private vars, across all comparisons. i.e.
A tip for naming variables: base their names on their scope / function.
e.g. local
$clockhours=12
e.g. global
#timehours=12
#timemins=15
#timesecs=0
e.g. private
~phealth=100
ADLENGINE v1.1.55.3b NOW LIVE - LETS GET DYNAMIC!
Another big update bringing some cool new functionality to #ADLENGINE that increases both the control you have over the engine and the environments you are creating.
-----------------------------
NEW %SPECIALS%:
-----------------------------
%specials% can be placed in any command or as part of any data and provide a means to LOOKUP data, when processed the engine checks against, vars, map data and more to return the current value of the special.
e.g.
[code[room description is You are standing in a cellar, a grill lies %grillstatus%
When the room description is rendered %grillstatus% will be swapped with a value you have set up in a variable for example as per below. This happens as it happens.
$grillstatus=open grill.if opened $grillstatus=open grill.if closed $grillstatus=closed ------------------------------------------------------------
NEW: Dynamic room name and description: allows you to add %specials% which are processed at rendering, reflecting changes as they happen.
NEW: adlengine will try to load images / sounds from a new game folder in users/username/adlengine/gamename - scripts will follow in a future update.
-------------------------
NEW VARIABLES:
To declare a local variable (accessed only in the same room):
$varname=something
To declare a global variable (accessed anywhere in the map):
#varname=something
To declare a private variable (useful for storing things to do with the player):
~varname=something
VARS against VARS Vars can now be used to manipulate (divide,times,minus,plus,equals and append) each other in any combination; As follows:
$varname-anothervar
Currently You Have Access To The Following! Text Exposed:
{text-main}
{text-loc}
{text-chat}
{text-debug}
{text-input}
{text-inputmarker}
Images Exposed:
{image-main}
{image-title}
{image-splash}
{image-inputbg}
{
Text Properties: <*>.x
<*>.y
<*>.font
<*>.fontsize
<*>.fontcolor.r
<*>.fontcolor.g
<*>.fontcolor.b
<*>.visible
Image Properties:
.x
.y
.width
.height
.image
.opacity
.visible
To edit a theme element you would do the following:
{text-main}.fontsize=32
You can also create your own elements by:
{text-name}.new {image-name}.new
To delete a theme element:
{text-name}.delete
To show / hide a theme element:
{text-name}.visible=1 {text-name}.visible=0 ---------------------------------------------
-----------------------
SOUND ENGINE:
-----------------------
You can now LOOP / STOP SOUNDS.
To loop a sound:
loop sound soundname
To stop a sound:
stop sound soundname ------------------------------------------------
UPDATE: about VARS
After much testing, I determined using letters was not a good replacement for symbols so the new symbols coming in the next update for vars are:
$ = local variable
i.e.
$grillstatus=open
# = global variable
#orchealth=100
~ = private variable
~phealth=100
You will use these symbols to manipulate also.
Coming Soon: Dynamic Room Name and Description.
First set creative mode.
creative
Next lets build an exit down.
build exit d
Now lets make the grill an exit.
build grill.exit
... and have it control the exit down.
grill.controls n
Let's make our description dynamic reflecting the changes to the grill as it happens.
room description is Before you towers a solid gate of steel, beneath and to the side a grill lies %grillstatus%
We need to make grillstatus a variable. Let's make it a local.
lgrillstatus=closed
We also need to update our status variable.
grill.if opened lgrillstatus=open
grill.if closed lgrillstatus=closed
Now when you open / close the grill it will be reflected in the description as the special commands for the room name & description remain and only get processed when they are rendered.
This will also be live in the next update... coming shortly!