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

Project1

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

[已经解决] [已解决]另一个问题单问了

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
27 小时
注册时间
2016-8-3
帖子
15
跳转到指定楼层
1
发表于 2017-4-6 13:40:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 本子喵 于 2017-4-9 16:55 编辑

这个是一个自动复活的脚本,但是每回合只能复活一次,打游戏时候却敌人一回合干死好几次,怎么能改成每回合多次复活呢?

1.png (51.7 KB, 下载次数: 36)

1.png

Lv1.梦旅人

梦石
0
星屑
50
在线时间
27 小时
注册时间
2016-8-3
帖子
15
2
 楼主| 发表于 2017-4-6 13:47:04 | 只看该作者
还有这个能力超帅气,能把hp伤害50%转化成mp伤害,一次攻击同时造成hpmp损伤,但是却限定了技能和敌人攻击,没法添加在人物备注,怎么改能让人物常规攻击也能用呢,这个要是太难改就算了
更多图片 小图 大图
组图打开中,请稍候......
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
27 小时
注册时间
2016-8-3
帖子
15
3
 楼主| 发表于 2017-4-6 19:15:12 | 只看该作者
喵喵喵没人吗~

20160214232445_PRw8v_thumb_700_0.jpg (25.88 KB, 下载次数: 33)

20160214232445_PRw8v_thumb_700_0.jpg

点评

而且...很明显没有给全脚本嘛....  发表于 2017-4-6 20:52
那个....不要用截图把脚本截下来,直接把整个脚本复制上来或许会有人来吧=w=  发表于 2017-4-6 20:51
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
27 小时
注册时间
2016-8-3
帖子
15
4
 楼主| 发表于 2017-4-6 21:08:41 | 只看该作者

可是萌新连半窍都不通,只会按关键字搜索
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
27 小时
注册时间
2016-8-3
帖子
15
5
 楼主| 发表于 2017-4-6 21:13:31 | 只看该作者
  #--------------------------------------------------------------------------
  # ☆ オートリザレクションのメッセージの表示
  #--------------------------------------------------------------------------
  def display_autorevive_message(battler)
    return if battler.hp != 0
#~     p "オートリザレクション"
    fmt = Vocab::Revive
    add_text(sprintf(fmt, battler.name))
    wait
  end

  # ☆ オートリザレクション判定(追加定義)
  #--------------------------------------------------------------------------
  def auto_revive
    read = battler_add_ability(1)
    return false if @actor_add_cheack[1] == true
    return false if @actor_add_delay[1] > 0
    return false if @actor_add_counter[1] < 1
    @actor_add_cheack[1] = true
    read = battler_add_ability(1) # ここでやってええやろ add zorome
    return false if read[1] < rand(100) #確率判定
    return 1 if read[0] > 1  
    return read[0] if read[0] != 0
    return false
  end
  #--------------------------------------------------------------------------
  # ☆ オートリザレクション(追加定義)
  #--------------------------------------------------------------------------
  def revive_life(rper)
    if self.hp != 0
      @actor_add_cheack[1] = false
      return
    end
    self.hp = (mhp * rper).to_i
    self.mp = (mmp * rper).to_i
    #オートリザレクションステートの解除
    states.each do |state|
      if state.battler_add_ability(1)[0] != 0
        erase_state(state.id)
      end
    end   
    @actor_add_counter[1] -= 1
  end

      #オートリザレクション
      read_arr = [0,0,0,0]
      while cheak_note do
        cheak_note.match(/<オートリザレクション\s?(\d+)%\s?,\s?(\d+)%\s?,\s?(\d+)\s?,\s?(\d+)>/)
        if $1 && $2 && $3 && $4
          value = [[read_arr[0],$1.to_i].max,[read_arr[1],$2.to_i].max,[read_arr[2],$3.to_i].max,[read_arr[3],$4.to_i].max]
          read_arr = value
        end
        cheak_note = $'
      end
      battler_add = read_arr

    # オートリザレクション、踏みとどまり配列を作成
    auto_revive_battler = Array.new
    all_battle_members.each do |battler|
      push = battler.auto_revive
      auto_revive_battler.push([battler,push]) if push
    end
   

    #オートリザレクション実行
    auto_revive_battler.each do |battler_list|
      @log_window.display_autorevive_message(battler_list[0])
      battler_list[0].revive_life(battler_list[1])
      refresh_status
      @log_window.wait_and_clear
    end
   
    #オートリザレクション配列を作成
    auto_revive_battler = Array.new

      #オートリザレクション
      push = battler.auto_revive
      auto_revive_battler.push([battler,push]) if push

    #オートリザレクション実行
    auto_revive_battler.each do |battler_list|
      @log_window.display_autorevive_message(battler_list[0])
      battler_list[0].revive_life(battler_list[1])
      refresh_status
      @log_window.wait_and_clear
    end

这是萌新找到的所有关于自动复活的脚本了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
27 小时
注册时间
2016-8-3
帖子
15
6
 楼主| 发表于 2017-4-6 21:18:17 | 只看该作者
  # ● [追加]:MP同時ダメージ add zorome
  #--------------------------------------------------------------------------
  def m_double_rate
#~     rate = 0
   
    return 0 unless @note
    @note.match(/<#{DRAIN_ATTACK::MPDDR}[::](\S+)>/)
    return 0 unless $1
    return $1.to_i
   
  end # def

    # MP同時ダメージ処理 add zorome
    if item.is_a?(RPG::Skill) == true
      # temp_md_rate = user.m_double_rate # 武器防具ならこっちだが、
      temp_md_rate = item.m_double_rate # スキルなので
      if temp_md_rate > 0
        # p "Game_Battler make_damage_value item.id = #{item.id}" # add zorome
        # p "  元 value = #{value}"
        # p "  元 temp_md_rate = #{temp_md_rate}"
        temp_md_damage = value * temp_md_rate / 100
        # temp_md_damage = value * temp_md_rate * 0.01 # 少数は×
        value -= temp_md_damage.round.to_i
        value = 0 if value < 0
        # p "  temp_md_damage = #{temp_md_damage}"
        # p "  減 value = #{value}"
      end
    end

    # MP同時ダメージ処理 add zorome
    if item.is_a?(RPG::Skill) == true
      if temp_md_rate > 0
        @result.mp_damage += temp_md_damage.to_i
        @result.mp_damage = [self.mp, @result.mp_damage].min
      end
      
  # ● [追加]:MP同時ダメージ add zorome
  #--------------------------------------------------------------------------
#~   def m_double_rate
#~     rate = 0
#~     feature_objects.each do |object|
#~       data = object.note
#~       data.each_line { |line|
#~       memo = line.scan(/<#{DRAIN_ATTACK::MPDDR}[::](\S+)>/)
#~       memo = memo.flatten
#~       rate += memo[0].to_i if memo != nil && !memo.empty?
#~       }
#~     end
#~     return rate
#~   end # def
end # class
这个是帅气的mp同时伤害转换,萌新还是按搜索来的,这个要不行就算了,只是帅气,上边那个一回合多次触发自动复活更重要一些
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
10
星屑
7697
在线时间
690 小时
注册时间
2017-1-9
帖子
636

我没有哭开拓者

7
发表于 2017-4-6 22:13:23 | 只看该作者
本帖最后由 世界第一中二 于 2017-4-6 22:15 编辑

你说的这个不就是战法么
老鹰大大有帮我写过脚本,给你啦,这是第二个问题的解答
  1. #==============================================================================
  2. # ■ MP百分比抵消HP伤害的装备  by 老鹰
  3. #------------------------------------------------------------------------------
  4. #  在 武器/护甲 的备注栏填写 <Mega Ring> 即可作为此类装备
  5. #    注:多件装备下,效果会叠加
  6. #
  7. #  ---装备效果
  8. #    利用角色当前的 mp百分比 转化 所受伤害百分比 为 mp伤害
  9. #    例: mp为50点,mmp为100点,受到 40点伤害,
  10. #         则转化 (mp)50 / (mmp)100 % 伤害为 mp伤害(即 40* 50/100)
  11. #         剩余部分依旧为 hp伤害(即 40 - 40*50/100)
  12. #    注:当剩余mp不足时,溢出伤害依旧扣除hp
  13. #    注2:本实现并不考虑显示问题,请自行整合战斗系统中关于 result.mp_damage 数值的显示
  14. #
  15. #  ---实现
  16. #    在确定下为 hp伤害 后,直接最后再调整为 mp伤害
  17. #==============================================================================
  18. class Game_ActionResult
  19.   def make_mp_offset_damage(actor)
  20.     @mp_damage = (1.0 * actor.mp / actor.mmp * @hp_damage).to_i
  21.     @mp_damage = actor.mp if @mp_damage > actor.mp
  22.     @hp_damage -= @mp_damage
  23.   end
  24. end

  25. class Game_Actor < Game_Battler
  26.   alias eagle_mage_offset_make_damage make_damage_value
  27.   def make_damage_value(user, item)
  28.     eagle_mage_offset_make_damage(user, item)
  29.     check_mega_offset unless item.damage.to_mp? || @result.hp_damage < 0
  30.   end

  31.   def check_mega_offset
  32.     equips.each do |i|
  33.       next unless i
  34.       @result.make_mp_offset_damage(self) if (i.note =~ /<Mega Ring>/) != nil
  35.     end
  36.   end
  37. end
复制代码


具体效果参照我这个帖子:https://rpg.blue/forum.php?mod=viewthread&tid=399038
这个B天天摸鱼,快点来个谁把他从被窝里拖出来
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
27 小时
注册时间
2016-8-3
帖子
15
8
 楼主| 发表于 2017-4-7 00:49:27 | 只看该作者
世界第一中二 发表于 2017-4-6 22:13
你说的这个不就是战法么
老鹰大大有帮我写过脚本,给你啦,这是第二个问题的解答

不是这个不是这个,你这个是用mp抵消hp伤害,是防御,窝想要的是攻击转换
就是窝正常打敌人一下伤害100点hp,这个转换后就变成了窝打一下敌人
敌人同时损失50点hp、50点mp

点评

额!不看清楚就回答真是失败,抱歉!  发表于 2017-4-7 20:56
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
10
星屑
10963
在线时间
1400 小时
注册时间
2010-8-31
帖子
571

开拓者

9
发表于 2017-4-7 06:37:13 | 只看该作者
我大概看了一下你这个问题,给你一个解决方案,我之前一个游戏里也设计过这么一类角色,战斗中每回合结束如果处于战斗不能的状态就会自动复活。
既然你要求的是多次复活,我也可以告诉你这个办法。
要做到这个效果根本不需要用脚本,公用事件就可以了。
首先,在公用事件里面设置这么一个事件,大意就是让你的同伴自动复活。
(如果是特定同伴有这样的能力,那么有几个就设置几个)

之后在【所有的】【敌群】文件里这样设置一下,这样的效果就是每回合都会判定一次。

如果是持有特定道具才会有这样的效果的话,比如持有【身代人形】或【免死符】的时候可以自动复活一次,就需要这样设置。

可以看出这个和之前的是同一个事件,所有的设置都在这个公用事件里面改动即可。
希望能帮到你,如果这个方法遇到什么问题也可以留言问我。
相比起做游戏,更热衷于素材的加工呢。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
27 小时
注册时间
2016-8-3
帖子
15
10
 楼主| 发表于 2017-4-7 11:14:38 | 只看该作者
阿薩男爵 发表于 2017-4-7 06:37
我大概看了一下你这个问题,给你一个解决方案,我之前一个游戏里也设计过这么一类角色,战斗中每回合结束如 ...

2333~虽然很感谢前辈,但是实在不想用这个啊,那个游戏很大,敌群999个....

点评

没关系,哪种省事用哪种吧  发表于 2017-4-7 12:36
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 06:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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