Project1

标题: 关于人物仓库的问题 [打印本页]

作者: k9999123456    时间: 2008-7-16 18:40
标题: 关于人物仓库的问题
人物仓库里的“加点”和“人物介绍”“队伍跟随”我都用不着,有没有办法去掉。如果没有,有没有类似的脚本。 [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: jackxiao    时间: 2008-7-16 19:27
提示: 作者被禁止或删除 内容自动屏蔽
作者: 橡让    时间: 2008-7-16 20:16
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. class Scene_Save
  5.   #--------------------------------------------------------------------------
  6.   # ● 写入存档数据
  7.   #     file : 写入用文件对像 (已经打开)
  8.   #--------------------------------------------------------------------------
  9.   def write_save_data(file)
  10.     # 生成描绘存档文件用的角色图形
  11.     characters = []
  12.     for i in 0...[$game_party.actors.size,4].min
  13.       actor = $game_party.actors[i]
  14.       characters.push([actor.character_name, actor.character_hue])
  15.     end
  16.     # 写入描绘存档文件用的角色数据
  17.     Marshal.dump(characters, file)
  18.     # 写入测量游戏时间用画面计数
  19.     Marshal.dump(Graphics.frame_count, file)
  20.     # 增加 1 次存档次数
  21.     $game_system.save_count += 1
  22.     # 保存魔法编号
  23.     # (将编辑器保存的值以随机值替换)
  24.     $game_system.magic_number = $data_system.magic_number
  25.     # 写入各种游戏对像
  26.     Marshal.dump($game_system, file)
  27.     Marshal.dump($game_switches, file)
  28.     Marshal.dump($game_variables, file)
  29.     Marshal.dump($game_self_switches, file)
  30.     Marshal.dump($game_screen, file)
  31.     Marshal.dump($game_actors, file)
  32.     Marshal.dump($game_party, file)
  33.     Marshal.dump($game_troop, file)
  34.     Marshal.dump($game_map, file)
  35.     Marshal.dump($game_player, file)
  36.   end
  37. end

  38. class Scene_Battle
  39.   #--------------------------------------------------------------------------
  40.   # ● 设置物品或特技对像方的战斗者
  41.   #     scope : 特技或者是物品的范围
  42.   #--------------------------------------------------------------------------
  43.   def set_target_battlers(scope)
  44.     # 行动方的战斗者是敌人的情况下
  45.     if @active_battler.is_a?(Game_Enemy)
  46.       # 效果范围分支
  47.       case scope
  48.       when 1  # 敌单体
  49.         index = @active_battler.current_action.target_index
  50.         @target_battlers.push($game_party.smooth_target_actor(index))
  51.       when 2  # 敌全体
  52.         for actor in 0...[$game_party.actors.size,4].min
  53.           if $game_party.actors[actor].exist?
  54.             @target_battlers.push($game_party.actors[actor])
  55.           end
  56.         end
  57.       when 3  # 我方单体
  58.         index = @active_battler.current_action.target_index
  59.         @target_battlers.push($game_troop.smooth_target_enemy(index))
  60.       when 4  # 我方全体
  61.         for enemy in $game_troop.enemies
  62.           if enemy.exist?
  63.             @target_battlers.push(enemy)
  64.           end
  65.         end
  66.       when 5  # 我方单体 (HP 0)
  67.         index = @active_battler.current_action.target_index
  68.         enemy = $game_troop.enemies[index]
  69.         if enemy != nil and enemy.hp0?
  70.           @target_battlers.push(enemy)
  71.         end
  72.       when 6  # 我方全体 (HP 0)
  73.         for enemy in $game_troop.enemies
  74.           if enemy != nil and enemy.hp0?
  75.             @target_battlers.push(enemy)
  76.           end
  77.         end
  78.       when 7  # 使用者
  79.         @target_battlers.push(@active_battler)
  80.       end
  81.     end
  82.     # 行动方的战斗者是角色的情况下
  83.     if @active_battler.is_a?(Game_Actor)
  84.       # 效果范围分支
  85.       case scope
  86.       when 1  # 敌单体
  87.         index = @active_battler.current_action.target_index
  88.         @target_battlers.push($game_troop.smooth_target_enemy(index))
  89.       when 2  # 敌全体
  90.         for enemy in $game_troop.enemies
  91.           if enemy.exist?
  92.             @target_battlers.push(enemy)
  93.           end
  94.         end
  95.       when 3  # 我方单体
  96.         index = @active_battler.current_action.target_index
  97.         @target_battlers.push($game_party.smooth_target_actor(index))
  98.       when 4  # 我方全体
  99.         for actor in 0...[$game_party.actors.size,4].min
  100.           if $game_party.actors[actor].exist?
  101.             @target_battlers.push($game_party.actors[actor])
  102.           end
  103.         end
  104.       when 5  # 我方单体 (HP 0)
  105.         index = @active_battler.current_action.target_index
  106.         actor = $game_party.actors[index]
  107.         if actor != nil and actor.hp0?
  108.           @target_battlers.push(actor)
  109.         end
  110.       when 6  # 我方全体 (HP 0)
  111.         for actor in 0...[$game_party.actors.size,4].min
  112.           if $game_party.actors[actor] != nil and $game_party.actors[actor].hp0?
  113.             @target_battlers.push($game_party.actors[actor])
  114.           end
  115.         end
  116.       when 7  # 使用者
  117.         @target_battlers.push(@active_battler)
  118.       end
  119.     end
  120.   end  
  121.   #--------------------------------------------------------------------------
  122.   # ● 生成行动循序
  123.   #--------------------------------------------------------------------------
  124.   def make_action_orders
  125.     # 初始化序列 @action_battlers
  126.     @action_battlers = []
  127.     # 添加敌人到 @action_battlers 序列
  128.     for enemy in $game_troop.enemies
  129.       @action_battlers.push(enemy)
  130.     end
  131.     # 添加角色到 @action_battlers 序列
  132.     for actor in 0...[$game_party.actors.size,4].min
  133.       @action_battlers.push($game_party.actors[actor])
  134.     end
  135.     # 确定全体的行动速度
  136.     for battler in @action_battlers
  137.       battler.make_action_speed
  138.     end
  139.     # 按照行动速度从大到小排列
  140.     @action_battlers.sort! {|a,b|
  141.       b.current_action.speed - a.current_action.speed }
  142.   end
  143.   #--------------------------------------------------------------------------
  144.   # ● 开始结束战斗回合
  145.   #--------------------------------------------------------------------------
  146.   def start_phase5
  147.     # 转移到回合 5
  148.     @phase = 5
  149.     # 演奏战斗结束 ME
  150.     $game_system.me_play($game_system.battle_end_me)
  151.     # 还原为战斗开始前的 BGM
  152.     $game_system.bgm_play($game_temp.map_bgm)
  153.     # 初始化 EXP、金钱、宝物
  154.     exp = 0
  155.     gold = 0
  156.     treasures = []
  157.     # 循环
  158.     for enemy in $game_troop.enemies
  159.       # 敌人不是隐藏状态的情况下
  160.       unless enemy.hidden
  161.         # 获得 EXP、增加金钱
  162.         exp += enemy.exp
  163.         gold += enemy.gold
  164.         # 出现宝物判定
  165.         if rand(100) < enemy.treasure_prob
  166.           if enemy.item_id > 0
  167.             treasures.push($data_items[enemy.item_id])
  168.           end
  169.           if enemy.weapon_id > 0
  170.             treasures.push($data_weapons[enemy.weapon_id])
  171.           end
  172.           if enemy.armor_id > 0
  173.             treasures.push($data_armors[enemy.armor_id])
  174.           end
  175.         end
  176.       end
  177.     end
  178.     # 限制宝物数为 6 个
  179.     treasures = treasures[0..5]
  180.     # 获得 EXP
  181.     for i in 0...[$game_party.actors.size,4].min
  182.       actor = $game_party.actors[i]
  183.       if actor.cant_get_exp? == false
  184.         last_level = actor.level
  185.         actor.exp += exp
  186.         if actor.level > last_level
  187.           @status_window.level_up(i)
  188.         end
  189.       end
  190.     end
  191.     # 获得金钱
  192.     $game_party.gain_gold(gold)
  193.     # 获得宝物
  194.     for item in treasures
  195.       case item
  196.       when RPG::Item
  197.         $game_party.gain_item(item.id, 1)
  198.       when RPG::Weapon
  199.         $game_party.gain_weapon(item.id, 1)
  200.       when RPG::Armor
  201.         $game_party.gain_armor(item.id, 1)
  202.       end
  203.     end
  204.     # 生成战斗结果窗口
  205.     @result_window = Window_BattleResult.new(exp, gold, treasures)
  206.     # 设置等待计数
  207.     @phase5_wait_count = 100
  208.   end
  209.   #--------------------------------------------------------------------------
  210.   # ● 转到输入下一个角色的命令
  211.   #--------------------------------------------------------------------------
  212.   def phase3_next_actor
  213.     # 循环
  214.     begin
  215.       # 角色的明灭效果 OFF
  216.       if @active_battler != nil
  217.         @active_battler.blink = false
  218.       end
  219.       # 最后的角色的情况
  220.       if @actor_index == [$game_party.actors.size-1,3].min
  221.         # 开始主回合
  222.         start_phase4
  223.         return
  224.       end
  225.       # 推进角色索引
  226.       @actor_index += 1
  227.       @active_battler = $game_party.actors[@actor_index]
  228.       @active_battler.blink = true
  229.     # 如果角色是在无法接受指令的状态就再试
  230.     end until @active_battler.inputable?
  231.     # 设置角色的命令窗口
  232.     phase3_setup_command_window
  233.   end
  234. end

  235. class Arrow_Actor < Arrow_Base  
  236.   #--------------------------------------------------------------------------
  237.   # ● 刷新画面
  238.   #--------------------------------------------------------------------------
  239.   def update
  240.     super
  241.     # 光标右
  242.     if Input.repeat?(Input::RIGHT)
  243.       $game_system.se_play($data_system.cursor_se)
  244.       @index += 1
  245.       @index %= [$game_party.actors.size,4].min
  246.     end
  247.     # 光标左
  248.     if Input.repeat?(Input::LEFT)
  249.       $game_system.se_play($data_system.cursor_se)
  250.       @index += $game_party.actors.size - 1
  251.       @index %= [$game_party.actors.size,4].min
  252.     end
  253.     # 设置活动块坐标
  254.     if self.actor != nil
  255.       self.x = self.actor.screen_x
  256.       self.y = self.actor.screen_y
  257.     end
  258.   end
  259. end

  260. #==============================================================================
  261. # ■ Window_Target
  262. #------------------------------------------------------------------------------
  263. #  物品画面与特技画面的、使用对像角色选择窗口。
  264. #==============================================================================

  265. class Window_Target < Window_Selectable
  266. #--------------------------------------------------------------------------
  267. # ● 初始化对像
  268. #--------------------------------------------------------------------------
  269. def initialize
  270.    super(0, 0, 336, 480)
  271.    self.contents = Bitmap.new(width - 32, $game_party.actors.size*112)
  272.    self.z += 10
  273.    @item_max = $game_party.actors.size
  274.    @top_row = 0
  275.    refresh
  276. end
  277. #--------------------------------------------------------------------------
  278. # ● 刷新
  279. #--------------------------------------------------------------------------
  280. def refresh
  281.    self.contents.clear
  282.    for i in 0...$game_party.actors.size
  283.      x = 4
  284.      y = i * 112
  285.      actor = $game_party.actors[i]
  286.      draw_actor_name(actor, x, y)
  287.      draw_actor_class(actor, x + 144, y)
  288.      draw_actor_level(actor, x + 8, y + 32)
  289.      draw_actor_state(actor, x + 8, y + 64)
  290.      draw_actor_hp(actor, x + 152, y + 32)
  291.      draw_actor_sp(actor, x + 152, y + 64)
  292.    end
  293. end  
  294. #--------------------------------------------------------------------------
  295. # ● 刷新光标矩形
  296. #--------------------------------------------------------------------------
  297. def update_cursor_rect   
  298.    # 光标位置 -1 为全选、-2 以下为单独选择 (使用者自身)
  299.    if @index <= -2
  300.      self.cursor_rect.set(0, (@index + 10) * 112, self.width - 32, 96)
  301.    elsif @index == -1
  302.      self.cursor_rect.set(0, 0, self.width - 32, @item_max * 112 - 20)
  303.    else
  304.      tpy = @index * 112 - self.oy
  305.      self.cursor_rect.set(0, tpy, self.width - 32, 96)
  306.      if @index < @top_row
  307.        @top_row = @index
  308.        self.oy = @top_row *112
  309.      end
  310.      if @index > @top_row+3
  311.        @top_row = @index-3
  312.        self.oy = @top_row *112
  313.      end
  314.    end   
  315. end
  316. end
  317. #==============================================================================
  318. # ■ Window_MenuStatus
  319. #------------------------------------------------------------------------------
  320. #  显示菜单画面和同伴状态的窗口。
  321. #==============================================================================

  322. class Window_MenuStatus < Window_Selectable
  323.   #--------------------------------------------------------------------------
  324.   # ● 初始化目标
  325.   #--------------------------------------------------------------------------
  326.   def initialize
  327.     super(0, 0, 480, 480)
  328.     self.contents = Bitmap.new(width - 32,  $game_party.actors.size*112)
  329.     refresh
  330.     @top_row = 0
  331.     self.active = false
  332.     self.index = -1
  333.   end
  334.   #--------------------------------------------------------------------------
  335.   # ● 刷新
  336.   #--------------------------------------------------------------------------
  337.   def refresh
  338.     self.contents.clear
  339.     @item_max = $game_party.actors.size
  340.     for i in 0...$game_party.actors.size
  341.       x = 64
  342.       y = i * 112
  343.       if i <=3
  344.         self.contents.font.color = Color.new(255,255,0,255)
  345.         self.contents.draw_text(x,y,340,32,"[出战]",2)
  346.         self.contents.font.color = normal_color
  347.       else
  348.         self.contents.font.color = Color.new(128,128,128,255)
  349.         self.contents.draw_text(x,y,340,32,"[待机]",2)
  350.         self.contents.font.color = normal_color
  351.       end      
  352.       actor = $game_party.actors[i]
  353.       draw_actor_graphic(actor, x - 40, y + 80)
  354.       draw_actor_name(actor, x, y)
  355.       draw_actor_class(actor, x + 144, y)
  356.       draw_actor_level(actor, x, y + 32)
  357.       draw_actor_state(actor, x + 90, y + 32)
  358.       draw_actor_exp(actor, x, y + 64)
  359.       draw_actor_hp(actor, x + 236, y + 32)
  360.       draw_actor_sp(actor, x + 236, y + 64)
  361.     end
  362.   end
  363.   #--------------------------------------------------------------------------
  364.   # ● 刷新光标矩形
  365.   #--------------------------------------------------------------------------
  366.   def update_cursor_rect
  367.     if @index < 0
  368.       self.cursor_rect.empty
  369.     else
  370.       tpy = @index * 112 - self.oy
  371.       self.cursor_rect.set(0, tpy, self.width - 32, 96)
  372.       if @index < @top_row
  373.         @top_row = @index
  374.         self.oy = @top_row *112
  375.       end
  376.       if @index > @top_row+3
  377.         @top_row = @index-3
  378.         self.oy = @top_row *112
  379.       end
  380.     end
  381.   end
  382. end

  383. class Game_Party
  384.   #--------------------------------------------------------------------------
  385.   # ● 全灭判定
  386.   #--------------------------------------------------------------------------
  387.   def all_dead?
  388.     # 同伴人数为 0 的情况下
  389.     if $game_party.actors.size == 0
  390.       return false
  391.     end
  392.     # 同伴中无人 HP 在 0 以上
  393.     for i in 0..3
  394.       if @actors[i] != nil and@actors[i].hp >0
  395.         return false
  396.       end
  397.     end
  398.     # 全灭
  399.     return true
  400.   end
  401.   #--------------------------------------------------------------------------
  402.   # ● 加入同伴
  403.   #     actor_id : 角色 ID
  404.   #--------------------------------------------------------------------------
  405.   def add_actor(actor_id)
  406.     # 获取角色
  407.     actor = $game_actors[actor_id]
  408.     # 同伴人数未满 4 人、本角色不在队伍中的情况下
  409.     if not @actors.include?(actor)
  410.       # 添加角色
  411.       @actors.push(actor)
  412.       # 还原主角
  413.       $game_player.refresh
  414.     end
  415.   end
  416. end

  417. #==============================================================================
  418. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  419. #==============================================================================


  420. class Scene_Menu
  421. # --------------------------------
  422.   def initialize(menu_index = 0)
  423.     @menu_index = menu_index
  424.     @changer = 0
  425.     @where = 0
  426.     @checker = 0
  427.   end
  428. # --------------------------------
  429.   def main
  430.     s1 = $data_system.words.item
  431.     s2 = $data_system.words.skill
  432.     s3 = $data_system.words.equip
  433.     s4 = "状态"
  434.     s5 = "记录"
  435.     s6 = "离开游戏"
  436.     s7 = "调整队伍"
  437.     @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
  438.     @command_window.index = @menu_index
  439.     if $game_party.actors.size == 0
  440.       @command_window.disable_item(0)
  441.       @command_window.disable_item(1)
  442.       @command_window.disable_item(2)
  443.       @command_window.disable_item(3)
  444.     end
  445.     if $game_system.save_disabled
  446.       @command_window.disable_item(4)
  447.     end
  448.     if $game_party.actors.size == 1
  449.       @command_window.disable_item(6)
  450.     end
  451.     @playtime_window = Window_PlayTime.new
  452.     @playtime_window.x = 0
  453.     @playtime_window.y = 320
  454.     @gold_window = Window_Gold.new
  455.     @gold_window.x = 0
  456.     @gold_window.y = 416
  457.     @status_window = Window_MenuStatus.new
  458.     @status_window.x = 160
  459.     @status_window.y = 0
  460.     Graphics.transition
  461.     loop do
  462.       Graphics.update
  463.       Input.update
  464.       update
  465.       if $scene != self
  466.         break
  467.       end
  468.     end
  469.     Graphics.freeze
  470.     @command_window.dispose
  471.     @playtime_window.dispose
  472.     @gold_window.dispose
  473.     @status_window.dispose
  474.   end
  475. # --------------------------------
  476.   def update
  477.     @command_window.update
  478.     @playtime_window.update
  479.     @gold_window.update
  480.     @status_window.update
  481.     if @command_window.active
  482.       update_command
  483.       return
  484.     end
  485.     if @status_window.active
  486.       update_status
  487.       return
  488.     end
  489.   end
  490. # --------------------------------
  491.   def update_command
  492.     if Input.trigger?(Input::B)
  493.       $game_system.se_play($data_system.cancel_se)
  494.       $scene = Scene_Map.new
  495.       return
  496.     end
  497.     if Input.trigger?(Input::C)
  498.       if $game_party.actors.size == 0 and @command_window.index < 4
  499.         $game_system.se_play($data_system.buzzer_se)
  500.         return
  501.       end
  502.       if $game_party.actors.size == 1 and @command_window.index ==6
  503.         $game_system.se_play($data_system.buzzer_se)
  504.         return
  505.       end
  506.       case @command_window.index
  507.       when 0
  508.         $game_system.se_play($data_system.decision_se)
  509.         $scene = Scene_Item.new
  510.       when 1
  511.         $game_system.se_play($data_system.decision_se)
  512.         @command_window.active = false
  513.         @status_window.active = true
  514.         @status_window.index = 0
  515.       when 2
  516.         $game_system.se_play($data_system.decision_se)
  517.         @command_window.active = false
  518.         @status_window.active = true
  519.         @status_window.index = 0
  520.       when 3
  521.         $game_system.se_play($data_system.decision_se)
  522.         @command_window.active = false
  523.         @status_window.active = true
  524.         @status_window.index = 0
  525. ############################################################
  526.       when 4
  527.         #if $game_system.save_disabled
  528.         #  $game_system.se_play($data_system.buzzer_se)
  529.         #  return
  530.         #end
  531.         $game_system.se_play($data_system.decision_se)
  532.         #$scene = Scene_Save.new
  533.         $scene = Scene_Loadsave.new#运行存取档脚本
  534. ############################################################
  535.       when 5
  536.         $game_system.se_play($data_system.decision_se)
  537.         $scene = Scene_End.new
  538.       when 6
  539.         $game_system.se_play($data_system.decision_se)
  540.         @checker = 0
  541.         @command_window.active = false
  542.         @status_window.active = true
  543.         @status_window.index = 0
  544.       end
  545.       return
  546.     end
  547.   end
  548. # --------------------------------
  549.   def update_status
  550.     if Input.trigger?(Input::B)
  551.       $game_system.se_play($data_system.cancel_se)
  552.       @command_window.active = true
  553.       @status_window.active = false
  554.       @status_window.index = -1
  555.       return
  556.     end
  557.     if Input.trigger?(Input::C)
  558.       case @command_window.index
  559.       when 1
  560.         if $game_party.actors[@status_window.index].restriction >= 2
  561.           $game_system.se_play($data_system.buzzer_se)
  562.           return
  563.         end
  564.         $game_system.se_play($data_system.decision_se)
  565.         $scene = Scene_Skill.new(@status_window.index)
  566.       when 2
  567.         $game_system.se_play($data_system.decision_se)
  568.         $scene = Scene_Equip.new(@status_window.index)
  569.       when 3
  570.         $game_system.se_play($data_system.decision_se)
  571.         $scene = Scene_Status.new(@status_window.index)
  572.       when 6
  573.         $game_system.se_play($data_system.decision_se)
  574.         if @status_window.index==0
  575.           $game_system.se_play($data_system.cancel_se)
  576.           return
  577.         end
  578.         if @checker == 0
  579.           @changer = $game_party.actors[@status_window.index]
  580.           @where = @status_window.index
  581.           @checker = 1
  582.         else
  583.           $game_party.actors[@where] = $game_party.actors[@status_window.index]
  584.           $game_party.actors[@status_window.index] = @changer
  585.           @checker = 0
  586.           @status_window.refresh
  587.         end
  588.       
  589.       end
  590.       return
  591.     end
  592.   end
  593. end



  594.     #插件(升级加点,换队伍顺序,人物介绍,动态行走图)

  595. #==============================================================================
  596. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  597. #==============================================================================


  598. # 作者: 柳柳
  599. #
  600. # 说明:这是功能我再比较早期的时候发布在幻森,不过那时候比较笨,方法很糟糕
  601. #       这次是拿上就可以用的。
  602. #
  603. # 感谢:Claimh的脚本使我想起这个功能重做了一遍,本想直接用他的,不过他的算法过分
  604. #       冗余了,没好意思用。
  605. #==============================================================================
  606. # 使用方法:默认情况下把静态图变为了走步图。如果想自行修改,提供功能如下:
  607. #
  608. # 角色走步图:draw_walk_actor_graphic
  609. # 角色转向图:draw_turn_actor_graphic
  610. #
  611. # 回复原有静态角色图:删除100行以后的内容。修改下面这个变量可以更改行走速度
  612. #==============================================================================

  613. WALK_REFRESH_FRAME_SPEED = 15  # 刷新的速度,越大越慢,你可以改为3左右试试看

  614. #==============================================================================
  615. # Window_Base
  616. #==============================================================================
  617. class Window_Base < Window
  618.   #--------------------------------------------------------------------------
  619.   # 初始化方法
  620.   #--------------------------------------------------------------------------
  621.   alias initialize_walk initialize
  622.   def initialize(x, y, width, height)
  623.     initialize_walk(x, y, width, height)
  624.     @start_walk = false
  625.     @turn_index = 0
  626.     @turn_phase = 0
  627.   end
  628.   #--------------------------------------------------------------------------
  629.   # ★  角色行走图
  630.   #     actor : 角色
  631.   #     x     : 描绘的 X 坐标
  632.   #     y     : 描绘的 Y 坐标
  633.   #--------------------------------------------------------------------------
  634.   def draw_walk_actor_graphic(actor, x, y)
  635.     bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
  636.     cw = bitmap.width / 4
  637.     ch = bitmap.height / 4
  638.     @start_turn = true
  639.     case @turn_phase
  640.     when 0
  641.       x_x = 0
  642.     when 1
  643.       x_x = cw
  644.     when 2
  645.       x_x = cw * 2
  646.     when 3
  647.       x_x = cw * 3
  648.     end
  649.     src_rect = Rect.new(x_x, 0, cw, ch)
  650.     self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  651.   end
  652.   #--------------------------------------------------------------------------
  653.   # ★  角色转向图
  654.   #     actor : 角色
  655.   #     x     : 描绘的 X 坐标
  656.   #     y     : 描绘的 Y 坐标
  657.   #--------------------------------------------------------------------------
  658.   def draw_turn_actor_graphic(actor, x, y)
  659.     bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
  660.     cw = bitmap.width / 4
  661.     ch = bitmap.height / 4
  662.     @start_turn = true
  663.     case @turn_phase
  664.     when 0
  665.       x_x = 0
  666.     when 1
  667.       x_x = ch
  668.     when 2
  669.       x_x = ch * 3
  670.     when 3
  671.       x_x = ch * 2
  672.     end
  673.     src_rect = Rect.new(0, x_x, cw, ch)
  674.     self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  675.   end
  676.   #--------------------------------------------------------------------------
  677.   #  更新(可别使用刷新,玩命耗费内存= =)
  678.   #--------------------------------------------------------------------------
  679.   alias walk_update update
  680.   def update
  681.     walk_update
  682.     if @start_turn == true
  683.       @turn_index += 1
  684.       if @turn_index == WALK_REFRESH_FRAME_SPEED
  685.         refresh
  686.         @turn_index = 0
  687.         @turn_phase = (@turn_phase+1)%4
  688.       end
  689.     end
  690.   end  
  691. end

  692. #==============================================================================
  693. # Window_Base
  694. #==============================================================================
  695. class Window_Base < Window
  696.   #--------------------------------------------------------------------------
  697.   # 把原有静态图改为动态走步图
  698.   #--------------------------------------------------------------------------
  699.   def draw_actor_graphic(actor, x, y)
  700.     draw_walk_actor_graphic(actor, x, y)
  701.   end
  702. end

  703. #==============================================================================
  704. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  705. #==============================================================================
复制代码

想当年我曾经整了一个,不知这个行不行。 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~




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