can someone help me [jx3.online]

If nobody is able to help for free... let's try this way. No sellers allowed.
CBear
Posts: 6
Joined: Fri Apr 06, 2018 3:18 pm

can someone help me [jx3.online]

Post by CBear »

I had one bms script for jx3.online
it's extractor all files when I select one .DAT,it's too many files,but i just want to get some files,like .xml or .txt or .png
can someone help me to edit this script and let it do this?
I will pay for this $10
:cry:
Email:109789451@qq.com
My English is not very good. :roll:

Code: Select all

# JX3 Online new (script 0.1.2)
#   This script is completely heuristic because there is a sort of padding (0xce byte) between the files
#   If you use quickbms.exe the tool will use a particular way to guess if the current position is
#   correct, while if you use quickbms_4gb_files it will use another one... yes it's a total work-around.
# script for QuickBMS http://quickbms.aluigi.org

comtype lzo1x
get FULLSIZE asize

get NAME basename
strlen i NAME
for i -= 1 >= 0
    getvarchr TMP NAME i
    if TMP < '0' || TMP > '9'
        break
    endif
next i -= 1
math i += 1
string NAME <<= i
math BASE_GUESS = NAME  # not used at the moment

math TMP = 0x10000000
math TMP *= 16
math QUICKBMS64 = 0
if TMP != 0
    math QUICKBMS64 = 1
endif

math BASE_OFF = 0
math FILE_NUM = 0
math CHECK_SIZE = FULLSIZE
math CHECK_SIZE -= 40
for OFFSET = 0 u< CHECK_SIZE
    # you will receive an error, ignore it
    goto OFFSET
    do
        get TMP byte
    while TMP == 0xce
    goto -1 0 SEEK_CUR
    savepos MYENTRY_OFF

    # offset guessed, this is a work-around used in both quickbms64 and 32
    for
        getdstring DUMMY 0xc
        getdstring SIZE 5
        get SIZE2 threebyte
        getdstring ENTRY_OFF 5
        get ENTRY_OFF2 threebyte    # 40 bits grants over 1500 package.dat
        if SIZE2 == 0 && ENTRY_OFF2 == 0
            break
        endif
        math MYENTRY_OFF -= 1
        goto MYENTRY_OFF
    next
    goto MYENTRY_OFF
   
    # offset guessed, this is a work-around
    for
        getdstring DUMMY 0xc
        get SIZE longlong
        get ENTRY_OFF longlong
        math ENTRY_OFF -= BASE_OFF
        if ENTRY_OFF == 0
            break
        elif ENTRY_OFF == MYENTRY_OFF
            break
        elif ENTRY_OFF u>= FULLSIZE # multi packages
            break
        endif
        math MYENTRY_OFF -= 1
        goto MYENTRY_OFF
    next
    if ENTRY_OFF u>= FULLSIZE
        if FILE_NUM == 0
            if QUICKBMS64 != 0
                math BASE_OFF = ENTRY_OFF
            endif
        endif
    endif
   
    get ZSIZE longlong
    get ZIP long
    getdstring DUMMY 0x10
    savepos OFFSET
    if ZIP == 0
        log "" OFFSET SIZE
    elif ZIP == 1
        clog "" OFFSET ZSIZE SIZE
    else
        # unknown
        log "" OFFSET ZSIZE
    endif
    math OFFSET += ZSIZE
    math FILE_NUM += 1
next