玩具兵大战吧 关注:1,472贴子:9,521
  • 14回复贴,共1

想复现玩具兵大战2

只看楼主收藏回复

想用Unity复现经典 玩具兵大战2。但是遇到几个最基本的问题。
要怎么获取游戏的地图模型、人物模型和动画资源?尽可能原滋原味的。
玩具兵大战2 相关的 玩具兵大战3 是否是开源的呢?如果是,要怎么获取相关源代码以便于加速复现呢?


IP属地:福建1楼2023-06-08 15:09回复
    先去把游戏下了,自己翻翻游戏文件夹就知道了


    IP属地:贵州来自Android客户端3楼2023-06-08 17:27
    回复
      有一些文件是要拆包的,语音倒是直接用


      IP属地:贵州来自Android客户端4楼2023-06-08 17:32
      收起回复
        之前在老外论坛找到些资料。自己反编译了一点。部分模型用到调色板,还没找到方法提取,就停了。


        IP属地:广东来自Android客户端5楼2023-06-09 21:19
        收起回复


          IP属地:广东6楼2023-06-09 22:51
          回复
            下面是老外论坛的格式资料:
            OBJECTS.DAT
            byte[4]maybe checksum?
            byte[1024]color palette (256 colors)
            uint32number of objects
            // object index table
            for each object {
            byte[4]unknown0
            uint32offset
            }
            // actual objects
            for each object {
            byte[4]unknown0 (same values as before)
            uint32width
            uint32height
            uint32unknown1 (either 8 or 4)
            byte[4]unknown2
            uint32unknown3
            uint32size of section1
            <section1>
            uint32size of section2
            <section2>(not present if size is 0)
            uint32size of section3
            <section3>(not present if size is 0)
            byte[16]always 0
            }
            <EOF>
            // the sections in detail:
            <section1>
            uint16sprite_width
            uint16sprite_height
            for (sprite_height) {
            if (unknown1 == 8) {
            uint16line_offset
            } else {
            uint32line_offset
            }
            }
            <run-length encoded pixel data>
            <num_transparent_pixels><num_opaque_pixels><opaque_pixels[]>
            // e.g.
            // 55 00 -> 0x55 transparent pixels, no opaque pixels
            // 45 01 20 0F 00 -> 0x45 tr., 1 opaque (index: 0x20), 0xF tr.
            <section2>
            uint16sprite_width
            uint16sprite_height
            for (sprite_height) {
            uint16line_offset
            }
            <run-length encoded pixel data>
            <num_transparent_pixels><num_opaque_pixels>
            // e.g.
            // 25 07 0A 00 -> 0x25 tr., 7 opaque, 0xA tr.
            // = shadow of the object
            <section3 (optional)>
            // actually it's a headerless MS monochrome bitmap without
            // = the collision mask of the object
            size of section3:
            (sprite_width/8) round up to the next even number
            e.g. sprite_width = 85, sprite_height = 80
            85 / 8 = 10.625 -> 12 (=line width)
            size of section3 = 12*80 = 960


            IP属地:广东7楼2023-06-09 22:54
            收起回复
              IP属地:广东来自Android客户端8楼2023-07-23 19:40
              收起回复