# Right Royal World / 权御天下 (http://qy.iwgame.com) # script for QuickBMS http://quickbms.aluigi.org set KEY binary "2b_make_great_$\0" comtype lzo1x open FDDE "npi" idstring "NPI\0" get VER long get INFO_OFF long get SIZE long get FILES long math SIZE - INFO_OFF encryption 3des-112 KEY log MEMORY_FILE INFO_OFF SIZE encryption "" "" open FDDE "npk" for i = 0 < FILES get IS_FOLDER long MEMORY_FILE get ID long MEMORY_FILE get PARENT_ID long MEMORY_FILE if IS_FOLDER == 0 get OFFSET longlong MEMORY_FILE get END_OFFSET longlong MEMORY_FILE get SIZE longlong MEMORY_FILE getdstring DUMMY 0x10 MEMORY_FILE get THIS_INFO_OFF longlong MEMORY_FILE get ZERO long MEMORY_FILE callfunction GET_INFO 1 callfunction BUILD_NAME 1 log MEMORY_FILE3 0 0 append for MEM_SIZE = 0 != SIZE goto OFFSET get CHUNK_SIZE long get CHUNK_ZSIZE long get NOT_COMPRESSED byte savepos OFFSET if NOT_COMPRESSED != 0 log MEMORY_FILE3 OFFSET CHUNK_ZSIZE else clog MEMORY_FILE3 OFFSET CHUNK_ZSIZE CHUNK_SIZE endif get MEM_SIZE asize MEMORY_FILE3 math OFFSET + CHUNK_ZSIZE next append log NAME 0 SIZE MEMORY_FILE3 else get OFFSET longlong MEMORY_FILE get OFFSET2 longlong MEMORY_FILE getdstring ZERO 0x18 MEMORY_FILE get THIS_INFO_OFF longlong MEMORY_FILE get ZERO long MEMORY_FILE callfunction GET_INFO 1 putarray 0 -1 ID putarray 1 -1 PARENT_ID putarray 2 -1 NAME endif next i startfunction BUILD_NAME set PATH string "" for PARENT_ID = PARENT_ID != 0 math x = 0 do getarray TMP 0 x math x + 1 while TMP != PARENT_ID math x - 1 getarray TMP 2 x string PATH p "%s/%s" TMP PATH getarray PARENT_ID 1 x next string NAME p "%s/%s" PATH NAME endfunction startfunction GET_INFO encryption 3des-112 KEY log MEMORY_FILE2 OFFSET 0x18 get ENTRY_SIZE short MEMORY_FILE2 # or threebyte encryption 3des-112 KEY log MEMORY_FILE2 OFFSET ENTRY_SIZE math OFFSET + ENTRY_SIZE get DUMMY long MEMORY_FILE2 # 3|1, not long get SIZE long MEMORY_FILE2 get ZSIZE long MEMORY_FILE2 get ZSIZE long MEMORY_FILE2 get ZERO long MEMORY_FILE2 get ZERO long MEMORY_FILE2 math NAMESZ = ENTRY_SIZE math NAMESZ - 0x18 getdstring NAME NAMESZ MEMORY_FILE2 encryption "" "" endfunction