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

Project1

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

修改怪物图鉴脚本的问题,大家帮我看看~

 关闭 [复制链接]

Lv1.梦旅人

夜天の主

梦石
0
星屑
124
在线时间
1552 小时
注册时间
2008-4-13
帖子
2347

开拓者第4届短篇游戏比赛亚军

跳转到指定楼层
1
发表于 2009-1-15 02:13:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
RT,在下用的是这个脚本~http://rpg.blue/web/htm/news767.htm

我想将窗口的蓝框去掉然后添上一个书的背景这样感觉就像一个手册一样~
于是我改动了以下地方:

(大约516行的地方...)
super(0, 64, 640, 416)
   @column_max = 2
   @book_data = $game_temp.enemy_book_data
   @data = @book_data.id_data.dup
   @data.shift
   #@data.sort!
   @item_max = @data.size
   self.index = 0   
   refresh if @item_max > 0

的refresh前加上了self.opacity=0和
   @menu_com = Sprite.new
   @menu_com.bitmap = RPG::Cache.picture("手册背景.png")

然后在大约623行的地方
super(0, 0+64, 640, 480-64)
   self.back_opacity=255
的这一段把self.back_opacity=255注释掉了然后加上了和上面相同的内容~

结果测试的时候发现~
1.最上面一行还残留有一个小窗口底没去掉...(就是显示“怪物图鉴”文字和图鉴搜集率的地方)
2.当我选择查看某个怪物的资料的时候原来的怪物目录的文字和线还残留在屏幕上...

在下愚钝,对这两个问题思考许久仍不得其解,只好来向各位求助了~希望各位知道问题所在的能指点一二,在下感激不尽~

版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

夜天の主

梦石
0
星屑
124
在线时间
1552 小时
注册时间
2008-4-13
帖子
2347

开拓者第4届短篇游戏比赛亚军

2
 楼主| 发表于 2009-1-15 05:52:28 | 只看该作者
哇,沉得好快...{/pz}各位大大帮帮忙啊...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
3
发表于 2009-1-15 06:03:47 | 只看该作者
强烈要求发截图,贴脚本。话说偶滴想象力不是很好的说 {/hx}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

夜天の主

梦石
0
星屑
124
在线时间
1552 小时
注册时间
2008-4-13
帖子
2347

开拓者第4届短篇游戏比赛亚军

4
 楼主| 发表于 2009-1-15 09:28:13 | 只看该作者
截图和脚本奉上...拜托了...
这张是怪兽目录的图,最上面的一个小窗口不知道怎么去底:

这张是进入某个怪兽详细信息后的图,目录的字没有消掉,和怪兽信息重叠了...


然后,脚本奉上,加了“###”的部分就是我改过的部分了:
  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] = ""
  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.    
  507.    self.opacity = 0###
  508.    @menu_com = Sprite.new###
  509.    @menu_com.bitmap = RPG::Cache.picture("手册背景.jpg")###

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


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


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

使用道具 举报

Lv1.梦旅人

夜天の主

梦石
0
星屑
124
在线时间
1552 小时
注册时间
2008-4-13
帖子
2347

开拓者第4届短篇游戏比赛亚军

5
 楼主| 发表于 2009-1-16 00:33:54 | 只看该作者
加了点分...各位帮帮忙啊~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

夜天の主

梦石
0
星屑
124
在线时间
1552 小时
注册时间
2008-4-13
帖子
2347

开拓者第4届短篇游戏比赛亚军

6
 楼主| 发表于 2009-1-16 03:15:35 | 只看该作者
沉得好快...没人能帮帮忙么...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-4
帖子
174
7
发表于 2009-1-16 03:20:55 | 只看该作者
……抱歉,本人水平有限。上面那个应该是别的窗口,所以全局搜"window_",然后找寻可疑的窗口类修改试试。
我们的最高理想是共产主义! 敝人的冷清空间: http://hi.baidu.com/crs_66rpg
回复 支持 反对

使用道具 举报

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
8
发表于 2009-1-16 03:35:41 | 只看该作者
  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] = ""
  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. #     enemy : エネミー
  397. #     x     : 描画先 X 座標
  398. #     y     : 描画先 Y 座標
  399. #--------------------------------------------------------------------------
  400. def draw_enemy_name(enemy, x, y)
  401.   self.contents.font.color = normal_color
  402.   self.contents.draw_text(x, y, 152, 32, enemy.name)
  403. end
  404. #--------------------------------------------------------------------------
  405. # ● エネミーグラフィックの描画(アナライズ)
  406. #     enemy : エネミー
  407. #     x     : 描画先 X 座標
  408. #     y     : 描画先 Y 座標
  409. #--------------------------------------------------------------------------
  410. def draw_enemy_graphic(enemy, x, y, opacity = 255)

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

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

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


  491. class Window_MonsterBook < Window_Selectable
  492. attr_reader   :data
  493. #--------------------------------------------------------------------------
  494. # ● オブジェクト初期化
  495. #--------------------------------------------------------------------------
  496. def initialize(index=0)
  497.   super(0, 64, 640, 416)
  498.   @column_max = 2
  499.   @book_data = $game_temp.enemy_book_data
  500.   @data = @book_data.id_data.dup
  501.   @data.shift
  502.   #@data.sort!
  503.   @item_max = @data.size
  504.   self.index = 0   
  505.   
  506.   self.opacity = 0###
  507.   @menu_com = Sprite.new###
  508.   @menu_com.bitmap = RPG::Cache.picture("手册背景.jpg")###

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


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


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

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

夜天の主

梦石
0
星屑
124
在线时间
1552 小时
注册时间
2008-4-13
帖子
2347

开拓者第4届短篇游戏比赛亚军

9
 楼主| 发表于 2009-1-16 03:43:11 | 只看该作者
谢谢楼上~大问题已经解决了~我研究一下~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-19 10:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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