查看: 3717|回复: 8

[已经解决] 如何实现使用物品时消耗TP?

[复制链接]
梦石
0
星屑
4876
在线时间
480 小时
注册时间
2015-3-25
回帖
73

极短28参与极短26参与极短25参与极短22参与

发表于 2018-6-25 21:34:11 | 显示全部楼层 |阅读模式

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

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

×
这个问题MV有问过,不过想知适用VA,有什么方法可以解决。
就是使用物品时,如何设置TP消耗/某变量消耗呢?
梦石
2
星屑
6767
在线时间
501 小时
注册时间
2018-3-23
回帖
487

R考场第七期银奖

发表于 2018-6-29 18:16:29 | 显示全部楼层
某变量消耗的话公共事件可以搞定,如果消耗tp,好像只有特性里面可以设定按百分比消耗。
祝好。
回复

使用道具 举报

梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2018-6-30 02:22:20 | 显示全部楼层
模仿现成代码来改就好
用于模仿的代码:
Game_BattlerBase
  #--------------------------------------------------------------------------
  # ● 判定是否足够扣除技能的使用消耗
  #--------------------------------------------------------------------------
  def skill_cost_payable?(skill)
    tp >= skill_tp_cost(skill) && mp >= skill_mp_cost(skill)
  end

  #--------------------------------------------------------------------------
  # ● 计算技能消费的 TP
  #--------------------------------------------------------------------------
  def skill_tp_cost(skill)
    skill.tp_cost
  end

  #--------------------------------------------------------------------------
  # ● 检查技能的使用条件
  #--------------------------------------------------------------------------
  def skill_conditions_met?(skill)
    usable_item_conditions_met?(skill) &&
    skill_wtype_ok?(skill) && skill_cost_payable?(skill) &&
    !skill_sealed?(skill.id) && !skill_type_sealed?(skill.stype_id)
  end


RPG::Skill class RPG::Skill < RPG::UsableItem
  def initialize
    super
    @scope = 1
    @stype_id = 1
    @mp_cost = 0
    @tp_cost = 0
    @message1 = ''
    @message2 = ''
    @required_wtype_id1 = 0
    @required_wtype_id2 = 0
  end
  attr_accessor :stype_id
  attr_accessor :mp_cost
  attr_accessor :tp_cost
  attr_accessor :message1
  attr_accessor :message2
  attr_accessor :required_wtype_id1
  attr_accessor :required_wtype_id2
end



最后的代码:
[pre lang="ruby"]
class  Game_BattlerBase
  #--------------------------------------------------------------------------
  # ● 检查物品的使用条件
  #--------------------------------------------------------------------------
  alias cld99_item_conditions_met? item_conditions_met?
  def item_conditions_met?(item)
     item_cost_payable?(item) && cld99_item_conditions_met?(item)
  end

#--------------------------------------------------------------------------
  # ● 判定是否足够扣除物品的使用消耗 (以TP为例)
  #--------------------------------------------------------------------------
  def item_cost_payable?(item)
    tp >= item_tp_cost(item)
  end

  #--------------------------------------------------------------------------
  # ● 计算物品消费的 TP
  #--------------------------------------------------------------------------
  def item_tp_cost(item)
    item.tp_cost
  end

end

class RPG::Item < RPG::UsableItem
  alias cld99_initialize initialize
  def initialize
    cld99_initialize
    @tp_cost = tp_cost_initialize
  end

  def tp_cost_initialize
  regexp = /\<tp_cost\[(\d+)\]\>/
    #例:物品的备注中写<tp_cost[20]>表示物品消耗TP20
    value= item.note.scan(regexp) #[nil] 或 [["value"]]
    return value[0] ? value[0][0].to_i : 0
  end
  attr_accessor :tp_cost
end

[/pre]
仅提供一个思路,未实测
用头画头像,用脚写脚本
回复

使用道具 举报

梦石
0
星屑
4876
在线时间
480 小时
注册时间
2015-3-25
回帖
73

极短28参与极短26参与极短25参与极短22参与

 楼主| 发表于 2018-6-30 03:05:57 | 显示全部楼层
KB.Driver 发表于 2018-6-30 02:22
模仿现成代码来改就好
用于模仿的代码:
[fold=Game_BattlerBase]

不好意思我想問那個腳本是否放在Game_BattlerBase第701行,還是插入插件就行,如果可以的話可不可以做範例。

点评

好像跟判定是否足夠扣除技能的使用消耗有衝突  发表于 2018-6-30 13:39
直接把所有最终代码塞到默认点以下 main以上就行 至于原因可以看下ruby的猴子补丁  发表于 2018-6-30 10:35
回复

使用道具 举报

梦石
0
星屑
4876
在线时间
480 小时
注册时间
2015-3-25
回帖
73

极短28参与极短26参与极短25参与极短22参与

 楼主| 发表于 2018-6-30 13:41:48 | 显示全部楼层
a200731118 发表于 2018-6-30 03:05
不好意思我想問那個腳本是否放在Game_BattlerBase第701行,還是插入插件就行,如果可以的話可不可以做範例 ...

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

回复

使用道具 举报

梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2018-6-30 13:50:52 | 显示全部楼层
工程:
Project1.zip (1.43 MB, 下载次数: 166)

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

点评

成功了,多谢你。  发表于 2018-7-1 15:59

评分

参与人数 1星屑 +100 收起 理由
VIPArcher + 100 认可答案

查看全部评分

用头画头像,用脚写脚本
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部