查看: 102|回复: 0

[转载发布] 脚本导出RMXP地图MAP数据带通行优先级地形标志

[复制链接]
  • TA的每日心情
    开心
    6 天前
  • 签到天数: 33 天

    连续签到: 1 天

    [LV.5]常住居民I

    2022

    主题

    32

    回帖

    7144

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    0
    卡币
    5074
    OK点
    16
    积分
    7144
    发表于 同元一千年九月二十二日(秋) | 显示全部楼层 |阅读模式
    [Ruby] 纯文本查看 复制代码
    $data_actors        = load_data("Data/Actors.rxdata")
    $data_classes       = load_data("Data/Classes.rxdata")
    $data_skills        = load_data("Data/Skills.rxdata")
    $data_items         = load_data("Data/Items.rxdata")
    $data_weapons       = load_data("Data/Weapons.rxdata")
    $data_armors        = load_data("Data/Armors.rxdata")
    $data_enemies       = load_data("Data/Enemies.rxdata")
    $data_troops        = load_data("Data/Troops.rxdata")
    $data_states        = load_data("Data/States.rxdata")
    $data_animations    = load_data("Data/Animations.rxdata")
    $data_tilesets      = load_data("Data/Tilesets.rxdata")
    $data_common_events = load_data("Data/CommonEvents.rxdata")
    $data_system        = load_data("Data/System.rxdata")
    $mapinfos           = load_data("Data/MapInfos.rxdata")
    
    for key in $mapinfos.keys
      
      for name in $mapinfos[key].name
        text = sprintf("%s",name)
        file = open("#{text}.txt","w")
        file.write(sprintf("[地图%03d名称]\t%s\n",key,name))
        file.write(sprintf("[地图的父地图ID编号]\t%s\n",$mapinfos[key].parent_id))
        file.write(sprintf("[地图树状显示的顺序]\t%s\n",$mapinfos[key].order))
        file.write(sprintf("[地图树状显示已展开的标记]\t%s\n",$mapinfos[key].expanded))
        file.write(sprintf("[横向滚动的位置]\t%s\n",$mapinfos[key].scroll_x))
        file.write(sprintf("[纵向滚动的位置]\t%s\n",$mapinfos[key].scroll_y))
        map = load_data(sprintf("Data/Map%03d.rxdata",key))
        file.write(sprintf("[地图数据]\n[宽度]\t%s\n[高度]\t%s\n",map.width,map.height))
        file.write("0x01 : 下方向通行不能,0x02 : 左方向通行不能,0x04 : 右方向通行不能\n")
        file.write("0x08 : 上方向通行不能,0x40 : 草木繁茂处标记,0x80 : 柜台标记\n")
        #导出3层数据 图标ID,通行
        for i in [0,1,2]
          file.write(sprintf("[第%d层]\n",i+1))
            for h in 0...map.height
              for w in 0...map.width
                pass = $data_tilesets[map.tileset_id].passages[map.data[w,h,i]]
                if map.data[w,h,i] == 0
                  file.write(sprintf("%1d,%X:",0,pass))
                else
                  file.write(sprintf("%1d,%X:",map.data[w,h,i]-384,pass))
                end
              end
              file.write("\n")
            end
          file.write("========================================")
          file.write("========================================\n")
        end
        #导出图块通行表-图块优先级-地形标志表
        file.write("[导出图块通行表-图块优先级-地形标志表]\n")
        file.write(sprintf("[图块名字]\t%s\n",$data_tilesets[map.tileset_id].name))
        file.write(sprintf("[图块图像的文件名]\t%s",$data_tilesets[map.tileset_id].tileset_name))
        for i in 0...384
          pass  = $data_tilesets[map.tileset_id].passages[384+i]
          prior = $data_tilesets[map.tileset_id].priorities[384+i]
          tags  = $data_tilesets[map.tileset_id].terrain_tags[384+i]
          if(i%8==0)
              file.write("\n")
          end
          file.write(sprintf("%3X-%d-%d,",pass,prior,tags))
        end
      end
      file.close
    end
    exit



    直接插入脚本顶部
    输出3层地图数据加通行
    还有优先级和标志的查看表
    方便使RMXP当作地图编辑器 使用别的编程工具导入RMXP制作的地图
                 本帖来自P1论坛作者SZero,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg. blue/forum.php?mod=viewthread&tid=142268  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2024-5-4 09:25 , Processed in 0.048898 second(s), 45 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表