The Editor button that allows you to make Complex Combats easily was bugged, it is now fixed.
All posts by hosted
New ‘inv’ attribute added to tt tag.
The ‘inv’ attribute stands for ‘if not visited’ and will easily let you restrict the option to turn to a reference if it has already been visited. Please see the ABML documentation for details.
Referencing extended to Arrays
The new variable referencing facility has been extended to arrays and even array references… I’ve tested it even on function parameters and it seems to work which is awesome… exhaustive testing has not been done ‘cos, well, nobody seems to use this site much anyway let alone code as deeply as using reference variables (check out my tiny violin), but trust me, it’s pretty impressive stuff, and highly useful.
One tiny note:
You cannot reference individual array elements, because I haven’t REALLY implemented dereferencing properly, you can only reference the whole array and index it from there, e.g.
$x=(5,4,3,2,1);
$z=\$x[0] ;
&print $z; ## expecting 5?
…wont work.
Reference the whole thing and dereference the reference as if it were an array like so:
$x=(5,4,3,2,1);
$z=\$x;
&print $$z[0];
New! Reference Variables
Highly experimental but I now have implemented rudimentary Reference Variables and Pass-By-Reference for functions in SEL. For those who are not familiar with references in programming here’s how it is useful e.g.:
$x=5;
$y=\$x; ## $y is now a reference for $x
&print $$y; ## prints 5, note the DEREFERENCING with $$
$x=10;
&print $$y; ## prints 10 since $$y is effectively what $x is
Example of passing by reference to a function:
sub testPBR(\$x){
$$x=20;
return 5;
}
$z=&testPBR(\$x);
&print $x; ## prints 20! This is because $x has been modified in function
&print $$y; ## also prints 20 since $$y is still a reference to $x
&print $z; ## prints 5, this means you can modify as many vars as you like by calling a function and still have the return variable free for use.
Advanced ABML buttons fixed
The Editor is now fully functional.
Spiffy Editor Fixed
Forget the last post, I’ve sorted it.
Do Not Use Main Editor
The so-called spiffy new editor is not as spiffy as I thought. It will destroy any code requiring literal strings surrounded by apostrophes i.e. most advanced tags will get deleted without as much as a by-your leave.
I’ve only just discovered this. My apologies of you have lost any work. I know I have lost loads. I will rectify it as and when I can recover my faith in the project.
The in-play editor works fine though. Whoop.
Various Updates
Many fixes etc. have happened:
The new Editor is mostly operational without bugs (except the advanced ABML buttons still aren’t working)
You may now edit your Adventures In-Play without having to go to the Editor now
I have stripped the unfortunate extra weird characters that came about due to a botched find and replace in all adventures (there may be some invisible ones left strewn about)…
And probably loads of other stuff since my last News update that I cannot remember. Don’t forget to join the Facebook Group (link is on the Main Menu) if you want more regular and frequent updates and other nonsense chat…
option tag has changed it’s name to choice
I have changed the ABML option tag name to choice, and have made substitutions in all user books to this effect. Please use <choice> instead of <option> from now on, nothing else has changed. Documentation update forthcoming.
Do NOT use Editor if you are using advanced ABML tags.
A new error has arisen due to the new Editor. The <option> tag will automatically get completely stripped by the new Editor! This is because it conflicts with the existing html <option> tag which is not allowed to exist outside of forms 🙁
For the time being please do NOT load any references into the Editor that may have an <option> tag in it, or attempt to encode an <option> tag into the editor it will only leave you frustrated and annoyed.
The plan is to rename the option tag something else, and execute a major substitution on all references in the databse to the new tagname. This may take some time to do.