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

Project1

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

[已经过期] 关于升级的数据问题

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
7 小时
注册时间
2010-12-10
帖子
17
跳转到指定楼层
1
发表于 2011-1-6 12:23:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

Lv1.梦旅人

CHAOS

梦石
0
星屑
107
在线时间
245 小时
注册时间
2005-11-4
帖子
3521

贵宾

2
发表于 2011-1-6 12:53:10 | 只看该作者
改脚本,记得好像有这样的脚本。
梦想世界,在你伸手!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

垃圾死人

梦石
0
星屑
50
在线时间
285 小时
注册时间
2009-1-27
帖子
2420

贵宾

3
发表于 2011-1-6 12:53:35 | 只看该作者
这些其实都能搜索到的
努力努力再努力
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
122 小时
注册时间
2009-9-4
帖子
231
4
发表于 2011-1-6 12:53:52 | 只看该作者
本帖最后由 火星大人 于 2011-1-6 12:54 编辑

版务......
换成有事请教吧..

评分

参与人数 1星屑 -30 收起 理由
六祈 -30 请勿回复无关话题

查看全部评分

梦想世界,其实只是给你一个逃避的山村。那天埋葬了那份心情,以后的生活,少了一些东西,除此以外一切照旧 ……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
189 小时
注册时间
2009-12-15
帖子
343
5
发表于 2011-1-6 16:00:13 | 只看该作者
搜索升级就可以找到,我以前也改过
地图道具是什么意思?
第二部游戏 《求职大作战》http://rpg.blue/thread-165630-1-1.html
第一部游戏 《天宇传奇》http://rpg.blue/thread-140339-1-1.html
柳柳新人/进阶教程,视频全集 http://rpg.blue/thread-164472-1-1.html
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
1 小时
注册时间
2010-7-29
帖子
13
6
发表于 2011-1-6 16:01:09 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
7 小时
注册时间
2010-12-10
帖子
17
7
 楼主| 发表于 2011-1-6 17:21:37 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3852
在线时间
1582 小时
注册时间
2006-5-5
帖子
2743
8
发表于 2011-1-6 20:39:56 | 只看该作者
1、用以下方法改变升级后的状态问题
  Scene_Battle 2 的173行开始,有如下3段内容:
        if actor.level > last_level
          @status_window.level_up(i)
        end
这里就是升级的内容,只要在if那个下面一行添加
actor.hp = actor.maxhp;          actor.sp = actor.maxsp
就可以补满血和能量。

2、使用升级脚本,下面这套试验过不少情况,比较稳定
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================


  4. # ————————————————————————————————————

  5. # ▼▲▼ XRXS_BP10. LEVEL UP!能力上昇表示ウィンドウ plus ▼▲▼
  6. # by 桜雅 在土

  7. #——以下3个如果需要修改,直接输入文件名即可
  8. $data_system_level_up_se = "" #升级时的音效设置
  9. $data_system_level_up_me = "Audio/ME/007-Fanfare01" # 升级时播放的ME
  10. $data_system_skilllearn_se = "Audio/SE/106-Heal02" # 学会特技时播放的声效。

  11. #==============================================================================
  12. # ■ Window_LevelUpWindow
  13. #------------------------------------------------------------------------------
  14. #  バトル終了時、レベルアップした場合にステータスを表示するウィンドウです。
  15. #==============================================================================
  16. class Window_LevelUpWindow < Window_Base
  17.   #--------------------------------------------------------------------------
  18.   # ● オブジェクト初期化
  19.   #--------------------------------------------------------------------------
  20.   def initialize(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
  21.     super(0, 128, 160, 192)
  22.     self.contents = Bitmap.new(width - 32, height - 32)
  23.     self.visible = false
  24.     self.back_opacity = 160
  25.     refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # ● リフレッシュ
  29.   #--------------------------------------------------------------------------
  30.   def refresh(actor, last_lv, up_hp, up_sp, up_str, up_dex, up_agi, up_int)
  31.     self.contents.clear
  32.     self.contents.font.color = system_color
  33.     self.contents.font.size = 14
  34.     self.contents.draw_text( 0, 0, 160, 24, "LEVEL UP!!")
  35.     self.contents.font.size = 18
  36.     self.contents.draw_text( 0, 28, 160, 24, $data_system.words.hp)
  37.     self.contents.draw_text( 0, 50, 160, 24, $data_system.words.sp)
  38.     self.contents.font.size = 14
  39.     self.contents.draw_text( 0, 72, 80, 24, $data_system.words.str)
  40.     self.contents.draw_text( 0, 94, 80, 24, $data_system.words.dex)
  41.     self.contents.draw_text( 0, 116, 80, 24, $data_system.words.agi)
  42.     self.contents.draw_text( 0, 138, 80, 24, $data_system.words.int)
  43.     self.contents.draw_text(92, 0, 128, 24, "→")
  44.     self.contents.draw_text(76, 28, 128, 24, "=")
  45.     self.contents.draw_text(76, 50, 128, 24, "=")
  46.     self.contents.draw_text(76, 72, 128, 24, "=")
  47.     self.contents.draw_text(76, 94, 128, 24, "=")
  48.     self.contents.draw_text(76, 116, 128, 24, "=")
  49.     self.contents.draw_text(76, 138, 128, 24, "=")
  50.     self.contents.font.color = normal_color
  51.     self.contents.draw_text( 0, 0, 88, 24, last_lv.to_s, 2)
  52.     self.contents.draw_text( 0, 28, 72, 24, "+" + up_hp.to_s, 2)
  53.     self.contents.draw_text( 0, 50, 72, 24, "+" + up_sp.to_s, 2)
  54.     self.contents.draw_text( 0, 72, 72, 24, "+" + up_str.to_s, 2)
  55.     self.contents.draw_text( 0, 94, 72, 24, "+" + up_dex.to_s, 2)
  56.     self.contents.draw_text( 0, 116, 72, 24, "+" + up_agi.to_s, 2)
  57.     self.contents.draw_text( 0, 138, 72, 24, "+" + up_int.to_s, 2)
  58.     self.contents.font.size = 20
  59.     self.contents.draw_text( 0, 0, 128, 24, actor.level.to_s, 2)
  60.     self.contents.draw_text( 0, 26, 128, 24, actor.maxhp.to_s, 2)
  61.     self.contents.draw_text( 0, 48, 128, 24, actor.maxsp.to_s, 2)
  62.     self.contents.draw_text( 0, 70, 128, 24, actor.str.to_s, 2)
  63.     self.contents.draw_text( 0, 92, 128, 24, actor.dex.to_s, 2)
  64.     self.contents.draw_text( 0, 114, 128, 24, actor.agi.to_s, 2)
  65.     self.contents.draw_text( 0, 136, 128, 24, actor.int.to_s, 2)
  66.   end
  67. end
  68. #==============================================================================
  69. # ■ Window_SkillLearning
  70. #------------------------------------------------------------------------------
  71. #  レベルアップ時などにスキルを習得した場合にそれを表示するウィンドウです。
  72. #==============================================================================
  73. class Window_SkillLearning < Window_Base
  74.   #--------------------------------------------------------------------------
  75.   # ● 公開インスタンス変数
  76.   #--------------------------------------------------------------------------
  77.   attr_reader :learned # スキルを習得したかどうか
  78.   #--------------------------------------------------------------------------
  79.   # ● オブジェクト初期化
  80.   #--------------------------------------------------------------------------
  81.   def initialize(class_id, last_lv, now_lv)
  82.     super(160, 64, 320, 64)
  83.     self.contents = Bitmap.new(width - 32, height - 28) # わざと▽を表示
  84.     self.visible = false
  85.     self.back_opacity = 160
  86.     @learned = false
  87.     refresh(class_id, last_lv, now_lv)
  88.   end
  89.   #--------------------------------------------------------------------------
  90.   # ● リフレッシュ
  91.   #--------------------------------------------------------------------------
  92.   def refresh(class_id, last_lv, now_lv)
  93.     for i in 0...$data_classes[class_id].learnings.size
  94.       learn_lv = $data_classes[class_id].learnings[i].level
  95.       # 今回のレベルアップ範囲で習得するスキルの場合
  96.       if learn_lv > last_lv and learn_lv <= now_lv
  97.         @learned = true
  98.         # SEの再生
  99.         if $data_system_skilllearn_se != ""
  100.           Audio.se_play($data_system_skilllearn_se)
  101.         end
  102.         # 各描写
  103.         skill_name = $data_skills[$data_classes[class_id].learnings[i].skill_id].name
  104.         self.contents.clear
  105.         self.contents.font.color = text_color(0)
  106.         self.contents.draw_text(0,0,448,32, "学会特技:"+skill_name)
  107.         self.contents.font.color = text_color(6)
  108.         self.contents.draw_text(0,0,448,32, "          "+skill_name)
  109.         self.contents.font.color = text_color(0)
  110.         self.visible = true
  111.         # メインループ
  112.         loop do
  113.           # ゲーム画面を更新
  114.           Graphics.update
  115.           # 入力情報を更新
  116.           Input.update
  117.           # フレーム更新
  118.           update
  119.           # 画面が切り替わったらループを中断
  120.           if @learned == false
  121.             break
  122.           end
  123.         end
  124.       # メインループここまで
  125.       end
  126.     end
  127.   end
  128.   #--------------------------------------------------------------------------
  129.   # ● フレーム更新
  130.   #--------------------------------------------------------------------------
  131.   def update
  132.     # C ボタンが押された場合
  133.     if Input.trigger?(Input::C)
  134.       @learned = false
  135.       self.visible = false
  136.     end
  137.   end
  138. end
  139. #==============================================================================
  140. # ■ Window_BattleStatus
  141. #==============================================================================
  142. class Window_BattleStatus < Window_Base
  143.   #--------------------------------------------------------------------------
  144.   # ● 追加?公開インスタンス変数
  145.   #--------------------------------------------------------------------------
  146.   attr_accessor :level_up_flags # LEVEL UP!表示
  147. end
  148. #==============================================================================
  149. # ■ Game_Battler
  150. #==============================================================================
  151. class Game_Battler
  152.   #--------------------------------------------------------------------------
  153.   # ● 追加?公開インスタンス変数
  154.   #--------------------------------------------------------------------------
  155.   attr_accessor :exp_gain_ban # EXP取得一時禁止
  156.   #--------------------------------------------------------------------------
  157.   # ● オブジェクト初期化
  158.   #--------------------------------------------------------------------------
  159.   alias xrxs_bp10_initialize initialize
  160.   def initialize
  161.     @exp_gain_ban = false
  162.     xrxs_bp10_initialize
  163.   end
  164.   #--------------------------------------------------------------------------
  165.   # ● ステート [EXP を獲得できない] 判定
  166.   #--------------------------------------------------------------------------
  167.   alias xrxs_bp10_cant_get_exp? cant_get_exp?
  168.   def cant_get_exp?
  169.     if @exp_gain_ban == true
  170.       return true
  171.     else
  172.       return xrxs_bp10_cant_get_exp?
  173.     end
  174.   end
  175. end
  176. #==============================================================================
  177. # ■ Scene_Battle
  178. #==============================================================================
  179. class Scene_Battle
  180.   #--------------------------------------------------------------------------
  181.   # ● アフターバトルフェーズ開始
  182.   #--------------------------------------------------------------------------
  183.   alias xrxs_bp10_start_phase5 start_phase5
  184.   def start_phase5
  185.     # EXP 獲得禁止
  186.     for i in 0...$game_party.actors.size
  187.       $game_party.actors[i].exp_gain_ban = true
  188.     end
  189.     xrxs_bp10_start_phase5
  190.     # EXP 獲得禁止の解除
  191.     for i in 0...$game_party.actors.size
  192.       $game_party.actors[i].exp_gain_ban = false
  193.     end
  194.     # EXPを初期化
  195.     @exp_gained = 0
  196.     for enemy in $game_troop.enemies
  197.       # 獲得 EXPを追加 # エネミーが隠れ状態でない場合
  198.       @exp_gained += enemy.exp if not enemy.hidden
  199.     end
  200.     # 設定
  201.     @phase5_step = 1
  202.     @exp_gain_actor = -1
  203.     # リザルトウィンドウを表示
  204.     @result_window.visible = true
  205.   end
  206.   #--------------------------------------------------------------------------
  207.   # ● フレーム更新 (アフターバトルフェーズ)
  208.   #--------------------------------------------------------------------------
  209.   #alias xrxs_bp10_update_phase5 update_phase5
  210.   def update_phase5
  211.     case @phase5_step
  212.     when 1
  213.       update_phase5_step1
  214.     else
  215.     # ウェイトカウントが 0 より大きい場合
  216.       if @phase5_wait_count > 0
  217.         # ウェイトカウントを減らす
  218.         @phase5_wait_count -= 1
  219.         # ウェイトカウントが 0 になった場合
  220.         if @phase5_wait_count == 0
  221.           # リザルトウィンドウを表示
  222.           #@result_window.visible = true
  223.           # メインフェーズフラグをクリア
  224.           $game_temp.battle_main_phase = false
  225.           # ステータスウィンドウをリフレッシュ
  226.           @status_window.refresh
  227.         end
  228.       return
  229.       end
  230.       # C ボタンが押された場合
  231.       if Input.trigger?(Input::C)
  232.         # バトル終了
  233.         battle_end(0)
  234.       end
  235.     # レベルアップしている場合は強制バトル終了
  236.     battle_end(0) if @levelup_window != nil and @phase5_wait_count <= 0
  237.     end
  238.   end
  239.   #--------------------------------------------------------------------------
  240.   # ● フレーム更新 (アフターバトルフェーズ 1 : レベルアップ)
  241.   #--------------------------------------------------------------------------
  242.   def update_phase5_step1
  243.     # C ボタンが押された場合
  244.     if Input.trigger?(Input::C)
  245.       # ウィンドウを閉じて次のアクターへ
  246.       @levelup_window.visible = false if @levelup_window != nil
  247.       @status_window.level_up_flags[@exp_gain_actor] = false
  248.       phase5_next_levelup
  249.     end
  250.   end
  251.   #--------------------------------------------------------------------------
  252.   # ● 次のアクターのレベルアップ表示へ
  253.   #--------------------------------------------------------------------------
  254.   def phase5_next_levelup
  255.     begin
  256.       # 次のアクターへ
  257.       @exp_gain_actor += 1
  258.       # 最後のアクターの場合
  259.       if @exp_gain_actor >= $game_party.actors.size
  260.         # アフターバトルフェーズ開始
  261.         @phase5_step = 0
  262.         return
  263.       end
  264.       actor = $game_party.actors[@exp_gain_actor]
  265.       if actor.cant_get_exp? == false
  266.         # 現在の能力値を保持
  267.         last_level = actor.level
  268.         last_maxhp = actor.maxhp
  269.         last_maxsp = actor.maxsp
  270.         last_str = actor.str
  271.         last_dex = actor.dex
  272.         last_agi = actor.agi
  273.         last_int = actor.int
  274.         # 経験値取得の決定的瞬間(謎
  275.         actor.exp += @exp_gained
  276.         # 判定
  277.         if actor.level > last_level
  278.           # レベルアップした場合
  279.           @status_window.level_up(@exp_gain_actor)
  280.           # リザルトウィンドウを消す
  281.           @result_window.visible = false
  282.           # SEの再生
  283.           if $data_system_level_up_se != ""
  284.             Audio.se_play($data_system_level_up_se)
  285.           end
  286.           # MEの再生
  287.           if $data_system_level_up_me != ""
  288.             Audio.me_stop
  289.             Audio.me_play($data_system_level_up_me)
  290.           end
  291.           # LEVEL-UPウィンドウの設定
  292.           @levelup_window = Window_LevelUpWindow.new(actor, last_level,
  293.           actor.maxhp - last_maxhp, actor.maxsp - last_maxsp, actor.str - last_str,
  294.           actor.dex - last_dex, actor.agi - last_agi, actor.int - last_int)
  295.           @levelup_window.x = 160 * @exp_gain_actor
  296.           @levelup_window.visible = true
  297.           # ステータスウィンドウをリフレッシュ
  298.           @status_window.refresh
  299.           # スキル習得ウィンドウの設定
  300.           @skilllearning_window = Window_SkillLearning.new(actor.class_id, last_level, actor.level)
  301.           # ウェイトカウントを設定
  302.           @phase5_wait_count = 40
  303.           @phase5_step = 1
  304.           return
  305.         end
  306.       end
  307.     end until false
  308.   end
  309. end


  310. #==============================================================================
  311. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  312. #==============================================================================
复制代码
3、地图就用下面的脚本,把按键打开改成公共事件打开就可以了
  1. # ————————————————————————————————————
  2. # 本脚本来自www.66rpg.com,转载请保留此信息
  3. # ————————————————————————————————————

  4. #==============================================================================
  5. # ■ 縮小地图的表示(ver 0.999)
  6. # by ピニョン clum-sea
  7. #==============================================================================
  8. #==============================================================================
  9. # □ 前期定义
  10. #==============================================================================
  11. module PLAN_Map_Window
  12.   WIN_X       = 8         # 地图的 X 座標
  13.   WIN_Y       = 8         # 地图的 Y 座標
  14.   WIN_WIDTH   = 8*32      # 地图的宽度
  15.   WIN_HEIGHT  = 6*32      # 地图的高度
  16.   ZOOM        = 7.0       # 地图的放缩比例
  17.   WINDOWSKIN  = ""        # 自定义地图窗口素材,如果留空则是默认的

  18.   ON_OFF_KEY  = Input::CTRL  # 打开地图的按钮,A就是键盘的Z键

  19.   SWITCH      = 135       # 禁用地图功能的开关,默认这个就是打开100号开关则禁止
  20.                           # 使用地图功能,关闭则可以使用地图功能

  21.   WINDOW_MOVE = true      # 窗口中的地图跟随移动,(true:跟随, false:固定)
  22.   
  23.   OVER_X      = 632 - WIN_WIDTH   # 移動后的 X 座標(初期位置と往復します)
  24.   OVER_Y      = 8         # 移動后的 Y 座標(初期位置と往復します)

  25.   OPACITY     = 192       # 窗口的透明度
  26.   C_OPACITY   = 192       # 地图的透明度
  27.   VISIBLE     = false      # 最初是否可见
  28. end
  29. #==============================================================================
  30. # ■ Game_Temp
  31. #==============================================================================
  32. class Game_Temp
  33.   attr_accessor  :map_visible     # 地图的表示状態
  34.   alias plan_map_window_initialize initialize
  35.   def initialize
  36.     plan_map_window_initialize
  37.     @map_visible = false
  38.   end
  39. end
  40. #==============================================================================
  41. # ■ Scene_Map
  42. #==============================================================================
  43. class Scene_Map
  44.   #--------------------------------------------------------------------------
  45.   # ● 主处理
  46.   #--------------------------------------------------------------------------
  47.   alias plan_map_window_main main
  48.   def main
  49.     @map_window         = Window_Map.new
  50.     @map_window.visible = $game_temp.map_visible
  51.     plan_map_window_main
  52.     @map_window.dispose
  53.   end
  54.   #--------------------------------------------------------------------------
  55.   # ● 更新
  56.   #--------------------------------------------------------------------------
  57.   alias plan_map_window_update update
  58.   def update
  59.     $game_temp.map_visible = @map_window.visible
  60.     plan_map_window_update
  61.     unless $game_switches[PLAN_Map_Window::SWITCH]      
  62.       if Input.trigger?(PLAN_Map_Window::ON_OFF_KEY)
  63.         if @map_window.visible
  64.           @map_window.visible = false
  65.         else
  66.           @map_window.visible = true
  67.         end
  68.       end
  69.     else
  70.       if @map_window.visible
  71.         @map_window.visible = false
  72.       end
  73.     end
  74.     if @map_window.visible
  75.       @map_window.update
  76.     end
  77.   end
  78.   #--------------------------------------------------------------------------
  79.   # ● 场所移动的变化
  80.   #--------------------------------------------------------------------------
  81.   alias plan_map_window_transfer_player transfer_player
  82.   def transfer_player
  83.     visible = @map_window.visible
  84.     @map_window.visible = false
  85.     plan_map_window_transfer_player
  86.     @map_window.dispose
  87.     @map_window = Window_Map.new
  88.     @map_window.visible = visible
  89.   end
  90. end
  91. #==============================================================================
  92. # ■ Window_Map
  93. #==============================================================================
  94. class Window_Map < Window_Base
  95.   #--------------------------------------------------------------------------
  96.   # ● 初始化
  97.   #--------------------------------------------------------------------------
  98.   def initialize
  99.     x = PLAN_Map_Window::WIN_X
  100.     y = PLAN_Map_Window::WIN_Y
  101.     w = PLAN_Map_Window::WIN_WIDTH
  102.     h = PLAN_Map_Window::WIN_HEIGHT
  103.     super(x, y, w, h)
  104.     unless PLAN_Map_Window::WINDOWSKIN.empty?
  105.       self.windowskin = RPG::Cache.windowskin(PLAN_Map_Window::WINDOWSKIN)
  106.     end
  107.     self.contents = Bitmap.new(width - 32, height - 32)
  108.     self.opacity = PLAN_Map_Window::OPACITY
  109.     self.contents_opacity = PLAN_Map_Window::C_OPACITY
  110.     @map_data = $game_map.data
  111.     @tileset = RPG::Cache.tileset($game_map.tileset_name)
  112.     @autotiles = []
  113.     for i in 0..6
  114.       autotile_name = $game_map.autotile_names[i]
  115.       @autotiles[i] = RPG::Cache.autotile(autotile_name)
  116.     end
  117.     @old_real_x = $game_player.real_x
  118.     @old_real_y = $game_player.real_y
  119.     @all_map = make_all_map
  120.     self.visible = PLAN_Map_Window::VISIBLE
  121.     refresh
  122.   end
  123.   #--------------------------------------------------------------------------
  124.   # ● 缩小图做成
  125.   #--------------------------------------------------------------------------
  126.   def make_all_map
  127.     all_map = Bitmap.new($game_map.width * 32, $game_map.height * 32)
  128.     for y in 0...$game_map.height
  129.       for x in 0...$game_map.width
  130.         for z in 0...3
  131.           tile_num = @map_data[x, y, z]
  132.           next if tile_num == nil
  133.           if tile_num < 384
  134.             if tile_num >= 48
  135.               tile_num -= 48
  136.               src_rect = Rect.new(32, 2 * 32, 32, 32)
  137.               all_map.blt(x * 32, y * 32, @autotiles[tile_num / 48], src_rect)
  138.             end
  139.           else
  140.             tile_num -= 384
  141.             src_rect = Rect.new(tile_num % 8 * 32, tile_num / 8 * 32, 32, 32)
  142.             all_map.blt(x * 32, y * 32, @tileset, src_rect)
  143.           end
  144.         end
  145.       end
  146.     end
  147.     w = ($game_map.width / PLAN_Map_Window::ZOOM) * 32
  148.     h = ($game_map.height / PLAN_Map_Window::ZOOM) * 32
  149.     ret_bitmap = Bitmap.new(w, h)
  150.     src_rect = Rect.new(0, 0, all_map.width, all_map.height)
  151.     dest_rect = Rect.new(0, 0, ret_bitmap.width, ret_bitmap.height)
  152.     ret_bitmap.stretch_blt(dest_rect, all_map, src_rect)
  153.     all_map.dispose
  154.     return ret_bitmap
  155.   end
  156.   #--------------------------------------------------------------------------
  157.   # ● 刷新
  158.   #--------------------------------------------------------------------------
  159.   def refresh
  160.     self.contents.clear
  161.     one_tile_size = 32 / PLAN_Map_Window::ZOOM
  162.     x = $game_player.real_x - 128 * (self.contents.width / one_tile_size) / 2
  163.     y = $game_player.real_y - 128 * (self.contents.height / one_tile_size) / 2
  164.     x = x * one_tile_size / 128
  165.     y = y * one_tile_size / 128
  166.     half_width = self.contents.width * 128 / 2
  167.     rest_width = ($game_map.width * 128 - $game_player.real_x) * one_tile_size
  168.     rev_x = 0
  169.     if @all_map.width < self.contents.width
  170.       rev_x = (half_width - $game_player.real_x * one_tile_size) / 128
  171.       rev_x -= (self.contents.width - @all_map.width) / 2
  172.       x += rev_x
  173.     elsif half_width > $game_player.real_x * one_tile_size
  174.       rev_x = (half_width - $game_player.real_x * one_tile_size) / 128
  175.       x += rev_x
  176.     elsif half_width > rest_width
  177.       rev_x = -((half_width - rest_width) / 128)
  178.       x += rev_x
  179.     end
  180.     half_height = self.contents.height * 128 / 2
  181.     rest_height = ($game_map.height * 128 - $game_player.real_y) * one_tile_size
  182.     rev_y = 0
  183.     if @all_map.height < self.contents.height
  184.       rev_y = (half_height - $game_player.real_y * one_tile_size) / 128
  185.       rev_y -= (self.contents.height - @all_map.height) / 2
  186.       y += rev_y
  187.     elsif half_height > $game_player.real_y * one_tile_size
  188.       rev_y = (half_height - $game_player.real_y * one_tile_size) / 128
  189.       y += rev_y
  190.     elsif half_height > rest_height
  191.       rev_y = -((half_height - rest_height) / 128)
  192.       y += rev_y
  193.     end
  194.     src_rect = Rect.new(x, y, self.contents.width, self.contents.height)
  195.     self.contents.blt(0, 0, @all_map, src_rect)
  196.     if PLAN_Map_Window::WINDOW_MOVE == true
  197.       w = self.x..self.x + self.width
  198.       h = self.y..self.y + self.height
  199.       if w === $game_player.screen_x and h === $game_player.screen_y
  200.         if self.x == PLAN_Map_Window::WIN_X and self.y == PLAN_Map_Window::WIN_Y
  201.           self.x = PLAN_Map_Window::OVER_X
  202.           self.y = PLAN_Map_Window::OVER_Y
  203.         else
  204.           self.x = PLAN_Map_Window::WIN_X
  205.           self.y = PLAN_Map_Window::WIN_Y
  206.         end
  207.       end
  208.     end
  209.     if $game_party.actors.size > 0
  210.       for i in [2, 1, 0]
  211.         tile = @map_data[$game_player.x, $game_player.y, i]
  212.         next if tile == 0
  213.         return if $game_map.priorities[tile] > 0
  214.       end
  215.       actor = $game_party.actors[0]
  216.       bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
  217.       width = bitmap.width / 4
  218.       height = bitmap.height / 4
  219.       src_rect = Rect.new(0, 0, width, height)
  220.       w = width / PLAN_Map_Window::ZOOM
  221.       h = height / PLAN_Map_Window::ZOOM
  222.       x = self.contents.width / 2 - w / 2 + one_tile_size / 2 - rev_x
  223.       y = self.contents.height / 2 - h / 2 - rev_y
  224.       dest_rect = Rect.new(x, y, w, h)
  225.       self.contents.stretch_blt(dest_rect, bitmap, src_rect)
  226.     end
  227.   end
  228.   #--------------------------------------------------------------------------
  229.   # ● 更新
  230.   #--------------------------------------------------------------------------
  231.   def update
  232.     super
  233.     if @old_real_x != $game_player.real_x or @old_real_y != $game_player.real_y
  234.       @old_real_x = $game_player.real_x
  235.       @old_real_y = $game_player.real_y
  236.       refresh
  237.     end
  238.   end
  239.   #--------------------------------------------------------------------------
  240.   # ● 解放
  241.   #--------------------------------------------------------------------------
  242.   def dispose
  243.     super
  244.     @all_map.dispose
  245.   end
  246. end
复制代码

评分

参与人数 1星屑 +332 收起 理由
fux2 + 332 answer

查看全部评分

步兵中尉
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
7 小时
注册时间
2010-12-10
帖子
17
9
 楼主| 发表于 2011-1-7 20:07:49 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3852
在线时间
1582 小时
注册时间
2006-5-5
帖子
2743
10
发表于 2011-1-7 22:49:46 | 只看该作者
本帖最后由 步兵中尉 于 2011-1-7 23:05 编辑

所有问题都解决了吗?
步兵中尉
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-24 16:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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