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

Project1

 找回密码
 注册会员
搜索
查看: 37131|回复: 47

[搬运汉化] 非常好的脚本调用手册

[复制链接]

Lv4.逐梦者

梦石
0
星屑
7500
在线时间
1227 小时
注册时间
2008-12-14
帖子
555
发表于 2018-2-19 23:58:17 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 if216 于 2020-6-15 01:12 编辑

繁体转简体,方便按ctrl+f 搜索。如果使用方面有什么问题欢迎讨论。非常好的脚本调用手册,要用脚本调用指令的,可以做为手册查一查。

转自:http://www.chimakier.com/【rm教學-】rmmv與對應腳本指令/

这边举简单的两个例子
1. 在NPC自主移动时,想要让他「显示气球图示」,但在设定移动路线中并没有气球图示这个选项时该怎么办?
这时候你可以在脚本输入下列指令,就可以在非剧本的事件中,让事件自动显示图片了
var e =$gameMap.event(this._eventId);e.requestBalloon(1);

2.当我只想执行某个事件中特定页面的功能该怎么办?(2k3 有此功能,但mv 内建无此功能)
这时候只要在脚本中输入下面的code , 就会执行特定事件的某一页事件内容(事件条件要符合才会执行)
$gameMap.event(EventID, EventPage).start();

3.还有哪里可以用得到?
我们打开f8 debug 视窗时,下列的指令都可以直接在f8视窗使用,也会立即生效。



RMMV事件对应指令
事件指令        对应脚本语法
显示文字        $gameMessage.setFaceImage(‘Actor1’,0)
$gameMessage.setBackground(1)
$gameMessage.setPositionType(1)
$gameMessage.add(“Show Text Script Call”)
显示选项        choices = []; params = [];
$gameMessage.setChoices(choices, 0)
choices.push(“I love you1”);choices.push(“I love you2”);
choices.push(“I love you3”);choices.push(“I love you4”);
choices.push(“I love you5”);choices.push(“I love you6”);
choices.push(“I love you7”);choices.push(“I love you8”);
params.push()
数字输入        $gameMessage.setNumberInput(var, digits);
选择项目-道具类型        $gameMessage.setItemChoice(var, n);
滚动文字讯息        $gameMessage.setScroll(scrolling_speed, no_fast_forward);
$gameMessage.add(“Text”);
变更金币        $gameParty.gainGold(n);
变更武器        $gameParty.gainItem($dataWeapons[weaponId], n, true/false *note);
变更装备        $gameParty.gainItem($dataArmorsweaponId], n, true/false *note);
变更队伍        $gameParty.addActor(n);
$gameParty.removeActor(n);
变更开关        $gameSwitches.setValue(num, true/false);
变更变量        $gameVariables.setValue(var, value);
变更自开关        $gameSelfSwitches.setValue(key, true/false);
变更计时器        $gameTimer.start(time); $gameTimer.stop();
条件分期        if (code) { stuff } else { stuff }
循环        while (;;) { stuff }
断开循环        break;
结束事件        $gameInterpreter._index = $gameInterpreter._list.length;
一般(公用)事件        $gameTemp.reserveCommonEvent(n);
变更HP        $gameActors.actor(actorId).gainHp(n)
变更MP        $gameActors.actor(actorId).gainMp(n)
变更TP        $gameActors.actor(actorId).gainTp(n)
变更状态        $gameActors.actor(actorId).addState(n);
$gameActors.actor(actorId).removeState(n);
恢复全体        for (var j = 0; j < $gameActors.length; j++) { $gameActors.actor(j).recoverAll(); };
变更经验        $gameActors.actor(actorId).gainExp(n);
变更等级        $gameActors.actor(actorId).changeLevel(n, true/false);
变更数值        $gameActors.actor(actorId).addParam(paramId, n);
变更数值        $gameActors.actor(actorId).learnSkill(n);
$gameActors.actor(actorId).forgetSkill(n);
变更装备        $gameActors.actor(actorId).changeEquip(slotId, item);
变更名称        $gameActors.actor(actorId).setName(n)
变更职业        $gameActors.actor(actorId).changeClass(n, keepExp)
变更名称        $gameActors.actor(actorId).setNickname(n)
变更简介        $gameActors.actor(actorId).setProfile(n)
转移玩家场景        $gamePlayer.reserveTransfer(mapId, x, y, direction, fade type);
设定交通工具        $gameMap.vehicle(vehicleId).setLocation(mapId, x, y);
设定事件位置        $gameMap.event(eventID).setPosition(x, y)
滚动画面        $gameMap.startScroll(direction, distance, speed);
设定交通工具可否搭乘        $gamePlayer.getOnOffVehicle();
等待        $gameInterpreter.wait(frames);
变更透明度        $gamePlayer.setTransparent(flag)
跟随者显示        $gamePlayer.showFollowers();
$gamePlayer.hideFollowers();
集合跟随者        $gamePlayer.gatherFollowers();
this.setWaitMode(‘gather’);
显示气球图示        character.requestBalloon(id);
this.setWaitMode(‘balloon’);
消除事件        $gameMap.eraseEvent(this._eventId);
淡出/淡入画面        $gameScreen.startFadeOut(fade_speed);
$gameScreen.startFadeIn(fade_speed);
着色画面        $gameScreen.startTint([red,green,blue,grey], duration);
闪光画面        $gameScreen.startTint([red,green,blue,intensity], duration);
震动画面        $gameScreen.startShake(power, speed, duration);
天气效果        $gameScreen.changeWeather(“weather”, power, duration);
显示图片        $gameScreen.showPicture(pictureId, name, origin, x, y,scaleX, scaleY, opacity, blendMode)
移动图片        $gameScreen.movePicture(pictureId, origin, x, y, scaleX,scaleY, opacity, blendMode, duration)
混合模式        $gameScreen._pictures[id]._blendMode = #
旋转图片        $gameScreen.rotatePicture(pictureId, speed);
着色图片        $gameScreen.tintPicture(pictureId, tone, duration);
消除图片        $gameScreen.erasePicture(pictureId);
播放BGM        AudioManager.playBgm( refer to sound object above );
#声音物件格式: { name: filename, volume: n, pitch: n, pan: n }
淡出BGM        AudioManager.fadeOutBgm(n);
储存BGM        $gameSystem.saveBgm();
继续播放BGM        $gameSystem.replayBgm();
播放BGM        AudioManager.playBgs( refer to sound object above );
淡出BGS        AudioManager.fadeOutBgs(n);
播放ME        AudioManager.playMe( refer to sound object above );
播放SE        AudioManager.playSe( refer to sound object above );
暂停se        AudioManager.stopSe();
播放动画        Graphics.playVideo(path/name.ext);
战斗处理        BattleManager.setup(troopId, true/false, true/false);
$gamePlayer.makeEncounterCount();
SceneManager.push(Scene_Battle);
商店处理        SceneManager.push(Scene_Shop);
名称输入处理        SceneManager.push(Scene_Name);
SceneManager.prepareNextScene(actorId, name length);
开启选单        SceneManager.push(Scene_Menu);
开以记录/读取录选单        SceneManager.push(Scene_Save);
SceneManager.push(Scene_Load);
游戏结束/回标题画面        SceneManager.goto(Scene_Gameover);
SceneManager.goto(Scene_Title);
执行地图特定事件页面        $gameMap.event(EventID, EventPage).start();
更换地图显示名称        $gameMap.enableNameDisplay();
$gameMap.disableNameDisplay();
更换图快设置        $gameMap.changeTileset(n);
更换战斗背景        $gameMap.changeBattleback(filename, filename);
更换远景        $gameMap.changeParallax(name, loopX, loopY, speed x, speed y);
获得位置信息        $gameMap.terrainTag(x, y);
$gameMap.eventIdXy(x, y);
$gameMap.tileId(x, y, layer);
获得地形区块ID        $gameMap.regionId(x, y);
更换战斗音乐/胜利ME        $gameSystem.setBattleBgm(name);
$gameSystem.setVictoryMe(name);
更换战败音效        $gameSystem.setDefeatMe(name);
更换交通工具BGM        $gameMap.vehicle(vehicleId).setBgm(name);
修改存档功能访问        $gameSystem.disableSave();
$gameSystem.enableSave();
修改菜单功能访问        $gameSystem.disableMenu();
$gameSystem.enableMenu();
修改系统访问        $gameSystem.disableEncounter();
$gameSystem.enableEncounter();
修改阵型功能访问        $gameSystem.disableFormation();
$gameSystem.enableFormation();
修改视窗颜色        $gameSystem.setWindowTone(tone); (red, green, blue, gray);
修改角色图像        $gameActors.actor(actorId).setCharacterImage(name, index);
$gameActors.actor(actorId).setFaceImage(name, index):
$gameActors.actor(actorId).setBattlerImage(name);
修改交通工具图像        $gameMap.vehicle(vehicleId).setImage(name, index);
更改敌人HP/MP/TP        $gameTroop.members()[enemyIndex].gainHp(n);
$gameTroop.members()[enemyIndex].gainMp(n);
$gameTroop.members()[enemyIndex].gainTp(n);
更改敌人状态        $gameTroop.members()[enemyIndex].addState(n);
$gameTroop.members()[enemyIndex].removeState(n);
敌人恢复        $gameTroop.members()[enemyIndex].recoverAll();
更改出现敌人        $gameTroop.members()[enemyIndex].appear();
敌人变形(更换敌人)        $gameTroop.members()[enemyIndex].transform(n);
显示战斗动画        $gameTroop.members()[enemyIndex].startAnimation(animationId, true/false, delayN);
我方强制动作        $gameParty.members()[index].forceAction(skillId, targetIndex);
BattleManager.forceAction($gameParty.members()[index]);
敌人强制动作        $gameTroop.members()[index].forceAction(skillId, targetIndex);
BattleManager.forceAction($gameTroop.members()[index]);
中止战斗        BattleManager.abort();

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

对应事件
指令
取得变量
n为变量编号
$gameVariables.value(n);
变量设定
n为变量编号
$gameVariables.setValue(n);
取得开关值
$gameSwitches.value(n);
设定开关值
$gameSwitches.setValue(n);
显示log
(测试模式中按F8)
console.log(value);
消除执行中的动画(对象为事件时)
对象为该事件时, var eventId = this._eventId
var eventId = 1;
SceneManager._scene._spriteset._characterSprites.forEach(function(sprite) {
if (sprite._character instanceof Game_Event && sprite._character.eventId() === eventId) {
sprite._animationSprites.forEach(function(animation) {
animation.remove();
});
}
});
消除执行中的对话(对象为玩家时)
SceneManager._scene._spriteset._characterSprites.forEach(function(sprite) {
if (sprite._character instanceof Game_Player) {
sprite._animationSprites.forEach(function(animation) {
animation.remove();
});
}
})
播放游标移动音效
SoundManager.playCursor();
播放决定音效
SoundManager.playOk();
播放取消音效
SoundManager.playCancel();
播放「八八」音效...
#不太知道怎说明XDD,听了就知道
SoundManager.playBuzzer();
播放装备道具音效
SoundManager.playEquip();
播放记录音效
SoundManager.playSave();
播放读取音效
SoundManager.playLoad();
播放战斗开始音乐音效
SoundManager.playBattleStart();
播放逃走音效
SoundManager.playEscape();
播放敌人攻击音效
SoundManager.playEnemyAttack();
播放敌人受伤音效
SoundManager.playEnemyDamage();
播放敌人死亡音效
SoundManager.playEnemyCollapse();
播放BOSS1死亡音效
SoundManager.playBossCollapse1();
播放BOSS2死亡音效
SoundManager.playBossCollapse2();
播放我方受伤音效
SoundManager.playActorDamage();
播放我方死亡音效
SoundManager.playActorCollapse();
播放恢复音效
SoundManager.playRecovery();
播放攻击miss音效
SoundManager.playMiss();
播放回避音效
SoundManager.playEvasion();
播放魔法回避音效
SoundManager.playMagicEvasion();
播放魔法反射音效
SoundManager.playReflection();
播放商店音效
SoundManager.playShop();
播放使用道具音效
SoundManager.playUseItem();
播放使用技能音效
SoundManager.playUseSkill();
关闭目前的scene
SceneManager.terminate();
关闭所有scene
SceneManager.exit();
进入指定的Scene (不堆栈, 无法用pop呼叫上一个画面) scene 列表如下 Scene_Shop : 商店画面 Scene_Name : 名字输入画面 Scene_Menu : Menu画面 Scene_Save : save画面 Scene_Load : load画面 Scene_Options : 选项画面 Scene_Gameover : game over画面 Scene_Title : 开头画面
SceneManager.goto(Scene_Gameover);
进入指定的Scene (堆栈, 可用pop呼叫上一个画面)EX: Scene_Map使用此指令到Menu画面后, 在使用 SceneManager.pop()可以回到Scene_Map
SceneManager.push(Scene_Shop);
回到上一个画面
SceneManager.pop();
设定角色TP
$gameActors.actor(n).setTp(m);
增加角色TP
$gameActors.actor(n).gainTp(m);
记忆目前的队伍成员
$gameParty._lastActors = $gameParty._actors.clone();
恢复目前的队伍成员
$gameParty._actors = $gameParty._lastActors;
$gamePlayer.refresh();
$gameMap.requestRefresh();
移除所有队伍成员
$gameParty._actors = [];
$gamePlayer.refresh();
$gameMap.requestRefresh();
移除除了队长的队伍成员
$gameParty._actors.splice(1);
$gamePlayer.refresh();
$gameMap.requestRefresh();
设定是否可以战败 (战斗开始后开始设定)
BattleManager._canLose = true;
关闭战斗结束后回地图的BGM
BattleManager._mapBgm = null;
关闭战斗结束后回地图的BGS
BattleManager._mapBgs = null;
追加战斗讯息
if(BattleManager._logWindow !== null){
BattleManager._logWindow.push('popBaseLine'); //移除战斗讯息。
BattleManager._logWindow.push('pushBaseLine'); // 显示已显示的讯息
BattleManager._logWindow.push('addText', 'aaa'); // 追加一行讯息
}

BattleManager._logWindow.addText('aaa'); // 单纯追加讯息也可使用此指令
移除战斗讯息
if(BattleManager._logWindow !== null){
BattleManager._logWindow.clear();
}
判定第一个队员id 是否 = n
$gameParty.members()[0].actorId() === n
判定现在的Scene是否为特定Scene
SceneManager._scene.constructor === Scene_Menu
判定执行环境是否为手机 系统判定
Utils.isMobileDevice()
windows 系统判定
Utils.isNwjs() && process.platform === 'win32'
判定PC的浏览器环境
Utils.isNwjs()
判定是否为MAC环境
Utils.isNwjs() && process.platform === 'darwin'
使用在个别事件上, 此事件将往地图特定ID事件移动
this.moveTowardCharacter($gameMap.event(id));
使用在个别事件上, 此事件将远离地图特定ID事件
this.moveAwayFromCharacter($gameMap.event(id));
使用在个别事件上, 此事件将面向地图特定ID事件
this.turnTowardCharacter($gameMap.event(id));
使用在个别事件上, 此事件将背对地图特定ID事件
this.turnAwayFromCharacter($gameMap.event(id));
使用在个别事件上, 此事件将往地图特定坐标移动 m => 设定的x坐标, n => 设定的y坐标
this.moveTowardCharacter({x:m, y:n});
使用在个别事件上, 此事件将远离地图特定坐标
this.moveAwayFromCharacter({x:m, y:n});
使用在个别事件上, 此事件将面向地图特定坐标
this.turnTowardCharacter({x:m, y:n});
使用在个别事件上, 此事件将背对地图特定坐标
this.turnAwayFromCharacter({x:m, y:n});
将特定编号的图片 替换成 其他图片
fileName =>新的图片名称, 不需副档名
$gameScreen.picture(id)._name = 'fileName';
将特定编号的图片 替换成 其他图片
此方法可以避免换图时图片还没load完的闪烁
var pictName = 'fileName';
var bitmap = ImageManager.loadPicture(pictName);
bitmap.addLoadListener(function() {
$gameScreen.picture(id)._name = pictName;
});
将玩家瞬移到相同地图的特定坐标
$gamePlayer.reserveTransfer($gameMap.mapId(), X, Y);
$gamePlayer.performTransfer();
初始化所有自开关
$gameSelfSwitches.clear();
初始化所有道具
$gameParty.initAllItems();
取得队伍跟随者的X坐标, N为第几位成员
$gamePlayer.followers().follower(n).x;
取得队伍跟随者的Y坐标, N为第几位成员
$gamePlayer.followers().follower(n).y;
将队伍指定成员m 替换成 角色id = n 的角色
if ($gameParty._actors.contains(n)) {
var oldIndex = $gameParty._actors.indexOf(n);
var oldActorId = $gameParty._actors[m];
$gameParty._actors[oldIndex] = oldActorId;
}
$gameParty._actors[m] = n;
$gamePlayer.refresh();
$gameMap.requestRefresh();
取得角色id = n 的目前武器ID , m为装备的index
$gameActors.actor(n).weapons()[m].id;
取得角色id = n 的目前防具ID , m为装备的index
$gameActors.actor(n).armors()[m].id;
让队伍中的N号成员显示泡泡图示id m
$gamePlayer.followers().follower(n).requestBalloon(m);
角色ID n 习得所有职业的技能
var actor = $gameActors.actor(n);
actor.currentClass().learnings.forEach(function(learning) {
if (learning.level <= actor._level) {
actor.learnSkill(learning.skillId);
}
});
角色ID N习得数据库中的敌人ID M的所有技能
var actor = $gameActors.actor(n);
var enemy = $dataEnemies[m];
enemy.actions.forEach(function(action) {
actor.learnSkill(action.skillId);
});
取得此事件最初的X坐标
this.character(n).event().x;
取得此事件最初的Y坐标
this.character(n).event().y;
取得最后使用的道具ID
$gameParty.lastItem().id;
判定特定状态ID M 对于角色N是否有效果
$gameParty.members()[n].isStateAffected(m);
undefined
undefined
[size=10.5000pt]
实用Function [size=10.5000pt]
[size=10.5000pt]
物件篇
对应事件
指令
角色战斗图片名称
$gameActors.actor(n)._battlerName (n:角色id)
角色图片中的index
$gameActors.actor(n)._characterIndex
角色图片名称
$gameActors.actor(n)._characterName
职业ID
$gameActors.actor(n)._classId
N号角色的第N2装备格的类别 weapon:武器
armor :防具
$gameActors.actor(n)._equips[n2-1]._dataClass
N号角色的第N2装备格的道具ID
$gameActors.actor(n)._equips[n2-1]._itemId
N号角色在N2职业累计经验值
$gameActors.actor(n)._exp[n2]
角色脸图名称
$gameActors.actor(n)._faceName
角色名称
$gameActors.actor(n)._name
角色暱称
$gameActors.actor(n)._nickname
角色简介
$gameActors.actor(n)._profile
角色敏捷
$gameActors.actor(n).agi
角色atk
$gameActors.actor(n).atk
角色会心一击闪躲率
$gameActors.actor(n).cev
角色反击机率
$gameActors.actor(n).cnt
角色会心攻击机率
$gameActors.actor(n).cri
角色当前经验值
$gameActors.actor(n).currentExp()
角色防御力
$gameActors.actor(n).def
角色闪躲率
$gameActors.actor(n).eva
角色经验获得倍率
$gameActors.actor(n).exr
地板类伤害倍率
$gameActors.actor(n).fdr
角色防御倍率
$gameActors.actor(n).grd
角色命中率
$gameActors.actor(n).hit
角色hp
$gameActors.actor(n).hp
角色hp再生率
$gameActors.actor(n).hrg
角色lv
$gameActors.actor(n).level
角色幸运度
$gameActors.actor(n).luk
角色魔法攻击莉
$gameActors.actor(n).mat
角色MP消耗率
$gameActors.actor(n).mcr
角色魔法防御力
$gameActors.actor(n).mdf
角色魔法伤害率(减轻)
$gameActors.actor(n).mdr
角色魔法回避率
$gameActors.actor(n).mev
角色最大HP
$gameActors.actor(n).mhp
角色最大MP
$gameActors.actor(n).mmp
角色MP
$gameActors.actor(n).mp
角色魔法反射率
$gameActors.actor(n).mrf
角色MP再生率
$gameActors.actor(n).mrg
角色至下个等级的累计经验值
$gameActors.actor(n).nextLevelExp()
角色至下个等级的经验值
$gameActors.actor(n).nextRequiredExp()
角色物理伤害率
$gameActors.actor(n).pdr
薬の知识
$gameActors.actor(n).pha
角色恢复效果率
$gameActors.actor(n).rec
角色TP累积率
$gameActors.actor(n).tcr
角色仇恨度(高的容易被怪物瞄准)
$gameActors.actor(n).tgr
角色TP
$gameActors.actor(n).tp
角色TP恢复率
$gameActors.actor(n).trg
角色名字
$gameActors.actor(n).name()
角色在数据库中的id
$gameActors.actor(n).actorId()
画面天气类型
$gameScreen._weatherType
画面天气强度
$gameScreen._weatherPower
图片资料
$gameScreen.picture(id) id : 图片编号
图片显示数量的最大值
$gameScreen.maxPictures()
特定id的图片名称
$gameScreen.picture(id)._name
图片的原点,
$gameScreen.picture(id)._origin
图片坐标x,
$gameScreen.picture(id)._x
图片坐标y
$gameScreen.picture(id)._y
图片宽度倍率
$gameScreen.picture(id)._scaleX
图片高度倍率
$gameScreen.picture(id)._scaleY
图片不透明度
$gameScreen.picture(id)._opacity
图片显示模式 (0 or 1 or2)
$gameScreen.picture(id)._blendMode
图片角度
$gameScreen.picture(id)._angle
目前地图id
$gameMap._mapId
目前地图使用的图块
$gameMap._tilesetId
目前左上角在地图中的X坐标
$gameMap._displayX
目前左上角在地图中的Y坐标
$gameMap._displayY
是否有事件正在执行中(不含并列处理事件)
$gameMap.isEventRunning()
地图的宽度
$gameMap.width()
地图的高度
$gameMap.height()
地图的横向循环的判定
$gameMap.isLoopHorizontal()
地图的纵向循环的判定
$gameMap.isLoopVertical()
地图是否禁止冲刺
$gameMap.isDashDisabled()
地图遇敌步数
$gameMap.encounterStep()
区域地图判定(影响战斗背景)
$gameMap.isOverworld()
地图每个画面所占格子格数()
$gameMap.screenTileX()
地图每个画面所占格子格数()
$gameMap.screenTileY()
回传用于地图循环的X距离
$gameMap.deltaX(x1, x2)
回传用于地图循环的Y距离
$gameMap.deltaY(y1, y2)
回传用于地图循环的XY距离
$gameMap.distance(x1, y1, x2, y2)
画面X坐标切换成游戏地图X坐标
$gameMap.canvasToMapX(x)
画面Y坐标切换成游戏地图Y坐标
$gameMap.canvasToMapX(y)
取得地图xy 坐标的事件ID
$gameMap.eventIdXy(x, y)
指定坐标是否在目前的画面中
$gameMap.isValid(x, y)
指定方向d 在座标(x,y) 是否可以通行
d
  8:上
 2:下
 6:右
 4:左
$gameMap.isPassable(x, y, d)
小型船在指定坐标的是否可以通行
$gameMap.isBoatPassable(x, y)
大型船在指定坐标的是否可以通行
$gameMap.isShipPassable(x, y)
飞型船在指定坐标的是否可以通行
$gameMap.isAirshipLandOk(x, y)
指定坐标是否为梯子
$gameMap.isLadder(x, y)
指定坐标是否为草丛
$gameMap.isBush(x, y)
指定坐标的计步器判定
$gameMap.isCounter(x, y)
指定坐标是否为伤害型地板
$gameMap.isDamageFloor(x, y)
取得指定坐标的tag
$gameMap.terrainTag(x, y)
取得指定坐标的region ID
$gameMap.regionId(x, y)
スクロール中判定
$gameMap.isScrolling()
指定ID事件目前面向方向
$gameMap.events()[id]._direction
指定ID事件目前在地图上的X坐标
$gameMap.events()[id]._X
指定ID事件目前在地图上的Y坐标
$gameMap.events()[id]._Y
指定ID事件目前在画面上的X坐标
$gameMap.events()[id].screenX()
指定ID事件目前在画面上的X坐标
$gameMap.events()[id].screenY()
指定ID事件目前的移动速率
$gameMap.events()[id]._moveSpeed
指定ID事件目前的移动频率
$gameMap.events()[id]._moveFrequency
指定ID事件目前的不透明度
$gameMap.events()[id]._opacity
指定ID事件目前的图片与画面的合成方式
$gameMap.events()[id]._blendMode
指定ID事件目前的图片所在的 地图图块ID
$gameMap.events()[id]._tileId
指定ID事件目前使用的图片名称
$gameMap.events()[id]._characterName
指定ID事件目前使用的图片index
$gameMap.events()[id]._characterIndex
指定ID事件的图片是否为 「!」开头的图片
$gameMap.events()[id].isObjectCharacter()
指定ID事件的优先度 (高于玩家 / 低于玩家 / 与玩家同层)
$gameMap.events()[id]._priorityType
指定ID事件是否有走路动画
$gameMap.events()[id]._walkAnime
指定ID事件是否有踏步动画
$gameMap.events()[id]._stepAnime
指定ID事件是否固定方向
$gameMap.events()[id]._directionFix
指定ID事件是否可穿透
$gameMap.events()[id]._through
指定ID事件目前是否为透明状态
$gameMap.events()[id]._transparent
指定ID事件目前是否在特定坐标
$gameMap.events()[id].pos(x, y)
指定ID事件目前是否在特定坐标(穿透状态会判定不存在)
$gameMap.events()[id].posNt(x, y)
指定ID事件目前是否正在移动中
$gameMap.events()[id].isMoving()
指定ID事件目前是否正在跳跃中
$gameMap.events()[id].isJumping()
指定ID事件目前是否正在停止中(非移动中与非跳跃中)
$gameMap.events()[id].isStopping()
指定ID事件目前是否正在冲刺
$gameMap.events()[id].isDashing()
指定ID事件目前是否正在可以以方向d通行至坐标x , y
$gameMap.events()[id].canPass(x, y, d)
指定ID事件是否接触到其他位于x,y 的事件(穿透角色不会进入判定)
$gameMap.events()[id].isCollidedWithCharacters(x, y)
指定ID事件是否靠近画面(事件距离画面一定距离是不会运作的)
$gameMap.events()[id].isNearTheScreen()
指定ID事件是否为梯子
$gameMap.events()[id].isOnLadder()
指定ID事件是否为草丛
$gameMap.events()[id].isOnBush()
指定ID事件的地形tag
$gameMap.events()[id].terrainTag()
指定ID事件的regionID
$gameMap.events()[id].regionId()
指定ID事件是否在执行指定移动路径
$gameMap.events()[id]._moveRouteForcing
玩家的物件内容基本上跟 $gameMap.evets()[id] 一样, 所以上面一些参数与判断都可以使用
EX$gamePlayer._direction 可以判断玩家目前面向的方向
$gamePlayer
遇敌步数, 变为0时会碰到敌人
$gamePlayer._encounterCount
玩家是否踩在伤害型地板上
$gamePlayer.isOnDamageFloor()
玩家跟随者是否再集合中
$gamePlayer.areFollowersGathering()
玩家跟随者是否再集合完毕
$gamePlayer.areFollowersGathered()
玩家是否正在搭乘小型船
$gamePlayer.isInBoat()
玩家是否正在搭乘大型船
$gamePlayer.isInShip()
玩家是否正在搭乘飞型船
$gamePlayer.isInAirship()
玩家是否正在搭乘任何一种交通工具
$gamePlayer.isInVehicle()
取得交通工具的物件, 交通工具的基本判定也与事件相同
EX$gameMap.vehicles()[id]._dicection 可以判断交通工具目前面向的方向
0 : 小型船
1 : 大型船
2 : 飞行船
$gameMap.vehicles()[id]
玩家队伍是否在战斗中
$gameParty.inBattle()
玩家队伍目前非死亡的人数
$gameParty.aliveMembers().length
玩家队伍目前死亡的人数
$gameParty.deadMembers().length
玩家队伍目前拥有的金币
$gameParty._gold
玩家队伍在战斗中执行指令目前到哪个步骤
$gameParty._steps
上一次被选为道具目标的角色id
$gameParty._targetActorId
menu中目前选择的角色id
$gameParty._menuActorId
玩家队伍中第N号角色的名字
$gameParty.members()[n-1].name()
取得玩家队伍中第N个角色物件
#同事件资料, 可以直接用来判断 EX : $gameParty.members()[n-1]._direction
$gameParty.members()[n-1]
玩家队伍人数(如果是在战斗中则为战斗人数)
$gameParty.size()
玩家队伍敏捷性(判断先制攻击)
$gameParty.agility()
玩家队伍总人数
$gameParty.allMembers().length
玩家队伍最大等级
$gameParty.highestLevel()
玩家队伍最后一次使用的道具资料
$gameParty.lastItem()
玩家队伍中是否有遇敌减半的属性判定
$gameParty.hasEncounterHalf()
玩家队伍中是否有遇敌无效的属性判定
$gameParty.hasEncounterNone()
玩家队伍中是否有被突袭(敌人先攻)无效的属性判定
$gameParty.hasCancelSurprise()
玩家队伍中是否有先制攻击的属性判定
$gameParty.hasRaisePreemptive()
玩家队伍中是否有战斗金币x2 的属性判定
$gameParty.hasGoldDouble()
玩家队伍中是否有道具掉落率x2 的属性判定
$gameParty.hasDropItemDouble()
玩家队伍中指定id角色 是否在战斗队伍中
$gameParty.battleMembers().contains($gameActors.actor(n))
敌人部队生存数量
$gameTroop.aliveMembers().length
敌人部队死亡数量
$gameTroop.deadMembers().length
敌人部队敏捷性(判断是否先制攻击)
$gameTroop.agility()
敌人部队群组ID
$gameTroop._troopId
敌人部队中所有角色名称
$gameTroop.enemyNames()
敌人部队回合计数
$gameTroop._turnCount
目前敌人部队可以获得的经验值(所有已经死亡敌人的可获得经验总和)
$gameTroop.expTotal()
目前敌人部队可以获得的金币(所有已经死亡敌人的可获得金币总和)
$gameTroop.goldTotal()
目前敌人部队中指定index的敌人名称
$gameTroop.members()[n].originalName()
目前敌人部队中指定index的敌人显示名称(有相同敌人时会自动变为敌人A , 敌人B...)
$gameTroop.members()[n].name()
目前战斗次数
$gameSystem._battleCount
目前遇敌是否有效
$gameSystem._encounterEnabled
目前逃走次数总和
$gameSystem._escapeCount
目前是否有开启队列模式
$gameSystem._formationEnabled
目前是否可以开启主选单
$gameSystem._menuEnabled
目前记录档案次数
$gameSystem._saveCount
目前是否可以进行存挡功能
$gameSystem._saveEnabled
目前version id
$gameSystem._versionId
目前战斗胜利次数
$gameSystem._winCount
目前系统语言是否为日文
$gameSystem.isJapanese()
目前是否为横向战斗
$gameSystem.isSideView()
目前游戏时间
$gameSystem.playtimeText()
使用点击移动的目标坐标X
$gameTemp.destinationX()
使用点击移动的目标坐标Y
$gameTemp.destinationY()
是否为测试模式(使用RM编辑器跑游戏时为测试模式)
$gameTemp.isPlaytest()
计时器的剩余时间 (1 frames = 1/ 60)
$gameTimer._frames
计时器是否运作中
$gameTimer._working
N号变量目前的值
$gameVariables.value(n)
N号开关目前的值
$gameSwitches.value(n)
设定事件自开关
$gameSelfSwitches.value([ 地图ID, 事件ID, 自开关类型]) 例:$gameSelfSwitches.value([1, 3, 'A'])
undefined
undefined
[size=10.5000pt]
事件编辑器篇[size=10.5000pt]
[size=10.5000pt]
[size=10.5000pt]
数据库篇EX:
数据库设定1号角色的名字为 哈洛德,
$dataActor[$gameParty_actors[1 - 1]].name
这样可以取得 哈洛德 这三个字
接着在游戏中玩家将1号角色改名为「粽子」
此时再次输入这个指令
$dataActor[$gameParty_actors[1 - 1]].name
依然只能取得 哈洛德 这三个字
因为 $data 开头的变量,多数为「数据库」中的设定,而不是游戏中最新的参数
[size=10.5000pt]
[size=10.5000pt]
取得资料内容
指令
取得角色名称
$dataActor[$gameParty_actors[n - 1]].name # n = 角色在数据库中的编号
取得角色暱称
$dataActor[$gameParty_actors[n - 1]].nickname;
取得角色战斗图名称
$dataActor[n].battlerName;
取得角色职业id
$dataActor[n].classId;
取得角色脸图index
$dataActor[n].faceIndex;
("脸图名称的第N")
取得角色脸图名称
$dataActor[n].faceName;
取得角色初始等级
$dataActor[n].initLevel;
取得角色最大等级
$dataActor[n].maxLevel;
取得角色memo栏位中medat资料
$dataActor[n].meta["x"];
# x memo中的key
取得角色注释栏位中的资料
$dataActor[n].note;
取得角色名称
$dataActor[n].name;
取得角色暱称
$dataActor[n].nickname;<
取得角色简介
$dataActor[n].profile;
取得防具type id
$dataArmors[n].atypeId;
# n 为数据库中的id
取得防具说明
$dataArmors[n].description;
取得防具在装备中的type id
$dataArmors[n].etypeId;
取得防具icon index
$dataArmors[n].iconIndex;
取得防具 memo 中的 meta 资料
$dataArmors[n].meta["x"];
取得防具注释内容
$dataArmors[n].note
取得防具名称
$dataArmors[n].name
取得防具增加的最大hp
$dataArmors[n].params[0]
取得防具增加的最大mp
$dataArmors[n].params[1]
取得防具增加的at
$dataArmors[n].params[2]
取得防具增加的df
$dataArmors[n].params[3]
取得防具增加的matk
$dataArmors[n].params[4]
取得防具增加的mdef
$dataArmors[n].params[5]
取得防具增加的敏捷
$dataArmors[n].params[6]
取得防具增加的价格
$dataArmors[n].price
队伍中角色职业名称
$dataClasses[$dataActors[$gameParty_actors[n - 1]].classId].name
角色预设职业名称
$dataClasses[$dataActors[n].classId].name
职业升级所需经验基本值
$dataClasses[n].expParams[0];
职业升级所需经验补正
$dataClasses[n].expParams[1];
职业升级所需经验增加值A
$dataClasses[n].expParams[2];
职业升级所需经验增加值B
$dataClasses[n].expParams[3];
职业各个等级最大hp
$dataClasses[n].params[0][n2];
# n 为职业id
# n2 为等级
职业各个等级最大mp
$dataClasses[n].params[1][n2];
职业各个等级at
$dataClasses[n].params[2][n2];
职业各个等级df
$dataClasses[n].params[3][n2];
职业各个等级matk
$dataClasses[n].params[4][n2];
职业各个等级mdef
$dataClasses[n].params[5][n2];
职业各个等级敏捷
$dataClasses[n].params[6][n2];
职业各个等级运
$dataClasses[n].params[7][n2];
公用事件id
$dataCommonEvents[n].id
公用事件名称
$dataCommonEvents[n].name
公用事件的触发开关id
$dataCommonEvents[n].switchId
公用事件的触发条件类型
$dataCommonEvents[n].trigger;
0 : ,1 : 自动执行 , 2 : 并列
敌人图像名称
$dataEnemies[n].battleName
敌人掉落物品id
$dataEnemies[n].dropItems[n2 -1 ].dataId
敌人掉落物品掉落率分母
$dataEnemies[n].dropItems[n2 -1 ].denominator
敌人掉落物品种类
$dataEnemies[n].dropItems[n2 -1 ].kind
0 : , 1 : 道具, 2 : 武器, 3 : 防具
击杀敌人可获得经验值
$dataEnemies[n].exp
击杀敌人可获得金币
$dataEnemies[n].gold
敌人memo中的meta
$dataEnemies[n].meta["x"];
敌人名称
$dataEnemies[n].name;
敌人最大hp
$dataEnemies[n].params[0];
敌人最大mp
$dataEnemies[n].params[1];
敌人at
$dataEnemies[n].params[2];
敌人df
$dataEnemies[n].params[3];
敌人matk
$dataEnemies[n].params[4];
敌人mdef
$dataEnemies[n].params[5];
敌人敏捷
$dataEnemies[n].params[6];
敌人运气
$dataEnemies[n].params[7];
道具动画id
$dataItems[n].animationId;
道具是否为消耗品
$dataItems[n].consumeable
道具说明
$dataItems[n].description
道具命中类型
$dataItems[n].hitType
道具 icon 编号
$dataItems[n].iconIndex
道具 的道具类型
$dataItems[n].itypeId
道具名称
$dataItems[n].name
道具价格
$dataItems[n].price
道具连续次数
$dataItems[n].repeats
道具效果范围
$dataItems[n].scope
道具速度补正
$dataItems[n].scope
道具成功率
$dataItems[n].successRate
道具取得tp
$dataItems[n].tpGain
目前地图的自动播放BGM
$dataMap.autoplayBgm
# $dataMap 每次切换map时都会刷新
目前地图的自动播放BGS
$dataMap.autoplayBgs
目前地图的bgm 名称
$dataMap.bgm.name
目前地图的bgm pan
$dataMap.bgm.pan
目前地图的bgm pich
$dataMap.bgm.puch
目前地图的bgm 音量
$dataMap.bgm.volume
地图的bgs 名称
$dataMap.bgs.name
地图的bgs pan
$dataMap.bgs.pan
地图的bgs pich
$dataMap.bgs.pich
地图的bgs 音量
$dataMap.bgs.volume
地图是否禁止冲刺
$dataMap.disableDashing
地图显示名称
$dataMap.displayName
地图遇敌部署
$dataMap.encounterStep
地图事件注释中的的meta资料
$dataMap.events[n].meta["x"];
地图事件名称
$dataMap.events[n].name;
地图事件名称
$dataMap.events[n].name;
地图事件备注
$dataMap.events[n].note;
地图的备注资料
$dataMap.meta["x"];
地图横向循环
$dataMap.parallaxLoopX
地图垂直循环
$dataMap.parallaxLoopY
地图远景图片名称
$dataMap.parallaxName
地图远景图是否显示在编辑器
$dataMap.parallaxShow
地图远景横向移动
$dataMap.parallaxSx
地图远景循环类型
$dataMap.scrollType
地图图块使用id
$dataMap.tilesetId
地图宽度()
$dataMap.width
地图高度()
$dataMap.height
指定地图的名称
$dataMapInfos.name
指定地图的上一层地图id(编辑器中)
$dataMapInfos.parentId
技能爆击
$dataSkills[n].damage.critical
技能动画id
$dataSkills[n].animationId
技能伤害属性
a $dataSkills[n].damage.elementId
技能计算公式
a $dataSkills[n].damage.formula
技能伤害类型
a $dataSkills[n].damage.type
技能说明
$dataSkills[n].description
技能icon 编号
$dataSkills[n].iconIndex
技能使用讯息1
$dataSkills[n].message1
技能使用讯息2
$dataSkills[n].message2
技能名称
$dataSkills[n].name
技能消耗mp
$dataSkills[n].mpCost
技能meta 资料
$dataSkills[n].meta["x"]
技能连续次数
$dataSkills[n].repeats
技能速度补正
$dataSkills[n].speed
技能连续次数
$dataSkills[n].repeats
技能使用的需求武器类型
$dataSkills[n].requiredWtypeId1
技能使用的需求武器类型2
$dataSkills[n].requiredWtypeId2
技能效果范围
$dataSkills[n].scope
技能的技能类型id
$dataSkills[n].stypeId
[size=10.5000pt]




看到小优关于别名的一篇,讲得很好,也非常重要。是js的最大特色之一,引用一下:
https://rpg.blue/thread-385565-1-1.html

new:
$gameSelfSwitches.setValue(key, true/false); // key = [mapId,eventId,name]

正则表达式:
https://www.jb51.net/article/72192.htm

某种状态下伤害不同:
If you want only a particular skill to deal additional damage, you can edit that skill's formula, e.g.:
(a.atk * 4 - b.def * 2) * (b.isStateAffected(50) ? 2 : 1)
The first bit should be your normal damage formula. We then put that in brackets and multiply it all by 2 if the target is affected by state #50, or 1 otherwise; i.e. the skill does double damage against targets affected by state #50. (The brackets make the code evaluate each side before multiplying them together.)

You'll have to change the numbers and such around to suit your particular case, but hopefully that helps. =)

Edit; you may find this useful, too: https://rpgmakermv.co/threads/da ... 01-mv-edition.2172/

评分

参与人数 19+19 收起 理由
AshhsA + 1 精品文章
去意义化a + 1 精品文章
jienluck + 1 精品文章
一纸书凡 + 1 精品文章
端寅初三 + 1 精品文章
小小的鱼 + 1
深渊笛笛 + 1 塞糖
bug_star_king + 1 塞糖
掘窖人 + 1 塞糖
xiamumomo + 1 精品文章

查看全部评分

需要购买本人MV插件必须先加wx好友。加不上wx就是本人忙,没时间卖。原则上太久以前的插件也不想卖,因为我也忘了,维护上会不给力。wx名:alskyif    本人插件地址:
   LCK_SRPG梦幻模拟战、火焰纹章类系统
   究极立绘ADV系统

   究极换装统合系统
   究极! 回想与CG系统
   消息文字的距离调整  
   自动返回上一张地图
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
31
在线时间
0 小时
注册时间
2018-2-20
帖子
9
发表于 2018-2-20 18:31:58 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7500
在线时间
1227 小时
注册时间
2008-12-14
帖子
555
 楼主| 发表于 2018-2-22 21:03:21 | 显示全部楼层
Sublime Text 3 快捷键
F11:切换普通全屏
Shift+F11:切换无干扰全屏
Ctrl+Shift+N:创建一个新窗口
Ctrl+Tab 切换标签页
Ctrl+Shift+T:恢复刚刚关闭的标签
Ctrl+W:关闭当前标签,当窗口内没有标签时会关闭该窗口
Ctrl+Space:代码提示
Ctrl+H : 替换
Ctrl+F:(查找的元素间的跳转:Enter间或Shift+Enter键)
Ctrl+L:选择当前光标所在位置的行。连续使用时,继续选中下一行
Ctrl+Shift+L:在多行选中后,在所有选中的行后产生游标
Ctrl+K、Ctrl+B:显示/隐藏侧边栏
编辑代码时我们经常会开多个窗口,所以分屏很重要。Alt+Shift+2进行左右分屏,Alt+Shift+8进行上下分屏,Alt+Shift+5进行上下左右分屏(即分为四屏)
双击可选中光标所在单词,三击可选中光标所在行(等同于Ctrl+L)
Home和End:移动至行尾和行首
Ctrl + ←/→:进行逐词移动
Ctrl+Shift+ ←/→:进行逐词选择
Alt + ←/→也可以进行逐词选择,但是选择的粒度比Ctrl + ←/→小,进行是分词级别的移动。配合Shift键,Alt+Shift+ ←/→进行分词级别的选择
Ctrl+Z: 撤销
Ctrl+Y: 恢复撤销
Ctrl+Shift+ ↑/↓:移动当前行
Ctrl+Shift+D:复制当前行
Ctrl+Shift+K:删除当前行
Ctrl+K,Ctrl+K : 删除至行末
Ctrl+K,Ctrl+Backspace: 删除至行首
Ctrl+Enter:在当前行下添加新行
Ctrl+Shift+Enter:在当前行上添加新行
Ctrl+/:行注释。
Ctrl+Shift+/:块注释
Shift+鼠标右键:向下拖动,产生多个光标
Ctrl+D:选中当前光标所在位置的单词。连续使用时,进行多光标选择,选中下一个同名单词。
Ctrl+K:配合Ctrl+D可以跳过下一个同名单词。使用Ctrl+U进行回退,使用Esc退出多重编辑
Ctrl + [ :向左缩进
Ctrl + ] :向右缩进
Ctrl+Shift+V:可以以当前缩进粘贴代码
Shift+Tab :当前位置向左缩进
Ctrl+P: 列出当前打开的文件(或者是当前文件夹的文件),输入文件名然后Enter跳转至该文件。需要注意的是,Sublime Text使用模糊字符串匹配,这也就意味着你可以通过文件名的前缀、首字母或是某部分进行匹配
::+ 行号:Ctrl+G 定位到具体的行
@:+ 符号:Ctrl+R定位到具体的符号,例如:JS函数名,CSS选择器名
#:+ 关键字:Ctrl+;匹配到具体的匹配的关键字。主要是模糊匹配
Alt+Shift和 Alt+Shift+ -:在通过跳转操作打开的文件中进行向上或向下跳转。这对文件夹级别的操作非常便捷
Alt+F3:选中文档中所有的同名单词
Ctrl+J 合并一行
Ctrl+M:在起始括号和结尾括号间切换
Ctrl+Shift+M:选中当前括号内容,重复可选着括号本身
Ctrl+Shift+A:选中标签内的内容不包括标签,继续按会继续往上一层选择
需要购买本人MV插件必须先加wx好友。加不上wx就是本人忙,没时间卖。原则上太久以前的插件也不想卖,因为我也忘了,维护上会不给力。wx名:alskyif    本人插件地址:
   LCK_SRPG梦幻模拟战、火焰纹章类系统
   究极立绘ADV系统

   究极换装统合系统
   究极! 回想与CG系统
   消息文字的距离调整  
   自动返回上一张地图
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7500
在线时间
1227 小时
注册时间
2008-12-14
帖子
555
 楼主| 发表于 2018-2-24 18:57:41 | 显示全部楼层
js随机从数组中取出几个元素
JS如何从一个数组中随机取出一个元素或者几个元素。

假如数组为

var items = ['1','2','4','5','6','7','8','9','10'];
1.从数组items中随机取出一个元素

//code from http://caibaojian.com/js-get-random-elements-from-array.html
var item = items[Math.floor(Math.random()*items.length)];
2.从前面的一篇随机数组中随机取几个元素

function getRandomArrayElements(arr, count) {
    var shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index;
    while (i-- > min) {
        index = Math.floor((i + 1) * Math.random());
        temp = shuffled[index];
        shuffled[index] = shuffled;
        shuffled = temp;
    }
    return shuffled.slice(min);
}


var items = ['1','2','4','5','6','7','8','9','10'];
console.log( getRandomArrayElements(items, 4) );

点评

非常感谢!  发表于 2018-9-23 23:08
需要购买本人MV插件必须先加wx好友。加不上wx就是本人忙,没时间卖。原则上太久以前的插件也不想卖,因为我也忘了,维护上会不给力。wx名:alskyif    本人插件地址:
   LCK_SRPG梦幻模拟战、火焰纹章类系统
   究极立绘ADV系统

   究极换装统合系统
   究极! 回想与CG系统
   消息文字的距离调整  
   自动返回上一张地图
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
153
在线时间
26 小时
注册时间
2018-8-20
帖子
21
发表于 2018-8-24 02:09:34 | 显示全部楼层
非常感谢!!!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
159
在线时间
13 小时
注册时间
2018-9-23
帖子
40
发表于 2018-9-23 21:45:09 | 显示全部楼层
非常感谢!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
30
在线时间
5 小时
注册时间
2018-12-1
帖子
2
发表于 2018-12-5 17:10:36 | 显示全部楼层
赞一个。。。。。。。。。。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1016
在线时间
117 小时
注册时间
2019-1-1
帖子
59
发表于 2019-1-28 13:04:54 | 显示全部楼层
宝藏啊!!!!!
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
2
星屑
6619
在线时间
501 小时
注册时间
2018-3-23
帖子
533

R考场第七期银奖

发表于 2019-1-28 13:21:27 | 显示全部楼层
VA没有类似的教程吗。。。
祝好。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1073
在线时间
177 小时
注册时间
2007-2-27
帖子
144
发表于 2019-1-28 17:01:43 | 显示全部楼层
好详细,厉害
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-3-28 18:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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