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

Project1

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

[原创发布] 喜闻乐见的状态回血回蓝脚本

[复制链接]

Lv2.观梦者

梦石
0
星屑
413
在线时间
214 小时
注册时间
2011-3-21
帖子
161
跳转到指定楼层
1
发表于 2014-6-30 14:45:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 1095884734 于 2014-6-30 14:47 编辑

今天一个朋友叫我去写个用状态回血的脚本 本人比较懒所以直接去找了
找了找发现好像还真没有这样的脚本……只能动手打了
以下是脚本
RUBY 代码复制
  1. #喜闻乐见的状态回血回蓝脚本
  2. #常数写"xx",百分比写"xx%"
  3. #↓具体方法请藏考帮助文档-脚本入门-基础篇-哈希表
  4. $自动回蓝状态 = {
  5. 17 => "50",18 => "50%"
  6. }
  7. $自动回血状态 = {
  8. 19 => "50",20 => "50%"
  9. }
  10. class Game_Battler
  11.   #--------------------------------------------------------------------------
  12.   # ● 判断状态 [自动回血]
  13.   #--------------------------------------------------------------------------
  14.   def 回血?
  15.     for i in @states
  16.       if $自动回血状态.include?(i)
  17.         @i = i
  18.         return true
  19.       end
  20.     end
  21.     return false
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 判断状态 [自动回蓝]
  25.   #--------------------------------------------------------------------------
  26.   def 回蓝?
  27.     for i in @states
  28.       if $自动回蓝状态.include?(i)
  29.         @i = i
  30.         return true
  31.       end
  32.     end
  33.     return false
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ● 应用回血
  37.   #--------------------------------------------------------------------------
  38.   def 自动回血
  39.     # 设置伤害
  40.    if $自动回血状态[@i].split(/%/)[1]
  41.     self.damage = self.maxhp * ($自动回血状态[@i].split(/%/)[0].to_i / 100)
  42.   else
  43.     self.damage = $自动回血状态[@i].split(/%/)[0].to_i
  44.   end
  45.    # 分散
  46.     if self.damage.abs > 0
  47.       amp = [self.damage.abs * 15 / 100, 1].max
  48.       self.damage += rand(amp+1) + rand(amp+1) - amp
  49.     end
  50.     # SP 的伤害减法运算
  51.     self.hp += self.damage
  52.     # 过程结束
  53.     return true
  54.   end
  55.   #--------------------------------------------------------------------------
  56.   # ● 应用回蓝
  57.   #--------------------------------------------------------------------------
  58.   def 自动回蓝
  59.     # 设置伤害
  60.    if $自动回蓝状态[@i].split(/%/)[1]
  61.     self.damage = self.maxsp * ($自动回蓝状态[@i].split(/%/)[0].to_i / 100)
  62.   else
  63.     self.damage = $自动回蓝状态[@i].split(/%/)[0].to_i
  64.   end
  65.    # 分散
  66.     if self.damage.abs > 0
  67.       amp = [self.damage.abs * 15 / 100, 1].max
  68.       self.damage += rand(amp+1) + rand(amp+1) - amp
  69.     end
  70.     # SP 的伤害减法运算
  71.     self.sp += self.damage
  72.     # 过程结束
  73.     return true
  74.   end
  75. end
  76.  
  77. class Scene_Battle
  78.   #--------------------------------------------------------------------------
  79.   # ● 刷新画面 (主回合步骤 1 : 准备行动)
  80.   #--------------------------------------------------------------------------
  81.   def update_phase4_step1
  82.     # 隐藏帮助窗口
  83.     @help_window.visible = false
  84.     # 判定胜败
  85.     if judge
  86.       # 胜利或者失败的情况下 : 过程结束
  87.       return
  88.     end
  89.     # 强制行动的战斗者不存在的情况下
  90.     if $game_temp.forcing_battler == nil
  91.       # 设置战斗事件
  92.       setup_battle_event
  93.       # 执行战斗事件中的情况下
  94.       if $game_system.battle_interpreter.running?
  95.         return
  96.       end
  97.     end
  98.     # 强制行动的战斗者存在的情况下
  99.     if $game_temp.forcing_battler != nil
  100.       # 在头部添加后移动
  101.       @action_battlers.delete($game_temp.forcing_battler)
  102.       @action_battlers.unshift($game_temp.forcing_battler)
  103.     end
  104.     # 未行动的战斗者不存在的情况下 (全员已经行动)
  105.     if @action_battlers.size == 0
  106.       # 开始同伴命令回合
  107.       start_phase2
  108.       return
  109.     end
  110.     # 初始化动画 ID 和公共事件 ID
  111.     @animation1_id = 0
  112.     @animation2_id = 0
  113.     @common_event_id = 0
  114.     # 未行动的战斗者移动到序列的头部
  115.     @active_battler = @action_battlers.shift
  116.     # 如果已经在战斗之外的情况下
  117.     if @active_battler.index == nil
  118.       return
  119.     end
  120.     # 连续伤害
  121.     if @active_battler.hp > 0 and @active_battler.slip_damage?
  122.       @active_battler.slip_damage_effect
  123.       @active_battler.damage_pop = true
  124.     end
  125.     if @active_battler.hp > 0 and @active_battler.回蓝?
  126.       @active_battler.自动回蓝
  127.       @active_battler.damage_pop = true
  128.     end
  129.     if @active_battler.hp > 0 and @active_battler.回血?
  130.       @active_battler.自动回血
  131.       @active_battler.damage_pop = true
  132.     end
  133.     # 自然解除状态
  134.     @active_battler.remove_states_auto
  135.     # 刷新状态窗口
  136.     @status_window.refresh
  137.     # 移至步骤 2
  138.     @phase4_step = 2
  139.   end
  140.   end

测试用的范例实在是不堪入目所以不提供
就是这样喜闻乐见……
欢迎吐槽……
[新人第一帖求糖~~]

点评

有问题了:50和50%回的血是一样多的...都是50点血  发表于 2014-8-24 16:33

评分

参与人数 3星屑 +120 收起 理由
kuerlulu + 15 塞糖
未命名 + 60 这样的“新手”值得鼓励……
凝冰剑斩 + 45 塞糖

查看全部评分

签名是什么 好吃么
好吃

Lv4.逐梦者

梦石
7
星屑
1113
在线时间
334 小时
注册时间
2008-1-28
帖子
1566
2
发表于 2014-6-30 14:53:58 | 只看该作者
本帖最后由 未命名 于 2014-6-30 15:12 编辑

这个很早就有了……
不是找了很久没找到的新手,而是懒到“干脆我自己编一个好了”的大神吧!
这才是 喜闻乐见……我看着你的注册时间说到。

最近的“考场1”有这个题目,该不会拜托你的那个家伙……

————————————————————————————————————
好吧,仔细看一下确实有些个性,找不到的是指这种可以自定义的效果吗?
可以百分比,也可以固定数值,自动找到特定的回血状态……
相比传统方法来说,不,我试一试在评价。
————————————————————————————————————
好的,说说缺点
self.damage是正数的话,看起来就像受了伤一样,
改self.hp += self.damage为 减少 ,然后self.damage改为负,就像回血了。

然后多个状态累加HP的回复,只有百分比的有效,但是只显示最后一次加血。
建议改为将在确认完毕之前把所有要加的血加在一起,然后显示大数值。
这样更自由。

那么,相比传统方法的优点,就是对新手方便设置了。

——————————————————————————————————
嘿嘿!也就是说你还可以把SP的回复也显示出来的话,这就超棒了啊!

点评

考场1里面那个题是要每回合开始才回血,这个应该是和中毒一样,到行动了再回血。如果直接放上去我想字母君会扣分的。  发表于 2014-7-1 09:53
好的……我去改改  发表于 2014-6-30 15:21
这个可以放心了……他只是用在游戏里……  发表于 2014-6-30 14:58

评分

参与人数 2星屑 +71 收起 理由
RyanBern + 66 评价得好认真
1095884734 + 5 喜闻乐见

查看全部评分

终于有可以放在这里的游戏了……
极短13 新生 《箱子新世界》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
45 小时
注册时间
2010-8-21
帖子
53
3
发表于 2014-6-30 16:30:46 | 只看该作者
学习一下,谢谢分享,初学脚本,很多地方还不是看的太明白~~~~~~先回复,再研究看看~~~~~~~~~
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
13106
在线时间
3788 小时
注册时间
2013-7-18
帖子
2279
4
发表于 2014-8-24 16:27:07 | 只看该作者
挺好用的,唯一不足的是,回血现实是红色的,也就是被打的抠血的颜色,在哪改曾绿色
山岚野人,快人快语,礼数不周,还望海涵....
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2016-9-30
帖子
9
5
发表于 2017-1-18 20:36:07 | 只看该作者
哪个状态是自动恢复

点评

在脚本说明里看  发表于 2017-2-6 22:16
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-28 00:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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