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

Project1

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

[原创发布] 【ひきも記】~mmo-vxa.Ver~系统设定与日常BUG详解

[复制链接]

Lv2.观梦者

姬魂

梦石
0
星屑
423
在线时间
399 小时
注册时间
2009-8-30
帖子
612

开拓者

跳转到指定楼层
1
发表于 2013-7-29 02:34:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 高须小龙 于 2013-8-6 11:57 编辑

前言:
自从12年初把RPG制作工具及素材一共差不多10G的都删了至今,不经意间触及了心中的童年梦想。说是放下了,但总会自觉地翻阅圈子相关的东西。现在已经不是从前的年少,开始为生活而奔波,没有太多空闲的时间去料理这些梦想的事情,不过我想我再过若干年还是会这样,不经意想起自己也去动手制作过童年的那一个梦。我很佩服柳大,能够把梦想变成自己的事业。
咳咳……直接入正题吧!虽然很久不在6R混了,但都会偶尔翻阅,近期翻阅到了VA的MMO系统,想起了之前的一个游戏坑,所以在本职(射鸡师)空闲时抽出时间把坑舔一舔,顺便把制作过程中遇到的问题和一些使用方法一同分享。

作者的话:
——引用系统说明文档
■ 注意事項
スクリプト素材ではありません、作りかけのゲームシステムです。
暗号化はかけていないので、RPGツクールVXAceがあればいじれます。
使用しているスクリプト、音楽、画像、フォント等の著作権は
それぞれの作者様にあります。
このプロジェクトの一部または全部を抜き出して
個人利用の範囲をこえて使用することを禁じます。
偉そうなこと言って中身は有名ゲームのパクりです。
エターナったら素材として公開します。たぶんなります。
いじって見つけた不具合を報告すると tomoaky が得をします、
あなたは得をするどころか損をするかもしれません。
このプロジェクトに触れることでなんらかの不利益を被ったとしても
tomoaky はその責任を負いません。

■ 使用素材
スクリプト
WHITE-FLUTE (A Crying Minister様)  http://www.whiteflute.org/wfrgss/
Input-EX 入力拡張・ゲームパッド振動対応スクリプト
Exit-EX 終了処理スクリプト
CACAO SOFT (CACAO様) http://cacaosoft.web.fc2.com/
画像保存
マップ画像の保存
BGM
フリー音楽素材こんとどぅふぇ (HiLi様) http://conte-de-fees.com/
アイコン
Whitecat (もやしほわいと様) http://whitecafe.sakura.ne.jp/
フォント
Peralta (c) 2012, Brian J. Bonislawsky DBA Astigmatic (AOETI)



操作方法事项:


■ 操作方法

鼠标键盘可同时使用

地图场景
移动      … 单击鼠标左键点击移动
攻击      … 单击鼠标左键点击怪物
对话&调查       … 单击鼠标左键点击NPC(事件)
打开菜单            … 单击鼠标右键
战术切换         … 单击鼠标中间键

菜单场景
选择     … 单击鼠标左键
取消           … 单击鼠标右键
项目切换         … 滚动鼠标中间键
详细表示   … 单击鼠标中间键(物品栏、技能栏、装备栏)
战术切换      … 单击鼠标中间键(战术设定栏)
表示切换      … 单击鼠标中间键(状态栏)

快捷键设置
登录      … 1 ~ 0(物品、技能)
选择      … 1 ~ 0(地图场景)
技能会在地图场景右上角的快捷键BAR上,单击左键点选怪物使用或者按键盘1~0键。

图像截取            … PrintScreen

迷你地图创建  … F6(仅游戏测试时)


■ 能力值样式
Str … 攻击力(ATK)、最大重量(Weight)的影响
Agi … 回避力(Flee)、通常攻击延迟的影响
Vit  … 最大HP的影响
Int  … 魔法力(Matk)、最大MP的影响
Dex  … 命中力(Hit)的影响
Luk … 命中力(Hit)、回避力(Flee)的影响

伤害计算
出了技能本身伤害外、物理Vit、魔法Int同样影响伤害计算
敏捷性影响命中力、幸运影响回避力
命中率(%)的计算公式
[100 + 自身命中力 - 对方的回避力, 5].max
自身的命中力在对方回避力以上时攻击必中
无论对方回避力在自身以上多高,攻击命中力最低都有5%
物理攻撃时候、命中力(Hit)为技能自身成功率乘人物自身命中力
魔法攻撃时候、技能成功率为命中力

已经装备的武器、防具合計重量不能超过最大重量(Weight)

■ 时间天气
1日24時間、周六为初始时间
打开菜单时时间停止转动
各星期天气固定

■ 状态样式
回合数结束时候自动取消
继续回合数效果时间设定,单位为秒

■ 脚本设置
设定项目栏参数

■ 敌人行动设置
战术系统同样应用敌方角色的行动模式
技能设定,回合数的战术由道具栏设定ID而定
多个技能时由上至下依次进行判定,选择满足条件的技能行动。
无视优先度设定

使用方法:
——使用方法是我测试与文本翻译得出,语法上通俗易懂。(不懂可留言提问)

■ 备注栏(角色、职业、技能、物品、武器、防具、敌人、状态)
        <sight 32>
                可视范围修正值设定
                数值越大可视范围越广、数值越小可视范围越窄
                可以设定为负数
        <move 1024>
                移动速度修正值设定
                数值越大移动速度越快、数值越小移动速度慢
                可以设定为负数
        <search 131072>
                搜索范围修正值设定
                数值越大搜索范围越广、数值越小搜索范围越窄
                可以设定为负数
                1024为1格范围
        <attack_delay 60>
                通常攻击延迟(行动后硬直时间)修正值设定
                数值越大硬直时间越长、数值越小硬直时间越短
                可以设定为负数
                60为1秒
        *<type_bonus 5, 120>
                伤害计算的影响的类型和效果率设定值
                以上备注的5的怪物类型伤害增加20%

■ 备注栏(角色)
        <type 0, 16>
                两个类型值的设定影响被伤害计算
                以上备注不填写则与敌人设定相同
■ 备注栏(技能、物品)
        <dist 32768>
                可发动距离设定
                对象距离与设定的值偏离接近后发动
                省略则为默认值(初始设定为 32768 )
                1024为1格
        <range 32768>
                效果范围大小设定
                设定的值的对象距离在这个值以内则为相同效果
                省略则为默认值(初始设定为 32768 )
                1024为1格
        <delay 60>
                延迟(行动前的硬直时间)设定
                省略则为默认值(初始设定为0 )
                60为1秒
        <cast 30>
                发动時間(行动前的硬直时间)设定
                省略则为默认值(初始设定为0 )
                60为1秒

■ 备注栏(技能)
        <sp 7>
                学习技能必要的SP点数
                省略则为1
        <passive 201>
                被动技能,武器栏ID设定
                武器栏设定被动技能属性,技能栏设定此被动技能ID,如上

■ 备注栏(道具)
        <max 255>
        物品最大持有数设定
        省略则为99
   
        材质名称设定
        <header ブロンズ> ←        矿石的XXX(斧头,长剑等)
        <mhp 1>
        <mmp 0>
        <atk 1>
        <def -1>
        <mat 1>
        <mdf 2>
        <agi 1>
        <luk -2>
        材质参数的修正值设定
        数值和武器、防具的原始参数相关
        被设定的情况下有效(则省略无效)
        可以设定为负数

       <tactics 111, 0>
                战术的功能与战术号码和选项设定
                1        我方
                11        ○○最低的我方
                21        ○○最高的我方
                31        HP<○○%的我方
                41        MP<○○%的我方
                51        状态○○的我方
                101        敌方
                102        敌人头目
                103        最近的敌人
                104        最远的敌人
                111        ○○最低的敌人
                121        ○○最高的敌人
                131        HP≧○○%的敌人
                141        状态○○的敌人
                161        属性○○较弱的敌人
                171        ○○类型的敌人
                201        自身
                211        HP<○○%の自身
                221        MP<○○%の自身
                231        状态○○の自身
                251        如果HP<○○%则
                261        如果MP<○○%则
                271        如果HP≧○○%则
                281        如果MP≧○○%则
                291        如果ステート○○则
                ○○部分为设定值(自身和敌人属性如HP、MP、攻击力同数据库的顺序排列0~7,状态同理)

■ 备注栏(武器、防具)
        <gem>
        宝石标记(既是强化插卡)
        <weight 10>
                重量设定
                省略则为1
        <limit 5>
                装备等级设定
                本数值等级以上的不能装备(角色)

■ 备注栏(敌人)
        *<type 0, 20>
                影响伤害计算的属性值设定
                省略则视为无属性
                0        無属性
                1        炎
                2        氷
                3        雷
                4        水
                5        土
                6        風
                7        神聖
                8        暗黒
                9        植物
                10        虫
                11        水
                12        蛇
                13        鳥
                14        獣
                15        獣人
                16        人間
                17        不死
                18        物質
                19        天使
                20        悪魔
        <rare_enemy 2, 300>
                敌人突变设定
                以上备注为30%几率突变2号敌人(几率为千分率)
        <character $Plant1a, 0>
                敌人行走图文件名与指数设定

■ 备注栏(地图)
        <fog_name Shade1>
                雾的文件名
                存放位置Graphics/Parallaxes
        <fog_opacity 96>
                雾的不透明度
        <fog_blend_type 2>
                雾的合成算法(0:通常、1:加法、2:減法)
        <fog_fix 1>
                雾的显示位置(0:不固定、1:固定)
        <fog_sx 1>
                显示的雾的X移动量               
        <fog_sy -1>
                显示的雾的Y移动量
        <sight 480>
                可视范围

■ 备注栏(动画)
        <z 10>
                Z坐标指定显示动画
   角色和地面之间要显示的时候指定1 ~ 49
   这个备注在动画的名字中插入使用

■ 备注栏(注释事件)
        <enemy 1>
                敌人设定,数值为敌人编号
        <npc 2>
                事件与NPC设定,数值为其编号
                敌人同样适用本设定
        <name 小明>
                鼠标所指的事件与NPC显示名字设定
   省略则事件与NPC、敌人都显示敌人数据库的编号名字
        <repop_regions 1, 2, 3>
                被打倒的敌人刷新的区域ID
                多个设定时用逗号隔开
                区域ID可在脚本·设定项目·中设定
                区域ID必须预先设定

脚本设定项目:

RUBY 代码复制
  1. Graphics.resize_screen(640, 416)    # 解像度の変更
  2.  
  3. module TMMMO                        # 数值为帧数(60/1)
  4.   CHR_SIZE = 31 << 10               # 角色的接触尺寸判定
  5.   TOUCH_RANGE = 32 << 10            # 接触判定的有效范围
  6.   DEFAULT_ACTION_DIST  = 32 << 10   # 行动射程距离初期设定
  7.   DEFAULT_ACTION_RANGE = 32 << 10   # 行动效果距离初期设定
  8.   DEFAULT_ACTION_DELAY = 60         # 行动后延迟初期设定
  9.   DEFAULT_ACTION_CAST  = 0          # 行动前延迟初期设定
  10.   RD_WALK_DIST = 160 << 10          # 随机移动距离
  11.   POPUP_MAX = 32                    # 行动最大值
  12.   ANIME_MAX = 32                    # 动画最大值
  13.   DROP_MAX = 64                     # 下降最大值
  14.   GROW_MAX = 99                     # 成长强化上限
  15.  
  16.   START_STATUS_P = 50               # 初始属性点数
  17.   START_SKILL_P = 20                # 初始技能点数
  18.   LVUP_SKILL_P  = 10                # 升级时获得的技能点数
  19.  
  20.   BOLD_FONT_NAME = "Peralta"        # 数字字体设定
  21.  
  22.   UNIQ_ACCESSORY = [7, 8]           # 不能重复装备防具类型ID
  23.  
  24.   TIME_RATE  = 60                   # 游戏内时间倍率(60与现实相同)
  25.   TIME_SPEED = 1                    # 时间过渡速度
  26.   TIME_START = 7                    # 游戏初始时间
  27.  
  28.   CLOCK_X = 22                      # 时钟X坐标
  29.   CLOCK_Y = 224                     # 时钟Y坐标
  30.  
  31.   # 状态表示属性设定
  32.   STWIN_ELEMENTS = [1, 2, 3, 4, 5, 6, 7, 8]   # 属性
  33.   STWIN_ELEMENT_ICONS = [96, 97, 98, 99, 100, 101, 102, 103]  # 属性图标
  34.   STWIN_STATES = [2, 3, 4, 5, 6, 7, 8]        # 状态
  35.  
  36.   # 技能(物品)详细表示设定
  37.   DESCRIPTION_KEY_SYMBOL = :X       # 按钮
  38.   DESCRIPTION_EXCLUDE_ELEMENTS = [] # 除特徵『攻击时属性』外表示的属性
  39.   DESCRIPTION_FEATURE_X   = 256     # 特徵描画X坐标
  40.   DESCRIPTION_PARAM_WIDTH = 120     # 能力值描画宽度
  41.  
  42.   ANIME_ITEM_POP = 116              # 使用物品的动画
  43.   ANIME_ITEM_GET = 117              # 获得物品的动画
  44.   ANIME_LEVEL_UP = 118              # 等级上升的动画
  45.   ANIME_CAST     = 119              # 发动的动画
  46.   FRAME_CAST_ANIME = 16             # 发动的动画实际框架
  47.  
  48.   SE_CAST_START = ["Audio/SE/Magic1", 100, 100]    # 发动初始效果音
  49.  
  50.   ICON_USE_TACTICS = 117            # 战术图标
  51.   ICON_SHORT_CUT_BACK = 530         # 快捷栏图标的背景
  52.  
  53.   # Log信息文字的颜色数值
  54.   MES_COLOR_ITEM_GET = 23           # 获得物品
  55.   MES_COLOR_LEVEL_UP = 17           # 等级上升
  56.  
  57.   # 选项窗口的颜色设定(基于数据库的初始设定)
  58.   WINDOW_TONE = [
  59.     ["01",         [0, 0, 0, 0]],
  60.     ["02",       [0, 17, 51, 0]],
  61.     ["03",   [17, 34, 17, 0]],
  62.     ["04",       [-102, -34, -17, 0]],
  63.     ["05", [187, 102, 85, 0]],
  64.     ["06",   [-17, -102, -102, 0]],
  65.   ]
  66.  
  67.   # (怪物)准备行动坐标的指定使用区域ID
  68.   REPOP_REGIONS = [1, 2, 3, 4, 5, 6, 7, 8]
  69.  
  70.   REPOP_INTERVAL = 300              # 准备行动的框架间隔
  71.   TURN_INTERVAL = 60                # 每轮的框架间隔
  72.   REGENERATE_INTERVAL = 600         # 自动恢复的框架间隔
  73.  
  74.   # 装备品生成的时候的材质(如木、铁、皮等)
  75.   DEFAULT_MATERIAL = [151, 161, 171, 181] #物品ID
  76.   GEM_MATERIAL = 200                # 宝石用材质虚假数值ID
  77.  
  78.   EQUIP_LEVEL_MAX = 9               # 装备强化上限
  79.   EQUIP_NUMBER_MAX = 255            # 装备持有上限
  80.  
  81.   ATTACK_DELAY_MIN = 4              # 通常攻击延迟的最低值
  82.  
  83.   # 技能系统设定
  84.   SKILL_LIST = {}
  85.   SKILL_LIST[0]  = []
  86.   SKILL_LIST[1]  = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
  87.   SKILL_LIST[2]  = [21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
  88.   SKILL_LIST[3]  = [31, 32, 33, 34, 35, 36, 37, 38, 39, 40]
  89.   SKILL_LIST[4]  = [41, 42, 43, 44, 45, 46, 47, 48, 49, 50]
  90.   SKILL_LIST[5]  = [51, 52, 53, 54, 55, 56, 57, 58, 59, 60]
  91.   SKILL_LIST[6]  = [61, 62, 63, 64, 65, 66, 67, 68, 69, 70]
  92.   SKILL_LIST[7]  = [71, 72, 73, 74, 75, 76, 77, 78, 79, 80]
  93.   SKILL_LIST[8]  = [81, 82, 83, 84, 85, 86, 87, 88, 89, 90]
  94.   SKILL_LIST[9]  = [91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
  95.   SKILL_LIST[10] = [101, 102, 103, 104, 105, 106, 107, 108, 109, 110]
  96.   SKILL_LIST[11] = [111, 112, 113, 114, 115, 116, 117, 118, 119, 120]
  97.   SKILL_LIST[12] = [121, 122, 123, 124, 125, 126, 127, 128, 129, 130]
  98.   SKILL_LIST[13] = [131, 132, 133, 134, 135, 136, 137, 138, 139, 140]
  99.   SKILL_LIST[14] = [141, 142, 143, 144, 145, 146, 147, 148, 149, 150]
  100.   SKILL_LIST[15] = [151, 152, 153, 154, 155, 156, 157, 158, 159, 160]
  101.   SKILL_LIST[16] = [161, 162, 163, 164, 165, 166, 167, 168, 169, 170]
  102.   SKILL_LIST[17] = [171, 172, 173, 174, 175, 176, 177, 178, 179, 180]
  103.   SKILL_LIST[18] = [181, 182, 183, 184, 185, 186, 187, 188, 189, 190]
  104.   SKILL_LIST[19] = [191, 192, 193, 194, 195, 196, 197, 198, 199, 200]
  105.   SKILL_LIST[20] = [201, 202, 203, 204, 205, 206, 207, 208, 209, 210]
  106.   SKILL_LIST[21] = [211, 212, 213, 214, 215, 216, 217, 218, 219, 220]
  107.   SKILL_LIST[22] = [221, 222, 223, 224, 225, 226, 227, 228, 229, 230]
  108.   SKILL_LIST[23] = [231, 232, 233, 234, 235, 236, 237, 238, 239, 240]
  109. end


BUG解决与讨论:
——Q&A
Q1.在场所移动后,角色与物件接触弹框出错,这是为什么呢?

A1.大概因为刷新的问题,往后的版本应该会解决,已在作者tomoaky的推特上留言;先阶段没有完美的解决方法,但是可用打开菜单的形式解决,如切换到新地图后不要接触物件,自动事件处理打开菜单或者存档界面,然后再退出就可以了。
A2.根据sion桑的反馈,切换场景与物件接触会报错bug得到暂时解决,方法如下:
在main前插入这一段
RUBY 代码复制
  1. class Scene_Map
  2.   #--------------------------------------------------------------------------
  3.   # ● 場所移動の処理
  4.   #--------------------------------------------------------------------------
  5.   def perform_transfer
  6.     pre_transfer
  7.     $game_player.perform_transfer
  8.     @spriteset.dispose
  9.     @spriteset = Spriteset_Map.new
  10.     post_transfer
  11.   end
  12. end


Q2.为什么我设置商店在游戏中打开后会报错?
A2.因为这个系统是不完整的,如作者所言系统还在编写中,所以我们现在使用的是残端版。关于商店的问题,其实本系统有强化功能,也许是未完善所以作者在发布时候删除了(在作者推特看到相关截图);根据一瞬间的幻觉桑的反馈,这个问题目前的解决方法是scene shop 还原成系统默认的。

Q3.在事件页使用脚本后,在游戏二次查看会报错,为什么?
A3.第一次查看没有问题,第二次则报错,根据之前的BUg看来应该也是刷新的问题,具体请参考Q2的说法,暂没有解决方法。

Q4.为什么不能4个以上的队友?
A4.暂时无解,基本完整性问题。

后记:

帖子会在往后编辑上设定的图解实例,各位稍等时间;同时随着系统版本的改变也会相应调整。现版本最新是13-02-14.Ver ,不要吐槽排版,善用搜索。如果有不理解的语法或者本帖有什么错漏的请指出更正,3Q。
——13-07-29
收到sion&一瞬间的幻觉的反馈,更改列入Q&A相关。
——13-07-29

评分

参与人数 1星屑 +500 收起 理由
一瞬间的幻觉 + 500 精品文章

查看全部评分

【RPG MAKER MZ 】游戏制作新手群:185916404

Lv2.观梦者

姬魂

梦石
0
星屑
423
在线时间
399 小时
注册时间
2009-8-30
帖子
612

开拓者

2
 楼主| 发表于 2013-7-29 02:35:21 | 只看该作者
备用楼层
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
239
在线时间
2399 小时
注册时间
2008-4-11
帖子
12326

贵宾第6届短篇游戏比赛季军

3
发表于 2013-7-29 19:50:30 手机端发表。 | 只看该作者
本帖最后由 一瞬间的幻觉 于 2013-7-29 19:58 编辑

先赞一个,并且希望可以和小龙一起在qq390267965上探讨关于mmo的系统,我也正用这个系统制造游戏,我也回馈一下bug吧,小的bug无数,用手机一下子写不清楚,这里就写一个大bug吧,商店界面的弹错,打开商店界面就报错,暂时的解决方法是把作者修改过的scene shop 还原成系统默认的。另外,在事件页加入的脚本也会在第二次查看的时候报错,第一次是没关系的,当你第一次运行完事件,存档再读档运行第二次就会弹错,这个东西目前我还没有时间研究。

感谢va区版主sion酱的最新反馈,换场景再遇敌会报错这个bug似乎可以得到解决,方法是在scene map的这一段

  #-----------------------  # ● 場所移動の処理
  #-----------------------
  def perform_transfer
    pre_transfer
    $game_player.perform_transfer
    @spriteset.dispose
    @spriteset = Spriteset_Map.new
    post_transfer
  end

替换掉,就用系统默认的脚本进行替换。
  
mmo的作者太无节操,这些bug足足浪费了我一个月的时间和精力去研究怎么去掉bug,但是虫子太多,目前我们只能找出其中几个严重的,其他的陆续还会在以后的制造之路上遇到。要用mmo做游戏的同学要三思了。

据我不完全统计,mmo的下载量光论坛就超过1600份,但是实际能用它做游戏的不超过20位,通过小龙这贴,这个人数应该能一跃成为100位+吧,呵呵

点评

点赞!  发表于 2013-7-29 20:15
我草,没刷新网页,你TM用手机还贴这么快。  发表于 2013-7-29 19:59
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

4
发表于 2013-7-29 19:57:20 | 只看该作者
切换地图之后的报错可以这样解决:
  1. class Scene_Map
  2.   #--------------------------------------------------------------------------
  3.   # ● 場所移動の処理
  4.   #--------------------------------------------------------------------------
  5.   def perform_transfer
  6.     pre_transfer
  7.     $game_player.perform_transfer
  8.     @spriteset.dispose
  9.     @spriteset = Spriteset_Map.new
  10.     post_transfer
  11.   end
  12. end
复制代码
朋友也在用这个,看到这个帖子的提示就想到解决办法了。应该可以凑合着用。

点评

点赞!  发表于 2013-7-29 20:04

评分

参与人数 1星屑 +499 收起 理由
一瞬间的幻觉 + 499 精品文章

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
95 小时
注册时间
2008-9-6
帖子
74
5
发表于 2013-8-13 02:56:52 | 只看该作者
这主角能力值的设定根本就是根据RO啊...老玩家表示怀念
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-26 19:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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