Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import struct
- def decrypt(data):
- retValue = ""
- key = "!~#(&|@@"
- x = 0
- for i in range(len(data)):
- if x >= len(key):
- xored = (ord(data[i])) ^ (ord(key[0]))
- else:
- xored = (ord(data[i])) ^ (ord(key[x]))
- retValue += chr(xored)
- x = x + 1
- return retValue
- def read_string_sized(handle):
- size = read_u_int_32(handle)
- s = ''
- for j in range(0, size):
- lit = struct.unpack('c', handle.read(1))[0]
- if ord(lit) != 0:
- s += chr(lit[0])
- if len(s) > 100:
- break
- return s
- def read_u_int_32(handle):
- return struct.unpack("I", handle.read(4))[0]
- def read_int_32(handle):
- return struct.unpack("i", handle.read(4))[0]
- def read_float(handle):
- return struct.unpack("f", handle.read(4))[0]
- def read_char(handle):
- return chr(struct.unpack("c", handle.read(1))[0][0])
- def write_int32(handle, val):
- handle.write(struct.pack("i", val))
- def write_length_string(handle, text):
- write_int32(handle, len(text))
- for i in range(len(text)):
- handle.write(struct.pack("b", ord(text[i])))
- def add_entry(path, entries):
- gbf_file = open(path, "rb")
- header = gbf_file.read(52)
- mesh_count = read_u_int_32(gbf_file)
- meshes = []
- meshes_vectors = []
- for i in range(mesh_count):
- meshes.append(decrypt(read_string_sized(gbf_file)))
- meshes_vectors.append(gbf_file.read(24))
- materials = []
- material_count = read_u_int_32(gbf_file)
- for i in range(material_count):
- materials.append(decrypt(read_string_sized(gbf_file)))
- rest_of_file = gbf_file.read()
- gbf_file_out = open(path, "wb")
- gbf_file_out.write(header)
- for entry in entries:
- if entry.startswith("material="):
- material_count = material_count + 1
- materials.append(entry)
- else:
- material_count = material_count + 1
- materials.append("mesh=" + entry)
- mesh_count = mesh_count + 1
- meshes.append(entry)
- meshes_vectors.append(meshes_vectors[-1])
- write_int32(gbf_file_out, mesh_count)
- for i in range(mesh_count):
- write_length_string(gbf_file_out, decrypt(meshes[i].upper()))
- gbf_file_out.write(meshes_vectors[i])
- write_int32(gbf_file_out, material_count)
- for i in range(material_count):
- write_length_string(gbf_file_out, decrypt(materials[i]))
- gbf_file_out.write(rest_of_file)
- # animation_count = read_u_int_32(gbf_file)
- # animations1 = []
- # for i in range(animation_count):
- # print(decrypt(read_string_sized(gbf_file)))
- # for j in range(read_u_int_32(gbf_file)):
- # print(decrypt(read_string_sized(gbf_file)))
- # for k in range(read_u_int_32(gbf_file)):
- # print("float" + str(read_float(gbf_file)))
- # animation_count2 = read_u_int_32(gbf_file)
- # for i in range(animation_count2):
- # print(decrypt(read_string_sized(gbf_file)))
- # print(read_char(gbf_file))
- #bow
- entries = ["w_bow_rgb_32_am.gmf", "material=am3067.grf", "material=amm3754.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\am_s.gbf", entries)
- entries = ["w_bow_rgb_32_aw.gmf", "material=aw3101.grf", "material=aww3754.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\aw_s.gbf", entries)
- #staff
- entries = ["w_stf_rgb_32_wm.gmf", "material=am3061.grf", "material=amm3748.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\wm_s.gbf", entries)
- entries = ["w_stf_rgb_32_ww.gmf", "material=aw3095.grf", "material=aww3748.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\ww_s.gbf", entries)
- entries = ["w_stf_rgb_32_em.gmf", "material=am3061.grf", "material=amm3748.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\em_s.gbf", entries)
- entries = ["w_stf_rgb_32_ew.gmf", "material=aw3095.grf", "material=aww3748.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\ew_s.gbf", entries)
- #crossbow
- entries = ["w_cbw_rgb_32_am.gmf", "material=am3073.grf", "material=amm3760.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\am_s.gbf", entries)
- entries = ["w_cbw_rgb_32_aw.gmf", "material=aw3107.grf", "material=aww3760.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\aw_s.gbf", entries)
- #mace1
- #mace2
- entries = ["w_mce_rgb_32_em.gmf", "material=am3040.grf", "material=amm3727.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\em_s.gbf", entries)
- entries = ["w_mce_rgb_32_ew.gmf", "material=aw3074.grf", "material=aww3727.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\ew_s.gbf", entries)
- entries = ["w_mce_rgb_32_km.gmf", "material=am3040.grf", "material=amm3727.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\km_s.gbf", entries)
- entries = ["w_mce_rgb_32_kw.gmf", "material=aw3074.grf", "material=aww3727.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\kw_s.gbf", entries)
- entries = ["w_mce_rgb_32_wm.gmf", "material=am3040.grf", "material=amm3727.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\wm_s.gbf", entries)
- entries = ["w_mce_rgb_32_ww.gmf", "material=aw3074.grf", "material=aww3727.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\ww_s.gbf", entries)
- entries = ["w_mce_rgb_32_zm.gmf", "material=am3040.grf", "material=amm3727.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\zm_s.gbf", entries)
- entries = ["w_mce_rgb_32_zw.gmf", "material=aw3074.grf", "material=aww3727.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\zw_s.gbf", entries)
- #dagger
- entries = ["w_ddg_rgb_32_am.gmf", "material=am3029.grf", "material=amm3716.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\am_s.gbf", entries)
- entries = ["w_ddg_rgb_32_aw.gmf", "material=aw3063.grf", "material=aww3716.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\aw_s.gbf", entries)
- entries = ["w_ddg_rgb_32_dm.gmf", "material=am3029.grf", "material=amm3716.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\dm_s.gbf", entries)
- entries = ["w_ddg_rgb_32_dw.gmf", "material=aw3063.grf", "material=aww3716.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\dw_s.gbf", entries)
- entries = ["w_ddg_rgb_32_em.gmf", "material=am3029.grf", "material=amm3716.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\em_s.gbf", entries)
- entries = ["w_ddg_rgb_32_ew.gmf", "material=aw3063.grf", "material=aww3716.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\ew_s.gbf", entries)
- entries = ["w_ddg_rgb_32_km.gmf", "material=am3029.grf", "material=amm3716.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\km_s.gbf", entries)
- entries = ["w_ddg_rgb_32_kw.gmf", "material=aw3063.grf", "material=aww3716.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\kw_s.gbf", entries)
- entries = ["w_ddg_rgb_32_km_01.gmf", "material=am3029.grf", "material=amm3716.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\km_s.gbf", entries)
- entries = ["w_ddg_rgb_32_kw_01.gmf", "material=aw3063.grf", "material=aww3716.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\kw_s.gbf", entries)
- entries = ["w_ddg_rgb_32_nm.gmf", "material=am3029.grf", "material=amm3716.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\nm_s.gbf", entries)
- entries = ["w_ddg_rgb_32_nw.gmf", "material=aw3063.grf", "material=aww3716.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\nw_s.gbf", entries)
- entries = ["w_ddg_rgb_32_wm.gmf", "material=am3029.grf", "material=amm3716.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\wm_s.gbf", entries)
- entries = ["w_ddg_rgb_32_ww.gmf", "material=aw3063.grf", "material=aww3716.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\ww_s.gbf", entries)
- entries = ["w_ddg_rgb_32_zm.gmf", "material=am3029.grf", "material=amm3716.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\zm_s.gbf", entries)
- entries = ["w_ddg_rgb_32_zw.gmf", "material=aw3063.grf", "material=aww3716.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\zw_s.gbf", entries)
- #dualsword
- entries = ["w_dsw_rgb32_zm.gmf", "material=zmm1430.grf", "material=zmm1433.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\zm_s.gbf", entries)
- entries = ["w_dsw_rgb32_zw.gmf", "material=zww1430.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\zw_s.gbf", entries)
- entries = ["w_pax_rgb32_zm.gmf", "material=zmm1427.grf", "material=zmm1443.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\zm_s.gbf", entries)
- entries = ["w_pax_rgb32_zw.gmf", "material=zww1427.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\zw_s.gbf", entries)
- #katar
- entries = ["w_ktr_rgb_32_nm.gmf", "material=nm3049.grf", "material=nmn3766.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\nm_s.gbf", entries)
- entries = ["w_ktr_rgb_32_nw.gmf", "material=nw3074.grf", "material=nww3766.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\nw_s.gbf", entries)
- #zhen
- entries = ["w_dks_rgb_32_dm.gmf", "material=am3092.grf", "material=amm3779.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\dm_s.gbf", entries)
- entries = ["w_dks_rgb_32_dw.gmf", "material=aw3126.grf", "material=aww3779.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\dw_s.gbf", entries)
- entries = ["w_dks_rgb_32_dm01.gmf", "material=am3092.grf", "material=amm3779.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\dm_s.gbf", entries)
- entries = ["w_dks_rgb_32_dw01.gmf", "material=aw3126.grf", "material=aww3779.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\dw_s.gbf", entries)
- #trinity
- entries = ["w_glove3400.gmf", "material=trr963.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\tr_s.gbf", entries)
- entries = ["w_obj3400.gmf", "material=tnn951.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\tn_s.gbf", entries)
- #onehandsword
- entries = ["w_osw_rgb_32_am.gmf", "material=am3035.grf", "material=amm3722.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\am_s.gbf", entries)
- entries = ["w_osw_rgb_32_aw.gmf", "material=aw3069.grf", "material=aww3722.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\aw_s.gbf", entries)
- entries = ["w_osw_rgb_32_dm.gmf", "material=am3035.grf", "material=amm3722.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\dm_s.gbf", entries)
- entries = ["w_osw_rgb_32_dw.gmf", "material=aw3069.grf", "material=aww3722.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\dw_s.gbf", entries)
- entries = ["w_osw_rgb_32_em.gmf", "material=am3035.grf", "material=amm3722.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\em_s.gbf", entries)
- entries = ["w_osw_rgb_32_ew.gmf", "material=aw3069.grf", "material=aww3722.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\ew_s.gbf", entries)
- entries = ["w_osw_rgb_32_km.gmf", "material=am3035.grf", "material=amm3722.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\km_s.gbf", entries)
- entries = ["w_osw_rgb_32_kw.gmf", "material=aw3069.grf", "material=aww3722.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\kw_s.gbf", entries)
- entries = ["w_osw_rgb_32_nm.gmf", "material=am3035.grf", "material=amm3722.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\nm_s.gbf", entries)
- entries = ["w_osw_rgb_32_nw.gmf", "material=aw3069.grf", "material=aww3722.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\nw_s.gbf", entries)
- entries = ["w_osw_rgb_32_wm.gmf", "material=am3035.grf", "material=amm3722.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\wm_s.gbf", entries)
- entries = ["w_osw_rgb_32_ww.gmf", "material=aw3069.grf", "material=aww3722.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\ww_s.gbf", entries)
- entries = ["w_osw_rgb_32_zm.gmf", "material=am3035.grf", "material=amm3722.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\zm_s.gbf", entries)
- entries = ["w_osw_rgb_32_zw.gmf", "material=aw3069.grf", "material=aww3722.grf"]
- add_entry(r"F:\TrinityDev\RohanCN\model\Player\bin\zw_s.gbf", entries)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement