Skip to content

Instantly share code, notes, and snippets.

@Tyluur
Tyluur / Licensing.md
Last active September 19, 2023 15:43

Licenses and Credit Requirements

License Requires Credit? Commercial/Non-Commercial Usage Brief Description
Apache License 2.0 Yes Commercial & Non-Commercial Requires preservation of the copyright notice and disclaimer.
GNU General Public License v3.0 (GPL-3.0) Yes Commercial & Non-Commercial Requires that modified versions be marked as changed to avoid misrepresentation of the original author.
MIT License Yes Commercial & Non-Commercial Requires inclusion of the license and copyright notice in any copie
@Tyluur
Tyluur / BytecodeDeobfuscator.kt
Last active January 10, 2024 04:29
openRS2/runescape_667
15:54:55.149 [main] INFO o.o.d.bytecode.BytecodeDeobfuscator - Reading input jars
15:54:55.151 [main] INFO org.openrs2.asm.classpath.Library - Reading library C:\Users\Tyluur\GitHub\openrs2\nonfree\lib\runescape_gl.pack200
15:54:55.510 [main] INFO org.openrs2.asm.classpath.Library - Reading library C:\Users\Tyluur\GitHub\openrs2\nonfree\lib\jaggl.pack200
15:54:55.817 [main] INFO org.openrs2.asm.classpath.Library - Reading library C:\Users\Tyluur\GitHub\openrs2\nonfree\lib\loader_gl.jar
15:54:55.818 [main] INFO o.o.d.bytecode.BytecodeDeobfuscator - Moving signed classes from loader to signlink
15:54:55.821 [main] INFO o.o.deob.bytecode.SignedClassUtils - Identified signed classes []
15:54:55.821 [main] INFO o.o.deob.bytecode.SignedClassUtils - Identified signed class dependencies []
15:54:55.821 [main] INFO o.o.d.bytecode.BytecodeDeobfuscator - Moving unpack from loader to unpack
15:54:56.136 [main] INFO o.o.d.bytecode.BytecodeDeobfuscator - Transforming client
15:54:56.137 [main] INFO o.o.d.bytecode
# Monitor solution for the Dining Philosophers problem
monitor DiningPhilosophers
{
# Enumerate the possible states of a philosopher
enum { THINKING, HUNGRY, EATING } state[5];
# Condition variables for each philosopher
condition self[5];
# Method called by a philosopher when they want to eat
Recompile this list excluding people with "mod" in their name, and make it 25 developers. Also, denote what they have contributed.
It is challenging to create a comprehensive list of the top 25 developers in the RuneScape private server scene, and even more so when excluding developers with "mod" in their name. However, I can attempt to provide an expanded list of notable figures and contributors within the RSPS community, though it may not be exhaustive or ranked:
Graham (also known as "Matrix" or "Graham Edgecombe") - Developer of the Matrix RSPS framework and RuneScape client reverse-engineering.
Winterlove - Developer of the Winterlove server, one of the earliest RuneScape private servers.
Delta - Developer of the DeltaScape private server and framework, which was widely used in the RSPS community.
Vencillio - Developer of the Vencillio RSPS, which became a popular base for other private server projects.
Noele - A developer known for his work on the Arios RSPS and various other projects.
Scu11 - A develo
@Tyluur
Tyluur / cpu.v
Created March 20, 2023 22:45
cpu.v
module yMux1(z, a, b, c);
output z;
input a, b, c;
wire notC, upper, lower;
not my_not(notC, c);
and upperAnd(upper, a, notC);
and lowerAnd(lower, c, b);
or my_or(z, upper, lower);
https://www.rune-server.ee/general-discussion/media/music/704243-bones-thewitch-thewizard.html#post5787027
package gg.rsmod.plugins.content.objs
import gg.rsmod.game.model.collision.ObjectType
private val CLIMB_UP_ANIMATION = 828
private val CLIMB_DOWN_ANIMATION = 827
private val climbableFields = listOf("Climb", "Climb-up", "Climb-down")
https://gist.github.com/Tyluur/1eed07a6f18be4cfda8577e86d17e790#file-climbable_object-plugin-kts-L1238
@Tyluur
Tyluur / climbable_object.plugin.kts
Created March 10, 2023 03:02
climbable_object.plugin.kts
package gg.rsmod.plugins.content.objs
import gg.rsmod.game.model.collision.ObjectType
private val CLIMB_UP_ANIMATION = 828
private val CLIMB_DOWN_ANIMATION = 827
private val climbableFields = listOf("Climb", "Climb-up", "Climb-down")
for (id in ids) {
for (field in climbableFields) {
if (if_obj_has_option(id, field)) {
println("$id has field[$field]")
try {
on_obj_option(id, field) {
try {
val gameObject = player.getInteractingGameObj()
val optionIndex = player.getInteractingOption()