Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

RuneScript: Difference between revisions

From Lost City Wiki
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, but this is because we continued to learn during the project's development.
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, if we need a manual break.
# 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%.

  1. We support some language features that were introduced later: local variables, procs, booleans, structs, enums, dbtables, and debugprocs. Macros are not supported currently.
  2. Our pointer checking supports inversions: if (p_finduid(uid) = false) { return; } is valid code, and code following it will have the pointer set.
  3. We support local variable declarations at any scope. Traditionally the real game must have them at the top level.
  4. We split strings on the pipe | character to continue text on newlines if we need a manual break to match screenshots.

Learn More

NPC Queues