设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 4247|回复: 15
打印 上一主题 下一主题

[已经过期] 这段脚本为什么不执行?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
193
在线时间
13 小时
注册时间
2018-7-15
帖子
11
跳转到指定楼层
1
发表于 2018-9-30 21:07:25 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
module RPG
  class Map
    def initialize(width, height)
      @tileset_id = 1
      @width = width
      @height = height
      @autoplay_bgm = false
      @bgm = RPG::AudioFile.new
      @autoplay_bgs = false
      @bgs = RPG::AudioFile.new("", 80)
      @encounter_list = []
      @encounter_step = 30
      @data = Table.new(width, height, 3)
      @events = {}
    end
    attr_accessor :tileset_id
    attr_accessor :width
    attr_accessor :height
    attr_accessor :autoplay_bgm
    attr_accessor :bgm
    attr_accessor :autoplay_bgs
    attr_accessor :bgs
    attr_accessor :encounter_list
    attr_accessor :encounter_step
    attr_accessor :data
    attr_accessor :events
  end
end

这是F1里面的定义,我想修改其中的一些东西,但我就算不修改,放在脚本库里他也不执行,从def initialize(width, height)那一行开始就不执行了。
哈哈

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42409
在线时间
7603 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

14
发表于 2018-10-6 09:59:21 | 只看该作者
质数游戏 发表于 2018-10-6 08:12
我是希望在游戏的过程中能用脚本修改第四图层及以上的图块,这个似乎不行 ...

我觉得楼上都已经讲的很清楚了,默认tilemap的情况下,不可能,它只读三层的数据,也只接受3层的table数据。
2个方案提供给你,第一种是再叠加一层tilemap,叠加到原有tilemap之上,造成有3层以上地图的视觉效果,代价是效率大幅度降低。
第二种是魔改dll或者运行时动态修改tilemap的代码实现,如果精通逆向工程你可以试试看……
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
193
在线时间
13 小时
注册时间
2018-7-15
帖子
11
13
 楼主| 发表于 2018-10-6 08:12:33 | 只看该作者
RyanBern 发表于 2018-10-4 18:11
请仔细看 4 楼和 5 楼的回复。如果还是不清楚我总结一下。

1. 几乎所有 module RPG 下的东西都不是在游戏 ...

我是希望在游戏的过程中能用脚本修改第四图层及以上的图块,这个似乎不行
哈哈
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
193
在线时间
13 小时
注册时间
2018-7-15
帖子
11
12
 楼主| 发表于 2018-10-6 08:04:10 | 只看该作者
RyanBern 发表于 2018-10-4 18:11
请仔细看 4 楼和 5 楼的回复。如果还是不清楚我总结一下。

1. 几乎所有 module RPG 下的东西都不是在游戏 ...

你给的这个ULDS好像是把地图先画好再贴上去的吧?
游戏过程中可以修改这些图块吗
哈哈
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

11
发表于 2018-10-5 10:11:43 | 只看该作者
请仔细看 4 楼和 5 楼的回复。如果还是不清楚我总结一下。

1. 几乎所有 module RPG 下的东西都不是在游戏运行时调用的 initialize,而是在使用 RMXP 编辑数据库/地图的时候已经初始化完毕并且写到了数据库文件 rxdata 里。因此编辑器只认识这些字段的内容,比如你这里 RPG::Map 里定义了地图数据就是三层,地图编辑器就只使用其中的三层数据。当然你可以定义更多图层,但它们只是多出来的数据,编辑器不会去修改它们。就算随后进行手动修改,负责渲染地图的 Tilemap 类也不会去渲染它。
2. Tilemap 是为数不多既看不到脚本又看不到接口的一个类。不知道它的源码在哪,因此也就无从修改。相关内容可以见 7 楼点评给出的链接。链接内容大概是一个由个人实现的 Tilemap 类,我没用过不知道还原度有多高。因此请慎用。
3. 地图增加一个图层和将开关数量变成几万个的难度不是一个量级。
4. 你的最终目标是给地图增加一个图层。而编辑器无法帮你方便地做这事(因为它只能画三层,第四层需要你闭着眼睛猜图块 ID 然后人工把数据输入进去)。有个东西我想可以帮你。ULDS
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
193
在线时间
13 小时
注册时间
2018-7-15
帖子
11
10
 楼主| 发表于 2018-10-1 22:23:32 | 只看该作者
huajinyu123 发表于 2018-9-30 22:26
要不,先定义再执行这段脚本?

如何定义呢?直接复制帮助里的定义到脚本库里它不执行
哈哈
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3293
在线时间
1463 小时
注册时间
2014-8-9
帖子
337
9
发表于 2018-10-1 14:26:31 | 只看该作者
要不,先定义再执行这段脚本?

评分

参与人数 1星屑 -1 收起 理由
RyanBern -1 错误答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42409
在线时间
7603 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

8
发表于 2018-10-1 11:46:43 | 只看该作者
质数游戏 发表于 2018-10-1 09:51
应该可以实现3层以上的吧,变量都可以突破5000
我感觉是某一个类,对象限制了这个3层。但不知道它在哪。 ...

我觉得……你对RM还并不是太了解。
不是什么都想当然行得通的。
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
193
在线时间
13 小时
注册时间
2018-7-15
帖子
11
7
 楼主| 发表于 2018-10-1 09:54:01 | 只看该作者
张咚咚 发表于 2018-9-30 16:13
这个不是在脚本里实时创建,是编辑器保存的。
你要想改可以在Game_Map的50行下面操作@map对象 ...

那具体怎么改呢,要不要加supers什么的,这应该是在修改一个类或者一个对象吧?

点评

http://rpg.blue/thread-127629-1-1.html  发表于 2018-10-1 10:51
5楼说的对,Tilemap内部的map_data数据记录处理的是3层,我记得论坛有人写了个Tilemap,你可以去找一下  发表于 2018-10-1 10:48
哈哈
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
193
在线时间
13 小时
注册时间
2018-7-15
帖子
11
6
 楼主| 发表于 2018-10-1 09:51:45 | 只看该作者
fux2 发表于 2018-9-30 17:23
不是改了数据就会读更多层的,tilemap的内部实现就只读3层。

应该可以实现3层以上的吧,变量都可以突破5000
我感觉是某一个类,对象限制了这个3层。但不知道它在哪。
哈哈
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-24 23:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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