下面为科普知识【来源github 用户yamachan】:
ps:非完整,下面有完整版的地址!
3种存档文件
RPG Maker MV所生成的游戏中,有以下三种存档文件。
config.rpgsave
file*.rpgsave
global.rpgsave
'config.rpgsave'是为了保存游戏设定的文件。标题画面以及游戏菜单的设置状态保存在这里。比如下面的设置画面。
被保存的数据如下。
{
"alwaysDash":false,
"commandRemember":false,
"bgmVolume":100,
"bgsVolume":100,
"meVolume":100,
"seVolume":100,
}
'file*.rpgsave'作为实际的保存文件,保存着游戏各种状态。存档文件可以生成数个,*的部分为连号。这个文件所储存的内容将会在下一章说明。
'global.rpgsave' 是储存在存档选择画面中所使用的数据,在存档生成和更新时更新。比如对应下面的存档选择画面。
所保存的数据如下。
[
null,
{
"globalId":"RPGMV",
"title":"RTK1 Dev1",
"characters":[["Actor1",0],["Actor1",7],["Actor3",7],["Actor2",6]],
"faces":[["Actor1",0],["Actor1",7],["Actor3",7],["Actor2",6]],
"playtime":"00:00:04",
"timestamp":1468556954489
},
{
"globalId":"RPGMV",
"title":"RTK1 Dev1",
"characters":[["Actor1",0],["Actor1",7],["Actor3",7],["Actor2",6]],
"faces":[["Actor1",0],["Actor1",7],["Actor3",7],["Actor2",6]],
"playtime":"00:00:48",
"timestamp":1468855189632
}
]
游戏存档的文件内容
我们知道'file*.rpgsave' 是实际的存档文件,那么是否所有内容都存在其中?那么省略一部分,来粗略介绍下主要部分吧。
{
"system":{
"_saveEnabled":true,
"_menuEnabled":true,
"_encounterEnabled":true,
"_formationEnabled":true,
"_battleCount":0,
"_winCount":0,
// 中间省略
"@":"Game_System"
},
"screen":{
"_brightness":255,
"_fadeOutDuration":0,
"_fadeInDuration":0,
"_tone":[0,0,0,0],
// 中间省略
"@":"Game_Screen"
},
"timer":{"_frames":0,"_working":false,"@":"Game_Timer"},
"switches":{"_data":[null,null,null,null,null,null,null,null,true],"@":"Game_Switches"},
"variables":{"_data":[],"@":"Game_Variables"},
"selfSwitches":{"_data":{"1,3,A":true},"@":"Game_SelfSwitches"},
"actors":{
"_data":[
null,
{
"_actorId":1,
"_name":"Harold",
"_nickname":"Sword boy",
"_hp":450,
"_mp":90,
"_tp":0,
"_hidden":false,
"_paramPlus":[0,0,0,0,0,0,0,0],
// 中间省略
"@":"Game_Actor"
},{
"_actorId":2,
// 以下省略
},{
"_actorId":3,
// 以下省略
{
"_actorId":4,
// 以下省略
}
],
"@":"Game_Actors"
},
"party":{
"_inBattle":false,
"_gold":2000,
"_steps":0,
"_lastItem":{"_dataClass":"","_itemId":0,"@":"Game_Item"},
"_menuActorId":0,
"_targetActorId":0,
"_actors":[1,2,3,4],
"_items":{"1":6,"2":1,"10":50,"11":2,"12":2,"13":2,"14":2},
"_weapons":{"1":1,"2":2,"4":10},
"_armors":{"3":1,"4":1},
"@":"Game_Party"
},
"map":{
"_interpreter":{
"_depth":0,
"_mapId":0,
"_eventId":0,
// 中间省略
"@":"Game_Interpreter"
},
"_mapId":1,
"_tilesetId":1,
"_events":[
null,
{
"_x":4,
"_y":1,
// 中间省略
"@":"Game_Event"
},
// 以下省略
],
"_commonEvents":[],
// 中间省略
"@":"Game_Map"
},
"player":{
"_x":4,
"_y":4,
// 中间省略
"_followers":{
"_visible":true,
"_gathering":false,
"_data":[// 省略
],"
@":"Game_Followers"
},
"_encounterCount":603,
"@":"Game_Player"
}
}
更多详细内容:
https://github.com/yamachan/jgss-hack/blob/master/guide/plugin-dev-01.ja.md
https://github.com/yamachan/jgss-hack/blob/master/guide/plugin-dev-02.ja.md
创建插件文件
以下为yamachan经常使用的插件模板文件。
//=============================================================================
// RTK_Test.js2016/07/30
// The MIT License (MIT)
//=============================================================================
/*:
* @plugindesc 测试用插件
* @author Toshio Yamashita (yamachan)
*
* @help 本插件不包含插件指令。
* 由于是测试用的文件,实际使用的时候请适当重命名
*/
(function(_global){
// 这里写上插件处理
})(this);
下载点此->RTK_Test.js
开发工具与游戏变量的基础
游戏中经常使用的变量,会以$data开头。其作为游戏基本的数据,会通过RPG Maker MV自动生成,data文件以*.json的形式保存。这些文件会在游戏开始时读取,基本上是不会发生变更的静态数据,本指导中会将这些称之为「$data变量」,被保存的值则称为「静态数据」。
与其对应的以$game开头的变量,在游戏内被使用,被更新的动态数据,这些都会保存在存档中。在本指导中将其称为「$game变量」,被保存的值则称之为「动态数据」。
在RPG Maker MV中测试游戏的时候按下F8就会启动开发工具。开发工具中的控制台是非常便利的东西。
实际启动控制台,输入$data 后,以$data 开头的变量会提示出一堆。$game也同样。控制台中的提示辅助功能,对帮助理解游戏内的状态有很大的帮助。
关于$data变量的第一个$dataActors,让我们稍微看一下吧。在控制台上选择这个变量名,然后按下回车键显示内容。
$dataActors的长度为5,第一个元素为null,其他四个为Object。那么我们输入$dataActors[1] 来获取第一个Object。
在$dataActors[1]中的name显示角色设定名为 "挑战者" 。其他还有各种设定,但因为是$data变量,这些基本都是在数据库中所设定的值。
最下面的_proto_是这个Object的父元素,但因为是Object,并没有设置上级的类,只是单纯用作数据的Object。
那么接下来看下$game变量的第一个$gameActors 。
展开_proto_,这次不是单纯的数据Object,有定义名为Game_Actors的类。
Game_Actors类中,定义了一个名为actors的函数。在控制台上输入这个函数名后,就能看到这个函数的定义(源码文件)。右边显示了这个js文件的名称和行数,想要知道更详细的内容不妨点击对照下源码。
控制台是非常便利的工具,请务必活用。