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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: 55808888
打印 上一主题 下一主题

[有事请教] (已解决)能力成长果实,怎么做上限?

[复制链接]

Lv4.逐梦者

梦石
0
星屑
5297
在线时间
724 小时
注册时间
2022-11-26
帖子
323
11
发表于 2023-4-17 20:13:55 | 只看该作者
本帖最后由 余杭 于 2023-4-17 20:37 编辑
55808888 发表于 2023-4-17 19:43
大神,在这个基础上我扩展了下设计,攻击、法攻、幸运归为一类攻击类果实,生命、防御,法防归为防御类种 ...


你需要把   .usednumber   换掉,可以把攻击类改成     .攻击果实     ,
                                                     把防御类改成     .防御果实     。
.     后面可以用中文,而且随便设定,不和其他角色函数冲突就行。
这个    角色变量     和后两行设置了什么   变量ID  没关系,你那一行    变量操作+=1    可以删掉,
一共两个   变量ID   就够用了
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1098
在线时间
104 小时
注册时间
2013-12-22
帖子
64
12
 楼主| 发表于 2023-4-17 22:15:06 | 只看该作者
余杭 发表于 2023-4-17 20:13
你需要把   .usednumber   换掉,可以把攻击类改成     .攻击果实     ,
                              ...

搞定了! 多谢!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
466
在线时间
47 小时
注册时间
2021-5-12
帖子
36
13
发表于 2023-4-18 09:14:45 | 只看该作者
厉害厉害????。。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4362
在线时间
550 小时
注册时间
2018-11-12
帖子
114
14
发表于 2023-4-18 18:36:41 | 只看该作者
JAVASCRIPT 代码复制
  1. //【使用说明】
  2. //满足下列条件的道具,在使用时受限制次数影响:
  3. //1.道具备注栏备注<角色使用限制:x>
  4. //2.道具范围是[我方单体];
  5. //3.使用场合是城镇地图(战斗时会自动禁用,不用担心)。
  6. //4.成员入队初始化时,重置该角色所有道具的使用次数。
  7. //【举例子】
  8. //1号道具备注:<角色使用限制:10>
  9. //该道具对任何角色的次数限制均为10,所有角色单独计算。
  10. //可以随时在数据库修改备注栏的限制次数,会自动同步。
  11.  
  12.  
  13.  
  14. var _XZScene_ItemBase_canUse = Scene_ItemBase.prototype.canUse;
  15. Scene_ItemBase.prototype.canUse = function() {
  16.         if (this._actorWindow && this._actorWindow.active) {
  17.                 var actor = $gameParty.members()[this._actorWindow.index()];
  18.                 var TJ = !actor.isItemXZ(this.item());
  19.                 return _XZScene_ItemBase_canUse && TJ;
  20.         } else {
  21.                 return _XZScene_ItemBase_canUse;
  22.         }
  23. };
  24.  
  25. var _XZScene_Item_onItemOk = Scene_Item.prototype.onItemOk;
  26. Scene_Item.prototype.onItemOk = function() {
  27.         _XZScene_Item_onItemOk.call(this);
  28.         if (this._actorWindow && this._actorWindow.active) this._actorWindow.refresh();
  29. };
  30.  
  31. var _XZScene_Item_useItem = Scene_Item.prototype.useItem;
  32. Scene_Item.prototype.useItem = function() {
  33.         _XZScene_Item_useItem.call(this);
  34.         if (this._actorWindow && this._actorWindow.active) {
  35.                 var actor = $gameParty.members()[this._actorWindow.index()];
  36.                 actor.BgItemXZ(this.item());
  37.                 this._actorWindow.refresh();
  38.         }
  39. };
  40.  
  41. var _XZWindow_Base_drawActorSimpleStatus = Window_Base.prototype.drawActorSimpleStatus;
  42. Window_Base.prototype.drawActorSimpleStatus = function(actor, x, y, width) {
  43.         _XZWindow_Base_drawActorSimpleStatus.call(this, actor, x, y, width);
  44.         if (SceneManager._scene.constructor.name == "Scene_Item") {
  45.                 var item = SceneManager._scene.item();
  46.                 if (item && item.meta.角色使用限制) {
  47.                         var se = actor.isItemXZ(item)?'\\c[18]':'\\c[24]';
  48.                         var text = '\\c[16]限制使用次数:'+se+actor.ItemXZs(item)+'/'+item.meta.角色使用限制;
  49.                         var yy = y+this.itemHeight()-this.standardFontSize()-this.spacing()*2;
  50.                         this.drawTextEx(text, this.textPadding(), yy);
  51.                 }
  52.         }
  53. };
  54.  
  55. var _XZWindow_ItemList_isCurrentItemEnabled = Window_ItemList.prototype.isCurrentItemEnabled;
  56. Window_ItemList.prototype.isCurrentItemEnabled = function() {
  57.         if ($gameParty.inBattle() && this.item() && this.item().meta.角色使用限制) return false;
  58.     return _XZWindow_ItemList_isCurrentItemEnabled.call(this);
  59. };
  60.  
  61. //成员入队初始化时,重置该角色所有道具的使用次数
  62. //不想要这个功能就删除这段代码
  63. var _XZGame_Actor_setup = Game_Actor.prototype.setup;
  64. Game_Actor.prototype.setup = function(actorId) {
  65.         _XZGame_Actor_setup.call(this,actorId);
  66.         if (this._ItemXZ) this._ItemXZ = null;
  67. };//
  68.  
  69. Game_Actor.prototype.isItemXZ = function(item) {
  70.         var kg = false;
  71.         if (!item) return kg;
  72.         if (!item.meta.角色使用限制) return kg;
  73.         if (!this._ItemXZ) this._ItemXZ = [];
  74.         var s = Number(item.meta.角色使用限制);
  75.         for (var i=0;i<this._ItemXZ.length;i++) {
  76.                 var sz = this._ItemXZ[i];
  77.                 if (sz[0]==item.id && sz[1]>=s) kg = true;
  78.         }
  79.         return kg;
  80. };
  81.  
  82. Game_Actor.prototype.ItemXZs = function(item) {
  83.         if (item && item.meta.角色使用限制 && this._ItemXZ) {
  84.                 var bh = -1;
  85.                 for (var i=0;i<this._ItemXZ.length;i++) {
  86.                         var sz = this._ItemXZ[i];
  87.                         if (sz[0]==item.id) bh = i;
  88.                 }
  89.                 if (bh!=-1) return this._ItemXZ[bh][1];
  90.         }
  91.         return 0;
  92. };
  93.  
  94. Game_Actor.prototype.BgItemXZ = function(item) {
  95.         if (item && item.meta.角色使用限制 && !this.isItemXZ(item)) {
  96.                 var bh = -1;
  97.                 for (var i=0;i<this._ItemXZ.length;i++) {
  98.                         var sz = this._ItemXZ[i];
  99.                         if (sz[0]==item.id) bh = i;
  100.                 }
  101.                 if (bh!=-1) {
  102.                         this._ItemXZ[bh][1]++;
  103.                 } else {
  104.                         this._ItemXZ.push([item.id,1]);
  105.                 }
  106.         }
  107. };


【使用说明】
将上述代码复制粘贴到任意插件最下面。

【效果速览】


随手写的,希望对楼主有所帮助。

点评

发现个小问题,连续使用时,即使物品数量不够仍然会继续生效,比如我只有一个药品可以一直不返回一直点击使用到上限  发表于 2023-12-31 14:51
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 11:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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