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

Project1

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

[已经解决] 怎么用金钱来抵挡伤害的武器

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
53 小时
注册时间
2011-3-19
帖子
77
跳转到指定楼层
1
发表于 2012-2-4 17:01:01 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
就是说某一个盾,当角色佩戴的时候,受到一定伤害时,把其中一部分伤害用金钱来抵消。
比如说收到1000伤害,当金钱盾佩戴时,玩家损失200金钱,然后只有800的伤害。
配上怎么用最好,谢谢!

Lv2.观梦者

梦石
0
星屑
508
在线时间
1478 小时
注册时间
2011-9-17
帖子
1316

开拓者贵宾

13
发表于 2012-2-25 12:13:14 | 只看该作者
杂兵天下 发表于 2012-2-13 10:56
让我来接手这个问题吧
话说你有没有用LunaticDamage
有没有听说过LunaticDamage?

首先脚本大致完成了功能,但是又几个小问题;
1.先扣除钱还是HP伤害,顺序反了吧
  20-25行应该改为
  1. if $game_party.gold >= calc_me
  2.         @hp_damage -= calc_me
  3.       else
  4.         @hp_damage -= $game_party.gold
  5.       end
  6. $game_party.gain_gold(-calc_me)
复制代码
2.然后是判据,如果角色不带上防具,脚本时会报错的:
  所以17行改为:
  1. if $data_armors[@armor1_id] == X #X就是金钱盾的id
  2. #或者
  3. if $data_armors[@armor1_id] && $data_armors[@armor1_id].name=="金钱盾"
复制代码
我帖子中要有是不HX的空白,请Ctrl + A
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
66
在线时间
140 小时
注册时间
2012-2-6
帖子
384
12
发表于 2012-2-14 19:42:28 | 只看该作者
  1. class Game_Actor
  2.   def execute_damage(user)
  3.     if @hp_damage > 0
  4.       remove_states_shock
  5.       calc_me = @hp_damage/5.0
  6.       calc_me = calc_me.to_i
  7.       if $data_armors[@armor1_id].name=="金钱盾" && $game_party.gold >= calc_me
  8.         @hp_damage -= calc_me
  9.         $game_party.gain_gold(-calc_me)
  10.       end
  11.     end
  12.     self.hp -= @hp_damage
  13.     self.mp -= @mp_damage
  14.     if @absorbed
  15.       user.hp += @hp_damage
  16.       user.mp += @mp_damage
  17.     end
  18.   end#用金钱盾抵御非状态伤害。
  19.   def slip_damage_effect
  20.     if slip_damage? and @hp > 0
  21.       @hp_damage = apply_variance(maxhp / 10, 10)
  22.       @hp_damage = @hp - 1 if @hp_damage >= @hp
  23.       if $data_armors[@armor1_id].name=="金钱盾"
  24.         calc_me = @hp_damage/5.0
  25.         calc_me = calc_me.to_i
  26.         if $game_party.gold >= calc_me && @hp_damage>0
  27.           @hp_damage -= calc_me
  28.           $game_party.gain_gold(-calc_me)
  29.         end
  30.       end
  31.       self.hp -= @hp_damage
  32.     end
  33.   end#用金钱盾抵御流血、中毒状态伤害。
  34.   def apply_state_changes(obj)
  35.     plus = obj.plus_state_set
  36.     minus = obj.minus_state_set
  37.     for i in plus
  38.       next if state_resist?(i)
  39.       next if dead?
  40.       next if i == 1 and @immortal
  41.       if state?(i)
  42.         @remained_states.push(i)
  43.         next
  44.       end
  45.       if rand(100) < state_probability(i)
  46.         @querenaddstate=true
  47.         if $data_armors[@armor1_id].name=="金钱盾"
  48.           calc_me = 10000000#大额度的金钱,不要改动。
  49.           calc_me = 100 if i==8#此处假设8是眩晕状态的ID,需要消耗100钱抵挡
  50.           calc_me = 50 if i==9#此处假设9是石化状态的ID,需要消耗50钱抵挡
  51.           unless($game_party.gold<calc_me)
  52.             $game_party.gain_gold(-calc_me)
  53.             @querenaddstate=false
  54.           end
  55.         end
  56.         if @querenaddstate
  57.           add_state(i)
  58.           @added_states.push(i)
  59.         end
  60.       end
  61.     end
  62.     for i in minus
  63.       next unless state?(i)
  64.       remove_state(i)
  65.       @removed_states.push(i)
  66.     end
  67.     for i in @added_states & @removed_states
  68.       @added_states.delete(i)
  69.       @removed_states.delete(i)
  70.     end
  71.   end
  72. end
复制代码

点评

暂时先这样吧  发表于 2012-2-14 19:42
签名是什么?可以吃么?
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
53 小时
注册时间
2011-3-19
帖子
77
11
 楼主| 发表于 2012-2-14 19:17:35 | 只看该作者
本帖最后由 wabbyzw 于 2012-2-14 19:18 编辑
杂兵天下 发表于 2012-2-13 10:56
让我来接手这个问题吧
话说你有没有用LunaticDamage
有没有听说过LunaticDamage?


钱不够则不能发动,然后治疗有金钱盾的人也不会加钱,还是麻烦您把能抵挡中毒、出血、眩晕、石化这四种状态做出来。
中毒就是每回合掉血,7回合后自动回复。
出血就是每回合掉血,攻击力减少,6回合后自动回复。
眩晕就是不能攻击,5回合后自动回复。
石化就是不能攻击,加倍掉血,不能获得EXP,3回合后自动回复。
麻烦啦~
如果做出来就认可,做不出来也认可,谢谢啦~

点评

抵挡这四种状态。。。 中毒和出血可以根据出血、中毒的多少来判断扣钱 眩晕和石化怎么办?  发表于 2012-2-14 19:23
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
66
在线时间
140 小时
注册时间
2012-2-6
帖子
384
10
发表于 2012-2-13 10:56:25 | 只看该作者
本帖最后由 杂兵天下 于 2012-2-13 11:20 编辑

让我来接手这个问题吧
话说你有没有用LunaticDamage
有没有听说过LunaticDamage?
这个金钱盾是抵挡普通攻击、魔法攻击还是特技攻击?���
RUBY 代码复制
  1. class Game_Actor
  2.   def attack_effect(attacker)
  3.     clear_action_results
  4.     unless attack_effective?(attacker)
  5.       @skipped = true
  6.       return
  7.     end
  8.     if rand(100) >= calc_hit(attacker)            # 计算命中率
  9.       @missed = true
  10.       return
  11.     end
  12.     if rand(100) < calc_eva(attacker)             # 计算闪躲率
  13.       @evaded = true
  14.       return
  15.     end
  16.     make_attack_damage_value(attacker)            # 计算伤害
  17.     if $data_armors[@armor1_id].name=="金钱盾"
  18.       calc_me = @hp_damage/5.0
  19.       calc_me = calc_me.to_i
  20.       $game_party.gain_gold(-calc_me)
  21.       if $game_party.gold >= calc_me
  22.         @hp_damage -= calc_me
  23.       else
  24.         @hp_damage -= $game_party.gold
  25.       end
  26.     end
  27.     execute_damage(attacker)                      # 伤害效果
  28.     if @hp_damage == 0                            # 判断是否有物理伤害
  29.       return                                    
  30.     end
  31.     apply_state_changes(attacker)                 # 增减状态
  32.   end
  33. end

这是抵挡普通攻击的金钱盾。把代码插入脚本编辑器Main上面就可以

点评

如果你需要抵挡魔法或者抵挡特技,我可以继续做  发表于 2012-2-13 11:21
如果钱不够会怎么样呢?  发表于 2012-2-13 11:05
如果是治疗有金钱盾的人,会不会加钱?  发表于 2012-2-13 11:02

评分

参与人数 1星屑 +200 收起 理由
iisnow + 200 原创奖励

查看全部评分

签名是什么?可以吃么?
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2012-1-28
帖子
25
9
发表于 2012-2-13 07:19:04 | 只看该作者
果断放弃吧
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
53 小时
注册时间
2011-3-19
帖子
77
8
 楼主| 发表于 2012-2-11 05:49:47 | 只看该作者
他不用能抵挡异常状态,只是普通攻击才可以抵挡,大侠们都不行吗?不行我就放弃了……
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
2459 小时
注册时间
2011-12-18
帖子
1484
7
发表于 2012-2-7 21:35:13 | 只看该作者
这玩意儿的确相当麻烦,不能直接用公共事件。如果不是很必要的话,LZ放弃吧
这是一个深不见底的坑,这是一个广袤无边的坑,我才刚刚放上了一抔泥土……

《六道·陈国篇》开坑了……↓点我
回复

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4684
在线时间
5240 小时
注册时间
2009-4-29
帖子
14318

贵宾

6
发表于 2012-2-7 20:49:07 | 只看该作者
制作这效果方法是很容易,但是很烦琐。因为伤害是来自多方面的,有来自攻击,来自魔法,来自毒,来自强制伤害等等。所以和这些相关的脚本或事件都得改。
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
53 小时
注册时间
2011-3-19
帖子
77
5
 楼主| 发表于 2012-2-7 20:42:48 | 只看该作者
那快点了哈~
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 00:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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