Project1

标题: 脚本冲突……高手帮下忙 [打印本页]

作者: cZooCz    时间: 2008-2-17 01:46
标题: 脚本冲突……高手帮下忙

  1. # ■ chaochao的人物仓库ver1.02正式版
  2. # 修改了Game_Party
  3. # 功能:
  4. # 用来存放角色的仓库……
  5. # 召唤画面用$scene = Chaochao_Scene_Party.new
  6. # 其它使用说明在代码里已经备注。
  7. #------------------------------------------------------------------------------
  8. # 作者:chaochao
  9. # http://zhuchao.go1.icpcn.com
  10. #==============================================================================
  11. class Chaochao_Window_PartyLeft < Window_Selectable
  12.   def initialize
  13.     super(0, 0, 320, 224)
  14.     self.contents = Bitmap.new(width - 32, height - 32)
  15.     self.index = 0
  16.     refresh
  17.   end
  18.   def actor
  19.     return @actors[self.index]
  20.   end
  21.   def refresh
  22.     if self.contents != nil
  23.       self.contents.dispose
  24.       self.contents = nil
  25.     end
  26.     @actors = []
  27.     for i in 0...$game_party.actors.size
  28.       @actors.push($game_party.actors[i])
  29.     end
  30.    
  31.     @item_max = 4
  32.     if @item_max > 0
  33.       self.contents = Bitmap.new(width - 32, (row_max+1) * 32)
  34.       for i in 0...@item_max
  35.         draw_item(i)
  36.       end
  37.     end
  38.   end
  39.   def draw_item(index)
  40.     if @actors[index] != nil
  41.       actor = @actors[index]
  42.       text = @actors[index].name
  43.       lv = @actors[index].level.to_s + " "
  44.       if $game_party.chaochao.include?(actor.id) or $game_party.actors.size <= 1
  45.         self.contents.font.color = Color.new(255, 0, 0) #不能被移动的颜色
  46.       else
  47.         self.contents.font.color = Color.new(0, 255, 0) #可以被移动的颜色
  48.       end
  49.       self.contents.draw_text(4, index * 32 + 32, 288, 32, text)
  50.       self.contents.font.color = normal_color
  51.       self.contents.font.size = 16
  52.       self.contents.draw_text(4, index * 32 + 36, 288, 32,  "Level:   ", 2)
  53.       colorx = [255.0000 - 255.0000/60 * @actors[index].level,0].max
  54.       colory = [255.0000 / 60 * @actors[index].level,255].min
  55.       self.contents.font.color = Color.new(colorx, colory, 0)
  56.       self.contents.draw_text(4, index * 32 + 36, 288, 32,  lv, 2)
  57.       self.contents.font.color = normal_color
  58.       self.contents.font.size = 22
  59.     else
  60.       self.contents.draw_text(4, index * 32 + 32, 288, 32,  "空")
  61.     end
  62.   end
  63.   def update_cursor_rect
  64.     if @index < 0
  65.       self.cursor_rect.empty
  66.       return
  67.     end
  68.     row = @index / @column_max
  69.     if row < self.top_row
  70.       self.top_row = row
  71.     end
  72.     if row > self.top_row + (self.page_row_max - 1)
  73.       self.top_row = row - (self.page_row_max - 1)
  74.     end
  75.     cursor_width = self.width / @column_max - 32
  76.     x = @index % @column_max * (cursor_width + 32)
  77.     y = @index / @column_max * 32 - self.oy + 32
  78.     self.cursor_rect.set(x, y, cursor_width, 32)
  79.   end
  80.   def item_max
  81.     return @item_max
  82.   end
  83.   def actor?(index)
  84.     return @actors[index] == nil ? false : true
  85.   end
  86.   def set_index(x)
  87.     @index = x
  88.   end
  89. end

  90. #------------------------------------------------------------------------------

  91. class Chaochao_Window_PartyRight < Window_Selectable
  92.   def initialize
  93.     super(320, 0, 320, 224)
  94.     self.contents = Bitmap.new(width - 32, height - 32)
  95.     self.index = -1
  96.     refresh
  97.   end
  98.   def actor
  99.     return @actors[self.index]
  100.   end
  101.   def refresh
  102.     if self.contents != nil
  103.       self.contents.dispose
  104.       self.contents = nil
  105.     end
  106.     @actors = []
  107.     for i in 0...$game_party.actors2.size
  108.       @actors.push($game_party.actors2[i])
  109.     end
  110.    
  111.     @item_max = $game_party.actors2.size
  112.     if @item_max > 0
  113.       self.contents = Bitmap.new(width - 32, row_max * 32)
  114.       for i in 0...@item_max
  115.         draw_item(i)
  116.       end
  117.     elsif @item_max == 0
  118.       
  119.     end
  120.   end
  121.   def draw_item(index)
  122.     actor = @actors[index]
  123.     text = @actors[index].name
  124.     lv = @actors[index].level.to_s + " "
  125.     if $game_party.chaochao2.include?(actor.id) or $game_party.actors.size >= 4
  126.         self.contents.font.color = Color.new(255, 0, 0) #不能被移动的颜色
  127.       else
  128.         self.contents.font.color = Color.new(0, 255, 0) #可以被移动的颜色
  129.       end
  130.     self.contents.draw_text(4, index * 32, 288, 32, text)
  131.     self.contents.font.color = normal_color
  132.     self.contents.font.size = 16
  133.     self.contents.draw_text(4, index * 32 + 4, 288, 32,  "Level:   ", 2)
  134.     colorx = [255.0000 - 255.0000/60 * @actors[index].level,0].max
  135.     colory = [255.0000 / 60 * @actors[index].level,255].min
  136.     self.contents.font.color = Color.new(colorx, colory, 0)
  137.     self.contents.draw_text(4, index * 32 + 4, 288, 32,  lv, 2)
  138.     self.contents.font.color = normal_color
  139.     self.contents.font.size = 22
  140.   end
  141.   def update_cursor_rect
  142.     if @index < 0
  143.       self.cursor_rect.empty
  144.       return
  145.     end
  146.     row = @index / @column_max
  147.     if row < self.top_row
  148.       self.top_row = row
  149.     end
  150.     if row > self.top_row + (self.page_row_max - 1)
  151.       self.top_row = row - (self.page_row_max - 1)
  152.     end
  153.     cursor_width = self.width / @column_max - 32
  154.     x = @index % @column_max * (cursor_width + 32)
  155.     y = @index / @column_max * 32 - self.oy
  156.     self.cursor_rect.set(x, y, cursor_width, 32)
  157.   end
  158.   def item_max
  159.     return @item_max
  160.   end
  161.   def actor?(index)
  162.     return @actors[index] == nil ? false : true
  163.   end
  164.   def set_index(x)
  165.     @index = x
  166.   end
  167. end

  168. #------------------------------------------------------------------------------

  169. class Chaochao_Window_PartyData < Window_Base
  170.   
  171.   def initialize
  172.     super(0, 224, 640, 256)
  173.     self.contents = Bitmap.new(width - 32, height - 32)
  174.     @actor = nil
  175.   end
  176.   
  177.   def set_actor(actor)
  178.     self.contents.clear
  179.     draw_actor_name(actor, 4, 0)
  180.     draw_actor_state(actor, 140, 0)
  181.     draw_actor_hp(actor, 284, 0)
  182.     draw_actor_sp(actor, 460, 0)
  183.     @actor = actor
  184.     self.visible = true
  185.   end
  186.   def clear
  187.     self.contents.clear
  188.   end
  189. end

  190. #------------------------------------------------------------------------------

  191. class Game_Party
  192.   attr_reader   :actors2
  193.   attr_reader   :chaochao#不能从队伍向备用角色移动的角色ID
  194.   attr_reader   :chaochao2#不能从备用角色向队伍移动的角色ID
  195.   def initialize
  196.     @actors = []
  197.     @gold = 0
  198.     @steps = 0
  199.     @items = {}
  200.     @weapons = {}
  201.     @armors = {}
  202.     @actors2 = []
  203.     @chaochao = []
  204.     @chaochao2 = []
  205.   end
  206.   def add_actor(actor_id,type=1)#type为1是向队伍中添加,为2则相反。
  207.     case type
  208.     when 1
  209.       if $game_actors[actor_id] != nil
  210.         actor = $game_actors[actor_id]
  211.         #如果队伍没有满和队伍中没有此角色
  212.         if @actors.size < 4 and not @actors.include?(actor) and not @actors2.include?(actor)
  213.           @actors.push(actor)
  214.           $game_player.refresh
  215.         end
  216.       end
  217.     when 2
  218.       if $game_actors[actor_id] != nil
  219.         actor = $game_actors[actor_id]
  220.         #如果角色不在队伍中和不在备用角色队伍中的情况下
  221.         #向备用角色中添加角色
  222.         if not @actors.include?(actor) and not @actors2.include?(actor)
  223.           @actors2.push(actor)
  224.           $game_player.refresh
  225.         end
  226.       end
  227.     end
  228.   end
  229.   
  230.   def huanren(index,type=1)#type为1是从备用角色向队伍中移动,为2则相反。
  231.     actor = $game_actors[index]
  232.     case type
  233.     when 1
  234.       if @actors.size < 4 and @actors2.include?(actor) and not @chaochao2.include?(index) and not @actors.include?(actor)
  235.         @actors.push(actor)
  236.         @actors2.delete(actor)
  237.         $game_system.se_play($data_system.decision_se)
  238.         $game_player.refresh
  239.       end
  240.     when 2
  241.       if @actors.include?(actor) and not @chaochao.include?(index) and not @actors2.include?(actor)
  242.         @actors2.push(actor)
  243.         @actors.delete(actor)
  244.         $game_system.se_play($data_system.decision_se)
  245.         $game_player.refresh
  246.       end
  247.     end
  248.   end
  249.   
  250.   #type1,1是操作队伍中的角色能否向备用队伍移动,2则相反。
  251.   #type2,1是添加不能移动的,2是删除不能移动的。
  252.   def yidong(actor_id,type1,type2=1)
  253.     case type2
  254.     when 1
  255.       case type1
  256.       when 1
  257.         @chaochao.push(actor_id)
  258.       when 2
  259.         @chaochao2.push(actor_id)
  260.       end
  261.     when 2
  262.       case type1
  263.       when 1
  264.         @chaochao.delete(actor_id)
  265.       when 2
  266.         @chaochao2.delete(actor_id)
  267.       end
  268.     end
  269.   end
  270.   
  271.   #type,1从队伍中离开,2从备用角色中离开,3从队伍和备用角色中离开。
  272.   def remove_actor(actor_id,type=1)
  273.     actor = $game_actors[actor_id]
  274.     case type
  275.     when 1
  276.       @actors.delete(actor)
  277.       $game_player.refresh
  278.     when 2
  279.       @actors2.delete(actor)
  280.       $game_player.refresh
  281.     when 3
  282.       @actors.delete(actor)
  283.       @actors2.delete(actor)
  284.       $game_player.refresh
  285.     end
  286.   end
  287.   
  288.   def refresh
  289.     new_actors = []
  290.     new_actors2 = []
  291.     for i in [email protected]
  292.       if $data_actors[@actors[i].id] != nil
  293.         new_actors.push($game_actors[@actors[i].id])
  294.       end
  295.     end
  296.     @actors = new_actors
  297.     for i in [email protected]
  298.       if $data_actors[@actors2[i].id] != nil
  299.         new_actors2.push($game_actors[@actors2[i].id])
  300.       end
  301.     end
  302.     @actors2 = new_actors2
  303.   end
  304. end

  305. #------------------------------------------------------------------------------

  306. class Chaochao_Scene_Party
  307.   def main
  308.     @left_temp_command = 0
  309.     @right_temp_command = 0
  310.     @temp = 0
  311.     @left_window = Chaochao_Window_PartyLeft.new
  312.     @left_window.active = true
  313.     @right_window = Chaochao_Window_PartyRight.new
  314.     @right_window.active = false
  315.     @data_window = Chaochao_Window_PartyData.new
  316.     update_data
  317.     Graphics.transition
  318.     loop do
  319.       Graphics.update
  320.       Input.update
  321.       update
  322.       if $scene != self
  323.         break
  324.       end
  325.     end
  326.     Graphics.freeze
  327.     @left_window.dispose
  328.     @right_window.dispose
  329.     @data_window.dispose
  330.   end
  331.   
  332.   def update
  333.     @left_window.update
  334.     @right_window.update
  335.     @data_window.update
  336.     update_command
  337.     update_data
  338.   end
  339.   
  340.   def update_command
  341.     if Input.trigger?(Input::B)
  342.       $game_system.se_play($data_system.cancel_se)
  343.       #画面切换
  344.       $scene = Scene_Map.new
  345.       return
  346.     end
  347.     if @left_window.active
  348.       update_left
  349.       return
  350.     end
  351.     if @right_window.active
  352.       update_right
  353.       return
  354.     end
  355.   end
  356.   
  357.   def update_left
  358.     if Input.trigger?(Input::RIGHT)
  359.       if @right_window.item_max > 0
  360.         @left_temp_command = @left_window.index
  361.         @left_window.set_index(-1)
  362.         $game_system.se_play($data_system.cursor_se)
  363.         @left_window.active = false
  364.         @right_window.active = true
  365.         @left_window.refresh
  366.         @right_window.refresh
  367.         @right_window.set_index(@right_temp_command)
  368.         return
  369.       else
  370.         $game_system.se_play($data_system.buzzer_se)
  371.         return
  372.       end
  373.     end
  374.     if Input.trigger?(Input::C)
  375.       if @left_window.active and @left_window.actor?(@left_window.index) and $game_party.actors.size > 1 and not $game_party.chaochao.include?($game_party.actors[@left_window.index].id)
  376.         $game_party.huanren($game_party.actors[@left_window.index].id,2)#type为1是从备用角色向队伍中移动,为2则相反。
  377.         @left_window.refresh
  378.         @right_window.refresh
  379.       else
  380.         $game_system.se_play($data_system.buzzer_se)
  381.       end
  382.     end
  383.     return
  384.   end
  385.   
  386.   def update_right
  387.     if Input.trigger?(Input::LEFT)
  388.       if @left_window.item_max > 0
  389.         @right_temp_command = @right_window.index
  390.         @right_window.set_index(-1)
  391.         $game_system.se_play($data_system.cursor_se)
  392.         @left_window.active = true
  393.         @right_window.active = false
  394.         @left_window.refresh
  395.         @right_window.refresh
  396.         @left_window.set_index(@left_temp_command)
  397.         return
  398.       else
  399.         $game_system.se_play($data_system.buzzer_se)
  400.         return
  401.       end
  402.     end
  403.     if Input.trigger?(Input::C)
  404.       if $game_party.actors.size >= 4
  405.         $game_system.se_play($data_system.buzzer_se)
  406.         return
  407.       end
  408.       if @right_window.active and @right_window.actor?(@right_window.index) and not $game_party.chaochao2.include?($game_party.actors2[@right_window.index].id)
  409.         $game_party.huanren($game_party.actors2[@right_window.index].id,1)#type为1是从备用角色向队伍中移动,为2则相反。
  410.         if $game_party.actors2.size == 0
  411.           @right_temp_command = @right_window.index
  412.           @right_window.set_index(-1)
  413.           $game_system.se_play($data_system.cursor_se)
  414.           @left_window.active = true
  415.           @right_window.active = false
  416.           @left_window.refresh
  417.           @right_window.refresh
  418.           @left_window.set_index(@left_temp_command)
  419.         end
  420.         if @right_window.index > 0
  421.           @right_window.set_index(@right_window.index-1)
  422.         end
  423.         @left_window.refresh
  424.         @right_window.refresh
  425.       else
  426.         $game_system.se_play($data_system.buzzer_se)
  427.       end
  428.     end
  429.     return
  430.   end
  431.   
  432.   def update_data
  433.     if @left_window.active
  434.       if $game_party.actors[@left_window.index] != nil
  435.         @data_window.set_actor($game_party.actors[@left_window.index])
  436.       else
  437.         @data_window.clear
  438.       end
  439.       return
  440.     end
  441.     if @right_window.active
  442.       if $game_party.actors2[@right_window.index] != nil
  443.         @data_window.set_actor($game_party.actors2[@right_window.index])
  444.       else
  445.         @data_window.clear
  446.       end
  447.       return
  448.     end
  449.   end
  450. end
复制代码
这是人物仓库脚本  2者有冲突说下冲突:使用图签脚本的话人物仓库     if $game_party.chaochao.include?(actor.id) or $game_party.actors.size <= 1这句出错
使用人物仓库的话战斗结束时出错  怪物图签:if @enemy_info[enemy_id] == 2这句出错
脚本高手来解决下。
[LINE]1,#dddddd[/LINE]此贴于 2008-2-17 1:01:48 被版主凌冰提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: cZooCz    时间: 2008-2-17 01:48
  1. #================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #===================================================================
  4. #——————————————————————————————————————
  5. #魔物图鉴+介绍
  6. #
  7. #战斗终了时自动添加敌人进入图鉴(class Scene_Battle start_phase5 追加。

  8. #目前与各种战斗系统没有发现冲突)
  9. #不想加入图鉴的怪物设置其“不加入图鉴”属性有效度为A即可
  10. #图鉴完成度的表示功能追加
  11. #SHOW_COMPLETE_TYPE 的数值可以设定
  12. #当为1,显示现有个数/总数,当为2,显示完成百分比,当为3,全显示。
  13. #使用方法:$scene = Scene_MonsterBook.new
  14. #数据库中属性里面那些种族特效的位置,建议把默认的“对 不死”之类改成“不死”,

  15. #不然显示会很奇怪
  16. #由于雷达图的设计问题,只支持8项属性
  17. #默认种族特效处理属性中编号9到编号16,

  18. #如果你做了修改请自行改动380行左右的for i in 9..16这一句代码
  19. #显示各种信息位于630行左右,想不显示的话只要删除相应语句
  20. CHARA_INFO=[]#怪物的介绍,对应怪物id,空格为换行,

  21. #同时也会自动换行,没有写介绍的怪物会自动显示“无详细信息”
  22. CHARA_INFO[1] = "最难看的妖怪"
  23. CHARA_INFO[2] = "怪物介绍2"
  24. CHARA_INFO[3] = "生活在潮湿的沼泽地区的变异生物,性情凶暴,经常会袭击各种路过的生物"
  25. #没有信息测试,4号怪物
  26. #=============
  27. #雷达图相关处理部分
  28. #=============
  29. class Bitmap
  30. def draw_line(start_x, start_y, end_x, end_y, start_color, width = 1, end_color = start_color)
  31. distance = (start_x - end_x).abs + (start_y - end_y).abs
  32. if end_color == start_color
  33. for i in 1..distance
  34. x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
  35. y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
  36. if width == 1
  37. self.set_pixel(x, y, start_color)
  38. else
  39. self.fill_rect(x, y, width, width, start_color)
  40. end
  41. end
  42. else
  43. for i in 1..distance
  44. x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
  45. y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
  46. r = start_color.red * (distance-i)/distance + end_color.red * i/distance
  47. g = start_color.green * (distance-i)/distance + end_color.green * i/distance
  48. b = start_color.blue * (distance-i)/distance + end_color.blue * i/distance
  49. a = start_color.alpha * (distance-i)/distance + end_color.alpha * i/distance
  50. if width == 1
  51. self.set_pixel(x, y, Color.new(r, g, b, a))
  52. else
  53. self.fill_rect(x, y, width, width, Color.new(r, g, b, a))
  54. end
  55. end
  56. end
  57. end
  58. end
  59. #=============
  60. # Graphic_Def_Elem
  61. #=============
  62. class Window_Base
  63. FONT_SIZE = 18
  64. WORD_ELEMENT_GUARD = "属性有效度"
  65. NUMBER_OF_ELEMENTS = 8
  66. ELEMENT_ORDER = [1,3,8,5,2,4,7,6]
  67. GRAPH_SCALINE_COLOR = Color.new(255, 255, 255, 128)
  68. GRAPH_SCALINE_COLOR_SHADOW = Color.new( 0, 0, 0, 192)
  69. GRAPH_LINE_COLOR = Color.new(255, 255, 64, 255)
  70. GRAPH_LINE_COLOR_MINUS = Color.new( 64, 255, 255, 255)
  71. GRAPH_LINE_COLOR_PLUS = Color.new(255, 64, 64, 255)
  72. end

  73. #——————————————————————————————————————
  74. module Enemy_Book_Config
  75. DROP_ITEM_NEED_ANALYZE = true #显示物品
  76. EVA_NAME = "回避修正"              #回避修正的名称(因为数据库中没有定义)
  77. SHOW_COMPLETE_TYPE = 3         #图鉴完成率表示方法
  78. end
  79. class Data_MonsterBook
  80. #--------------------------------------------------------------------------
  81. # ● 图鉴用ID設定
  82. #--------------------------------------------------------------------------
  83. def enemy_book_id_set
  84.    data = [0]
  85.    data[1] = 2
  86.    data[2] = 1
  87.    data[3] = 15
  88.    data[4] = 25
  89.    data[5] = 18
  90.    data[6] = 30
  91.    return data
  92. end
  93. end
  94. class Game_Temp
  95. attr_accessor :enemy_book_data
  96. alias temp_enemy_book_data_initialize initialize
  97. def initialize
  98.    temp_enemy_book_data_initialize
  99.    @enemy_book_data = Data_MonsterBook.new
  100. end
  101. end

  102. class Game_Party
  103. #==============================================
  104. #--------------------------------------------------------------------------
  105.   # ● 公開インスタンス変数
  106.   #--------------------------------------------------------------------------
  107.   attr_reader   :actors                   # アクター
  108.   attr_reader   :gold                     # ゴールド
  109.   attr_reader   :steps                    # 歩数
  110.   attr_accessor :mission                  # 任务★★★★★★★★★★★★★
  111.   attr_accessor   :pr                  # 当前章节数★★★★★★★★★★★★★
  112.   attr_reader   :prname
  113.   #--------------------------------------------------------------------------
  114.   # ● オブジェクト初期化
  115.   #--------------------------------------------------------------------------
  116.   def initialize
  117.     # アクターの配列を作成
  118.     @actors = []
  119.     # ゴールドと歩数を初期化
  120.     @gold = 0
  121.     @steps = 0
  122.     # アイテム、武器、防具の所持数ハッシュを作成
  123.     @items = {}
  124.     @weapons = {}
  125.     @armors = {}
  126.   end
  127. #==============================================
  128. attr_accessor :enemy_info               # 出会った敵情報(図鑑用)

  129. #--------------------------------------------------------------------------
  130. # ● オブジェクト初期化
  131. #--------------------------------------------------------------------------
  132. alias book_info_initialize initialize
  133. def initialize
  134.    book_info_initialize
  135.    @enemy_info = {}
  136. end

  137. #--------------------------------------------------------------------------
  138. # ● エネミー情報の追加(図鑑用)
  139. #     type : 通常遭遇かアナライズか 0:通常 1:アナライズ -1:情報削除
  140. #     0:無遭遇 1:遭遇済 2:アナライズ済
  141. #--------------------------------------------------------------------------
  142. def add_enemy_info(enemy_id, type = 0)
  143.    case type
  144.    when 0
  145.      if @enemy_info[enemy_id] == 2
  146.        return false
  147.      end
  148.      @enemy_info[enemy_id] = 1
  149.    when 1
  150.      @enemy_info[enemy_id] = 2
  151.    when -1
  152.      @enemy_info[enemy_id] = 0
  153.    end
  154. end
  155. #--------------------------------------------------------------------------
  156. # ● 魔物図鑑の最大登録数を取得
  157. #--------------------------------------------------------------------------
  158. def enemy_book_max
  159.    return $game_temp.enemy_book_data.id_data.size - 1
  160. end
  161. #--------------------------------------------------------------------------
  162. # ● 魔物図鑑の現在登録数を取得
  163. #--------------------------------------------------------------------------
  164. def enemy_book_now
  165.    now_enemy_info = @enemy_info.keys
  166.    # 登録無視の属性IDを取得
  167.    no_add = $game_temp.enemy_book_data.no_add_element
  168.    new_enemy_info = []
  169.    for i in now_enemy_info
  170.      enemy = $data_enemies[i]
  171.      next if enemy.name == ""
  172.      if enemy.element_ranks[no_add] == 1
  173.        next
  174.      end
  175.      new_enemy_info.push(enemy.id)
  176.    end
  177.    return new_enemy_info.size
  178. end
  179. #--------------------------------------------------------------------------
  180. # ● 魔物図鑑の完成率を取得
  181. #--------------------------------------------------------------------------
  182. def enemy_book_complete_percentage
  183.    e_max = enemy_book_max.to_f
  184.    e_now = enemy_book_now.to_f
  185.    comp = e_now / e_max * 100
  186.    return comp.truncate
  187. end
  188. end

  189. class Interpreter
  190. def enemy_book_max
  191.    return $game_party.enemy_book_max
  192. end
  193. def enemy_book_now
  194.    return $game_party.enemy_book_now
  195. end
  196. def enemy_book_comp
  197.    return $game_party.enemy_book_complete_percentage
  198. end
  199. end

  200. class Scene_Battle
  201. alias add_enemy_info_start_phase5 start_phase5
  202. def start_phase5
  203.    for enemy in $game_troop.enemies
  204.      # エネミーが隠れ状態でない場合
  205.      unless enemy.hidden
  206.        # 敵遭遇情報追加
  207.        $game_party.add_enemy_info(enemy.id, 0)
  208.      end
  209.    end
  210.    add_enemy_info_start_phase5
  211. end
  212. end

  213. class Window_Base < Window
  214. #--------------------------------------------------------------------------
  215. # ● エネミーの戦闘後獲得アイテムの描画
  216. #--------------------------------------------------------------------------
  217. def draw_enemy_drop_item(enemy, x, y)
  218.    self.contents.font.color = normal_color
  219.    treasures = []
  220.    if enemy.item_id > 0
  221.      treasures.push($data_items[enemy.item_id])
  222.    end
  223.    if enemy.weapon_id > 0
  224.      treasures.push($data_weapons[enemy.weapon_id])
  225.    end
  226.    if enemy.armor_id > 0
  227.      treasures.push($data_armors[enemy.armor_id])
  228.    end
  229.    # 現状ではとりあえず1つのみ描画
  230.    if treasures.size > 0
  231.      item = treasures[0]
  232.      bitmap = RPG::Cache.icon(item.icon_name)
  233.      opacity = 255
  234.      self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  235.      name = treasures[0].name
  236.    else
  237.      self.contents.font.color = disabled_color
  238.      name = "无"
  239.    end
  240.    self.contents.draw_text(x+28, y, 212, 32, name)
  241. end
  242. #--------------------------------------------------------------------------
  243. # ● エネミーの図鑑IDの描画
  244. #--------------------------------------------------------------------------
  245. def draw_enemy_book_id(enemy, x, y)
  246.    self.contents.font.color = normal_color
  247.    id = $game_temp.enemy_book_data.id_data.index(enemy.id)
  248.    self.contents.draw_text(x, y, 32, 32, id.to_s)
  249. end
  250. #--------------------------------------------------------------------------
  251. # ● 敌人简介描绘
  252. #--------------------------------------------------------------------------
  253. def draw_enemy_other(enemy, x, y)
  254.    if CHARA_INFO[enemy.id]==nil
  255.     CHARA_INFO[enemy.id] = "没有相关资料"
  256.   end
  257.    self.contents.font.size=16
  258.    x+=self.contents.text_size("").width
  259.    info = CHARA_INFO[enemy.id]
  260.    s=info.scan(/./)
  261.     #一行显示21个字
  262.     for i in s
  263.       sss = self.contents.text_size(i)
  264.       
  265.       if  i==" "
  266.         y+=16
  267.         x=0
  268.       elsif (x+sss.width)>(width - 32-260)
  269.         y+=16
  270.         x=0
  271.         self.contents.draw_text(x, y, sss.width, sss.height, i)
  272.         x+=sss.width
  273.       else
  274.       self.contents.draw_text(x, y, sss.width, sss.height, i)
  275.       x+=sss.width
  276.       end
  277.     end
  278.   end
  279.    #--------------------------------------------------------------------------
  280. # ● 敌人特技描绘
  281. #--------------------------------------------------------------------------
  282. def draw_enemy_action(enemy, x, y)
  283.    self.contents.font.size=16
  284.    yy=y
  285.    self.contents.font.color = system_color
  286.    self.contents.draw_text(x, yy, 80, 18,"行动列表")
  287.    self.contents.font.color = normal_color
  288.    for action in enemy.actions
  289.      yy+=18
  290.      if action.kind==0
  291.        case action.basic
  292.         when 0
  293.           ac="普通攻击"
  294.         when 1
  295.           ac="防御"
  296.         when 2
  297.           ac="逃跑"
  298.         when 3
  299.           ac="无"
  300.         end
  301.      self.contents.draw_text(x, yy, 160, 18, ac )
  302.      end
  303.      if action.kind==1
  304.      self.contents.draw_text(x, yy, 160, 18, $data_skills[action.skill_id].name )
  305.      end
  306.    end
  307. end
  308. #雷达图描绘
  309.   #===================================================================
  310.   def draw_actor_element_radar_graph(actor, x, y)
  311.     radius = 56
  312. cx = x + radius + FONT_SIZE + 48
  313. cy = y + radius + FONT_SIZE + 32
  314. self.contents.font.color = system_color
  315. self.contents.draw_text(x, y, 104, 32, WORD_ELEMENT_GUARD)
  316. for loop_i in 0..NUMBER_OF_ELEMENTS
  317. if loop_i == 0

  318. else
  319. @pre_x = @now_x
  320. @pre_y = @now_y
  321. @pre_ex = @now_ex
  322. @pre_ey = @now_ey
  323. @color1 = @color2
  324. end
  325. if loop_i == NUMBER_OF_ELEMENTS
  326. eo = ELEMENT_ORDER[0]
  327. else
  328. eo = ELEMENT_ORDER[loop_i]
  329. end
  330. er = actor.element_rate(eo)
  331. estr = $data_system.elements[eo]
  332. @color2 = er < 0 ? GRAPH_LINE_COLOR_MINUS : er > 100 ? GRAPH_LINE_COLOR_PLUS : GRAPH_LINE_COLOR
  333. if er <0
  334.   then xsh=true
  335. else xsh=false
  336. end
  337. er = er.abs
  338. th = Math::PI * (0.5 - 2.0 * loop_i / NUMBER_OF_ELEMENTS)
  339. @now_x = cx + (radius * Math.cos(th)).floor
  340. @now_y = cy - (radius * Math.sin(th)).floor
  341. @now_wx = cx + ((radius+FONT_SIZE*2/2) * Math.cos(th)).floor - FONT_SIZE
  342. @now_wy = cy - ((radius+FONT_SIZE*1/2) * Math.sin(th)).floor - FONT_SIZE/2
  343. @now_vx = cx + ((radius+FONT_SIZE*6/2) * Math.cos(th)).floor - FONT_SIZE
  344. @now_vy = cy - ((radius+FONT_SIZE*3/2) * Math.sin(th)).floor - FONT_SIZE/2
  345. @now_ex = cx + (er*radius/100 * Math.cos(th)).floor
  346. @now_ey = cy - (er*radius/100 * Math.sin(th)).floor
  347. if loop_i == 0
  348. @pre_x = @now_x
  349. @pre_y = @now_y
  350. @pre_ex = @now_ex
  351. @pre_ey = @now_ey
  352. @color1 = @color2
  353. else

  354. end
  355. next if loop_i == 0
  356. self.contents.draw_line(cx+1,cy+1, @now_x+1,@now_y+1, GRAPH_SCALINE_COLOR_SHADOW)
  357. self.contents.draw_line(@pre_x+1,@pre_y+1, @now_x+1,@now_y+1, GRAPH_SCALINE_COLOR_SHADOW)
  358. self.contents.draw_line(cx,cy, @now_x,@now_y, GRAPH_SCALINE_COLOR)
  359. self.contents.draw_line(@pre_x,@pre_y, @now_x,@now_y, GRAPH_SCALINE_COLOR)
  360. self.contents.draw_line(@pre_ex,@pre_ey, @now_ex,@now_ey, @color1, 2, @color2)
  361. self.contents.font.size = FONT_SIZE
  362. if xsh == true
  363.   then self.contents.font.color = Color.new(100,255,128,128)
  364.   sdd="-"
  365. else self.contents.font.color = system_color
  366.   sdd=""
  367. end
  368. self.contents.draw_text(@now_wx,@now_wy, FONT_SIZE*2, FONT_SIZE, estr, 1)
  369. self.contents.font.color = Color.new(255,255,255,128)
  370. self.contents.draw_text(@now_vx,@now_vy, FONT_SIZE*2, FONT_SIZE, sdd+er.to_s + "%", 2)
  371. end
  372. end
  373. #_----------------------------------------------
  374. def draw_race(enemy,x,y)
  375.       text="无"
  376.       text2="无"
  377.       for i in 9..16
  378.         if enemy.element_rate(i) == 200
  379.         text = $data_system.elements[i]
  380.         end
  381.         if enemy.element_rate(i) == 150
  382.         text2 =$data_system.elements[i]
  383.         end
  384.       end
  385.       self.contents.font.color = system_color
  386.       self.contents.draw_text(x, y, 80, 32,"主要种族")
  387.       self.contents.font.color = normal_color
  388.       self.contents.draw_text(x+80, y, 76, 32,text,2)
  389.       self.contents.font.color = system_color
  390.       self.contents.draw_text(x+160, y, 80, 32,"次要种族")
  391.       self.contents.font.color = normal_color
  392.       self.contents.draw_text(x+80+160, y, 76, 32,text2,2)
  393. end
  394.   
  395. #--------------------------------------------------------------------------
  396. # ● エネミーの名前の描画
  397. #     enemy : エネミー
  398. #     x     : 描画先 X 座標
  399. #     y     : 描画先 Y 座標
  400. #--------------------------------------------------------------------------
  401. def draw_enemy_name(enemy, x, y)
  402.    self.contents.font.color = normal_color
  403.    self.contents.draw_text(x, y, 152, 32, enemy.name)
  404. end
  405. #--------------------------------------------------------------------------
  406. # ● エネミーグラフィックの描画(アナライズ)
  407. #     enemy : エネミー
  408. #     x     : 描画先 X 座標
  409. #     y     : 描画先 Y 座標
  410. #--------------------------------------------------------------------------
  411. def draw_enemy_graphic(enemy, x, y, opacity = 255)

  412. end
  413. #--------------------------------------------------------------------------
  414. # ● エネミーの獲得EXPの描画
  415. #     enemy : エネミー
  416. #     x     : 描画先 X 座標
  417. #     y     : 描画先 Y 座標
  418. #--------------------------------------------------------------------------
  419. def draw_enemy_exp(enemy, x, y)
  420.    self.contents.font.color = system_color
  421.    self.contents.draw_text(x, y, 120, 32, "EXP")
  422.    self.contents.font.color = normal_color
  423.    self.contents.draw_text(x + 120, y, 36, 32, enemy.exp.to_s, 2)
  424. end
  425. #--------------------------------------------------------------------------
  426. # ● エネミーの獲得GOLDの描画
  427. #     enemy : エネミー
  428. #     x     : 描画先 X 座標
  429. #     y     : 描画先 Y 座標
  430. #--------------------------------------------------------------------------
  431. def draw_enemy_gold(enemy, x, y)
  432.    self.contents.font.color = system_color
  433.    self.contents.draw_text(x, y, 120, 32, "掉落金钱")
  434.    self.contents.font.color = normal_color
  435.    self.contents.draw_text(x + 120, y, 36, 32, enemy.gold.to_s, 2)
  436. end
  437. end

  438. class Game_Enemy_Book < Game_Enemy
  439. #--------------------------------------------------------------------------
  440. # ● オブジェクト初期化
  441. #--------------------------------------------------------------------------
  442. def initialize(enemy_id)
  443.    super(2, 1)#ダミー
  444.    @enemy_id = enemy_id
  445.    enemy = $data_enemies[@enemy_id]
  446.    @battler_name = enemy.battler_name
  447.    @battler_hue = enemy.battler_hue
  448.    @hp = maxhp
  449.    @sp = maxsp
  450. end
  451. end

  452. class Data_MonsterBook
  453. attr_reader :id_data
  454. #--------------------------------------------------------------------------
  455. # ● オブジェクト初期化
  456. #--------------------------------------------------------------------------
  457. def initialize
  458.    @id_data = enemy_book_id_set
  459. end
  460. #--------------------------------------------------------------------------
  461. # ● 図鑑用登録無視属性取得
  462. #--------------------------------------------------------------------------
  463. def no_add_element
  464.    no_add = 0
  465.    # 登録無視の属性IDを取得
  466.    for i in 1...$data_system.elements.size
  467.      if $data_system.elements[i] =~ /不加入图鉴/
  468.        no_add = i
  469.        break
  470.      end
  471.    end
  472.    return no_add
  473. end
  474. #--------------------------------------------------------------------------
  475. # ● 図鑑用敵ID設定
  476. #--------------------------------------------------------------------------
  477. def enemy_book_id_set
  478.    data = [0]
  479.    no_add = no_add_element
  480.    # 登録無視の属性IDを取得
  481.    for i in 1...$data_enemies.size
  482.      enemy = $data_enemies[i]
  483.      next if enemy.name == ""
  484.      if enemy.element_ranks[no_add] == 1
  485.        next
  486.      end
  487.      data.push(enemy.id)
  488.    end
  489.    return data
  490. end
  491. end


  492. class Window_MonsterBook < Window_Selectable
  493. attr_reader   :data
  494. #--------------------------------------------------------------------------
  495. # ● オブジェクト初期化
  496. #--------------------------------------------------------------------------
  497. def initialize(index=0)
  498.    super(0, 64, 640, 416)
  499.    @column_max = 2
  500.    @book_data = $game_temp.enemy_book_data
  501.    @data = @book_data.id_data.dup
  502.    @data.shift
  503.    #@data.sort!
  504.    @item_max = @data.size
  505.    self.index = 0
  506.    refresh if @item_max > 0
  507. end
  508. #--------------------------------------------------------------------------
  509. # ● 遭遇データを取得
  510. #--------------------------------------------------------------------------
  511. def data_set
  512.    data = $game_party.enemy_info.keys
  513.    data.sort!
  514.    newdata = []
  515.    for i in data
  516.      next if $game_party.enemy_info[i] == 0
  517.      # 図鑑登録無視を考慮
  518.      if book_id(i) != nil
  519.        newdata.push(i)
  520.      end
  521.    end
  522.    return newdata
  523. end
  524. #--------------------------------------------------------------------------
  525. # ● 表示許可取得
  526. #--------------------------------------------------------------------------
  527. def show?(id)
  528.    if $game_party.enemy_info[id] == 0 or $game_party.enemy_info[id] == nil
  529.      return false
  530.    else
  531.      return true
  532.    end
  533. end
  534. #--------------------------------------------------------------------------
  535. # ● 図鑑用ID取得
  536. #--------------------------------------------------------------------------
  537. def book_id(id)
  538.    return @book_data.index(id)
  539. end
  540. #--------------------------------------------------------------------------
  541. # ● エネミー取得
  542. #--------------------------------------------------------------------------
  543. def item
  544.    return @data[self.index]
  545. end
  546. #--------------------------------------------------------------------------
  547. # ● リフレッシュ
  548. #--------------------------------------------------------------------------
  549. def refresh
  550.    if self.contents != nil
  551.      self.contents.dispose
  552.      self.contents = nil
  553.    end
  554.    self.contents = Bitmap.new(width - 32, row_max * 32)
  555.    #項目数が 0 でなければビットマップを作成し、全項目を描画
  556.    if @item_max > 0
  557.      for i in 0...@item_max
  558.       draw_item(i)
  559.      end
  560.    end
  561. end
  562. #--------------------------------------------------------------------------
  563. # ● 項目の描画
  564. #     index : 項目番号
  565. #--------------------------------------------------------------------------
  566. def draw_item(index)
  567.    enemy = $data_enemies[@data[index]]
  568.    return if enemy == nil
  569.    x = 4 + index % 2 * (288 + 32)
  570.    y = index / 2 * 32
  571.    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
  572.    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  573.    self.contents.font.color = normal_color
  574.    draw_enemy_book_id(enemy, x, y)
  575.    if show?(enemy.id)
  576.      self.contents.draw_text(x + 28+16, y, 212, 32, enemy.name, 0)
  577.    else
  578.      self.contents.draw_text(x + 28+16, y, 212, 32, "-----", 0)
  579.      return
  580.    end
  581.    if analyze?(@data[index])
  582.      self.contents.font.color = text_color(3)
  583.      self.contents.draw_text(x + 256, y, 24, 32, "済", 2)
  584.    end
  585. end
  586. #--------------------------------------------------------------------------
  587. # ● アナライズ済かどうか
  588. #--------------------------------------------------------------------------
  589. def analyze?(enemy_id)
  590.    if $game_party.enemy_info[enemy_id] == 2
  591.      return true
  592.    else
  593.      return false
  594.    end
  595. end
  596. end


  597. class Window_MonsterBook_Info < Window_Base
  598. include Enemy_Book_Config
  599. #--------------------------------------------------------------------------
  600. # ● オブジェクト初期化
  601. #--------------------------------------------------------------------------
  602. def initialize
  603.    super(0, 0+64, 640, 480-64)
  604.    self.back_opacity=255
  605.    self.contents = Bitmap.new(width - 32, height - 32)
  606.    
  607. end
  608. #--------------------------------------------------------------------------
  609. # ● リフレッシュ
  610. #--------------------------------------------------------------------------
  611. def refresh(enemy_id)
  612.    self.contents.clear
  613.    self.contents.font.size = 22
  614.    enemy = Game_Enemy_Book.new(enemy_id)
  615.    @gra = Sprite_Enemy_Graphic.new(nil,enemy)
  616.    @gra.z = 120      #怪物图片
  617.    draw_enemy_book_id(enemy, 4, 0)    #各种详细信息
  618.    draw_enemy_name(enemy, 48, 0)
  619.    draw_actor_hp(enemy, 288, 0)
  620.    draw_actor_sp(enemy, 288+160, 0)
  621.    self.contents.font.size=18
  622.    draw_actor_parameter(enemy, 288    ,  25, 0)
  623.    self.contents.font.color = system_color
  624.    self.contents.draw_text(288+160, 25, 120, 32, EVA_NAME)
  625.    self.contents.font.color = normal_color
  626.    self.contents.draw_text(288+160 + 120, 25, 36, 32, enemy.eva.to_s, 2)
  627.    draw_actor_parameter(enemy, 288    ,  50, 3)
  628.    draw_actor_parameter(enemy, 288+160,  50, 4)
  629.    draw_actor_parameter(enemy, 288    ,  75, 5)
  630.    draw_actor_parameter(enemy, 288+160,  75, 6)
  631.    draw_actor_parameter(enemy, 288    , 100, 1)
  632.    draw_actor_parameter(enemy, 288+160, 100, 2)
  633.    draw_enemy_exp(enemy, 288, 125)
  634.    draw_enemy_gold(enemy, 288+160, 125)
  635.    draw_race(enemy, 288, 150)
  636.    #--------------------------------------------------------------------
  637.    draw_enemy_other(enemy, 0, 280)  #简介文字
  638.    draw_enemy_action(enemy,200, 30)  #显示敌人行动
  639.    draw_actor_element_radar_graph(enemy, 360, 180)#雷达图
  640.    #--------------------------------------------------------------------
  641.    if DROP_ITEM_NEED_ANALYZE==true  #掉落物品
  642.      self.contents.font.color = system_color
  643.         self.contents.font.size=16
  644.      self.contents.draw_text(0, 235, 96, 32, "掉落物品")
  645.      draw_enemy_drop_item(enemy, 128, 235)
  646.      self.contents.font.color = normal_color
  647.         self.contents.font.size=18
  648.       end      
  649.     end
  650. def cl
  651.        @gra.dispose
  652. end
  653. #--------------------------------------------------------------------------
  654. # ● アナライズ済かどうか
  655. #--------------------------------------------------------------------------
  656. def analyze?(enemy_id)
  657.    if $game_party.enemy_info[enemy_id] == 2
  658.      return true
  659.    else
  660.      return false
  661.    end
  662. end
  663. end


  664. class Scene_MonsterBook
  665. include Enemy_Book_Config
  666. #--------------------------------------------------------------------------
  667. # ● メイン処理
  668. #--------------------------------------------------------------------------
  669. def main
  670.    $game_temp.enemy_book_data = Data_MonsterBook.new
  671.    # ウィンドウを作成
  672.    @title_window = Window_Base.new(0, 0, 640, 64)
  673.    @title_window.contents = Bitmap.new(640 - 32, 64 - 32)
  674.    @title_window.contents.draw_text(4, 0, 320, 32, "图鉴", 0)
  675.    if SHOW_COMPLETE_TYPE != 0
  676.      case SHOW_COMPLETE_TYPE
  677.      when 1
  678.        e_now = $game_party.enemy_book_now
  679.        e_max = $game_party.enemy_book_max
  680.        text = e_now.to_s + "/" + e_max.to_s
  681.      when 2
  682.        comp = $game_party.enemy_book_complete_percentage
  683.        text = comp.to_s + "%"
  684.      when 3
  685.        e_now = $game_party.enemy_book_now
  686.        e_max = $game_party.enemy_book_max
  687.        comp = $game_party.enemy_book_complete_percentage
  688.        text = e_now.to_s + "/" + e_max.to_s + " " + comp.to_s + "%"
  689.      end
  690.      if text != nil
  691.        @title_window.contents.draw_text(320, 0, 288, 32,  text, 2)
  692.      end
  693.    end
  694.    @main_window = Window_MonsterBook.new
  695.    @main_window.active = true
  696.    # インフォウィンドウを作成 (不可視・非アクティブに設定)
  697.    @info_window = Window_MonsterBook_Info.new
  698.    @info_window.z = 110
  699.    @info_window.visible = false
  700.    @info_window.active = false
  701.    @visible_index = 0
  702.    # トランジション実行
  703.    Graphics.transition
  704.    # メインループ
  705.    loop do
  706.      # ゲーム画面を更新
  707.      Graphics.update
  708.      # 入力情報を更新
  709.      Input.update
  710.      # フレーム更新
  711.      update
  712.      # 画面が切り替わったらループを中断
  713.      if $scene != self
  714.        break
  715.      end
  716.    end
  717.    # トランジション準備
  718.    Graphics.freeze
  719.    # ウィンドウを解放
  720.    @main_window.dispose
  721.    @info_window.dispose
  722.    @title_window.dispose
  723. end
  724. #--------------------------------------------------------------------------
  725. # ● フレーム更新
  726. #--------------------------------------------------------------------------
  727. def update
  728.    # ウィンドウを更新
  729.    @main_window.update
  730.    @info_window.update
  731. #   gra.update
  732.    if @info_window.active
  733.      update_info
  734.      return
  735.    end
  736.    # メインウィンドウがアクティブの場合: update_target を呼ぶ
  737.    if @main_window.active
  738.      update_main
  739.      return
  740.    end
  741. end
  742. #--------------------------------------------------------------------------
  743. # ● フレーム更新 (メインウィンドウがアクティブの場合)
  744. #--------------------------------------------------------------------------
  745. def update_main
  746.    # B ボタンが押された場合
  747.    if Input.trigger?(Input::B)
  748.      # キャンセル SE を演奏
  749.      $game_system.se_play($data_system.cancel_se)
  750.      $scene = Scene_Menu.new(4)#这部分是返回的时候的处理,以上语句表示,默认的是返回菜单项,并且光标停留在第七项,需要返回其他地方则修改此句即可
  751.      return
  752.    end
  753.    # C ボタンが押された場合
  754.    if Input.trigger?(Input::C)
  755.      if @main_window.item == nil or @main_window.show?(@main_window.item) == false
  756.        # ブザー SE を演奏
  757.        $game_system.se_play($data_system.buzzer_se)
  758.        return
  759.      end
  760.      # 決定 SE を演奏
  761.      $game_system.se_play($data_system.decision_se)
  762.      @main_window.active = false
  763.      @info_window.active = true
  764.      @info_window.visible = true
  765.      @visible_index = @main_window.index
  766.      @info_window.refresh(@main_window.item)
  767.      return
  768.    end
  769. end
  770. #--------------------------------------------------------------------------
  771. # ● フレーム更新 (インフォウィンドウがアクティブの場合)
  772. #--------------------------------------------------------------------------
  773. def update_info
  774.    # B ボタンが押された場合
  775.    if Input.trigger?(Input::B)
  776.      # キャンセル SE を演奏
  777.      $game_system.se_play($data_system.cancel_se)
  778.      @main_window.active = true
  779.      @info_window.active = false
  780.      @info_window.visible = false
  781.      @info_window.cl
  782.      return
  783.    end
  784.    # C ボタンが押された場合
  785.    if Input.trigger?(Input::C)
  786.      # 決定 SE を演奏
  787.      #$game_system.se_play($data_system.decision_se)
  788.      return
  789.    end
  790.    if Input.trigger?(Input::L)
  791.      # 決定 SE を演奏
  792.      $game_system.se_play($data_system.decision_se)
  793.      loop_end = false
  794.      while loop_end == false
  795.        if @visible_index != 0
  796.          @visible_index -= 1
  797.        else
  798.          @visible_index = @main_window.data.size - 1
  799.        end
  800.        loop_end = true if @main_window.show?(@main_window.data[@visible_index])
  801.      end
  802.      id = @main_window.data[@visible_index]
  803.      @info_window.refresh(id)
  804.      return
  805.    end
  806.    if Input.trigger?(Input::R)
  807.      # 決定 SE を演奏
  808.      $game_system.se_play($data_system.decision_se)
  809.      loop_end = false
  810.      while loop_end == false
  811.        if @visible_index != @main_window.data.size - 1
  812.          @visible_index += 1
  813.        else
  814.          @visible_index = 0
  815.        end
  816.        loop_end = true if @main_window.show?(@main_window.data[@visible_index])
  817.      end
  818.      id = @main_window.data[@visible_index]
  819.      @info_window.refresh(id)
  820.      return
  821.    end
  822. end
  823. end
  824. #==================================================================
  825. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  826. #==================================================================
  827. class Sprite_Enemy_Graphic< Sprite
  828.   attr_accessor :enemy
  829.   #--------------------------------------------------------------------------
  830.   # ● オブジェクト初期化
  831.   #--------------------------------------------------------------------------
  832.   def initialize(viewport,enemy)
  833.     super(viewport)
  834.     if @enemy != enemy
  835.       self.bitmap = RPG::Cache.battler(enemy.battler_name, enemy.battler_hue)
  836.       cw = self.bitmap.width
  837.       ch = self.bitmap.height
  838.     if cw>ch
  839.      self.zoom_x=200.0/cw
  840.      self.zoom_y=200.0/cw
  841.    else
  842.      self.zoom_x=200.0/ch
  843.      self.zoom_y=200.0/ch     
  844.    end
  845.      self.x=10
  846.      self.y=110
  847.       @enemy=enemy
  848.     end
  849.   end
  850.   #--------------------------------------------------------------------------
  851.   # ● 解放
  852.   #--------------------------------------------------------------------------
  853.   def dispose
  854.     if self.bitmap != nil
  855.       self.bitmap.dispose
  856.     end
  857.     super
  858.   end
  859.   #--------------------------------------------------------------------------
  860.   # ● フレーム更新
  861.   #--------------------------------------------------------------------------
  862.   def refresh(enemy)
  863.   end
  864. end


复制代码
怪物图签脚本 [LINE]1,#dddddd[/LINE]版主对此帖的评论:『两个脚本放在同一张帖子里就行了,标题不合版规』,积分『-2』。这些被扣积分的一半会用于对本帖正确答案的悬赏。
作者: 凌冰    时间: 2008-2-17 01:52
错误对话框里的信息是什么 [LINE]1,#dddddd[/LINE]版主对此帖的评论:『失误自罚』,积分『-10』。这些被扣积分的一半会用于对本帖正确答案的悬赏。
作者: cZooCz    时间: 2008-2-17 01:55
版主大大···放不下啊{/gg}    是转到脚本中的语句 [LINE]1,#dddddd[/LINE]版主对此帖的认可:『不好意思』,积分『+2』。
作者: 凌冰    时间: 2008-2-17 04:41
以下引用凌冰于2008-2-16 17:52:46的发言:

错误对话框里的信息是什么


作者: 沉影不器    时间: 2008-2-17 04:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: cZooCz    时间: 2008-2-17 05:44
有敌人了……不关这个的事呀{/jy}
作者: 沉影不器    时间: 2008-2-17 05:47
提示: 作者被禁止或删除 内容自动屏蔽
作者: 凌冰    时间: 2008-2-17 06:14
可能版本不一样,把你的脚本发上来给他看看吧
另外还可能是其他脚本作祟
作者: cZooCz    时间: 2008-2-17 06:54
对了···我加了个人物仓库插件···影响不,我的脚本就是上面那2个呀
你说放2个脚本一起没问题……我也试着放单单2个···但是还有问题···要不你发你那没问题的工程我看看{/fd}
作者: 凌冰    时间: 2008-2-17 06:57
我再说一遍

错误对话框里的信息是什么
作者: cZooCz    时间: 2008-2-17 07:12
http://rpg.blue/upload_program/files/Project4_83632710.rar
这是那个BUG工程···看看吧……

可以了
作者: 凌冰    时间: 2008-2-17 07:13
下不了
作者: cZooCz    时间: 2008-2-17 08:29
太感谢了!
作者: 凌冰    时间: 2008-2-17 08:54
以下引用cZooCz于2008-2-17 0:29:38的发言:

太感谢了!

感谢过了就结帖吧!!!兄弟!
作者: 魔影    时间: 2009-6-12 08:00
在怪物图鉴里

找到 class Game_Party

在 def initialize 的上面加一段:

alias stars_game_party_initialize initialize


在 def initialize 的下面加一段:

stars_game_party_initialize

[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~




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