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

Project1

 找回密码
 注册会员
搜索
查看: 1232|回复: 4

[有事请教] 请问有随机商店的插件或脚本吗?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1092
在线时间
205 小时
注册时间
2019-5-1
帖子
44
发表于 2022-6-14 23:53:35 | 显示全部楼层 |阅读模式

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

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

x
目前一大难关是不知道怎么使商店中出现的商品是完全随机的,
虽然yep和某些作者的商店插件可以做到根据条件按组隐藏或显示商品,
但这种方法太笨,是纯人为的假随机,只能请教论坛大佬了

Lv3.寻梦者

梦石
0
星屑
1092
在线时间
205 小时
注册时间
2019-5-1
帖子
44
 楼主| 发表于 2022-6-15 12:44:41 | 显示全部楼层
沉了,大悲
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
760
在线时间
76 小时
注册时间
2019-4-7
帖子
54
发表于 2022-6-15 14:58:15 | 显示全部楼层
或者换个思路,脚本我不会,但是我可以设置他10个商店,里面的商品都不同。。然后每次进商店的时候从这10个商店里随机触发一个。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1092
在线时间
205 小时
注册时间
2019-5-1
帖子
44
 楼主| 发表于 2022-6-16 13:09:47 | 显示全部楼层
破晓酱11 发表于 2022-6-15 14:58
或者换个思路,脚本我不会,但是我可以设置他10个商店,里面的商品都不同。。然后每次进商店的时候从这10个 ...

如果是商品少那还好,但稍微多一点那就让人头大......
而且,一样是人为的随机,总之找不到完美的方法了
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3053
在线时间
318 小时
注册时间
2015-4-30
帖子
92
发表于 2022-6-24 17:03:19 | 显示全部楼层
1楼的要求也太含糊了。这兼容能写死人啊。
给楼主个参考吧,如果楼主对脚本不陌生,就自己优化吧。

JAVASCRIPT 代码复制下载
  1. //                MV_RANDOM_SHOP.js
  2.  
  3. //        商店展示的最大商品项目数,有机会少于该数目,暂定为 6个
  4. Game_Interpreter.prototype._maxCommodityItems = 6;       
  5.  
  6. // 开关编号,拟定该编号的开关状态为:是否启用随机商店。暂定为 1号开关
  7. SwitchNumber = 1;       
  8.  
  9. /*
  10. ======================================================================
  11.         ◆        商店处理
  12. ======================================================================
  13. */
  14.  
  15. // Shop Processing
  16. Game_Interpreter.prototype.command302 = function() {
  17.     if (!$gameParty.inBattle()) {
  18.         var goods = [this._params];
  19.         while (this.nextEventCode() === 605) {
  20.             this._index++;
  21.             goods.push(this.currentCommand().parameters);
  22.         }
  23.                 if($gameSwitches.value(SwitchNumber)){                // <<< 插入代码
  24.                         goods = this.classificationProcessing(this._params[4]);                // <<< 插入代码
  25.                 }        // <<< 插入代码
  26.         SceneManager.push(Scene_Shop);
  27.         SceneManager.prepareNextScene(goods, this._params[4]);
  28.     }
  29.     return true;
  30. };
  31.  
  32. /*
  33. ======================================================================
  34.         ◆        分类处理
  35. ======================================================================
  36. */
  37. Game_Interpreter.prototype.classificationProcessing = function(param){
  38.         var s = [0, 0, 0, 0];
  39.         var R = Math.randomInt;
  40.         s[0] = this._maxCommodityItems;
  41.         s[4] =         $dataItems.length + $dataWeapons.length        + $dataArmors.length - 3;
  42.         s[0] = s[0] > s[4]? s[4] : s[0];
  43.         s[1] = R(s[0]);
  44.         s[4] = $dataItems.length - 1;
  45.         s[1] = s[1] > s[4]? s[4] : s[1];
  46.         s[2] = s[1] > 0? R(s[0] - s[1]) : R(s[0]);
  47.         s[4] = $dataWeapons.length -1;
  48.         s[2] = s[2] > s[4]? s[4] : s[2];
  49.         s[4] = s[1] + s[2];
  50.         s[3] = s[4] > 0? s[0] - s[4] : s[0];
  51.         s[4] = $dataArmors.length -1;
  52.         s[3] = s[3] > s[4]? s[4] : s[3];
  53.  
  54.         /*------------------------------------------------------------------------*/
  55.         var y = [null, [], [], []];
  56.         var goods = [];
  57.         var temp = [null, $dataItems, $dataWeapons, $dataArmors];
  58.         for(var i = 1; i < 4; i++){
  59.                 temp[i].forEach(function(t, index){y[i].push(index)});
  60.                 var x = 0;
  61.                 while(x < s[i]){
  62.                         x++;
  63.                         var n = y[i].length - 1;
  64.                         var v = Math.randomInt(n) + 1;
  65.                         var tempGoods = [ i - 1, 0, 0, 0];
  66.                         tempGoods[1] = y[i][v];
  67.                         goods.push(tempGoods);
  68.                         y[i].splice(v, 1);
  69.                 }
  70.         }
  71.         if(!goods.length) goods = [0, 0, 0, 0, param];
  72.         goods[0][4] = param;
  73.  
  74.         /*------------------------------------------------------------------------*/
  75.         return goods;
  76. };


a1.png
a3.gif
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-3-29 05:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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