Thread: Infernal cape issues on 602+ models

Results 1 to 9 of 9
  1. #1 Infernal cape issues on 602+ models 
    Banned

    Join Date
    Jun 2019
    Posts
    203
    Thanks given
    99
    Thanks received
    44
    Rep Power
    0
    Hey there,

    Does anyone know the fix for this or why this is happening:

    Attached image

    Should look like (This is a fire cape):

    Attached image

    Kind regards,

    Zerikoth
    Reply With Quote  
     

  2. #2  
    Development Services

    Tutus Frutus's Avatar
    Join Date
    Feb 2018
    Posts
    466
    Thanks given
    228
    Thanks received
    217
    Rep Power
    687
    Quote Originally Posted by Zerikoth View Post
    Hey there,

    Does anyone know the fix for this or why this is happening:

    Attached image

    Should look like (This is a fire cape):

    Attached image

    Kind regards,

    Zerikoth
    Probably your priorities.. we had that issue when trying to load new OSRS data after adding the multi-rev support... if you use Ruse you should have some form of "priorityFix" array, within your Model class.. for me it's in the constructor but could be elsewhere for you, look for that.. add the item and see if it still overlaps.

    Attached image
    Attached image
    Reply With Quote  
     

  3. Thankful user:


  4. #3  
    Community Veteran

    Dust R I P's Avatar
    Join Date
    Jan 2008
    Posts
    2,599
    Thanks given
    197
    Thanks received
    221
    Rep Power
    586
    They switched a "Z-Buffer" in newer revisions, OSRS still uses the "Painters algorithm". Since new revision models lack the "priority" layer in the model data a workaround is to give all models a type of priority and they don't care how bad it looks as a result. Loading the OSRS model which has this data included it will always prioritize over these "priority-less" models resulting in that. A fix would be to properly implement a z-buffer and ignore the "priority" data from older models.
    Reply With Quote  
     

  5. Thankful users:


  6. #4  
    Banned

    Join Date
    Jun 2019
    Posts
    203
    Thanks given
    99
    Thanks received
    44
    Rep Power
    0
    Quote Originally Posted by Tutus Frutus View Post
    Probably your priorities.. we had that issue when trying to load new OSRS data after adding the multi-rev support... if you use Ruse you should have some form of "priorityFix" array, within your Model class.. for me it's in the constructor but could be elsewhere for you, look for that.. add the item and see if it still overlaps.
    I don't use Ruse, but I downloaded one I can't seem to locate any prio fix array there is non in this client.

    Edit this fixes it thanks alot man!

    Code:
    //Infernal cape models
            if (model_id == 33103 || model_id == 33111) {
                prioritiesFix();
            }
    Edit it breaks the cape too, any other suggestions?

    Attached image

    Attached image

    I found out that torva platelegs cause this issue, no idea the cheaphax fix for this.
    Reply With Quote  
     

  7. #5  
    nice


    Join Date
    Jul 2014
    Posts
    740
    Thanks given
    382
    Thanks received
    562
    Rep Power
    4239
    Quote Originally Posted by Zerikoth View Post
    I don't use Ruse, but I downloaded one I can't seem to locate any prio fix array there is non in this client.

    Edit this fixes it thanks alot man!

    Code:
    //Infernal cape models
            if (model_id == 33103 || model_id == 33111) {
                prioritiesFix();
            }
    Edit it breaks the cape too, any other suggestions?

    Attached image

    Attached image

    I found out that torva platelegs cause this issue, no idea the cheaphax fix for this.
    what even is `prioritiesFix`does it just set all priorities to a certain value
    Reply With Quote  
     

  8. #6  
    Banned

    Join Date
    Jun 2019
    Posts
    203
    Thanks given
    99
    Thanks received
    44
    Rep Power
    0
    Quote Originally Posted by Suic View Post
    what even is `prioritiesFix`does it just set all priorities to a certain value
    From Ruse:

    Code:
    public void prioritiesFix() {
            int priority = 10;
            if (render_priorities != null) {
                for (int face = 0; face < render_priorities.length; face++)
                    render_priorities[face] = (byte) priority;
            }
        }
    Reply With Quote  
     

  9. #7  
    nice


    Join Date
    Jul 2014
    Posts
    740
    Thanks given
    382
    Thanks received
    562
    Rep Power
    4239
    Quote Originally Posted by Zerikoth View Post
    From Ruse:

    Code:
    public void prioritiesFix() {
            int priority = 10;
            if (render_priorities != null) {
                for (int face = 0; face < render_priorities.length; face++)
                    render_priorities[face] = (byte) priority;
            }
        }
    i can probably help u fix it, msg me on discord.
    Reply With Quote  
     

  10. Thankful user:


  11. #8  
    Banned

    Join Date
    Jun 2019
    Posts
    203
    Thanks given
    99
    Thanks received
    44
    Rep Power
    0
    Quote Originally Posted by Suic View Post
    i can probably help u fix it, msg me on discord.
    Thanks Its solved already thanks for the offer mate!

    Attached image

    For those with issues the proper model readers: (Ruse are incorrect)

    Code:
    public void read622Model(byte data[], int modelID) {
            Buffer first = new Buffer(data);
            Buffer second = new Buffer(data);
            Buffer third = new Buffer(data);
            Buffer fourth = new Buffer(data);
            Buffer fifth = new Buffer(data);
            Buffer sixth = new Buffer(data);
            Buffer seventh = new Buffer(data);
    
            first.pos = data.length - 23;
            int numVertices = first.readUShort();
            int numTriangles = first.readUShort();
            int numTexTriangles = first.readUByte();
    
            ModelHeader def = header[modelID] = new ModelHeader();
            def.data = data;
            def.vertices = numVertices;
            def.faces = numTriangles;
            def.texture_faces = numTexTriangles;
            
            int l1 = first.readUByte();
            boolean bool = (0x1 & l1 ^ 0xffffffff) == -2;
            boolean bool_26_ = (0x8 & l1) == 8;
            if (!bool_26_) {
                read525Model(data, modelID);
                return;
            }
            int newformat = 0;
            if (bool_26_) {
                first.pos -= 7;
                newformat = first.readUByte();
                first.pos += 6;
            }
            if (newformat == 15)
                newmodel[modelID] = true;
            int i2 = first.readUByte();
            int j2 = first.readUByte();
            int k2 = first.readUByte();
            int l2 = first.readUByte();
            int i3 = first.readUByte();
            int j3 = first.readUShort();
            int k3 = first.readUShort();
            int l3 = first.readUShort();
            int i4 = first.readUShort();
            int j4 = first.readUShort();
            int k4 = 0;
            int l4 = 0;
            int i5 = 0;
            byte[] x = null;
            byte[] O = null;
            byte[] J = null;
            byte[] F = null;
            byte[] cb = null;
            byte[] gb = null;
            byte[] lb = null;
            int[] kb = null;
            int[] y = null;
            int[] N = null;
            short[] D = null;
            short[] triangleColours2 = new short[numTriangles];
            if (numTexTriangles > 0) {
                O = new byte[numTexTriangles];
                first.pos = 0;
                for (int j5 = 0; j5 < numTexTriangles; j5++) {
                    byte byte0 = O[j5] = first.readSignedByte();
                    if (byte0 == 0)
                        k4++;
                    if (byte0 >= 1 && byte0 <= 3)
                        l4++;
                    if (byte0 == 2)
                        i5++;
                }
            }
            int k5 = numTexTriangles;
            int l5 = k5;
            k5 += numVertices;
            int i6 = k5;
            if (bool)
                k5 += numTriangles;
            if (l1 == 1)
                k5 += numTriangles;
            int j6 = k5;
            k5 += numTriangles;
            int k6 = k5;
            if (i2 == 255)
                k5 += numTriangles;
            int l6 = k5;
            if (k2 == 1)
                k5 += numTriangles;
            int i7 = k5;
            if (i3 == 1)
                k5 += numVertices;
            int j7 = k5;
            if (j2 == 1)
                k5 += numTriangles;
            int k7 = k5;
            k5 += i4;
            int l7 = k5;
            if (l2 == 1)
                k5 += numTriangles * 2;
            int i8 = k5;
            k5 += j4;
            int j8 = k5;
            k5 += numTriangles * 2;
            int k8 = k5;
            k5 += j3;
            int l8 = k5;
            k5 += k3;
            int i9 = k5;
            k5 += l3;
            int j9 = k5;
            k5 += k4 * 6;
            int k9 = k5;
            k5 += l4 * 6;
            int i_59_ = 6;
            if (newformat != 14) {
                if (newformat >= 15)
                    i_59_ = 9;
            } else
                i_59_ = 7;
            int l9 = k5;
            k5 += i_59_ * l4;
            int i10 = k5;
            k5 += l4;
            int j10 = k5;
            k5 += l4;
            int k10 = k5;
            k5 += l4 + i5 * 2;
            int[] vertexX = new int[numVertices];
            int[] vertexY = new int[numVertices];
            int[] vertexZ = new int[numVertices];
            int[] facePoint1 = new int[numTriangles];
            int[] facePoint2 = new int[numTriangles];
            int[] facePoint3 = new int[numTriangles];
            bone_skin = new int[numVertices];
            render_type = new int[numTriangles];
            render_priorities = new byte[numTriangles];
            face_alpha = new int[numTriangles];
            muscle_skin = new int[numTriangles];
            if (i3 == 1)
                bone_skin = new int[numVertices];
            if (bool)
                render_type = new int[numTriangles];
            if (i2 == 255)
                render_priorities = new byte[numTriangles];
            else {
            }
            if (j2 == 1)
                face_alpha = new int[numTriangles];
            if (k2 == 1)
                muscle_skin = new int[numTriangles];
            if (l2 == 1)
                D = new short[numTriangles];
            if (l2 == 1 && numTexTriangles > 0)
                x = new byte[numTriangles];
            triangleColours2 = new short[numTriangles];
            int[] texTrianglesPoint1 = null;
            int[] texTrianglesPoint2 = null;
            int[] texTrianglesPoint3 = null;
            if (numTexTriangles > 0) {
                texTrianglesPoint1 = new int[numTexTriangles];
                texTrianglesPoint2 = new int[numTexTriangles];
                texTrianglesPoint3 = new int[numTexTriangles];
                if (l4 > 0) {
                    kb = new int[l4];
                    N = new int[l4];
                    y = new int[l4];
                    gb = new byte[l4];
                    lb = new byte[l4];
                    F = new byte[l4];
                }
                if (i5 > 0) {
                    cb = new byte[i5];
                    J = new byte[i5];
                }
            }
            first.pos = l5;
            second.pos = k8;
            third.pos = l8;
            fourth.pos = i9;
            fifth.pos = i7;
            int l10 = 0;
            int i11 = 0;
            int j11 = 0;
            for (int k11 = 0; k11 < numVertices; k11++) {
                int l11 = first.readUByte();
                int j12 = 0;
                if ((l11 & 1) != 0)
                    j12 = second.readSignedSmart();
                int l12 = 0;
                if ((l11 & 2) != 0)
                    l12 = third.readSignedSmart();
                int j13 = 0;
                if ((l11 & 4) != 0)
                    j13 = fourth.readSignedSmart();
                vertexX[k11] = l10 + j12;
                vertexY[k11] = i11 + l12;
                vertexZ[k11] = j11 + j13;
                l10 = vertexX[k11];
                i11 = vertexY[k11];
                j11 = vertexZ[k11];
                if (bone_skin != null)
                    bone_skin[k11] = fifth.readUByte();
            }
            first.pos = j8;
            second.pos = i6;
            third.pos = k6;
            fourth.pos = j7;
            fifth.pos = l6;
            sixth.pos = l7;
            seventh.pos = i8;
            for (int i12 = 0; i12 < numTriangles; i12++) {
                triangleColours2[i12] = (short) first.readUShort();
                if (l1 == 1) {
                    render_type[i12] = second.readSignedByte();
                    if (render_type[i12] == 2)
                        triangleColours2[i12] = (short) 65535;
                    render_type[i12] = 0;
                }
                if (i2 == 255) {
                    render_priorities[i12] = third.readSignedByte();
                }
                if (j2 == 1) {
                    face_alpha[i12] = fourth.readSignedByte();
                    if (face_alpha[i12] < 0)
                        face_alpha[i12] = (256 + face_alpha[i12]);
                }
                if (k2 == 1)
                    muscle_skin[i12] = fifth.readUByte();
                if (l2 == 1)
                    D[i12] = (short) (sixth.readUShort() - 1);
                if (x != null)
                    if (D[i12] != -1)
                        x[i12] = (byte) (seventh.readUByte() - 1);
                    else
                        x[i12] = -1;
            }
            first.pos = k7;
            second.pos = j6;
            int k12 = 0;
            int i13 = 0;
            int k13 = 0;
            int l13 = 0;
            for (int i14 = 0; i14 < numTriangles; i14++) {
                int j14 = second.readUByte();
                if (j14 == 1) {
                    k12 = first.readSignedSmart() + l13;
                    l13 = k12;
                    i13 = first.readSignedSmart() + l13;
                    l13 = i13;
                    k13 = first.readSignedSmart() + l13;
                    l13 = k13;
                    facePoint1[i14] = k12;
                    facePoint2[i14] = i13;
                    facePoint3[i14] = k13;
                }
                if (j14 == 2) {
                    i13 = k13;
                    k13 = first.readSignedSmart() + l13;
                    l13 = k13;
                    facePoint1[i14] = k12;
                    facePoint2[i14] = i13;
                    facePoint3[i14] = k13;
                }
                if (j14 == 3) {
                    k12 = k13;
                    k13 = first.readSignedSmart() + l13;
                    l13 = k13;
                    facePoint1[i14] = k12;
                    facePoint2[i14] = i13;
                    facePoint3[i14] = k13;
                }
                if (j14 == 4) {
                    int l14 = k12;
                    k12 = i13;
                    i13 = l14;
                    k13 = first.readSignedSmart() + l13;
                    l13 = k13;
                    facePoint1[i14] = k12;
                    facePoint2[i14] = i13;
                    facePoint3[i14] = k13;
                }
            }
            first.pos = j9;
            second.pos = k9;
            third.pos = l9;
            fourth.pos = i10;
            fifth.pos = j10;
            sixth.pos = k10;
            for (int k14 = 0; k14 < numTexTriangles; k14++) {
                int i15 = O[k14] & 0xff;
                if (i15 == 0) {
                    texTrianglesPoint1[k14] = first.readUShort();
                    texTrianglesPoint2[k14] = first.readUShort();
                    texTrianglesPoint3[k14] = first.readUShort();
                }
                if (i15 == 1) {
                    texTrianglesPoint1[k14] = second.readUShort();
                    texTrianglesPoint2[k14] = second.readUShort();
                    texTrianglesPoint3[k14] = second.readUShort();
                    if (newformat < 15) {
                        kb[k14] = third.readUShort();
                        if (newformat >= 14)
                            N[k14] = third.readUTriByte(-1);
                        else
                            N[k14] = third.readUShort();
                        y[k14] = third.readUShort();
                    } else {
                        kb[k14] = third.readUTriByte(-1);
                        N[k14] = third.readUTriByte(-1);
                        y[k14] = third.readUTriByte(-1);
                    }
                    gb[k14] = fourth.readSignedByte();
                    lb[k14] = fifth.readSignedByte();
                    F[k14] = sixth.readSignedByte();
                }
                if (i15 == 2) {
                    texTrianglesPoint1[k14] = second.readUShort();
                    texTrianglesPoint2[k14] = second.readUShort();
                    texTrianglesPoint3[k14] = second.readUShort();
                    if (newformat >= 15) {
                        kb[k14] = third.readUTriByte(-1);
                        N[k14] = third.readUTriByte(-1);
                        y[k14] = third.readUTriByte(-1);
                    } else {
                        kb[k14] = third.readUShort();
                        if (newformat < 14)
                            N[k14] = third.readUShort();
                        else
                            N[k14] = third.readUTriByte(-1);
                        y[k14] = third.readUShort();
                    }
                    gb[k14] = fourth.readSignedByte();
                    lb[k14] = fifth.readSignedByte();
                    F[k14] = sixth.readSignedByte();
                    cb[k14] = sixth.readSignedByte();
                    J[k14] = sixth.readSignedByte();
                }
                if (i15 == 3) {
                    texTrianglesPoint1[k14] = second.readUShort();
                    texTrianglesPoint2[k14] = second.readUShort();
                    texTrianglesPoint3[k14] = second.readUShort();
                    if (newformat < 15) {
                        kb[k14] = third.readUShort();
                        if (newformat < 14)
                            N[k14] = third.readUShort();
                        else
                            N[k14] = third.readUTriByte(-1);
                        y[k14] = third.readUShort();
                    } else {
                        kb[k14] = third.readUTriByte(-1);
                        N[k14] = third.readUTriByte(-1);
                        y[k14] = third.readUTriByte(-1);
                    }
                    gb[k14] = fourth.readSignedByte();
                    lb[k14] = fifth.readSignedByte();
                    F[k14] = sixth.readSignedByte();
                }
            }
            if (i2 != 255) {
                for (int i12 = 0; i12 < numTriangles; i12++)
                    render_priorities[i12] = (byte) i2;
            }
            face_color = triangleColours2;
            vertices = numVertices;
            faces = numTriangles;
            vertex_x = vertexX;
            vertex_y = vertexY;
            vertex_z = vertexZ;
            triangle_edge_a = facePoint1;
            triangle_edge_b = facePoint2;
            triangle_edge_c = facePoint3;
            scale2(4);
        }
    Code:
    public void read525Model(byte abyte0[], int modelID) {
            Buffer nc1 = new Buffer(abyte0);
            Buffer nc2 = new Buffer(abyte0);
            Buffer nc3 = new Buffer(abyte0);
            Buffer nc4 = new Buffer(abyte0);
            Buffer nc5 = new Buffer(abyte0);
            Buffer nc6 = new Buffer(abyte0);
            Buffer nc7 = new Buffer(abyte0);
            nc1.pos = abyte0.length - 23;
            int numVertices = nc1.readUShort();
            int numTriangles = nc1.readUShort();
            int numTexTriangles = nc1.readUByte();
            ModelHeader ModelDef_1 = header[modelID] = new ModelHeader();
            ModelDef_1.data = abyte0;
            ModelDef_1.vertices = numVertices;
            ModelDef_1.faces = numTriangles;
            ModelDef_1.texture_faces = numTexTriangles;
            int l1 = nc1.readUByte();
            boolean bool = (0x1 & l1 ^ 0xffffffff) == -2;
            int i2 = nc1.readUByte();
            int j2 = nc1.readUByte();
            int k2 = nc1.readUByte();
            int l2 = nc1.readUByte();
            int i3 = nc1.readUByte();
            int j3 = nc1.readUShort();
            int k3 = nc1.readUShort();
            int l3 = nc1.readUShort();
            int i4 = nc1.readUShort();
            int j4 = nc1.readUShort();
            int k4 = 0;
            int l4 = 0;
            int i5 = 0;
            byte[] x = null;
            byte[] O = null;
            byte[] J = null;
            byte[] F = null;
            byte[] cb = null;
            byte[] gb = null;
            byte[] lb = null;
            int[] kb = null;
            int[] y = null;
            int[] N = null;
            short[] D = null;
            short[] triangleColours2 = new short[numTriangles];
            if (numTexTriangles > 0) {
                O = new byte[numTexTriangles];
                nc1.pos = 0;
                for (int j5 = 0; j5 < numTexTriangles; j5++) {
                    byte byte0 = O[j5] = nc1.readSignedByte();
                    if (byte0 == 0)
                        k4++;
                    if (byte0 >= 1 && byte0 <= 3)
                        l4++;
                    if (byte0 == 2)
                        i5++;
                }
            }
            int k5 = numTexTriangles;
            int l5 = k5;
            k5 += numVertices;
            int i6 = k5;
            if (l1 == 1)
                k5 += numTriangles;
            int j6 = k5;
            k5 += numTriangles;
            int k6 = k5;
            if (i2 == 255)
                k5 += numTriangles;
            int l6 = k5;
            if (k2 == 1)
                k5 += numTriangles;
            int i7 = k5;
            if (i3 == 1)
                k5 += numVertices;
            int j7 = k5;
            if (j2 == 1)
                k5 += numTriangles;
            int k7 = k5;
            k5 += i4;
            int l7 = k5;
            if (l2 == 1)
                k5 += numTriangles * 2;
            int i8 = k5;
            k5 += j4;
            int j8 = k5;
            k5 += numTriangles * 2;
            int k8 = k5;
            k5 += j3;
            int l8 = k5;
            k5 += k3;
            int i9 = k5;
            k5 += l3;
            int j9 = k5;
            k5 += k4 * 6;
            int k9 = k5;
            k5 += l4 * 6;
            int l9 = k5;
            k5 += l4 * 6;
            int i10 = k5;
            k5 += l4;
            int j10 = k5;
            k5 += l4;
            int k10 = k5;
            k5 += l4 + i5 * 2;
            int[] vertexX = new int[numVertices];
            int[] vertexY = new int[numVertices];
            int[] vertexZ = new int[numVertices];
            int[] facePoint1 = new int[numTriangles];
            int[] facePoint2 = new int[numTriangles];
            int[] facePoint3 = new int[numTriangles];
            bone_skin = new int[numVertices];
            render_type = new int[numTriangles];
            render_priorities = new byte[numTriangles];
            face_alpha = new int[numTriangles];
            muscle_skin = new int[numTriangles];
            if (i3 == 1)
                bone_skin = new int[numVertices];
            if (bool)
                render_type = new int[numTriangles];
            if (i2 == 255)
                render_priorities = new byte[numTriangles];
            else {
            }
            if (j2 == 1)
                face_alpha = new int[numTriangles];
            if (k2 == 1)
                muscle_skin = new int[numTriangles];
            if (l2 == 1)
                D = new short[numTriangles];
            if (l2 == 1 && numTexTriangles > 0)
                x = new byte[numTriangles];
            triangleColours2 = new short[numTriangles];
            int[] texTrianglesPoint1 = null;
            int[] texTrianglesPoint2 = null;
            int[] texTrianglesPoint3 = null;
            if (numTexTriangles > 0) {
                texTrianglesPoint1 = new int[numTexTriangles];
                texTrianglesPoint2 = new int[numTexTriangles];
                texTrianglesPoint3 = new int[numTexTriangles];
                if (l4 > 0) {
                    kb = new int[l4];
                    N = new int[l4];
                    y = new int[l4];
                    gb = new byte[l4];
                    lb = new byte[l4];
                    F = new byte[l4];
                }
                if (i5 > 0) {
                    cb = new byte[i5];
                    J = new byte[i5];
                }
            }
            nc1.pos = l5;
            nc2.pos = k8;
            nc3.pos = l8;
            nc4.pos = i9;
            nc5.pos = i7;
            int l10 = 0;
            int i11 = 0;
            int j11 = 0;
            for (int k11 = 0; k11 < numVertices; k11++) {
                int l11 = nc1.readUByte();
                int j12 = 0;
                if ((l11 & 1) != 0)
                    j12 = nc2.readSignedSmart();
                int l12 = 0;
                if ((l11 & 2) != 0)
                    l12 = nc3.readSignedSmart();
                int j13 = 0;
                if ((l11 & 4) != 0)
                    j13 = nc4.readSignedSmart();
                vertexX[k11] = l10 + j12;
                vertexY[k11] = i11 + l12;
                vertexZ[k11] = j11 + j13;
                l10 = vertexX[k11];
                i11 = vertexY[k11];
                j11 = vertexZ[k11];
                if (bone_skin != null)
                    bone_skin[k11] = nc5.readUByte();
            }
            nc1.pos = j8;
            nc2.pos = i6;
            nc3.pos = k6;
            nc4.pos = j7;
            nc5.pos = l6;
            nc6.pos = l7;
            nc7.pos = i8;
            for (int i12 = 0; i12 < numTriangles; i12++) {
                triangleColours2[i12] = (short) nc1.readUShort();
                if (l1 == 1) {
                    render_type[i12] = nc2.readSignedByte();
                    if (render_type[i12] == 2)
                        triangleColours2[i12] = (short) 65535;
                    render_type[i12] = 0;
                }
                if (i2 == 255) {
                    render_priorities[i12] = nc3.readSignedByte();
                }
                if (j2 == 1) {
                    face_alpha[i12] = nc4.readSignedByte();
                    if (face_alpha[i12] < 0)
                        face_alpha[i12] = (256 + face_alpha[i12]);
                }
                if (k2 == 1)
                    muscle_skin[i12] = nc5.readUByte();
                if (l2 == 1)
                    D[i12] = (short) (nc6.readUShort() - 1);
                if (x != null)
                    if (D[i12] != -1)
                        x[i12] = (byte) (nc7.readUByte() - 1);
                    else
                        x[i12] = -1;
            }
            nc1.pos = k7;
            nc2.pos = j6;
            int k12 = 0;
            int i13 = 0;
            int k13 = 0;
            int l13 = 0;
            for (int i14 = 0; i14 < numTriangles; i14++) {
                int j14 = nc2.readUByte();
                if (j14 == 1) {
                    k12 = nc1.readSignedSmart() + l13;
                    l13 = k12;
                    i13 = nc1.readSignedSmart() + l13;
                    l13 = i13;
                    k13 = nc1.readSignedSmart() + l13;
                    l13 = k13;
                    facePoint1[i14] = k12;
                    facePoint2[i14] = i13;
                    facePoint3[i14] = k13;
                }
                if (j14 == 2) {
                    i13 = k13;
                    k13 = nc1.readSignedSmart() + l13;
                    l13 = k13;
                    facePoint1[i14] = k12;
                    facePoint2[i14] = i13;
                    facePoint3[i14] = k13;
                }
                if (j14 == 3) {
                    k12 = k13;
                    k13 = nc1.readSignedSmart() + l13;
                    l13 = k13;
                    facePoint1[i14] = k12;
                    facePoint2[i14] = i13;
                    facePoint3[i14] = k13;
                }
                if (j14 == 4) {
                    int l14 = k12;
                    k12 = i13;
                    i13 = l14;
                    k13 = nc1.readSignedSmart() + l13;
                    l13 = k13;
                    facePoint1[i14] = k12;
                    facePoint2[i14] = i13;
                    facePoint3[i14] = k13;
                }
            }
            nc1.pos = j9;
            nc2.pos = k9;
            nc3.pos = l9;
            nc4.pos = i10;
            nc5.pos = j10;
            nc6.pos = k10;
            for (int k14 = 0; k14 < numTexTriangles; k14++) {
                int i15 = O[k14] & 0xff;
                if (i15 == 0) {
                    texTrianglesPoint1[k14] = nc1.readUShort();
                    texTrianglesPoint2[k14] = nc1.readUShort();
                    texTrianglesPoint3[k14] = nc1.readUShort();
                }
                if (i15 == 1) {
                    texTrianglesPoint1[k14] = nc2.readUShort();
                    texTrianglesPoint2[k14] = nc2.readUShort();
                    texTrianglesPoint3[k14] = nc2.readUShort();
                    kb[k14] = nc3.readUShort();
                    N[k14] = nc3.readUShort();
                    y[k14] = nc3.readUShort();
                    gb[k14] = nc4.readSignedByte();
                    lb[k14] = nc5.readSignedByte();
                    F[k14] = nc6.readSignedByte();
                }
                if (i15 == 2) {
                    texTrianglesPoint1[k14] = nc2.readUShort();
                    texTrianglesPoint2[k14] = nc2.readUShort();
                    texTrianglesPoint3[k14] = nc2.readUShort();
                    kb[k14] = nc3.readUShort();
                    N[k14] = nc3.readUShort();
                    y[k14] = nc3.readUShort();
                    gb[k14] = nc4.readSignedByte();
                    lb[k14] = nc5.readSignedByte();
                    F[k14] = nc6.readSignedByte();
                    cb[k14] = nc6.readSignedByte();
                    J[k14] = nc6.readSignedByte();
                }
                if (i15 == 3) {
                    texTrianglesPoint1[k14] = nc2.readUShort();
                    texTrianglesPoint2[k14] = nc2.readUShort();
                    texTrianglesPoint3[k14] = nc2.readUShort();
                    kb[k14] = nc3.readUShort();
                    N[k14] = nc3.readUShort();
                    y[k14] = nc3.readUShort();
                    gb[k14] = nc4.readSignedByte();
                    lb[k14] = nc5.readSignedByte();
                    F[k14] = nc6.readSignedByte();
                }
            }
            if (i2 != 255) {
                for (int i12 = 0; i12 < numTriangles; i12++)
                    render_priorities[i12] = (byte) i2;
            }
            face_color = triangleColours2;
            vertices = numVertices;
            faces = numTriangles;
            vertex_x = vertexX;
            vertex_y = vertexY;
            vertex_z = vertexZ;
            triangle_edge_a = facePoint1;
            triangle_edge_b = facePoint2;
            triangle_edge_c = facePoint3;
        }
    Reply With Quote  
     

  12. Thankful user:


  13. #9  
    Registered Member
    Optimum's Avatar
    Join Date
    Apr 2012
    Posts
    3,570
    Thanks given
    871
    Thanks received
    1,745
    Rep Power
    5000
    Yea, use the second image instead of the first for the fix, let me know if it helped

    Quote Originally Posted by DownGrade View Post
    Don't let these no life creeps get to you, its always the same on here. They'd rather spend hours upon hours in the rune-server spam section then getting laid! ha ha!Its honestly pathetic i haven't seen so many lowlifes in my life its actually insane i wish that this section would just vanish its probably the only way to get these people out of the community...
    PLEASE BE AWARE OF IMPOSTERS MY DISCORD ID: 362240000760348683
    Reply With Quote  
     


Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. Infernal cape texture on 667!
    By Johnyblob22 in forum Show-off
    Replies: 28
    Last Post: 10-30-2017, 02:31 PM
  2. Infernal cape issues
    By Splify in forum Help
    Replies: 15
    Last Post: 08-18-2017, 07:46 AM
  3. Replies: 2
    Last Post: 07-24-2017, 09:35 AM
  4. 602+ Capes issue & See through Arcane SS
    By Thrasher in forum Help
    Replies: 16
    Last Post: 10-01-2013, 04:58 PM
  5. Replies: 10
    Last Post: 02-28-2012, 06:28 PM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •