Project1

标题: HP 恢复的问题 [打印本页]

作者: 迅雷進    时间: 2008-8-15 04:48
标题: HP 恢复的问题
首先,
这是小弟的第1000个帖子,
在此先撒撒花吧~ {/se} {/se}
[LINE]1,#dddddd[/LINE]问题来了,
请问如何能够做到就是在地图上步行时能够自动恢复HP(少许少许恢复)呢?
请前辈们指教~ {/gg} {/gg} [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 零下八度    时间: 2008-8-15 04:53
提示: 作者被禁止或删除 内容自动屏蔽
作者: dbshy    时间: 2008-8-15 05:01
def update
    # 本地变量记录移动信息
    last_moving = moving?
    # 移动中、事件执行中、强制移动路线中、
    # 信息窗口一个也不显示的时候
    unless moving? or $game_system.map_interpreter.running? or
           @move_route_forcing or $game_temp.message_window_showing
           
      # 如果方向键被按下、主角就朝那个方向移动
      case Input.dir4
      when 2
        $game_party.actors[id].hp += ..
             move_down
      when 4
        $game_party.actors[id].hp += ..
                   move_left
      when 6
        $game_party.actors[id].hp += ..
                 move_right
      when 8
        $game_party.actors[id].hp += ..
           move_up
      end
    end
作者: ONEWateR    时间: 2008-8-15 05:05
在Game_Player
212 判断加上...
        for actor in $game_party.actors
          if actor.hp0?
            else
           actor.hp += 数值
          end
        end



作者: 灯笼菜刀王    时间: 2008-8-15 05:10
用事件来做就是地图上放个并行事件

当脚本分歧:$game_player.moving?
           全员HP + 1
            结束
在脚本里就是在scene_map下找到 unless $game_player.moving?这段,把它的end改成else,
然后下面加上for actor in $game_party.actors
               actor.hp += 1
            end
嫌走一步加一点太多的话。就在前面多个变量  a += 1  if a % 10 == 0 再加HP,这样每10步才加1点。
作者: ONEWateR    时间: 2008-8-15 05:16
以下引用灯笼菜刀王于2008-8-14 21:10:02的发言:

用事件来做就是地图上放个并行事件

当脚本分歧:$game_player.moving?
          全员HP + 1
           结束
在脚本里就是在scene_map下找到 unless $game_player.moving?这段,把它的end改成else,
然后下面加上for actor in $game_party.actors
              actor.hp += 1
           end
嫌走一步加一点太多的话。就在前面多个变量  a += 1  if a % 10 == 0 再加HP,这样每10步才加1点。


这个应该不能保证死了的队员...
作者: 灯笼菜刀王    时间: 2008-8-15 05:27
以下引用ONEWateR于2008-8-14 21:16:49的发言:
这个应该不能保证死了的队员...

= =忽略了这点,多谢提醒~~~

在actor.hp += 1套个if actor.hp > 0......
作者: 迅雷進    时间: 2008-8-15 06:13
抱歉,
前辈们,
我写少了一样东西,
那就是当角色装上了某个装备才会有这个情况出现… {/gg} {/gg}
作者: 灯笼菜刀王    时间: 2008-8-15 06:21
-。-那就在if actor.hp > 0 的前面再套个
if actor.weapon_id == XX #武器
if actor.armor1_id == XX #盾
if actor.armor2_id == XX #帽子
if actor.armor3_id == XX #衣服
if actor.armor4_id == XX #首饰

-。-看情况自己if~~~  ONEWateR君的也可以这样分歧。dbshy君的就要另外写了-。-
作者: 迅雷進    时间: 2008-8-15 06:41
我把脚本写在 Scene_Map 里,
不过发现了一个问题,
那就是当角色没有移动的时候,
HP 仍然会自动恢复的说… {/gg} {/gg}
作者: 灯笼菜刀王    时间: 2008-8-15 06:50
以下引用迅雷進于2008-8-14 22:41:48的发言:

我把脚本写在 Scene_Map 里,
不过发现了一个问题,
那就是当角色没有移动的时候,
HP 仍然会自动恢复的说…   

unless $game_player.moving?
      # 执行各种画面的调用
      if $game_temp.battle_calling
        call_battle
      elsif $game_temp.shop_calling
        call_shop
      elsif $game_temp.name_calling
        call_name
      elsif $game_temp.menu_calling
        call_menu
      elsif $game_temp.save_calling
        call_save
      elsif $game_temp.debug_calling
        call_debug
      else#这里的end改为else
       那些东西加到这里来。
       end
    end

这样应该就只有移动的时候才能恢复吧.....- -.....
作者: 迅雷進    时间: 2008-8-15 06:53
对啊,
但是站着都会自动恢复的说。
这是小弟所写的脚本。
请前辈过目… {/gg} {/gg}

  1.     unless $game_player.moving?
  2.       # 执行各种画面的调用
  3.       if $game_temp.battle_calling
  4.         call_battle
  5.       elsif $game_temp.shop_calling
  6.         call_shop
  7.       elsif $game_temp.name_calling
  8.         call_name
  9.       elsif $game_temp.menu_calling
  10.         call_menu
  11.       elsif $game_temp.save_calling
  12.         call_save
  13.       elsif $game_temp.debug_calling
  14.         call_debug
  15.       else
  16.         for actor in $game_party.actors
  17.           if actor.armor4_id == 165 #首饰
  18.             if actor.hp > 0
  19.               actor.hp += 1
  20.             end
  21.           end
  22.         end
  23.       end
  24.     end
  25.   end
复制代码

作者: 灯笼菜刀王    时间: 2008-8-15 07:09
= =PAI自己.....

unless $game_player.moving?
     # 执行各种画面的调用
     if $game_temp.battle_calling
else 是在给这个分歧= =...
     这样写是,当角色不移动,且不在战斗中的时候加HP......走起来反而不加...

-3-不如条件改为站着才能恢复,走路不恢复如何??




开个玩笑-v-
unless $game_player.moving?
      # 执行各种画面的调用
      if $game_temp.battle_calling
        call_battle
      elsif $game_temp.shop_calling
        call_shop
      elsif $game_temp.name_calling
        call_name
      elsif $game_temp.menu_calling
        call_menu
      elsif $game_temp.save_calling
        call_save
      elsif $game_temp.debug_calling
        call_debug
      end
    else
      for actor in $game_party.actors
          if actor.armor4_id == 165 #首饰
            if actor.hp > 0
              actor.hp += 1
            end
          end
        end
     end
  end
这样就可以走路恢复了-。-.....如果出错的话,应该是end多了一个或者是少了一个吧...{/hx} [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 迅雷進    时间: 2008-8-15 07:22
前辈,
容许小弟再问一些问题吗? {/gg} {/gg}
也是关于自动恢复的范围内…
作者: 果冻叮当猫    时间: 2008-8-15 07:26
可以用记录步数的方法啊
作者: 迅雷進    时间: 2008-8-15 07:36
这个系统如果是让菜单里的队员同时实行该怎么做呢?
作者: 9水之都    时间: 2008-8-15 07:56
提示: 作者被禁止或删除 内容自动屏蔽
作者: 迅雷進    时间: 2008-8-15 08:01
问题解决了,
谢谢前辈~ {/hx} {/hx}




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1