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

Project1

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

一个脚本的抓虫

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
110
在线时间
153 小时
注册时间
2008-5-25
帖子
585
跳转到指定楼层
1
发表于 2009-4-10 06:05:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
有什么BUG?
  1. #==============================================================================
  2. # ■ Window_MapHP
  3. #------------------------------------------------------------------------------
  4. ###############################################################################
  5.                         
  6. #                         地图显示血量

  7. ###############################################################################
  8. class Window_MapHP < Window_Base
  9.   #--------------------------------------------------------------------------
  10.   # ● 初始化窗口
  11.   #--------------------------------------------------------------------------
  12.   def initialize
  13.     super(0, 0, 160, 64)
  14.     self.contents = Bitmap.new(width - 32, height - 32)
  15.     refresh
  16.   end
  17.   #--------------------------------------------------------------------------
  18.   # ● 刷新
  19.   #--------------------------------------------------------------------------
  20.   draw_actor_hp(@actor, 96, 112, 172)
  21.   self.contents.draw_text(320, 48, 80, 32, "血")
  22. end  
  23. end  
复制代码
  1. #==============================================================================
  2. # ■ Scene_Map
  3. #------------------------------------------------------------------------------
  4. #  处理地图画面的类。
  5. #==============================================================================

  6. class Scene_Map
  7.   #--------------------------------------------------------------------------
  8.   # ● 主处理
  9.   #--------------------------------------------------------------------------
  10.   def main
  11.     # 生成活动块
  12.     @spriteset = Spriteset_Map.new
  13.     # 生成信息窗口
  14.     @message_window = Window_Message.new
  15.     # 生成活动块
  16.     @spriteset = Spriteset_Map.new
  17.     # 生成信息窗口
  18.     @message_window = Window_Message.new
  19.     # 生成自定义窗口
  20.     @maphp_window = Window_MapHP.mew
  21.     # 执行过渡
  22.     Graphics.transition
  23.     # 主循环
  24.     loop do
  25.       # 刷新游戏画面
  26.       Graphics.update
  27.       # 刷新输入信息
  28.       Input.update
  29.       # 刷新画面
  30.       update
  31.       # 如果画面切换的话就中断循环
  32.       if $scene != self
  33.         break
  34.       end
  35.     end
  36.     # 准备过渡
  37.     Graphics.freeze
  38.     # 释放活动块
  39.     @spriteset.dispose
  40.     # 释放信息窗口
  41.     @message_window.dispose
  42.     # 释放活动块
  43.     @spriteset.dispose
  44.     # 释放信息窗口
  45.     @message_window.dispose
  46.     # 释放zidingyi窗口
  47.     @maphp_window.dispose
  48.     # 标题画面切换中的情况下
  49.     if $scene.is_a?(Scene_Title)
  50.       # 淡入淡出画面
  51.       Graphics.transition
  52.       Graphics.freeze
  53.     end
  54.   end
  55.   #--------------------------------------------------------------------------
  56.   # ● 刷新画面
  57.   #--------------------------------------------------------------------------
  58.   def update
  59.     # 循环
  60.     loop do
  61.       # 按照地图、实例、主角的顺序刷新
  62.       # (本更新顺序不会在的满足事件的执行条件下成为给予角色瞬间移动
  63.       #  的机会的重要因素)
  64.       $game_map.update
  65.       $game_system.map_interpreter.update
  66.       $game_player.update
  67.       # 系统 (计时器)、画面刷新
  68.       $game_system.update
  69.       $game_screen.update
  70.       # 如果主角在场所移动中就中断循环
  71.       unless $game_temp.player_transferring
  72.         break
  73.       end
  74.       # 执行场所移动
  75.       transfer_player
  76.       # 处理过渡中的情况下、中断循环
  77.       if $game_temp.transition_processing
  78.         break
  79.       end
  80.     end
  81.     # 刷新活动块
  82.     @spriteset.update
  83.     # 刷新信息窗口
  84.     @message_window.update
  85.     # 刷新活动块
  86.     @spriteset.update
  87.     # 刷新信息窗口
  88.     @message_window.update
  89.     # 刷新zidingyi窗口
  90.     @maphp_window.update
  91.     # 游戏结束的情况下
  92.     if $game_temp.gameover
  93.       # 切换的游戏结束画面
  94.       $scene = Scene_Gameover.new
  95.       return
  96.     end
  97.     # 返回标题画面的情况下
  98.     if $game_temp.to_title
  99.       # 切换到标题画面
  100.       $scene = Scene_Title.new
  101.       return
  102.     end
  103.     # 处理过渡中的情况下
  104.     if $game_temp.transition_processing
  105.       # 清除过渡处理中标志
  106.       $game_temp.transition_processing = false
  107.       # 执行过渡
  108.       if $game_temp.transition_name == ""
  109.         Graphics.transition(20)
  110.       else
  111.         Graphics.transition(40, "Graphics/Transitions/" +
  112.           $game_temp.transition_name)
  113.       end
  114.     end
  115.     # 显示信息窗口中的情况下
  116.     if $game_temp.message_window_showing
  117.       return
  118.     end
  119.     # 遇敌计数为 0 且、且遇敌列表不为空的情况下
  120.     if $game_player.encounter_count == 0 and $game_map.encounter_list != []
  121.       # 不是在事件执行中或者禁止遇敌中
  122.       unless $game_system.map_interpreter.running? or
  123.              $game_system.encounter_disabled
  124.         # 确定队伍
  125.         n = rand($game_map.encounter_list.size)
  126.         troop_id = $game_map.encounter_list[n]
  127.         # 队伍有效的话
  128.         if $data_troops[troop_id] != nil
  129.           # 设置调用战斗标志
  130.           $game_temp.battle_calling = true
  131.           $game_temp.battle_troop_id = troop_id
  132.           $game_temp.battle_can_escape = true
  133.           $game_temp.battle_can_lose = false
  134.           $game_temp.battle_proc = nil
  135.         end
  136.       end
  137.     end
  138.     # 按下 B 键的情况下
  139.     if Input.trigger?(Input::B)
  140.       # 不是在事件执行中或菜单禁止中
  141.       unless $game_system.map_interpreter.running? or
  142.              $game_system.menu_disabled
  143.         # 设置菜单调用标志以及 SE 演奏
  144.         $game_temp.menu_calling = true
  145.         $game_temp.menu_beep = true
  146.       end
  147.     end
  148.     # 调试模式为 ON 并且按下 F9 键的情况下
  149.     if $DEBUG and Input.press?(Input::F9)
  150.       # 设置调用调试标志
  151.       $game_temp.debug_calling = true
  152.     end
  153.     # 不在主角移动中的情况下
  154.     unless $game_player.moving?
  155.       # 执行各种画面的调用
  156.       if $game_temp.battle_calling
  157.         call_battle
  158.       elsif $game_temp.shop_calling
  159.         call_shop
  160.       elsif $game_temp.name_calling
  161.         call_name
  162.       elsif $game_temp.menu_calling
  163.         call_menu
  164.       elsif $game_temp.save_calling
  165.         call_save
  166.       elsif $game_temp.debug_calling
  167.         call_debug
  168.       end
  169.     end
  170.   end
  171.   #--------------------------------------------------------------------------
  172.   # ● 调用战斗
  173.   #--------------------------------------------------------------------------
  174.   def call_battle
  175.     # 清除战斗调用标志
  176.     $game_temp.battle_calling = false
  177.     # 清除菜单调用标志
  178.     $game_temp.menu_calling = false
  179.     $game_temp.menu_beep = false
  180.     # 生成遇敌计数
  181.     $game_player.make_encounter_count
  182.     # 记忆地图 BGM 、停止 BGM
  183.     $game_temp.map_bgm = $game_system.playing_bgm
  184.     $game_system.bgm_stop
  185.     # 演奏战斗开始 SE
  186.     $game_system.se_play($data_system.battle_start_se)
  187.     # 演奏战斗 BGM
  188.     $game_system.bgm_play($game_system.battle_bgm)
  189.     # 矫正主角姿势
  190.     $game_player.straighten
  191.     # 切换到战斗画面
  192.     $scene = Scene_Battle.new
  193.   end
  194.   #--------------------------------------------------------------------------
  195.   # ● 调用商店
  196.   #--------------------------------------------------------------------------
  197.   def call_shop
  198.     # 清除商店调用标志
  199.     $game_temp.shop_calling = false
  200.     # 矫正主角姿势
  201.     $game_player.straighten
  202.     # 切换到商店画面
  203.     $scene = Scene_Shop.new
  204.   end
  205.   #--------------------------------------------------------------------------
  206.   # ● 调用名称输入
  207.   #--------------------------------------------------------------------------
  208.   def call_name
  209.     # 清除商店调用名称输入标志
  210.     $game_temp.name_calling = false
  211.     # 矫正主角姿势
  212.     $game_player.straighten
  213.     # 切换到名称输入画面
  214.     $scene = Scene_Name.new
  215.   end
  216.   #--------------------------------------------------------------------------
  217.   # ● 调用菜单
  218.   #--------------------------------------------------------------------------
  219.   def call_menu
  220.     # 清除商店调用菜单标志
  221.     $game_temp.menu_calling = false
  222.     # 已经设置了菜单 SE 演奏标志的情况下
  223.     if $game_temp.menu_beep
  224.       # 演奏确定 SE
  225.       $game_system.se_play($data_system.decision_se)
  226.       # 清除菜单演奏 SE 标志
  227.       $game_temp.menu_beep = false
  228.     end
  229.     # 矫正主角姿势
  230.     $game_player.straighten
  231.     # 切换到菜单画面
  232.     $scene = Scene_Menu.new
  233.   end
  234.   #--------------------------------------------------------------------------
  235.   # ● 调用存档
  236.   #--------------------------------------------------------------------------
  237.   def call_save
  238.     # 矫正主角姿势
  239.     $game_player.straighten
  240.     # 切换到存档画面
  241.     $scene = Scene_Save.new
  242.   end
  243.   #--------------------------------------------------------------------------
  244.   # ● 调用调试
  245.   #--------------------------------------------------------------------------
  246.   def call_debug
  247.     # 清除商店调用调试标志
  248.     $game_temp.debug_calling = false
  249.     # 演奏确定 SE
  250.     $game_system.se_play($data_system.decision_se)
  251.     # 矫正主角姿势
  252.     $game_player.straighten
  253.     # 切换到调试画面
  254.     $scene = Scene_Debug.new
  255.   end
  256.   #--------------------------------------------------------------------------
  257.   # ● 主角的场所移动
  258.   #--------------------------------------------------------------------------
  259.   def transfer_player
  260.     # 清除主角场所移动调试标志
  261.     $game_temp.player_transferring = false
  262.     # 移动目标与现在的地图有差异的情况下
  263.     if $game_map.map_id != $game_temp.player_new_map_id
  264.       # 设置新地图
  265.       $game_map.setup($game_temp.player_new_map_id)
  266.     end
  267.     # 设置主角位置
  268.     $game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y)
  269.     # 设置主角朝向
  270.     case $game_temp.player_new_direction
  271.     when 2  # 下
  272.       $game_player.turn_down
  273.     when 4  # 左
  274.       $game_player.turn_left
  275.     when 6  # 右
  276.       $game_player.turn_right
  277.     when 8  # 上
  278.       $game_player.turn_up
  279.     end
  280.     # 矫正主角姿势
  281.     $game_player.straighten
  282.     # 刷新地图 (执行并行事件)
  283.     $game_map.update
  284.     # 在生成活动块
  285.     @spriteset.dispose
  286.     @spriteset = Spriteset_Map.new
  287.     # 处理过渡中的情况下
  288.     if $game_temp.transition_processing
  289.       # 清除过渡处理中标志
  290.       $game_temp.transition_processing = false
  291.       # 执行过渡
  292.       Graphics.transition(20)
  293.     end
  294.     # 执行地图设置的 BGM、BGS 的自动切换
  295.     $game_map.autoplay
  296.     # 设置画面
  297.     Graphics.frame_reset
  298.     # 刷新输入信息
  299.     Input.update
  300.   end
  301. end
复制代码

此贴于 2009-4-10 11:17:21 被版主darkten提醒,请楼主看到后对本贴做出回应。
[color=DimGray]TransFormer4[/color]

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
2
发表于 2009-4-10 06:10:31 | 只看该作者
Window_MapHP的refresh貌似没有定义……

版主对此帖的认可:『这帖子谁编辑成已解决的?』,积分『+350』。
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-16 07:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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