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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: wabbyzw
打印 上一主题 下一主题

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

[复制链接]

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
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
签名是什么?可以吃么?
回复

使用道具 举报

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
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-28 05:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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