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

Project1

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

[已经过期] 仿手机网游天龙八部自动加血自动加蓝

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
865 小时
注册时间
2010-6-27
帖子
131
跳转到指定楼层
1
发表于 2013-5-8 17:40:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
在rm上实现这种效果,怎么设置简单点,用脚本还是事件方便点,具体就是用一个变量作为血库,战斗胜利后补充角色hp(sp),补完了就没了,如果不够的话,按照队伍顺序补血,如果角色死亡则不补,直接跳到下一个。

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

2
发表于 2013-5-8 18:35:44 | 只看该作者
用事件吧,战斗结束后执行公共事件,挨个计算每个活着角色的缺失血量,然后和变量选一个更小的值,然后把这个值恢复给这个角色,变量减去这个值。
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33620
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

3
发表于 2013-5-9 00:11:04 | 只看该作者
本帖最后由 芯☆淡茹水 于 2013-5-9 01:49 编辑

    LS是事件,本楼是脚本。(事件,脚本都有了)


下面的脚本是在战斗场景胜利后插入了一段(因为比较简单,未测试)


复制下面的脚本,插入 main 前。

RUBY 代码复制
  1. #==============================================================================
  2. # 储存回复 HP 血量的变量 ID
  3. VAR_HP = 1
  4. # 储存回复 SP 血量的变量 ID
  5. VAR_SP = 2
  6. #  战斗不能的状态 ID ,加HP/SP时排除死亡角色。
  7. DEAD_ID = 1
  8. #==============================================================================
  9. class Scene_Battle
  10.   def battle_end(result)
  11.     # 清除战斗中标志
  12.     $game_temp.in_battle = false
  13.     # 清除全体同伴的行动
  14.     $game_party.clear_actions
  15.     # 解除战斗用状态
  16.     for actor in $game_party.actors
  17.       actor.remove_states_battle
  18.     end
  19.     # 清除敌人
  20.     $game_troop.enemies.clear
  21.     # 调用战斗返回
  22.     if $game_temp.battle_proc != nil
  23.       $game_temp.battle_proc.call(result)
  24.       $game_temp.battle_proc = nil
  25.     end
  26.     ###########################################################################
  27.     #  HP
  28.     if $game_variables[VAR_HP] > 0
  29.       for i in 0...$game_party.actors.size
  30.         if $game_variables[VAR_HP] == 0
  31.           break
  32.         end
  33.         actor = $game_party.actors[i]
  34.         if not actor.state?(DEAD_ID) and actor.hp < actor.maxhp
  35.           if actor.maxhp - actor.hp <= $game_variables[VAR_HP]
  36.             renew_hp = actor.maxhp - actor.hp
  37.           else
  38.             renew_hp = $game_variables[VAR_HP]
  39.           end
  40.           $game_variables[VAR_HP] -= renew_hp
  41.           actor.hp += renew_hp
  42.         end
  43.       end
  44.     end
  45.     #  SP
  46.     if $game_variables[VAR_SP] > 0
  47.       for i in 0...$game_party.actors.size
  48.         if $game_variables[VAR_SP] == 0
  49.           break
  50.         end
  51.         actor = $game_party.actors[i]
  52.         if not actor.state?(DEAD_ID) and actor.sp < actor.maxsp
  53.           if actor.maxsp - actor.sp <= $game_variables[VAR_SP]
  54.             renew_sp = actor.maxsp - actor.sp
  55.           else
  56.             renew_sp = $game_variables[VAR_SP]
  57.           end
  58.           $game_variables[VAR_SP] -= renew_sp
  59.           actor.sp += renew_sp
  60.         end
  61.       end
  62.     end
  63.     ###########################################################################
  64.     # 切换到地图画面
  65.     $scene = Scene_Map.new
  66.   end
  67. end
  68. #===============================================================================

评分

参与人数 1星屑 +12 收起 理由
Zhangjiaxing1 + 12 不错

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

4
发表于 2013-5-9 07:05:36 | 只看该作者
本帖最后由 亿万星辰 于 2013-5-9 07:18 编辑
  1. for actor in $game_party.actors
  2.   break if $game_variables[VAR_HP] <= 0 and $game_variables[VAR_SP] <= 0
  3.   unless actor.dead?
  4.     recoverhp = [actor.maxhp - actor.hp, $game_variables[VAR_HP]].min
  5.     recoversp = [actor.maxsp - actor.sp, $game_variables[VAR_SP]].min
  6.     actor.hp += recoverhp
  7.     actor.sp += recoversp
  8.     $game_variables[VAR_HP] -= recoverhp
  9.     $game_variables[VAR_SP] -= recoversp
  10.   end
  11. end
复制代码
精简了一下中间的部分,楼上也可以看下~@芯☆淡茹水  

点评

不错,确实简洁。  发表于 2013-5-9 23:31

评分

参与人数 1星屑 +6 收起 理由
Zhangjiaxing1 + 6 这个简洁

查看全部评分

我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
865 小时
注册时间
2010-6-27
帖子
131
5
 楼主| 发表于 2013-5-9 11:26:32 | 只看该作者
我想到一个:
   for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]  
     if not actor.state?(1)
       if actor.maxhp - actor.hp > $game_variables[1]
         actor.hp += $game_variables[1]
        $game_variables[1] = 0
       else
       $game_variables[1] -= actor.maxhp - actor.hp
       actor.hp  = actor.maxhp
    end
   end
end

点评

条条大路通罗马  发表于 2013-5-9 23:32
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

6
发表于 2013-5-11 12:21:48 | 只看该作者
楼主难道还是没解决吗?这个问题可以设定成已经解决了@hcm @hys111111  

点评

解决了,我不知道怎么设置  发表于 2013-5-13 08:46
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-26 12:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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