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

Project1

 找回密码
 注册会员
搜索
查看: 1699|回复: 3
打印 上一主题 下一主题

[已经解决] 关于经验书之类的道具如何制作

[复制链接]

Lv2.观梦者

梦石
0
星屑
304
在线时间
27 小时
注册时间
2021-8-13
帖子
9
跳转到指定楼层
1
发表于 2021-8-19 09:16:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
想制作像恢复剂一样,选择谁就给谁加经验而不是公共事件中给全体队员或固定队员加经验

Lv3.寻梦者

梦石
0
星屑
2856
在线时间
446 小时
注册时间
2016-9-26
帖子
1222
2
发表于 2021-8-19 13:02:40 | 只看该作者
提示,可以利用状态的附加和附加与否判定,然后可以是逐个设置的不靠脚本的事件方法

评分

参与人数 1星屑 +15 收起 理由
alexncf125 + 15 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

梦石
1
星屑
20376
在线时间
4876 小时
注册时间
2014-12-22
帖子
1525

开拓者

3
发表于 2021-8-19 15:56:41 | 只看该作者
同2楼,给道具的效果加一个状态,对角色使用角色会被附加这个状态,然后在道具的公共事件里判定一下是谁持有这个状态,然后就对他操作你想要的效果blabla,最后解除状态。
把这个状态图标设成空白,就看不出来了~

评分

参与人数 1星屑 +30 收起 理由
alexncf125 + 30 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
1
星屑
14517
在线时间
2087 小时
注册时间
2017-9-28
帖子
662
4
发表于 2021-8-19 18:06:01 | 只看该作者
  1. #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
  2. #  ▼ 经验包
  3. #  Author: Kread-EX
  4. #  Version 1.01
  5. #  Release date: 01/02/2012
  6. #
  7. #  For Tobyej.
  8. #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

  9. #-------------------------------------------------------------------------------------------------
  10. #  ▼ UPDATES
  11. #-------------------------------------------------------------------------------------------------
  12. # # 30/03/2012. Fixed mistake in dynamic exp calculation.
  13. #-------------------------------------------------------------------------------------------------
  14. #  ▼ TERMS OF USAGE
  15. #-------------------------------------------------------------------------------------------------
  16. # #  You are free to adapt this work to suit your needs.
  17. # #  You can use this work for commercial purposes if you like it.
  18. # #  Credit is appreciated.
  19. # #
  20. # # For support:
  21. # # grimoirecastle.wordpress.com
  22. # # rpgmakerweb.com
  23. #-------------------------------------------------------------------------------------------------
  24. #  ▼ 介绍
  25. #-------------------------------------------------------------------------------------------------
  26. # # 一个为Tobyej写的小脚本,可以让物品给予使用者或目标一定的经验值
  27. # # 事实上对技能也适用(??).
  28. #-------------------------------------------------------------------------------------------------
  29. #  ▼ 使用方法
  30. #-------------------------------------------------------------------------------------------------
  31. # # 使用物品备注:
  32. # # <target_exp: x>   给予目标x点exp
  33. # # <target_exp%: x>   给予目标需要到下一级的x%的exp
  34. # # <user_exp: x>   给予使用者x点exp
  35. # # <user_exp%: x>   给予使用者需要到下一级的x%的exp
  36. #-------------------------------------------------------------------------------------------------
  37. #  ▼ COMPATIBILITY
  38. #-------------------------------------------------------------------------------------------------
  39. # # List of aliases and overwrites:
  40. # #
  41. # # DataManager
  42. # # load_database (alias)
  43. # # load_expbag_notetags (new method)
  44. # #
  45. # # RPG::UsableItem
  46. # # load_expbag_notetags (new method)
  47. # # exp_user (new attr method)
  48. # # exp_user_dyn (new attr method)
  49. # # exp_target (new attr method)
  50. # # exp_target_dyn (new attr method)
  51. # #
  52. # # Game_Actor
  53. # # item_test (alias)
  54. # # item_apply (alias)
  55. # # item_user_effect (alias)
  56. #-------------------------------------------------------------------------------------------------

  57. $imported = {} if $imported.nil?
  58. $imported['KRX-EXPBag'] = true

  59. puts 'Load: EXP Bag v1.01 by Kread-EX'

  60. module KRX
  61.   
  62.   module REGEXP
  63.     EXP_GAIN_ON_HIT = /<target_exp:[ ]*(\d+)>/i
  64.     EXP_GAIN_ON_HIT_DYN = /<target_exp%:[ ]*(\d+)>/i
  65.     EXP_GAIN_ON_USE = /<user_exp:[ ]*(\d+)>/i
  66.     EXP_GAIN_ON_USE_DYN = /<user_exp%:[ ]*(\d+)>/i
  67.   end
  68.   
  69. end

  70. #===========================================================================
  71. # ■ DataManager
  72. #===========================================================================

  73. module DataManager  
  74.         #--------------------------------------------------------------------------
  75.         # ● Loads the database
  76.         #--------------------------------------------------------------------------
  77.         class << self
  78.                 alias_method(:krx_expbag_dm_load_database, :load_database)
  79.         end
  80.         def self.load_database
  81.                 krx_expbag_dm_load_database
  82.                 load_expbag_notetags
  83.         end  
  84.         #--------------------------------------------------------------------------
  85.         # ● Loads the note tags
  86.         #--------------------------------------------------------------------------
  87.         def self.load_expbag_notetags
  88.                 groups = [$data_items, $data_skills]
  89.                 for group in groups
  90.                         for obj in group
  91.                                 next if obj.nil?
  92.                                 obj.load_expbag_notetags
  93.                         end
  94.                 end
  95.                 puts "Read: EXP Bag Notetags"
  96.         end
  97. end

  98. #==========================================================================
  99. # ■ RPG::UsableItem
  100. #==========================================================================

  101. class RPG::UsableItem
  102.         #--------------------------------------------------------------------------
  103.         # ● Public instance variables
  104.         #--------------------------------------------------------------------------
  105.   attr_reader     :exp_user
  106.   attr_reader     :exp_user_dyn
  107.   attr_reader     :exp_target
  108.   attr_reader     :exp_target_dyn
  109.         #--------------------------------------------------------------------------
  110.         # ● Loads the note tags
  111.         #--------------------------------------------------------------------------
  112.         def load_expbag_notetags
  113.     @exp_user = @exp_user_dyn = 0
  114.     @exp_target = @exp_target_dyn = 0
  115.                 @note.split(/[\r\n]+/).each do |line|
  116.                         case line
  117.                         when KRX::REGEXP::EXP_GAIN_ON_HIT
  118.                                 @exp_target = $1.to_i
  119.                         when KRX::REGEXP::EXP_GAIN_ON_HIT_DYN
  120.                                 @exp_target_dyn = $1.to_i
  121.                         when KRX::REGEXP::EXP_GAIN_ON_USE
  122.                                 @exp_user = $1.to_i
  123.                         when KRX::REGEXP::EXP_GAIN_ON_USE_DYN
  124.                                 @exp_user_dyn = $1.to_i
  125.                         end
  126.                 end
  127.         end
  128. end

  129. #==========================================================================
  130. # ■ Game_Actor
  131. #==========================================================================

  132. class Game_Actor < Game_Battler
  133.   #--------------------------------------------------------------------------
  134.   # ● Searches if the item has any effect
  135.   #--------------------------------------------------------------------------
  136.   alias_method(:krx_expbag_ga_it, :item_test)
  137.   def item_test(user, item)
  138.     return true if item.exp_target > 0
  139.     return true if item.exp_target_dyn > 0
  140.     return true if item.exp_user > 0
  141.     return true if item.exp_user_dyn > 0
  142.     return krx_expbag_ga_it(user, item)
  143.   end
  144.   #--------------------------------------------------------------------------
  145.   # ● Applies the effects of a skill or item
  146.   #--------------------------------------------------------------------------
  147.   alias_method(:krx_expbag_ga_ia, :item_apply)
  148.   def item_apply(user, item)
  149.     krx_expbag_ga_ia(user, item)
  150.     gain_exp(item.exp_target) if item.exp_target > 0
  151.     if item.exp_target_dyn > 0
  152.       rate = item.exp_target_dyn / 100.00
  153.       gain_exp((next_level_exp - current_level_exp) * rate)
  154.     end
  155.   end
  156.   #--------------------------------------------------------------------------
  157.   # ● Applies the effects of the item on the user
  158.   #--------------------------------------------------------------------------
  159.   alias_method(:krx_expbag_ga_iue, :item_user_effect)
  160.   def item_user_effect(user, item)
  161.     krx_expbag_ga_iue(user, item)
  162.     user.gain_exp(item.exp_user) if item.exp_user > 0
  163.     if item.exp_user_dyn > 0
  164.       user.gain_exp(((user.next_level_exp - user.current_level_exp) *
  165.       item.exp_user_dyn / 100.00).round)
  166.     end
  167.   end
  168. end
复制代码

评分

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

查看全部评分

VA外站脚本汉化群:226308173   |    部分远古文件备份:https://wwzv.lanzoue.com/b02rac5pc  密码:acgm
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-14 14:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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