233 Data

Post Reply
DragonSmith
Posts: 2
Joined: Thu Mar 12, 2026 11:55 pm

233 Data

Post by DragonSmith »

You must be registered to view this Link
You must be registered to view this Link
You must be registered to view this Link

You must be registered to view this Link
Items opcodes

Code: You must be registered to view this Link

    private void readValues(Buffer stream) {
        while (true) {
            int opcode = stream.readUnsignedByte();
            if (opcode == 0)
                return;
            if (opcode == 1)
                modelId = stream.readUShort();
            else if (opcode == 2)
                name = stream.readString();
            else if (opcode == 3)
                description = stream.readString();
            else if (opcode == 4)
                spriteScale = stream.readUShort();
            else if (opcode == 5)
                spritePitch = stream.readUShort();
            else if (opcode == 6)
                spriteCameraRoll = stream.readUShort();
            else if (opcode == 7) {
                spriteTranslateX = stream.readUShort();
                if (spriteTranslateX > 32767)
                    spriteTranslateX -= 0x10000;
            } else if (opcode == 8) {
                spriteTranslateY = stream.readUShort();
                if (spriteTranslateY > 32767)
                    spriteTranslateY -= 0x10000;
            } else if(opcode == 9){
                stream.readString();
            } else if (opcode == 11)
                stackable = true;
            else if (opcode == 12)
                value = stream.readDWord();
         else if(opcode == 13)
            this.field2142 = stream.readSignedByte();
         else if(opcode == 14)
            this.field2157 = stream.readSignedByte();
            else if (opcode == 16)
                membersObject = true;
            else if (opcode == 23) {
                primaryMaleModel = stream.readUShort();
                maleTranslation = stream.readSignedByte();
                if (primaryMaleModel == 65535)
                    primaryMaleModel = -1;
            } else if (opcode == 24)
                secondaryMaleModel = stream.readUShort();
            else if (opcode == 25) {
                primaryFemaleModel = stream.readUShort();
                femaleTranslation = stream.readSignedByte();
                if (primaryFemaleModel == 65535)
                    primaryFemaleModel = -1;
            } else if (opcode == 26)
                secondaryFemaleModel = stream.readUShort();
         else if(opcode == 27)
            this.field2158 = stream.readSignedByte();
            else if (opcode >= 30 && opcode < 35) {
                if (groundActions == null)
                    groundActions = new String[5];
                groundActions[opcode - 30] = stream.readString();
                if (groundActions[opcode - 30].equalsIgnoreCase("hidden"))
                    groundActions[opcode - 30] = null;
            } else if (opcode >= 35 && opcode < 40) {
                if (itemActions == null)
                    itemActions = new String[5];
                itemActions[opcode - 35] = stream.readString();
            } else if (opcode == 40) {
                int size = stream.readUnsignedByte();
                originalModelColors = new int[size];
                modifiedModelColors = new int[size];
                for (int index = 0; index < size; index++) {
                    originalModelColors[index] = stream.readUShort();
                    modifiedModelColors[index] = stream.readUShort();
                }
            } else if (opcode == 41) {
                int size = stream.readUnsignedByte();
                originalTextureColors = new short[size];
                modifiedTextureColors = new short[size];
                for (int index = 0; index < size; index++) {
                    originalTextureColors[index] = (short) stream.readUShort();
                    modifiedTextureColors[index] = (short) stream.readUShort();
                }
            }else if (opcode == 42) {
                    stream.readSignedByte();
            } else if (opcode == 43) {
                int var3 = stream.readUnsignedByte();
                if (this.subOps == null) {
                    this.subOps = new String[5][];
                }

                boolean var7 = var3 >= 0 && var3 < 5;
                if (var7 && this.subOps[var3] == null) {
                    this.subOps[var3] = new String[20];
                }

                while (true) {
                    int var5 = stream.readUnsignedByte() - 1;
                    if (var5 == -1) {
                        break;
                    }

                    String var6 = stream.readString();
                    if (var7 && var5 >= 0 && var5 < 20) {
                        this.subOps[var3][var5] = var6;
                    }
                }
            } else if (opcode == 65) {
                searchable = true;
            } else if (opcode == 75){
                this.field2182 = stream.readSignedWord();
            } else if (opcode == 78)
                tertiaryMaleEquipmentModel = stream.readUShort();
            else if (opcode == 79)
                tertiaryFemaleEquipmentModel = stream.readUShort();
            else if (opcode == 90)
                primaryMaleHeadPiece = stream.readUShort();
            else if (opcode == 91)
                primaryFemaleHeadPiece = stream.readUShort();
            else if (opcode == 92)
                secondaryMaleHeadPiece = stream.readUShort();
            else if (opcode == 93)
                secondaryFemaleHeadPiece = stream.readUShort();
            else if (opcode == 94)
                stream.readUShort();
            else if (opcode == 95)
                spriteCameraYaw = stream.readUShort();
            else if (opcode == 97)
                certID = stream.readUShort();
            else if (opcode == 98)
                certTemplateID = stream.readUShort();
            else if (opcode >= 100 && opcode < 110) {
                if (stackIDs == null) {
                    stackIDs = new int[10];
                    stackAmounts = new int[10];
                }
                stackIDs[opcode - 100] = stream.readUShort();
                stackAmounts[opcode - 100] = stream.readUShort();
            } else if (opcode == 110)
                groundScaleX = stream.readUShort();
            else if (opcode == 111)
                groundScaleY = stream.readUShort();
            else if (opcode == 112)
                groundScaleZ = stream.readUShort();
            else if (opcode == 113)
                ambient = stream.readSignedByte();
            else if (opcode == 114)
                contrast = stream.readSignedByte() * 5;
            else if (opcode == 115)
                team = stream.readUnsignedByte();
            else if (opcode == 139)
                unnotedId = stream.readUShort();
            else if (opcode == 140)
                notedId = stream.readUShort();
            else if (opcode == 148)
                placeholderId = stream.readUShort();
            else if (opcode == 149)
                placeholderTemplateId = stream.readUShort();
            else {
                // System.out.println("Error loading item " + id + ", opcode " + opcode);
            }
        }
    }
Object Opcodes

Code: You must be registered to view this Link

    public void readValues(Buffer stream) {
        int flag = -1;
        do {
            int type = stream.readUnsignedByte();
            if (type == 0)
                break;
            if (type == 1) {
                int var3 = stream.readUnsignedByte();
                if (var3 > 0) {
                    if (this.modelIds != null && !lowMem) {
                        stream.currentOffset += 3 * var3;
                    } else {
                        this.models = new int[var3];
                        this.modelIds = new int[var3];

                        for(int var4 = 0; var4 < var3; ++var4) {
                            this.modelIds[var4] = stream.readUShort();
                            this.models[var4] = stream.readUnsignedByte();
                        }
                    }
                }
            } else if (type == 2)
                name = stream.readString();
            else if (type == 3)
                description = stream.readString();
            else if (type == 5) {
            int var3 = stream.readUnsignedByte();
            if (var3 > 0) {
                if (this.modelIds != null && !lowMem) {
                    stream.currentOffset += 2 * var3;
                } else {
                    this.models = null;
                    this.modelIds = new int[var3];

                    for(int var4 = 0; var4 < var3; ++var4) {
                        this.modelIds[var4] = stream.readUShort();
                    }
                }
            }
            } else if (type == 14)
                xLength = stream.readUnsignedByte();
            else if (type == 15)
                yLength = stream.readUnsignedByte();
            else if (type == 17) {
                interactType = 0;
                aBoolean757 = false;
            } else if (type == 18)
                aBoolean757 = false;
            else if (type == 19)
                hasActions = stream.readUnsignedByte();
            else if (type == 21)
                aBoolean762 = true;
            else if (type == 22)
                mergeNormals = true;
            else if (type == 23)
                aBoolean764 = true;
            else if (type == 24) { // Object Animations
                animation = stream.readUShort();
                if (animation == 65535)
                    animation = -1;
            } else if (type == 27) { // L: 147
                interactType = 1;
            } else if (type == 28)
                anInt775 = stream.readUnsignedByte();
            else if (type == 29)
                aByte737 = stream.readSignedByte();
            else if (type == 39)
                aByte742 = stream.readSignedByte();
            else if (type >= 30 && type < 39) {
                actions[type - 30] = stream.readString();
                if (actions[type - 30].equalsIgnoreCase("hidden"))
                    actions[type - 30] = null;
            } else if (type == 40) {
                int i1 = stream.readUnsignedByte();
                modifiedModelColors = new int[i1];
                originalModelColors = new int[i1];
                for (int i2 = 0; i2 < i1; i2++) {
                    modifiedModelColors[i2] = stream.readUShort();
                    originalModelColors[i2] = stream.readUShort();
                }
            } else if (type == 41) {
                int i1 = stream.readUnsignedByte();
                originalTexture = new short[i1];
                modifiedTexture = new short[i1];
                for (int i2 = 0; i2 < i1; i2++) {
                    originalTexture[i2] = (short) stream.readUShort();
                    modifiedTexture[i2] = (short) stream.readUShort();
                }
            } else if (type == 61)
                    stream.readUShort();
            else if (type == 62)
                inverted = true;
            else if (type == 64)
                clipped = false;
            else if (type == 65)
                thickness = stream.readUShort();
            else if (type == 66)
                height = stream.readUShort();
            else if (type == 67)
                width = stream.readUShort();
            else if (type == 68) {
                mapSceneId = stream.readUShort();
            } else if (type == 69)
                anInt768 = stream.readUnsignedByte();
            else if (type == 70)
                anInt738 = stream.readSignedWord();
            else if (type == 71)
                anInt745 = stream.readSignedWord();
            else if (type == 72)
                anInt783 = stream.readSignedWord();
            else if (type == 73)
                aBoolean736 = true;
            else if (type == 74)
                aBoolean766 = true;
            else if (type == 75)
                supportItems = stream.readUnsignedByte();
            else if (type == 77 || type == 92) {
                varpId = stream.readUShort();
                if (varpId == 65535)
                    varpId = -1;
                configId = stream.readUShort();
                if (configId == 65535)
                    configId = -1;
                int var3 = -1;
                if(type == 92)
                    var3 = stream.readUShort();
                int j1 = stream.readUnsignedByte();
                childrenIDs = new int[j1 + 2];
                for (int j2 = 0; j2 <= j1; j2++) {
                    childrenIDs[j2] = stream.readUShort();
                    if (childrenIDs[j2] == 65535)
                        childrenIDs[j2] = -1;
                }
                childrenIDs[j1 + 1] = var3;
            } else if(type == 78) {//ambient sound
                ambientSoundID = stream.readUShort(); // ambient sound id
                anInt2083 = stream.readUnsignedByte();
                this.field2130 = ((stream.readUnsignedByte()) * 128);
            } else if (type == 79) {
                anInt2112 = stream.readUShort();
                anInt2113 = stream.readUShort();
                anInt2083 = stream.readUShort();
                this.field2130 = ((stream.readUnsignedByte()) * 128);
                int length = stream.readUnsignedByte();
                int[] anims = new int[length];

                for (int index = 0; index < length; ++index)
                {
                    anims[index] = stream.readUShort();
                }
                ambientSoundIds = anims;
            } else if(type == 81) {
                stream.readUnsignedByte();
            } else if(type == 82) {
                mapFunctionId = stream.readUShort();
            } else if (type == 89) {
                this.randomAnimStart = false;
            } else if (type == 249) {
                int length = stream.readUnsignedByte();

                for (int i = 0; i < length; i++) {
                    boolean isString = stream.readUnsignedByte() == 1;
                    int key = stream.read24BitInt();

                    if (isString) {
                        stream.readOSRSString();
                    } else {
                        stream.read24BitInt();
                    }
                }
            }
        } while (true);
    postDecode();
        if (aBoolean766) {
            interactType = 0;
            aBoolean757 = false;
        }
    }
    void postDecode() {
        if (this.hasActions == -1) {
            this.hasActions = 0;
            if (this.modelIds != null && (this.models == null || this.models[0] == 10)) {
                this.hasActions = 1;
            }

            for (int var1 = 0; var1 < 5; ++var1) {
                if (this.actions[var1] != null) {
                    this.hasActions = 1;
                }
            }
        }

        if (this.supportItems == -1) {
            this.supportItems = this.interactType != 0 ? 1 : 0;
        }

    }
Npc Opcodes

Code: You must be registered to view this Link

        private void readValues(Buffer stream) {
            while (true) {
                int opcode = stream.readUnsignedByte();
                if (opcode == 0)
                    return;
                if (opcode == 1) {
                    int j = stream.readUnsignedByte();
                    models = new int[j];
                    for (int j1 = 0; j1 < j; j1++)
                        models[j1] = stream.readUShort();

                } else if (opcode == 2)
                    name = stream.readString();
                else if (opcode == 3)
                    description = stream.readString();
                else if (opcode == 12)
                    size = stream.readSignedByte();
                else if (opcode == 13)
                    standAnimation = stream.readUShort();
                else if (opcode == 14)
                    walkAnimation = stream.readUShort();
                else if (opcode == 17) {
                    walkAnimation = stream.readUShort();
                    rotate180Animation = stream.readUShort();
                    rotate90RightAnimation = stream.readUShort();
                    rotate90LeftAnimation = stream.readUShort();
                    if (rotate180Animation == 65535) {
                        rotate180Animation = -1;
                    }
                    if (rotate90RightAnimation == 65535) {
                        rotate90RightAnimation = -1;
                    }
                    if (rotate90LeftAnimation == 65535) {
                        rotate90LeftAnimation = -1;
                    }
                } else if(opcode == 18){
                    stream.readUShort();
                } else if (opcode >= 30 && opcode < 40) {
                    if (actions == null)
                        actions = new String[10];
                    actions[opcode - 30] = stream.readString();
                    if (actions[opcode - 30].equalsIgnoreCase("hidden"))
                        actions[opcode - 30] = null;
                } else if (opcode == 40) {
                    int k = stream.readUnsignedByte();
                    recolorFrom = new short[k];
                    recolorTo = new short[k];
                    for (int k1 = 0; k1 < k; k1++) {
                        recolorFrom[k1] = (short) stream.readUShort();
                        recolorTo[k1] = (short) stream.readUShort();
                    }
                } else if (opcode == 41) {
                    int k = stream.readUnsignedByte();
                    retextureFrom = new short[k];
                    retextureTo = new short[k];
                    for (int k1 = 0; k1 < k; k1++) {
                        retextureFrom[k1] = (short) stream.readUShort();
                        retextureTo[k1] = (short) stream.readUShort();
                    }

                } else if (opcode == 60) {
                    int l = stream.readUnsignedByte();
                    dialogueModels = new int[l];
                    for (int l1 = 0; l1 < l; l1++)
                        dialogueModels[l1] = stream.readUShort();

                }else if(opcode == 74) {
                    this.field2032[0] = stream.readUShort();
                } else if(opcode == 75) {
                    this.field2032[1] = stream.readUShort();
                } else if(opcode == 76) {
                    this.field2032[2] = stream.readUShort();
                } else if(opcode == 77) {
                    this.field2032[3] = stream.readUShort();
                } else if(opcode == 78) {
                    this.field2032[4] = stream.readUShort();
                } else if(opcode == 79) {
                    this.field2032[5] = stream.readUShort();
                } else if (opcode == 93)
                    onMinimap = false;
                else if (opcode == 95)
                    combatLevel = stream.readUShort();
                else if (opcode == 97)
                    anInt91 = stream.readUShort();
                else if (opcode == 98)
                    anInt86 = stream.readUShort();
                else if (opcode == 99)
                    aBoolean93 = true;
                else if (opcode == 100)
                    anInt85 = stream.readSignedByte();
                else if (opcode == 101)
                    anInt92 = stream.readSignedByte();
                else if (opcode == 102)
                    anInt75 = stream.readUShort();
                else if (opcode == 103)
                    getDegreesToTurn = stream.readUShort();
                else if (opcode == 106 || opcode == 118) {
                    anInt57 = stream.readUShort();
                    if (anInt57 == 65535)
                        anInt57 = -1;
                    anInt59 = stream.readUShort();
                    if (anInt59 == 65535)
                        anInt59 = -1;
                    int var3 = -1;
                    if(opcode == 118)
                        var3 = stream.readUShort();
                    int i1 = stream.readUnsignedByte();
                    childrenIDs = new int[i1 + 2];
                    for (int i2 = 0; i2 <= i1; i2++) {
                        childrenIDs[i2] = stream.readUShort();
                        if (childrenIDs[i2] == 65535)
                            childrenIDs[i2] = -1;
                    }
                    childrenIDs[i1 + 1] = var3;
                } else if (opcode == 107){
                    aBoolean84 = false;
                } else if(opcode == 109) {
                    this.isClickable = false;
                } else if(opcode == 114) {
                    this.field1914 = stream.readUShort();
                    if(this.field1914 == '\uffff') {
                        this.field1914 = -1;
                    }
                } else if(opcode == 115) {
                    this.field1914 = stream.readUShort();
                    this.field1919 = stream.readUShort();
                    this.field1918 = stream.readUShort();
                    this.field1938 = stream.readUShort();
                    if(this.field1914 == '\uffff') {
                        this.field1914 = -1;
                    }
                    if(this.field1919 == '\uffff') {
                        this.field1919 = -1;
                    }
                    if(this.field1918 == '\uffff') {
                        this.field1918 = -1;
                    }
                    if(this.field1938 == '\uffff') {
                        this.field1938 = -1;
                    }
                } else if(opcode == 116) {
                    this.field1920 = stream.readUShort();
                    if(this.field1920 == '\uffff') {
                        this.field1920 = -1;
                    }
                } else if(opcode == 117) {
                    this.field1920 = stream.readUShort();
                    this.field1933 = stream.readUShort();
                    this.field1922 = stream.readUShort();
                    this.field1923 = stream.readUShort();
                    if(this.field1920 == '\uffff') {
                        this.field1920 = -1;
                    }
                    if(this.field1933 == '\uffff') {
                        this.field1933 = -1;
                    }
                    if(this.field1922 == '\uffff') {
                        this.field1922 = -1;
                    }
                    if(this.field1923 == '\uffff') {
                        this.field1923 = -1;
                    }
                } else if(opcode == 122) {
                    lowPriorityFollowerOps = true;
                } else if(opcode == 123){
                    aBool2190 = true;
                } else if(opcode == 124) {
                    field2030 = stream.readUShort();
                } else if(opcode == 126){
                    this.footprintSize = stream.readUShort();
                }
            }
        }
Post Reply