Project1

标题: MV怎样设置某一物品的持有数量 [打印本页]

作者: 小小小蚩尤    时间: 2017-5-10 01:58
标题: MV怎样设置某一物品的持有数量
MV怎样设置某一物品的持有数量上限
我先用的是YEP插件
谢谢大神们了

作者: 小小小蚩尤    时间: 2017-5-10 20:17
......能不能再详细点?吸血拉
作者: tseyik    时间: 2017-5-10 20:33
本帖最后由 tseyik 于 2017-5-10 23:35 编辑

http://space6718.lolipop.jp/script/setItemMax.js

setItemMax.js




* @plugindesc アイテムの最大所持個数をアイテムIdごとに指定できます。
* @author 村人A
*
* @help
*
*  アイテムのメモ欄に「itemMaxNum:個数」と入力することによりそのアイテムのデフォルトの最大所持数を設定することが出来ます。
*  コマンド例
*  itemMaxNum:1010  #入力したアイテムの最大所持数を1010個に設定
*
*  アイテムの所持上限数をゲーム中に変更したい場合は「アイテム上限設定変更」とプラグインコマンドを入力後、指定したいアイテムidと最大所持数を入力
*  別のアイテムも変更したい場合続けて入力してください
*  デフォルトの最大所持数(99個)を変更したい場合はidを0と入力し、その後に個数を指定してください。
*
* プラグインコマンド例:
*   アイテム上限設定変更 3 35
*   #アイテムidが3のアイテムの最大所持数を35個に設定
*   アイテム上限設定変更 1 20 4 8 7 15 9 100 0 200
*   #idが1のアイテムの最大個数を20個に、idが4のアイテムの最大個数を8個に以下、7を15、9を100、デフォルトの最大個数を200個に変更
*
*  変更したときにアイテムの所持数が指定した最大所持数より多かった場合、自動的に最大所数に直されます。
*
*  値の優先度としては
*  プラグインコマンドによる変更 > データベースでの指定 > 変更したデフォルトの最大個数 > デフォルトの最大個数(99個)
*  となります。
作者: 芯☆淡茹水    时间: 2017-5-10 22:03
本帖最后由 芯☆淡茹水 于 2017-5-10 22:13 编辑

这个是现写的,已经测试。

相同的物品可以随时改变最大持有数。比如游戏前期改变道具1的最大持有数为10,游戏后期可以改变为100.
物品最大持有数改变后,物品的当前持有数不会改变。比如有 50把1号武器,把1号武器最大持有数改为20时,1号武器仍然拥有50把。
但在数量少于20时,再得到的话,不会超过20.

  1. //===============================================================================
  2. //===============================================================================
  3. /*:
  4. * @plugindesc  更改物品最大持有数量。
  5. *
  6. * @author 芯☆淡茹水
  7. *
  8. * @help ____________________________________________________________________
  9. * 初始物品最大数没有变化,都是 99,需要在游戏中用插件命令添加最大数。
  10. *
  11. * 插件命令格式: Add_MaxNum 类型 ID 最大数量
  12. * 其中     类型:道具写 item    武器写 weapon     防具写 armor
  13. *             ID    : 限制最大数所对应的道具/武器/防具的ID
  14. *  最大数量:该物品能持有的最大数量。
  15. *
  16. *举例:改变2号道具最大持有数为 10   :   Add_MaxNum item 2 10
  17. *          改变5号武器最大持有数为 555  :   Add_MaxNum weapon 5 555
  18. *          改变12号防具最大持有数为 110 :   Add_MaxNum armor 12 110
  19. */
  20. //==============================================================
  21. var XdrsCMIGinPluginCommand = Game_Interpreter.prototype.pluginCommand;
  22. Game_Interpreter.prototype.pluginCommand = function(command, args) {
  23.     XdrsCMIGinPluginCommand.call(this, command, args);
  24.     if (command === 'Add_MaxNum') {
  25.        var type = args[0], id = parseInt(args[1]), num = parseInt(args[2]);
  26.        $gameParty.addNumData([type,id,num]);
  27.     }
  28. };
  29. //===============================================================
  30. var xdrsCMIGamePartyInitialize = Game_Party.prototype.initialize;
  31. Game_Party.prototype.initialize = function() {
  32.     xdrsCMIGamePartyInitialize.call(this);
  33.     this._maxNumData = {'item':{}, 'weapon':{},'armor':{}};
  34. };
  35. Game_Party.prototype.addNumData = function(data) {
  36.     data[2] = Math.max(data[2], 1);
  37.     this._maxNumData[data[0]][data[1]] = data[2];
  38. };
  39. Game_Party.prototype.maxNumData = function(item) {
  40.     switch (true) {
  41.     case DataManager.isItem(item)  :return this._maxNumData['item'];
  42.     case DataManager.isWeapon(item):return this._maxNumData['weapon'];
  43.     case DataManager.isArmor(item) :return this._maxNumData['armor'];
  44.     }
  45. };
  46. Game_Party.prototype.maxItems = function(item) {
  47.     return item.id in this.maxNumData(item) ? this.maxNumData(item)[item.id] : 99;
  48. };
  49. //===============================================================
复制代码



作者: 小小小蚩尤    时间: 2017-5-10 22:50
芯☆淡茹水 发表于 2017-5-10 22:03
这个是现写的,已经测试。

相同的物品可以随时改变最大持有数。比如游戏前期改变道具1的最大持有数为10, ...

谢谢了

作者: 小小小蚩尤    时间: 2017-5-10 22:50
tseyik 发表于 2017-5-10 20:33
http://space6718.lolipop.jp/script/setItemMax.js

[fold=setItemMax.js]/*:ja

谢谢了啊啊





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1