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

Project1

 找回密码
 注册会员
搜索

地图菜单窗口插件2:多级菜单联合【送:角色创建】

查看数: 3471 | 评论数: 8 | 收藏 3
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-2-22 23:12

正文摘要:

本帖最后由 guoxiaomi 于 2017-2-26 09:28 编辑 多级菜单联合 范例: 范例使用指南: 1. 复制除模板外的 4 个脚本。 2. 此脚本默认会占用数据库前 30 个角色,请把前 30 个角色的战斗图和行走图设置一下。 3. ...

回复

夜狠简单 发表于 2017-3-19 23:14:41
guoxiaomi 发表于 2017-3-19 17:21
窗口,菜单系统的bug,还是这个角色创造界面的bug?

以及不做成scene是有以下考虑:每次离开和返回 Scen ...


嗯,就像VX差不多。工程里面是临时写的,目的大概是一开始生成所有窗口,部分一开始可见一部分不可见。然后按下确认键某些窗口可见时刷新该窗口需要刷新的内容。在该窗口按下返回时该窗口的可见状态又关闭。这个系统不错,期待完善!
guoxiaomi 发表于 2017-3-19 17:21:35
本帖最后由 guoxiaomi 于 2017-3-19 21:12 编辑
夜狠简单 发表于 2017-3-19 16:48
这样很好看但是还是有不少bug的


窗口,菜单系统的bug,还是这个角色创造界面的bug?

以及不做成scene是有以下考虑:每次离开和返回 Scene_Map 都会有一堆麻烦事,所以干脆就在地图上死循环,死循环里套死循环~



我看了看工程里面的代码,使用了 $scene = Scene_Call_mapmenu.new(*args) 来呼叫窗口。

如果调用多级菜单,就必须记忆上一次调用的参数,返回的时候要再次呼叫窗口,目前的这个半成品暂时还没有做这个处理。感觉这样做的话就和 VA 的 SceneManager 很像了。

我写这个的初衷,就是为了尽可能把逻辑做得简单,所以只有 Window 和loop do ... end 结构,其他的都不去涉及。

死循环里套死循环,把地图窗口菜单和游戏本体的运行完全隔离开来,而需要交互的时候,就退出地图菜单打开开关,调用公共事件。这是我的“简单”逻辑。
夜狠简单 发表于 2017-3-19 16:48:26
这样很好看但是还是有不少bug的


如果能整理到scene上面就好了
类似下面这个没有整合完毕的脚本

Project1.zip

214.42 KB, 下载次数: 73

luliang 发表于 2017-2-24 11:56:29
luliang 发表于 2017-2-24 11:41
我居然不是板凳....

宝马!!!!!!!!!!!!= =ll
luliang 发表于 2017-2-24 11:41:53
我居然不是板凳....

点评

沙发,板凳后面是什么……  发表于 2017-2-24 11:51
guoxiaomi 发表于 2017-2-24 02:05:41
已经写完了。

角色的设定是可以随机改变6个基础属性(生命魔法力量灵巧速度魔力)的基本值和随等级的增量。不同的职业,基础属性值的随机范围也不一样。可以创造8个角色,然后从里面选出4个开始游戏。当然这些都可以改。

二级子菜单的功能用于锁定某些属性的值,在随机的时候不发生变化,一共12个值可以锁定其中的4个。

等我稍作修改,解决了存档冲突的问题后,就会把范例发上来。


【存档冲突】

rmxp坑爹的一个地方是,Game_Actor有一堆base_xxx属性,是直接读取$data_actors[@actor_id].parameters的内容。所以如果要设置基本属性的增量值,在不修改原来的脚本的情况下,就必须把数据存入到data/actors.rxdata里。

存数据不是问题,问题是data/actors.rxdata这个文件是全存档共享的,这将导致,如果新建好角色之后存档1,开始新游戏再次新建角色,重新修改存档1里使用的角色,读取存档1之后角色的数据会发生变化。

为了避免这种情况的发生,有如下解决方案:
1. 向隔壁学习,只有一个存档位置。因为需要自定义角色的游戏,大多是rougelike类的游戏,只有一个存档,死了重来是可以接受的。
2. 游戏一开始就必须选择一个存档继续,然后在每个存档里用不同的默认角色。比如第1个存档位,创造的角色是第1-8个,第2个存档位创造的角色是第11-18个。这样改起来方便。而且很多游戏就是游戏开始时要先指定存档位置的。
3. 每次创建角色成功的时候,把创建的角色clone一个,压到$data_actors的底部,所以不会修改到已经创建好的角色。优点是好改,缺点就是如果玩家不停的成功创建角色,data/actors.rxdata可能会很大。其实并不是一个大的问题,因为正常的玩家不会创建成千上万个角色……
4. 在玩家创建角色前读取所有的存档,跳过已经在存档里的角色ID,这样也能保证不会修改原来的角色。(刚刚想出来的,感觉最合逻辑)
5. 更多……

其实我就想到了这么多,感觉4是比较合适的。
luliang 发表于 2017-2-23 07:16:21
板凳。。。。

点评

更完了>_<,谢谢关注!  发表于 2017-2-24 11:28
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-5-17 07:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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