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

Project1

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

【3VIP悬赏】我又来要某东西了……

 关闭 [复制链接]

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3309
在线时间
3620 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

跳转到指定楼层
1
发表于 2008-5-18 02:49:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
小幽的帖子终于被我给挖出来了……(谢谢雷子了)

然后呢,
菜单我也就要请人帮我写了。
[LINE]1,#dddddd[/LINE]




恩,就是这个样子了。
[LINE]1,#dddddd[/LINE]
【注意事项】
老样……完成后VIP亲自送上门……

PS。最近真是花了大量的VIP啊……

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2006-5-21
帖子
773
2
发表于 2008-5-18 03:14:27 | 只看该作者
我想接了...
图1,菜单是在屏幕中间的位置么 后面就用个图片
图2,武器和盾的名字左边是图标?
图3,图4,图标哪有那么大哦...请详细描述放什么图
还有  主菜单就一个命令列表?其他什么游戏时间什么的都不显示?
MadniMStudio|Beside
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3309
在线时间
3620 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

3
 楼主| 发表于 2008-5-18 03:17:51 | 只看该作者
以下引用Beside于2008-5-17 19:14:27的发言:

我想接了...
图1,菜单是在屏幕中间的位置么 后面就用个图片
图2,武器和盾的名字左边是图标?
图3,图4,图标哪有那么大哦...请详细描述放什么图

1、这里的图片都只是菜单的位置示意图。
2、框起来的显示的是图标,要求有一个框(这个另外用图片或直接用WINDONS窗口素材)。
3、大概示意图而已。
[LINE]1,#dddddd[/LINE]
对了,图3、4的框之所以那么大,就是因为图标要居中在里面。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2006-5-21
帖子
773
4
发表于 2008-5-18 03:34:59 | 只看该作者
主菜单就一个命令列表?其他什么游戏时间什么的都不显示?
MadniMStudio|Beside
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3309
在线时间
3620 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

5
 楼主| 发表于 2008-5-18 03:46:20 | 只看该作者
以下引用Beside于2008-5-17 19:34:59的发言:

主菜单就一个命令列表?其他什么游戏时间什么的都不显示?

恩,不需要显示。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2007-12-16
帖子
3454
6
发表于 2008-5-18 03:49:52 | 只看该作者
...晕..日记那什么词不是跟牧场物语(RMXP)一样么?
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

7
发表于 2008-5-18 06:24:44 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2006-5-21
帖子
773
8
发表于 2008-5-18 06:46:16 | 只看该作者
基本完成了...
描绘图标的那个窗口的一个细节卡了我好久,= =
脚本直接插入,我用你的版本修改的,应该没有问题.
  1. #==============================================================================
  2. # ■ Scene_Menu
  3. #------------------------------------------------------------------------------
  4. #  处理菜单画面的类。
  5. #==============================================================================

  6. class Scene_Menu < Scene_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对象
  9.   #     menu_index : 指令光标初期位置
  10.   #--------------------------------------------------------------------------
  11.   def initialize(menu_index = 0)
  12.     @menu_index = menu_index
  13.   end
  14.   #--------------------------------------------------------------------------
  15.   # ● 开始处理
  16.   #--------------------------------------------------------------------------
  17.   def start
  18.     super
  19.     create_menu_background
  20.     @sprite = Sprite.new
  21.     @sprite.bitmap = Cache.system("title")
  22.     create_command_window
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 结束处理
  26.   #--------------------------------------------------------------------------
  27.   def terminate
  28.     super
  29.     dispose_menu_background
  30.     @sprite.dispose
  31.     @command_window.dispose
  32.   end
  33.   #--------------------------------------------------------------------------
  34.   # ● 更新画面
  35.   #--------------------------------------------------------------------------
  36.   def update
  37.     super
  38.     update_menu_background
  39.     @sprite.update
  40.     @command_window.update
  41.     update_command_selection
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● 生成指令窗口
  45.   #--------------------------------------------------------------------------
  46.   def create_command_window
  47.     s1 = Vocab::status
  48.     s2 = Vocab::item
  49.     s3 = Vocab::equip
  50.     s4 = Vocab::skill
  51.     s5 = "读日记"
  52.     s6 = Vocab::save
  53.     s7 = Vocab::game_end
  54.     @command_window = Window_Command.new(460, [s1, s2, s3, s4, s5, s6, s7],7,1,7)
  55.     @command_window.x = 42
  56.     @command_window.y = 176
  57.     @command_window.index = @menu_index
  58.     if $game_party.members.size == 0          # 同伴人数为 0 的情况下
  59.       @command_window.draw_item(0, false)     # 物品无效化
  60.       @command_window.draw_item(1, false)     # 特技无效化
  61.       @command_window.draw_item(2, false)     # 装备无效化
  62.       @command_window.draw_item(3, false)     # 状态无效化
  63.     end
  64.     if $game_system.save_disabled             # 禁止存档的情况下
  65.       @command_window.draw_item(5, false)     # 存档无效化
  66.     end
  67.   end
  68.   #--------------------------------------------------------------------------
  69.   # ● 更新指令选择
  70.   #--------------------------------------------------------------------------
  71.   def update_command_selection
  72.     if Input.trigger?(Input::B)
  73.       Sound.play_cancel
  74.       $scene = Scene_Map.new
  75.     elsif Input.trigger?(Input::C)
  76.       if $game_party.members.size == 0 and @command_window.index < 4
  77.         Sound.play_buzzer
  78.         return
  79.       elsif $game_system.save_disabled and @command_window.index == 4
  80.         Sound.play_buzzer
  81.         return
  82.       end
  83.       Sound.play_decision
  84.       case @command_window.index
  85.       when 0      
  86.         $scene = Scene_Status.new(0)
  87.       when 1
  88.         $scene = Scene_Item.new
  89.       when 2
  90.         $scene = Scene_Equip.new(0)
  91.       when 3
  92.         $scene = Scene_Skill.new(0)
  93.       when 4      
  94.         $scene = Scene_File.new(false, false, false)
  95.       when 5      
  96.         $scene = Scene_File.new(true, false, false)
  97.       when 6      
  98.         $scene = Scene_End.new
  99.       end
  100.     end
  101.   end
  102. end
  103. class Window_Base
  104. def draw_actor_hp(actor, x, y, width = 120)
  105.     draw_actor_hp_gauge(actor, x, y, width)
  106.     self.contents.font.color = system_color
  107.     self.contents.draw_text(x, y, 64, WLH, Vocab::hp_a)
  108.     self.contents.font.color = hp_color(actor)
  109.     xr = x + width
  110.     if width < 120
  111.       self.contents.draw_text(xr - 40, y, 40, WLH, actor.hp, 2)
  112.     else
  113.       self.contents.draw_text(xr - 90, y, 40, WLH, actor.hp, 2)
  114.       self.contents.font.color = normal_color
  115.       self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
  116.       self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxhp, 2)
  117.     end
  118. end
  119. def draw_actor_mp(actor, x, y, width = 120)
  120.     draw_actor_mp_gauge(actor, x, y, width)
  121.     self.contents.font.color = system_color
  122.     self.contents.draw_text(x, y, 64, WLH, Vocab::mp_a)
  123.     self.contents.font.color = mp_color(actor)
  124.     xr = x + width
  125.     if width < 120
  126.       self.contents.draw_text(xr - 40, y, 40, WLH, actor.mp, 2)
  127.     else
  128.       self.contents.draw_text(xr - 90, y, 40, WLH, actor.mp, 2)
  129.       self.contents.font.color = normal_color
  130.       self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
  131.       self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxmp, 2)
  132.     end
  133. end  
  134. def draw_actor_level(actor, x, y)
  135.     self.contents.font.color = system_color
  136.     self.contents.draw_text(x, y, 64, WLH, Vocab::level_a)
  137.     self.contents.font.color = normal_color
  138.     self.contents.draw_text(x + 64, y, 24, WLH, actor.level, 2)
  139. end
  140. def draw_item_name_noicon(item, x, y, enabled = true)
  141.     if item != nil
  142.       self.contents.font.color = normal_color
  143.       self.contents.font.color.alpha = enabled ? 255 : 128
  144.       self.contents.draw_text(x, y, 172, WLH, item.name)
  145.     end
  146. end
  147. end

  148. #==============================================================================
  149. # ■ Window_Status
  150. #------------------------------------------------------------------------------
  151. #  显示状态画面、完全规格的状态窗口。
  152. #==============================================================================

  153. class Window_Status < Window_Base
  154.   #--------------------------------------------------------------------------
  155.   # ● 初始化对象
  156.   #     actor : 角色
  157.   #--------------------------------------------------------------------------
  158.   def initialize(actor)
  159.     super(0, 0, 544, 416)
  160.     @actor = actor
  161.     refresh
  162.   end
  163.   #--------------------------------------------------------------------------
  164.   # ● 刷新
  165.   #--------------------------------------------------------------------------
  166.   def refresh
  167.     self.contents.clear
  168.     draw_actor_name(@actor, 128, 32)
  169.     draw_actor_face(@actor, 8, 8)
  170.     draw_basic_info(128, 64)
  171.     draw_parameters(128, 160)
  172.     draw_equipments(8, 260)
  173.   end
  174.   #--------------------------------------------------------------------------
  175.   # ● 描绘基本信息
  176.   #     x : 描绘目标 X 坐标
  177.   #     y : 描绘目标 Y 坐标
  178.   #--------------------------------------------------------------------------
  179.   def draw_basic_info(x, y)
  180.     draw_actor_level(@actor, x, y + WLH * 0)
  181.     draw_actor_hp(@actor, x, y + WLH * 2, 160)
  182.     draw_actor_mp(@actor, x, y + WLH * 3, 160)
  183.   end
  184.   #--------------------------------------------------------------------------
  185.   # ● 描绘能力值
  186.   #     x : 描绘目标 X 坐标
  187.   #     y : 描绘目标 Y 坐标
  188.   #--------------------------------------------------------------------------
  189.   def draw_parameters(x, y)
  190.     draw_actor_parameter(@actor, x, y + WLH * 0, 0)
  191.     draw_actor_parameter(@actor, x, y + WLH * 1, 1)
  192.     draw_actor_parameter(@actor, x, y + WLH * 2, 2)
  193.     draw_actor_parameter(@actor, x, y + WLH * 3, 3)
  194.   end
  195.   #--------------------------------------------------------------------------
  196.   # ● 描绘装备品
  197.   #     x : 描绘目标 X 坐标
  198.   #     y : 描绘目标 Y 坐标
  199.   #--------------------------------------------------------------------------
  200.   def draw_equipments(x, y)
  201.     self.contents.font.color = system_color
  202.     self.contents.draw_text(x, y, 120, WLH, Vocab::armor2)
  203.     self.contents.draw_text(x + 160, y, 120, WLH, Vocab::armor3)
  204.     self.contents.draw_text(x + 160*2, y, 120, WLH, Vocab::armor4)
  205.     for i in 2..4
  206.       draw_item_name(@actor.equips[i], x + 16 + (i-2)*160, y + WLH)
  207.     end
  208.     self.contents.font.color = system_color
  209.     self.contents.draw_text(x, y + WLH * 2, 120, WLH, Vocab::weapon)
  210.     self.contents.draw_text(x + 160, y + WLH * 2, 120, WLH, Vocab::armor1)
  211.     for i in 0..1
  212.       draw_item_name(@actor.equips[i], x + 16 + i*160, y + WLH * 3)
  213.     end
  214.   end
  215. end
  216. #==============================================================================
  217. # ■ Scene_Equip
  218. #------------------------------------------------------------------------------
  219. #  处理装备画面
  220. #==============================================================================

  221. class Scene_Equip < Scene_Base
  222.   #--------------------------------------------------------------------------
  223.   # ● 常量
  224.   #--------------------------------------------------------------------------
  225.   EQUIP_TYPE_MAX = 5                      # 装备部位数
  226.   #--------------------------------------------------------------------------
  227.   # ● 初始化对象
  228.   #     actor_index : 角色索引
  229.   #     equip_index : 装备索引
  230.   #--------------------------------------------------------------------------
  231.   def initialize(actor_index = 0, equip_index = 0)
  232.     @actor_index = actor_index
  233.     @equip_index = equip_index
  234.   end
  235.   #--------------------------------------------------------------------------
  236.   # ● 开始处理
  237.   #--------------------------------------------------------------------------
  238.   def start
  239.     super
  240.     create_menu_background
  241.     @actor = $game_party.members[@actor_index]
  242.     @help_window = Window_Help.new(0,360)
  243.     create_item_windows
  244.     @equipicon_window = Window_Base.new(0,0,132,152)
  245.     @equipicon_window.contents = Bitmap.new(@equipicon_window.width - 32,
  246.     @equipicon_window.height - 32)
  247.     @equip_window = Window_Equip.new(312, 0, @actor)
  248.     @equip_window.help_window = @help_window
  249.     @equip_window.index = @equip_index
  250.     @status_window = Window_EquipStatus.new(132, 0, @actor)
  251.   end
  252.   #--------------------------------------------------------------------------
  253.   # ● 结束处理
  254.   #--------------------------------------------------------------------------
  255.   def terminate
  256.     super
  257.     dispose_menu_background
  258.     @equipicon_window.dispose
  259.     @help_window.dispose
  260.     @equip_window.dispose
  261.     @status_window.dispose
  262.     dispose_item_windows
  263.   end
  264.   #--------------------------------------------------------------------------
  265.   # ● 返回原来的画面
  266.   #--------------------------------------------------------------------------
  267.   def return_scene
  268.     $scene = Scene_Menu.new(2)
  269.   end
  270.   #--------------------------------------------------------------------------
  271.   # ● 切换至下一名角色的画面
  272.   #--------------------------------------------------------------------------
  273.   def next_actor
  274.     @actor_index += 1
  275.     @actor_index %= $game_party.members.size
  276.     $scene = Scene_Equip.new(@actor_index, @equip_window.index)
  277.   end
  278.   #--------------------------------------------------------------------------
  279.   # ● 切换至上一名角色的画面
  280.   #--------------------------------------------------------------------------
  281.   def prev_actor
  282.     @actor_index += $game_party.members.size - 1
  283.     @actor_index %= $game_party.members.size
  284.     $scene = Scene_Equip.new(@actor_index, @equip_window.index)
  285.   end
  286.   #--------------------------------------------------------------------------
  287.   # ● 更新画面
  288.   #--------------------------------------------------------------------------
  289.   def update
  290.     super
  291.       
  292.     def item
  293.         return @data[@equip_window.index]
  294.     end
  295.     @data = []
  296.     for item in @actor.equips do @data.push(item) end
  297.       
  298.     update_menu_background
  299.     @help_window.update
  300.     update_equip_window
  301.     update_status_window
  302.     update_item_windows
  303.     if @equip_window.active
  304.       case @equip_window.index
  305.       when 0
  306.       @equipicon_window.contents.clear
  307.       @equipicon_window.draw_icon(@data[0].icon_index,
  308.       (@equipicon_window.width-56)/2, (@equipicon_window.height-56)/2)
  309.       when 1
  310.       @equipicon_window.contents.clear
  311.       @equipicon_window.draw_icon(@data[1].icon_index,
  312.       (@equipicon_window.width-56)/2, (@equipicon_window.height-56)/2)
  313.       when 2
  314.       @equipicon_window.contents.clear
  315.       @equipicon_window.draw_icon(@data[2].icon_index,
  316.       (@equipicon_window.width-56)/2, (@equipicon_window.height-56)/2)
  317.       when 3
  318.       @equipicon_window.contents.clear
  319.       @equipicon_window.draw_icon(@data[3].icon_index,
  320.       (@equipicon_window.width-56)/2, (@equipicon_window.height-56)/2)
  321.       when 4
  322.       @equipicon_window.contents.clear
  323.       @equipicon_window.draw_icon(@data[4].icon_index,
  324.       (@equipicon_window.width-56)/2, (@equipicon_window.height-56)/2)
  325.       end
  326.       update_equip_selection
  327.     elsif @item_window.active
  328.       @equipicon_window.contents.clear
  329.       if @item_window.item != nil
  330.       @equipicon_window.draw_icon(@item_window.item.icon_index,
  331.       (@equipicon_window.width-56)/2, (@equipicon_window.height-56)/2)
  332.       end
  333.       update_item_selection
  334.     end
  335.   end
  336.   #--------------------------------------------------------------------------
  337.   # ● 生成物品窗口
  338.   #--------------------------------------------------------------------------
  339.   def create_item_windows
  340.     @item_windows = []
  341.     for i in 0...EQUIP_TYPE_MAX
  342.       @item_windows[i] = Window_EquipItem.new(0, 152, 544, 208, @actor, i)
  343.       @item_windows[i].help_window = @help_window
  344.       @item_windows[i].visible = (@equip_index == i)
  345.       @item_windows[i].height = 208
  346.       @item_windows[i].active = false
  347.       @item_windows[i].index = -1
  348.     end
  349.   end
  350.   #--------------------------------------------------------------------------
  351.   # ● 释放物品窗口
  352.   #--------------------------------------------------------------------------
  353.   def dispose_item_windows
  354.     for window in @item_windows
  355.       window.dispose
  356.     end
  357.   end
  358.   #--------------------------------------------------------------------------
  359.   # ● 更新物品窗口
  360.   #--------------------------------------------------------------------------
  361.   def update_item_windows
  362.     for i in 0...EQUIP_TYPE_MAX
  363.       @item_windows[i].visible = (@equip_window.index == i)
  364.       @item_windows[i].update
  365.     end
  366.     @item_window = @item_windows[@equip_window.index]
  367.   end
  368.   #--------------------------------------------------------------------------
  369.   # ● 更新装备窗口
  370.   #--------------------------------------------------------------------------
  371.   def update_equip_window
  372.     @equip_window.update
  373.   end
  374.   #--------------------------------------------------------------------------
  375.   # ● 更新状态窗口
  376.   #--------------------------------------------------------------------------
  377.   def update_status_window
  378.     if @equip_window.active
  379.       @status_window.set_new_parameters(nil, nil, nil, nil)
  380.     elsif @item_window.active
  381.       temp_actor = @actor.clone
  382.       temp_actor.change_equip(@equip_window.index, @item_window.item, true)
  383.       new_atk = temp_actor.atk
  384.       new_def = temp_actor.def
  385.       new_spi = temp_actor.spi
  386.       new_agi = temp_actor.agi
  387.       @status_window.set_new_parameters(new_atk, new_def, new_spi, new_agi)
  388.     end
  389.     @status_window.update
  390.   end
  391.   #--------------------------------------------------------------------------
  392.   # ● 更新选择装备部位
  393.   #--------------------------------------------------------------------------
  394.   def update_equip_selection
  395.     if Input.trigger?(Input::B)
  396.       Sound.play_cancel
  397.       return_scene
  398.     elsif Input.trigger?(Input::R)
  399.       Sound.play_cursor
  400.       next_actor
  401.     elsif Input.trigger?(Input::L)
  402.       Sound.play_cursor
  403.       prev_actor
  404.     elsif Input.trigger?(Input::C)
  405.       if @actor.fix_equipment
  406.         Sound.play_buzzer
  407.       else
  408.         Sound.play_decision
  409.         @equip_window.active = false
  410.         @item_window.active = true
  411.         @item_window.index = 0
  412.       end
  413.     end
  414.   end
  415.   #--------------------------------------------------------------------------
  416.   # ● 更新选择物品
  417.   #--------------------------------------------------------------------------
  418.   def update_item_selection
  419.     if Input.trigger?(Input::B)
  420.       Sound.play_cancel
  421.       @equip_window.active = true
  422.       @item_window.active = false
  423.       @item_window.index = -1
  424.     elsif Input.trigger?(Input::C)
  425.       Sound.play_equip
  426.       @actor.change_equip(@equip_window.index, @item_window.item)
  427.       @equip_window.active = true
  428.       @item_window.active = false
  429.       @item_window.index = -1
  430.       @equip_window.refresh
  431.       for item_window in @item_windows
  432.         item_window.refresh
  433.       end
  434.     end
  435.   end
  436. end
  437. #==============================================================================
  438. # ■ Window_Equip
  439. #------------------------------------------------------------------------------
  440. #  装备画面、显示角色现在装备的物品的窗口。
  441. #==============================================================================

  442. class Window_Equip < Window_Selectable
  443.   #--------------------------------------------------------------------------
  444.   # ● 初始化对象
  445.   #     x     : 窗口的 X 坐标
  446.   #     y     : 窗口的 Y 坐标
  447.   #     actor : 角色
  448.   #--------------------------------------------------------------------------
  449.   def initialize(x, y, actor)
  450.     super(x, y, 232, WLH * 5 + 32)
  451.     @actor = actor
  452.     refresh
  453.     self.index = 0
  454.   end
  455.   #--------------------------------------------------------------------------
  456.   # ● 获取物品
  457.   #--------------------------------------------------------------------------
  458.   def item
  459.     return @data[self.index]
  460.   end
  461.   #--------------------------------------------------------------------------
  462.   # ● 刷新
  463.   #--------------------------------------------------------------------------
  464.   def refresh
  465.     self.contents.clear
  466.     @data = []
  467.     for item in @actor.equips do @data.push(item) end
  468.     @item_max = @data.size
  469.     self.contents.font.color = system_color
  470.     if @actor.two_swords_style
  471.       self.contents.draw_text(4, WLH * 0, 92, WLH, Vocab::weapon1)
  472.       self.contents.draw_text(4, WLH * 1, 92, WLH, Vocab::weapon2)
  473.     else
  474.       self.contents.draw_text(4, WLH * 0, 92, WLH, Vocab::weapon)
  475.       self.contents.draw_text(4, WLH * 1, 92, WLH, Vocab::armor1)
  476.     end
  477.     self.contents.draw_text(4, WLH * 2, 92, WLH, Vocab::armor2)
  478.     self.contents.draw_text(4, WLH * 3, 92, WLH, Vocab::armor3)
  479.     self.contents.draw_text(4, WLH * 4, 92, WLH, Vocab::armor4)
  480.     draw_item_name_noicon(@data[0], 72, WLH * 0)
  481.     draw_item_name_noicon(@data[1], 72, WLH * 1)
  482.     draw_item_name_noicon(@data[2], 72, WLH * 2)
  483.     draw_item_name_noicon(@data[3], 72, WLH * 3)
  484.     draw_item_name_noicon(@data[4], 72, WLH * 4)
  485.   end
  486.   #--------------------------------------------------------------------------
  487.   # ● 更新帮助文本
  488.   #--------------------------------------------------------------------------
  489.   def update_help
  490.     @help_window.set_text(item == nil ? "" : item.description)
  491.   end
  492. end
  493. #==============================================================================
  494. # ■ Window_EquipStatus
  495. #------------------------------------------------------------------------------
  496. #  装备画面、显示角色能力值变化的窗口。
  497. #==============================================================================

  498. class Window_EquipStatus < Window_Base
  499.   #--------------------------------------------------------------------------
  500.   # ● 初始化对象
  501.   #     x     : 窗口的 X 坐标
  502.   #     y     : 窗口的 Y 坐标
  503.   #     actor : 角色
  504.   #--------------------------------------------------------------------------
  505.   def initialize(x, y, actor)
  506.     super(x, y, 180, WLH * 5 + 32)
  507.     @actor = actor
  508.     refresh
  509.   end
  510.   #--------------------------------------------------------------------------
  511.   # ● 刷新
  512.   #--------------------------------------------------------------------------
  513.   def refresh
  514.     self.contents.clear
  515.     draw_actor_name(@actor, 4, 0)
  516.     draw_parameter(0, WLH * 1, 0)
  517.     draw_parameter(0, WLH * 2, 1)
  518.     draw_parameter(0, WLH * 3, 2)
  519.     draw_parameter(0, WLH * 4, 3)
  520.   end
  521.   #--------------------------------------------------------------------------
  522.   # ● 设置装备变更后的能力值
  523.   #     new_atk : 装备变更后的攻击力
  524.   #     new_def : 装备变更后的防御力
  525.   #     new_spi : 装备变更后的精神力
  526.   #     new_agi : 装备变更后的敏捷性
  527.   #--------------------------------------------------------------------------
  528.   def set_new_parameters(new_atk, new_def, new_spi, new_agi)
  529.     if @new_atk != new_atk or @new_def != new_def or
  530.        @new_spi != new_spi or @new_agi != new_agi
  531.       @new_atk = new_atk
  532.       @new_def = new_def
  533.       @new_spi = new_spi
  534.       @new_agi = new_agi
  535.       refresh
  536.     end
  537.   end
  538.   #--------------------------------------------------------------------------
  539.   # ● 获取装备变更后的能力值描绘色
  540.   #     old_value : 装備変更前の能力値
  541.   #     new_value : 装備変更後の能力値
  542.   #--------------------------------------------------------------------------
  543.   def new_parameter_color(old_value, new_value)
  544.     if new_value > old_value      # 变强
  545.       return power_up_color
  546.     elsif new_value == old_value  # 没有变化
  547.       return normal_color
  548.     else                          # 变弱
  549.       return power_down_color
  550.     end
  551.   end
  552.   #--------------------------------------------------------------------------
  553.   # ● 描绘能力值
  554.   #     x    : 描绘目标 X 坐标
  555.   #     y    : 描绘目标 Y 坐标
  556.   #     type : 能力值种类 (0~3)
  557.   #--------------------------------------------------------------------------
  558.   def draw_parameter(x, y, type)
  559.     case type
  560.     when 0
  561.       name = Vocab::atk
  562.       value = @actor.atk
  563.       new_value = @new_atk
  564.     when 1
  565.       name = Vocab::def
  566.       value = @actor.def
  567.       new_value = @new_def
  568.     when 2
  569.       name = Vocab::spi
  570.       value = @actor.spi
  571.       new_value = @new_spi
  572.     when 3
  573.       name = Vocab::agi
  574.       value = @actor.agi
  575.       new_value = @new_agi
  576.     end
  577.     self.contents.font.color = system_color
  578.     self.contents.draw_text(x + 4, y, 80, WLH, name)
  579.     self.contents.font.color = normal_color
  580.     self.contents.draw_text(x + 56, y, 30, WLH, value, 2)
  581.     self.contents.font.color = system_color
  582.     self.contents.draw_text(x + 88, y, 20, WLH, "→", 1)
  583.     if new_value != nil
  584.       self.contents.font.color = new_parameter_color(value, new_value)
  585.       self.contents.draw_text(x + 112, y, 30, WLH, new_value, 2)
  586.     end
  587.   end
  588. end
  589. #==============================================================================
  590. # ■ Window_Help
  591. #------------------------------------------------------------------------------
  592. #  特技及物品的说明、角色的状态显示的窗口。
  593. #==============================================================================

  594. class Window_Help < Window_Base
  595.   #--------------------------------------------------------------------------
  596.   # ● 初始化对象
  597.   #--------------------------------------------------------------------------
  598.   def initialize(x=0,y=0)
  599.     super(x, y, 544, WLH + 32)
  600.   end
  601.   #--------------------------------------------------------------------------
  602.   # ● テキスト設定
  603.   #     text  : 窗口显示的字符串
  604.   #     align : 对齐方式 (0..左对齐、1..中间对齐、2..右对齐)
  605.   #--------------------------------------------------------------------------
  606.   def set_text(text, align = 0)
  607.     if text != @text or align != @align
  608.       self.contents.clear
  609.       self.contents.font.color = normal_color
  610.       self.contents.draw_text(4, 0, self.width - 40, WLH, text, align)
  611.       @text = text
  612.       @align = align
  613.     end
  614.   end
  615. end
  616. class Scene_Item < Scene_Base
  617.   def return_scene
  618.     $scene = Scene_Menu.new(1)
  619.   end
  620. end

  621. class Scene_Status < Scene_Base
  622.   def return_scene
  623.     $scene = Scene_Menu.new(0)
  624.   end
  625. end
  626. #==============================================================================
  627. # ■ Scene_Skill
  628. #------------------------------------------------------------------------------
  629. #  处理特技画面的类。
  630. #==============================================================================

  631. class Scene_Skill < Scene_Base
  632.   #--------------------------------------------------------------------------
  633.   # ● 初始化对象
  634.   #     actor_index : 角色索引
  635.   #--------------------------------------------------------------------------
  636.   def initialize(actor_index = 0, equip_index = 0)
  637.     @actor_index = actor_index
  638.   end
  639.   #--------------------------------------------------------------------------
  640.   # ● 开始处理
  641.   #--------------------------------------------------------------------------
  642.   def start
  643.     super
  644.     create_menu_background
  645.     @actor = $game_party.members[@actor_index]
  646.     @viewport = Viewport.new(0, 0, 544, 416)
  647.     @skillicon_window = Window_Base.new(0,0,132,152)
  648.     @skillicon_window.contents = Bitmap.new(@skillicon_window.width - 32,
  649.     @skillicon_window.height - 32)
  650.     @help_window = Window_Help.new(132,0)
  651.     @help_window.width = 412
  652.     @skill_window = Window_Skill.new(0, 152, 544, 264, @actor)
  653.     @skill_window.viewport = @viewport
  654.     @skill_window.help_window = @help_window
  655.     @target_window = Window_MenuStatus.new(0, 0)
  656.     hide_target_window
  657.   end
  658.   #--------------------------------------------------------------------------
  659.   # ● 结束处理
  660.   #--------------------------------------------------------------------------
  661.   def terminate
  662.     super
  663.     dispose_menu_background
  664.     @skillicon_window.dispose
  665.     @help_window.dispose
  666.     @skill_window.dispose
  667.     @target_window.dispose
  668.   end
  669.   #--------------------------------------------------------------------------
  670.   # ● 还原至原来的画面
  671.   #--------------------------------------------------------------------------
  672.   def return_scene
  673.     $scene = Scene_Menu.new(3)
  674.   end
  675.   #--------------------------------------------------------------------------
  676.   # ● 切换至下一名角色的画面
  677.   #--------------------------------------------------------------------------
  678.   def next_actor
  679.     @actor_index += 1
  680.     @actor_index %= $game_party.members.size
  681.     $scene = Scene_Skill.new(@actor_index)
  682.   end
  683.   #--------------------------------------------------------------------------
  684.   # ● 切换至上一名角色的画面
  685.   #--------------------------------------------------------------------------
  686.   def prev_actor
  687.     @actor_index += $game_party.members.size - 1
  688.     @actor_index %= $game_party.members.size
  689.     $scene = Scene_Skill.new(@actor_index)
  690.   end
  691.   #--------------------------------------------------------------------------
  692.   # ● 更新画面
  693.   #--------------------------------------------------------------------------
  694.   def update
  695.     super
  696.     update_menu_background
  697.     @skillicon_window.update
  698.     @help_window.update
  699.     @skill_window.update
  700.     @target_window.update
  701.     if @skill_window.active
  702.       @skillicon_window.contents.clear
  703.       @skillicon_window.draw_icon(@skill_window.skill.icon_index,
  704.       (@skillicon_window.width-56)/2, (@skillicon_window.height-56)/2)
  705.       update_skill_selection
  706.     elsif @target_window.active
  707.       update_target_selection
  708.     end
  709.   end
  710.   #--------------------------------------------------------------------------
  711.   # ● 更新选择特技
  712.   #--------------------------------------------------------------------------
  713.   def update_skill_selection
  714.     if Input.trigger?(Input::B)
  715.       Sound.play_cancel
  716.       return_scene
  717.     elsif Input.trigger?(Input::R)
  718.       Sound.play_cursor
  719.       next_actor
  720.     elsif Input.trigger?(Input::L)
  721.       Sound.play_cursor
  722.       prev_actor
  723.     elsif Input.trigger?(Input::C)
  724.       @skill = @skill_window.skill
  725.       if @skill != nil
  726.         @actor.last_skill_id = @skill.id
  727.       end
  728.       if @actor.skill_can_use?(@skill)
  729.         Sound.play_decision
  730.         determine_skill
  731.       else
  732.         Sound.play_buzzer
  733.       end
  734.     end
  735.   end
  736.   #--------------------------------------------------------------------------
  737.   # ● 确定特技
  738.   #--------------------------------------------------------------------------
  739.   def determine_skill
  740.     if @skill.for_friend?
  741.       show_target_window(@skill_window.index % 2 == 0)
  742.       if @skill.for_all?
  743.         @target_window.index = 99
  744.       elsif @skill.for_user?
  745.         @target_window.index = @actor_index + 100
  746.       else
  747.         if $game_party.last_target_index < @target_window.item_max
  748.           @target_window.index = $game_party.last_target_index
  749.         else
  750.           @target_window.index = 0
  751.         end
  752.       end
  753.     else
  754.       use_skill_nontarget
  755.     end
  756.   end
  757.   #--------------------------------------------------------------------------
  758.   # ● 更新选择目标
  759.   #--------------------------------------------------------------------------
  760.   def update_target_selection
  761.     if Input.trigger?(Input::B)
  762.       Sound.play_cancel
  763.       hide_target_window
  764.     elsif Input.trigger?(Input::C)
  765.       if not @actor.skill_can_use?(@skill)
  766.         Sound.play_buzzer
  767.       else
  768.         determine_target
  769.       end
  770.     end
  771.   end
  772.   #--------------------------------------------------------------------------
  773.   # ● 确定目标
  774.   #    无效的情况下 (在不能战斗的情况下使用恢复剂) 播放 buzzer 的 SE。
  775.   #--------------------------------------------------------------------------
  776.   def determine_target
  777.     used = false
  778.     if @skill.for_all?
  779.       for target in $game_party.members
  780.         target.skill_effect(@actor, @skill)
  781.         used = true unless target.skipped
  782.       end
  783.     elsif @skill.for_user?
  784.       target = $game_party.members[@target_window.index - 100]
  785.       target.skill_effect(@actor, @skill)
  786.       used = true unless target.skipped
  787.     else
  788.       $game_party.last_target_index = @target_window.index
  789.       target = $game_party.members[@target_window.index]
  790.       target.skill_effect(@actor, @skill)
  791.       used = true unless target.skipped
  792.     end
  793.     if used
  794.       use_skill_nontarget
  795.     else
  796.       Sound.play_buzzer
  797.     end
  798.   end
  799.   #--------------------------------------------------------------------------
  800.   # ● 显示目标窗口
  801.   #     right : 靠右标志 (false 为靠左)
  802.   #--------------------------------------------------------------------------
  803.   def show_target_window(right)
  804.     @skill_window.active = false
  805.     width_remain = 544 - @target_window.width
  806.     @target_window.x = right ? width_remain : 0
  807.     @target_window.visible = true
  808.     @target_window.active = true
  809.     if right
  810.       @viewport.rect.set(0, 0, width_remain, 416)
  811.       @viewport.ox = 0
  812.     else
  813.       @viewport.rect.set(@target_window.width, 0, width_remain, 416)
  814.       @viewport.ox = @target_window.width
  815.     end
  816.   end
  817.   #--------------------------------------------------------------------------
  818.   # ● 不显示目标窗口
  819.   #--------------------------------------------------------------------------
  820.   def hide_target_window
  821.     @skill_window.active = true
  822.     @target_window.visible = false
  823.     @target_window.active = false
  824.     @viewport.rect.set(0, 0, 544, 416)
  825.     @viewport.ox = 0
  826.   end
  827.   #--------------------------------------------------------------------------
  828.   # ● 使用特技 (也适用于我方对象以外的效果)
  829.   #--------------------------------------------------------------------------
  830.   def use_skill_nontarget
  831.     Sound.play_use_skill
  832.     @actor.mp -= @actor.calc_mp_cost(@skill)
  833.     @skill_window.refresh
  834.     @target_window.refresh
  835.     if $game_party.all_dead?
  836.       $scene = Scene_Gameover.new
  837.     elsif @skill.common_event_id > 0
  838.       $game_temp.common_event_id = @skill.common_event_id
  839.       $scene = Scene_Map.new
  840.     end
  841.   end
  842. end

复制代码

需要自己全局搜索一下return_scene这个  在不同的Scene里对应不同的返回光标 重新定义一下
范例在此...
不想复制上面大段脚本就看范例里面的脚本  一样的东西
http://rpg.blue/upload_program/f ... 岁版_91530614.rar
发几个图...
主菜单界面  

背景图我用的标题的背景  找到Scene_Menu里面的Cache.system("title") 把title改成你的图片的文件名  图片放到Pictures/System下.

装备菜单


技能菜单


状态菜单


有其他要求或者修改请PM我!
MadniMStudio|Beside
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
625
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

9
发表于 2008-5-18 07:03:38 | 只看该作者
很漂亮{/qiang}

給你幾個提議:
1. 不需要特別為圖標寫一個窗口類,參考得失物品提示製作臨時窗口的方法
2. 描繪圖標時可以用窗口高寬度計算座標位置,這樣如果小柯想要變更圖標大小也不用調半天
3. 建議你在每個Scene裡面加一個initialize並加上參數,參數就是返回菜單的光標位置
這樣返回時調用就行了,方法可以參考我寫的葉子任務系統華麗板


以下引用沉影不器于2008-5-17 22:24:44的发言:

这个...比上次的5vip事件头上显示血条麻烦得多...


這種錢少事多的事,我接一次就夠了
隨然很想好好宰一宰小柯{/dy}
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2006-5-21
帖子
773
10
发表于 2009-6-12 08:00:00 | 只看该作者
以下引用snstar2006于2008-5-17 23:03:38的发言:

很漂亮

給你幾個提議:
1. 不需要特別為圖標寫一個窗口類,參考得失物品提示製作臨時窗口的方法
2. 描繪圖標時可以用窗口高寬度計算座標位置,這樣如果小柯想要變更圖標大小也不用調半天
3. 建議你在每個Scene裡面加一個initialize並加上參數,參數就是返回菜單的光標位置
這樣返回時調用就行了,方法可以參考我寫的葉子任務系統華麗板

修改完毕...
其实返回参数那个是我懒的写了 哈哈
ps 确实是钱少事多的活...{/dy}
MadniMStudio|Beside
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-27 05:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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