Project1

标题: 如何实现使用物品时消耗TP? [打印本页]

作者: a200731118    时间: 2018-6-25 21:34
标题: 如何实现使用物品时消耗TP?
这个问题MV有问过,不过想知适用VA,有什么方法可以解决。
就是使用物品时,如何设置TP消耗/某变量消耗呢?
作者: MCCF    时间: 2018-6-29 18:16
某变量消耗的话公共事件可以搞定,如果消耗tp,好像只有特性里面可以设定按百分比消耗。
作者: KB.Driver    时间: 2018-6-30 02:22
模仿现成代码来改就好
用于模仿的代码:
Game_BattlerBase

RPG::Skill


最后的代码:
RUBY 代码复制
  1. class  Game_BattlerBase
  2.   #--------------------------------------------------------------------------
  3.   # ● 检查物品的使用条件
  4.   #--------------------------------------------------------------------------
  5.   alias cld99_item_conditions_met? item_conditions_met?
  6.   def item_conditions_met?(item)
  7.      item_cost_payable?(item) && cld99_item_conditions_met?(item)
  8.   end
  9.  
  10. #--------------------------------------------------------------------------
  11.   # ● 判定是否足够扣除物品的使用消耗 (以TP为例)
  12.   #--------------------------------------------------------------------------
  13.   def item_cost_payable?(item)
  14.     tp >= item_tp_cost(item)
  15.   end
  16.  
  17.   #--------------------------------------------------------------------------
  18.   # ● 计算物品消费的 TP
  19.   #--------------------------------------------------------------------------
  20.   def item_tp_cost(item)
  21.     item.tp_cost
  22.   end
  23.  
  24. end
  25.  
  26. class RPG::Item < RPG::UsableItem
  27.   alias cld99_initialize initialize
  28.   def initialize
  29.     cld99_initialize
  30.     @tp_cost = tp_cost_initialize
  31.   end
  32.  
  33.   def tp_cost_initialize
  34.   regexp = /\<tp_cost\[(\d+)\]\>/
  35.     #例:物品的备注中写<tp_cost[20]>表示物品消耗TP20
  36.     value= item.note.scan(regexp) #[nil] 或 [["value"]]
  37.     return value[0] ? value[0][0].to_i : 0
  38.   end
  39.   attr_accessor :tp_cost
  40. end

仅提供一个思路,未实测

作者: a200731118    时间: 2018-6-30 03:05
KB.Driver 发表于 2018-6-30 02:22
模仿现成代码来改就好
用于模仿的代码:
[fold=Game_BattlerBase]

不好意思我想問那個腳本是否放在Game_BattlerBase第701行,還是插入插件就行,如果可以的話可不可以做範例。
作者: a200731118    时间: 2018-6-30 13:41
a200731118 发表于 2018-6-30 03:05
不好意思我想問那個腳本是否放在Game_BattlerBase第701行,還是插入插件就行,如果可以的話可不可以做範例 ...

好像跟判定是否足夠扣除技能的使用消耗有衝突,進入遊戲時沒有影響,但當進入戰鬥時窗口跳出來!



作者: KB.Driver    时间: 2018-6-30 13:50
工程:
Project1.zip (1.43 MB, 下载次数: 166)

不满足使用条件时物品不显示这种小问题不想管了……凑合着用吧)




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