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

Project1

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

[已经解决] 如何改变装备字体颜色?

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

Lv1.梦旅人 (禁止发言)

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

Lv1.梦旅人

梦石
0
星屑
49
在线时间
114 小时
注册时间
2011-3-17
帖子
49
2
发表于 2011-8-19 12:39:50 | 只看该作者
从我很早以前的老坑里挖出来的,出处在哪忘了>W<
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================
  4. #==============================================================================
  5. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  6. #==============================================================================
  7. #
  8. # 脚本功能:给不同物品显示不同颜色,类似暗黑破坏神,比如套装为绿色,超级为金色
  9. #           可以更改的种类包括物品、防具、特技、武器。
  10. #
  11. # 使用方法:对于不想为白色表示的物品,在描述中最后添加@6,@4一类的即可。
  12. #           数字为颜色编号,和对话框中的一样。
  13. # ——————————————————————————————————————
  14. module RPG
  15.   class Skill
  16.     def description
  17.       description = @description.split(/@/)[0]
  18.       return description != nil ? description : ''
  19.     end
  20.     def name_color_66RPG
  21.       name_color = @description.split(/@/)[1]
  22.       return name_color != nil ? name_color.to_i : 0
  23.     end
  24.   end
  25.   class Weapon
  26.     def description
  27.       description = @description.split(/@/)[0]
  28.       return description != nil ? description : ''
  29.     end
  30.     def name_color_66RPG
  31.       name_color = @description.split(/@/)[1]
  32.       return name_color != nil ? name_color.to_i : 0
  33.     end
  34.   end
  35.   class Item
  36.     def description
  37.       description = @description.split(/@/)[0]
  38.       return description != nil ? description : ''
  39.     end
  40.     def name_color_66RPG
  41.       name_color = @description.split(/@/)[1]
  42.       return name_color != nil ? name_color.to_i : 0
  43.     end
  44.   end
  45.   class Armor
  46.     def description
  47.       description = @description.split(/@/)[0]
  48.       return description != nil ? description : ''
  49.     end
  50.     def name_color_66RPG
  51.       name_color = @description.split(/@/)[1]
  52.       return name != nil ? name_color.to_i : 0
  53.     end
  54.   end
  55. end

  56. # ——————————————————————————————————————
  57. # 本脚本原创自www.66rpg.com,转载请保留此信息
  58. # ——————————————————————————————————————
  59. class Window_Base < Window
  60.   #--------------------------------------------------------------------------
  61.   # ● 描绘物品名
  62.   #     item : 物品
  63.   #     x    : 描画目标 X 坐标
  64.   #     y    : 描画目标 Y 坐标
  65.   #--------------------------------------------------------------------------
  66.   def draw_item_name(item, x, y)
  67.     if item == nil
  68.       return
  69.     end
  70.     bitmap = RPG::Cache.icon(item.icon_name)
  71.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
  72.     self.contents.font.color = text_color(item.name_color_66RPG)
  73.     self.contents.draw_text(x + 28, y, 212, 32, item.name.to_s)
  74.   end
  75. end

  76. # ——————————————————————————————————————
  77. # 本脚本原创自www.66rpg.com,转载请保留此信息
  78. # ——————————————————————————————————————
  79. class Window_Item
  80.   #--------------------------------------------------------------------------
  81.   # ● 描绘项目
  82.   #     index : 项目编号
  83.   #--------------------------------------------------------------------------
  84.   def draw_item(index)
  85.     item = @data[index]
  86.     case item
  87.     when RPG::Item
  88.       number = $game_party.item_number(item.id)
  89.     when RPG::Weapon
  90.       number = $game_party.weapon_number(item.id)
  91.     when RPG::Armor
  92.       number = $game_party.armor_number(item.id)
  93.     end
  94.     if item.is_a?(RPG::Item) and
  95.        $game_party.item_can_use?(item.id)
  96.       self.contents.font.color = text_color(item.name_color_66RPG)
  97.     else
  98.       self.contents.font.color = disabled_color
  99.     end
  100.     x = 4 + index % 2 * (288 + 32)
  101.     y = index / 2 * 32
  102.     rect = Rect.new(x, y, self.width / @column_max - 32, 32)
  103.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  104.     bitmap = RPG::Cache.icon(item.icon_name)
  105.     opacity = self.contents.font.color == disabled_color ? 128 : 255
  106.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  107.     self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
  108.     self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
  109.     self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
  110.   end
  111. end

  112. # ——————————————————————————————————————
  113. # 本脚本原创自www.66rpg.com,转载请保留此信息
  114. # ——————————————————————————————————————
  115. class Window_EquipItem < Window_Selectable
  116.   #--------------------------------------------------------------------------
  117.   # ● 项目的描绘
  118.   #     index : 项目符号
  119.   #--------------------------------------------------------------------------
  120.   def draw_item(index)
  121.     item = @data[index]
  122.     x = 4 + index % 2 * (288 + 32)
  123.     y = index / 2 * 32
  124.     case item
  125.     when RPG::Weapon
  126.       number = $game_party.weapon_number(item.id)
  127.     when RPG::Armor
  128.       number = $game_party.armor_number(item.id)
  129.     end
  130.     bitmap = RPG::Cache.icon(item.icon_name)
  131.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
  132.     self.contents.font.color = text_color(item.name_color_66RPG)
  133.     self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
  134.     self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
  135.     self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
  136.   end
  137. end

  138. # ——————————————————————————————————————
  139. # 本脚本原创自www.66rpg.com,转载请保留此信息
  140. # ——————————————————————————————————————
  141. class Window_ShopBuy < Window_Selectable
  142.   #--------------------------------------------------------------------------
  143.   # ● 描绘羡慕
  144.   #     index : 项目编号
  145.   #--------------------------------------------------------------------------
  146.   def draw_item(index)
  147.     item = @data[index]
  148.     # 获取物品所持数
  149.     case item
  150.     when RPG::Item
  151.       number = $game_party.item_number(item.id)
  152.     when RPG::Weapon
  153.       number = $game_party.weapon_number(item.id)
  154.     when RPG::Armor
  155.       number = $game_party.armor_number(item.id)
  156.     end
  157.     # 价格在所持金以下、并且所持数不是 99 的情况下为普通颜色
  158.     # 除此之外的情况设置为无效文字色
  159.     if item.price <= $game_party.gold and number < 99
  160.       self.contents.font.color = text_color(item.name_color_66RPG)
  161.     else
  162.       self.contents.font.color = disabled_color
  163.     end
  164.     x = 4
  165.     y = index * 32
  166.     rect = Rect.new(x, y, self.width - 32, 32)
  167.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  168.     bitmap = RPG::Cache.icon(item.icon_name)
  169.     opacity = self.contents.font.color == disabled_color ? 128 : 255
  170.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  171.     self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
  172.     self.contents.draw_text(x + 240, y, 88, 32, item.price.to_s, 2)
  173.   end
  174. end

  175. # ——————————————————————————————————————
  176. # 本脚本原创自www.66rpg.com,转载请保留此信息
  177. # ——————————————————————————————————————
  178. class Window_ShopSell < Window_Selectable
  179.   #--------------------------------------------------------------------------
  180.   # ● 描绘项目
  181.   #     index : 项目标号
  182.   #--------------------------------------------------------------------------
  183.   def draw_item(index)
  184.     item = @data[index]
  185.     case item
  186.     when RPG::Item
  187.       number = $game_party.item_number(item.id)
  188.     when RPG::Weapon
  189.       number = $game_party.weapon_number(item.id)
  190.     when RPG::Armor
  191.       number = $game_party.armor_number(item.id)
  192.     end
  193.     # 可以卖掉的显示为普通颜色、除此之外设置成无效文字颜色
  194.     if item.price > 0
  195.       self.contents.font.color = text_color(item.name_color_66RPG)
  196.     else
  197.       self.contents.font.color = disabled_color
  198.     end
  199.     x = 4 + index % 2 * (288 + 32)
  200.     y = index / 2 * 32
  201.     rect = Rect.new(x, y, self.width / @column_max - 32, 32)
  202.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  203.     bitmap = RPG::Cache.icon(item.icon_name)
  204.     opacity = self.contents.font.color == disabled_color ? 128 : 255
  205.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  206.     self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
  207.     self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
  208.     self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
  209.   end
  210. end
  211.   
  212. # ——————————————————————————————————————
  213. # 本脚本原创自www.66rpg.com,转载请保留此信息
  214. # ——————————————————————————————————————
  215. class Window_Skill
  216.   #--------------------------------------------------------------------------
  217.   # ● 描绘项目
  218.   #     index : 项目编号
  219.   #--------------------------------------------------------------------------
  220.   def draw_item(index)
  221.     skill = @data[index]
  222.     if @actor.skill_can_use?(skill.id)
  223.       self.contents.font.color = text_color(skill.name_color_66RPG)
  224.     else
  225.       self.contents.font.color = disabled_color
  226.     end
  227.     x = 4 + index % 2 * (288 + 32)
  228.     y = index / 2 * 32
  229.     rect = Rect.new(x, y, self.width / @column_max - 32, 32)
  230.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  231.     bitmap = RPG::Cache.icon(skill.icon_name)
  232.     opacity = self.contents.font.color == disabled_color ? 128 : 255
  233.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  234.     self.contents.draw_text(x + 28, y, 204, 32, skill.name, 0)
  235.     self.contents.draw_text(x + 232, y, 48, 32, skill.sp_cost.to_s, 2)
  236.   end
  237. end

  238. #==============================================================================
  239. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  240. #==============================================================================
  241. #==============================================================================
  242. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  243. #==============================================================================
  244. # ■ Window_Item
  245. #------------------------------------------------------------------------------
  246. #  物品画面、战斗画面、显示浏览物品的窗口。
  247. #==============================================================================
  248. class Window_Item < Window_Selectable
  249.   #--------------------------------------------------------------------------
  250.   # ● 刷新
  251.   #--------------------------------------------------------------------------
  252.   def refresh
  253.     if self.contents != nil
  254.       self.contents.dispose
  255.       self.contents = nil
  256.     end
  257.     @data = []
  258.     # 在战斗中以外添加武器、防具
  259.     unless $game_temp.in_battle
  260.       # 添加报务
  261.       for i in 1...$data_items.size
  262.         if $game_party.item_number(i) > 0
  263.             @data.push($data_items[i])
  264.         end
  265.       end
  266.       for i in 1...$data_weapons.size
  267.         if $game_party.weapon_number(i) > 0
  268.           @data.push($data_weapons[i])
  269.         end
  270.       end
  271.       for i in 1...$data_armors.size
  272.         if $game_party.armor_number(i) > 0
  273.           @data.push($data_armors[i])
  274.         end
  275.       end
  276.     else
  277.       for i in 1...$data_items.size
  278.         if $game_party.item_number(i) > 0
  279.           occasion = $data_items[i].occasion
  280.           if occasion == 0 or occasion == 1
  281.              @data.push($data_items[i])
  282.           end
  283.         end
  284.       end
  285.     end
  286.     # 如果项目数不是 0 就生成位图、重新描绘全部项目
  287.     @item_max = @data.size
  288.     if @item_max > 0
  289.       self.contents = Bitmap.new(width - 32, row_max * 32)
  290.       for i in 0...@item_max
  291.         draw_item(i)
  292.       end
  293.     end
  294.   end
  295. end
  296. #==============================================================================
  297. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  298. #==============================================================================


  299. # ————————————————————————————————————
  300. # 本脚本来自www.66rpg.com,转载请保留此信息
  301. # ————————————————————————————————————

  302. #==============================================================================
  303. # ■ Game_Player
  304. #==============================================================================
  305. class Game_Player
  306.   #--------------------------------------------------------------------------
  307.   # ● フレーム更新
  308.   #--------------------------------------------------------------------------
  309.   alias old_update update
  310.   def update
  311.     unless moving? or $game_system.map_interpreter.running? or
  312.       @move_route_forcing or $game_temp.message_window_showing
  313.       if Input.press?(Input::C)
  314.       # 速度変更
  315.         @move_speed = 4.9
  316.       else
  317.         @move_speed = 4
  318.       end
  319.     end
  320.     old_update
  321.   end
  322. end


  323. #==============================================================================
  324. # 本脚本来自www.66RPG.com,使用和转载请保留此信息    敌人血条
  325. #==============================================================================
  326. # ■ エネミーHP&SP(ver 0.98)

  327. # □ カスタマイズポイント
  328. #==============================================================================
  329. module PLAN_HPSP_DRAW
  330. FONT_NAME         = ["黑体", "楷体", "宋体"]    # フォント
  331. FONT_SIZE         =  14                               # フォントサイズ
  332. FONT_BOLD         = true                              # 太字
  333. FONT_ITALIC       = true                              # 斜体

  334. DRAW_NAME         = false                             # 名前の描画
  335. DRAW_HP           = true                              # HP の描画
  336. DRAW_SP           = true                              # SP の描画

  337. DRAW_WIDTH        =  80                               # 描画幅
  338. DRAW_HEIGHT       = 3 * 32                            # 描画高さ
  339. DRAW_SPACE        =   0                               # 行間
  340. DRAW_Y            =  36                               # Y 座標修正値
  341. end


  342. #==============================================================================
  343. # ■ Sprite_Battler
  344. #==============================================================================

  345. class Sprite_Battler < RPG::Sprite
  346. #--------------------------------------------------------------------------
  347. # ● オブジェクト初期化
  348. #--------------------------------------------------------------------------
  349. alias plan_enemy_hpsp_draw_initialize initialize
  350. def initialize(viewport, battler = nil)
  351.   # 元のメソッドに戻す
  352.   plan_enemy_hpsp_draw_initialize(viewport, battler)
  353.   # エネミーの場合
  354.   if @battler.is_a?(Game_Enemy)
  355.     width = PLAN_HPSP_DRAW::DRAW_WIDTH + 32
  356.     height = PLAN_HPSP_DRAW::DRAW_HEIGHT + 32
  357.     x = @battler.screen_x - width / 2
  358.     y = @battler.screen_y - height + 32 + PLAN_HPSP_DRAW::DRAW_Y
  359.     @enemy_hpsp_window = Window_Base.new(x, y, width, height)
  360.     @enemy_hpsp_window.contents = Bitmap.new(width - 32, height - 32)
  361.     @enemy_hpsp_window.contents.font.name = PLAN_HPSP_DRAW::FONT_NAME
  362.     @enemy_hpsp_window.contents.font.size = PLAN_HPSP_DRAW::FONT_SIZE
  363.     @enemy_hpsp_window.contents.font.bold = PLAN_HPSP_DRAW::FONT_BOLD
  364.     @enemy_hpsp_window.contents.font.italic = PLAN_HPSP_DRAW::FONT_ITALIC
  365.     y = 0
  366.     @old_enemy_hpsp = []
  367.     one_line = ((PLAN_HPSP_DRAW::FONT_SIZE * 100 / 28) * 32) / 100
  368.     if PLAN_HPSP_DRAW::DRAW_NAME
  369.       @enemy_hpsp_window.draw_actor_name(@battler, 0, y, width - 32)
  370.       y += one_line + PLAN_HPSP_DRAW::DRAW_SPACE
  371.       @old_enemy_hpsp.push(@battler.name)
  372.     end
  373.     if PLAN_HPSP_DRAW::DRAW_HP
  374.       @enemy_hpsp_window.draw_actor_hp2222(@battler, 0, y, width - 32)
  375.       y += one_line + PLAN_HPSP_DRAW::DRAW_SPACE
  376.       @old_enemy_hpsp.push(@battler.hp)
  377.     end
  378.     if PLAN_HPSP_DRAW::DRAW_SP
  379.       @enemy_hpsp_window.draw_actor_sp2222(@battler, 0, y, width - 32)
  380.       @old_enemy_hpsp.push(@battler.sp)
  381.     end
  382.     @enemy_hpsp_window.opacity = 0
  383.     @enemy_hpsp_window.contents_opacity = 0
  384.     @enemy_hpsp_window.z = -2
  385.   end
  386. end
  387. #--------------------------------------------------------------------------
  388. # ● 解放
  389. #--------------------------------------------------------------------------
  390. alias plan_enemy_hpsp_draw_dispose dispose
  391. def dispose
  392.   # エネミーの場合
  393.   if @battler.is_a?(Game_Enemy)
  394.     @enemy_hpsp_window.dispose
  395.   end
  396.   # 元のメソッドに戻す
  397.   plan_enemy_hpsp_draw_dispose
  398. end
  399. #--------------------------------------------------------------------------
  400. # ● フレーム更新
  401. #--------------------------------------------------------------------------
  402. alias plan_enemy_hpsp_draw_update update
  403. def update
  404.   # 元のメソッドに戻す
  405.   plan_enemy_hpsp_draw_update
  406.   # エネミーの場合
  407.   if @battler.is_a?(Game_Enemy)
  408.     @enemy_hpsp_window.visible = @battler_visible
  409.   # スプライトの座標を設定
  410.     width = PLAN_HPSP_DRAW::DRAW_WIDTH + 32
  411.     @enemy_hpsp_window.x = self.x - width / 2
  412.     @now_enemy_hpsp = []
  413.     if PLAN_HPSP_DRAW::DRAW_NAME
  414.       @now_enemy_hpsp.push(@battler.name)
  415.     end
  416.     if PLAN_HPSP_DRAW::DRAW_HP
  417.       @now_enemy_hpsp.push(@battler.hp)
  418.     end
  419.     if PLAN_HPSP_DRAW::DRAW_SP
  420.       @now_enemy_hpsp.push(@battler.sp)
  421.     end
  422.     if @old_enemy_hpsp != @now_enemy_hpsp and $game_temp.enemy_hpsp_refresh
  423.       @old_enemy_hpsp = @now_enemy_hpsp
  424.       @enemy_hpsp_window.contents.clear
  425.       y = 0
  426.       width = PLAN_HPSP_DRAW::DRAW_WIDTH + 32
  427.       one_line = ((PLAN_HPSP_DRAW::FONT_SIZE * 100 / 28) * 32) / 100
  428.       if PLAN_HPSP_DRAW::DRAW_NAME
  429.         @enemy_hpsp_window.draw_actor_name(@battler, 0, y, width - 32)
  430.         y += one_line + PLAN_HPSP_DRAW::DRAW_SPACE
  431.       end
  432.       if PLAN_HPSP_DRAW::DRAW_HP
  433.         @enemy_hpsp_window.draw_actor_hp2222(@battler, 0, y, width - 32)
  434.         y += one_line + PLAN_HPSP_DRAW::DRAW_SPACE
  435.       end
  436.       if PLAN_HPSP_DRAW::DRAW_SP
  437.         @enemy_hpsp_window.draw_actor_sp2222(@battler, 0, y, width - 32)
  438.       end
  439.       Graphics.frame_reset
  440.     end
  441.   end
  442. end
  443. #--------------------------------------------------------------------------
  444. # ● visible の設定
  445. #--------------------------------------------------------------------------
  446. if !method_defined?("plan_enemy_hpsp_draw_visible=")
  447.   alias plan_enemy_hpsp_draw_visible= visible=
  448. end
  449. def visible=(bool)
  450.   # エネミーの場合
  451.   if @battler.is_a?(Game_Enemy)
  452.     @enemy_hpsp_window.visible = bool
  453.   end
  454.   # 元のメソッドに戻す
  455.   self.plan_enemy_hpsp_draw_visible=(bool)
  456. end
  457. #--------------------------------------------------------------------------
  458. # ● 不透明度の設定
  459. #--------------------------------------------------------------------------
  460. if !method_defined?("plan_enemy_hpsp_draw_opacity=")
  461.   alias plan_enemy_hpsp_draw_opacity= opacity=
  462. end
  463. def opacity=(n)
  464.   # 元のメソッドに戻す
  465.   self.plan_enemy_hpsp_draw_opacity=(n)
  466.   # エネミーの場合
  467.   if @battler.is_a?(Game_Enemy)
  468.     @enemy_hpsp_window.contents_opacity = n
  469.   end
  470. end

  471. end





  472. #==============================================================================
  473. # ■ Game_Temp
  474. #==============================================================================

  475. class Game_Temp
  476. #--------------------------------------------------------------------------
  477. # ● 公開インスタンス変数
  478. #--------------------------------------------------------------------------
  479. attr_accessor :enemy_hpsp_refresh
  480. #--------------------------------------------------------------------------
  481. # ● オブジェクト初期化
  482. #--------------------------------------------------------------------------
  483. alias plan_enemy_hpsp_draw_initialize initialize
  484. def initialize
  485.   # 元のメソッドに戻す
  486.   plan_enemy_hpsp_draw_initialize
  487.   @enemy_hpsp_refresh = false
  488. end
  489. end

  490. #==============================================================================
  491. # ■ Scene_Battle
  492. #==============================================================================

  493. class Scene_Battle
  494. #--------------------------------------------------------------------------
  495. # ● プレバトルフェーズ開始 (エネミー名+アルファベット用)
  496. #--------------------------------------------------------------------------
  497. alias plan_enemy_hpsp_draw_start_phase1 start_phase1
  498. def start_phase1
  499.   $game_temp.enemy_hpsp_refresh = true
  500.   # 元のメソッドに戻す
  501.   plan_enemy_hpsp_draw_start_phase1
  502. end
  503. #--------------------------------------------------------------------------
  504. # ● パーティコマンドフェーズ開始 (エネミー名+アルファベット用)
  505. #--------------------------------------------------------------------------
  506. alias plan_enemy_hpsp_draw_start_phase2 start_phase2
  507. def start_phase2
  508.   $game_temp.enemy_hpsp_refresh = false
  509.   # 元のメソッドに戻す
  510.   plan_enemy_hpsp_draw_start_phase2
  511. end
  512. #--------------------------------------------------------------------------
  513. # ● フレーム更新 (メインフェーズ ステップ 5 : ダメージ表示)
  514. #--------------------------------------------------------------------------
  515. alias plan_enemy_hpsp_draw_update_phase4_step5 update_phase4_step5
  516. def update_phase4_step5
  517.   # 元のメソッドに戻す
  518.   plan_enemy_hpsp_draw_update_phase4_step5
  519.   $game_temp.enemy_hpsp_refresh = true
  520. end
  521. #--------------------------------------------------------------------------
  522. # ● フレーム更新 (メインフェーズ ステップ 6 : リフレッシュ)
  523. #--------------------------------------------------------------------------
  524. alias plan_enemy_hpsp_draw_update_phase4_step6 update_phase4_step6
  525. def update_phase4_step6
  526.   # 元のメソッドに戻す
  527.   plan_enemy_hpsp_draw_update_phase4_step6
  528.   $game_temp.enemy_hpsp_refresh = false
  529. end
  530. end


  531. #==============================================================================
  532. # ■ Window_Base
  533. #==============================================================================

  534. class Window_Base < Window
  535. #--------------------------------------------------------------------------
  536. # ● 名前の描画
  537. #--------------------------------------------------------------------------
  538. def draw_actor_name(actor, x, y, width = 120, align = 0)
  539.   self.contents.font.color = normal_color
  540.   align = 1 if $scene.is_a?(Scene_Battle)
  541.   self.contents.draw_text(x, y, width, 32, actor.name, align)
  542. end
  543. #--------------------------------------------------------------------------
  544. # ● ステートの描画
  545. #--------------------------------------------------------------------------
  546. def draw_actor_state(actor, x, y, width = 120)
  547.   # 元のメソッドに戻す
  548.   text = make_battler_state_text(actor, width, true)
  549.   self.contents.draw_text(x, y, width, 32, text, 1)
  550. end
  551. end


  552. #==============================================================================
  553. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  554. #==============================================================================

  555. class Window_Base < Window
  556. def draw_actor_hp2222(actor, x, y, width = 100, height=8)
  557.    y+=3
  558.    olx = x
  559.    oly = y
  560.    w = width * actor.hp / [actor.maxhp,1].max
  561.    hp_color_1 = Color.new(255, 0, 0, 192)
  562.    hp_color_2 = Color.new(255, 255, 0, 192)
  563.    self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
  564.    draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
  565.    x -= 1
  566.    y += (height/4).floor
  567.    self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
  568.    draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
  569.    x -= 1
  570.    y += (height/4).ceil
  571.    self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
  572.    draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
  573.    x -= 1
  574.    y += (height/4).ceil
  575.    self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
  576.    draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
  577.    x = olx
  578.    y = oly-14   
  579.    # 描绘字符串 "HP"
  580.    self.contents.font.color = system_color
  581.    self.contents.draw_text(x, y, 32, 32, $data_system.words.hp)
  582.    # 计算描绘 MaxHP 所需的空间
  583.    if width - 32 >= 108
  584.      hp_x = x + width - 108
  585.      flag = true
  586.    elsif width - 32 >= 48
  587.      hp_x = x + width - 48
  588.      flag = false
  589.    end
  590.    # 描绘 HP
  591.    self.contents.font.color = actor.hp == 0 ? knockout_color :
  592.      actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
  593.    self.contents.draw_text(hp_x, y, 48, 32, actor.hp.to_s, 2)
  594.    # 描绘 MaxHP
  595.    if flag
  596.      self.contents.font.color = normal_color
  597.      self.contents.draw_text(hp_x + 48, y, 12, 32, "/", 1)
  598.      self.contents.draw_text(hp_x + 60, y, 48, 32, actor.maxhp.to_s)
  599.    end   
  600. end
  601. def draw_actor_sp2222(actor, x, y, width = 100, height = 8)
  602.    y+=3
  603.    olx = x
  604.    oly = y
  605.    w = width * actor.sp / [actor.maxsp,1].max
  606.    hp_color_1 = Color.new( 0, 0, 255, 192)
  607.    hp_color_2 = Color.new( 0, 255, 255, 192)
  608.    self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
  609.    draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
  610.    x -= 1
  611.    y += (height/4).floor
  612.    self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
  613.    draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
  614.    x -= 1
  615.    y += (height/4).ceil
  616.    self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128))
  617.    draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2)
  618.    x -= 1
  619.    y += (height/4).ceil
  620.    self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128))
  621.    draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2)
  622.    x = olx
  623.    y = oly-14
  624.    # 描绘字符串 "SP"
  625.    self.contents.font.color = system_color
  626.    self.contents.draw_text(x, y, 32, 32, $data_system.words.sp)
  627.    # 计算描绘 MaxSP 所需的空间
  628.    if width - 32 >= 108
  629.      sp_x = x + width - 108
  630.      flag = true
  631.    elsif width - 32 >= 48
  632.      sp_x = x + width - 48
  633.      flag = false
  634.    end
  635.    # 描绘 SP
  636.    self.contents.font.color = actor.sp == 0 ? knockout_color :
  637.      actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
  638.    self.contents.draw_text(sp_x, y, 48, 32, actor.sp.to_s, 2)
  639.    # 描绘 MaxSP
  640.    if flag
  641.      self.contents.font.color = normal_color
  642.      self.contents.draw_text(sp_x + 48, y, 12, 32, "/", 1)
  643.      self.contents.draw_text(sp_x + 60, y, 48, 32, actor.maxsp.to_s)
  644.    end   
  645. end
  646. #--------------------------------------------------------------------------
  647. # ● ライン描画 by 桜雅 在土
  648. #--------------------------------------------------------------------------
  649. def draw_line(start_x, start_y, end_x, end_y, start_color, width = 1, end_color = start_color)
  650.    # 描写距離の計算。大きめに直角時の長さ。
  651.    distance = (start_x - end_x).abs + (start_y - end_y).abs
  652.    # 描写開始
  653.    if end_color == start_color
  654.      for i in 1..distance
  655.        x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
  656.        y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
  657.        if width == 1
  658.          self.contents.set_pixel(x, y, start_color)
  659.        else
  660.          self.contents.fill_rect(x, y, width, width, start_color)
  661.        end
  662.      end
  663.    else
  664.      for i in 1..distance
  665.        x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
  666.        y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
  667.        r = start_color.red * (distance-i)/distance + end_color.red * i/distance
  668.        g = start_color.green * (distance-i)/distance + end_color.green * i/distance
  669.        b = start_color.blue * (distance-i)/distance + end_color.blue * i/distance
  670.        a = start_color.alpha * (distance-i)/distance + end_color.alpha * i/distance
  671.        if width == 1
  672.          self.contents.set_pixel(x, y, Color.new(r, g, b, a))
  673.        else
  674.          self.contents.fill_rect(x, y, width, width, Color.new(r, g, b, a))
  675.        end
  676.      end
  677.    end
  678. end
  679. end
  680. #==============================================================================
  681. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  682. #==============================================================================





  683. #-----------------------------------------------------------------
  684. # ● 刷新画面       防卡脚本
  685. #-----------------------------------------------------------------
  686.   def update
  687.     # 刷新点灭记数
  688.     @blink_count = (@blink_count + 1) % 8
  689.     # 设置传送源矩形
  690.     if @blink_count < 4
  691.       self.src_rect.set(128, 96, 32, 32)
  692.     else
  693.       self.src_rect.set(160, 96, 32, 32)
  694.     end
  695.     # 刷新帮助文本 (update_help 定义了继承目标)
  696.     if @help_window != nil
  697.       if Input.press?(Input::UP) or Input.press?(Input::DOWN) or Input.press?(Input::LEFT) or Input.press?(Input::RIGHT)
  698.       update_help
  699.       end
  700.     end
  701.   end
复制代码

点评

还混合了其他脚本,难怪我冲突了!我已经自己修改了!有一点我不明白,怎么修改颜色的深浅?  发表于 2011-8-19 13:18
魅上照
回复

使用道具 举报

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
3
发表于 2011-8-19 16:13:44 | 只看该作者
2L点评的回复:
这个要改Window_Base里的数据,而且会连同对话框字体颜色一起修改掉

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
16 小时
注册时间
2011-8-16
帖子
63
4
 楼主| 发表于 2011-8-19 16:16:09 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 13:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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