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

Project1

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

【XP】裝備會自動回血及回魔

[复制链接]

Lv2.观梦者

梦石
0
星屑
448
在线时间
628 小时
注册时间
2011-9-27
帖子
3996
11
发表于 2011-12-20 19:34:42 | 只看该作者
范例,你自己研究下,按照6楼制作的,证实可行,增加17 18 19号状态 附加到 铜盾 铁盾 钢盾上
装备上铜盾 铁盾 钢盾 分别获得每回合10% 20% 30% 回血状态

测试回复.rar

186.86 KB, 下载次数: 29

点评

简单就好  发表于 2011-12-20 19:39
状态法唯一的缺点就是对武器没辙,唉  发表于 2011-12-20 19:37
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
113 小时
注册时间
2008-3-25
帖子
204
12
 楼主| 发表于 2011-12-20 21:28:04 | 只看该作者
是成功了!
不過我要改屬性的編號位置會出錯耶!
我想改在51~80間
要怎調?
選擇是隨時都在進行的~不同的選擇造就了不同的未來~即使在微小的事~也能產生改變未來漣漪~~~
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
448
在线时间
628 小时
注册时间
2011-9-27
帖子
3996
13
发表于 2011-12-20 21:55:58 | 只看该作者
本帖最后由 小白玩家 于 2011-12-20 21:58 编辑
銀藍色的零 发表于 2011-12-20 21:28
是成功了!
不過我要改屬性的編號位置會出錯耶!
我想改在51~80間


状态还是防具编号?
  1. #--------------------------------------------------------------------------
  2.    # ● 应用连续伤害效果
  3.    #--------------------------------------------------------------------------
  4.    def slip_damage_effect
  5.        if self.states.include?(17) #状态编号
  6.         self.damage = - self.maxhp / 10
  7.           self.hp -= self.damage
  8.         elsif self.states.include?(18)#状态编号
  9.           self.damage = - self.maxsp / 5
  10.           self.sp -= self.damage
  11.        elsif self.states.include?(19) #状态编号
  12.          self.damage = - self.maxhp / 3
  13.           self.hp -= self.damage  
  14.       else#下面就是默认的毒
  15.      # 设置伤害
  16.      self.damage = self.maxhp / 10
  17.      # 分散
  18.      if self.damage.abs > 0
  19.        amp = [self.damage.abs * 15 / 100, 1].max
  20.        self.damage += rand(amp+1) + rand(amp+1) - amp
  21.      end
  22.      # HP 的伤害减法运算
  23.      self.hp -= self.damage
  24.    end  
  25.      # 过程结束
  26.      return true
  27.    end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
113 小时
注册时间
2008-3-25
帖子
204
14
 楼主| 发表于 2011-12-20 22:13:36 | 只看该作者
本帖最后由 銀藍色的零 于 2011-12-20 22:32 编辑

恩!我使用六樓的也成功了
戰鬥時回自動回複
不過在地圖上會有像中毒一樣閃紅光出現~囧|||
也會損血耶?


10樓的部分是
還有分唷?
他是使用屬性的勾選
照他內定的1~6使用是正常的
我改成51~80
就出錯了

点评

好吧 等待10楼解答吧,我就一打酱油的 囧  发表于 2011-12-20 22:15
選擇是隨時都在進行的~不同的選擇造就了不同的未來~即使在微小的事~也能產生改變未來漣漪~~~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
47
在线时间
976 小时
注册时间
2011-4-30
帖子
860
15
发表于 2011-12-21 00:26:33 | 只看该作者
本帖最后由 羞射了 于 2011-12-21 00:32 编辑
羞射了 发表于 2011-12-19 04:11
用状态法实现,首先设置几个你需要的状态,设置好名字,都打钩连续伤害,不能抵抗,就类似默认的那个毒,将 ...


不知道你的游戏是否会用到地图上中毒减血的判定,如果用不到,
可以直接搜索$game_party.check_map_slip_damage
把它#注释掉就行;

如果需要用到,则还需要详细修改搜索

  #--------------------------------------------------------------------------
  # ● 检查连续伤害 (地图用)
  #--------------------------------------------------------------------------
  def check_map_slip_damage
    for actor in @actors
         dot = [X]
         actor_slip_damage = false
         for i in 0..dot.size
          if actor.states.include?(dot)
             actor_slip_damage = true
           end
         end  
      if actor.hp > 0 and actor_slip_damage == true


        actor.hp -= [actor.maxhp / 100, 1].max
        if actor.hp == 0
          $game_system.se_play($data_system.actor_collapse_se)
        end
        $game_screen.start_flash(Color.new(255,0,0,128), 4)
        $game_temp.gameover = $game_party.all_dead?
      end
      
    end
  end

然后dot =[]里面填写毒类技能的编号,其他则不算做毒,地图上就不掉血了。

评分

参与人数 1星屑 +200 梦石 +2 收起 理由
月夜神音 + 200 + 2 认可答案

查看全部评分

湿滑落式骑!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
94 小时
注册时间
2011-7-2
帖子
79
16
发表于 2011-12-21 11:46:30 | 只看该作者
本帖最后由 凌空飘雪 于 2011-12-21 11:49 编辑

对照下之前的,你以后应该就能自己改了(多关注下¥¥标记的部分)
【51..70】分别回复HP10%20%30%……【71..90】SP10%20%30%……
if @active_battler.is_a?(Game_Actor)
      @魔法回复 = 0
      @生命回复 = 0
      for i in 51..90  #回复效果对应的属性ID (¥¥这是总共的属性ID集合)  
      if i < 71      #回复效果为HP的(¥¥这是用来分割成2部分的属性ID)
       case i  #(¥¥这是开始处理具体的属性ID)
        when 51
          @生命的百分比 = 10
        when 52
          @生命的百分比 = 20
        when 53
          @生命的百分比 = 30
        when 54
           @生命的百分比 = 40  #(¥¥ 就这样一直写下去,我就不一一写了)
     else             #(¥¥ 新添的,看你ID弄那么多,如果有些ID你还不想填具体数值,那程序会按下面的处理)
          @生命的百分比 = 0    #(¥¥ ID没有对应的具体数值时,回复率为0)
      end  #¥¥这下面的倒是不用管,原本就已经是优化过的写法,直接看魔法的吧
        if @active_battler.armor1_id != 0
       if  $data_armors[@active_battler.armor1_id].guard_element_set.include?(i)
        @生命回复 += @active_battler.maxhp* @生命的百分比 /100
      end
      end
     if @active_battler.armor2_id != 0
      if $data_armors[@active_battler.armor2_id].guard_element_set.include?(i)
        @生命回复 += @active_battler.maxhp* @生命的百分比 /100
      end
    end
     if @active_battler.armor3_id != 0
      if $data_armors[@active_battler.armor3_id].guard_element_set.include?(i)
        @生命回复 += @active_battler.maxhp* @生命的百分比 /100
      end
    end
     if @active_battler.armor4_id != 0
      if $data_armors[@active_battler.armor4_id].guard_element_set.include?(i)
       @生命回复 += @active_battler.maxhp* @生命的百分比 /100
     end
   end
      if @active_battler.weapon_id != 0
      if $data_weapons[@active_battler.weapon_id].element_set.include?(i)
        @生命回复 += @active_battler.maxhp* @生命的百分比 /100
      end
      end
      elsif  i <= 90  #回复效果为SP时 #(¥¥就是回复效果的属性ID到哪为止
        case i
        when 71
          @魔法的百分比 = 10
        when 72
          @魔法的百分比 = 20
        when 73
          @魔法的百分比 = 30
        when 74
           @魔法的百分比 = 40  #(¥¥ 也是这样一直写下去,我也不一一写了,反正写了你也会改掉)
          else             #(¥¥新添的,看你ID弄那么多,如果有些ID你还不想填具体数值,那程序会按下面的处理)
      @魔法的百分比 = 0    #(¥¥ID没有对应的具体数值时,回复率为0)OK,完事了
     end
        
         if @active_battler.armor1_id != 0
       if $data_armors[@active_battler.armor1_id].guard_element_set.include?(i)
        @魔法回复 += @active_battler.maxsp* @魔法的百分比 /100
      end
    end
     if @active_battler.armor2_id != 0
      if $data_armors[@active_battler.armor2_id].guard_element_set.include?(i)
        @魔法回复 += @active_battler.maxsp* @魔法的百分比 /100
      end
    end
     if @active_battler.armor3_id != 0
      if $data_armors[@active_battler.armor3_id].guard_element_set.include?(i)
        @魔法回复 += @active_battler.maxsp* @魔法的百分比 /100
      end
    end
     if @active_battler.armor4_id != 0
      if $data_armors[@active_battler.armor4_id].guard_element_set.include?(i)
       @魔法回复 += @active_battler.maxsp* @魔法的百分比 /100
     end
   end
      if @active_battler.weapon_id != 0
      if $data_weapons[@active_battler.weapon_id].element_set.include?(i)
        @魔法回复 += @active_battler.maxsp* @魔法的百分比 /100
      end
      end
    end
    end
             @active_battler.sp +=  @魔法回复
        @active_battler.damage = -@生命回复
        @active_battler.hp -= @active_battler.damage
        @active_battler.damage_pop = true
    end

评分

参与人数 1星屑 +200 梦石 +2 收起 理由
月夜神音 + 200 + 2 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-24 10:03

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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