More actions
No edit summary |
|||
Line 1: | Line 1: | ||
=== History === | === History === | ||
==== 2004 ==== | |||
September: Weak queues get added with the introduction of Make-X. | |||
==== 2005 ==== | |||
???: Strong queues get added. | |||
???: Region commands get added to create and manipulate instances. | |||
???: The p_loaddelay command gets added. | |||
===== 2009 ===== | |||
???: Structs get added - Ash convinced Andrew. | |||
=== Our Implementation === | === Our Implementation === | ||
Our RuneScript implementation deviates in a few ways | Our RuneScript implementation deviates in a few ways. This is because we continued to learn history during the project's development. We want to support the original language behaviors 100%. | ||
# We support some language features that were introduced later: local variables, procs, booleans, structs, enums, dbtables, and debugprocs. | # We support some language features that were introduced later: local variables, procs, booleans, structs, enums, dbtables, and debugprocs. Macros are not supported currently. | ||
# Our pointer checking supports inversions: <code>if (p_finduid(uid) = false) { return; }</code> is valid code, and code following it will have the pointer set. | # Our pointer checking supports inversions: <code>if (p_finduid(uid) = false) { return; }</code> is valid code, and code following it will have the pointer set. | ||
# We support local variable declarations at any scope. Traditionally the real game must have them at the top level. | # We support local variable declarations at any scope. Traditionally the real game must have them at the top level. | ||
# We split strings on the pipe <code>|</code> character to continue text on newlines | # We split strings on the pipe <code>|</code> character to continue text on newlines if we need a manual break to match screenshots. | ||
=== Learn More === | === Learn More === | ||
[[RuneScript/NPC Queues|NPC Queues]] | [[RuneScript/NPC Queues|NPC Queues]] |
Revision as of 04:46, 17 March 2025
History
2004
September: Weak queues get added with the introduction of Make-X.
2005
???: Strong queues get added.
???: Region commands get added to create and manipulate instances.
???: The p_loaddelay command gets added.
2009
???: Structs get added - Ash convinced Andrew.
Our Implementation
Our RuneScript implementation deviates in a few ways. This is because we continued to learn history during the project's development. We want to support the original language behaviors 100%.
- We support some language features that were introduced later: local variables, procs, booleans, structs, enums, dbtables, and debugprocs. Macros are not supported currently.
- Our pointer checking supports inversions:
if (p_finduid(uid) = false) { return; }
is valid code, and code following it will have the pointer set. - We support local variable declarations at any scope. Traditionally the real game must have them at the top level.
- We split strings on the pipe
|
character to continue text on newlines if we need a manual break to match screenshots.