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

Project1

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

[已经解决] RMXP比较难的问题?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
9 小时
注册时间
2009-7-27
帖子
5
跳转到指定楼层
1
发表于 2009-9-12 10:42:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
1.攻击吸取攻击力10%的HP
2.反弹10%的受到的伤害
3.得到 ×× 状态 攻击动画更改, ×× 状态消失,攻击动画复原

Lv1.梦旅人

风之塞尔达

梦石
0
星屑
50
在线时间
57 小时
注册时间
2005-10-22
帖子
2492

贵宾

2
发表于 2009-9-12 11:10:36 | 只看该作者
问题很简洁。。。
不过ms在我刚接触RMXP的时候就有人做出来了哦  - -,现在还在不在就不知道了
脚本要改Game_Actor的damage还是哪里的,忘记了。。。
事件的话有一个公共事件版。。 这些都是原始级的解决方案。 现在有没有更新就不知道了-  -
在程序里延续塞尔达的传说, 在画板上勾勒塞尔达的轮廓!!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
5 小时
注册时间
2007-7-19
帖子
159
3
发表于 2009-9-12 11:50:28 | 只看该作者
其实都不是太难滴
不过你问的太多了点吧?直接复制以下脚本
  1. class Game_Battler
  2.   def attack_effect(attacker)
  3.     self.critical = false
  4.     hit_result = (rand(100) < attacker.hit)
  5.     if hit_result == true
  6.       atk = [attacker.atk - self.pdef / 2, 0].max
  7.       self.damage = atk * (20 + attacker.str) / 20
  8.       self.damage *= elements_correct(attacker.element_set)
  9.       self.damage /= 100
  10.       if self.damage > 0
  11.         if rand(100) < 4 * attacker.dex / self.agi
  12.           self.damage *= 2
  13.           self.critical = true
  14.         end
  15.         if self.guarding?
  16.           self.damage /= 2
  17.         end
  18.       end
  19.       if self.damage.abs > 0
  20.         amp = [self.damage.abs * 15 / 100, 1].max
  21.         self.damage += rand(amp+1) + rand(amp+1) - amp
  22.       end
  23.       eva = 8 * self.agi / attacker.dex + self.eva
  24.       hit = self.damage < 0 ? 100 : 100 - eva
  25.       hit = self.cant_evade? ? 100 : hit
  26.       hit_result = (rand(100) < hit)
  27.     end
  28.     if hit_result == true
  29.       remove_states_shock
  30. #=============================================================================      
  31.       if self.state?(29)
  32.             attacker.damage = self.damage / 10
  33.             self.damage = self.damage * 9 / 10
  34.           end
  35. #=============================================================================         
  36.       self.hp -= self.damage
  37.       @state_changed = false
  38.       states_plus(attacker.plus_state_set)
  39.       states_minus(attacker.minus_state_set)
  40.     else
  41.       self.damage = "Miss"
  42.       self.critical = false
  43.     end
  44.     return true
  45.   end
  46. end
  47. class Scene_Battle
  48.    def update_phase4_step4
  49.     # 对像方动画
  50.     for target in @target_battlers
  51. #==========================================================================   
  52.       if @active_battler.state?(17)
  53.        target.animation_id = 1
  54.        else
  55.       target.animation_id = @animation2_id
  56.     end
  57. #==========================================================================   
  58.       target.animation_hit = (target.damage != "Miss")
  59.     end
  60.     # 限制动画长度、最低 8 帧
  61.     @wait_count = 8
  62.     # 移至步骤 5
  63.     @phase4_step = 5
  64.   end
  65.   def update_phase4_step5
  66.     @help_window.visible = false
  67.     @status_window.refresh
  68.     for target in @target_battlers
  69.       if target.damage != nil
  70.         target.damage_pop = true
  71.       end
  72.     end
  73. #=============================================================================   
  74.     if @active_battler.is_a?(Game_Actor)
  75.       for target in @target_battlers
  76.       if target.damage != nil and target.damage != "Miss"
  77.       if $data_weapons[@active_battler.weapon_id].element_set.include?(23)
  78.       @active_battler.damage = -@active_battler.atk / 10
  79.       @active_battler.hp -= @active_battler.damage
  80.       @active_battler.damage_pop = true
  81.     end
  82.   end
  83. end
  84. end
  85. for target in @target_battlers
  86. if target.state?(29)
  87.         if @active_battler.current_action.kind == 0 and target.damage != "Miss"
  88.           @active_battler.hp -= @active_battler.damage.to_i
  89.           @active_battler.damage_pop = true
  90.         end
  91.       end
  92.     end  
  93. #=============================================================================   
  94.     @phase4_step = 6
  95.   end
  96. end
复制代码
#=============表示修改处
武器带上23号属性就能吸血了,不过吸10%的攻击力好怪的说
自己带上29号状态就会反弹10%伤害,具体可以依靠防具的自动状态来实现这个效果
当有状态17时,动画会变成1号动画,我该的是默认战斗系统,所以只改了被攻击方动画,感觉这样ok了
以上你都可以自己更改,找到两个#=============之间部分,改些数字就行了
PS:下次不要问这么多了,一般是不会有人理你的
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-9 02:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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