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

Project1

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

[已经过期] 在线等!使用一个物品后,如何能让角色增加抗性,如:...

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
207 小时
注册时间
2014-8-16
帖子
132
跳转到指定楼层
1
发表于 2014-11-20 20:43:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
在线等!我想在游戏里添加一个变身卡的物品,当角色使用后能让角色增加抗性,如:抗混乱+10%、抗遗忘+8%等等???(变身卡)应该怎么弄?应该设置哪里?谢谢?

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

2
发表于 2014-11-21 17:42:25 | 只看该作者
是状态抗性?满了之后免疫这个状态?可是RMXP的状态有效度是ABCDEF6个等级来算的···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33077
在线时间
5104 小时
注册时间
2012-11-19
帖子
4878

开拓者

3
发表于 2014-11-21 23:57:53 | 只看该作者
这个没有试过:
  1. #=============================================================================
  2. # 状态防御度额外添加
  3. #
  4. # 给某个角色增加对某个状态的防御度:
  5. #          $game_party.actors[索引].set_state_ranks(状态ID, 增加的百分比)
  6. #    或:  $game_actors[索引].set_state_ranks(状态ID, 增加的百分比)
  7. #
  8. # 可以写在公共事件里,物品关联公共事件。
  9. #
  10. # 这个是永久增加,若只需临时增加,在解除时,把括号里的 增加的百分比 改成相对应
  11. #的负值(正值是增加;负值是减少)。
  12. #
  13. #=============================================================================
  14. class Game_Battler
  15.   #--------------------------------------------------------------------------
  16.   # ● 状态变化 (+) 的适用
  17.   #     plus_state_set  : 状态变化 (+)
  18.   #--------------------------------------------------------------------------
  19.   def states_plus(plus_state_set)
  20.     # 清除有效标志
  21.     effective = false
  22.     # 循环 (附加状态)
  23.     for i in plus_state_set
  24.       # 无法防御本状态的情况下
  25.       unless self.state_guard?(i)
  26.         # 这个状态如果不是 full 的话就设置有效标志
  27.         effective |= self.state_full?(i) == false
  28.         # 状态为 [不能抵抗] 的情况下
  29.         if $data_states[i].nonresistance
  30.           # 设置状态变化标志
  31.           @state_changed = true
  32.           # 附加状态
  33.           add_state(i)
  34.         # 这个状态不是 full 的情况下
  35.         elsif self.state_full?(i) == false
  36.           # 将状态的有效度变换为概率、与随机数比较
  37.           if rand(100) < self.state_ranks[i]
  38.             # 设置状态变化标志
  39.             @state_changed = true
  40.             # 附加状态
  41.             add_state(i)
  42.           end
  43.         end
  44.       end
  45.     end
  46.     # 过程结束
  47.     return effective
  48.   end
  49. end
  50. #=============================================================================
  51. class Game_Actor < Game_Battler
  52.   #--------------------------------------------------------------------------
  53.   # ● 设置
  54.   #     actor_id : 角色 ID
  55.   #--------------------------------------------------------------------------
  56.   alias add_setup_xdrs setup
  57.   def setup(actor_id)
  58.     add_setup_xdrs(actor_id)
  59.     @state_ranks = [0]
  60.     for i in 1...$data_states.size
  61.       @state_ranks[i] = [0,100,80,60,40,20,0]$data_classes[@class_id].state_ranks[i]
  62.     end
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● 获取状态有效度
  66.   #--------------------------------------------------------------------------
  67.   def state_ranks
  68.     return @state_ranks
  69.   end
  70.   #--------------------------------------------------------------------------
  71.   # ● 改变状态有效度
  72.   # state_id  :状态ID。
  73.   # rate      :增加的量。(正值增加对该状态的防御;负值渐少对该状态的防御)
  74.   #--------------------------------------------------------------------------
  75.   def set_state_ranks(state_id, rate)
  76.     return if @state_ranks[state_id].nil?
  77.     @state_ranks[state_id] = [[@state_ranks[state_id]-rate, 0].max, 100].min
  78.   end
  79.   #--------------------------------------------------------------------------
  80.   # ● 更改职业 ID
  81.   #     class_id : 新的职业 ID
  82.   #--------------------------------------------------------------------------
  83.   def class_id=(class_id)
  84.     if $data_classes[class_id] != nil
  85.       @class_id = class_id
  86.       @state_ranks = [0]
  87.       for i in 1...$data_states.size
  88.         @state_ranks[i] = [0,100,80,60,40,20,0]$data_classes[@class_id].state_ranks[i]
  89.       end
  90.       # 避开无法装备的物品
  91.       unless equippable?($data_weapons[@weapon_id])
  92.         equip(0, 0)
  93.       end
  94.       unless equippable?($data_armors[@armor1_id])
  95.         equip(1, 0)
  96.       end
  97.       unless equippable?($data_armors[@armor2_id])
  98.         equip(2, 0)
  99.       end
  100.       unless equippable?($data_armors[@armor3_id])
  101.         equip(3, 0)
  102.       end
  103.       unless equippable?($data_armors[@armor4_id])
  104.         equip(4, 0)
  105.       end
  106.     end
  107.   end
  108. end
  109. #==============================================================================
  110. class Game_Enemy < Game_Battler
  111.   #--------------------------------------------------------------------------
  112.   # ● 初始化对像
  113.   #     troop_id     : 循环 ID
  114.   #     member_index : 循环成员的索引
  115.   #--------------------------------------------------------------------------
  116.   alias add_initialize_xdrs initialize
  117.   def initialize(troop_id, member_index)
  118.     add_initialize_xdrs(troop_id, member_index)
  119.     @state_ranks = [0]
  120.     for i in 1...$data_states.size
  121.       @state_ranks[i] = [0,100,80,60,40,20,0]$data_enemies[@enemy_id].state_ranks[i]
  122.     end
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ● 获取状态有效度
  126.   #--------------------------------------------------------------------------
  127.   def state_ranks
  128.     return @state_ranks
  129.   end
  130.   #--------------------------------------------------------------------------
  131.   # ● 改变状态有效度
  132.   # state_id  :状态ID。
  133.   # rate      :增加的量。(正值增加对该状态的防御;负值渐少对该状态的防御)
  134.   #--------------------------------------------------------------------------
  135.   def set_state_ranks(state_id, rate)
  136.     return if @state_ranks[state_id].nil?
  137.     @state_ranks[state_id] = [[@state_ranks[state_id]-rate, 0].max, 100].min
  138.   end
  139. end
  140. #==============================================================================
复制代码

点评

楼主在线等了一天233  发表于 2014-11-22 00:39
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
207 小时
注册时间
2014-8-16
帖子
132
4
 楼主| 发表于 2014-11-22 19:37:55 | 只看该作者
芯☆淡茹水 发表于 2014-11-21 23:57
这个没有试过:

谢谢,由于刚开电脑,就看到你的回复,我试试。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
207 小时
注册时间
2014-8-16
帖子
132
5
 楼主| 发表于 2014-11-22 20:00:09 | 只看该作者
芯☆淡茹水 发表于 2014-11-21 23:57
这个没有试过:

能否举个范例。谢谢!
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33077
在线时间
5104 小时
注册时间
2012-11-19
帖子
4878

开拓者

6
发表于 2014-11-22 21:00:00 | 只看该作者
貌似是这样子:
Project1.rar (414.94 KB, 下载次数: 43)

评分

参与人数 1星屑 +200 收起 理由
RyanBern + 200 塞糖

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-22 15:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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