设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
返回列表
+ 发新帖
查看: 641|回复: 0

[转载发布] 地图菜单窗口插件2:多级菜单联合【送:角色创建】

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 221 天

    连续签到: 1 天

    [LV.7]常住居民III

    9100

    主题

    890

    回帖

    7万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    64872
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    74892

    灌水之王

    发表于 2024-4-20 00:28:14 | 显示全部楼层 |阅读模式
    多级菜单联合

    范例:

    示意图:

    范例使用指南:
    1. 复制除模板外的 4 个脚本。
    2. 此脚本默认会占用数据库前 30 个角色,请把前 30 个角色的战斗图和行走图设置一下。
    3. 此脚本默认占用全局变量 25 ,请在脚本【角色创建】的第 17 行左右修改
    4. 尚未添加声音……看心情吧……
    ===================
    2017/2/24 18:52 更新
    5. 无视2,现在会占用数据库从 $Start_ID_CreateActor 开始的总共 $All_ID_CreateActor 个角色。
    ===================
    原帖请看这里:

    地图菜单窗口插件这个插件可以方便的在地图上弹出窗口,并接受用户的输入键进行处理,不太会用的作者可以直接调用公共事件,但是这个脚本本身有更丰富的用途。

    为了不遗余力的推销我这个插件脚本(加上在6R刷存在感),我会继续编写这个插件的更多高级使用方法。

    本期内容:

    多级菜单联合使用

    之前的脚本里提到,只能有一级的子菜单,那如果有多级的子菜单应该怎么办呢?当然没有问题,只需要在一个菜单的按键响应里调用另一个已经写好的菜单就行啦。这里还是拿一个具体的例子来着手做。于是我们来做一个“角色创建系统”吧!

    大致实现以下功能:

    1. 新增角色,子菜单是随机和确认,随机选项会产生姓名等基本属性。这里用随机而不是输入姓名也是为了方便制作……确认的话会把此角色加入到队伍里。

    2. 删除角色,子菜单是当前队伍的所有角色,选中已经在队伍里的角色,删除此角色。

    3. 修改角色,子菜单是当前队伍的所有角色,选择某一个特定的角色后,会出现2级子菜单,用来调整各种属性(此处就是多级菜单联合使用)

    4. 确认退出,如果队伍人数正确,将已经创建好的角色加入队伍,开始游戏

    首先我们分析思路:

    1. 可以让玩家保存最多 8 个角色,但是队伍里只能有 4 个。众所周知,往数据库里写东西是很不正确的,所以提前在数据库里创建好 8 个角色,然后添加一个“小精灵”角色作为初始角色,让“小精灵”去触发角色制作事件。
    2. 有一个数组用来保存当前已经创建好的角色对应数据库里的角色ID $all_saved_actor_ids = []。
      2.1 如果是新建角色,就给数组里添加数组 $all_saved_actor_ids 中不存在,但是在 1-8 之间的最小整数。如果数组$all_saved_actor_ids长度为 8,则显示角色已满,要删除部分角色。
      2.2 如果是删除角色,子菜单遍历$all_saved_actor_ids生成,按下确认键就把对应的ID从数组里去掉。如果数组$all_saved_actor_ids为空,显示“无角色”。
      2.3 如果是修改角色,子菜单遍历$all_saved_actor_ids生成,按下确认键打开新的属性锁定菜单。如果数组$all_saved_actor_ids为空,显示“无角色”。
    3. 确认退出,选中时检查 $ary_saved_actors.size 是否为 4 。是的话就调用公共事件,将设置好的角色信息写入 actors.rxdata ,并且将“小精灵”踢掉,把几位角色都拉入队伍。最后开始游戏。

    4. 数据,关于随机生成名字,我找到了一个很好的字符串,去掉字符串里的 '·' 然后随机选择连续的 n 个字就行了,注意到UTF-8里每个汉字是3个字符的位置:
    RUBY 代码

    5. 接下来先制作主菜单和一级子菜单,实现添加角色的功能吧!(由于不能上传太多代码,这里隐去一些信息)
    RUBY 代码


    现在才是正题:【多级菜单的调用】
    子菜单是锁定菜单,在“编辑角色”激活时可以使用,选中特定角色,按下右键会打开。子菜单的设置和主菜单几乎一样,略有不同的地方是,在修改 $wmm_position 前,要把这个值存起来,退出菜单后还原。
    子菜单的部分代码,请注意 14 行和 23 行。
    RUBY 代码

    主菜单中调用子菜单的方法,在 run_right 中:
    RUBY 代码
    其实就是新建一个Interpreter对象,因为呼叫菜单的方法定义在了 Interpreter 中。仅此一句,十分简单。

    范例已上传

                 本帖来自P1论坛作者luliang,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=399070  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    帖子地址: 

    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

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

    GMT+8, 2026-10-20 04:10 , Processed in 0.102643 second(s), 55 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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