|
本帖最后由 烁灵 于 2024-6-20 17:48 编辑
在选择某个选项时显示图片。
对原脚本有修改,可以使用变量的值指定图片名。
原地址:MV Choice Pictures | Galv's RPG Maker Scripts & Plugins (galvs-scripts.com)
效果:
范例:https://www.123pan.com/s/uBKyVv-CzF3A.html 提取码:SXdx
脚本:命名为 Galv_ChoicePictures.js
- //-----------------------------------------------------------------------------
- // Galv's Choice Pictures
- //-----------------------------------------------------------------------------
- // For: RPGMAKER MV
- // Galv_ChoicePictures.js
- //-----------------------------------------------------------------------------
- // 2017-09-17 - Version 1.2 - Added code to remove an overwrite
- // 2017-03-01 - Version 1.1 - made compatible with HIME hidden choices
- // 2016-12-10 - Version 1.0 - release
- //-----------------------------------------------------------------------------
- // Terms can be found at:
- // galvs-scripts.com
- //-----------------------------------------------------------------------------
- var Imported = Imported || {};
- Imported.Galv_ChoicePictures = true;
- var Galv = Galv || {}; // Galv's main object
- Galv.CPICS = Galv.CPICS || {}; // Galv's stuff
- //-----------------------------------------------------------------------------
- /*:
- * @plugindesc (v.1.2) 根据当前选中的选项显示不同的图片 定制-支持读取变量中的文件名.
- * 汉化&修改 by 烁灵 更多脚本请访问 www.hknmtt.com
- * @author Galv - galvs-scripts.com
- *
- * @param Choice Picture Id
- * @text 显示图片编号
- * @desc 这个图片编号将用来显示选项图片
- * @default 1
- *
- * @help
- * Galv's Choice Pictures
- * ----------------------------------------------------------------------------
- * 这个插件可以使当前选项选中时在屏幕中显示图片
- * 需要在选项文本中使用以下标签来使用本功能
- *
- * <p:imageName,x,y> // imageName指定 /img/pictures/ 文件夹中的图片文件名
- * // 本脚本改动:可以使用 v[n] 指定图片名为变量 n 的值
- * // x,y 是图片中心的坐标
- *
- * 将使用指定的编号显示图片,这表示已经使用该图片编号显示的图片会被替换
- * ----------------------------------------------------------------------------
- */
- //-----------------------------------------------------------------------------
- // CODE STUFFS
- //-----------------------------------------------------------------------------
- (function() {
- Galv.CPICS.pidId = Number(PluginManager.parameters('Galv_ChoicePictures')["Choice Picture Id"]);
- Galv.CPICS.picList = [];
- Galv.CPICS.getPics = function() {
- Galv.CPICS.picList = [];
- if (!$gameMessage._choices) return;
- for (var i = 0; i < $gameMessage._choices.length; i++) {
- var txt = $gameMessage._choices[i].match(/<p:(.*)>/i);
- if (txt) Galv.CPICS.setPic(i,txt);
- }
- };
- Galv.CPICS.setPic = function(index,txt) {
- $gameMessage._choices[index] = $gameMessage._choices[index].replace(txt[0],'');
- var opts = txt[1].split(',');
- var variableTxt = opts[0].match(/v\[(\d+)\]/);
- if (variableTxt) {
- opts[0] = $gameVariables.value(Number(variableTxt[1]));
- }
- Galv.CPICS.picList[index] = {img:opts[0],x:Number(opts[1]),y:Number(opts[2])};
- };
- Galv.CPICS.showPic = function(obj) {
- $gameScreen.showPicture(Galv.CPICS.pidId, obj.img, 1, obj.x, obj.y, 100, 100, 255, 0);
- };
- Galv.CPICS.erasePic = function(obj) {
- $gameScreen.erasePicture(Galv.CPICS.pidId);
- };
- //-----------------------------------------------------------------------------
- // WINDOW CHOICE
- //-----------------------------------------------------------------------------
- Galv.CPICS.Window_ChoiceList_callUpdateHelp = Window_ChoiceList.prototype.callUpdateHelp;
- Window_ChoiceList.prototype.callUpdateHelp = function() {
- Galv.CPICS.Window_ChoiceList_callUpdateHelp.call(this);
- var i = this.index();
- if (this.active && Galv.CPICS.picList[i]) {
- Galv.CPICS.showPic(Galv.CPICS.picList[i]);
- } else {
- Galv.CPICS.erasePic();
- }
- };
- Galv.CPICS.Window_ChoiceList_start = Window_ChoiceList.prototype.start;
- Window_ChoiceList.prototype.start = function() {
- Galv.CPICS.getPics();
- Galv.CPICS.Window_ChoiceList_start.call(this);
- };
- })();
- if (Imported.HiddenChoiceConditions) {
- // HIME hide choices
- Galv.CPICS.Window_ChoiceList_makeCommandList = Window_ChoiceList.prototype.makeCommandList;
- Window_ChoiceList.prototype.makeCommandList = function() {
- Galv.CPICS.Window_ChoiceList_makeCommandList.call(this);
- Galv.CPICS.getPics();
- var needsUpdate = false;
- for (var i = 0; i < this._list.length; i++) {
- var txt = this._list[i].name.match(/<p:(.*)>/i);
- if (txt) {
- this._list[i].name = this._list[i].name.replace(txt[0],'');
- needsUpdate = true;
- }
- }
- if (needsUpdate) this.updatePlacement();
- };
- }
复制代码
|
|